Variabili

A norma CEI 61131-3, la logica di sicurezza nel Machine Expert – Safety viene sviluppata usando variabili invece di indirizzare direttamente ingressi, uscite o utilizzando flag.

Le variabili si dichiarano nei fogli di lavoro (FdL) per variabili. Ciò si può fare o quando si inseriscono nel codice con il dialogo 'Variabili' (metodo semplificato con inserimento e dichiarazione in un solo passo) o prima di usarli nel codice, immettendo a mano la dichiarazione nel FdL per variabili. Si vedano gli argomenti "Variabili: inserire e dichiarare in SBF/LD" e "Variabili: inserire e dichiarare in ST" per maggiori informazioni.

Questi fogli di lavoro (FdL) per variabili sono implementati in forma di tabella. Per maggiori informazioni, si veda l'argomento "Fogli di lavoro (FdL) per variabili".

Ambito: locale e globale

L'ambito determina in quali unità di organizzazione programma (UOP) la variabile è valida, cioè dove può essere utilizzata. In base alla norma CEI 61131, gli ambiti possibili sono locale e globale. L'ambito di una variabile è definito dall'ubicazione nella quale è dichiarata (FdL per variabili locale o globale) e dalla parola chiave usata per la dichiarazione.

Il Machine Expert – Safety supporta variabili locali e globali, sia del tipo di sicurezza sia del tipo standard (si veda la sezione seguente).

Variabili locali

Una variabile utilizzabile in una sola unità di organizzazione programma (UOP) si chiama variabile locale (il suo ambito è locale).

Le variabili locali devono essere dichiarate nel FdL per variabili relativo alla UOP alla quale la variabile è destinata, con una delle parole chiave di dichiarazione variabile VAR, VAR_INPUT o VAR_OUTPUT.

Dato che le variabili locali non si possono collegare a elementi di dati di processo (ingressi/uscite fisiche), vengono chiamate variabili simboliche. Machine Expert – Safety memorizza queste variabili in una sezione di memoria libera del Safety Logic Controller che non è nota all'utente. Le variabili simboliche possono avere un opzionale valore iniziale.

Le istanze BF vengono trattato allo stesso modo delle variabili locali. I loro nomi di istanza si dichiarano utilizzando VAR.

In modalità di debug, le variabili locali si possono sovrascrivere.

Variabili globali

Una variabile utilizzabile in ogni UOP del progetto si chiama variabile globale. Le variabili con ambito globale si dichiarano nel FdL per variabili globali. Qui, la colonna 'Utilizzo' per selezionare la parola chiave di dichiarazione VAR_GLOBAL a norma CEI 61131 non è visibile, in quanto questa parola chiave si riferisce automaticamente a tutte le variabili globali.

(Nota per utenti esperti in CEI 61131: nel Machine Expert – Safety, le variabili globali si possono usare senza aggiuntiva dichiarazione VAR_EXTERNAL.)

Si distinguono due tipi diversi di variabile globale: Variabili globali simboliche (senza indirizzo fisico assegnato) e variabili I/O globali assegnate a un elemento di dati di processo (segnale d'ingresso/uscita). Si veda l'argomento "Regole di dichiarazione per variabili / istanze BF" per dettagli.

In codice TS non è possibile elaborare variabili globali.

Le variabili globali collegate a un'uscita possono avere un opzionale valore iniziale (si veda la sezione "Inizializzare variabili" sotto). In modalità di debug, le variabili I/O si possono forzare.

Variabili di sicurezza e standard vengono distinte.

Per soddisfare i requisiti della norma IEC 61508 e in estensione alla norma CEI 61131, il codice standard e il codice di sicurezza sono rigorosamente distinti in 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.

Convenzioni di nomenclatura per variabili

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

Inizializzare variabili

Secondo la norma CEI 61131-3, alle variabili si può assegnare un valore iniziale. Il valore iniziale viene usato quando si elabora la variabile per la prima volta durante runtime.

Valgono le seguenti regole:

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

Parole chiave per la dichiarazione di variabili

A norma CEI 61131, le variabili si dichiarano utilizzando le parole chiave per la dichiarazione di variabili. Nel Machine Expert – Safety, le parole chiave per la dichiarazione di variabili si selezionano nella colonna 'Utilizzo'.

Le seguenti parole chiave definite nella CEI 61131 sono rilevanti nel Machine Expert – Safety:

Parola chiave

dichiara...

VAR

VAR_INPUT

variabili che sono parametri di ingresso di una UOP BF. Una variabile di ingresso può solo essere una variabile (simbolica) locale.

Una variabile di ingresso può essere solo letta dal BF. Secondo la CEI 61131-3, l'accesso di scrittura a variabili di ingresso non è permesso. Però, Machine Expert – Safety non verifica un possibile accesso di scrittura durante la compilazione del progetto per motivi di compatibilità.

VAR_OUTPUT

variabili che sono uscite di una UOP BF. Una variabile di uscita può solo essere una variabile (simbolica) locale. Può essere scritta e letta dal BF.

non è visibile nel Machine Expert – Safety

VAR_GLOBAL

variabili globali nel FdL per variabili globali.

Nonostante questa parola chiave sia definita nella norma CEI 61131 per dichiarare variabili globali, nel Machine Expert – Safety non è visibile.