Unterstützte M-Funktionen

Die unterstützen M-Funktionen werden in der SEW Robot Language durch einen IEC-Funktionsaufruf (CallFunction) als auszulösendes Ereignis abgebildet. Die maschinenspezifische Funktionalität, wie beispielsweise das Ein- oder Ausschalten von Werkzeugen, muss durch den Programmierer in der IEC applikativ festgelegt werden. Die Bezeichnungen der M-Funktionen in der Übersichtstabelle dienen nur der Orientierung, welche Funktionalität in dem jeweiligen Dialekt der M-Funktion zugeordnet wird. Der G-Code Import übernimmt die angegebene Zahl der M-Funktion auf den Index des IEC-Funktionsaufrufs. Weitere Informationen finden Sie im Kapitel IEC-Funktionsaufruf.

Bevor eine M-Funktion importiert werden kann, muss diese im Manueller G-Code Import konfiguriert werden. Dort stehen 3 verschiedene Verhaltensweisen zum Schaltzeitpunkt und Fortlauf des Interpreters zur Verfügung.

  • Anwendercode: Der G-Code-Import fügt an der Stelle der M-Funktion nur den Befehl "CALLF" ein. Der Anwender kann applikativ den exakten Zeitpunkt, das Warten auf Signale oder Werte oder ein ganz bestimmtes Verhalten implementieren, welches die maschinenspezifische Funktionalität ausführt. Die CallFunction wird aufgerufen, sobald der SRL-Interpreter die Befehlszeile erreicht. Gibt der Anwendercode "TRUE" als Rückgabe der CallFunction zurück, setzt der Interpreter die Abarbeitung fort. Durch Rückgabe von "FALSE" kann der Anwender ein Fortlaufen des Interpreters verhindern beispielsweise um auf ein Signal zu warten. Es ist hierfür im Dialog der Wert CALL_FUNTION einzustellen. Siehe M1 Optionaler Halt.
  • Anwendercode mit Rastpunkt: Der G-Code-Import fügt an der Stelle der M-Funktion den Befehl "Wait MotionDone", gefolgt von "CallF" ein. Der Interpreter bleibt dabei am Wait Befehl stehen und stoppt damit die Einspeisung weiterer Bahnsegmente. Erst bei Erreichen von Stillstand führt der Interpreter die CallFunction aus. Hier kann die Verhaltensweise wie bei Option 1 implementiert sein. So erfolgt der Fortlauf des Interpreters erst, wenn die CallFunction "TRUE" zurückgibt. Es ist hierfür im Dialog der Wert EXACT_STOP_AND_CALL_FUNCTION einzustellen. Siehe M0 Geplanter Halt.
  • Bahnereignis: Der G-Code-Import fügt an der Stelle der M-Funktion ein Bahnereignis mit dem Befehl REG_PATH_EVENT, gefolgt vom Befehl CallF ein. Dadurch wird der IEC-Funktionsaufruf zu Beginn der Ausführung des folgenden Bahnsegmentes aufgerufen. Die Anzahl der in einem Bahnsegment ausführbaren M-Funktionen ist auf 64 limitiert. Weitere M-Funktionen können erst im nachfolgenden Bahnsegment aufgerufen werden. Weitere Informationen finden Sie im Kapitel Bahnereignis. Es ist hierfür im Dialog der Wert PATHEVENT_AND_CALL_FUNCTION einzustellen.

HINWEIS

Stellen Sie sicher, dass vor Ausführen des G-Codes alle benötigten Indizes der M-Funktionen als IEC-Funktionsaufruf im Anwenderprogramm in der IEC implementiert wurden. Zudem muss der implementierte IEC-Funktionsaufruf bei Verhaltensweise 3 (Bahnereignis) bereits beim ersten Aufruf "TRUE" als Ergebnis zurückliefern. Andernfalls wird bei Auslösen des Bahnereignisses ein Fehler während der Programmausführung auftreten, der zu einem Not-Halt der Applikation führt.

Das folgende Beispiel zeigt die Umsetzung des G-Code in die SEW Robot Language, wenn alle verwendeten M-Funktionen mit Bahnereignis konfiguriert wurden.

G1 X0 Y0

M3

G1 X350

M4

G1 Y350

M5

G1 X0

M543

G1 Y0

M30

Bahnereignisse können mittels aktiviertem Stift (Pen, im ControlPanel der 3D-Simulation) aufgezeichnet werden. Eine Kugel markiert die Position auf der Bahn, an welcher die M-Funktion ausgeführt bzw. das Bahnereignis ausgelöst wurde.

HINWEIS

Befindet sich kein Fahrbefehl zwischen dem Ende des Programms (END_PROG) und dem Ende des eines registrierten Bahnereignisses (REG_PATH_EVENT), fügt der G-Code Import automatisch einen leeren linearen Fahrbefehl hinzu (LIN_EXPLICIT ohne Koordinaten).
Der leere lineare Fahrbefehl ist notwendig, damit ein Bahnereignis am Ende des Programms zulässig ist. Dies bewirkt, dass der zuletzt eingegebene Punkt (durch X, Y, Z, A…) erneut angesteuert und ein Genauhalt durchgeführt wird.
Wird das importierte G-Code Programm als Unterprogramm mittels des SEW Robot Language Befehls CALL_PROG aufgerufen und es trifft die oben beschriebene Situation auf dieses G-Code Programm zu, dann wird vor dem Verlassen des Unterprogramms ein Genauhalt ausgeführt. Soll beim Verlassen kein Genauhalt ausgeführt werden, ist das Registrieren eines Bahnereignisses am Ende des Unterprogramms zu vermeiden.

In folgendem Beispielprogramm ist ein leerer Fahrbefehl vor Verlassen des Programms notwendig. Hier eine Bahn, bei welcher zu Beginn eine Aktion ein und am Ende ausgeschaltet wird:

G1 X0

M3 ;Einschalten

G1 X250

M4 ;Ausschalten

M30

Die verfügbaren M-Funktionen finden Sie im Kapitel Übersicht der unterstützten Befehle. (HINWEIS: Der Index 65535 ist der maximal zulässige Index für M-Funktionen).

Bei M0, M1, M3..29, M31..47, M50..59, M61..M65535 muss der Anwender die gewünschte Aktion (z. B. einen bestimmten frei wählbaren Ausgang setzen) in der IEC-CallFunction selbst programmieren. Es können entsprechende IEC-Code-Beispiele importiert werden. Siehe dazu Kapitel CallFunctions für G-Code.