M1 Optionaler Halt

Die Interpretation des Programmcodes und die Bewegung wird an dieser Stelle unterbrochen, wenn innerhalb des Auswertungszeitpunkts ein Optionaler Halt angefordert wird. Für die Weiterfahrt muss das Signal des Optionalen Halts zurückgenommen werden. Hierzu muss an der Stelle des M1-Befehls durch den G-Code-Import der Aufruf einer CallFunction mit dem Index 1 eingefügt werden. Es wird kein Bahnereignis verwendet. Der Zeitpunkt der Auswertung muss sowohl durch eine Auswertungsbedingung, als auch durch das Signal des Optionalen Halts in der CallFunction 1 programmiert werden. Der Aufruf der CallFunction 1 des Optionalen Halt-Befehls erfolgt, sobald der Programminterpreter mit dem Programmzeiger den Befehl erreicht.

Die Funktionalität des optionalen Halts ist als IEC-Codebeispiel importierbar. Das Beispiel kann angepasst und verwendet werden. Siehe dazu Kapitel CallFunction für G-Code.

Das nachfolgende G-Code Beispiel zeigt den Import des M1-Befehls:

G1 X0 Y0

G1 X350

M1

G1 Y350

G1 Y0

M30

Der SRL-Programminterpreter liest kontinuierlich (maximal aber bis zum eingestellten Vorlauf) neue Befehle ein. Der eingestellte Vorlauf kann variabel sein. Ebenso die Ausführungszeit der vorhergehenden Befehle, welche hauptsächlich von der Ausführungsdauer der vorhergehenden Bahnsegmente abhängt. Dies hat möglicherweise zur Folge, dass das Signal, welches den Optionalen Halt anfordert, zu früh oder zu spät interpretiert wird. Daher muss eine Auswertungsbedingung angegeben werden, welches den Zeitpunkt widerspiegelt, an dem das Signal ausgewertet werden soll, welches den Optionalen Halt anfordert. So kann der Anwender mit Informationen aus dem Robot UI festlegen, dass das Signal ausgewertet wird, wenn beispielsweise eine bestimme Restanzahl an Bahnsegmenten, eine bestimme Restlänge oder eine Restzeit bis zum Zielpunkt erreicht wurde. Solange die Auswertungsbedingungen nicht erfüllt ist, muss der Anwendercode in der CallFunction den Wert "FALSE" zurückgeben. In diesem Fall bleibt der Programminterpreter auf dem CallFunction-Befehl stehen und prüft weiterhin die Auswertungsbedingung.

Wenn die Auswertungsbedingung erfüllt ist, muss in der CallFunction 1 das invertierte Signal für die Anforderung des Optionalen Halts zurückgegeben werden. Der Wert "TRUE" dieses Signals bedeutet , dass der Optionale Halt angefordert wurde. Der Wert "FALSE" bedeutet, dass die Applikation für die Weiterfahrt freigegeben wird.

In folgendem Beispiel wird als Bedingung des Auswertungszeitpunkts die Anzahl der verbliebenen Bahnsegmente gewählt. Erst wenn die Bewegungsausführung beim letzten Bahnsegment angekommen ist, wird das Signal des Optionalen Halts ausgewertet. Vorher wird der Zustand des Signals ignoriert. Als Signalquelle zur Anforderung des Optionalen Halts wird hier die die SRL-BOOL-Variable mit Index 82 verwendet. An dieser Stelle können aber auch andere Bedingungen oder Eingänge (Digitale Eingabe / Ausgabe) verwendet werden.

Alternativ können auch die nachfolgenden als Beispiele dargestellten Bedingungen zur Festlegung des Auswertungszeitpunkts verwendet werden:

  • Bei Unterschreiten eines bestimmten Abstandes zum Erreichen des Zielpunkt:
  • Interface_MyRobot.Prg.OUT.lrRemainingDistance > 100.0
  • Bei Unterschreiten einer bestimmten Zeitspanne bis zum Erreichen des Zielpunkts:
  • Interface_MyRobot.Prg.OUT.lrRemainingTime > 100.0
  • Durch eine SRL-Variable, welche durch eine Bedingung im SRL-Programm oder ein PathEvent gesetzt wurde:
  • NOT Interface_MyRobot.PrgVar.axBoolValues[81]