1. Übersicht

Die Referenzfahrt legt den Nullpunkt der G53-Maschinenkoordinaten fest. Softlimits werden relativ zum Maschinenursprung definiert. Eine korrekt konfigurierte und funktionierende Maschine bewegt sich nicht über die Soft(ware)-Grenzen hinaus und der Maschinenursprung ist so wiederholbar eingestellt wie der Referenzschalter/Indexmechanismus. Linuxcnc kann mit dem Auge (Ausrichtungsmarken), mit Schaltern, mit Schaltern und einem Encoder-Index oder mit Absolut-Encodern ausgerichtet werden. Homing scheint einfach genug - bewegen Sie einfach jedes Gelenk zu einer bekannten Position, und stellen Sie LinuxCNC’s interne Variablen entsprechend. Allerdings haben verschiedene Maschinen unterschiedliche Anforderungen, und Homing ist eigentlich ziemlich kompliziert.

Anmerkung
Es ist zwar möglich, LinuxCNC ohne Referenzschalter/Referenzfahrt oder Endschalter zu verwenden, aber die zusätzliche Sicherheit der Softlimits wird dadurch zunichte gemacht.

2. Voraussetzung

Die Durchführung der Referenzfahrt (engl. homing) beruht auf einigen grundlegenden Annahmen zur Maschine.

  • Die negativen und positiven Richtungen basieren auf Tool Movement, die sich von der tatsächlichen Maschinenbewegung unterscheiden können. Z.B. bewegt sich bei einer Fräsmaschine typischerweise der Tisch und nicht das Werkzeug.

  • Alles wird vom Nullpunkt der G53-Maschine aus referenziert, der Ursprung kann überall liegen (auch außerhalb, wo man sich bewegen kann)

  • Der Nullpunkt der G53-Maschine liegt in der Regel innerhalb des Bereichs der weichen Grenzen, aber nicht zwingend.

  • Der Offset des Referenzschalters legt fest, wo sich der Ursprung befindet, aber auch er wird vom Ursprung aus referenziert.

  • Bei der Referenzfahrt mit Encoder-Index wird der Offset des Referenzschalters aus der Encoder-Referenzposition berechnet, nachdem der Referenzschalter ausgelöst wurde.

  • Die negativen Soft(ware)-Grenzen sind das Maximum, das Sie nach der Referenzfahrt in negativer Richtung bewegen können. (aber sie sind nicht unbedingt negativ im absoluten Sinne)

  • Die positiven Soft(ware)-Grenzen sind die maximale Bewegung, die Sie nach der Referenzfahrt in positiver Richtung ausführen können. (Sie sind jedoch nicht unbedingt positiv im absoluten Sinne, obwohl es üblich ist, sie als positive Zahl festzulegen)

  • Soft(ware)-Grenzwerte befinden sich innerhalb des Endschalterbereichs.

  • (Endgültige) Referenzpunktposition liegt innerhalb des weichen (engl. soft) Grenzbereichs

  • (Bei Verwendung einer schalterbasierten Referenzfahrt nutzen die Referenzschalter entweder die Endschalter (gemeinsame Referenzfahrt-/Endschalter) oder befinden sich bei Verwendung eines separaten Referenzschalters im Bereich der Endschalter.

  • Bei Verwendung eines separaten Referenzschalters ist es möglich, die Referenzfahrt auf der falschen Seite des Referenzschalters zu starten, was in Verbindung mit der Option HOME_IGNORE_LIMITS zu einem harten Absturz führen kann. Sie können dies vermeiden, indem Sie den Home-Schalter so einstellen, dass er seinen Zustand umschaltet, wenn sich die auslösende Antriebsklaue auf einer bestimmten Seite befindet, bis sie den Auslöse-Punkt wieder passiert hat. Anders ausgedrückt: Der Zustand des Home-Schalters muss die Position der Antriebsklaue relativ zum Schalter repräsentieren (d.h. vor oder nach dem Schalter), und er muss so bleiben, auch wenn die Klaue in der gleichen Richtung am Schalter vorbeiläuft.

Anmerkung
Es ist zwar möglich, LinuxCNC mit dem G53-Maschinenursprung außerhalb der weichen Maschinengrenzen zu verwenden, aber wenn Sie G28 oder G30 verwenden, ohne die Parameter einzustellen, geht es standardmäßig zum Ursprung. Dadurch würden die Endschalter ausgelöst, bevor die Position erreicht wird.

3. Separater Home-Schalter Beispiel-Layout

Dieses Beispiel zeigt minimale und maximale Endschalter mit einem separaten Home-Schalter.

Beispiel Layout für einen Referenzschalter
Abbildung 1. Demonstratives separates Schalterlayout
  • A ist die negative weiche Grenze

  • B ist die Koordinate der G53-Maschinen-Ursprung

  • C ist der Auslösepunkt des Referenzschalters

  • D ist die positive weiche Grenze

  • H ist die finale Ausgangsposition (HOME) = 0 Einheiten

  • Die -L und +L sind die Auslösepunkte der Endschalter

  • A<->B ist die negative weiche Grenze (MIN_LIMITS) = -3 Einheiten

  • B<->C ist der Home_Offset (HOME_OFFSET) = -2,3 Einheiten

  • B<->D ist die positive weiche Grenze (MAX_LIMITS) = 7 Einheiten

  • A<->D ist der gesamte Weg = 10 Einheiten

  • Der Abstand zwischen den Endschaltern und Soft Limits (-L<->A und D<-+L) wird in diesem Beispiel vergrößert

  • Beachten Sie, dass zwischen den Endschaltern und dem tatsächlichen harten Kontakt für den Auslauf nach der Deaktivierung des Verstärkers ein Abstand besteht.

Anmerkung
Die Referenzfahrt legt das G53-Koordinatensystem fest. Der Maschinenursprung (Nullpunkt) kann an einer beliebigen Stelle liegen, aber wenn Sie den Nullpunkt auf die negative weiche Grenze setzen, werden alle G53-Koordinaten positiv, was wahrscheinlich am einfachsten zu merken ist. Dazu setzen Sie MIN_LIMIT = 0 und stellen sicher, dass MAX_LIMIT positiv ist.

4. Gemeinsamer End-/Hauptschalter Beispiel-Layout

Dieses Beispiel zeigt einen maximalen Endschalter und einen kombinierten minimalen End-/Referenzschalter.

Beispiel für ein gemeinsames Layout des Home- und Endschalters
Abbildung 2. Beispiel für ein Layout mit geteilten Schaltern
  • A ist die negative weiche Grenze.

  • B ist die Koordinate der G53-Maschinen-Ursprung.

  • C ist der Auslösepunkt des Referenzschalters, der gemeinsam mit dem (-L) minimalen Grenzwertauslöser verwendet wird.

  • D ist die positive weiche Grenze.

  • H ist die endgültige Ausgangsposition (HOME) = 3 Einheiten.

  • Die -L und +L sind die Auslösepunkte der Endschalter.

  • A<->B ist die negative weiche Grenze (MIN_LIMITS) = 0 Einheiten.

  • B<->C ist der Home_Offset (HOME_OFFSET) = -0,7 Einheiten.

  • B<->D ist die positive weiche Grenze (MAX_LIMITS) 10 Einheiten.

  • A<->D ist der gesamte Weg = 10 Einheiten.

  • Der Abstand zwischen den Endschaltern und den Soft Limits (-L<->A und D<->+L) wird in diesem Beispiel vergrößert.

  • Beachten Sie, dass zwischen den Endschaltern und dem tatsächlichen harten Kontakt für den Auslauf nach der Deaktivierung des Verstärkers ein Abstand besteht.

5. Referenzfahrt Abfolge

Es gibt vier mögliche Referenzfahrt-Abfolgen, die durch das Vorzeichen von HOME_SEARCH_VEL und HOME_LATCH_VEL sowie die zugehörigen Konfigurationsparameter definiert sind, wie in der folgenden Tabelle dargestellt. Es gibt zwei wesentliche Varianten: HOME_SEARCH_VEL und HOME_LATCH_VEL haben das gleiche Vorzeichen oder sie haben entgegengesetzte Vorzeichen. Eine genauere Beschreibung der Funktionen der einzelnen Konfigurationsparameter finden Sie im folgenden Abschnitt.

Referenzfahrt-Abläufe
Abbildung 3. Referenzfahrt-Abläufe

6. Konfiguration

Im Folgenden wird genau festgelegt, wie sich die Stammfolge verhält. Sie werden in einem [JOINT_n]-Abschnitt der INI-Datei definiert.

Referenzfahrt Typ HOME_SEARCH_VEL HOME_LATCH_VEL HOME_USE_INDEX

Unmittelbar

0

0

NO

Nur-Index

0

ungleich Null

YES

Nur Schalter

ungleich Null

ungleich Null

NO

Schalter und Index

ungleich Null

ungleich Null

YES

Anmerkung
Alle anderen Kombinationen können zu einem Fehler führen.

6.1. HOME_SEARCH_VEL

Diese Variable hat die Einheit von Maschineneinheiten pro Sekunde.

Der Standardwert ist Null. Ein Wert von Null bewirkt, dass LinuxCNC davon ausgeht, dass es keine Home-Schalter gibt; die Suche Phase der Referenzfahrt wird übersprungen.

Wenn HOME_SEARCH_VEL ungleich Null ist, dann nimmt LinuxCNC an, dass es einen Referenzschalter (engl. home switch) gibt. Es beginnt mit der Überprüfung, ob der Referenzschalter bereits ausgelöst hat. Wenn dies der Fall ist, wird der Schalter bei HOME_SEARCH_VEL zurückgesetzt. Die Richtung des Zurückfahrens ist entgegengesetzt dem Vorzeichen von HOME_SEARCH_VEL. Anschließend wird der Schalter in der durch das Vorzeichen von HOME_SEARCH_VEL festgelegten Richtung mit einer durch den Absolutwert bestimmten Geschwindigkeit gesucht. Wenn der Referenzschalter erkannt wird, hält das Gelenk so schnell wie möglich an, wobei jedoch immer ein gewisses Überschwingen auftritt. Das Ausmaß des Überschwingens hängt von der Geschwindigkeit ab. Ist sie zu hoch, kann das Gelenk so weit überschwingen, dass es gegen einen Endschalter stößt oder gegen das Ende des Verfahrwegs prallt. Ist HOME_SEARCH_VEL hingegen zu niedrig, kann die Referenzfahrt sehr lange dauern.

6.2. HOME_LATCH_VEL

Diese Variable hat die Einheit von Maschineneinheiten pro Sekunde.

Legt die Geschwindigkeit und Richtung, die LinuxCNC verwendet, wenn es seine endgültige genaue Bestimmung der Home-Schalter (falls vorhanden) und Index-Impuls Lage (falls vorhanden) macht. Es wird in der Regel langsamer als die Suchgeschwindigkeit sein, um die Genauigkeit zu maximieren. Wenn HOME_SEARCH_VEL und HOME_LATCH_VEL das gleiche Vorzeichen haben, dann wird die Latch-Phase durchgeführt, während man sich in die gleiche Richtung wie die Suchphase bewegt. (In diesem Fall fährt LinuxCNC zunächst vom Schalter zurück, bevor es sich mit der Verriegelungsgeschwindigkeit wieder auf ihn zubewegt). Wenn HOME_SEARCH_VEL und HOME_LATCH_VEL entgegengesetzte Vorzeichen haben, wird die Latch-Phase durchgeführt, während man sich in die entgegengesetzte Richtung der Suchphase bewegt. Das bedeutet, dass LinuxCNC den ersten Impuls einrastet, nachdem es den Schalter verlassen hat. Wenn HOME_SEARCH_VEL gleich Null ist (d.h. es gibt keinen Home-Schalter), und dieser Parameter ungleich Null ist, geht LinuxCNC zur Index-Impuls-Suche über. Wenn HOME_SEARCH_VEL nicht Null ist und dieser Parameter ist auf Null gesetzt, so ist es ein Fehler und die Referenzfahrt wird entsprechend fehlschlagen. Der Standardwert ist Null.

6.3. HOME_FINAL_VEL

Diese Variable hat die Einheit von Maschineneinheiten pro Sekunde.

Sie gibt die Geschwindigkeit an, die LinuxCNC verwendet, wenn es seine Bewegung von HOME_OFFSET zur HOME-Position durchführt. Wenn die HOME_FINAL_VEL in der INI-Datei fehlt, dann wird die maximale Gelenkgeschwindigkeit verwendet, um diese Bewegung zu machen. Der Wert muss eine positive Zahl sein.

6.4. HOME_IGNORE_LIMITS

Kann die Werte YES / NO annehmen. Der Standardwert für diesen Parameter ist NO. Dieses Flag bestimmt, ob LinuxCNC die Endschaltereingabe für dieses Gelenk während der Referenzfahrt ignoriert. Diese Einstellung wird nicht ignorieren Endschalter Eingänge für andere Gelenke. Wenn Sie keinen separaten Refrenzschalter haben, setzen Sie diesen Parameter auf YES und verbinden Sie das Endschaltersignal mit dem gemeinsamen Referenz-(engl. Home-)schalter-Eingang in HAL. LinuxCNC wird den Endschaltereingang für dieses Gelenk während der Referenzfahrt ignorieren. Um nur einen Eingang für alle Referenzfahrten und Endschalter zu verwenden, müssen Sie die Endschaltersignale der Gelenke, die nicht in HAL referenzieren, blockieren und ein Gelenk nach dem anderen referenzieren.

6.5. HOME_USE_INDEX

Gibt an, ob es einen Indeximpuls gibt oder nicht. Wenn das Flag wahr ist (HOME_USE_INDEX = YES), wird LinuxCNC auf die steigende Flanke des Index-Impulses einrasten. Wenn falsch, wird LinuxCNC entweder auf die steigende oder die fallende Flanke des Home-Schalters einrasten (abhängig von den Vorzeichen von HOME_SEARCH_VEL und HOME_LATCH_VEL). Der Standardwert ist NO.

Anmerkung
HOME_USE_INDEX erfordert Verbindungen in Ihrer HAL-Datei zu joint.n.index-enable vom encoder.n.index-enable.

6.6. HOME_INDEX_NO_ENCODER_RESET

Voreinstellung ist NO. Verwenden Sie YES, wenn der für dieses Gelenk verwendete Encoder seinen Zähler nicht zurücksetzt, wenn ein Indeximpuls nach der Aktivierung des Gelenkindex_enable HAL-Pins erkannt wird. Gilt nur für HOME_USE_INDEX = YES.

6.7. HOME_OFFSET

Definiert die Lage des Ursprungsnullpunkts des G53-Maschinenkoordinatensystems. Es ist der Abstand (Offset), in gemeinsamen Einheiten, von der Maschine Ursprung auf die Referenzsschalter Auslösepunkt oder Index-Impuls. Nach der Erkennung der Schalter Auslösepunkt / Index-Impuls, setzt LinuxCNC die gemeinsame Koordinatenposition zu HOME_OFFSET, und damit die Definition der Ursprungs, von dem sich die weichen Grenzen ableiten. Der Standardwert ist Null.

Anmerkung
Die Position des Referenzschalters, die durch die Variable HOME_OFFSET angegeben wird, kann innerhalb oder außerhalb der Soft Limits liegen. Sie werden gemeinsam mit oder innerhalb der harten Endschalter verwendet.

6.8. Referenzpunkt (engl. Home)

Die Position, die das Gelenk nach Abschluss der Referenzierungsfahrt annehmen soll. Nach der Erkennung der Referenzschalter oder erst des Referenzschalters gefolgt vom Index-Impuls (je nach Konfiguration), und die Einstellung der Koordinate dieses Punktes zu HOME_OFFSET, führt LinuxCNC zu HOME als Abschluss Referenzfahrt durch. Der Standardwert ist Null. Beachten Sie, dass, selbst wenn dieser Parameter der gleiche wie HOME_OFFSET ist, das Gelenk vermutlich leicht über die verriegelte Position hinaus bewegt worden. Daher wird es zu diesem Zeitpunkt immer eine kleine Bewegung geben (es sei denn, HOME_SEARCH_VEL ist Null und die gesamte Such-/Speicherphase wurde übersprungen). Diese letzte Bewegung wird mit der maximalen Geschwindigkeit des Gelenks ausgeführt, es sei denn, HOME_FINAL_VEL wurde eingestellt.

Anmerkung
Der Unterschied zwischen HOME_OFFSET und HOME besteht darin, dass HOME_OFFSET zunächst die Ursprungsposition und den Maßstab auf der Maschine festlegt, indem der HOME_OFFSET -Wert auf die Position angewendet wird, an der die Ausgangsposition gefunden wurde, und dann HOME angibt, wohin sich das Gelenk auf diesem Maßstab bewegen soll.

6.9. HOME_IS_SHARED

Wenn es keinen separaten Referenzschaltereingang für diese Gelenk gibt, sondern mehrere Taster an denselben Pin angeschlossen sind, setzen Sie diesen Wert auf 1, um zu verhindern, dass die Referenzfahrt beginnt, wenn einer der gemeinsamen Schalter bereits geschlossen ist. Setzen Sie diesen Wert auf 0, um die Referenzfahrt zu ermöglichen, auch wenn der Schalter bereits geschlossen ist.

6.10. HOME_ABSOLUTE_ENCODER

Verwendung für absolute Encoder. In Reaktion auf eine Anforderung zur Referenzfahrt des Gelenks wird die aktuelle Gelenkposition auf den [JOINT_n]HOME_OFFSET Wert gesetzt.

Die abschließende Bewegung zur [JOINT_n]HOME Position ist entsprechend der HOME_ABSOLUTE_ENCODER Einstellung optional:

HOME_ABSOLUTE_ENCODER = 0 (Standard) Gelenk verwendet keinen Absolutwertgeber
HOME_ABSOLUTE_ENCODER = 1 Absolutwertgeber, endgültige Bewegung zu [JOINT_n]HOME
HOME_ABSOLUTE_ENCODER = 2 Absolutwertgeber, KEINE endgültige Bewegung zu [JOINT_n]HOME
Anmerkung
Eine HOME_IS_SHARED-Einstellung wird stillschweigend ignoriert.
Anmerkung
Eine Aufforderung, für ein Gelenk die Referenzfahrt zu wiederholen, wird stillschweigend ignoriert.

6.11. HOME_SEQUENCE

Wird verwendet, um eine Multigelenk-Referenzierungssequenz HOME ALL zu definieren und die Referenzierungsreihenfolge zu erzwingen (z.B. darf Z nicht referenziert werden, wenn X noch nicht referenziert ist). Ein Gelenk kann erst dann referenziert werden, wenn alle Gelenke mit einer niedrigeren (absoluten) HOME_SEQUENCE bereits referenziert wurden und sich am HOME_OFFSET befinden. Wenn zwei Gelenke die gleiche HOME_SEQUENCE haben, können sie gleichzeitig referenziert werden.

Anmerkung
Wenn HOME_SEQUENCE nicht angegeben ist, wird das Gelenk nicht durch die HOME ALL-Sequenz referenziert (sondern kann durch einzelne gelenkspezifische Referenzierungsbefehle referenziert werden).

Die anfängliche HOME_SEQUENCE-Nummer kann 0, 1 (oder -1) sein. Der absolute Wert der Sequenznummern muss um eins erhöht werden - das Überspringen von Sequenznummern wird nicht unterstützt. Wenn eine Sequenznummer weggelassen wird, stoppt HOME ALL die Referenzfahrt nach Abschluss der letzten gültigen Sequenznummer.

Negative HOME_SEQUENCE-Werte zeigen an, dass die Gelenke in der Sequenz die letzte Bewegung zu [JOINT_n]HOME synchronisieren sollen, indem sie warten, bis alle Gelenke in der Sequenz hierzu bereit sind. Wenn ein Gelenk einen negativen HOME_SEQUENCE-Wert hat, dann müssen alle Gelenke mit demselben absoluten Wert (positiv oder negativ) des HOME_SEQUENCE-Wertes die letzte Bewegung synchronisieren.

Eine negative HOME_SEQUENCE gilt auch für das Ausführen einer Referenzfahrt eines einzelnen Gelenks. Wenn der HOME_SEQUENCE-Wert negativ ist, werden alle Gelenke, die den gleichen absoluten Wert dieser HOME_SEQUENCE haben, gemeinsam mit einer synchronisierten Endbewegung freigesetzt. Wenn der HOME_SEQUENCE-Wert Null oder positiv ist, wird nur das angegebene Gelenk in die Ausgangsstellung gebracht.

Das manualle Bewegen im "joint mode" von Gelenken mit einer negativen HOME_SEQUENCE ist nicht zulässig. Bei üblichen Portalanwendungen kann ein solches Verfahren zu einer Fehlausrichtung führen (Racking). Beachten Sie, dass das konventionelle Jogging in Weltkoordinaten immer verfügbar ist, sobald eine Maschine referenziert ist.

Beispiele für ein 3-Gelenk-System

Zwei Sequenzen (0,1), keine Synchronisation

[JOINT_0]HOME_SEQUENCE = 0
[JOINT_1]HOME_SEQUENCE = 1
[JOINT_2]HOME_SEQUENCE = 1

Zwei Sequenzen, Gelenke 1 und 2 synchronisiert

[JOINT_0]HOME_SEQUENCE =  0
[JOINT_1]HOME_SEQUENCE = -1
[JOINT_2]HOME_SEQUENCE = -1

Bei gemischten positiven und negativen Werten synchronisierten die Gelenke 1 und 2

[JOINT_0]HOME_SEQUENCE =  0
[JOINT_1]HOME_SEQUENCE = -1
[JOINT_2]HOME_SEQUENCE =  1

Eine Sequenz, keine Synchronisation

[JOINT_0]HOME_SEQUENCE =  0
[JOINT_1]HOME_SEQUENCE =  0
[JOINT_2]HOME_SEQUENCE =  0

Eine Sequenz, alle Gelenke synchronisiert

[JOINT_0]HOME_SEQUENCE = -1
[JOINT_1]HOME_SEQUENCE = -1
[JOINT_2]HOME_SEQUENCE = -1

6.12. VOLATILE_HOME

Wenn diese Einstellung aus TRUE gesetzt ist, geht für dieses Gelenk die Referenzeinstellung nicht verloren, wenn die Maschine in den AUS-Zustand übergeht. Dies ist für jedes Gelenk geeignet, das seine Position nicht beibehält, wenn der Gelenkantrieb ausgeschaltet ist. Einige Schrittantriebe, insbesondere Mikroschrittantriebe, können dies benötigen.

6.13. LOCKING_INDEXER

Handelt es sich bei diesem Gelenk um einen verriegelnden Drehindexer, wird es vor der Referenzfahrt entriegelt und danach verriegelt.

6.14. Unmittelbare Referenzfahrt (engl. immediate homing)

Wenn ein Gelenk keine Home-Schalter oder keine logische Home-Position wie ein Drehgelenk hat und Sie möchten, dass dieses Gelenk an der aktuellen Position startet, wenn die Schaltfläche "Home All" in der AXIS GUI gedrückt wird, dann sind die folgenden INI-Einträge für dieses Gelenk erforderlich.

HOME_SEARCH_VEL = 0
HOME_LATCH_VEL = 0
HOME_USE_INDEX = NO
HOME_OFFSET = 0 (oder der Offset der Ausgangsposition (HOME))
HOME_SEQUENCE = 0 (oder eine andere gültige Sequenznummer)
Anmerkung
Die Standardwerte für nicht spezifizierte HOME_SEARCH_VEL, HOME_LATCH_VEL, HOME_USE_INDEX, HOME und HOME_OFFSET sind Null, so dass sie weggelassen werden können, wenn eine sofortige Referenzfahrt angefordert wird. Eine gültige HOME_SEQUENCE-Nummer sollte in der Regel angegeben werden, da das Weglassen einer HOME_SEQUENCE die Verbindung vom HOME ALL-Verhalten ausschließt (siehe oben).

6.15. Vermeiden einer Referenzfahrt

Ein HAL -Pin (motion.homing-inhibit) ist vorgesehen, um die Einleitung der Referenzfahrt sowohl für "alle Achsen gleichzeitig (engl. "Home All") als auch für die Referenzfahrt einzelner Gelenke zu unterbinden.

Einige Systeme nutzen die Bestimmungen für die Synchronisierung der endgültigen Gelenkbewegungen, die werden durch negative [JOINT_N]HOME_SEQUENCE=INI-Dateielemente. Standardmäßig verbieten die Synchronisierungsbestimmungen ein Gelenk-Jogging vor der Referenzfahrt, um ein Gelenk-Jogging zu verhindern, das die Maschine falsch ausrichten könnte (z. B. Portalkreuzung).

Der Systemintegrator kann das Gelenk-Jogging vor der Referenzfahrt mit einer HAL-Logik erlauben, um die [JOINT_N]HOME_SEQUENCE-Elemente umzuschalten. Diese Logik sollte auch den Pin motion.homing-inhibit aktivieren, um sicherzustellen, dass die Referenzfahrt nicht versehentlich eingeleitet wird, wenn der Joint-Jogging-Modus aktiviert ist.

Beispiel: Synchronisierte Gelenke 0,1 mit negativer Sequenz (-1) für synchronisierte Referenzfahrt mit einem Schalter (allow_jjog), der eine positive Sequenz (1) für individuelles Gelenk-Jogging vor der Referenzfahrt wählt (partieller HAL-Code):

loadrt mux2 names=home_sequence_mux
loadrt conv_float_s32 names=heimat_sequenz_s32
setp home_sequenz_mux.in0 -1
setp home_sequenz_mux.in1 1
addf home_sequence_mux servo-thread
addf home_sequence_s32 servo-thread
...
net home_seq_float <= home_sequence_mux.out
net home_seq_float => home_sequence_s32.in
net home_seq_s32 <= home_sequence_s32.out
net home_seq_s32 => ini.0.home_sequence
net home_seq_s32 => ini.1.home_sequence
...
# allow_jjog: von einem virtuellen Bedienfeld oder Hardware-Schalter erzeugter Pin
net hsequence_select <= allow_jog
net hsequence_select => home_sequence_mux.sel
net hsequence_select => motion.homing-inhibit
Anmerkung
INI HAL-Pins (wie ini.N.home_sequence) sind nicht verfügbar, bis milltask startet, so dass die Ausführung der oben genannten HAL-Befehle mit Hilfe einer postgui HAL-Datei oder eines verzögerten [APPLICATION]APP=-Skripts verschoben werden sollte.
Anmerkung
Für die Echtzeitsynchronisation des Gelenk-Joggings für mehrere Gelenke sind zusätzliche HAL-Verbindungen für die Jog-Pins vom Typ Manual-Pulse-Generator (MPG) erforderlich (joint.N.enable, joint.N.scale, joint.N.counts).

Eine Beispielsimulationskonfiguration (gantry_jjog.ini), die das Joggen der Gelenke bei Verwendung negativer Nullpunktsequenzen demonstriert, befindet sich im Verzeichnis: configs/sim/axis/gantry/.