Accesso variabile parziale
L'espressione è conforme alla norma IEC 61131-3.
Per le variabili IEC del tipo dati è possibile un accesso parziale alle variabili BYTE
, WORD
, DWORD
O LWORD
(tipo di dati ANY, ANY_<tipo> ).
Sintassi:
<nome variabile>. % <tipo parziale> <indice parziale>
È consentito uno spazio dopo l'operatore punto (.
). Non sono consentiti spazi dopo il segno di percentuale (%
) e dopo il tipo parziale.
<nome variabile> | Nome del |
<tipo parziale> |
Accesso a Accesso a |
<indice parziale> | Da 0 al massimo dell'indice |
Per ulteriori informazioni, vedere:
Utilizzo
L'accesso parziale può essere utilizzato solo per variabili non temporanee (variabili definite dall'utente, campi, accessi a array o dereferenziazione). Ciò non è consentito per risultati temporanei o valori letterali.
L'espressione in sé non è temporanea e può essere utilizzata come espressione in REFERENCE TO
o come un ADR
operatore.
// Implementation PartialVarB := GVL.Variable.%B0; PartialVarX := array[idx].%X0; PartialVarW := tempVariable.%W2; PartialVarD := ptr^.%D2; PartialVarB := variable.%W1.%B1
L'accesso parziale non è possibile nel caso di chiamate di funzione, espressioni di indice, valori letterali o proprietà.
Esempio negativo:
FunctionCall().%B0 (1+index).%B0 (DWORD#16#12345678).%B0 Property.%B0
Indice massimo dei tipi parziali
L'accesso parziale è possibile solo se l'espressione chiamata ha un tipo conforme e l'indice parziale è inferiore o uguale all'indice parziale massimo. Altrimenti viene segnalato un errore del compilatore.
Tipo parziale | Tipo di accesso | Massimo dell'indice parziale |
---|---|---|
| ||
| 7 | |
| 15 | |
| 31 | |
| 63 | |
| ||
| 0 | |
| 1 | |
| 3 | |
| 7 | |
| ||
| Non supportato | |
| 0 | |
| 1 | |
| 3 | |
| ||
| Non supportato | |
| Non supportato | |
| 0 | |
| 1 | |
| ||
| Non supportato | |
| Non supportato | |
| Non supportato | |
| 0 |
Espressione con accesso parziale
Il tipo di un'espressione di accesso parziale dipende solo da <tipo parziale> e deve essere selezionato utilizzando la tabella seguente.
Tipo parziale | Tipo di espressione |
---|---|
|
|
|
|
|
|
|
|
|
|
Indirizzi
È consentito creare l'indirizzo da un'espressione di accesso parziale di tipo parziale B
, W
, D
, E L
.
È non consentito creare l'indirizzo da un'espressione di accesso parziale di tipo parziale X
.
È non consentito assegnare un'espressione di accesso parziale di tipo BIT
ad a VAR_INOUT
variabile.
ADR(var%.B0) referenceVariable REF= var.%W1
Esempio negativo:
ADR(var.%X0) ref REF= var.%X0