Запуск шпинделя по M62

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Harconnen
Кандидат
Сообщения: 46
Зарегистрирован: 25 авг 2015, 18:53
Репутация: 0
Контактная информация:

Запуск шпинделя по M62

Сообщение Harconnen »

Здравствуйте!
На этом форуме увидел тему, что если запускать шпиндель по командам M62 не будет микропаузы.
Там предлагалось в HAL прописать net spindle-on <= motion.digital-out-01 и запускать шпиндель командой - включать M62 P01, выключать M63 P01.
Помогите поправить HAL, у меня простой правкой не получилось. Может потому что у меня шпиндель включается только вместе с движением Осей? Командами шпинделя управляется 4 ось.

Помогите в HAL прописать замену M3, M4, M5
Вложения
4-axis.hal
(4.56 КБ) 1036 скачиваний
Аватара пользователя
solo
Мастер
Сообщения: 1374
Зарегистрирован: 20 окт 2011, 18:39
Репутация: 272
Настоящее имя: Юрий Соловьев
Откуда: Украина Харьков
Контактная информация:

Re: Запуск шпинделя по M62

Сообщение solo »

а если попробовать команды для вкл М64 Р01 и для выкл. М65 Р01
Harconnen
Кандидат
Сообщения: 46
Зарегистрирован: 25 авг 2015, 18:53
Репутация: 0
Контактная информация:

Re: Запуск шпинделя по M62

Сообщение Harconnen »

solo писал(а):а если попробовать команды для вкл М64 Р01 и для выкл. М65 Р01
Я пробовал, но похоже в данном случае, все не так просто. В этом HAL как ни пытался сделать - не получается, знаний маловато. Похоже данный конфиг парой исправлений не обойдется. Здесь настроено, что шпиндель (4 ось) включается автоматом во время движения по осям, да еще я постоянно использую M3,M4. Я так понял, что похоже нужно переписывать весь hal другим способом типа как здесь Re: Использование шпинделя для управления допоборудованием #60, но там от этого способа отказались, и поэтому не могу им воспользоваться.
Аватара пользователя
solo
Мастер
Сообщения: 1374
Зарегистрирован: 20 окт 2011, 18:39
Репутация: 272
Настоящее имя: Юрий Соловьев
Откуда: Украина Харьков
Контактная информация:

Re: Запуск шпинделя по M62

Сообщение solo »

я лично не очень понял что тебе нада
команды М62-М64 просто можно при выполнении Ж кода передавать "1" или "0" на соответствующие пины в том числе ЛПТ порта , а что ты присоединил к этому выводу то ли реле то ли шпиндель это дело техники
Harconnen
Кандидат
Сообщения: 46
Зарегистрирован: 25 авг 2015, 18:53
Репутация: 0
Контактная информация:

Re: Запуск шпинделя по M62

Сообщение Harconnen »

Вот кусок УП
Это УП небольшой дуги

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

G00 X62.8330 Y154.5682
G00 Z10
M3 S3.8
G01 X65.4844 Y155.9719 F200 (останавливается и продолжает)
M3 S0.02  
G02 X73.9847 Y158.1157 I8.6333 J-16.3073 F1000
G02 X79.1104 Y155.9719 I0.0510 J-7.0776 (останавливается и продолжает)
M4 S3.8 
G01 X81.2016 Y153.8209 F200
M5
G00 Z10
Если M3 и M4 убрать, то движение равномерное. Но нужно, чтобы оно было равномерное и с M, или M чем нибудь заменить типа M64 P01
Последний раз редактировалось Harconnen 25 авг 2017, 16:55, всего редактировалось 2 раза.
Harconnen
Кандидат
Сообщения: 46
Зарегистрирован: 25 авг 2015, 18:53
Репутация: 0
Контактная информация:

Re: Запуск шпинделя по M62

Сообщение Harconnen »

Здесь на форуме есть тема с лазером и такими-же проблемами там заменили M3 на M64P01. Но там нужно просто вкл/выкл, в моем случае все сложнее.
Harconnen
Кандидат
Сообщения: 46
Зарегистрирован: 25 авг 2015, 18:53
Репутация: 0
Контактная информация:

Re: Запуск шпинделя по M62

Сообщение Harconnen »

solo писал(а):команды М62-М64 просто можно при выполнении Ж кода передавать "1" или "0"
Это я уже понял, но в моем случае этот код "net spindle-on <= motion.digital-out-01" шпиндель при команде M64 P01 никак не реагирует.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Запуск шпинделя по M62

Сообщение Serg »

Harconnen писал(а):M3 S3.8
M67 E0 Q3.8 M62 P0

net spindle-on <= motion.digital-out-01
net vel-cmd stepgen.3.velocity-cmd <= motion.analog-out-00
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Harconnen
Кандидат
Сообщения: 46
Зарегистрирован: 25 авг 2015, 18:53
Репутация: 0
Контактная информация:

Re: Запуск шпинделя по M62

