Skip to main content

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

. Operatori estensibili tramite input aggiuntivi
  • 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

. Operatori booleani
  • AND (2 ingressi)

  • AND (3 ingressi)

  • OR (2 ingressi)

  • OR (3 ingressi)

Tutti gli operandi del OR deve essere SAFEBOOL.

Operatori nel livello esteso

. Operatori booleani
  • 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).

. Operatori matematici
  • ADD (2 input): Aritmetica ADD operatore

  • ADD (3 ingressi): Aggiunta con tre ingressi

  • SUB: Sottrazione

  • MUL: Moltiplicazione

  • DIV: Division

  • EQ: Confronto per uguaglianza

  • NE: Confronto per disuguaglianza

  • LT: 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"

. Altri operatori
  • SEL

  • MUX

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

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

DIV

Divisione per 0

Esteso

MUX

Chiamata con primo input con valore negativo o con valore N maggiore del numero di input meno 1. Esempio: MUX(2, 16#8000, 16#8001)

Esteso

DINT_TO_INT,

TIME_TO_DINT,

TIME_TO_INT,

DINT_TO_TIME,

INT_TO_TIME,

DINT_TO_WORD,

TIME_TO_WORD,

DINT_TO_BYTE,

INT_TO_BYTE,

TIME_TO_BYTE, WORD_TO_BYTE

Il valore di output non è compreso nell'intervallo di valori del tipo di destinazione: durante la conversione tra due ANY_MAGNITUDE tipi (INT, DINT, TIME), il valore numerico di output deve essere compreso nell'intervallo di valori del tipo di destinazione (dove TIME i valori vengono conteggiati come un numero di millisecondi). Quando si converte da/a tipi di stringa di bit (BYTE, WORD, DWORD), il pattern di bit del valore di output deve essere un pattern di bit del tipo di destinazione. Esempi:

DINT_TO_INT(16#0000FFFF), perché 216-1 non è un INT valore,

allo stesso modo DINT_TO_TIME(-1), perché non ci sono aspetti negativi TIME- valori

TIME_TO_DINT(t#365d), perché 365 giorni = 3.153.600.000 ms = 16#BBF81E00 ed è quindi maggiore del numero DINT più grande 231-1 = 16#7FFFFFFF

INT_TO_BYTE(-1), Perché BYTE comprende solo da 0 a 255,

WORD_TO_BYTE(0xFFFF), Perché BYTE si estende solo a 0xFF.

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.

Figura 40. Programmazione del comportamento standard di SEL: per k<0
Programmazione del comportamento standard di SEL: per k<0


Figura 41. Programmazione del comportamento standard di SEL: per k>max, n...valore massimo
Programmazione del comportamento standard di SEL: per k>max, n...valore massimo


Figura 42. Programmazione del comportamento standard di MUX per k<0
Programmazione del comportamento standard di MUX per k<0


Figura 43. Programmazione del comportamento standard di MUX per k>0
Programmazione del comportamento standard di MUX per k>0