Verwendung von Variablen

Variablen ermöglichen das Speichern von Werten und das Verwenden dieser Werte als Operanden für mathematische und logische Ausdrücke. Variablen können für das Berechnen einer veränderlichen Position, eines Offsets oder als Wert für Adressbuchstaben z. B. wie folgt in jedem G-Code-Dialekt verwendet werden:

WaitTime = Real1 + 500

G1 X100 + Offset_X Y100 + Offset_Y F=Fast

G1XPosition_X YPosition_Y

G4 Time=WaitTime

TargetReached = TRUE

Wenn Werte oder Variablen anderen Variablen im G-Code zugewiesen werden, ist die Angabe eines Gleichheitszeichens wie folgt zwingend erforderlich:

Real1 = 100, Real1 = Real2, Bool1 = True, Bool1 = Bool2,

Pose1[3] = 10, Pose[3] = Real1.

Bei Adressbuchstaben ist die Angabe des Gleichheitszeichens als Zuweisung optional:

  • X100 ist gleichbedeutend mit X=100
  • XReal1 ist gleichbedeutend mit X=Real1
  • XReal1 + 100 ist gleichbedeutend mit X=Real1+100

Im G-Code können dieselben Datentypen (Bool, Real und Pose) wie bei der SRL-Programmierung verwendet werden. In der SRL-Programmierung werden Variablen anhand ihres Index definiert und verwendet. Im G-Code erfolgt das Definieren und Verwenden über deren Namen. Damit die Umwandlung von G-Code in SRL-Befehle und umgekehrt erfolgen kann, muss festgelegt werden, welche G-Code-Variable welchen Index und Typ der SRL-Variablen verwendet. Diese Zuordnung von G-Code zu SRL-Variable muss der Anwender vor dem Im- oder Export im Menü Configuration variables vornehmen. In dieser Zuordnungstabelle wird während des Imports der Name der G-Code-Variablen dem konfigurierten Index der SRL-Variablen zugeordnet. Umgekehrt wird während des Exports von G-Code der im SRL-Programm verwendete Variablenindex dem G-Code-Namen zugeordnet. Ohne festgelegte Zuordnung in der Zuordnungstabelle können Variablen nicht im- oder exportiert werden. Unbekannte Zeichenfolgen bzw. nicht definierte Variablen führen zu syntaktischen Fehlern. G-Code-Variablen sind anhand dieser Liste global für jedes Programm gültig und können in jedem G-Code-Programm (sowie in anderen SRL-Programmen und in CallFunctions durch den Index der SRL-Variablen) verwendet werden.

Bei einem vorhandenen G-Code-Programm müssen alle im G-Code verwendeten Variablen in die Zuordnungstabelle der G-Code-Variablen eingetragen und anschließend die Definitionen in die SRL-Variablenliste übernommen werden (Schaltfläche [G-Code var list > SRL var list]). Dadurch können die Bezeichner mit dem SRL-Programm gespeichert werden. Die Definitionen in der G-Code-Konfigurationsdatei können über das Menü Configuration general auf der Festplatte gespeichert werden.

Bei einem vorhandenen SRL-Programm müssen allen im SRL-Programm verwendeten Variablen Bezeichner zugewiesen und anschließend die SRL-Variablen in die G-Code-Variablenliste übernommen werden (Schaltfläche [SRL var list > G-Code var list]). Dadurch können die Definitionen der im G-Code verwendeten Variablen in der G-Code-Konfigurationsdatei gespeichert und bei einem Import verwendet werden.

Wenn für mehrere G-Code-Programme unterschiedliche Variablendefinitionen benötigt werden, kann dies in unterschiedlichen G-Code-Konfigurationen festgelegt werden. Diese Konfigurationen können gespeichert und beim nächsten Import oder Export wieder verwendet werden.

HINWEIS

Variablen oder Ausdrücke im G-Code-Programm sind (wie im SRL-Programm) nicht synchron zur Bewegung. Erreicht der Programmvorlauf "P" (Programmpointer) den Ausdruck, wird dieser verarbeitet. Im SRL-Programm (z. B. nach dem Import) können Ausdrücke durch den Befehl WAIT_MOTION_DONE InLastSegment synchronisiert werden. Hierbei wird der Vorlauf bis zum Beginn des letzten Bewegungssegments gestoppt. Da im G-Code kein dem WAIT_MOTION_DONE gleichbedeutender Befehl existiert, muss der Vorlauf applikativ durch das Programmieren einer IEC Callfunction (M-Funktion) gestoppt werden. Dort kann mithilfe der Variablen Interface_MyRobot.Prg.OUT.lrRemainingDistance und Interface_MyRobot.Prg.OUT.lrRemainingTime durch den Anwendercode bestimmt werden, wann der Vorlauf fortgesetzt wird.
Verwendung von Pose-Variablen im G-Code

