Lexxa писал(а):в halui есть абсолютно всё, для нормального управления. Достаточно разрулить софт-кнопки ладдером.плюсом сюда давай обсудим хардовые тумблеры и хардовые кнопки.
ИМХО это не очень хорошо. Лучше, чтобы команда на исполнительный пин выходила именно из GUI а не из ладдера.
Лучше будет потому, что не возникнет ситуация, когда на экране нарисовано одно, а при нажатии на кнопку выполняется другое.
Ник, так сделано во всех взрослых ЧПУ, вообще во всех.
Концевики, ренишау, сообщения, м-команды - всё это ререз ладдер.
Ник, поясни, как может возникнуть ситуация, когда на экране одно, а при нажатии на кнопку другое?
На мой взгляд, как раз ладдер и избавит от этого.
Я же писал выше логику.
В общий ини файл прописывается текст для каждой кнопки в каждом режиме
в hal добавляется ладдер поток в пользовательское пространство
подгружается общий ладдер-файл с разруливанием станочноо пульта.
Ладдер-файл, как и gscreen будет единый на все станки до 5 координат. Задействовать кнопку в режиме или нет определить в ини файле элементарно.
В том же ладдере можно защититься от незагруженного gscreen.
Т.е. если мы напишем скрипт, который тупо меняет текст и скрывает/отображает нужные элементы, то написание взрослого интерфейса на этом практически закончится, останется лишь разобраться с вращением 3D и загрукой и редактированием программы.
Ладдер же будет иметь постоянно количество выходов, к которым каждый сможет прицепить нужное ему дейсвие - будь то пускатель включить или кнопку пуск нажать.
Повторюсь. во взрослых ЧПУ станках в общем случае есть 6 режимов:
1) edit
2) AUTO
3) MDI
4) безразмерные перемещения
5) инкрементальные перемещения
6) от махоичка
Сделав 16 софтовых кнопок мы получим аж 96 функций
Режимы должны переключаться от галетника и никак иначе. Во-первых это наглядно, во вторых это надежно, в-третьих это просто с точки зрения linuxcnc, в частности halui. Желательно, чтоб и активная ось переключалась от галетника. Остальное дло вкуса. Никаих кнопок пауза и стоп в УЧПУ быть не должно, это не плеер. Пуск и стоп подачи. Нажал пуск - началась отработка, нажал стоп подачи - остановилась, нажал пуск - продолжили отработку. Захотел программу остановить - нажал стоп подачи, затем Abort.
Кнопка пуск в зависимости от режима должна или программу запускать, или MDI команду отрабатывать. Ну можно еще привязать к ней выход в ноль.
Выход в ноль должен работать только в последовательности, которую задает оператор, это диктуется безопасностью.
Вот написал скрипт.
Он умеет нажимать на n-ную по счету кнопку в активной вкладке notepad.
Запускать его так:
gladevcp -u hardware-buttons.py hardware-buttons.ui
кнопку жамкаем путем изменения пина vbutton или hbutton с нужным номером.
halcmd setp hardware-buttons.vbutton.0 0
Если управлять из Ladder, то если вдруг заглючит GUI, результат будет не предсказуемым. А так у нас нажимается именно та кнопка, которая сейчас отображается прямо над нужной железной кнопкой.
Зачем делать двойную систему обработки кнопки, когда все можно сделать в одном месте?
В двух словах, сначала вызывается get_handlers(halcomp,builder,useropts)
в которой создаем наш объект нашего класса
hwbuttons = HWButtons(halcomp,builder,useropts)
потом создаем пины для кнопок и делаем им обработчик
спасибо Ник за комментарии - буду разбираться
но вот даже пример твой запускаю не пойму-что он должен демонстрировать????
зы (скрипт скачан 8 раз - и только у меня вопросы я в танке
Работать должно типо такого:
1. можно просто нажимать на кнопки, они будут выполнять свое описанное действие.
2. можно посылать сигнал на пины hw-buttons.vbutton.[0-n] и hw-buttons.hbutton.[0-n] и скрипт будет генерировать сигналы нажатия на эти кнопки.
Напишите набор кнопок, который мы хотим видеть во вкладках, хотя бы для одной вкладки, и я доведу пример до ума.
для одной вкладки принцип не прояснит
тут лучше покажи одна кнопка в одном из 3 режимов включает свою команду
произвольно:
мы в ручн реж - пусть будет home
мы в авто - run
в MDI - исполнить
ну потихоньку начинаю въезжать
у нас сильный ливень , гроза (на что бы еще сослаться ) - вот и не думается
------------------------
наверно теперь надо добавить 6(?) пинов для тумблера перекл режимов-вкладок
Сделал переключение режимов, добавил hal файл, только почему-то hal не загружается при помощи параметра -H, т.е.
gladevcp -u hw-buttons.py hw-buttons.ui -H hw-buttons.hal ничего особенного не говорит, но пины не подключаются
приходится отдельно писать halrun -f hw-buttons.hal