Всем - здравствуйте!
Подскажите, пожалуйста, какой командой можно попросить оператора ввести какое-то число (например, какой-то размер, который оператор руками померяет)?
Для вывода оператору есть (MSG,) и (PRINT,).
Но вот как ввести число в какую-то переменную (параметр)?
Как ввести данные (число) от оператора?
- hmnijp
- Мастер
- Сообщения: 1731
- Зарегистрирован: 20 авг 2017, 15:02
- Репутация: 533
- Настоящее имя: Константин
- Откуда: Ульяновск
- Контактная информация:
Re: Как ввести данные (число) от оператора?
в mdi написать #<_var> = 123kari писал(а): ↑31 мар 2024, 17:49 Всем - здравствуйте!
Подскажите, пожалуйста, какой командой можно попросить оператора ввести какое-то число (например, какой-то размер, который оператор руками померяет)?
Для вывода оператору есть (MSG,) и (PRINT,).
Но вот как ввести число в какую-то переменную (параметр)?
Re: Как ввести данные (число) от оператора?
Спасибо за ответ, извините, не заметил сразу.
Не срабатывает!
И в документации написано: "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."
Как сделать правильно? Реально очень важно.
-
- Мастер
- Сообщения: 397
- Зарегистрирован: 10 фев 2020, 18:39
- Репутация: 13
- Настоящее имя: Виталий
- Контактная информация:
Re: Как ввести данные (число) от оператора?
Задача не совсем понятна.....
У меня в программе #200=[#200+1] - счетчик деталей
Если его надо обнулить, пишу в MDI #200=0
Если его надо ввести число, пишу в MDI #200=123(нужное)
#200 - ячейка ( может быть другой )
У меня в программе #200=[#200+1] - счетчик деталей
Если его надо обнулить, пишу в MDI #200=0
Если его надо ввести число, пишу в MDI #200=123(нужное)
#200 - ячейка ( может быть другой )
- hmnijp
- Мастер
- Сообщения: 1731
- Зарегистрирован: 20 авг 2017, 15:02
- Репутация: 533
- Настоящее имя: Константин
- Откуда: Ульяновск
- Контактная информация:
Re: Как ввести данные (число) от оператора?
да, действительно. Во время выполнения кода, на паузе, нельзя выполнять команды 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. далее её можете скопировать в вашу переменную следующей строкой.
Re: Как ввести данные (число) от оператора?
Спасибо! Попробую. Я пока сделал иначе, но довольно извращённым способом. Ваш, наверное, правильнее.