Le variabili possono essere dichiarate nei seguenti modi:
nella finestra di dialogo Dichiarare una variabile
in un editor GVL
nell’editor PersistentVars
Il tipo (definito editor dichiarazioni testuale, la dichiarazione delle variabili comuni è racchiusa tra VAR
e END_VAR
.
Per altri ambiti di dichiarazione delle variabili, vedere:
VAR_INPUT
VAR_OUTPUT
VAR_IN_OUT
VAR_GLOBAL
VAR_TEMP
VAR_STAT
VAR_INST
VAR_EXTERNAL
VAR_CONFIG
Le parole chiave del tipo di variabile possono essere rinforzate da parole chiave attributo.
Esempio: RETAIN (VAR_INPUT RETAIN)
Sintassi per la dichiarazione delle variabili:
<Identificativo> {AT
<indirizzo>}:<tipo dati> {:=<inizializzazione>};
Le parti racchiuse tra le parentesi graffe {} sono opzionali.
L'identificativo è il nome di una variabile.
Quando si definisce un identificativo, tenere presente quanto segue:
non sono ammessi spazi né caratteri speciali
non si fa distinzione tra lettere maiuscole e lettere minuscole: VAR1
, Var1
e var1
sono la stessa variabile
riconoscimento del carattere di sottolineatura: A_BCD
e AB_CD
sono considerati due identificatori differenti. Non utilizzare più caratteri di sottolineatura consecutivi.
non esistono limiti di lunghezza
non è consentito alcun nome di parola chiave, ad esempio VAR_GLOBAL
utilizzo multiplo (vedere paragrafo successivo)
Inoltre, tenere in considerazione il capitolo Migliori prassi per la denominazione degli identificatori.
Per l'uso multiplo di identificativi valgono le seguenti istruzioni:
L'uso di identificativi doppi non è permesso a livello locale.
L'uso multiplo di identificativi è autorizzato a livello globale: una variabile locale può avere lo stesso nome di una variabile globale. In questo caso, avrà la priorità la variabile locale del POU.
Una variabile definita in un elenco di variabili globali (GVL) può avere lo stesso nome di una variabile definita in un altro elenco di variabili globali (GVL). In questo contesto, considerare le seguenti estensioni della norma IEC 61131-3:
Un operatore ambito globale, ossia un percorso di istanza che inizia con un punto (.
) apre un ambito globale. Quindi, se una variabile locale, ad esempio ivar
, ha lo stesso nome di una variabile globale, .ivar
si riferisce alla variabile globale.
Si può utilizzare il nome di un elenco di variabili globali (GVL) come namespace per le variabili incluse. Si possono dichiarare variabili con lo stesso nome in elenchi di variabili globali (GVL) diversi. L'accesso specifico è possibile anteponendo il nome dell'elenco al nome della variabile.
Esempio
globlist1.ivar := globlist2.ivar;
(* ivar da globlist2 viene copiato in ivar in GVL globlist1 *)
L'accesso alle variabili definite in un elenco di variabili globali di una libreria inclusa è possibile in base alla sintassi <library namespace>.<name of GVL>.<variable>.
Esempio:
globlist1.ivar := lib1.globlist1.ivar
(* ivar da globlist1 nella libreria lib1 viene copiato in ivar in GVL globlist1 *)
Anche per una libreria, un namespace è definito quando viene incluso attraverso il
. Si può quindi accedere a un modulo o una variabile libreria mediante <library namespace>.<modulename|variablename>. Tenere presente che nel caso di librerie annidate, i namespace di tutte le librerie interessate devono essere dichiarati in successione.
Esempio: se Lib1
ha come riferimento Lib0
, il modulo fun
che fa parte di Lib1
è accessibile tramite Lib0.Lib1.fun
:
ivar := Lib0.Lib1.fun(4, 5);
(* il valore restituito di fun è copiato nella variabile ivar del progetto *)
Lib
, è anche possibile accedere al modulo fun
direttamente tramite Lib0.fun
.
È possibile accedere alle variabili dichiarate nei GVL o nelle POU del nodo "__POOL."
.
AT
<indirizzo>
È possibile collegare la variabile direttamente a un indirizzo definito mediante la parola chiave AT
.
Nei blocchi funzione è possibile anche specificare delle variabili con dichiarazioni di indirizzo incomplete. Affinché una variabile di questo tipo possa essere utilizzata in un'istanza locale, deve esistere una voce corrispondente nella configurazione della variabile.
Se si desidera, è possibile aggiungere istruzioni pragma nella porzione di dichiarazione di un oggetto per influenzare la generazione del codice a vari scopi.
È anche possibile la dichiarazione automatica delle variabili.
Per immettere le dichiarazioni più rapidamente, usare la modalità di scelta rapida.