Skip to main content

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 ANY_BIT variabile del tipo BYTE, WORD, DWORD, O LWORD

<tipo parziale>

X per BIT accesso

B per BYTE accesso

W per WORD accesso

D per DWORD accesso

L per LWORD accesso

Accesso a __XWORD è anche consentito e si comporta come a DWORD O LWORD a seconda della dimensione del puntatore.

Accesso a BOOL non è consentito anche se il BOOL il tipo di dati fa parte di ANY_BIT tipi.

<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.

Esempio 200. Esempio
// 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

X

BYTE

7

WORD

15

DWORD

31

LWORD

63

B

BYTE

0

WORD

1

DWORD

3

LWORD

7

W

BYTE

Non supportato

WORD

0

DWORD

1

LWORD

3

D

BYTE

Non supportato

WORD

Non supportato

DWORD

0

LWORD

1

L

BYTE

Non supportato

WORD

Non supportato

DWORD

Non supportato

LWORD

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

X

BIT

B

BYTE

W

WORD

D

DWORD

L

LWORD

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.

Esempio 201. Esempi
ADR(var%.B0)
referenceVariable REF= var.%W1

Esempio negativo:

ADR(var.%X0)
ref REF= var.%X0