Lokale Variablen
Jede G-Code-Datei kann lokale Variablen deklarieren. Die Deklarationen müssen bei Hauptprogrammen ganz zu Beginn eingefügt werden, bei Unterprogrammen direkt nach der Unterprogrammdeklaration.
Lokale Variablen sind nur in dem Programm oder Unterprogramm sichtbar, in dem sie deklariert werden. (Kein dynamischer Scope.)
Tipp
Lokale Variablen funktionieren nur im Online-Decoder (nicht im CNC-Editor).
Anzahl der lokalen Variablen
Vor Version 4.18.0.0: Die Anzahl der lokalen Variablen ist pro Unterprogramm und im Hauptprogramm auf 21 begrenzt.
Ab Version 4.18.0.0: Die Anzahl der lokalen Variablen ist nur noch durch den Speicher begrenzt. Der Maximalwert kann über den Bibliotheksparameter SMC_CNC_LibParams.MAX_SUBPROGRAM_PARAMS geändert werden.
Für weitere Informationen siehe: Bibliotheksparameter
Syntax für die Deklaration
Die Syntax ist ähnlich der Syntax, mit der Unterprogrammparameter deklariert werden. Pro Satz kann eine Variable deklariert werden. Der Satz fängt nicht mit einem N-Wort an. Die Variable kann bei Deklaration optional mit einem Initialwert versehen werden. Ansonsten wird sie mit einem Standardwert je nach Typ vorbelegt (LREAL: 0, BOOL: FALSE, STRING: ‘‘
).
Syntax der Deklaration: LET <FormalParam> [:= <InitialValue>]
.
<FormalParam> ::= <ParamName> : <ParamType> <ParamName> ::= #[a-zA-Z0-9_]+ <ParamType> ::= LREAL | BOOL | STRING ; String mit maximaler Länge von 255 Bytes
<InitialValue>
: Ausdruck, der einen Wert und einen zur Variable passenden Typ hat. Der Ausdruck darf auch lokale Variablen (und in Unterprogrammen die Parameter des Unterprogramms) verwenden, allerdings nur solche, die weiter oben im Programmtext deklariert sind.
Beispiele
• LET #x : LREAL (* Variable #x, Typ LREAL, Initialwert 0 *) • LET #y : LREAL := #x + 1 (* Variable #y, Typ LREAL, Initialwert #x+1 = 1 *) • LET #b : BOOL := #x >= #y (* Variable #b, Typ BOOL, Initialwert FALSE *)
Bei lokalen Variablen spielt, wie bei Unterprogrammparametern, Groß- und Kleinschreibung keine Rolle. (#x
und #X
bezeichnen dieselbe Variable.) Die Namen aller in einem Programm/Unterprogramm deklarierten lokalen Variablen müssen unterschiedlich sein. Sie müssen sich von den Namen der formalen Parameter des Unterprogramms unterscheiden.
Lokale Variablen können im G-Code wie Parameter von Unterprogrammen verwendet werden.
Beispiele
• N10 G01 X#x Y#y • N20 G20 L10 K#b