Как ввести данные (число) от оператора?

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
kari
Новичок
Сообщения: 4
Зарегистрирован: 31 мар 2024, 17:21
Репутация: 0
Контактная информация:

Как ввести данные (число) от оператора?

Сообщение kari »

Всем - здравствуйте!

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

Для вывода оператору есть (MSG,) и (PRINT,).

Но вот как ввести число в какую-то переменную (параметр)?
Аватара пользователя
hmnijp
Мастер
Сообщения: 1731
Зарегистрирован: 20 авг 2017, 15:02
Репутация: 533
Настоящее имя: Константин
Откуда: Ульяновск
Контактная информация:

Re: Как ввести данные (число) от оператора?

Сообщение hmnijp »

kari писал(а): 31 мар 2024, 17:49 Всем - здравствуйте!

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

Для вывода оператору есть (MSG,) и (PRINT,).

Но вот как ввести число в какую-то переменную (параметр)?
в mdi написать #<_var> = 123
kari
Новичок
Сообщения: 4
Зарегистрирован: 31 мар 2024, 17:21
Репутация: 0
Контактная информация:

Re: Как ввести данные (число) от оператора?

Сообщение kari »

hmnijp писал(а): 31 мар 2024, 20:13 в mdi написать #<_var> = 123
Спасибо за ответ, извините, не заметил сразу.

Не срабатывает!
И в документации написано: "M0 - pause a running program temporarily. LinuxCNC remains in the Auto Mode so MDI and other manual actions are not enabled. Pressing the resume button will restart the program at the following line."

Как сделать правильно? Реально очень важно.
tokarka63
Мастер
Сообщения: 397
Зарегистрирован: 10 фев 2020, 18:39
Репутация: 13
Настоящее имя: Виталий
Контактная информация:

Re: Как ввести данные (число) от оператора?

Сообщение tokarka63 »

Задача не совсем понятна.....
У меня в программе #200=[#200+1] - счетчик деталей
Если его надо обнулить, пишу в MDI #200=0
Если его надо ввести число, пишу в MDI #200=123(нужное)
#200 - ячейка ( может быть другой )
kari
Новичок
Сообщения: 4
Зарегистрирован: 31 мар 2024, 17:21
Репутация: 0
Контактная информация:

Re: Как ввести данные (число) от оператора?

Сообщение kari »

tokarka63 писал(а): 24 май 2024, 11:10 У меня в программе #200=[#200+1] - счетчик деталей
Если его надо обнулить, пишу в MDI #200=0
У меня во время выполнения программы (даже если вставить M0) MDI не работает.
Аватара пользователя
hmnijp
Мастер
Сообщения: 1731
Зарегистрирован: 20 авг 2017, 15:02
Репутация: 533
Настоящее имя: Константин
Откуда: Ульяновск
Контактная информация:

Re: Как ввести данные (число) от оператора?

Сообщение hmnijp »

kari писал(а): Как сделать правильно? Реально очень важно.
да, действительно. Во время выполнения кода, на паузе, нельзя выполнять команды mdi. Для этого нужно остановить код


Если вам нужно вводить какие-то данные во время выполнения кода - это можно сделать через analog-input:
M66 E{номер аналогового входа} L0
https://linuxcnc.org/docs/html/gcode/m- ... #mcode:m66

Значение подается на hal-пин, для ввода можно использовать панель pyvcp на которой разместите поле ввода:
https://linuxcnc.org/docs/html/gui/pyvc ... ber_inputs

В хале подсоединяете ваше поле ввода к аналоговому входу:
net anolog-input-0 pyvcp.my-input => motion.analog-in-00

После выполнения
M66 E0 L0
значение из поля ввода поместится в переменную #5399. далее её можете скопировать в вашу переменную следующей строкой.
kari
Новичок
Сообщения: 4
Зарегистрирован: 31 мар 2024, 17:21
Репутация: 0
Контактная информация:

Re: Как ввести данные (число) от оператора?

Сообщение kari »

hmnijp писал(а): 27 май 2024, 11:52
kari писал(а): Как сделать правильно? Реально очень важно.
Если вам нужно вводить какие-то данные во время выполнения кода - это можно сделать через analog-input: ...
Спасибо! Попробую. Я пока сделал иначе, но довольно извращённым способом. Ваш, наверное, правильнее.
Ответить

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