UNION
Eine UNION ist eine Datenstruktur, die meist unterschiedliche Datentypen enthält. In einer Union haben alle Komponenten den gleichen Offset, wodurch sie denselben Speicherplatz belegen.
Die Deklaration einer Union nehmen Sie in einem DUT-Objekt vor, das Sie über den Befehl Hinzufügen > DUT im Kontextmenü des SPS-Projektbaums im Projekt anlegen.
Syntax:
TYPE <Unionname>:
UNION
<Variablendeklaration 1>
...
<Variablendeklaration n>
END_UNION
END_TYPE
Beispiel 1:
In der folgenden Beispieldeklaration einer Union betrifft eine Zuweisung auf uName.fA auch uName.nB und uName.nC.
Deklaration:
TYPE U_Name:
UNION
fA : LREAL;
nB : LINT;
nC : WORD;
END_UNION
END_TYPE
Instanziierung:
VAR
uName : U_Name;
END_VAR
Zuweisung:
uName.fA := 1;
Ergebnis:
fA = 1
nB = 16#3FF0000000000000
nC = 0
Beispiel 2:
In der folgenden Beispieldeklaration einer Union betrifft eine Zuweisung auf u2Byte.nUINT auch u2Byte.a2Byte und u2Byte.aBits.
Deklaration der Struktur ST_Bits:
TYPE ST_Bits :
STRUCT
bBit1 : BIT;
bBit2 : BIT;
bBit3 : BIT;
bBit4 : BIT;
bBit5 : BIT;
bBit6 : BIT;
bBit7 : BIT;
bBit8 : BIT;
END_STRUCT
END_TYPE
Deklaration der Union U_2Byte:
TYPE U_2Byte :
UNION
nUINT : UINT;
a2Byte : ARRAY[1..2] OF BYTE;
aBits : ARRAY[1..2] OF ST_Bits;
END_UNION
END_TYPE
Instanziierung der Union:
VAR
u2Byte : U_2Byte;
END_VAR
Zuweisung 1:
u2Byte.nUINT := 5;
Ergebnis 1:
Zuweisung 2:
u2Byte.nUINT := 255;
Ergebnis 2:
Zuweisung 3:
u2Byte.nUINT := 256;
Ergebnis 3:
Siehe auch: