Quando si edita codice nei linguaggi CEI 61131 grafici schema a blocchi di funzione (SBF) o ladder (LD), le variabili e le istanze BF si possono dichiarare mentre si inseriscono nel codice con il dialogo 'Variabili'. In questo modo, la dichiarazione e l'inserimento avvengono in un solo passo. Ciononostante è anche possibile dichiarare prima le variabili in un FdL per variabili e poi inserirle nel codice SBF/LD.
Quando si programma in testo strutturato (TS), le variabili / istanze BF devono essere dichiarate nel FdL per variabili prima di poterle inserire nel codice TS.
Questo argomento descrive la dichiarazione a mano di variabili e istanze di blocco di funzione (BF) nel FdL per variabili.
Mentre editate una dichiarazione, il sistema controlla automaticamente la riga della tabella. Se una determinata dichiarazione contiene un errore (ad esempio, se la variabile esiste già o se è stato definito un valore iniziale con un tipo di dati sbagliato) la corrispondente voce della tabella viene visualizzata in rosso.
Fare riferimento all'elenco di argomenti attinenti per maggiori informazioni sui fogli di lavoro (FdL) per variabili e sulle regole di dichiarazione da osservare quando si dichiarano o editano variabili.
Se un segnale standard è connesso a un ingresso fisico, il tipo di dati della corrispondente variabile globale deve essere cambiato da "relativo alla sicurezza" a "standard" (ad esempio, da SAFEBOOL a BOOL) per escludere un utilizzo non corretto del segnale nel codice. Lo stesso vale quando un segnale relativo alla sicurezza viene usato solo come segnale standard nel codice. La modifica del tipo di dati può essere eseguita nei rispettivi fogli di lavoro (FdL) per variabili o utilizzando le funzioni di conversione del tipo.
Quale tipo di variabile volete dichiarare?
Variabile locale: aprire il FdL per variabili locali cliccando sull'icona 'Commuta FdL' nella barra strumenti mentre è attivo il relativo FdL per codice o facendo doppio clic sulla relativa icona del FdL per variabili nell'albero di progetto.
Variabile globale: aprire il FdL per variabili globali cliccando sull'icona 'Dich. globale' nella barra strumenti.
Se occorre, inserire un nuovo gruppo.
Cliccare con il tasto destro sul nome del gruppo nel quale inserire la nuova dichiarazione. Selezionare 'Nuova variabile'' dal menu di contesto. Questo comando viene usato per inserire una dichiarazione sia di variabile sia di istanza BF. In alternativa , selezionare una specifica riga di gruppo e premere < INS>.
Immettere il nome della variabile/istanza. Il nome deve essere unico nell'ambito (locale o globale).
Selezionare il tipo di dati dall'elenco di selezione 'Tipo' della nuova dichiarazione.
Simboli nell'elenco di selezione
L'elenco di selezione 'Tipo di dati' permette di scegliere tra i tipi di dati elementari e tutti i tipi di blocco di funzione (BF) disponibili.
![]() |
Tipi di dati elementari standard (non di sicurezza) |
![]() |
Tipi di dati elementari di sicurezza |
![]() |
Blocco di funzione definito dall'utente usato nel progetto attuale |
![]() |
Blocco di funzione standard come definito nella CEI 61131 |
![]() |
Blocco di funzione di sicurezza |
Quando si dichiara un'istanza BF, il tipo dell'istanza deve corrispondere al tipo di BF da inserire.
Definire l'ambito selezionando un 'Utilizzo' dal corrispondente elenco di selezione.
Simboli nell'elenco di selezione
La parola chiave per la dichiarazione di variabile può essere selezionata dall'elenco di selezione 'Utilizzo'. L'elenco è sensibile al contesto e propone solo le parole chiave permesse per il tipo di unità di organizzazione programma (UOP) attuale.
![]() |
VAR (variabile locale) |
![]() |
VAR_IN (variabile d'ingresso di una UOP di blocchi di funzione) |
![]() |
VAR_OUT (variabile d'uscita di una UOP di blocchi di funzione) |
Nel foglio di lavoro per variabili globali, la colonna 'Utilizzo' non è visibile perché è preimpostata la parola chiave VAR_GLOBAL.
Se state dichiarando un'istanza di blocco di funzione (BF) è disponibile solo la parola chiave VAR.
Quando si dichiara una variabile globale simbolica in un FdL per variabili globali, la colonna 'Utilizzo' non è visibile perché la parola chiave è sempre preimpostata a VAR_GLOBAL.
Mettendo una spunta alla casella 'Feedback', si può dichiarare una variabile utilizzabile per programmare un feedback implicito nella logica di sicurezza. Il flag 'Feedback' si può settare solo in combinazione con 'Utilizzo = VAR' e 'Ambito = Locale'.
Quando si programmano feedback impliciti, la logica di sicurezza può essere continuamente prevenuta dall'aggiornamento del feedback, il che può dare adito a un tempismo complesso dell'intera applicazione.
AVVERTIMENTO | |
---|---|
Per maggiori informazioni, vedere l'argomento "Feedback implicito in SBF".
Se volete, potete aggiungere un breve commento nella nuova dichiarazione.
Il commento qui immesso è visibile anche nel messaggio descrittivo che appare quando si passa con il mouse sopra al rispettivo oggetto nel codice SBF/LD.
Opzione: definire un valore iniziale.
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".
Nel caso di una variabile di uscita locale (VAR_OUT), si può arrecare il flag 'DIAG' volendo che la variabile venga scritta nel buffer DQ per iniziare una diagnostica implicita.
Questo flag è disponibile solo per le variabili di uscita locali (utilizzo VAR_OUT) del tipo di dati WORD. Con flag arrecato, viene eseguita una diagnostica implicita per questa determinata variabile.
Sfondo: I blocchi di funzione (BF) di sicurezza firmware e i BF utente in progetti di sicurezza possono avere un'uscita diagnostica che permette di raccogliere informazioni sullo stato BF. Queste informazioni diagnostiche possono essere scritte in un'area buffer di uscita (buffer DQ) durante la compilazione e si possono elaborare oltre, ad esempio, utilizzando uno strumento diagnostico. Per aggiungere una variabile di uscita locale (uscita BF) al buffer, deve essere selezionato il flag 'DIAG'.