Structure des données : UNION
UNION
est une structure de données définie par l'utilisateur dont les membres ont généralement des types et des tailles de données différents.
Les membres de l'instance d'un UNION
les types de données réservent tous le même espace mémoire. Tous les membres ont le même décalage d'adresse et partagent la mémoire. La mémoire requise est déterminée par le membre le plus volumineux.
A. UNION
variable stocke la valeur d'exactement un membre. La mémoire contient la dernière valeur attribuée. Cela signifie que la mémoire est utilisée efficacement.
Pour plus d'informations, voir : Objet : DUT
Déclaration de type
Syntaxe :
TYPE <identifier>
UNION
<member name> : <data type> := <initialization> ;
END_UNION
END_TYPE
| Déclaration d'un membre d'un type de données élémentaire Un certain nombre de déclarations peuvent suivre, mais au moins 2. |
| Facultatif |
Déclaration de type : U_VAR_12
TYPE U_VAR_12: UNION wVar1: WORD; byVar2 : BYTE; END_UNION END_TYPE
Déclaration de type : U_INT_ID
TYPE U_INT_ID: UNION iVar: INT; dVar : DINT; END_UNION END_TYPE
Déclaration de type : U_EFFICIENT
TYPE U_EFFICIENT UNION wMember : WORD; dwMember : DWORD; strMember : STRING := 'A'; END_UNION END_TYPE
Déclaration de variables
Instanciation ou déclaration d'une variable d'un UNION
type de données :
<variable name> : <name UNION type> := <initialization> ;
| Facultatif |
| Initialisation en détail : L'opérateur d'affectation est suivi de l'attribution de la valeur initiale au membre entre parenthèses. |
TYPE U_AB: UNION lrA : LREAL; liB : LINT; END_UNION END_TYPE
Déclaration de variables avec initialisation
PLC_PRG PROGRAM VAR uabVAR_1 : U_AB := (lrA := LREAL#1.5); uabVAR_2 : U_AB := (liB := LINT#1); END_VAR
Déclaration de variables dans PLC_PRG
avec type de données U_EFFICIENT
PLC_PRG PROGRAM VAR uefficient_1 : U_EFFICIENT := (strMember := 'A'); END_VAR
Mise en œuvre : PLC_PRG
uefficient_1.wMember := 16#000A;
Quand uefficient_1
est écrit dans un membre de la variable, cela affecte tous les membres de la variable.