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_TYPE
Tipo de declaración: U_INT_ID
TYPE U_INT_ID: UNION iVar: INT; dVar : DINT; END_UNION END_TYPE
Tipo de declaración: U_EFFICIENT
TYPE U_EFFICIENT UNION wMember : WORD; dwMember : DWORD; strMember : STRING := 'A'; END_UNION END_TYPE
Declaració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_TYPE
Declaració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_VAR
Declaració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.