M1 Optionaler Halt

Die Interpretation des Programmcodes und die Bewegung wird an dieser Stelle unterbrochen, wenn der Anwender innerhalb des Auswertungszeitpunkts den Optionalen Halt anfordert. Für die Weiterfahrt muss das Signal des Optionalen Halts zurückgenommen werden. Hierzu wird an der Stelle des M1-Befehls durch den G-Code Import der Aufruf einer CallFunction mit dem Index 1 eingefügt. Es wird kein Bahnereignis verwendet. Der Anwender hat den Zeitpunkt der Auswertung sowohl durch eine Auswertungsbedingung, als auch durch das Signal des Optionalen Halts in der CallFunction 1 zu programmieren. 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 CallFunctions 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. Dieser kann variabel sein. Ebenso die Ausführungszeit der vorhergehenden Befehle, welche hauptsächlich durch die 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 ist vorgesehen, dass der Anwender eine Auswertungsbedingung angibt, 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 (CallF := FALSE). In diesem Fall bleibt der Programminterpreter auf dem CallFunction-Befehl stehen und prüft weiterhin die Auswertungsbedingung.

Wenn die Auswertungsbedingung erfüllt ist, muss der Anwender in der CallFunction 1 das invertierte Signal für die Anforderung des Optionalen Halts zurückgeben. 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. Der Anwender kann an dieser Stelle aber auch andere Bedingungen oder Eingänge (Digitale Eingabe / Ausgabe) verwenden.

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_Robot.Prg.OUT.lrRemainingDistance > 100.0
  • Bei Unterschreiten einer bestimmten Zeitspanne bis zum Erreichen des Zielpunkts:
  • Interface_Robot.Prg.OUT.lrRemainingTime > 100.0
  • Durch eine SRL-Variable, welche durch eine Bedingung im SRL oder ein PathEvent gesetzt wurde:
  • NOT Interface_Robot.PrgVar.axBoolValues[81]