For any Halui examples to work you need to add the following line to the [HAL] section of the INI file.
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 Ihrem benutzerdefinierten HAL Datei, fügen Sie die folgenden zwei Zeilen, die mit Ihrer E/A verbunden werden, um auf das Programm Pause oder fortzusetzen, wenn das externe System LinuxCNC fortzusetzen will.
net ispaused halui.program.is paused => "Dein output (Ausgabe) Pin" net resume halui.program.resume <= "your input (Eingabe) Pin"
Your input and output pins are connected to the pins wired to the other controller. They may be parallel port pins or any other I/O pins that you have access to.
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.