Definition von Variablentypen

Neben den benutzerdefinierten Variablentypen können auch die elementare Datentypen (BOOLEAN, ..., REAL64) und Zeichenketten vom Typ STRING verwendet werden:

Tabelle 2-1: Größe der Default-Variablentypen

Variablentyp

Größe

 

BOOLEAN, UNS08, SGN08

1 Byte

UNS16, SGN16

2 Byte

UNS32, SGN32

4 Byte

REAL64

8 Byte

STRING

128 Byte

Ab der CNC-Version V2.10.1025.00 können Stringvariablen inklusive Endekennung bis zu 128 Zeichen umfassen.

Aus Gründen der Abwärtskompatibilität muss für die Verwendung von Stringvariablen mit mehr als 20 Zeichen der Parameter use_extended_string_var = 1 gesetzt werden. In Abhängigkeit des Parameters use_extended_string_var sind Stringvariable auf folgende Zeichenlängen (inklusive Endekennung) begrenzt:

use_extended_string_var = 0: 21 Byte (Default)

use_extended_string_var = 1: 128 Byte

VORSICHT

Falls in einer bestehenden Konfiguration nachträglich auf 128-Byte große Stringvariablen gewechselt wird (use_extended_string_var = 1), müssen die Adressen der externen Variablen im Speicher (Index, Byte-Offset) und die PLC angepasst werden, damit nachfolgende Variablen nicht überschrieben werden!

Die Definition der Variablentypen erfolgt in der gleichen Konfigurationsliste wie das Festlegen der externen Variablen.

Im Konfigurationsfile können Kommentare ganzzeilig, oder am Ende einer Zeile eingefügt werden. Bei ganzzeiligem Kommentar muss am Zeilenanfang das Kommentarzeichen "'#", gefolgt von einem Leerzeichen eingefügt werden.

Soll am Ende einer Zeile ein Kommentar eingefügt werden, so muss vor dem Kommentar lediglich ein Leerzeichen vorhanden sein. Wurde in der Zeile jedoch ein String definiert, so muss dem Kommentar das Kommentarzeichen "(" vorangestellt werden.

Leerzeilen sind ebenfalls möglich.

Definition der Variablentypen:

Bezeichner

Wertebereich

Default

Bedeutung

use_extended_string_var

[0; 1]

0

Mit dem Parameter „use_extended_string_var“ kann die zulässige Zeichenanzahl von Stringvariablen von 21 auf 128 Zeichen (jeweils inklusive Endmarke) erhöht werden.

Falls die Adressen der V.E. Variablen in 24-Byte Blöcken (s.) vorgegeben sind, ist bei den 128 Byte großen Variablen vom Typ STRING zu beachten, dass sie im Speicherlayout mehrere 24-Byte Blöcke belegen und der Index entsprechend hoch­gezählt (vergl. Variablenarrays) werden muss.

struct[i] .*

i:= [0; 29]

Datensätze zur Definition der Variablentypen. Das Schlüsselwort „struct“ ersetzt das in älteren CNC-Versionen gebräuchliche Token „type“. Auf Grund der Abwärtskompatibilität wird jedoch „type“ auch weiterhin unterstützt.

struct[i]. name

ASCII-String

 

Über den Namen wird der Variablentyp identifiziert. Er darf dabei nicht länger als 20 Zeichen sein. Gross- und Kleinbuchstaben werden unterschieden.

struct[i]. element[j] .*

j:= [0; 49]

Datensätze zu Definition der Elemente des Variablentyps.

struct[i]. element[j].name

ASCII-String

 

Über den Namen wird das Strukturelement identifiziert. Er darf nicht länger als 20 Zeichen sein. Gross- und Kleinbuchstaben werden unterschieden.

struct[i]. element[j].type

ASCII-String

[BOOLEAN,
SGN08, UNS08, SGN16, UNS16, SGN32; UNS32, REAL64, STRING oder benutzerdefiniert]

UNS32

Der Typ gibt den Datentyp des Strukturelements an. Neben elementaren Datentypen (SGN08,...,REAL64) kann hier auch der Datentyp STRING oder ein benutzerdefinierter Datentyp angegeben werden.

struct[i]. element[j].

 

[TRUE, FALSE]

Wird von Variablen­instanzierung geerbt (s. Kapitel)

Normalerweise erben alle Strukturelemente die Synchronisierungsart für den Schreib-/Lesezugriff (s. Kapitel) von der Variablen­instanzierung. Mit diesem Parameter kann jedoch die Synchronisationsart für das Strukturelement individuell festgelegt werden.

struct[i]. element[j].

access_rights

[READ_WRITE, READ_ONLY, WRITE_ONLY]

Wird von Variablen­instanzierung geerbt(s. Kapitel)

Normalerweise erben alle Strukturelemente die Zugriffsrechte von der Variableninstanzierung. Mit diesem Parameter kann jedoch das Zugriffsrecht für das Strukturelement individuell festgelegt werden.

struct[i]. element[j].

array_elements

[0; MAX_UNS16]

0

Ist das Strukturelement nicht als Feld ausgelegt, so muss die Feldgrösse mit 0 angegeben werden. Ansonsten wird an dieser Stelle die Anzahl der Feldelemente festgelegt.