Estructura de datos: UNION
UNION es una estructura de datos definida por el usuario cuyos miembros suelen tener diferentes tipos y tamaños de datos.
Los miembros de la instancia de un UNION todos los tipos de datos reservan el mismo espacio de memoria. Todos los miembros tienen el mismo desplazamiento de direcciones y comparten la memoria. El requisito de memoria lo determina el miembro más grande.
A UNION variable almacena el valor de exactamente un miembro. La memoria contiene el último valor asignado. Esto significa que la memoria se usa de manera eficiente.
Para obtener más información, consulte: Objeto: DUT
Tipo de declaración
Sintaxis:
TYPE <identifier>
UNION
<member name> : <data type> := <initialization> ;
END_UNION
END_TYPE
| Declaración de un miembro de un tipo de datos elemental Pueden seguir cualquier número de declaraciones, pero al menos 2. |
| Opcional |
Tipo de declaración: U_VAR_12
TYPE U_VAR_12:
UNION
wVar1: WORD;
byVar2 : BYTE;
END_UNION
END_TYPETipo de declaración: U_INT_ID
TYPE U_INT_ID:
UNION
iVar: INT;
dVar : DINT;
END_UNION
END_TYPETipo de declaración: U_EFFICIENT
TYPE U_EFFICIENT
UNION
wMember : WORD;
dwMember : DWORD;
strMember : STRING := 'A';
END_UNION
END_TYPEDeclaración de variables
Instanciación/declaración de una variable de UNION tipo de datos:
<variable name> : <name UNION type> := <initialization> ;
| Opcional |
| Inicialización en detalle: Al operador de asignación le sigue la asignación del valor inicial al miembro entre corchetes. |
TYPE U_AB:
UNION
lrA : LREAL;
liB : LINT;
END_UNION
END_TYPEDeclaración de variables con inicialización
PLC_PRG PROGRAM
VAR
uabVAR_1 : U_AB := (lrA := LREAL#1.5);
uabVAR_2 : U_AB := (liB := LINT#1);
END_VARDeclaración de variables en PLC_PRG con tipo de datos U_EFFICIENT
PLC_PRG PROGRAM VAR uefficient_1 : U_EFFICIENT := (strMember := 'A'); END_VAR
Implementación: PLC_PRG
uefficient_1.wMember := 16#000A;
Cuándo uefficient_1 se escribe en un miembro de la variable, esto afecta a todos los miembros de la variable.