Как в EMC настраивается задержка на разгон шпинделя

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
Tulumbas
Кандидат
Сообщения: 43
Зарегистрирован: 17 фев 2017, 13:15
Репутация: 2
Настоящее имя: Станислав
Откуда: Санкт Петербург
Контактная информация:

Re: Как в EMC настраивается задержка на разгон шпинделя

Сообщение Tulumbas »

jalyn11 писал(а):loadrt timedelay
addf timedelay.0 servo-thread
setp timedelay.0.on-delay 30
net spindle-on motion.spindle-on
net spindle-on timedelay.0.in
net spindle-delay timedelay.0.out
net spindle-delay motion.spindle-at-speed

И удалил запись sets spindle-at-speed в custom_postgui.hal
Почему то не работает, вернее сказать может и работает, но UI не запускается..
Если не сложно, разжуйте поподробнее как это сделать.
LCNC установил неделю назад настроил через step-conf, вникаю в .ini и .hal, пытаюсь прикрутить всякие полезности...
Аватара пользователя
sima8520
Почётный участник
Почётный участник
Сообщения: 4502
Зарегистрирован: 24 ноя 2016, 23:35
Репутация: 1616
Настоящее имя: Илья
Откуда: Беларусь, Гомель
Контактная информация:

Re: Как в EMC настраивается задержка на разгон шпинделя

Сообщение sima8520 »

о полезная темка, такое же ждет и меня. так что пробуй добавить паузу на разгон, и я буду пытаться повторить.
Аватара пользователя
evgenymcp
Мастер
Сообщения: 1418
Зарегистрирован: 23 апр 2017, 05:37
Репутация: 326
Настоящее имя: Евгений
Откуда: Абакан,Хакасия
Контактная информация:

Re: Как в EMC настраивается задержка на разгон шпинделя

Сообщение evgenymcp »

При управлении частотником по modbus шпиндель не движется пока не достигнута заданная скорость.
Аватара пользователя
sima8520
Почётный участник
Почётный участник
Сообщения: 4502
Зарегистрирован: 24 ноя 2016, 23:35
Репутация: 1616
Настоящее имя: Илья
Откуда: Беларусь, Гомель
Контактная информация:

Re: Как в EMC настраивается задержка на разгон шпинделя

Сообщение sima8520 »

У меня нет ModBus
Аватара пользователя
Tulumbas
Кандидат
Сообщения: 43
Зарегистрирован: 17 фев 2017, 13:15
Репутация: 2
Настоящее имя: Станислав
Откуда: Санкт Петербург
Контактная информация:

Re: Как в EMC настраивается задержка на разгон шпинделя

Сообщение Tulumbas »

До modbus доберусь позже, сейчас частотником рулит ШИМ.
Возможно есть разница в версиях LCNC (тема то старая), но в моем случае заработало так : добавил в .hal

loadrt timedelay
addf timedelay.0 servo-thread
setp timedelay.0.on-delay 10
net spindle-on motion.spindle-on
net spindle-on timedelay.0.in
net spindle-delay timedelay.0.out
net spindle-delay motion.spindle-at-speed

И закомментил/удалил строку :
net spindle-at-speed => motion.spindle-at-speed

Но работает как-то криво :
IMG_1092.JPG (7414 просмотров) <a class='original' href='./download/file.php?id=161874&sid=a7d820d658287c863b35de849cee00dd&mode=view' target=_blank>Загрузить оригинал (6.31 МБ)</a>
timedelay выполняется просле 12 строки кода, а не после 10 что было-бы логично (как в Mach3).
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Как в EMC настраивается задержка на разгон шпинделя

Сообщение nkp »

Tulumbas писал(а):что было-бы логично
в чем логика?
вроде как мы остерегаемся начать обработку ,если шпиндель "не_раскрутился"...
или есть потребность на ж0 уже обрабатывать?
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Как в EMC настраивается задержка на разгон шпинделя

Сообщение nkp »

motion.spindle−at−speed IN BIT
Motion will pause until this pin is TRUE, under the following conditions: before the first feed move after each spindle start or speed change; before the start of every chain of spindle-synchronized moves; and if in CSS mode, at every rapid->feed transition.
http://linuxcnc.org/docs/2.7/html/man/m ... .html#PINS
Аватара пользователя
Tulumbas
Кандидат
Сообщения: 43
Зарегистрирован: 17 фев 2017, 13:15
Репутация: 2
Настоящее имя: Станислав
Откуда: Санкт Петербург
Контактная информация:

