Страница 1 из 1
Как ввести данные (число) от оператора?
Добавлено: 31 мар 2024, 17:49
kari
Всем - здравствуйте!
Подскажите, пожалуйста, какой командой можно попросить оператора ввести какое-то число (например, какой-то размер, который оператор руками померяет)?
Для вывода оператору есть (MSG,) и (PRINT,).
Но вот как ввести число в какую-то переменную (параметр)?
Re: Как ввести данные (число) от оператора?
Добавлено: 31 мар 2024, 20:13
hmnijp
kari писал(а): ↑31 мар 2024, 17:49
Всем - здравствуйте!
Подскажите, пожалуйста, какой командой можно попросить оператора ввести какое-то число (например, какой-то размер, который оператор руками померяет)?
Для вывода оператору есть (MSG,) и (PRINT,).
Но вот как ввести число в какую-то переменную (параметр)?
в mdi написать
#<_var> = 123
Re: Как ввести данные (число) от оператора?
Добавлено: 21 май 2024, 18:57
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."
Как сделать правильно? Реально очень важно.
Re: Как ввести данные (число) от оператора?
Добавлено: 24 май 2024, 11:10
tokarka63
Задача не совсем понятна.....
У меня в программе #200=[#200+1] - счетчик деталей
Если его надо обнулить, пишу в MDI #200=0
Если его надо ввести число, пишу в MDI #200=123(нужное)
#200 - ячейка ( может быть другой )
Re: Как ввести данные (число) от оператора?
Добавлено: 26 май 2024, 18:58
kari
tokarka63 писал(а): ↑24 май 2024, 11:10
У меня в программе #200=[#200+1] - счетчик деталей
Если его надо обнулить, пишу в MDI #200=0
У меня во время выполнения программы (даже если вставить M0) MDI не работает.
Re: Как ввести данные (число) от оператора?
Добавлено: 27 май 2024, 11:52
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. далее её можете скопировать в вашу переменную следующей строкой.
Re: Как ввести данные (число) от оператора?
Добавлено: 28 май 2024, 18:49
kari
hmnijp писал(а): ↑27 май 2024, 11:52
kari писал(а): ↑
Как сделать правильно? Реально очень важно.
Если вам нужно вводить какие-то данные во время выполнения кода - это можно сделать через analog-input: ...
Спасибо! Попробую. Я пока сделал иначе, но довольно извращённым способом. Ваш, наверное, правильнее.