Operatore: __VARINFO
L'operatore è un'estensione della norma IEC 61131-3.
L'operatore fornisce informazioni su una variabile. È possibile salvare le informazioni come struttura dati in una variabile di tipo dati __SYSTEM.VAR_INFO.
Sintassi nella dichiarazione
<name of the info variable> : __SYSTEM.VAR_INFO; // Data structure for info variable
Sintassi per le chiamate
<name of the info variable> := __VARINFO( <variable name> ); // Call of the operator
FUNCTION_BLOCK FB_Velocity
VAR_INPUT
        rVelocity: REAL := 1.2;
END_VAR
VAR_OUTPUT
END_VAR
VAR
        infoVelocity: __SYSTEM.VAR_INFO; //Info of Velocity
END_VAR
infoVelocity := __VARINFO(rVelocity); // Gets the info of Velocity locallyPROGRAM PLC_PRG
VAR
        iCounter : INT := 0; // Counts the calls
        infoCounter : __SYSTEM.VAR_INFO; //Info of Counter
        arrA : ARRAY [1..2, 1..2, 1..2] OF INT := [0, 1, 2, 3, 4, 5, 6, 7]; // Stores the A data
        infoA : __SYSTEM.VAR_INFO; //Info of A
        fbVel : FB_Velocity;
END_VAR
iCounter := iCounter + 1;
infoCounter := __VARINFO(iCounter);
infoA := __VARINFO(arrA);
fbVel();Il iCounter e arrA le variabili vengono riconosciute nel codice dell'applicazione. Le informazioni sulla variabile vengono salvate nel file infoCounter e infoA variabili. Inoltre, il FB_Velocity viene istanziato il blocco funzione.
Tipo di dati: __SYSTEM.VAR_INFO
| Nome | Tipo di dati | Inizializzazione | Descrizione | 
|---|---|---|---|
| 
 | 
 | 0 | Indirizzo della variabile Esempio:  Nota: per l'accesso a bit di una variabile  | 
| 
 | 
 | 0 | Offset dell'indirizzo della variabile (in byte) Esempio:  Nota: se la variabile è globale, l'offset è relativo all'inizio dell'area. Se la variabile è una variabile locale in una funzione o in un metodo, l'offset è relativo allo stack frame corrente. Se la variabile è una variabile locale in un blocco funzione, l'offset è relativo all'istanza del blocco funzione. | 
| 
 | 
 | 0 | Numero dell'area di memoria  Esempio:  Significa che la variabile non è globale nella memoria, ma relativa a un'istanza o nello stack Nota: le aree di memoria dipendono dal dispositivo. | 
| 
 | 
 | 0 | Numero di bit (in byte) Esempio:  Nota: se la variabile è non un tipo di dati intero, quindi:  | 
| 
 | 
 | 0 | Dimensione della memoria della variabile (in bit) Esempio:  | 
| 
 | 
 | 0 | Indirizzo bit della variabile Presupposto: la variabile si trova nell'area di memoria di ingresso  | 
| 
 | 
 | 
 | Classe del tipo di dati della variabile Esempio:  Nota: per i tipi di dati definiti dall'utente o le istanze di blocchi funzione,  | 
| 
 | 
 | ‚' | Tipo di data nome della variabile come  Nota: per i tipi di dati definiti dall'utente, viene emesso il nome del blocco funzione o il nome DUT. Esempio:  | 
| 
 | 
 | 0 | Numero di elementi dell'array Requisito: la variabile ha il tipo di dati  Esempio:  | 
| 
 | 
 | 
 | Tipo di dati di base elementare degli elementi dell'array Requisito: la variabile ha il tipo di dati  Esempio:  | 
| 
 | 
 | 0 | Dimensione della memoria dell'elemento dell'array (in bit) Requisito: la variabile ha il tipo di dati  Esempio:  | 
| 
 | 
 | 
 | Informazioni sull'area di memoria 
 Esempio:  Nota: la configurazione dell'area di memoria dipende dal dispositivo. | 
| 
 | 
 | ‚' | Nome variabile come  Esempio:  | 
| 
 | 
 | ‚' | Commento della dichiarazione della variabile Esempio:  |