Strukturen

Überblick

Strukturen werden als DUT-Objekte (Data Type Unit) über das Dialogfeld Objekt hinzufügen  im Projekt angelegt.

Sie beginnen mit den Schlüsselwörtern TYPE und STRUCT und enden mit END_STRUCT und END_TYPE.

Syntax

TYPE <structurename>:
STRUCT
    <declaration of variables 1>
    ...
    <declaration of variables n>
END_STRUCT
END_TYPE

<Strukturname> ist ein Typ, der im gesamten Projekt erkannt wird, und wie ein Standard-Datentyp verwendet werden kann.

Verschachtelte Strukturen sind erlaubt. Die einzige Beschränkung ist, dass Variablen nicht Adressen zugewiesen werden dürfen (die AT-Deklaration ist nicht erlaubt).

Beispiel

Beispiel für eine Strukturdefinition namens Polygonline:

TYPE Polygonline:
STRUCT
    Start:ARRAY [1..2] OF INT;
    Point1:ARRAY [1..2] OF INT;
    Point2:ARRAY [1..2] OF INT;
    Point3:ARRAY [1..2] OF INT;
    Point4:ARRAY [1..2] OF INT;
    End:ARRAY [1..2] OF INT;
END_STRUCT
END_TYPE

Initialisierung von Strukturen

Beispiel:

Poly_1:polygonline := ( Start:=[3,3], Point1:=[5,2], Point2:=[7,3], Point3:=[8,5], Point4:=[5,7], End:= [3,5]);

Initialisierungen mit Variablen sind nicht möglich. Ein Beispiel für die Initialisierung eines Arrays einer Struktur finden Sie unter Arrays.

Zugriff auf Strukturkomponenten

Der Zugriff auf eine Strukturkomponente erfolgt nach der Syntax:

<Strukturname>.<Komponentenname>

Für das obige Beispiel der Struktur Polygonline ist also der Zugriff auf die Komponente Start mit Poly_1.Start möglich.

Bitzugriff in Strukturen

Der Datentyp BIT ist ein spezieller Datentyp, welcher nur in Strukturen definiert werden kann. Er belegt 1 Bit Speicherplatz und ermöglicht einzelnen Bits einer Struktur über einen Namen zu adressieren.

TYPE <structurename>:
STRUCT
    <bitname bit1> : BIT;
    <bitname bit2> : BIT;
    <bitname bit3> : BIT;
    ...
    <bitname bitn> : BIT;
END_STRUCT
END_TYPE

Der Zugriff auf die Strukturkomponente BIT erfolgt mithilfe der nachstehenden Syntax:

<Strukturname>.<Bitname>

HINWEIS: Die Verwendung von Referenzen und Zeigern auf BIT-Variablen ist nicht möglich. Außerdem dürfen BIT-Variablen nicht in Arrays verwendet werden.

Strukturen vergleichen

Mit EQ-Operatoren können Operanden des Typs STRUCT (Struktur) verglichen werden, sofern das Zielsystem strukturierte Datentypen unterstützt.