Перейти к публикации

Переменные обороты шпинделя.


Рекомендованные сообщения

@Alex... Существует цикл для этих целей, лично сам пользовался на 840D, работает. https://support.industry.siemens.com/cs/document/78452062/sinumerik-828d-840d-sl%3A-avoiding-vibration-in-slewing-gear-pieces?dti=0&pnid=14588&lc=en-IL

Ссылка на сообщение
Поделиться на других сайтах
  • 2 года спустя...


Здравствуйте решил поднять эту теме т.к. столкнулся с проблемой борьбы с резонансом при расточки длинных отверстий создал свою подпрограмму которая постоянно разгоняет и тормозит шпиндель. Выкладываю сюда может кому пригодится.

Программа с передачей параметров устанавливается в пользовательские циклы.

PROC SPEED(REAL TIME,REAL AMPL) DISPLOF SBLOF
DEF REAL _S0
TIME=TIME/18

_S0=$P_S[$P_MSNUM]

$AC_TIMER[1]=0

ID=1 EVERY $AC_TIMER[1]>=(TIME*1) DO S=_S0+(AMPL*(SIN(20)))
ID=2 EVERY $AC_TIMER[1]>=(TIME*2) DO S=_S0+(AMPL*(SIN(40)))
ID=3 EVERY $AC_TIMER[1]>=(TIME*3) DO S=_S0+(AMPL*(SIN(60)))
ID=4 EVERY $AC_TIMER[1]>=(TIME*4) DO S=_S0+(AMPL*(SIN(80)))
ID=5 EVERY $AC_TIMER[1]>=(TIME*4.5) DO S=_S0+(AMPL*(SIN(90)))
ID=6 EVERY $AC_TIMER[1]>=(TIME*5) DO S=_S0+(AMPL*(SIN(80)))
ID=7 EVERY $AC_TIMER[1]>=(TIME*6) DO S=_S0+(AMPL*(SIN(60)))
ID=8 EVERY $AC_TIMER[1]>=(TIME*7) DO S=_S0+(AMPL*(SIN(40)))
ID=9 EVERY $AC_TIMER[1]>=(TIME*8) DO S=_S0+(AMPL*(SIN(20)))
ID=10 EVERY $AC_TIMER[1]>=(TIME*9) DO S=_S0
ID=11 EVERY $AC_TIMER[1]>=(TIME*10) DO S=_S0-(AMPL*(SIN(20)))
ID=12 EVERY $AC_TIMER[1]>=(TIME*11) DO S=_S0-(AMPL*(SIN(40)))
ID=13 EVERY $AC_TIMER[1]>=(TIME*12) DO S=_S0-(AMPL*(SIN(60)))
ID=14 EVERY $AC_TIMER[1]>=(TIME*13) DO S=_S0-(AMPL*(SIN(80)))
ID=15 EVERY $AC_TIMER[1]>=(TIME*13.5) DO S=_S0+(AMPL*(SIN(90)))
ID=16 EVERY $AC_TIMER[1]>=(TIME*14) DO S=_S0-(AMPL*(SIN(80)))
ID=17 EVERY $AC_TIMER[1]>=(TIME*15) DO S=_S0-(AMPL*(SIN(60)))
ID=18 EVERY $AC_TIMER[1]>=(TIME*16) DO S=_S0-(AMPL*(SIN(40)))
ID=19 EVERY $AC_TIMER[1]>=(TIME*17) DO S=_S0-(AMPL*(SIN(20)))
ID=20 EVERY $AC_TIMER[1]>=(TIME*18) DO S=_S0
ID=21 EVERY $AC_TIMER[1]>=(TIME*19) DO $AC_TIMER[1]=0
SBLON
RET

 

И программа по отмене данной функции.

PROC SPEEDOFF DISPLOF SBLOF
CANCEL(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21)
SBLON
RET

 

Ссылка на сообщение
Поделиться на других сайтах
  • 1 год спустя...

у меня поизящнее была программка, и прекращалась при остановке шпинделя

