Damit alle Halui-Beispiele funktionieren, müssen Sie die folgende Zeile in den [HAL]-Abschnitt der INI-Datei einfügen.
HALUI = halui
1. Ferngesteuerter Start
To connect a remote program start button to LinuxCNC you use the halui.program.run
pin and the halui.mode.auto
pin. You have to ensure that it is OK to run first by using the halui.mode.is-auto
pin. You do this with an and2
component. The following figure shows how this is done. When the Remote Run Button is pressed it is connected to both halui.mode.auto
and and2.0.in0
. If it is OK for auto mode the pin halui.mode.is-auto
will be on. If both the inputs to the and2.0
component are on the and2.0.out
will be on and this will start the program.

Die für das Vorstehende erforderlichen HAL-Befehle sind:
net program-start-btn halui.mode.auto and2.0.in0 <= <your input pin> net program-run-ok and2.0.in1 <= halui.mode.is-auto net remote-program-run halui.program.run <= and2.0.out
Beachten Sie, dass es in der ersten Zeile zwei Leser-Pins gibt, die auch in zwei Zeilen aufgeteilt werden können:
net program-start-btn halui.mode.auto <= <your input pin> net program-start-btn and2.0.in0
2. Pause & Fortsetzen
Dieses Beispiel wurde entwickelt, um LinuxCNC zu ermöglichen, eine Drehachse auf ein Signal von einer externen Maschine zu bewegen. Die Koordination zwischen den beiden Systemen wird durch zwei Halui Komponenten bereitgestellt:
-
halui.program.is-paused
-
halui.program.resume
In your customized HAL file, add the following two lines that will be connected to your I/O to turn on the program pause or to resume when the external system wants LinuxCNC to continue.
net ispaused halui.program.is paused => "Dein output (Ausgabe) Pin" net resume halui.program.resume <= "your input (Eingabe) Pin"
Ihre Eingangs- und Ausgangspins sind mit den Pins verbunden, die mit dem anderen Controller verdrahtet sind. Dabei kann es sich um Pins des Parallelports oder andere E/A-Pins handeln, auf die Sie Zugriff haben.
Dieses System funktioniert auf folgende Weise. Wrid ein M0 in Ihrem G-Code erreicht, so wird das Signal "halui.program.is-paused" wahr. Dies schaltet auf Ihrem Ausgangspin, so dass die externe Steuerung weiß, dass LinuxCNC pausiert ist.
Um die LinuxCNC G-Code-Programm fortzusetzen, wenn die externe Steuerung bereit ist, wird es seine Ausgabe wahr zu machen. Dies wird LinuxCNC signalisieren, dass es die Ausführung von G-Code fortsetzen sollte.
Schwierigkeiten beim Timing
-
Das "Resume"-Eingangsrücksignal sollte nicht länger sein als die Zeit, die benötigt wird, um den G-Code wieder zum Laufen zu bringen.
-
Der Ausgang "is-paused" sollte nicht mehr aktiv sein, wenn das "resume"-Signal endet.
Diese Timing-Probleme könnten vermieden werden, indem ClassicLadder verwendet wird, um den "is-paused"-Ausgang über einen monostabilen Timer zu aktivieren und einen schmalen Ausgangsimpuls zu liefern. Der "Resume"-Puls könnte ebenfalls über einen monostabilen Timer empfangen werden.