Opérateurs
Les fonctions standard intégrées qui représentent un sous-ensemble des fonctions standard IEC sont appelées opérateurs. Les fonctions définies par l'utilisateur ne peuvent pas être créées dans la programmation de sécurité.
Les opérateurs ont la même sémantique que dans CODESYS Standard.
Ils peuvent être connectés aux deux SAFExxx et Types de données Standard.
Insertion d'opérateurs
Les opérateurs sont insérés à l'aide de la Boîte d'insertion ou Insérer une boîte vide commande.
Les opérateurs peuvent également être ajoutés à partir de la boîte à outils dans le Boîte à outils vue. La boîte à outils de l'éditeur Safety FBD contient les catégories suivantes :
Opérateurs booléens
Opérateurs mathématiques
Autres opérateurs
Assistant de saisie
Les catégories suivantes sont affichées pour les opérateurs dans l'assistant de saisie :
Opérateurs
Conversions (pas au niveau de base)
Opérateurs extensibles
ANDORADD(uniquement dans le niveau étendu)MUL(uniquement dans le niveau étendu)MUX(uniquement dans le niveau étendu)
Le EQ, LT, LE, GT, et GE les opérateurs, qui sont également extensibles conformément à la norme CEI, ne peuvent être utilisés qu'avec deux entrées (comme dans le cas de la norme ).
Le Insérer une entrée La commande ajoute une entrée supplémentaire à une boîte d'opérateur extensible.
Opérateurs au niveau de base
AND(2 entrées)AND(3 entrées)OR(2 entrées)OR(3 entrées)
Tous les opérandes de la OR doit être SAFEBOOL.
Opérateurs au niveau étendu
AND(2 entrées)AND(3 entrées)OR(2 entrées)OR(3 entrées)XORNOT
Important
L’utilisation imprudente de la XOR et NOT les opérateurs peuvent conduire à la perte de la propriété de sécurité intégrée SAFExxx variables. Aucun avertissement n'est généré par le vérificateur de sécurité pour de telles constructions.
Le XOR et NOT les opérateurs peuvent annuler la propriété de sécurité intégrée d'un SAFExxx variable, de sorte que le SAFE La variable perd sa propriété de sécurité intégrée, c'est-à-dire qu'elle devient « non sécurisée ». Cela peut conduire à un démarrage involontaire de l'installation.
Règle de programmation : La SAFExxx sorties de NOT et XOR doivent être déterminés. Par la suite, il faut s'assurer que ces NOT/XOR les sorties ne sont pas connectées aux sorties (E/S).
ADD(2 entrées) : ArithmétiqueADDopérateurADD(3 entrées) : Addition avec trois entréesSUB: SoustractionMUL:MultiplicationDIV:DivisionEQ: Comparaison pour l'égalitéNE: Comparaison des inégalitésLT: Comparaison pour « moins de »LE: Comparaison pour « inférieur à » ou « égal à »GT: Comparaison pour « supérieur à »GE: Comparaison pour « supérieur à » ou « égal à »
SELMUX
BOOL_TO_INTBOOL_TO_DINTBOOL_TO_TIMEBOOL_TO_WORDBYTE_TO_INTBYTE_TO_DINTBYTE_TO_TIMEBYTE_TO_WORDDINT_TO_BOOLDINT_TO_BYTEDINT_TO_INTDINT_TO_TIMEDINT_TO_WORDDINT_TO_DWORDDWORD_TO_DINTDWORD_TO_TIMEINT_TO_BOOLINT_TO_BYTEINT_TO_DINTINT_TO_DWORDINT_TO_TIMEINT_TO_WORDTIME_TO_BOOLTIME_TO_BYTETIME_TO_INTTIME_TO_DINTTIME_TO_WORDTIME_TO_DWORDWORD_TO_BOOLWORD_TO_BYTEWORD_TO_DINTWORD_TO_INTWORD_TO_TIMEWORD_TO_DWORD
Opérateurs avec caractéristiques de sécurité
Les caractéristiques de certains opérateurs spécifiques à sont décrites dans les sections suivantes
Erreur d'exécution en cas de dépassement de plage d'opérateur dans le niveau étendu
Erreur d'exécution en cas de dépassement de plage d'opérateur dans le niveau étendu
Important
Il est de la responsabilité des développeurs de concevoir la logique du programme de manière à ce qu'aucune erreur d'exécution ne se produise.
Réagit aux dépassements de plage suivants avec un erreur d'exécution, à la suite de quoi l'application est arrêtée et une entrée de journal est générée.
Niveau | Élément de langage | Erreur d'exécution en cas de |
|---|---|---|
Étendu |
| Division par 0 |
Étendu |
| Appel avec une première entrée avec une valeur négative ou avec une valeur N supérieure au nombre d'entrées moins 1. Exemple : |
Étendu |
| La valeur de sortie n'est pas dans la plage de valeurs du type cible : lors de la conversion entre deux
de même
|
Astuce
Le comportement standard de SEL/MUX (c'est-à-dire que la valeur maximale est sélectionnée si la valeur d'entrée est trop grande et 0 est sélectionnée si la valeur d'entrée est négative) doit être programmé dans l'application de sécurité.
SEL: pour k<0
SEL: pour k>max, n...valeur maximale
MUX pour k<0
MUX pour k>0