Pose-Variablen besitzen 6 Dimensionen vom Datentyp "Real". Der Zugriff auf eine Dimension erfolgt über eine eckige Klammer hinter dem Variablenbezeichner z. B. Pose_Var_1[ 1..6 ]. Nicht jeder G-Code-Befehl, der einen numerischen Wert erwartet, erlaubt es eine Pose- anstatt einer Real-Variable zu verwenden. Ist der Datentyp Pose nicht für den verwendeten G-Code-Befehl zugelassen, wird ein entsprechender Hinweis im Meldungsfenster des G-Code Import-Dialogs angezeigt. Nachfolgendes Beispiel zeigt die Verwendung von Pose-Variablen:

Pose_Var_1[3] = Pose_Var_1[3] + 100

Pose_Var_1[3] = Real_Var_1 +100

Pose_Var_1[3] = 100

Vektor-Operationen mit Pose-Variablen (z. B. Vektoraddition Pose_Target = Pose_1 + Pose_2) sind nicht möglich. Wenn beispielsweise eine Vektoraddition benötigt wird, muss eine Addition auf jede Dimension der Pose-Variable ausgeführt werden:

Pose_Target[1] = Pose_1[1] + Pose_2[1]

Pose_Target[2] = Pose_1[2] + Pose_2[2]

Pose_Target[3] = Pose_1[3] + Pose_2[3]

Verwendung von Real-Variablen im G-Code

Bei Operationen mit ausschließlich Real- oder Pose-Variablen können die Operatoren +, -, *, / verwendet werden. Wenn die Dimension bei Pose-Variablen angegeben wird, können beide Datentypen als Operanden eingesetzt werden:

Real_Target = Real_1 + Real_2

Real_Target = Real_1 / Real_2

Pose_Target[3] = Real_1 + Pose_Target[3]

Real_Target = Pose_1[1] + Pose_2[2]

 

Umsetzung von Real- und Pose-Ausdrücken im SRL-Programm:

Ausdrücke mit numerischen Operationen sowie Real- und Pose-Variablen im G-Code werden in einen CALC_REALVAR-Block umgewandelt. Bei konstanten Zahlen sind Vorzeichen erlaubt, bei Variablen nicht. Soll ein konstanter Wert explizit im SRL-Programm als negativ angezeigt werden, muss vor der Zahl der Operator und das Vorzeichen stehen.

Der Ausdruck Real_Target = Real_1 -100 wird wie folgt als SRL-Befehl umgesetzt:

Der Ausdruck Real_Target = Real_1 - -100 wird wie folgt als SRL-Befehl umgesetzt:

Der Ausdruck Real_Target = Real_1 + -100 wird wie folgt als SRL-Befehl umgesetzt:

Verwendung von Bool-Variablen im G-Code

BOOL-Variablen können den binären Zustand TRUE oder FALSE annehmen um z. B. Zustände oder den Fortschritt eines G-Code-Programms zu signalisieren. Bei boolschen Ausdrücken können Bool-Variablen als auch die konstanten Werte TRUE und FALSE verwendet werden. Als Operatoren können && bzw. AND für "UND", || bzw. OR für "ODER" und XOR verwendet werden:

Bool_Target = Bool_1 AND Bool_2

Bool_Target = Bool_1 && Bool_2

Das Ergebnis von Vergleichsoperationen zwischen Real- und/oder Pose-Variablen kann in Bool-Variablen gespeichert werden. Hierbei sind die Operatoren == (Gleich), <> (Ungleich) und >=,<=,>,< erlaubt:

Bool_Target = Real_1 == Pose_2[3]

Bool_Target = Real_1 > Pose_2[3]

Bool_Target = Real_1 <> Pose_2[3]

Bool_Target = Real_1 > 100

Für boolesche Operationen wird der Ausdruck im G-Code in einen SET_BOOLVAR-Block umgewandelt. Bei boolschen Operationen mit numerischen Operanden wird das angegebene Vorzeichen übernommen.

Der Ausdruck Bool_Target = Real1 <> -1 wird wie folgt als SRL-Befehl umgesetzt:

HINWEIS

Bei jeder Operation sind maximal zwei Operanden erlaubt. Sollen mehr Operanden in einem Ausdruck stehen, muss dieser Ausdruck wie folgt auf mehrere Zeilen aufgeteilt werden:
Der Ausdruck Bool_Target = (Pose_1[1] > Pose_2[1]) XOR FALSE wird zu:
Bool_Target = Pose_1[1] > Pose_2[1]
Bool_Target = Bool_Target XOR FALSE

Folgende Grafik veranschaulicht das Verwenden von Variablen im SRL-Programm: