Combinare variabili di sicurezza e standard in TS

NOTA:

Definizione dei termini: Standard = non relativo alla sicurezza.

Il termine "standard" si riferisce sempre a elementi/oggetti non relativi alla sicurezza. Esempi: un elemento di dati di un processo standard può venire letto/scritto solo da un dispositivo I/O non relativo alla sicurezza, ossia da un dispositivo standard. Sono dati non relativi alla sicurezza tutte le variabili / le funzioni / i blocchi di funzione standard. Il termine "controllore standard" designa un PLC non relativo alla sicurezza.

Variabili di sicurezza e standard si possono utilizzare insieme in uno stesso FdL di codice TS e, in determinate circostanze, all'interno di una stessa istruzione TS.

Valgono le seguenti regole:

  • In genere, è possibile scrivere una variabile di sicurezza in una variabile standard utilizzando l'operatore di assegnazione '='. In questo modo viene eseguita una conversione del tipo implicita da un tipo di dati di sicurezza a un tipo di dati standard.

    Esempio valido: MyStandardBool := MySafeBool; (* permesso *)

     AVVERTENZA

    FUNZIONAMENTO INDESIDERATO DELL'ATTREZZATURA

    Non utilizzate variabili che sono state convertite da un tipo di dati di sicurezza a un tipo di dati standard in funzioni di sicurezza.

    La mancata osservazione di queste istruzioni può causare la morte, lesioni personali gravi e danni materiali.

  • L'assegnazione da una variabile standard a una variabile di sicurezza in genere non è permessa perché significherebbe una conversione del tipo implicita da un tipo di dati standard a un tipo di dati di sicurezza.

    Esempio di errore: MySafeBool := MyStandardBool; (* non permesso *)

  • Le variabili di sicurezza e standard si possono combinare in una singola istruzione a condizione che non avvengano assegnazioni da una variabile standard a una variabile di sicurezza.

    Gli operatori simbolici, come & = + - * /, vengono considerati come non digitati. Gli "operatori funzionali", come AND, OR, DIV, MUL, ecc. vengono considerati come digitati. Per gli operatori digitati si devono distinguere la "variante standard" e la "variante di sicurezza" (ad es., AND/AND_S).

    Esempi validi:

    MyStandardResult := MyStandardBool AND MyStandardBool2; (* permesso *)

    MySafeResult := MySafeBool1 AND_S MySafeBool2; (* permesso *)

    MySafeResult := MySafeBool1 & MySafeBool2; (* permesso *)

    MyStandardResult := MyStandardBool & MySafeBool; (* permesso *)

    Esempi di errore:

    MySafeResult := MyStandardBool & MySafeBool; (* non permesso *)

    MySafeResult := MyStandardBool AND_S MySafeBool; (* non permesso *)

  • Variabili di sicurezza e standard si possono combinare in uno stesso richiamo di FU/BF a condizione che non venga assegnata una variabile standard a una variabile di sicurezza. Ciò include anche l'assegnazione di parametri: le variabili standard non si possono collegare a parametri formali di FU/BF di sicurezza, dato che questi prevedono il collegamento di tipi di dati di sicurezza.

    Esempi validi:

    MyStandardResult:= AND(MySafeBool, MyStandardBool); (* permesso *)

    MyStandardCTU(CU := MySafeVar, RESET := 0, PV := INT#50); (* permesso *)

    Esempi di errore:

    MySafeResult:= AND(MySafeBool, MyStandardBool); (* non permesso *)

    MySafeCTU(CU := MyStandardVar, RESET := 0, PV := INT#50); (* non permesso *)

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.

NOTA:

Nonostante sia possibile combinare variabili di sicurezza e standard in TS, non è permesso realizzare il principio di abilitazione. A tal fine, utilizzare SBF/LD. Fare riferimento all'argomento "Programmare il principio di abilitazione".