LinuxCNC Integrators Manual Глава X - Пользовательский интерфейс HAL (Halui)

Материал из cnc-club
Перейти к навигации Перейти к поиску

LinuxCNC Integrators Manual Глава X - Пользовательский интерфейс HAL (Halui)

Пользовательский интерфейс HAL (Halui)

10.1 Введение

Halui это основанный на HAL интерфейс пользователя для EMC, он соединяет пины HAL с NML командами. Большая часть функционала (кнопки, индикаторы и т.д.) которые представляются обычными GUI (mini, Axis, и т.п.), работает через пины HAL в Halui.

Самый простой способ добавить halui, это добавить следующее в секцию [HAL] в ini файл.

HALUI = halui

Другой способ запустить его (особенно когда используются конфигурационные файлы созданные при помощи stepconf) включить следующее в ваш файл custom.hal. Убедитесь, что вы используете правильный путь к вашему ini файлу.


loadusr halui -ini /path/to/inifile.ini


10.2 Описание пинов Halui

10.2.1 Abort (Отмена)

  • halui.abort (bit, in) - пин для отправки сообщения отмены (отменяет большинство ошибок).


10.2.2 Axis

  • halui.axis.n.pos-commanded (float, out) - Заданное (запрошенное) положение оси в коодинатах станка.
  • halui.axis.n.pos-feedback (float, out) - Обратная связь положения оси в координатах станка.
  • halui.axis.n.pos-relative (float, out) - Заданное (запрошенное) положение оси в относительных коодинатах.


10.2.3 E-Stop (АВОСТ)

  • halui.estop.activate (bit, in) - pin пин для запроса E-Stop.
  • halui.estop.is-activated (bit, out)- отображает состояние E-stop.
  • halui.estop.reset (bit, in) - pin для запроса сброса E-Stop.


10.2.4 Feed Override (Замещение подачи)

  • halui.feed-override.count-enable (bit, in) - добжно быть равно true для того, чтобы велся отсчет тиков.
  • halui.feed-override.counts (s32, in) - количество тиков с энкодера для изменения Feed Override.
  • halui.feed-override.decrease (bit, in) - пин для уменьшения FO (-=scale - вычесть значение scale).
  • halui.feed-override.increase (bit, in) - пин для увеличения FO (+=scale - добавить значение scale).
  • halui.feed-override.scale (float, in) - пин для установки шага увеличения/уменьшения Feed Override.
  • halui.feed-override.value (float, out) - текущее значение FO.


10.2.5 Flood

  • halui.flood.is-on (bit, out) - отображает включен ли flood.
  • halui.flood.off (bit, in) - пин для хапроса остановки flood.
  • halui.flood.on (bit, in) - пин для запроса включения flood.


10.2.6 Homing

  • halui.home-all (bit, in) - пин для запроса выставления всех осей. Это пин будет присутствовать только если HOME_SEQUENCE задан в ini файле.


10.2.7 Jog

<n> это число между 0 и 8 и ’selected’.


  • halui.jog-deadband (float, in) - мертвая зона для аналогового джогинга (значения меньше указанного не будут восприниматься).
  • halui.jog-speed (float, in) - пин для установки скорости перемещения для положительного и отрицательного джогинга.
  • halui.jog.<n>.analog (float, in) - ввод для аналогового задания скорости ручного перемещения (полезно при использовании джойстиков или других аналоговых устройств)
  • halui.jog.<n>.minus (bit, in) - пин для перемещения оси <n> в отрицательном направлении со скоростью halui.jog.speed.
  • halui.jog.<n>.plus (bit, in) - пин для перемещения оси <n> в положительном направлении со скоростью halui.jog.speed.
  • halui.jog.selected.minus (bit, in) - пин для перемещения выбранной оси в отрицательном направлении со скоростью halui.jog.speed.
  • halui.jog.selected.plus (bit, in) - пин для перемещения выбранной оси в положительном направлении со скоростью halui.jog.speed.


10.2.8 Joint (сочленение)

<n> это номер между 0 и 8 или ’selected’.


  • halui.joint.<n>.has-fault (bit, out) - статусный пин отображающий что на joint произошла ошибка.
  • halui.joint.<n>.home (bit, in) - пин для выставления home для указанного joint.
  • halui.joint.<n>.is-homed (bit, out) - пин говорящий, был ли выставлен указанный joint.
  • halui.joint.<n>.is-selected bit (bit, out) - пин говорящий выбран (selected) ли указанный joint - внутрениий пин halui
  • halui.joint.<n>.on-hard-max-limit (bit, out) - пин говорящий, что joint <n> находится на концевике в положительном направлении.
  • halui.joint.<n>.on-hard-min-limit (bit, out) - пин говорящий, что joint <n> находится на концевике в отрицательном направлении.
  • halui.joint.<n>.on-soft-max-limit (bit, out) - пин говорящий, то joint <n> находится в положении программного предела soft limit в положительном направлении.
  • halui.joint.<n>.on-soft-min-limit (bit, out) - пин говорящий, то joint <n> находится в положении программного предела soft limit в отрицательном направлении.
  • halui.joint.<n>.select (bit, in) - выбрать joint (0..7) - внутрениий пин halui.
  • halui.joint.<n>.unhome (bit, in) - сделать указанный joint не выставленным.
  • halui.joint.selected (u32, out) - выбранный joint (0..7) - внутренний пин halui
  • halui.joint.selected.has-fault (bit, out) - пин говорящий, что на выбранном joint произошла ошибка
  • halui.joint.selected.home (bit, in) - пин для выстввления выбранного joint.
  • halui.joint.selected.is-homed (bit, out) - пин говорящий, что выбранный joint выставлен
  • halui.joint.selected.on-hard-max-limit (bit, out) - пин говорящий, что выбранный joint находится на концевике в положительном направлении.
  • halui.joint.selected.on-hard-min-limit (bit, out) - пин говорящий, что выбранный joint находится на концевике в отрицательном направлении.
  • halui.joint.selected.on-soft-max-limit (bit, out) - пин говорящий, то выбранный joint находится в положении программного предела soft limit в положительном направлении.
  • halui.joint.selected.on-soft-min-limit (bit, out) - пин говорящий, то выбранный joint находится в положении программного предела soft limit в отрицательном направлении.
  • halui.joint.selected.unhome (bit, in) - пин для того чтобы сделать выбранный joint не выставленным.


10.2.9 Lube (смазка)

  • halui.lube.is-on (bit, out) - отображает, что смазка включена.
  • halui.lube.off (bit, in) - пин для запроса выключения lube.
  • halui.lube.on (bit, in) - пин для запроса включения lube.


10.2.10 Machine (Станок)

  • halui.machine.is-on (bit, out) - отображает, что станок включен.
  • halui.machine.off (bit, in) - пин для запроса выключения станка.
  • halui.machine.on (bit, in) - пин для запроса включения станка.


10.2.11 Максимальная скорость

Максимальная линейная скорость может быть назначена от 0 до значения MAX_VELOCITY которое установленно в секции [TRAJ] в ini файле.


  • halui.max-velocity.count-enable (bit, in) - когда равен TRUE, максимальная скорость изменяется при изменении кодичества тиков энкодера.
  • halui.max-velocity.counts (s32, in) - позводяет вам привязать энкодер для изменения максимальной скорости.
  • halui.max-velocity.decrease (bit, in) - пин для уменьшения максимальной скорости.
  • halui.max-velocity.increase (bit, in) - пин для увеличения максимальной скорости.
  • halui.max-velocity.scale (float, in) - величина добавляемая или вычитаемая из максимальной скорости при срабатывании пинов decrease или increase в единицах измерения станка в секунду.
  • halui.max-velocity.value (float, out) - значение максимальной линейной скорости станка в единицах измерения станка в секунду.


10.2.12 MDI

Иногда пользователь хочет добавить более сложную задачу для выполения при активации пина HAL. Это возмонжо при использовании следующей схемы оманд MDI:


  • MDI_COMMAND добавляется в секцию [HALUI] в файл ini.
[HALUI]
 
MDI_COMMAND = G0 X0
  • Когда зпускается halui он прочитает поле MDI_COMMAND из файла ini, и экспортирует пин от 00 до количества записей MDI_COMMAND найденных в ini (максимум 64 команды).
  • halui.mdi-command-<nn> (bit, in) - halui попытается послать MDI команду заданную в ini файле. Это не всегда будет получаться в зависимости от тогов каком режие находится emc2 (например во время нахождения в режиме AUTO halui не может успешно послать комманду MDI). Если команда прошла успешно halui переключит EMC2 в режим MDI, а затем снова вернет в ручной режим.


10.2.13 Mist (Туман)

  • halui.mist.is-on (bit, out) - отображает, что туман включен
  • halui.mist.off (bit, in) - запрашивает выключение тумана.
  • halui.mist.on (bit, in) - запрашивает включение тумана.


10.2.14 Mode (Режим)

  • halui.mode.auto (bit, in) - пин для запроса режима auto.
  • halui.mode.is-auto (bit, out) - отображает, что режи auto включен.
  • halui.mode.is-joint (bit, out) - пин отображающий, что включен режим джоггинга (jog) joint by joint.
  • halui.mode.manual (bit, in) - пин для запроса ручного режима (manual).
  • halui.mode.is-manual (bit, out) - отображает, что ручной режим включен.
  • halui.mode.is-mdi (bit, out) - отображает, что вклюен режим MDI.
  • halui.mode.is-teleop (bit, out) - пин отображающий, что включен режим координированного джоггинга.
  • halui.mode.joint (bit, in) - пин запрашивающий режим джоггинга (jog) joint by joint.
  • halui.mode.manual (bit, in) - пин запрашивающий ручной режим.
  • halui.mode.mdi (bit, in) - пин запрашивающий режим MDI.


10.2.15 Program

  • halui.program.block-delete.is-on (bit, out) -
  • halui.program.block-delete.off (bit, in) -
  • halui.program.block-delete.on (bit, in) -
  • halui.program.is-idle (bit, out) - пин отображающий, что никакая управляющая программа не запущена.
  • halui.program.is-paused (bit, out) - пин отображающий, что программа приостановленна.
  • halui.program.is-running (bit, out) - пин отображающий, что проггамма выполняется.
  • halui.program.optional-stop.is-on (bit, out) -
  • halui.program.optional-stop.off (bit, in) -
  • halui.program.optional-stop.on (bit, in) -
  • halui.program.pause (bit, in) - пин для приостановки программы.
  • halui.program.resume (bit, in) - пин для возобновления программы
  • halui.program.run (bit, in) - пин для запуска программы.
  • halui.program.step (bit, in) - пин для выполнения программы пошагово.
  • halui.program.stop (bit, in) - пин для остановки программы.

10.2.16 Spindle Override (замещение скорости шпинделя)


  • halui.spindle-override.count-enable (bit, in) - когда равен TRUE, изменяет скорость шпинделя при измеении количества тиков энкодера.
  • halui.spindle-override.counts (s32, in) - количесво тиков энкодера для изменения SO
  • halui.spindle-override.decrease (bit, in)- пин для уменьщения SO (-=scale)
  • halui.spindle-override.increase (bit, in) - пин для увеличения SO (+=scale)
  • halui.spindle-override.scale (float, in) - пин для установки значпения шага изменеия SO
  • halui.spindle-override.value (float, out) - текущее значение SO


10.2.17 Spindle

  • halui.spindle.brake-is-on (bit, out) - отображает, что тормоз шпинделя включен.
  • halui.spindle.brake-off (bit, in) - пин для выключения тормоза шпинделя.
  • halui.spindle.brake-on (bit, in) - пин для включения тормоза шпинделя.
  • halui.spindle.decrease (bit, in) - уменьшает скорость шпинделя.
  • halui.spindle.forward (bit, in) - включает шпиндель по часовой стрелке.
  • halui.spindle.increase (bit, in)- увеличивает скорость шпинделя.
  • halui.spindle.is-on (bit, out) -
  • halui.spindle.reverse (bit, in)- запускает шпиндель против часовой стрелки.
  • halui.spindle.runs-backward (bit, out) -
  • halui.spindle.runs-forward (bit, out) -
  • halui.spindle.start (bit, in) - включает шпиндель.
  • halui.spindle.stop (bit, in) - выключает шпиндель.


10.2.18 Tool (Инструмент)

  • halui.tool.length-offset (float, out) - отображает текущее занчение tool-length-offset (компенсация динны инструмента).


Оглавление книги LinuxCNC Integrators Manual

Глава Название
Глава 1 LinuxCNC Integrators Manual Глава I - Важные определения
Глава 2 LinuxCNC Integrators Manual Глава II - Аппаратное обеспечение (Hardware)
Глава 3 LinuxCNC Integrators Manual Глава III - Конфигурационные файлы
Глава 4 Доделать! LinuxCNC Integrators Manual Глава IV - Файл INI
Глава 5 Доделать! LinuxCNC Integrators Manual Глава V - LinuxCNC и HAL
Глава 6 Доделать! LinuxCNC Integrators Manual Глава VI - Основы HAL
Глава 7 Доделать! LinuxCNC Integrators Manual Глава VII - Настройка шаговых двигателей
Глава 8 Доделать! LinuxCNC Integrators Manual Глава VIII - Компонетны HAL
Глава 9 Забыли перевести! LinuxCNC Integrators Manual Глава IX - Параллельный порт
Глава 10 Доделать! LinuxCNC Integrators Manual Глава X - Пользовательский интерфейс HAL (Halui)
Глава 11 Доделать! LinuxCNC Integrators Manual Глава XI - Примеры HAL
Глава 12 Доделать! LinuxCNC Integrators Manual Глава XII - Virtual Control Panel - Виртуальная панель управления