Struttura dei dati: UNION
UNION è una struttura di dati definita dall'utente i cui membri di solito hanno tipi e dimensioni di dati diversi.
I membri dell'istanza di a UNION tutti i tipi di dati riservano lo stesso spazio di memoria. Tutti i membri hanno lo stesso offset di indirizzo e condividono la memoria. Il requisito di memoria è determinato dal membro più grande
A UNION variabile memorizza il valore di esattamente un membro. La memoria contiene l'ultimo valore assegnato. Ciò significa che la memoria viene utilizzata in modo efficiente.
Per ulteriori informazioni, vedere: Oggetto: DUT
Dichiarazione del tipo
Sintassi:
TYPE <identifier>
UNION
<member name> : <data type> := <initialization> ;
END_UNION
END_TYPE
| Dichiarazione di un membro di un tipo di dati elementare Può seguire un numero qualsiasi di dichiarazioni, ma almeno 2. |
| Opzionale |
Dichiarazione del tipo: U_VAR_12
TYPE U_VAR_12:
UNION
wVar1: WORD;
byVar2 : BYTE;
END_UNION
END_TYPEDichiarazione del tipo: U_INT_ID
TYPE U_INT_ID:
UNION
iVar: INT;
dVar : DINT;
END_UNION
END_TYPEDichiarazione del tipo: U_EFFICIENT
TYPE U_EFFICIENT
UNION
wMember : WORD;
dwMember : DWORD;
strMember : STRING := 'A';
END_UNION
END_TYPEDichiarazione variabile
Istanziazione/dichiarazione di una variabile di a UNION tipo di dati:
<variable name> : <name UNION type> := <initialization> ;
| Opzionale |
| Inizializzazione in dettaglio: L'operatore di assegnazione è seguito dall'assegnazione del valore iniziale all'asta tra parentesi tonde. |
TYPE U_AB:
UNION
lrA : LREAL;
liB : LINT;
END_UNION
END_TYPEDichiarazione di variabili con inizializzazione
PLC_PRG PROGRAM
VAR
uabVAR_1 : U_AB := (lrA := LREAL#1.5);
uabVAR_2 : U_AB := (liB := LINT#1);
END_VARDichiarazione variabile in PLC_PRG con tipo di dati U_EFFICIENT
PLC_PRG PROGRAM VAR uefficient_1 : U_EFFICIENT := (strMember := 'A'); END_VAR
Implementazione: PLC_PRG
uefficient_1.wMember := 16#000A;
Quando uefficient_1 viene scritto su un membro della variabile, ciò influisce su tutti i membri della variabile.