Re: Как в EMC настраивается задержка на разгон шпинделя

Сообщение Tulumbas »

nkp писал(а):в чем логика?
Не верно описал происходящее : timedelay включяется после S 15000 M3, за это время (10сек) шпиндель/фреза успевают добраться через G0 X124.5 Y408... до G0 Z5, и в этом месте станок замирает до окончания timedelay.
На мой взгляд было-бы логичнее если шпиндель разгоняется в G0 X124.5 Y408.. Z home... (так это работает в mach).
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Как в EMC настраивается задержка на разгон шпинделя

Сообщение nkp »

Tulumbas писал(а):Не верно описал происходящее
понял)
тут нужно отслеживать виды перемещений...
написать небольшой компонент для этого(можно и без него)
сейчас рыбу набросаю...
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Как в EMC настраивается задержка на разгон шпинделя

Сообщение nkp »

Код: Выделить всё

loadrt and2
addf   and2.0 servo-thread

loadrt timedelay
addf   timedelay.0 servo-thread

loadrt conv_s32_float count=1 
addf   conv_s32_float.0 servo-thread

loadrt near count=1
addf   near.0 servo-thread 

setp timedelay.0.on-delay 10

net spindle-delay motion.spindle-on and2.0.in0

net conv-in conv-s32-float.0.in  motion.motion-type

net  near.0.in1   conv-s32-float.0.out
setp near.0.in2   1.0
net  near-out     near.0.out  and2.0.in1
setp near.0.difference 1.0
 
net and-out       and2.0.out       timedelay.0.in
net spindle-delay timedelay.0.out  motion.spindle-at-speed
что то примерно такое:
motion.motion-type - это у нас

Код: Выделить всё

motion.motion−type OUT S32
These values are from src/emc/nml_intf/motion_types.h
0: Idle (no motion)
1: Traverse
2: Linear feed
3: Arc feed
4: Tool change
5: Probing
6: Rotary axis indexing
то есть - когда G0 - на этом пине 1
компонентом near "ждем",когда на этом пине появится значение больше 1, и только тогда разрешаем
включиться таймеру (разумеется после вкл шпинделя(and2)
===========
ps
"рыба" - потому как не запускал,не проверял)
Аватара пользователя
MX_Master
Мастер
Сообщения: 7478
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3099
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Как в EMC настраивается задержка на разгон шпинделя

Сообщение MX_Master »

G4 P10
Аватара пользователя
Tulumbas
Кандидат
Сообщения: 43
Зарегистрирован: 17 фев 2017, 13:15
Репутация: 2
Настоящее имя: Станислав
Откуда: Санкт Петербург
Контактная информация:

Re: Как в EMC настраивается задержка на разгон шпинделя

Сообщение Tulumbas »

Ругается :
HAL: ERROR: function 'conv_s32_float.0' not found
./pegatron.hal:37: addf failed
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Как в EMC настраивается задержка на разгон шпинделя

Сообщение nkp »

addf conv-s32-float.0 servo-thread
Аватара пользователя
sima8520
Почётный участник
Почётный участник
Сообщения: 4502
Зарегистрирован: 24 ноя 2016, 23:35
Репутация: 1616
Настоящее имя: Илья
Откуда: Беларусь, Гомель
Контактная информация:

Re: Как в EMC настраивается задержка на разгон шпинделя

Сообщение sima8520 »

Сейчас сидел пару часов, разбирался с постпроцессором для SolidCAM, и нашел как добавить задержку на разгон шпинделя
Открываем постпроцессор, ищем процедуру @start_tool
после строки call @usr_spindle_mcode_output
пишем {nb, 'G04 P10'}
Общий вид получается такой
@start_tool
; Handle setting and output for spindle start
if tool_direction eq CW then
iSpindleDir = 3
else
iSpindleDir = 4
endif
call @usr_spindle_output
if !bSpinOnlyUseS
if bSimpleformat
{nb}
endif
call @usr_spindle_mcode_output
{nb, 'G04 P10'}
endif
endp
Амплеич
Новичок
Сообщения: 2
Зарегистрирован: 24 июн 2019, 15:21
Репутация: 0
Настоящее имя: Александр
Контактная информация:

Re: Как в EMC настраивается задержка на разгон шпинделя

Сообщение Амплеич »

nkp писал(а):

Код: Выделить всё

loadrt and2
addf   and2.0 servo-thread

loadrt timedelay
addf   timedelay.0 servo-thread

loadrt conv_s32_float count=1 
addf   conv_s32_float.0 servo-thread

loadrt near count=1
addf   near.0 servo-thread 

setp timedelay.0.on-delay 10

net spindle-delay motion.spindle-on and2.0.in0

net conv-in conv-s32-float.0.in  motion.motion-type

net  near.0.in1   conv-s32-float.0.out
setp near.0.in2   1.0
net  near-out     near.0.out  and2.0.in1
setp near.0.difference 1.0
 
net and-out       and2.0.out       timedelay.0.in
net spindle-delay timedelay.0.out  motion.spindle-at-speed
что то примерно такое:
motion.motion-type - это у нас

Код: Выделить всё

motion.motion−type OUT S32
These values are from src/emc/nml_intf/motion_types.h
0: Idle (no motion)
1: Traverse
2: Linear feed
3: Arc feed
4: Tool change
5: Probing
6: Rotary axis indexing
то есть - когда G0 - на этом пине 1
компонентом near "ждем",когда на этом пине появится значение больше 1, и только тогда разрешаем
включиться таймеру (разумеется после вкл шпинделя(and2)
===========
ps
"рыба" - потому как не запускал,не проверял)
J;bdk.

Оживлю тему. Такой способ не работает из-зи near. Motion-type может быть "1" при G0 и "2" при G1. Т к стоит near.difference 1.0, т е разница между сравниваемым значением и нужным может отличаться на единицу, то и при простое (значение motion-type 0) результат сравнения true. Т. о. с G1 этот код отработает, но если в управляющей программе встретится G0, то это перемещение выполняется, и код тормозится на первом встреченном G1.

Понятное дело, что G0 пользоваться при резке кощунство, но может кто знает как сравнить значения пинов с целым числом еще как-то?

Пока что я варварски решил этот вопрос паузой всей программы на время 10 сек, как только встречается M3, но это не совсем правильно, костыль
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Как в EMC настраивается задержка на разгон шпинделя

Сообщение nkp »

в своем компоненте сможешь легко сделать любые действия
http://linuxcnc.org/docs/2.7/html/hal/comp.html
https://www.chipmaker.ru/topic/156127/
Амплеич
Новичок
Сообщения: 2
Зарегистрирован: 24 июн 2019, 15:21
Репутация: 0
Настоящее имя: Александр
Контактная информация:

Re: Как в EMC настраивается задержка на разгон шпинделя

Сообщение Амплеич »

Подгружать свой компонент можно в custom.hal?
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Как в EMC настраивается задержка на разгон шпинделя

Сообщение nkp »

Амплеич писал(а):Подгружать свой компонент можно в custom.hal?
да ,конечно...
как любой другой компонент...
tarabarka
Новичок
Сообщения: 29
Зарегистрирован: 18 май 2022, 20:43
Репутация: 3
Контактная информация:

Re: Как в EMC настраивается задержка на разгон шпинделя

Сообщение tarabarka »

Мне помогло использование halui.program.pause/resume
rstm
Кандидат
Сообщения: 49
Зарегистрирован: 25 фев 2018, 16:20
Репутация: 5
Настоящее имя: Рустам
Откуда: Уфа
Контактная информация:

Re: Как в EMC настраивается задержка на разгон шпинделя

Сообщение rstm »

Здравствуйте! А как получить в LinuxCNC значение выхода GPIO_PWM на плате SMD-Taxi, а затем заставить его влиять на spindle.at-speed? (интерфейс qtdragon) Чтоб задержка на разгон шпинделя длилась пока на сблизятся заданное и актуальное значения PWM. Modbus на HL3000-4040-T отсутствует. Есть только FO который Изображение
Ответить

Вернуться в «LinuxCNC»