#LyX 1.3 created this file. For more info see http://www.lyx.org/ \lyxformat 221 \textclass book \begin_preamble \usepackage[plainpages=false,pdfpagelabels,colorlinks=true,linkcolor=blue]{hyperref} \end_preamble \language english \inputencoding default \fontscheme bookman \graphics default \float_placement !htbp \paperfontsize default \spacing single \papersize letterpaper \paperpackage a4 \use_geometry 1 \use_amsmath 1 \use_natbib 0 \use_numerical_citations 0 \paperorientation portrait \leftmargin 1in \topmargin 1in \rightmargin 0.8in \bottommargin 0.8in \secnumdepth 1 \tocdepth 5 \paragraph_separation skip \defskip smallskip \quotes_language english \quotes_times 2 \papercolumns 1 \papersides 1 \paperpagestyle default \layout Chapter \begin_inset LatexCommand \label{cha:Halui} \end_inset Halui \layout Section \begin_inset LatexCommand \label{sec:HaluiIntroduction} \end_inset Introduction \layout Standard Halui is a HAL based user interface for EMC, it connects HAL pins to NML commands. Most of the functionality (buttons, indicators etc.) that is provided by a traditional GUI (mini, Axis, etc.), is provided by HAL pins in Halui. \layout Standard The easiest way to use halui is to modify your ini file to include \layout LyX-Code HALUI = halui \layout Standard in the [HAL] section. \layout Standard An alternate way to invoke it (especially when using a stepconf generated config file) is to include \layout LyX-Code loadusr halui -ini /path/to/inifile.ini \layout Standard in your custom.hal file. \layout Section \begin_inset LatexCommand \label{sec:Halui-pin-reference} \end_inset Halui pin reference \layout Subsection Machine \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.machine.on - pin for requestiong machine on \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.machine.off - pin for requesting machine off \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.machine.is-on - indicates machine on \layout Subsection E-Stop \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.estop.activate - pin for requesting E-Stop \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.estop.reset - pin for requesting E-Stop reset \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.estop.is-activated - indicates E-stop reset \layout Subsection Mode \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.mode.manual - pin for requesting manual mode \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.mode.is_manual - indicates manual mode is on \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.mode.auto - pin for requesting auto mode \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.mode.is_auto - indicates auto mode is on \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.mode.mdi - pin for requesting mdi mode \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.mode.is_mdi - indicates mdi mode is on \layout Subsection Mist, Flood, Lube \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.mist.on - pin for requesting mist on \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.mist.is-on - indicates mist is on \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.flood.on - pin for requesting flood on \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.flood.is-on - indicates flood is on \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.lube.on - pin for requesting lube on \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.lube.is-on - indicates lube is on \layout Subsection Spindle \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.spindle.start - starts the spindle \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.spindle.stop - stops the spindle \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.spindle.forward - starts the spindle with CW motion \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.spindle.reverse - starts the spindle with a CCW motion \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.spindle.increase - increases spindle speed \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.spindle.decrease - decreases spindle speed \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.spindle.brake-on - pin for activating spindle-brake \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.spindle.brake-off - pin for deactivating spindle/brake \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.spindle.brake-is-on - indicates brake is on \layout Subsection Joints \layout Standard is a number between 0 and 7 and 'selected'. \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.joint..home - pin for homing the specific joint \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.joint..on-min-limit-soft - status pin telling joint is at the negative software limit \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.joint..on-max-limit-soft - status pin telling joint is at the positive software limit \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.joint..on-min-limit-hard - status pin telling joint is on the negative hardware limit switch \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.joint..on-max-limit-hard - status pin telling joint is on the positive hardware limit switch \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.joint..fault - status pin telling the joint has a fault \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.joint..homed - status pin telling that the joint is homed \layout Subsection Jogging \layout Standard is a number between 0 and 7 and 'selected'. \layout Itemize ( \noun on float \noun default ) halui.jog.speed - set jog speed \layout Itemize ( \noun on float \noun default ) halui.jog-deadband - deadband for analog jogging (smaller jogging speed requests are not performed) \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.jog..minus - jog in negative direction \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.jog..plus - jog in positive direction \layout Itemize ( \noun on bit \noun default ) halui.jog..analog - analog velocity input for jogging (usefull with joysticks or other analog devices) \layout Subsection Selecting a joint \layout Itemize ( \noun on u32 \noun default ) halui.joint.select - select joint (0..7) - internal halui \layout Itemize ( \noun on u32 \noun default ) halui.joint.selected - selected joint (0..7) - internal halui \layout Itemize ( \noun on bit \noun default ) halui.joint.x.select bit - pins for selecting a joint - internal halui \layout Itemize ( \noun on bit \noun default ) halui.joint.x.is-selected bit - status pin a joint is selected - internal halui \layout Subsection Feed override \layout Itemize ( \noun on float \noun default ) halui.feed-override.value - current FO value \layout Itemize ( \noun on float \noun default ) halui.feed-override.scale - pin for setting the scale on changing the FO \layout Itemize ( \noun on s32 \noun default ) halui.feed-override.counts - counts from an encoder for example to change FO \layout Itemize ( \noun on bit \noun default ) halui.feed-override.increase - pin for increasing the FO (+=scale) \layout Itemize ( \noun on bit \noun default ) halui.feed-override.decrease - pin for decreasing the FO (-=scale) \layout Subsection Spindle override \layout Itemize ( \noun on float \noun default ) halui.spindle-override.value - current SO value \layout Itemize ( \noun on float \noun default ) halui.spindle-override.scale - pin for setting the scale on changing the SO \layout Itemize ( \noun on s32 \noun default ) halui.spindle-override.counts - counts from an encoder for example to change SO \layout Itemize ( \noun on bit \noun default ) halui.spindle-override.increase - pin for increasing the SO (+=scale) \layout Itemize ( \noun on bit \noun default ) halui.spindle-override.decrease - pin for decreasing the SO (-=scale) \layout Subsection Tool \layout Itemize ( \noun on u32 \noun default ) halui.tool.number - indicates current selected tool \layout Itemize ( \noun on float \noun default ) halui.tool.length-offset - indicates current applied tool-length-offset \layout Subsection Program \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.program.is-idle \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.program.is-running \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.program.is-paused \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.program.run \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.program.pause \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.program.resume \layout Itemize ( \family typewriter \noun on bit \family default \noun default ) halui.program.step \layout Subsection General \layout Itemize ( \noun on bit \noun default ) halui.abort - pin to send an abort message (clears out most errors) \layout Subsection MDI \layout Standard Sometimes the user wants to add more complicated tasks to be performed by the activation of a HAL pin. This is possible using the following MDI commands scheme: \layout Itemize a MDI_COMMAND is added to the ini (in the section [HALUI]) (e.g. [HALUI] MDI_COMMAND = G0 X0 \layout Itemize when halui starts it will read/detect the MDI_COMMAND fields in the ini, and export pins of type ( \family typewriter \noun on bit \family default \noun default ) halui.mdi-command- ( is a number from 00 to the number of MDI_COMMAND's found in the ini) \layout Itemize when the pin halui.mdi-command- is activated halui will try to send the MDI command defined in the ini \begin_inset Foot collapsed true \layout Standard This will not always succeed, depending on the operating mode emc2 is in (e.g. while in AUTO halui can't successfully send MDI commands). \end_inset \layout Section Case - Studies \layout Standard User descriptions of working halui and hardware EMC control panels here. \the_end