Eigendefinierte Variablen (#VAR, #ENDVAR, #DELETE)
Eigendefinierte Variablen werden im NC-Haupt- oder Unterprogramm nach dem Programmname in einem Deklarationsblock angelegt und ggf. initialisiert, der mit #VAR beginnt und mit #ENDVAR abgeschlossen wird.
Hinweis
Die eigendefinierten Variablen haben die Einstiegskennungen V.P. , V.S. und V.L.. Ihnen können Werte im REAL-Format zugewiesen werden. Ab Version V2.11.2032.08 stehen auch eigendefinierte Variablen mit der Einstiegskennung V.CYC. zur Verfügung.
Syntax zum Anlegen eines Deklarationsblocks für eigendefinierte Variablen: | |
#VAR | Beginn des Deklarationsblockes |
: |
|
: | Deklarations und Initialisierungsbereich |
: |
|
#ENDVAR | Ende des Deklarationsblockes |
Mit der Einführung von V.CYC.-Variablen sind für alle Arten von eigendefinierten Variablen folgende Erweiterungen verfügbar (ab: V2.11.2032.08, V2.11.2832.00, V3.1.3079.41, V3.1.3107.30)
Die Deklaration kann neben der Angabe des Variablennamens auch die Festlegung eines Datentyps und eines Initialwerts umfassen. Ohne Zuweisung eines Initialwertes wird die Variable mit dem Initialwert des jeweiligen Datentyps belegt. Ohne Angabe eines Datentyps wird die Variable grundsätzlich im REAL-Format angelegt.
Syntax der Deklaration und Initialisierung: |
V.P | S | L | CYC.<Name> : <Datentyp> = <Initialwert> | "<Initialstring>" |
<Name> | Frei gewählter Name der eigendefinierten Variable |
<Datentyp> | Kennungen für den Datentyp (optional): BOOLEAN SGN08, UNS08 SGN16, UNS16 SGN32, UNS32 REAL STRING[i] mit <i>:= 0..126 |
<Initialwert>, "<Initialstring>" | Initialwert bzw. String der Variable (optional) gemäß Datentyp |
Programmierbeispiel
Anlegen von Variablen mit und ohne Typdeklaration
%test_var_def_1
:
#VAR
V.P.VAR_1
V.P.VAR_2 = 10.67
V.P.VAR_3 : UNS32 = 10
V.L.NAME_1 : STRING[20] = "GRUNDPLATTE"
V.L.VAR_1 : REAL = 23.45
V.L.VAR_2 : SGN08
#ENDVAR
Zur besseren Übersicht kann die Initialisierung eines Variablen-Arrays mit dem „\“-Zeichen auch über mehrere NC-Zeilen geschrieben werden.
%test_var_def_2
:
#VAR
V.P.ARRAY_1[3][6] = [10,11,12,13,14,15, \
20,21,22,23,24,25, \
30,31,32,33,34,35 ]
V.L.MY_ARRAY[3][6] = [10,11,12,13,14,15, 20,21,22,23,24,25, 30,31,32,33,34,35]
#ENDVAR
Hinweis
Der Zugriff auf Arrayvariablen beginnt bei Index 0! Mit obigem Beispiel liefert der Zugriff V.L.MY_ARRAY[0][5] somit den Wert 15.
Eigendefinierte Variablen und Variablen-Arrays können im NC-Programm auch wieder gelöscht werden. Hierzu steht der Befehl #DELETE zur Verfügung.
Syntax |
#DELETE V.<name> {, V.<name>} |
Programmierbeispiel
#DELETE V.P.ARRAY_1, V.L.MY_ARRAY, V.P.VAR_1, V.L.VAR_1, V.S.VAR_1
Des Weiteren stehen die SIZEOF- und die EXIST-Funktion zur Verfügung (siehe Kapitel Arithmetische Ausdrücke <expr>), die die Dimensionsgröße von Variablenarrays ermitteln und die Existenz von eigendefinierten Variablen überprüfen.
Programmierbeispiel
Durch die EXIST-Abfrage auf eine eigendefinierte V.S.-Arrayvariable (mit einem beliebigen gültigen Index) wird geprüft, ob diese Variable z.B. bereits in einem vorhergehenden NC-Programm angelegt wurde oder noch definiert werden muss:
…
N10 $IF EXIST[V.S.EXAMPLE[0]] == TRUE
N20 V.S.EXAMPLE[2] = 10 ;V.S-Variable[2] mit einem Wert belegen
N30 $ELSE
N40 #VAR
N50 V.S.EXAMPLE[5] = [1,2,3,4,5 ]
N60 #ENDVAR
N70 $ENDIF
…
M30