Страница 1 из 1

Передача значений из M100..M199

Добавлено: 02 мар 2015, 11:11
Сергей Саныч
Возникла потребность принимать некое (целочисленное) значение при помощи команд M1xx и далее обрабатывать это значение в G-коде. Есть ли в LCNC какие-то стандартные средства для этого?
Альтернативный вариант: как организовать в bash-программе присвоение значения переменной LinuxCNC?

Re: Передача значений из M100..M199

Добавлено: 02 мар 2015, 11:22
Nick
Вроде как у M1xx нет возвращаемых значений.
Сергей Саныч писал(а):Альтернативный вариант: как организовать в bash-программе присвоение значения переменной LinuxCNC?
halcmd setp ...
+ либо M66, либо прямое чтение пина через #<_hal...>.
Смотри первый и 4-й примеры:
http://linuxcnc.org/docs/html/gcode/m-c ... 00-to-M199

Re: Передача значений из M100..M199

Добавлено: 02 мар 2015, 11:58
Сергей Саныч
То есть мне обязательно нужен пин или параметр, следовательно, требуется какой-то компонент?

Re: Передача значений из M100..M199

Добавлено: 02 мар 2015, 12:41
Serg
Сергей Саныч писал(а):То есть мне обязательно нужен пин или параметр, следовательно, требуется какой-то компонент?
Достаточно просто переменной.

Re: Передача значений из M100..M199

Добавлено: 02 мар 2015, 13:18
Сергей Саныч
UAVpilot писал(а):Достаточно просто переменной.
А можно подробней? я понимаю, что могу обращаться к hal-параметру, как к переменной, типа #<_hal[hal_name]>, но ведь для этого все равно нужен объявленный параметр и компонент.

Re: Передача значений из M100..M199

Добавлено: 02 мар 2015, 13:21
verser
Сергей Саныч писал(а):Возникла потребность принимать некое (целочисленное) значение при помощи команд M1xx и далее обрабатывать это значение в G-коде.
А это некое (целочисленное) значение где рождается? Вводится с клавиатуры или как?

Re: Передача значений из M100..M199

Добавлено: 02 мар 2015, 13:25
Сергей Саныч
Получается из диалога. Номер кнопки, нажатой во всплывающем окне (yad). В зависимости от этого G-программа предпринимает разные действия.

Re: Передача значений из M100..M199

Добавлено: 02 мар 2015, 13:34
Nick
Сергей Саныч писал(а):То есть мне обязательно нужен пин или параметр, следовательно, требуется какой-то компонент?
Он уже есть, например, motion.analig-in-00

Re: Передача значений из M100..M199

Добавлено: 02 мар 2015, 13:41
verser
Сергей Саныч писал(а):Получается из диалога. Номер кнопки, нажатой во всплывающем окне (yad)
Этот номер кнопки наверное попадает в stdout, оттуда его забрать в переменную, переменную передать в g-code. Правильно я понял?

Re: Передача значений из M100..M199

Добавлено: 02 мар 2015, 13:51
Сергей Саныч
verser писал(а):Этот номер кнопки наверное попадает в stdout, оттуда его забрать в переменную, переменную передать в g-code. Правильно я понял?
Да.

Re: Передача значений из M100..M199

Добавлено: 02 мар 2015, 14:54
Serg
Сергей Саныч писал(а):А можно подробней? я понимаю, что могу обращаться к hal-параметру
В начальном сообщении про HAL ничего небыло.
Сергей Саныч писал(а):принимать некое (целочисленное) значение при помощи команд M1xx
можно например вот так:
M100 P12345
Сергей Саныч писал(а):далее обрабатывать это значение в G-коде.
можно обащаясь к переменной типа #<_parameter_for_m100>.

Re: Передача значений из M100..M199

Добавлено: 02 мар 2015, 15:04
Nick
UAVpilot писал(а):можно обащаясь к переменной типа #<_parameter_for_m100>
А как его извне (gкода) поменять?

Re: Передача значений из M100..M199

Добавлено: 02 мар 2015, 15:10
verser
или как Nick советовал через M66
в обработке bash после yad забрать номер кнопки в stdout_variable
затем

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

halcmd setp motion.analog-in-00 stdout_variable
а в g-code

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

M66 E0 L0
o100 if [#5399 GT 0]
 # processing...
o100

Re: Передача значений из M100..M199

Добавлено: 02 мар 2015, 15:12
Сергей Саныч
UAVpilot писал(а):В начальном сообщении про HAL ничего небыло.
Да мне и не надо было. Вот тут насоветовали :oops:
UAVpilot писал(а):M100 P12345
Так это туда параметр, а мне бы оттуда чего получить.

Re: Передача значений из M100..M199

Добавлено: 02 мар 2015, 15:25
Serg
Nick писал(а):А как его извне (gкода) поменять?
Откуда извне? Из HAL? С помощью MDI_COMMAND например.
Сергей Саныч писал(а):Так это туда параметр, а мне бы оттуда чего получить.
Внутри O-процедуры присвоить значение переменной, если нужно именно M-код, то воспользуйся REMAP.

Re: Передача значений из M100..M199

Добавлено: 02 мар 2015, 15:47
Nick
M100 - это вывов внешнего исполняемого файла. Как из скрипта поменять значение переменной интерпретатора Gкода?

Re: Передача значений из M100..M199

Добавлено: 02 мар 2015, 15:55
Serg

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

REMAP=M100 modalgroup=10 argspec=@P ngc=my_m100

Re: Передача значений из M100..M199

Добавлено: 02 мар 2015, 17:17
Nick
ок и как в ней запустить yad и получить от него данные?

Re: Передача значений из M100..M199

Добавлено: 02 мар 2015, 19:19
Serg
Встроенным питоном воспользуйся.

Re: Передача значений из M100..M199

Добавлено: 02 мар 2015, 19:38
Nick
уу... точно я и не подумал...
но блин изврат тот еще, на такое даже у меня фантазии не хватило :hehehe: