Scroll to navigation

HALUI(1) HAL User Interface HALUI(1)

NAME

halui - observe HAL pins and command LinuxCNC through NML

SYNOPSIS

halui [-ini <path-to-INI>]

DESCRIPTION

halui is used to build a User Interface using hardware knobs and switches. It exports a big number of pins, and acts accordingly when these change.

OPTIONS

use the filename as the configuration file. Note: halui must find the nml file specified in the INI, usually that file is in the same folder as the INI, so it makes sense to run halui from that folder.

USAGE

When run, halui will export a large number of pins. A user can connect those to his physical knobs & switches & leds, and when a change is noticed halui triggers an appropriate event.

halui expects the signals to be debounced, so if needed (bad knob contact) connect the physical button to a HAL debounce filter first.

PINS

Abort

pin for clearing most errors

Tool

current applied tool length offset for the A axis
current applied tool length offset for the B axis
current applied tool length offset for the C axis
current applied tool length offset for the U axis
current applied tool length offset for the V axis
current applied tool length offset for the W axis
current applied tool length offset for the X axis
current applied tool length offset for the Y axis
current applied tool length offset for the Z axis
Current tool diameter, or 0 if no tool is loaded.
current selected tool

Spindle

status pin that tells us if brake is on
pin for deactivating the spindle brake
pin for activating the spindle brake
a rising edge on this pin decreases the current spindle speed by 100
a rising edge on this pin makes the spindle go forward
a rising edge on this pin increases the current spindle speed by 100
status pin telling if the spindle is on
a rising edge on this pin makes the spindle go reverse
status pin telling if the spindle is running backward
status pin telling if the spindle is running forward
a rising edge on this pin starts the spindle
a rising edge on this pin stops the spindle

Spindle Override

(SO = spindle override. FO = feed override)
When TRUE, modify spindle override when counts changes.
counts X scale = spindle override percentage
pin for decreasing the SO (-=scale)
pin to enable direct spindle override value input
pin for increasing the SO (+=scale)
pin for resetting the scale SO value (scale=1.0)
pin for setting the scale of counts for SO
current FO value

Program

status pin telling that block delete is on
pin for requesting that block delete is off
pin for requesting that block delete is on
status pin telling that no program is running
status pin telling that a program is paused
status pin telling that a program is running
status pin telling that the optional stop is on
pin requesting that the optional stop is off
pin requesting that the optional stop is on
pin for pausing a program
pin for resuming a program
pin for running a program
pin for stepping in a program
pin for stopping a program (note: this pin does the same thing as halui.abort)

Mode

pin for requesting auto mode
pin for auto mode is on
pin showing joint by joint jog mode is on
pin for manual mode is on
pin for MDI mode is on
pin showing coordinated jog mode is on
pin for requesting joint by joint jog mode
pin for requesting manual mode
pin for requesting MDI mode
pin for requesting coordinated jog mode

MDI (optional)

halui looks for INI variables named [HALUI]MDI_COMMAND, and exports a pin for each command it finds. When the pin is driven TRUE, halui runs the specified MDI command. XX is a two digit number starting at 00. If no [HALUI]MDI_COMMAND variables are set in the INI file, no halui.mdi-command-XX pins will be exported by halui.

Mist coolant

pin for mist is on
pin for stopping mist
pin for starting mist

Max-velocity

When True, modify max velocity when halui.max-velocity.counts changes.
When .count-enable is True, halui changes the max velocity in response to changes to this pin. It's usually connected to an MPG encoder on an operator's panel or jog pendant. When .count-enable is False, halui ignores this pin.
When this pin is True, halui commands the max velocity directly to (.counts * .scale). When this pin is False, halui commands the max velocity in a relative way: change max velocity by an amount equal to (change in .counts * .scale).
A positive edge (a False to True transition) on this pin increases the max velocity by the value of the .scale pin. (Note that halui always responds to this pin, independent of the .count-enable pin.)
A positive edge (a False to True transition) on this pin decreases the max velocity by the value of the .scale pin. (Note that halui always responds to this pin, independent of the .count-enable pin.)
This pin controls the scale of changes to the max velocity. Each unit change in .counts, and each positive edge on .increase and .decrease, changes the max velocity by .scale. The units of the .scale pin are machine-units per second.
Current value for maximum velocity, in machine-units per second.

Machine

pin for machine units-per-mm (inch:1/25.4, mm:1) according to INI file setting: [TRAJ]LINEAR_UNITS
pin for machine is On/Off
pin for setting machine Off
pin for setting machine On

Lube

pin for lube is on
pin for stopping lube
pin for starting lube

Joint (N = joint number (0 ... num_joints-1))

pin for selecting joint N
status pin that joint N is selected
status pin telling that joint N has a fault
pin for homing joint N
status pin telling that joint N is homed
status pin telling that joint N is on the positive hardware limit
status pin telling that joint N is on the negative hardware limit
status pin telling that joint N is on the positive software limit
status pin telling that joint N is on the negative software limit
status pin telling that joint N's limits are temporarily overridden
pin for unhoming joint N
selected joint number (0 ... num_joints-1)
status pin selected joint is faulted
pin for homing the selected joint
status pin telling that the selected joint is homed
status pin telling that the selected joint is on the positive hardware limit
status pin telling that the selected joint is on the negative hardware limit
status pin telling that the selected joint is on the positive software limit
status pin telling that the selected joint is on the negative software limit
status pin telling that the selected joint's limits are temporarily overridden
pin for unhoming the selected joint

Joint jogging (N = joint number (0 ... num_joints-1))

halui.joint.jog-deadband float in pin for setting jog analog deadband (jog analog inputs smaller/slower than this (in absolute value) are ignored)

pin for setting jog speed for plus/minus jogging.
pin for jogging the joint N using an float value (e.g. joystick). The value, typically set between 0.0 and ±1.0, is used as a jog-speed multiplier.
pin for setting the jog increment for joint N when using increment-plus/minus
a rising edge will will make joint N jog in the negative direction by the increment amount
a rising edge will will make joint N jog in the positive direction by the increment amount
pin for jogging joint N in negative direction at the halui.joint.jog-speed velocity
pin for jogging joint N in positive direction at the halui.joint.jog-speed velocity
pin for setting the jog increment for the selected joint when using increment-plus/minus
a rising edge will will make the selected joint jog in the negative direction by the increment amount
a rising edge will will make the selected joint jog in the positive direction by the increment amount
pin for jogging the selected joint in negative direction at the halui.joint.jog-speed velocity
pin for jogging the selected joint bit in in positive direction at the halui.joint.jog-speed velocity

Axis (L = axis letter (xyzabcuvw)

pin for selecting axis by letter
status pin that axis L is selected
Commanded axis position in machine coordinates
Feedback axis position in machine coordinates
Commanded axis position in relative coordinates

Axis Jogging (L = axis letter (xyzabcuvw)

pin for setting jog analog deadband (jog analog inputs smaller/slower than this (in absolute value) are ignored)
pin for setting jog speed for plus/minus jogging.
pin for jogging the axis L using an float value (e.g. joystick). The value, typically set between 0.0 and ±1.0, is used as a jog-speed multiplier.
pin for setting the jog increment for axis L when using increment-plus/minus
a rising edge will will make axis L jog in the negative direction by the increment amount
a rising edge will will make axis L jog in the positive direction by the increment amount
pin for jogging axis L in negative direction at the halui.axis.jog-speed velocity
pin for jogging axis L in positive direction at the halui.axis.jog-speed velocity
selected axis (by index: 0:x 1:y 2:z 3:a 4:b 5:cr 6:u 7:v 8:w)
pin for setting the jog increment for the selected axis when using increment-plus/minus
a rising edge will will make the selected axis jog in the negative direction by the increment amount
a rising edge will will make the selected axis jog in the positive direction by the increment amount
pin for jogging the selected axis in negative direction at the halui.axis.jog-speed velocity
pin for jogging the selected axis bit in in positive direction at the halui.axis.jog-speed velocity

Flood coolant

pin for flood is on
pin for stopping flood
pin for starting flood

Feed Override

When TRUE, modify feed override when counts changes.
counts X scale = feed override percentage
pin for decreasing the FO (-=scale)
pin to enable direct value feed override input
pin for increasing the FO (+=scale)
pin for resetting the FO (scale=1.0)
pin for setting the scale on changing the FO
current feed override value

Rapid Override

When TRUE, modify rapid override when counts changes.
counts X scale = rapid override percentage
pin for decreasing the rapid override (-=scale)
pin to enable direct value rapid override input
pin for increasing the rapid override (+=scale)
pin for resetting the rapid override (scale=1.0)
pin for setting the scale on changing the rapid override
current rapid override value

E-stop

pin for setting E-stop (LinuxCNC internal) On
pin for displaying E-stop state (LinuxCNC internal) On/Off
pin for resetting E-stop (LinuxCNC internal) Off

Homing

pin for requesting home-all (only available when a valid homing sequence is specified)

SEE ALSO

axis(1), iocontrol(1)

BUGS

None known at this time.

AUTHOR

Written by Alex Joni, as part of the LinuxCNC project. Updated by John Thornton

REPORTING BUGS

Report bugs at https://github.com/LinuxCNC/linuxcnc/issues

COPYRIGHT

Copyright © 2006 Alex Joni.
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

2006-07-22 LinuxCNC Documentation