Сообщение Harconnen »

UAVpilot, спасибо, в принципе получилось. Единственное в моем hal "net spindle-on <= motion.digital-out-01" это оказалось бесполезно. У меня получилось останавливать командой M68 E0 Q0 и делать реверс M68 E0 Q-3.8.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Запуск шпинделя по M62

Сообщение Serg »

Harconnen писал(а):Единственное в моем hal "net spindle-on <= motion.digital-out-01" это оказалось бесполезно.
Я просто в твоём .hal увидел, что это используется...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Harconnen
Кандидат
Сообщения: 46
Зарегистрирован: 25 авг 2015, 18:53
Репутация: 0
Контактная информация:

Re: Запуск шпинделя по M62

Сообщение Harconnen »

UAVpilot, не подскажешь как правильно написать чтобы команда M68 обнулилась или отменилась, если УП остановлена на пол пути, а то если нажать стоп то ось все равно вращается.
На форуме есть пример, но ко мне он не подходит, выдает ошибку что and2 работает с BIT.

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

###########################################################################
net program_is_running    halui.program.is-running   and2.1.in0           #
net laser_on              motion.digital-out-01      and2.1.in1           #
net and2_1_out          and2.1.out    and2.0.in0                          #
#net spindle-on <= motion.digital-out-01 =>    and2.0.in0                 #
###########################################################################                
 
Re: emc2 и со2 лазер #226
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Запуск шпинделя по M62

Сообщение Serg »

Есть 2 решения - простое и правильное:
простое: просто задействовать stepgen.3.enable - при нажатии стоп шпиндель остановится, но при отжатии снова включится.
правильное: при нажатии стоп нужно помимо прочего ещё и обнулять задание (в случае с M67 значение motion.analog-out-00) - подобное можно сделать только написав соотв. логику на HAL.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Запуск шпинделя по M62

Сообщение nkp »

в хал:

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

loadrt and2
addf  and2.0 servo-thread

net program_not_running      halui.program.is-idle   and2.0.in0           
net spindle_on              motion.spindle-brake         and2.0.in1 
          
net and2_0_out          and2.0.out    halui.mdi-command-00  


в ини:

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

 [HALUI] 
MDI_COMMAND = M68 E0 Q0
Harconnen
Кандидат
Сообщения: 46
Зарегистрирован: 25 авг 2015, 18:53
Репутация: 0
Контактная информация:

Re: Запуск шпинделя по M62

Сообщение Harconnen »

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

Re: Запуск шпинделя по M62

Сообщение nkp »

все работает
наверно я ошибся(странно,что работает))
motion.spindle-brake срабатывает когда шпиндель остановлен...
а нам нужен пин ,который активен при работающем шпинделе
motion.spindle-on например

то есть логика такая:
когда программа(Жкод) не запущена И шпиндель вращается ==>подаем MDIкоманду M68 E0 Q0

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

loadrt and2
addf  and2.0 servo-thread

net program_not_running      halui.program.is-idle   and2.0.in0           
net spindle_on              motion.spindle-on        and2.0.in1 
          
net and2_0_out          and2.0.out    halui.mdi-command-00 
Harconnen
Кандидат
Сообщения: 46
Зарегистрирован: 25 авг 2015, 18:53
Репутация: 0
Контактная информация:

Re: Запуск шпинделя по M62

Сообщение Harconnen »

nkp, Вот в этом варианте не работает, после прерывания программы, 4 ось все равно вращается.
Может это потому, что теперь мы не управляем 4 осью как шпинделем, сейчас в hal прописано так "net vel-cmd stepgen.3.velocity-cmd <= motion.analog-out-00"
или все равно идет через шпиндель?
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Запуск шпинделя по M62

Сообщение nkp »

Harconnen писал(а):Может это потому, что теперь мы не управляем 4 осью как шпинделем,
да ,это я протупил,не разобравшись в теме до конца :)

тогда этот костыль можно сократить
вместо всего этого куска в хал:

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

loadrt and2
addf  and2.0 servo-thread

net program_not_running      halui.program.is-idle   and2.0.in0           
net spindle_on              motion.spindle-on        and2.0.in1 
          
net and2_0_out          and2.0.out    halui.mdi-command-00 
можно прописать одну строку:

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

net program_not_running      halui.program.is-idle  halui.mdi-command-00    
ошибка при загрузке будет,потому как емс пытается выполнить mdi команду,а без home не может
можно конечно добавить условие ,что выполнить только конда все оси в нулях...
Harconnen
Кандидат
Сообщения: 46
Зарегистрирован: 25 авг 2015, 18:53
Репутация: 0
Контактная информация:

Re: Запуск шпинделя по M62

Сообщение Harconnen »

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

Re: Запуск шпинделя по M62

Сообщение nkp »

все пины из хал файлов конфига обновляются в потоке постоянно...
но каких то "лишних" 10-20 строк можно считать никак не влияют...
убрать можно ради стройности структуры файла ;)
Ответить

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