Operatori
Le funzioni standard integrate che rappresentano un sottoinsieme delle funzioni IEC standard sono chiamate operatori. Le funzioni definite dall'utente non possono essere create nella programmazione di sicurezza.
Gli operatori hanno la stessa semantica di CODESYS Standard.
Possono essere collegati ad entrambi SAFExxx
E Tipi di dati Standard.
Inserimento degli operatori
Gli operatori vengono inseriti utilizzando il Inserisci la casella O Inserisci casella vuota comando.
Gli operatori possono anche essere aggiunti dalla casella degli strumenti in Cassetta degli attrezzi visualizza. La casella degli strumenti nell'Editor FBD di sicurezza contiene le seguenti categorie:
Operatori booleani
Operatori matematici
Altri operatori
Assistente di input
Nell'Assistente di immissione vengono visualizzate le seguenti categorie per gli operatori:
Operatori
Conversioni (non nel livello base)
Operatori estensibili
AND
OR
ADD
(solo nel livello esteso)MUL
(solo nel livello esteso)MUX
(solo nel livello esteso)
IL EQ
, LT
, LE
, GT
, E GE
Gli operatori, anch'essi estensibili secondo IEC, possono essere utilizzati solo con due ingressi (come nel caso dello standard).
IL Inserisci input Il comando aggiunge un ulteriore input a una casella operatore estensibile.
Operatori nel livello base
AND
(2 ingressi)AND
(3 ingressi)OR
(2 ingressi)OR
(3 ingressi)
Tutti gli operandi del OR
deve essere SAFEBOOL
.
Operatori nel livello esteso
AND
(2 ingressi)AND
(3 ingressi)OR
(2 ingressi)OR
(3 ingressi)XOR
NOT
Importante
L'uso negligente dell' XOR
E NOT
gli operatori possono portare alla perdita della proprietà di sicurezza SAFExxx
variabili. Nessun avviso viene generato dal verificatore di sicurezza per tali costrutti.
IL XOR
E NOT
gli operatori possono negare la proprietà di sicurezza di un SAFExxx
variabile, in modo che il SAFE
variabile perde la sua proprietà fail-safe, cioè diventa "non-fail-safe". Ciò può portare all'avvio involontario dell'impianto.
Regola di programmazione: La SAFExxx
uscite di NOT
E XOR
devono essere determinati. Successivamente, bisogna assicurarsi che questi NOT
/XOR
le uscite non sono collegate tramite uscite (I/O).
ADD
(2 input): AritmeticaADD
operatoreADD
(3 ingressi): Aggiunta con tre ingressiSUB
: SottrazioneMUL
: MoltiplicazioneDIV
: DivisionEQ
: Confronto per uguaglianzaNE
: Confronto per disuguaglianzaLT
: Confronto per "meno di"LE
: Confronto per "minore di" o "uguale a"GT
: Confronto per "maggiore di"GE
: Confronto per "maggiore di" o "uguale a"
SEL
MUX
BOOL_TO_INT
BOOL_TO_DINT
BOOL_TO_TIME
BOOL_TO_WORD
BYTE_TO_INT
BYTE_TO_DINT
BYTE_TO_TIME
BYTE_TO_WORD
DINT_TO_BOOL
DINT_TO_BYTE
DINT_TO_INT
DINT_TO_TIME
DINT_TO_WORD
DINT_TO_DWORD
DWORD_TO_DINT
DWORD_TO_TIME
INT_TO_BOOL
INT_TO_BYTE
INT_TO_DINT
INT_TO_DWORD
INT_TO_TIME
INT_TO_WORD
TIME_TO_BOOL
TIME_TO_BYTE
TIME_TO_INT
TIME_TO_DINT
TIME_TO_WORD
TIME_TO_DWORD
WORD_TO_BOOL
WORD_TO_BYTE
WORD_TO_DINT
WORD_TO_INT
WORD_TO_TIME
WORD_TO_DWORD
Operatori con caratteristiche di sicurezza
Le caratteristiche specifiche di alcuni operatori sono descritte nelle sezioni seguenti
Errore di runtime in caso di superamento del limite massimo dell'operatore nel livello esteso
Errore di runtime in caso di superamento del limite massimo dell'operatore nel livello esteso
Importante
È responsabilità degli sviluppatori progettare la logica del programma in modo che non si verifichino errori in fase di esecuzione.
Reagisce ai seguenti sovraccarichi con un errore di runtime, a seguito della quale l'applicazione viene arrestata e viene generata una voce di registro.
Livello | Elemento linguistico | Errore di runtime in caso di |
---|---|---|
Esteso |
| Divisione per 0 |
Esteso |
| Chiamata con primo input con valore negativo o con valore N maggiore del numero di input meno 1. Esempio: |
Esteso |
| Il valore di output non è compreso nell'intervallo di valori del tipo di destinazione: durante la conversione tra due
allo stesso modo
|
Suggerimento
Il comportamento standard di SEL
/MUX
(vale a dire che viene selezionato il valore massimo se il valore di input è troppo grande e viene selezionato 0 se il valore di input è negativo) deve essere programmato nell'applicazione di sicurezza.
SEL
: per k<0
SEL
: per k>max, n...valore massimo
MUX
per k<0
MUX
per k>0