Отправить G комманду из макроса
-
cnc-00
- Новичок
- Сообщения: 22
- Зарегистрирован: 13 авг 2012, 23:56
- Репутация: 0
- Контактная информация:
Отправить G комманду из макроса
Как из макроса (M100 to M199 User Defined Commands) отправить G комманду (например G0 X50) и чтобы станок ее отработал.
Хочу получить аналог Мачевской (Mach3) функции - code "G0 X50"
Хочу получить аналог Мачевской (Mach3) функции - code "G0 X50"
-
aftaev
- Зачётный участник

- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6194
- Откуда: Казахстан.
- Контактная информация:
Re: Отправить G комманду из макроса
Что значит отправить?
Может при выполнении команды М100 должена быть отработан код G0 X50 ?
Может при выполнении команды М100 должена быть отработан код G0 X50 ?
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Отправить G комманду из макроса
это лучше сделать о-кодами
это сохраняешь в файл name.ngc
и ложишь его в /home/ЮЗЕР/emc2/nc_files
а в программе пишешь
http://www.linuxcnc.org/docs/2.5/html/gcode/o-code.html
Код: Выделить всё
o<name> sub
G0 X50
o<name> endsub
и ложишь его в /home/ЮЗЕР/emc2/nc_files
а в программе пишешь
Код: Выделить всё
o<name> call-
cnc-00
- Новичок
- Сообщения: 22
- Зарегистрирован: 13 авг 2012, 23:56
- Репутация: 0
- Контактная информация:
Re: Отправить G комманду из макроса
Даaftaev писал(а):Может при выполнении команды М100 должена быть отработан код G0 X50 ?
Такое не подходит, нужен более гибкий вариант.nkp писал(а):o<name> subG0 X50o<name> endsub
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Отправить G комманду из макроса
ты увидишь-это очень гибкий вариантcnc-00 писал(а):Такое не подходит, нужен более гибкий вариант.
поясни-чего тебе в нем не хватает???
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Отправить G комманду из макроса
пишешь:
а в ж-коде
надо проехать 65- пишешь:
то есть ты передаешь в код свой аргумент
ну это цветочки-переменных может быть до 30
Код: Выделить всё
o<name1> sub
f50
G1 x[#1]
o<name1> endsubКод: Выделить всё
o<name> call [50]Код: Выделить всё
o<name> call [65]ну это цветочки-переменных может быть до 30
-
cnc-00
- Новичок
- Сообщения: 22
- Зарегистрирован: 13 авг 2012, 23:56
- Репутация: 0
- Контактная информация:
Re: Отправить G комманду из макроса
Как тогда получить координаты из G-code?nkp писал(а):поясни-чего тебе в нем не хватает???
Поясняю. Есть круглошлифовальный станок который должен шлифовать заготовку до 25.00 мм
Шлифовщик измеряет заготовку она равна 26.4 мм т.е. нужно шлифонуть 1.4 мм. Он забивает отступ в экране Axis 1.4 мм (т.е. мы шлифуем до 0) и запускает G-Code.
В G-code макрос М150 который шлифует до 0, т.е. он получает текущее значение, в нашем случаи 1.4 мм и потихоньку обрабатывает заготовку (выждал 2 прохода, снял сотку, опять выждал 2 прохода, снял сотку и так до 0) следя за координатами.
Следующая заготовка 26.2, забиваем в экран отступ 1.2 мм. И запускаем шлифовку. И т.д. и т.п.
Сейчас это сделанно через g-code, но в этом минус, для каждого новой заготовки нужно редактировать g-code (изменяя начальный диаметр заготовки)
Я НИ ХОЧУ ЧТОБЫ ШЛИФОВЩИК ЛАЗИЛ G-CODE И ТАМ ЧТО-ТО МЕНЯЛ, ПУСТЬ ОН РАБОТАЕТ ТОЛЬКО С ЭКРАНОМ ЗАДАВАЯ КООРДИНАТЫ.
Код: Выделить всё
(LinuxCNC)
(шлифовка)
(для кругло-шлифовального)
#1=26.20 (начальный диаметр)
#2=25.00 (конечный диаметр)
#3=0.01 (шаг переезда)
#4=2 (количество выхаживаний перед переездом)
M103
G91
O101 while [#2 lt #1] (>)
#100 = 1 (сначало выхаживание)
O102 while [#100 le #4] (< выхаживание)
M101
#100 = [#100 + 1]
O102 endwhile
G0 X-#3 (переезд)
#2 = [#2+#3]
O101 endwhile
M101
M101
M101
M101
M101
M101
G90
G0 x50
(M120 стоп)
M102 (включить лампу)
M30
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Отправить G комманду из макроса
приведенный код работает в виде ngcgui ??
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Отправить G комманду из макроса
если б содержимое м101-
то сейчас набросали бы мастер
то сейчас набросали бы мастер
-
cnc-00
- Новичок
- Сообщения: 22
- Зарегистрирован: 13 авг 2012, 23:56
- Репутация: 0
- Контактная информация:
Re: Отправить G комманду из макроса
Неа, обычный G-code, набранный вnkp писал(а):приведенный код работает в виде ngcgui ??
Если я правильно понял вы хотите мастер сделать.
Мастер мастером, но я все же хочу функцию Code из Mach3

-
cnc-00
- Новичок
- Сообщения: 22
- Зарегистрирован: 13 авг 2012, 23:56
- Репутация: 0
- Контактная информация:
Re: Отправить G комманду из макроса
А еще М102, а завтра еще что-то добавится это нескончаемый процессnkp писал(а):если б содержимое м101-
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Отправить G комманду из макроса
я же как пример хотел показатьcnc-00 писал(а):А еще М102, а завтра еще что-то добавится это нескончаемый процесс
потом сам будешь править код как заблагорассудится
мастер-это очень удобно!!!
ввел значения -и поехали
то есть задача-из м-файла запускать ж-код?cnc-00 писал(а):Мастер мастером, но я все же хочу функцию Code из Mach3
-
cnc-00
- Новичок
- Сообщения: 22
- Зарегистрирован: 13 авг 2012, 23:56
- Репутация: 0
- Контактная информация:
Re: Отправить G комманду из макроса
Даnkp писал(а):то есть задача-из м-файла запускать ж-код?
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Отправить G комманду из макроса
Вид примерно такой:
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Отправить G комманду из макроса
Ну смотри-в чем разница :cnc-00 писал(а):Да
файл называется О101
или
файл называется М101
(ты что то имеешь против буквы О
-
cnc-00
- Новичок
- Сообщения: 22
- Зарегистрирован: 13 авг 2012, 23:56
- Репутация: 0
- Контактная информация:
Re: Отправить G комманду из макроса
Для большего прояснения - поставлю задачу иначе (вернее эта задача поставлена мне)
Имеется заготовка, которая на момент установки имеет неопределенный диаметр. (возможно даже неопределенную форму после термообработки)
Станочник клавишами двигает круг до касания. Далее нажимает "зеленую" кнопку на пульте и валит к следующему станку. (это все, что он должен знать про CNC)
"Зеленая" кнопка запускает макрос (M101 или O4847 до жопы), который запоминает текущее положение оси и ждет появления сигнала с концевика. Каждый раз при появлении сигнала сигналы макрос перемещает ось на фиксированый промежуток. При достижении заданного диаметра, макрос игнорирует концевик и "выхаживает" заготовку в течении заданного промежутка времени. Далее макрос "гасит" станок и зажигает "большой красный фонарь".
Далее дело рук станочника.
Все это с лехкостью реализовано на мач3.
Настало время одолевать linuxcnc.
Имеется заготовка, которая на момент установки имеет неопределенный диаметр. (возможно даже неопределенную форму после термообработки)
Станочник клавишами двигает круг до касания. Далее нажимает "зеленую" кнопку на пульте и валит к следующему станку. (это все, что он должен знать про CNC)
"Зеленая" кнопка запускает макрос (M101 или O4847 до жопы), который запоминает текущее положение оси и ждет появления сигнала с концевика. Каждый раз при появлении сигнала сигналы макрос перемещает ось на фиксированый промежуток. При достижении заданного диаметра, макрос игнорирует концевик и "выхаживает" заготовку в течении заданного промежутка времени. Далее макрос "гасит" станок и зажигает "большой красный фонарь".
Далее дело рук станочника.
Все это с лехкостью реализовано на мач3.
Настало время одолевать linuxcnc.
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Отправить G комманду из макроса
ну так бы и раньше...
говорят же-в правильно поставленном вопросе-50% ответа
говорят же-в правильно поставленном вопросе-50% ответа
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Отправить G комманду из макроса
для контроля состояния концевика можно использовать ж38.2
в хал добавляем:
(пин парпорта по выбору)
вот наброски кода:
но так как я понимаю хоть один параметр -но вносить надо(наверно конечный диаметр)
то можно прикрутить либо окошко pyvcp ,либо вкладку-что более кошерно.
Вот здесь пробовал его.
Файл мастера:
в хал добавляем:
Код: Выделить всё
net proba parport.0.pin-13-in-not motion.probe-input вот наброски кода:
Код: Выделить всё
#<st_diam> = 26.20
#<end_diam> = 26.16
#<step> = 0.01
#<amount> = 2
#<rep> = 3
g92 x0 z0
f50
#<st_rad> =[#<st_diam>/2]
#<end_rad> =[#<end_diam>/2]
O101 while [#<st_rad> gt #<end_rad>]
#<nv>=1
O102 while [#<nv> le 2]
#<nv>=[#<nv>+1]
g38.2 z-222
g4 p2
g1 z#5223
O102 endwhile
g91
G1 X[-#<step>]
g90
#<st_rad> = [#<st_rad>-#<step> ]
O101 endwhile
O104 repeat [#<rep> ]
g38.2 z-222
g4 p1
g1 z#5223
O104 endrepeat
g92.1
M2то можно прикрутить либо окошко pyvcp ,либо вкладку-что более кошерно.
Вот здесь пробовал его.
Файл мастера:
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Отправить G комманду из макроса
вот тот же код-но тело циклов теперь-это
вызов файла подпрограммы name.ngc
в name.ngc :
это наметки-так как не понятны некоторые моменты:
что такое "выхаживание" (я предположил что это как бы повторный проход)?
вызов файла подпрограммы name.ngc
Код: Выделить всё
#<st_diam> = 26.20
#<end_diam> = 26.16
#<step> = 0.01
#<amount> = 2
#<rep> = 3
g92 x0 z0
f50
#<st_rad> =[#<st_diam>/2]
#<end_rad> =[#<end_diam>/2]
O101 while [#<st_rad> gt #<end_rad>]
#<nv>=1
O102 while [#<nv> le 2]
#<nv>=[#<nv>+1]
o<name> call
O102 endwhile
g91
G1 X[-#<step>]
g90
#<st_rad> = [#<st_rad>-#<step> ]
O101 endwhile
O104 repeat [#<rep> ]
o<name> call
O104 endrepeat
g92.1
M2Код: Выделить всё
o<name> sub
g38.2 z-222
g1 z#5223
o<name> endsubчто такое "выхаживание" (я предположил что это как бы повторный проход)?
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Отправить G комманду из макроса
M64 P0 - команда для включения пина (лампы)
M65 P0 - команда для выключения пина (лампы)
в хал:
код:
выключение лампы можно дублировать кнопкой
M65 P0 - команда для выключения пина (лампы)
в хал:
Код: Выделить всё
net lamp motion.digital-out-00 parport.0.pin-01-out