Ändern von Variablenwerten
G-Code: G36
, G37
Funktion: Die Befehle ändern den Wert einer Variablen. G36
schreibt den angegebenen Wert in eine Variable. G37
inkrementiert die Variable um den angegebenen Wert. O$var$
definiert die Variable, die bearbeitet wird. D
definiert den Wert, der bei G36
geschrieben wird oder bei G37
addiert wird. Der Befehl wird zum Beispiel bei einem Schleifenzähler, der für bedingte Sprünge benötigt wird, angewendet.
Syntax
G36 O D G37 O D
G-Code Wort bei G36 | Beschreibung |
---|---|
O | Variable, auf die geschrieben wird. Wenn Die interne Variable kann in dem Befehl Sprung verwendet werden. |
D | Neuer Variablenwert |
G-Code Wort bei G37 | |
O | Variable, die inkrementiert wird. Wenn |
D | Inkrement |
Zähler programmieren (wenn die Bahn online verarbeitet wird)
Die globale Variable
g_i
wird auf 5 gesetzt.
N1000 G36 O$g_i$ D5
Die Zeilen 1010 und 1020 werden fünf Mal verfahren.
N1000 G36 O$g_i$ D5 N1010 G1 X100 F100 E100 E-100 N1020 G1 X0 N1030 G37 O$g_i$ D-1 N1040 G20 L1010 K$g_i$
Tipp
Der Mechanismus funktioniert nur, wenn die Bahn online verarbeitet wird, da nur dann Variablen verwendet werden können! Im CNC-Editor funktioniert dieser Mechanismus nicht.
Zähler für Offlinebetrieb programmieren
Wenn Sie offline im Editor arbeiten wollen, spezifizieren Sie mit O
keine Variable. Dann wird eine implizite Decodervariable Typ INT
verwendet. Aber es steht nur eine Variable zur Verfügung. Sie können keine verschachtelten Sprünge und Schleifen programmieren.
Stringvariablen verwenden
Sie können im G-Code eine Stringvariable im O-Wort verwenden. Außerdem darf dieser Variablen über den Befehl G36
und G37
ein Stringwert zugewiesen oder angehängt werden.
N10 G36 O$strTest$ D'Name'
Die Variable strTest
erhält den Wert Name.
N20 G37 O$strTest$ D'=Test'
Der Variablen strTest
wird =Test
angehängt.
Tipp
Wenn im CNC-Programm Stringvariablen verwendet werden und das CNC-Programm (im IEC- Programm) mit Hilfe des Funktionsbausteins SMC_ReadNCFile
eingelesen wird, dann müssen für die Strings Puffer im IEC-Programm reserviert sein. Andernfalls tritt der Fehler SMV_RNCF_NO_STRINGBUFFER
auf. Dafür steht der Funktionsbaustein SMC_StringBuffer
zur Verfügung.
Jeder String des CNC-Programms benötigt einen eigenen Platz in der Funktionsbaustein-Instanz von SMC_StringBuffer
, auch wenn der gleiche String mehrfach vorkommt.
Folgende Deklaration kann beispielsweise 32 Strings puffern:
sb: SMC_StringBuffer(uiBufferSize := 32);
Dann wird die Funktionsbaustein-Instanz sb
als Pointer an den Eingang pStringBuffer
der Instanz von SMC_ReadNCFile
übergeben.