Variablen und Variablenrechnung

Eine vollständige Liste der Variablenprogrammierung findet sich in der Befehlsübersicht unter Variablenprogrammierung (V.).

Unter Variablen sind hier zum einen interne Daten des Decoders mit einer festen Namenszuweisung zu verstehen, zum anderen selbst zu definierende Variablen, deren Bezeichnung im Wesentlichen frei wählbar ist. Mit Ausnahme der externen Variablen (V.E...) ist deren Gültigkeit und Verwendbarkeit ausschließlich auf den jeweiligen NC-Kanal begrenzt.

Allgemeine Syntax:

V.<NAME_1>.<NAME_2>.<NAME_3>.{<NAME_n>.}

V.

zeigt den Variablenzugriff an

<NAME_1>.

Bestimmt die globale Datenbezeichnung:

 

"A."

steht für achsspezifische Variablen,

"SPDL."

"SPDL_PROG."

steht für spindelspezifische Variablen,

"G."

steht für achsübergreifende, im Kanal global gültige Variablen,

"E."

steht für externe Variablen,

"P."

steht für eigendefinierte, bis Hauptprogrammende (M2, M30) gültige Variablen,

"S."

steht für eigendefinierte, Hauptprogramm übergreifende Variablen,

"L."

steht für eigendefinierte, lokale Variablen, gültig bis aktuelle Programmebene durch Rücksprung (M17, M29) verlassen wird,

"CYC."

steht für Variablen, die nur innerhalb von Zyklenprogrammen (L CYCLE) verwendet werden dürfen.

<NAME_2>.

gibt den Datennamen an

<NAME_3>.

gibt z.B. den Index an, wenn mehrere gleiche Daten zu unterscheiden sind.

Programmierung der Achskennung

Die letzte Kennung der achsspezifischen und einiger gruppenspezifischen Variablen stellt die Achskennung dar. Dabei sind die Bezeichnungen

                                             ".X" bzw. "[0]",

                                             ".Y" bzw. "[1]",

                                             ".Z" bzw. "[2]"

jeweils wahlweise zu verwenden, wenn im Kanalparametersatz der Achse mit dem Index 0 der Name X, der Achse mit dem Index 1 der Name Y und der Achse mit dem Index 2 der Name Z zugewiesen ist.

Beispiel

Absoluter Wert der X-Achse:

Beispiel

Logische Achsnummer der S-Spindel:

Programmierbeispiel

Die Zeilen N20/N30 bewirken jeweils eine Geradeninterpolation in X-Richtung um den Wert der Variablen V.A.BZP.Y, also der Bezugspunktverschiebung in Y-Richtung.

N10 G92 X0 Y40 Z0
;Bezugspunktverschiebung
N20 G91 G01 F1000 XV.A.BZP.Y
N30 XV.A.BZP[1]
;hier: Achsindex 1 == Y
N40 M30

Von allen Variablen kann der Inhalt gelesen werden, einigen kann auch ein Wert zugewiesen werden. Die Zugriffsart ist für jede Variable fest vorgegeben; im allgemeinen ist nur ein lesender Zugriff zugelassen, da bei den meisten Variablen ein schreibender Zugriff nicht sinnvoll ist.

Programmierbeispiel

Hier wird dem 2. Nullpunktverschiebungsvektor für die Achse mit dem Index 1 der Wert 100 zugewiesen:

N10  V.G.NP[2].V[1] = 100
...

Mit der EXIST-Funktion (siehe Kapitel Arithmetische Ausdrücke <expr>) kann geprüft werden, ob eine Variable überhaupt verfügbar ist.

Programmierbeispiel

Durch die EXIST-Abfrage auf eine achspezifische Variable wird geprüft, ob eine bestimmte Achse überhaupt im NC-Kanal vorhanden ist:

N10 G90 Y0
N20 $IF EXIST[V.A.LOG_AX_NR.X] == TRUE
N30 X-10
;X-Achse ist im Kanal, Position –10 anfahren
N40 $ELSE
N50 #CALL AX [X,1,0]
;X-Achse nicht im Kanal, zuerst anfordern
N60 $ENDIF
M30

Vor dem Zugriff auf eine externe Variable wird zunächst geprüft, ob überhaupt zugegriffen werden kann:

N10 G90 Y0
N20 $IF EXIST[V.E.POS_1] == TRUE
N30 XV.E.POS_1
;Fahre X-Achse auf Position POS_1
N40 $ELSE
N50 #MSG ["V.E.POS_1 nicht vorhanden!"]
;Meldung ausgeben
N55 M0
;Anhalten
N60 $ENDIF
M30