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.

Hinweis

notice

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

example

Absoluter Wert der X-Achse:

V.A.ABS.X oder V.A.ABS[0]

Analog sind bei spindelspezifischen Variablen die Spindelnamen bzw. entsprechenden Indizes gemäß dem Kanalparametersatz zu verwenden.

                                             ".S" bzw. "[0]",

                                             ".S2" bzw. "[1]", usw.

Beispiel

example

Logische Achsnummer der S-Spindel:

Logische Achsnummer der S-Spindel:

                    V.SPDL.LOG_AX_NR.S oder V.SPDL.LOG_AX_NR[0]

Programmierbeispiel

prg_example

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

prg_example

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

prg_example

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