Страница 1 из 1
Запуск шпинделя по M62
Добавлено: 24 авг 2017, 16:04
Harconnen
Здравствуйте!
На этом форуме увидел тему, что если запускать шпиндель по командам M62 не будет микропаузы.
Там предлагалось в HAL прописать net spindle-on <= motion.digital-out-01 и запускать шпиндель командой - включать M62 P01, выключать M63 P01.
Помогите поправить HAL, у меня простой правкой не получилось. Может потому что у меня шпиндель включается только вместе с движением Осей? Командами шпинделя управляется 4 ось.
Помогите в HAL прописать замену M3, M4, M5
Re: Запуск шпинделя по M62
Добавлено: 25 авг 2017, 16:01
solo
а если попробовать команды для вкл М64 Р01 и для выкл. М65 Р01
Re: Запуск шпинделя по M62
Добавлено: 25 авг 2017, 16:29
Harconnen
solo писал(а):а если попробовать команды для вкл М64 Р01 и для выкл. М65 Р01
Я пробовал, но похоже в данном случае, все не так просто. В этом HAL как ни пытался сделать - не получается, знаний маловато. Похоже данный конфиг парой исправлений не обойдется. Здесь настроено, что шпиндель (4 ось) включается автоматом во время движения по осям, да еще я постоянно использую M3,M4. Я так понял, что похоже нужно переписывать весь hal другим способом типа как здесь
Re: Использование шпинделя для управления допоборудованием #60, но там от этого способа отказались, и поэтому не могу им воспользоваться.
Re: Запуск шпинделя по M62
Добавлено: 25 авг 2017, 16:41
solo
я лично не очень понял что тебе нада
команды М62-М64 просто можно при выполнении Ж кода передавать "1" или "0" на соответствующие пины в том числе ЛПТ порта , а что ты присоединил к этому выводу то ли реле то ли шпиндель это дело техники
Re: Запуск шпинделя по M62
Добавлено: 25 авг 2017, 16:43
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
Re: Запуск шпинделя по M62
Добавлено: 25 авг 2017, 16:45
Harconnen
Здесь на форуме есть тема с лазером и такими-же проблемами там заменили M3 на M64P01. Но там нужно просто вкл/выкл, в моем случае все сложнее.
Re: Запуск шпинделя по M62
Добавлено: 25 авг 2017, 16:49
Harconnen
solo писал(а):команды М62-М64 просто можно при выполнении Ж кода передавать "1" или "0"
Это я уже понял, но в моем случае этот код "net spindle-on <= motion.digital-out-01" шпиндель при команде M64 P01 никак не реагирует.
Re: Запуск шпинделя по M62
Добавлено: 25 авг 2017, 17:50
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
Re: Запуск шпинделя по M62
Добавлено: 25 авг 2017, 18:50
Harconnen
UAVpilot, спасибо, в принципе получилось. Единственное в моем hal "net spindle-on <= motion.digital-out-01" это оказалось бесполезно. У меня получилось останавливать командой M68 E0 Q0 и делать реверс M68 E0 Q-3.8.
Re: Запуск шпинделя по M62
Добавлено: 25 авг 2017, 23:25
Serg
Harconnen писал(а):Единственное в моем hal "net spindle-on <= motion.digital-out-01" это оказалось бесполезно.
Я просто в твоём .hal увидел, что это используется...
Re: Запуск шпинделя по M62
Добавлено: 27 авг 2017, 17:40
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
Re: Запуск шпинделя по M62
Добавлено: 27 авг 2017, 18:05
Serg
Есть 2 решения - простое и правильное:
простое: просто задействовать stepgen.3.enable - при нажатии стоп шпиндель остановится, но при отжатии снова включится.
правильное: при нажатии стоп нужно помимо прочего ещё и обнулять задание (в случае с M67 значение motion.analog-out-00) - подобное можно сделать только написав соотв. логику на HAL.
Re: Запуск шпинделя по M62
Добавлено: 27 авг 2017, 18:12
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
в ини:
Re: Запуск шпинделя по M62
Добавлено: 28 авг 2017, 12:08
Harconnen
nkp, спасибо, все работает.
Re: Запуск шпинделя по M62
Добавлено: 28 авг 2017, 12:21
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
Re: Запуск шпинделя по M62
Добавлено: 28 авг 2017, 15:27
Harconnen
nkp, Вот в этом варианте не работает, после прерывания программы, 4 ось все равно вращается.
Может это потому, что теперь мы не управляем 4 осью как шпинделем, сейчас в hal прописано так "net vel-cmd stepgen.3.velocity-cmd <= motion.analog-out-00"
или все равно идет через шпиндель?
Re: Запуск шпинделя по M62
Добавлено: 29 авг 2017, 09:49
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 не может
можно конечно добавить условие ,что выполнить только конда все оси в нулях...
Re: Запуск шпинделя по M62
Добавлено: 29 авг 2017, 12:02
Harconnen
nkp, большое спасибо, все работает отлично.
Хотел еще узнать, нужно ли вычищать hal от ненужного кода (например если не пользуешься шпинделем, то все что к нему относится) или это не принципиально и ресурсы компьютера лишние не потребляет?
Re: Запуск шпинделя по M62
Добавлено: 29 авг 2017, 12:19
nkp
все пины из хал файлов конфига обновляются в потоке постоянно...
но каких то "лишних" 10-20 строк можно считать никак не влияют...
убрать можно ради стройности структуры файла