https://youtu.be/mFp51a8l-Kw

Ссылка на сообщение
Поделиться на других сайтах
  • 3 месяца спустя...
15.06.2021 в 14:02, Povar1 сказал:

Здравствуйте решил поднять эту теме т.к. столкнулся с проблемой борьбы с резонансом при расточки длинных отверстий создал свою подпрограмму которая постоянно разгоняет и тормозит шпиндель. Выкладываю сюда может кому пригодится.

Программа с передачей параметров устанавливается в пользовательские циклы.

PROC SPEED(REAL TIME,REAL AMPL) DISPLOF SBLOF
DEF REAL _S0
TIME=TIME/18

_S0=$P_S[$P_MSNUM]

$AC_TIMER[1]=0

ID=1 EVERY $AC_TIMER[1]>=(TIME*1) DO S=_S0+(AMPL*(SIN(20)))
ID=2 EVERY $AC_TIMER[1]>=(TIME*2) DO S=_S0+(AMPL*(SIN(40)))
ID=3 EVERY $AC_TIMER[1]>=(TIME*3) DO S=_S0+(AMPL*(SIN(60)))
ID=4 EVERY $AC_TIMER[1]>=(TIME*4) DO S=_S0+(AMPL*(SIN(80)))
ID=5 EVERY $AC_TIMER[1]>=(TIME*4.5) DO S=_S0+(AMPL*(SIN(90)))
ID=6 EVERY $AC_TIMER[1]>=(TIME*5) DO S=_S0+(AMPL*(SIN(80)))
ID=7 EVERY $AC_TIMER[1]>=(TIME*6) DO S=_S0+(AMPL*(SIN(60)))
ID=8 EVERY $AC_TIMER[1]>=(TIME*7) DO S=_S0+(AMPL*(SIN(40)))
ID=9 EVERY $AC_TIMER[1]>=(TIME*8) DO S=_S0+(AMPL*(SIN(20)))
ID=10 EVERY $AC_TIMER[1]>=(TIME*9) DO S=_S0
ID=11 EVERY $AC_TIMER[1]>=(TIME*10) DO S=_S0-(AMPL*(SIN(20)))
ID=12 EVERY $AC_TIMER[1]>=(TIME*11) DO S=_S0-(AMPL*(SIN(40)))
ID=13 EVERY $AC_TIMER[1]>=(TIME*12) DO S=_S0-(AMPL*(SIN(60)))
ID=14 EVERY $AC_TIMER[1]>=(TIME*13) DO S=_S0-(AMPL*(SIN(80)))
ID=15 EVERY $AC_TIMER[1]>=(TIME*13.5) DO S=_S0+(AMPL*(SIN(90)))
ID=16 EVERY $AC_TIMER[1]>=(TIME*14) DO S=_S0-(AMPL*(SIN(80)))
ID=17 EVERY $AC_TIMER[1]>=(TIME*15) DO S=_S0-(AMPL*(SIN(60)))
ID=18 EVERY $AC_TIMER[1]>=(TIME*16) DO S=_S0-(AMPL*(SIN(40)))
ID=19 EVERY $AC_TIMER[1]>=(TIME*17) DO S=_S0-(AMPL*(SIN(20)))
ID=20 EVERY $AC_TIMER[1]>=(TIME*18) DO S=_S0
ID=21 EVERY $AC_TIMER[1]>=(TIME*19) DO $AC_TIMER[1]=0
SBLON
RET

 

И программа по отмене данной функции.

PROC SPEEDOFF DISPLOF SBLOF
CANCEL(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21)
SBLON
RET

 

При смене оборотов программу не нужно снова вызывать? Отменяется только подпрограммой или при сборсе?

Ссылка на сообщение
Поделиться на других сайтах
16.05.2023 в 06:22, s_liam сказал:

При смене оборотов программу не нужно снова вызывать? Отменяется только подпрограммой или при сборсе?

Для смены диапазона вращения нужно сначала завершить параллельный процесс и начать новый.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




×
×
  • Создать...