Priorisierung und Lock-Blöcke
Existieren mehrere auftraggebende Kanäle, die ein oder mehrere gemeinsam genutzte auftragnehmende Kanäle kommandieren, so konkurrieren deren Jobs - genauer deren Programme - darin, Aufträge an den gemeinsamen Auftragnehmer abzusetzen. Der Jobmanager bestimmt die Reihenfolge der Kommandierung:
- Priorisiert wird der am längsten auf Zuteilung wartende Job. Genutzt wird hierzu ein steuerungsinterner Zeitstempel, der beim erstmaligen Zustellversuch jedes neuen Kommandos neu vergeben wird. Bei Zeitgleichheit wird der Kanal bevorzugt, der die kleinste Konfigurationsnummer „j“ im Parameter master[j].log_id von P-STUP-00206 enthält.
- Kann der gewählte Auftraggeber trotz Zuteilung sein Kommando nicht ausführen (z.B. einen Job in die Auftragnehmer-Warteschlange legen - weil diese z.B. voll ist), so muss er warten. Alle anderen Auftraggeber warten ebenfalls. Es findet keine Neupriorisierung statt.
- Das Warten kann nur durch einen Abbruch (MCV_GrpResetForced, MC_GrpStop) unterbrochen werden, welcher bevorzugt ausgeführt wird.
Ohne zusätzliche Eingriffe entsteht bei mehreren aktiven Auftraggebern – also mehreren gleichzeit laufenden CNC Programmen - im Extremfall eine chaotische Abarbeitung konkurrierender Jobs.
Wenn dies nicht zulässig ist und ein auftraggebender Job in „seinem Batch“ exklusiven Zugriff auf die Reihenfolge der Kommandierung benötigt, so kann von ihm ein „Lock-Block“ erstellt werden. Die NC-Befehle hierfür sind:
- #LOCK und
- #UNLOCK
Mit Ausführung des #LOCK-Befehls blockiert ein Auftraggeber bis zum #UNLOCK - oder bis zu seinem Programmende mit M30 - alle anderen Auftraggeber dauerhaft in der Kommandierung ihrer Befehle. Die zuvor beschriebene Priorisierung ist solange deaktiviert. Möglich werden dadurch vorgegebene Abfolgen von Jobs in den Warteschlangen auftragnehmender Kanäle und Jobs in kooperierenden Kanälen, deren Jobs/Programme quasi „gleichzeitig“ und ohne Deadlock in den Auftragnehmern abgelegt werden können.
Hinweis

Der Lock-Block wirkt nur auf Jobmanager-spezifische Kommandos. Alle anderen CNC Kommandos werden unabhängig davon weiterhin ausgeführt.
Hinweis

Ist kein Lock-Block aktiv, so konkurriert ein neu kommandierter #LOCK Befehl mit allen gleichzeitigen Befehlen in anderen auftraggebenden Kanälen. Es gilt die zuvor beschriebene Priorisierungsregel.
Hinweis

Ein Reset-/ Stopp-Befehl durch einen beliebigen Auftraggeber wird unabhängig zu einem aktiven Lock-Block immer durchgesetzt. Ein aktiver Lock-Block wird dabei deaktiviert.