Questa sezione contiene informazioni sui seguenti argomenti:
Le regole di dichiarazione sotto elencate sono applicabili quando si dichiarano variabili
inserendo ed editando una dichiarazione in un foglio di lavoro per variabili.
Una variabile/istanza BF dichiarata in questo modo poi si può inserire nel codice.
utilizzando il dialogo 'Variabili' durante l'editazione di codice.
In questo modo, la dichiarazione e l'inserimento avvengono in un solo passo.
Le variabili si dichiarano seguendo le regole definite nella norma CEI 61131-3.
Dato che le dichiarazioni vengono immesse in un FdL per variabili nel Machine Expert – Safety e non in blocchi di dichiarazione in testo semplice, le regole e restrizioni previste dalla norma vengono verificate dall'editore tabulare. Ciò evita errori di sintassi e violazioni delle regole quali errori di annidamento dei blocchi di dichiarazione o tipi di dati errati. Il compilatore per variabili verifica immediatamente ciascun attributo immesso non appena si lascia il campo di immissione della tabella. I campi che contengono errori vengono visualizzati in rosso.
Per maggiori informazioni, si veda l'argomento "Fogli di lavoro (FdL) per variabili".
I vari tipi di variabile si dichiarano come segue:
Le variabili simboliche locali si dichiarano nel FdL per variabili locali usando la parola chiave ('Utilizzo') VAR.
Le variabili locali non si possono collegare a elementi di dati di processo (ingressi e uscite fisiche). Ciò è limitato alle variabili I/O globali.
I parametri di ingresso di unità di organizzazione progetto per blocchi di funzione (UOP BF) si dichiarano in FdL per variabili locali utilizzando VAR_INPUT.
I parametri di uscita di unità di organizzazione progetto per blocchi di funzione (UOP BF) si dichiarano in FdL per variabili locali utilizzando VAR_OUTPUT.
Le seguenti regole valgono per l'inizializzazione di variabili.
Regole per inizializzare variabili
Il valore iniziale è opzionale. Se non viene usato alcun valore iniziale, la variabile viene inizializzata con il valore iniziale preimpostato del tipo di dati definito secondo la CEI 61131-3.
I valori iniziali si possono specificare per variabili locali (simboliche) e variabili globali d'uscita.
Le variabili globali d'ingresso (variabili globali che sono assegnate a un ingresso fisico) non si possono inizializzare.
Il loro valore iniziale deve corrispondere al tipo di dati selezionato.
Per le variabili booleane, il valore iniziale predefinito è 0 o FALSE.
Per le variabili di sicurezza, i valori iniziali devono essere immessi preceduti dal rispettivo tipi di dati di sicurezza, usando il seguente formato: SAFEINT#valore, SAFEBYTE#valore, SAFEWORD#valore, SAFEDWORD#valore, o SAFETIME#valori.
(valore rappresenta il valore, ad es., SAFEINT#13 o SAFETIME#1s.)
Per inizializzare una variabile di sicurezza booleana con FALSE, potete immettere SAFEBOOL#0 o SAFEFALSE. In modo simile, usate SAFEBOOL#1 o SAFETRUE per preimpostare una variabile di sicurezza booleana a TRUE.
Una variabile globale funge da costante globale: quando una variabile globale simbolica ha un valore iniziale, essa può essere considerata come costante globale con nome simbolico. La variabile globale simbolica inizializzata è protetta contro scrittura e il compilatore la tratta come una costante. Di conseguenza si può collegare, ad esempio, a parametri formali di un blocco di funzione che prevedono una costante.
Vedere anche l'argomento "Inserire costanti".
Le istanze di blocchi di funzione (BF) vengono dichiarate automaticamente nella dichiarazione di variabile locale della UOP nella quale il BF viene usato, con la parola chiave VAR (come per le variabili locali). Il nome della variabile rappresenta il nome dell'istanza del BF e il tipo di dati corrisponde al tipo di dati del BF. Per maggiori informazioni fare riferimento all'argomento "Istanziazione di BF".
Le variabili globali si dichiarano sempre nel FdL per variabili globali del progetto.
Si distinguono due tipi diversi di variabile globale:
Le variabili globali simboliche. Come le variabili locali, si tratta di normali variabili simboliche senza indirizzo I/O fisico, ossia non assegnate ad alcun morsetto di dispositivo.
Come le variabili locali, questo tipo di variabile globale si può inserire direttamente nel codice usando il dialogo 'Variabile' (la dichiarazione viene inserita automaticamente nel Foglio di lavoro per variabili globali) o dichiarandole a mano nel Foglio di lavoro per variabili globali del progetto. Vedere l'argomento "Dichiarare e inserire variabili".
Le variabili I/O globali. A differenza delle variabili simboliche, le variabili I/O sono assegnate a un morsetto fisico del dispositivo, ossia a un elemento di dati del processo. Ciò significa che un valore letto da / scritto su una variabile I/O viene letto da / scritto sull'indirizzo fisico assegnato. La norma CEI 61131 designa queste variabili come localizzate.
In Machine Expert – Safety, le variabili I/O globali non si possono creare allo stesso modo delle variabili simboliche.
Una variabile I/O globale viene creata automaticamente nel foglio di lavoro (FdL) per variabili globali quando si trascina un elemento di dati del processo (ossia un morsetto di dispositivo) dalla finestra 'Dispositivi' nel codice. (Gli elementi di dati del processo vengono passati da Machine Expert a Machine Expert – Safety assieme alle informazioni e i dati del dispositivo di sicurezza.)
Questo comportamento è identico per gli elementi di dati del processo standard e per quelli di sicurezza.
Sia le variabili globali simboliche sia le variabili I/O si possono usare in ogni unità di organizzazione programma (UOP) grafica del progetto (a differenza delle variabili locali che si possono usare solo nella specifica UOP nella quale sono state dichiarate).
Le variabili globali non si possono usare nel linguaggio di programmazione TS (Testo strutturato).
Per le variabili globali simboliche vale:
Il compilatore genera un errore se una variabile globale simbolica
viene scritta più di una volta.
viene letta prima di venire scritta.
Il compilatore genera un messaggio se una variabile globale simbolica
non viene né scritta né letta (variabile globale simbolica non utilizzata).
viene scritta ma non letta.
viene letta e scritta nella stessa unità di organizzazione programma (UOP). In questo caso, al posto della variabile globale simbolica deve essere utilizzata una variabile locale.
Quando si dichiara una variabile globale simbolica, non è possibile selezionarne un 'Utilizzo' perché la parola chiave di dichiarazione 'VAR_GLOBAL' si riferisce automaticamente a tutte le variabili globali.
Convenzioni di nomenclatura: Machine Expert – Safety permette l'uso di qualificatori DIN nei nomi di variabili CEI 61131.
Regole per utilizzare qualificatori DIN
In base alla norma CEI 61131, i nomi di variabili possono consistere di lettere, cifre e trattini bassi (underscore). L'identificatore deve iniziare con un carattere alfabetico o un trattino basso. Ogni altro carattere causa l'errore di compilazione "Identificatore non permesso".
Questa convenzione di nomenclatura in Machine Expert – Safety è stata estesa in modo che i nomi di variabili a norma CEI 61131 possano contenere anche qualificatori DIN:
I caratteri - + < > sono permessi in ogni posizione all'interno del nome e come ultimo carattere. Non possono però essere usati come primo carattere del nome di variabile.
I qualificatori DIN / * # e le cifre da 0 a 9 si possono usare in ogni posizione del nome della variabile.
Regole per usare qualificatori DIN in nomi di variabili a norma CEI 61131
I nomi delle variabili devono contenere almeno un carattere alfabetico.
Le variabili non possono portare il nome di un tipo di dati CEI 61131, come BOOL, INT, WORD, REAL ecc.
I nomi di variabili non possono essere definiti come per i valori letterali. I letterali nel codice si usano specificando prima il tipo di dati letterale seguito da un segno hash: <literal_prefix>#<value>
. SAFEINT#5
e WORD#32767
, ad esempio, sono letterali. Una dichiarazione di variabile del tipo safeint#MyVar
perciò non sarebbe valida.
I prefissi letterali non sono sensibili alla distinzione tra maiuscole e minuscole e includono le seguenti parole chiave:
BOOL, REAL, LREAL, SINT, USINT, INT, UINT, DINT, UDINT, LINT, ULINT, BYTE, WORD, DWORD, LWORD, TIME, T, DATE, D, TIME_OF_DAY, TOD, DATE_AND_TIME, DT, STRING, TIMEDATE48, WEIGHT, ANALOG, UNIFRACT, BIFRACT200, FIXED, BOOLEAN2, BCD4, ENUM4, SAFEBOOL, SAFEBYTE, SAFEDWORD, SAFEINT, SAFEDINT, SAFETIME, SAFEWORD
Per maggiori informazioni, vedere gli argomenti "Colonne (proprietà) in FdL per variabili" e "Implementazione CEI 61131 – Variabili".
Codice di sicurezza e codice standard sono distinti rigorosamente nel Machine Expert – Safety. Di conseguenza, vanno distinte anche le variabili di sicurezza e standard, o, più precisamente, i tipi di dati di sicurezza e standard. Non è, ad esempio, possibile collegare una variabile con tipo di dati standard a un parametro formale che prevede una variabile di sicurezza.
Variabili di sicurezza e variabili standard si possono combinare in schemi SBF/LD. In schemi misti simili, i percorsi di segnale di sicurezza principali sono evidenziati graficamente. Ci sono alcune regole e restrizioni da rispettare.
Variabili di sicurezza e standard si possono combinare in una istruzione TS a condizione di rispettare determinate regole. In genere, è possibile assegnare variabili di sicurezza a variabili standard, ma non viceversa.
Si veda l'argomento "Combinare variabili di sicurezza e standard in TS" per maggiori informazioni.
Per facilitare la distinzione tra variabili standard e variabili di sicurezza, l'editore di codice TS le visualizza diversamente. Le variabili di sicurezza sono sottolineate in rosso, mentre le variabili standard non sono sottolineate.