Comparer (Compare, CMP)

Ces informations s’appliquent aux automates
CompactLogix
 5370,
ControlLogix
 5570,
Compact GuardLogix
 5370,
GuardLogix
 5570,
Compact GuardLogix
 5380,
CompactLogix
 5380,
ControlLogix
 5580,
GuardLogix
 5580 et ControlLogix 5590. Les différences entre les automates sont signalées, le cas échéant.
Définir l'expression CMP en utilisant des opérateurs, des points et des valeurs immédiates. Utiliser les parenthèses ( ) pour définir des sections d'expressions plus complexes.
L'avantage de l'instruction CMP est qu'elle permet d'inclure des expressions complexes dans une même instruction.
Lors de l'évaluation de l'expression, tous les opérandes non-REAL seront convertis en REAL avant de procéder aux calculs, si au moins une des conditions suivantes est vraie.
  • Tous les opérandes dans l'expression sont REAL.
  • L’expression contient SIN, COS, TAN, ASIN, ACOS, ATAN, LN, LOG, DEG ou RAD.
Il existe des règles pour les opérateurs admissibles dans les opérations de sécurité. Reportez-vous à la section
Opérateurs valides.
Langues disponibles
Diagramme à relais
RSL5K_CMP Ladder Diagram_v31
Bloc fonctionnel
Cette instruction n'est pas disponible dans le bloc fonctionnel.
Texte structuré
Cette instruction n'est pas disponible dans le texte structuré.
Opérandes
Voici les opérandes pour l’instruction CMP.
IMPORTANT: Une opération inattendue peut se produire dans les cas suivants :
  • Les opérandes de balise de sortie sont remplacés.
  • Les membres d'un opérande de structure sont remplacés.
  • Sauf lorsque cela est spécifié, les opérandes de structure sont partagés par plusieurs instructions.
Il existe des règles de conversion de données pour combiner des types de données numériques dans une instruction. Reportez-vous à la section Conversion des données.
Diagramme à relais
Ce qui suit est l’opérande pour le diagramme à relais.
Opérande
Type de données
Automates CompactLogix 5370, ControlLogix 5570, Compact GuardLogix 5370 et GuardLogix 5570
Type de données
Automates CompactLogix 5380, ControlLogix 5580, Compact GuardLogix 5380, GuardLogix 5580 et ControlLogix 5590
Format
Description
Expression
SINT
INT
DINT
REAL
Type de chaînes
SINT
INT
DINT
LINT
USINT
UINT
UDINT
ULINT
REAL
LREAL
Type de chaînes
balise immédiate
Une expression composée d’étiquettes et/ou de valeurs immédiates séparées par des opérateurs
Expressions de formatage
Pour chaque opérateur utilisé dans une expression, il faut fournir un ou deux opérandes (étiquettes ou valeurs immédiates). Utiliser le tableau suivant pour formater les opérateurs et opérandes au sein d'une expression.
Pour les opérateurs qui opèrent sur :
Utiliser ce format :
Exemple
Un opérande
operator(operand)
ABS(tag)
Deux opérandes
operand_a operator operand_b
tag_b + 5
tag_c AND tag_d
(tag_e**2) MOD (tag_f / tag_g)
Définir l'ordre des opérations
Les instructions exécutent les opérations dans l’expression dans un ordre prédéfini qui n’est pas nécessairement leur ordre d’apparition dans l’expression. L'ordre des opérations peut être spécifié en regroupant certains termes entre parenthèses, forçant ainsi l'instruction à exécuter les opérations entre parenthèses avant les autres.
Les opérations de rang égal sont exécutées de gauche à droite.
Ordre
Fonctionnement
1
( )
2
ABS, ACOS, ASIN, ATAN, COS, DEG, BCD_TO, IsINF, IsNAN, LN, LOG, RAD, SIN, SQRT, TAN, TO_BCD, TRUNC
3
**
4
- (negate), NOT, !
5
*, /, MOD
6
- (soustraction), +
7
AND
8
XOR
9
OR
10
<, <=, >, >=, =, <>
11
&&
12
^^
13
||
Utilisation des chaînes dans une expression
Pour utiliser des chaînes de caractères ASCII dans une expression, observer ces lignes directrices :
  • Une expression peut comparer deux points de chaînes.
  • On ne peut pas entrer directement des caractères ASCII dans une expression.
  • Les opérandes suivants sont autorisés :
    Opérateur
    Description
    =
    Égal
    <
    Inférieur à
    <=
    Inférieur à ou égal
    >
    Supérieur à
    >=
    Supérieur à ou égal
    <>
    Différent
  • Les chaînes sont égales si leurs caractères correspondent.
  • Les caractères ASCII sont sensibles à la casse. Le A majuscule ($41) n’est pas égal au a minuscule ($61).
  • Les valeurs hexadécimales des caractères permettent de définir si une chaîne est plus ou moins longue qu’une autre.
  • Lorsque deux chaînes sont triées comme dans un annuaire téléphonique, l'ordre des chaînes détermine celle qui est supérieure.
CMP strings
Affecte les indicateurs d'état mathématique
Automates
Affecte les indicateurs d'état mathématique
Automates CompactLogix 5380, ControlLogix 5580, Compact GuardLogix 5380 et GuardLogix 5580
Non
Automates CompactLogix 5370, ControlLogix 5570, Compact GuardLogix 5370 et GuardLogix 5570
L'instruction CMP affecte les indicateurs d’état mathématique si l’expression contient un opérateur (par exemple, +, -, *, /), qui affecte les indicateurs d’état mathématique.
Reportez-vous à la section Indicateurs d'état mathématique.
Défauts majeurs/mineurs
Aucun spécifique à cette instruction. Reportez-vous à la section Indexer via les tableaux pour consulter les défauts d'index par tableau.
Exécution
Diagramme à relais
Condition/état
Action entreprise
Préscrutation
N/A.
La condition d'entrée d'échelon est égale à faux
Définir la condition de sortie d'échelon sur la condition d'entrée d'échelon
La condition d'entrée d'échelon est égale à vrai
Définir la condition de sortie d'échelon sur la condition d'entrée d'échelon
Si l’expression renvoie false
La condition de sortie d’échelon est définie sur faux
Post-scrutation
N/A
Exemple
Diagramme à relais
RSL5K_CMP Ladder Diagram Example_v31
Si value_1 est égale à value_2, light_a est défini sur vrai. Si value_1 n'est pas égale à value_2, light_a est défini sur faux.
Fournir une réponse
Vous avez des questions ou des commentaires sur cette documentation ? Veuillez envoyer vos commentaires ici.
Normal