1756-rm003k-fr-p, automates logix5000™ – instructions

697
Manuel de référence Numéros de catalogue 1756-L1x, 1756-L5x, 1756-L6x, 1768-L4x, 1769-L30, 1769-L31, 1769-L32C, 1769-L32E, 1769-L35CR, 1769-L35E, 1789-L60, 1794-L34, 20D Automates Logix5000™ – Instructions

Upload: buituong

Post on 01-Jan-2017

230 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Manuel de référence

Numéros de catalogue 1756-L1x,1756-L5x, 1756-L6x, 1768-L4x,

1769-L30, 1769-L31, 1769-L32C, 1769-L32E, 1769-L35CR, 1769-L35E,

1789-L60, 1794-L34, 20D

Automates Logix5000™ –Instructions

Page 2: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Informations importantes destinées à l’utilisateurLes équipements électroniques possèdent des caractéristiques de fonctionnement différentes de celles des équipements électromécaniques. La publication SGI-1.1 « Safety Guidelines for the Application, Installation and Maintenance of Solid State Controls » (disponible auprès de votre agence commerciale Rockwell Automation ou en ligne sur le sitehttp://literature.rockwellautomation.com) décrit certaines de ces différences. En raison de ces différences et de la diversité des utilisations des équipements électroniques, les personnes qui en sont responsables doivent s’assurer de l’acceptabilité de chaque application.

La société Rockwell Automation, Inc. ne saurait en aucun cas être tenue pour responsable ni être redevable des dommages indirects ou résultant de l’utilisation ou de l’application de cet équipement.

Les exemples et schémas contenus dans ce manuel sont présentés à titre indicatif seulement. En raison du nombre important de variables et d’impératifs associés à chaque installation, la société Rockwell Automation, Inc. ne saurait être tenue pour responsable ni être redevable des suites d’utilisation réelle basée sur les exemples et schémas présentés dans ce manuel.

La société Rockwell Automation, Inc. décline également toute responsabilité en matière de propriété intellectuelle et industrielle concernant l’utilisation des informations, circuits, équipements ou logiciels décrits dans ce manuel.

Toute reproduction totale ou partielle du présent manuel sans autorisation écrite de la société Rockwell Automation, Inc. est interdite.

Des remarques sont utilisées tout au long du manuel pour attirer votre attention sur les mesures de sécurité à prendre encompte :

Allen-Bradley, Rockwell Automation et TechConnect sont des marques commerciales de Rockwell Automation, Inc.

Les marques commerciales n’appartenant pas à Rockwell Automation sont la propriété de leurs sociétés respectives.

AVERTISSEMENTActions ou situations risquant de provoquer une explosion dans un environnement dangereux et d’entraîner des blessures pouvant être mortelles, des dégâts matériels ou des pertes financières.

IMPORTANT Informations particulièrement importantes dans le cadre de l’utilisation du produit.

ATTENTION Actions ou situations risquant d’entraîner des blessures pouvant être mortelles, des dégâts matériels ou des pertes financières. Les messages « Attention » vous aident à identifier un danger ; éviter ce danger ; en discerner les conséquences.

DANGERD’ELECTROCUTION

Les étiquettes ci-contre, placées sur l’équipement ou à l’intérieur, par exemple, un variateur ou un moteur, signalent la présence de tensions électriques dangereuses.

RISQUE DEBRULURE

Les étiquettes ci-contre, placées sur l’équipement ou à l’intérieur, par exemple, un variateur ou un moteur, indiquent au personnel que certaines surfaces peuvent être à des températures particulièrement élevées.

Page 3: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Table des matières

PréfaceAutomates Logix5000™ – Instructions

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23A qui s’adresse ce manuel . . . . . . . . . . . . . . . . . . . . . . . . . . 23Objet de ce manuel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24Informations communes à toutes les instructions . . . . . . . . . 25Conventions et terminologie . . . . . . . . . . . . . . . . . . . . . . . . 25

Activer et effacer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25Condition de ligne de logique à relais. . . . . . . . . . . . . . . 26Etats des blocs fonctionnels . . . . . . . . . . . . . . . . . . . . . . 27

Chapitre 1Instructions Logix d’alarmes et d’événements FactoryTalk(ALMD, ALMA)

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29Alarme TOR (ALMD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

Schémas d’état lorsque l’acquittement est requis . . . . . . . 36Schémas d’état lorsque l’acquittement n’est pas requis . . . 37ALMD Alarme avec acquittement requis et verrouillée . . . 38ALMD Alarme avec acquittement requis et non verrouillée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39ALMD Alarme avec acquittement non requis et verrouillée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39ALMD Alarme avec acquittement non requis et non verrouillée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

Alarme analogique (ALMA) . . . . . . . . . . . . . . . . . . . . . . . . . 42Schémas d’état lorsque l’acquittement est requis . . . . . . . 54Schémas d’état lorsque l’acquittement n’est pas requis . . . 55ALMA Acquittement de la condition de seuil requis . . . . . 57ALMA Acquittement de la condition de seuil non requis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58ALMA Acquittement de la vitesse de variation requis . . . . 59ALMA Acquittement de la vitesse de variation non requis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

Configuration d’une instruction d’alarme . . . . . . . . . . . . . . . 62Saisie du texte du message d’alarme . . . . . . . . . . . . . . . . . . 65

Variables de la chaîne du message . . . . . . . . . . . . . . . . . 66Versions plurilingues des messages d’alarme. . . . . . . . . . 68

Surveillance de l’état d’alarme . . . . . . . . . . . . . . . . . . . . . . . 69Mise en mémoire tampon d’alarmes. . . . . . . . . . . . . . . . . . . 69Accès aux informations d’alarme par le programme . . . . . . . 70Suppression ou désactivation d’alarmes . . . . . . . . . . . . . . . . 72Exécution d’alarme d’automate . . . . . . . . . . . . . . . . . . . . . . 73

Utilisation de la mémoire automate. . . . . . . . . . . . . . . . . 74Temps de scrutation. . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

3Publication 1756-RM003K-FR-P – Juillet 2008 3

Page 4: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Table des matières

Chapitre 2Instructions sur bit(XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77Examiner si fermé (XIC) . . . . . . . . . . . . . . . . . . . . . . . . . . . 78Examiner si ouvert (XIO). . . . . . . . . . . . . . . . . . . . . . . . . . . 80Activation de sortie (OTE) . . . . . . . . . . . . . . . . . . . . . . . . . . 82Verrouillage de sortie (OTL) . . . . . . . . . . . . . . . . . . . . . . . . 84Déverrouillage de sortie (OTU) . . . . . . . . . . . . . . . . . . . . . . 86Impulsion (ONS). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88Impulsion sur front montant (OSR) . . . . . . . . . . . . . . . . . . . 91Impulsion sur front descendant (OSF) . . . . . . . . . . . . . . . . . 94Impulsion sur front montant avec entrée (OSRI) . . . . . . . . . . 96Impulsion sur front descendant avec entrée (OSFI). . . . . . . . 99

Chapitre 3Instructions de temporisation et de comptage(TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103Temporisateur à l’enclenchement (TON) . . . . . . . . . . . . . . 104Temporisateur au déclenchement (TOF) . . . . . . . . . . . . . . 108Temporisateur rémanent (RTO) . . . . . . . . . . . . . . . . . . . . . 112Temporisateur à l’enclenchement avec RAZ (TONR). . . . . . 116Temporisateur au déclenchement avec RAZ (TOFR) . . . . . . 120Temporisateur rémanent avec RAZ (RTOR) . . . . . . . . . . . . 124Comptage progressif (CTU) . . . . . . . . . . . . . . . . . . . . . . . . 128Comptage dégressif (CTD). . . . . . . . . . . . . . . . . . . . . . . . . 132Comptage progressif/dégressif (CTUD) . . . . . . . . . . . . . . . 136Réinitialisation (RES) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140

Chapitre 4Instructions d’entrée/de sortie(MSG, GSV, SSV, IOT)

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143Message (MSG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144Codes d’erreur MSG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

Codes d’erreur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152Codes d’erreur étendus . . . . . . . . . . . . . . . . . . . . . . . . 154Codes d’erreur PLC et SLC (.ERR) . . . . . . . . . . . . . . . . . 156Codes d’erreur de bloc-transfert . . . . . . . . . . . . . . . . . . 158

Spécification des détails de configuration . . . . . . . . . . . . . . 159Spécification des messages de lecture et d’écriture des fichiers de données CIP . . . . . . . . . . . . . . . . . . . . . 160Reconfiguration d’un module d’E/S. . . . . . . . . . . . . . . . 161Définition des messages CIP génériques . . . . . . . . . . . . 162Définition des messages PLC-5 . . . . . . . . . . . . . . . . . . . 163Définition des messages SLC . . . . . . . . . . . . . . . . . . . . 165Définition des messages de bloc-transfert . . . . . . . . . . . 165Définition des messages PLC-3 . . . . . . . . . . . . . . . . . . . 165Définition des messages PLC-2 . . . . . . . . . . . . . . . . . . . 167

Exemples de configuration MSG . . . . . . . . . . . . . . . . . . . . 168

4 Publication 1756-RM003K-FR-P – Juillet 2008

Page 5: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Table des matières

Définition de la communication. . . . . . . . . . . . . . . . . . . . . 169Définition d’un chemin . . . . . . . . . . . . . . . . . . . . . . . . 169Pour les blocs-transferts . . . . . . . . . . . . . . . . . . . . . . . . 172Définition d’une méthode de communication ou d’une adresse de module . . . . . . . . . . . . . . . . . . . . . . . 172Choix d’une option de cache . . . . . . . . . . . . . . . . . . . . 173Recommandations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175

Lire une valeur système (GSV) et écrire une valeur système (SSV) . . . . . . . . . . . . . . . . . . . . . . . . . 176Objets GSV/SSV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179

Accéder à l’objet CONTROLLER . . . . . . . . . . . . . . . . . . 179Accéder à l’objet CONTROLLERDEVICE . . . . . . . . . . . . 181Accéder à l’objet CST . . . . . . . . . . . . . . . . . . . . . . . . . . 183Accéder à l’objet DF1. . . . . . . . . . . . . . . . . . . . . . . . . . 184Accéder à l’objet FAULTLOG . . . . . . . . . . . . . . . . . . . . 187Accéder à l’objet MESSAGE . . . . . . . . . . . . . . . . . . . . . 188Accéder à l’objet MODULE. . . . . . . . . . . . . . . . . . . . . . 190Accéder à l’objet MOTIONGROUP . . . . . . . . . . . . . . . . 191Accéder à l’objet PROGRAM. . . . . . . . . . . . . . . . . . . . . 192Accéder à l’objet ROUTINE . . . . . . . . . . . . . . . . . . . . . 193Accéder à l’objet SERIALPORT . . . . . . . . . . . . . . . . . . . 193Accéder à l’objet TASK. . . . . . . . . . . . . . . . . . . . . . . . . 195Accéder à l’objet WALLCLOCKTIME . . . . . . . . . . . . . . . 197

Exemple de programmation GSV/SSV . . . . . . . . . . . . . . . . 198Obtenir les informations sur les défauts . . . . . . . . . . . . 198Configuration d’indicateurs d’activation et de désactivation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200

Sortie immédiate (IOT) . . . . . . . . . . . . . . . . . . . . . . . . . . . 201

Chapitre 5Instructions de comparaison(CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205Comparaison (CMP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206

Expressions CMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208Opérateurs valables . . . . . . . . . . . . . . . . . . . . . . . . . . . 208Formatage d’expressions . . . . . . . . . . . . . . . . . . . . . . . 209Déterminer l’ordre des opérations. . . . . . . . . . . . . . . . . 209Utilisation de chaînes dans une expression . . . . . . . . . . 210

Egal à (EQU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211Supérieur ou égal (GEQ). . . . . . . . . . . . . . . . . . . . . . . . . . 215Supérieur à (GRT). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219Inférieur ou égal (LEQ) . . . . . . . . . . . . . . . . . . . . . . . . . . . 223Inférieur à (LES) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227Limite (LIM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231Masque égal à (MEQ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237

Entrée d’une valeur de masque immédiate . . . . . . . . . . 238Différent de (NEQ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242

Publication 1756-RM003K-FR-P – Juillet 2008 5

Page 6: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Table des matières

Chapitre 6Instructions de calcul/mathématiques(CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247Calcul (CPT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248

Opérateurs valables . . . . . . . . . . . . . . . . . . . . . . . . . . . 250Formatage d’expressions . . . . . . . . . . . . . . . . . . . . . . . 250Déterminer l’ordre des opérations. . . . . . . . . . . . . . . . . 251

Addition (ADD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252Soustraction (SUB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255Multiplication (MUL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258Division (DIV) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261Modulo (MOD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266Racine carrée (SQR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270Négation (NEG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274Valeur absolue (ABS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277

Chapitre 7Instructions de transfert/logiques(MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281Transfert (MOV) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283Transfert avec masque (MVM) . . . . . . . . . . . . . . . . . . . . . . 285

Entrée d’une valeur de masque immédiate . . . . . . . . . . 286Transfert masqué avec cible (MVMT) . . . . . . . . . . . . . . . . . 288Répartition champ de bits (BTD) . . . . . . . . . . . . . . . . . . . . 292Répartition champ de bits avec cible (BTDT) . . . . . . . . . . . 295Effacer (CLR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298Permutation d’octet (SWPB). . . . . . . . . . . . . . . . . . . . . . . . 300ET sur bits (AND) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304OU sur bits (OR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307OU exclusif sur bits (XOR) . . . . . . . . . . . . . . . . . . . . . . . . 310NON sur bits (NOT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313ET booléen (BAND) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316OU booléen (BOR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319OU exclusif booléen (BXOR). . . . . . . . . . . . . . . . . . . . . . . 322NON booléen (BNOT) . . . . . . . . . . . . . . . . . . . . . . . . . . . 325

Chapitre 8Instructions de tableau (fichier)/Instructions diverses(FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327Sélection du mode de fonctionnement . . . . . . . . . . . . . . . . 328

Mode Tout. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328Mode Numérique. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329Mode incrémental . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331

Arithmétique et logique sur fichier (FAL) . . . . . . . . . . . . . . 333Expressions FAL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342Opérateurs valables . . . . . . . . . . . . . . . . . . . . . . . . . . . 342Formatage d’expressions . . . . . . . . . . . . . . . . . . . . . . . 343Déterminer l’ordre des opérations. . . . . . . . . . . . . . . . . 343

6 Publication 1756-RM003K-FR-P – Juillet 2008

Page 7: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Table des matières

Recherche et comparaison sur fichier (FSC) . . . . . . . . . . . . 344Expressions FSC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348Opérateurs valables . . . . . . . . . . . . . . . . . . . . . . . . . . . 349Formatage d’expressions . . . . . . . . . . . . . . . . . . . . . . . 349Déterminer l’ordre des opérations. . . . . . . . . . . . . . . . . 350Utilisation de chaînes dans une expression . . . . . . . . . . 351

Copie de fichier (COP) Copie synchrone de fichier (CPS) . . 352Remplir un fichier (FLL) . . . . . . . . . . . . . . . . . . . . . . . . . . 358Moyenne de fichier (AVE) . . . . . . . . . . . . . . . . . . . . . . . . . 362Tri sur fichier (SRT). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367Ecart type de fichier (STD) . . . . . . . . . . . . . . . . . . . . . . . . 372Taille en éléments (SIZE). . . . . . . . . . . . . . . . . . . . . . . . . . 377

Chapitre 9Instructions de tableau (fichier)/décalage(BSL, BSR, FFL, FFU, LFL, LFU)

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381Décalage binaire à gauche (BSL) . . . . . . . . . . . . . . . . . . . . 382Décalage binaire à droite (BSR) . . . . . . . . . . . . . . . . . . . . . 386Chargement FIFO (FFL). . . . . . . . . . . . . . . . . . . . . . . . . . . 390Déchargement de FIFO (FFU) . . . . . . . . . . . . . . . . . . . . . . 396Chargement LIFO (LFL) . . . . . . . . . . . . . . . . . . . . . . . . . . . 402Déchargement LIFO (LFU). . . . . . . . . . . . . . . . . . . . . . . . . 408

Chapitre 10Instructions séquenceurs(SQI, SQO, SQL)

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415Entrée séquenceur (SQI) . . . . . . . . . . . . . . . . . . . . . . . . . . 416

Entrée d’une valeur de masque immédiate . . . . . . . . . . 417Utiliser SQI sans SQO . . . . . . . . . . . . . . . . . . . . . . . . . 419

Sortie séquenceur (SQO). . . . . . . . . . . . . . . . . . . . . . . . . . 420Entrée d’une valeur de masque immédiate . . . . . . . . . . 421Utiliser SQI avec SQO . . . . . . . . . . . . . . . . . . . . . . . . . 423Réinitialisation de la position de SQO. . . . . . . . . . . . . . 423

Chargement de séquenceur (SQL) . . . . . . . . . . . . . . . . . . . 424

Chapitre 11Instructions de commande de programme(JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429Saut vers une étiquette (JMP)Etiquette (LBL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430Saut vers sous-programme (JSR)Sous-programme (SBR) Retour (RET) . . . . . . . . . . . . . . . . . 432Saut vers sous-programme externe (JXR) . . . . . . . . . . . . . . 443Fin temporaire (TND) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446Relais de contrôle maître (MCR). . . . . . . . . . . . . . . . . . . . . 448Désactivation d’interruption par l’utilisateur (UID) Activation d’interruption par l’utilisateur (UIE) . . . . . . . . . . 450Instruction toujours faux (AFI) . . . . . . . . . . . . . . . . . . . . . . 452

Publication 1756-RM003K-FR-P – Juillet 2008 7

Page 8: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Table des matières

Pas d’opération (NOP) . . . . . . . . . . . . . . . . . . . . . . . . . . . 453Fin de transition (EOT) . . . . . . . . . . . . . . . . . . . . . . . . . . . 454Pause SFC (SFP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456Réinitialisation SFC (SFR). . . . . . . . . . . . . . . . . . . . . . . . . . 458Déclenchement de tâche événementielle (EVENT) . . . . . . . 460

Déterminer de façon programmatique si une instruction EVENT déclenche une tâche . . . . . . . 461

Chapitre 12Instructions pour/rupture(FOR, FOR...DO, BRK, EXIT, RET)

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465Pour (FOR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466Rupture (BRK) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469Retour (RET). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470

Chapitre 13Instructions spéciales(FBC, DDT, DTR, PID)

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473Comparaison de fichier de bits (FBC). . . . . . . . . . . . . . . . . 474

Sélection du mode de recherche. . . . . . . . . . . . . . . . . . 476Détection de diagnostic (DDT) . . . . . . . . . . . . . . . . . . . . . 481

Sélection du mode de recherche. . . . . . . . . . . . . . . . . . 483Transition de données (DTR). . . . . . . . . . . . . . . . . . . . . . . 488

Entrée d’une valeur de masque immédiate . . . . . . . . . . 489Proportionnel, intégral et dérivé (PID) . . . . . . . . . . . . . . . . 491Configuration d’une instruction PID . . . . . . . . . . . . . . . . . . 496

Spécification du réglage . . . . . . . . . . . . . . . . . . . . . . . . 497Spécification de la configuration. . . . . . . . . . . . . . . . . . 498Spécification des alarmes . . . . . . . . . . . . . . . . . . . . . . . 499Spécification de la mise à l’échelle . . . . . . . . . . . . . . . . 499

Utilisation des instructions PID . . . . . . . . . . . . . . . . . . . . . 500Anti-saturation de l’action intégrale et transfert sans à-coups entre manuel et auto . . . . . . . . . . . . . . . . 502Temporisation de l’instruction PID . . . . . . . . . . . . . . . . 503Redémarrage sans à-coups . . . . . . . . . . . . . . . . . . . . . . 507Lissage des dérivées. . . . . . . . . . . . . . . . . . . . . . . . . . . 508Réglage de la zone morte. . . . . . . . . . . . . . . . . . . . . . . 509Utilisation de la limitation de sortie. . . . . . . . . . . . . . . . 509Anticipation de vitesse ou polarisation de sortie . . . . . . 510Boucles en cascade . . . . . . . . . . . . . . . . . . . . . . . . . . . 510Contrôle d’un rapport . . . . . . . . . . . . . . . . . . . . . . . . . 511

Théorie du PID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512Processus PID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512Processus PID avec boucles maître/esclave . . . . . . . . . . 512

8 Publication 1756-RM003K-FR-P – Juillet 2008

Page 9: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Table des matières

Chapitre 14Instructions trigonométriques(SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513Sinus (SIN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514Cosinus (COS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517Tangente (TAN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520Sinus d’arc (ASN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523Cosinus d’arc (ACS). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526Tangente d’arc (ATN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529

Chapitre 15Instructions mathématiques évoluées(LN, LOG, XPY)

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533Logarithme naturel (LN) . . . . . . . . . . . . . . . . . . . . . . . . . . 534Logarithme décimal (LOG) . . . . . . . . . . . . . . . . . . . . . . . . 537X à la puissance Y (XPY) . . . . . . . . . . . . . . . . . . . . . . . . . 540

Chapitre 16Instructions de conversion mathématique(DEG, RAD, TOD, FRD, TRN, TRUNC)

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543Degrés (DEG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544Radians (RAD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547Conversion en DCB (TOD) . . . . . . . . . . . . . . . . . . . . . . . . 550Conversion en nombre entier (FRD) . . . . . . . . . . . . . . . . . 553Troncation (TRN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555

Chapitre 17Instructions du port série ASCII(ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559Exécution de l’instruction . . . . . . . . . . . . . . . . . . . . . . . 560Codes d’erreur ASCII . . . . . . . . . . . . . . . . . . . . . . . . . . 562Types de données de chaîne . . . . . . . . . . . . . . . . . . . . 562

Test ASCII pour ligne de mémoire tampon (ABL) . . . . . . . . 564Caractères ASCII dans la mémoire tampon (ACB) . . . . . . . . 567Effacement ASCII de la mémoire tampon (ACL) . . . . . . . . . 569Lignes d’échange ASCII (AHL) . . . . . . . . . . . . . . . . . . . . . . 571Lecture ASCII (ARD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575Ligne de lecture ASCII (ARL) . . . . . . . . . . . . . . . . . . . . . . . 579Ajout d’écriture ASCII (AWA). . . . . . . . . . . . . . . . . . . . . . . 583Ecriture ASCII (AWT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588

Chapitre 18Instructions de chaîne ASCII(CONCAT, DELETE, FIND, INSERT, MID)

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593Types de données de chaîne . . . . . . . . . . . . . . . . . . . . 594

Concaténation de chaîne (CONCAT) . . . . . . . . . . . . . . . . . 595Effacement de chaîne (DELETE) . . . . . . . . . . . . . . . . . . . . 597Rechercher une chaîne (FIND) . . . . . . . . . . . . . . . . . . . . . 599Insertion d’une chaîne (INSERT) . . . . . . . . . . . . . . . . . . . . 601Chaîne médiane (MID) . . . . . . . . . . . . . . . . . . . . . . . . . . . 603

Publication 1756-RM003K-FR-P – Juillet 2008 9

Page 10: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Table des matières

Chapitre 19Instructions de conversion ASCII(STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605Types de données de chaîne . . . . . . . . . . . . . . . . . . . . 607

Chaîne vers DINT (STOD) . . . . . . . . . . . . . . . . . . . . . . . . . 608Chaîne vers REAL (STOR) . . . . . . . . . . . . . . . . . . . . . . . . . 611DINT vers chaîne (DTOS) . . . . . . . . . . . . . . . . . . . . . . . . . 613REAL vers chaîne (RTOS) . . . . . . . . . . . . . . . . . . . . . . . . . 615Haut de casse (UPPER) . . . . . . . . . . . . . . . . . . . . . . . . . . . 617Bas de casse (LOWER) . . . . . . . . . . . . . . . . . . . . . . . . . . . 619

Chapitre 20Instructions de débogage(BPT, TPT)

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621Points d’interruption (BPT) . . . . . . . . . . . . . . . . . . . . . . . . 621

Format de chaîne. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 622Points de suivi (TPT). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625

Format de chaîne. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625

Annexe AAttributs communs Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 629

Valeurs immédiates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 629Conversions de données . . . . . . . . . . . . . . . . . . . . . . . . . . 629

SINT ou INT vers DINT . . . . . . . . . . . . . . . . . . . . . . . . 631Nombre entier vers REAL . . . . . . . . . . . . . . . . . . . . . . . 633DINT vers SINT ou INT . . . . . . . . . . . . . . . . . . . . . . . . 634REAL vers nombre entier . . . . . . . . . . . . . . . . . . . . . . . 634

Annexe BAttributs de bloc fonctionnel Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 637

Choix des éléments de bloc fonctionnel. . . . . . . . . . . . . . . 637Verrouillage de données . . . . . . . . . . . . . . . . . . . . . . . . . . 638Ordre d’exécution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 640

Résolution d’une boucle. . . . . . . . . . . . . . . . . . . . . . . . 641Résolution du flux de données entre deux blocs . . . . . . 642Créer une temporisation d’une scrutation . . . . . . . . . . . 643Récapitulatif. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 643

Réponses du bloc fonctionnel aux conditions de dépassement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644Modes de temporisation . . . . . . . . . . . . . . . . . . . . . . . . . . 645

Paramètres d’instruction communs pour les modes de temporisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 647Présentation des modes de temporisations . . . . . . . . . . 649

Commande Programme/Opérateur . . . . . . . . . . . . . . . . . . 650

10 Publication 1756-RM003K-FR-P – Juillet 2008

Page 11: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Table des matières

Annexe CProgrammation en texte structuré Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655

Syntaxe du texte structuré . . . . . . . . . . . . . . . . . . . . . . . . . 655Affectations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657

Spécification d’une affectation non rémanente. . . . . . . . 658Affectation d’un caractère ASCII à une chaîne . . . . . . . . 659

Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 659Utilisation d’opérateurs et de fonctions arithmétiques . . 661Utilisation d’opérateurs relationnels . . . . . . . . . . . . . . . 662Utilisation des opérateurs logiques . . . . . . . . . . . . . . . . 664Utilisation d’opérateurs sur bits. . . . . . . . . . . . . . . . . . . 665Déterminer l’ordre d’exécution . . . . . . . . . . . . . . . . . . . 665

Instructions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 666Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 667

Certains mots-clés sont réservés à une utilisation ultérieure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 667

IF...THEN (si...alors) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 668CASE...OF (cas...de) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671FOR…DO (pour...faire) . . . . . . . . . . . . . . . . . . . . . . . . . . . 674WHILE…DO (pendant...faire) . . . . . . . . . . . . . . . . . . . . . . 677REPEAT…UNTIL (répéter...jusqu’à) . . . . . . . . . . . . . . . . . . 680Commentaires. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 683

Index Codes des caractères ASCII. . . . . . . . . . . . . . . . . . . . . . 693

Publication 1756-RM003K-FR-P – Juillet 2008 11

Page 12: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Table des matières

Notes:

12 Publication 1756-RM003K-FR-P – Juillet 2008

Page 13: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Sommaire des modifications

Introduction Ce document contient des informations actualisées et nouvelles. Pour trouver ces informations, recherchez les barres de révision comme celle qui se trouve à côté de ce paragraphe.

Informations actualisées Ce document contient les changements suivants :

Modification Page

Chapitre 1 – Instructions d’alarme TOR (ALMD) et d’alarme analogique (ALMA) regroupées dans un seul chapitre. Ajout d’informations sur la configuration, la chaîne de message et l’état.

29

Chapitre 4 – Ajout de nouveaux attributs d’objet automate GSV/SSV. 179

Chapitre 20 – Ajout d’instructions de débogage (PPT, TPT). 621

13Publication 1756-RM003K-FR-P – Juillet 2008 13

Page 14: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Sommaire des modifications

Notes :

14 Publication 1756-RM003K-FR-P – Juillet 2008

Page 15: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Repérage des instructions

Où trouver une instructionUtilisez cette section pour trouver des informations sur les instructions Logix (les instructions grisées sont disponibles dans d’autres manuels). Cette section indique également quels langages de programmation sont disponibles pour les instructions.

Si le tableau indique : L’instruction est contenue dans :

un numéro de page ce manuel

une commande de mouvement Logix5000 Controllers Motion Instruction Set Reference Manual, publication 1756-RM007

PhaseManager PhaseManager User Manual, publication LOGIX-UM001

une commande de procédé Logix5000 Controllers Process Control and Drives Instruction Set Reference Manual, publication 1756-RM006

Publication 1756-RM003K-FR-P – Juillet 2008 15

Page 16: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Repérage des instructions

Instruction Emplacement Langages

ABLTest ASCII pour ligne de mémoire tampon

603 Logique à relaisTexte structuré

ABSValeur absolue

277 Logique à relaisTexte structuréBloc fonctionnel

ACBCaractères ASCII en mémoire tampon

567 Logique à relaisTexte structuré

ACLEffacer la mémoire tampon ASCII

569 Logique à relaisTexte structuré

ACSCosinus d’arc

526 Logique à relaisTexte structuréBloc fonctionnel

ADDAddition

252 Logique à relaisTexte structuréBloc fonctionnel

AFIInstruction toujours fausse

452 Logique à relais

AHLLignes d’échange ASCII

571 Logique à relaisTexte structuré

ALMAlarme

Commande de procédé

Texte structuréBloc fonctionnel

ALMAAlarme analogique

42 Logique à relaisTexte structuréBloc fonctionnel

ALMDAlarme TOR

30 Logique à relaisTexte structuréBloc fonctionnel

ANDET sur bits

304 Logique à relaisTexte structuréBloc fonctionnel

ARDLecture ASCII

575 Logique à relaisTexte structuré

ARLLigne de lecture ASCII

579 Logique à relaisTexte structuré

ASNSinus d’arc

523 Logique à relaisTexte structuréBloc fonctionnel

ATNTangente d’arc

529 Logique à relaisTexte structuréBloc fonctionnel

AVEMoyenne fichier

362 Logique à relais

AWAAjout d’écriture ASCII

583 Logique à relaisTexte structuré

AWTEcriture ASCII

588 Logique à relaisTexte structuré

BANDET booléen

316 Texte structuréBloc fonctionnel

BNOTNON booléen

325 Texte structuréBloc fonctionnel

BOROU booléen

319 Texte structuréBloc fonctionnel

BPTPoints de rupture

621 Logique à relais

BRKRupture

469 Logique à relais

BSLDécalage binaire à gauche

382 Logique à relais

BSRDécalage binaire à droite

386 Logique à relais

BTDRépartition champ de bits

295 Logique à relais

BTDTRépartition champ de bits avec cible

295 Texte structuréBloc fonctionnel

BTRMessage

144 Logique à relaisTexte structuré

BTWMessage

144 Logique à relaisTexte structuré

BXOROU exclusif booléen

322 Texte structuréBloc fonctionnel

CCCommande coordonnée

Commande de procédé

Texte structuréBloc fonctionnel

CLREffacer

298 Logique à relaisTexte structuré

CMPComparer

206 Logique à relais

CONCATConcaténation de chaîne

595 Logique à relaisTexte structuré

COPCopie de fichier

352 Logique à relaisTexte structuré

COSCosinus

517 Logique à relaisTexte structuréBloc fonctionnel

CPSCopie synchrone de fichier

352 Logique à relaisTexte structuré

CPTCalculer

248 Logique à relais

CTDComptage dégressif

132 Logique à relais

CTUComptage progressif

128 Logique à relais

CTUDComptage progressif/dégressif

136 Texte structuréBloc fonctionnel

D2SDDispositif TOR 2 états

Commande de procédé

Texte structuréBloc fonctionnel

D3SDDispositif TOR 3 états

Commande de procédé

Texte structuréBloc fonctionnel

Instruction Emplacement Langages

16 Publication 1756-RM003K-FR-P – Juillet 2008

Page 17: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Repérage des instructions

DDTDétection de diagnostic

481 Logique à relais

DEDTTemps mort

Commande de procédé

Texte structuréBloc fonctionnel

DEGDegrés

544 Logique à relaisTexte structuréBloc fonctionnel

DELETEEffacer une chaîne

597 Logique à relaisTexte structuré

DERVDérivé

Commande de procédé

Texte structuréBloc fonctionnel

DFFBasculeur D

Commande de procédé

Texte structuréBloc fonctionnel

DIVDivision

261 Logique à relaisTexte structuréBloc fonctionnel

DTOSDINT vers chaîne

613 Logique à relaisTexte structuré

DTRTransition de données

488 Logique à relais

EOTFin de transition

454 Logique à relaisTexte structuré

EQUEgal à

211 Logique à relaisTexte structuréBloc fonctionnel

ESELSélection évoluée

Commande de procédé

Texte structuréBloc fonctionnel

EVENTDéclenchement sur tâche événementielle

460 Logique à relaisTexte structuré

FALArithmétique et logique sur fichier

333 Logique à relais

FBCComparaison de bit de fichier

474 Logique à relais

FFLChargement FIFO

390 Logique à relais

FFUDéchargement FIFO

396 Logique à relais

FGENGénérateur de fonction

Commande de procédé

Texte structuréBloc fonctionnel

FINDRechercher une chaîne

599 Logique à relaisTexte structuré

FLLRemplir un fichier

358 Logique à relais

FORPour

466 Logique à relais

FRDConversion en nombre entier

553 Logique à relaisBloc fonctionnel

Instruction Emplacement Langages

FSCRecherche et comparaison de fichier

344 Logique à relais

GEQSupérieur ou égal à

215 Logique à relaisTexte structuréBloc fonctionnel

GRTSupérieur à

219 Logique à relaisTexte structuréBloc fonctionnel

GSVObtenir valeur système

176 Logique à relaisTexte structuré

HLLLimite supérieure/inférieure

Commande de procédé

Texte structuréBloc fonctionnel

HPFFiltre passe haut

Commande de procédé

Texte structuréBloc fonctionnel

ICONConnecteur de câble d’entrée

637 Bloc fonctionnel

IMCCommande de modèle interne

Commande de procédé

Texte structuréBloc fonctionnel

INSERTInsertion d’une chaîne

601 Logique à relaisTexte structuré

INTGIntégrateur

Commande de procédé

Texte structuréBloc fonctionnel

IOTSortie immédiate

201 Logique à relaisTexte structuré

IREFRéférence d’entrée

637 Bloc fonctionnel

JKFFBasculeur JK

Commande de procédé

Texte structuréBloc fonctionnel

JMPSaut vers étiquette

430 Logique à relais

JSRSaut vers sous-programme

432 Logique à relaisTexte structuréBloc fonctionnel

JXRSaut vers programme externe

443 Logique à relais

LBLEtiquette

430 Logique à relais

LDL2Avance-retard de deuxième ordre

Commande de procédé

Texte structuréBloc fonctionnel

LDLGAvance-retard

Commande de procédé

Texte structuréBloc fonctionnel

LEQInférieur ou égal à

223 Logique à relaisTexte structuréBloc fonctionnel

LESInférieur à

227 Logique à relaisTexte structuréBloc fonctionnel

Instruction Emplacement Langages

Publication 1756-RM003K-FR-P – Juillet 2008 17

Page 18: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Repérage des instructions

LFLChargement LIFO

402 Logique à relais

LFUDéchargement LIFO

408 Logique à relais

LIMLimite

231 Logique à relaisBloc fonctionnel

LNLogarithme naturel

534 Logique à relaisTexte structuréBloc fonctionnel

LOGLogarithme décimal

(1) Logique à relaisTexte structuréBloc fonctionnel

LOWERBas de casse

619 Logique à relaisTexte structuré

LPFFiltre passe bas

Commande de procédé

Texte structuréBloc fonctionnel

MAATAppliquer les réglages d’axe

Mouvement Logique à relaisTexte structuré

MAFRRAZ des défauts d’axe

Mouvement Logique à relaisTexte structuré

MAGSynchronisation d’axes

Mouvement Logique à relaisTexte structuré

MAHDAppliquer les diagnostics de raccordement

Mouvement Logique à relaisTexte structuré

MAHPrise d’origine d’axe

Mouvement Logique à relaisTexte structuré

MAJDéplacement d’axe en marche par à-coups

Mouvement Logique à relaisTexte structuré

MAMMouvement de positionnement d’axe

Mouvement Logique à relaisTexte structuré

MAOCArmement sortie de came de mouvement

Mouvement Logique à relaisTexte structuré

MAPCCame de position d’axe

Mouvement Logique à relaisTexte structuré

MARArmement de registration d’axe

Mouvement Logique à relaisTexte structuré

MASDArrêt d’axe immédiat

Mouvement Logique à relaisTexte structuré

MASArrêt d’axe contrôlé

Mouvement Logique à relaisTexte structuré

MASRRAZ arrêt d’axe immédiat

Mouvement Logique à relaisTexte structuré

MATCCame d’axe temporelle

Mouvement Logique à relaisTexte structuré

Instruction Emplacement Langages

MAVEMoyenne mobile

Commande de procédé

Texte structuréBloc fonctionnel

MAWArmement surveillance de position d’axe

Mouvement Logique à relaisTexte structuré

MAXCCapture maximum

Commande de procédé

Texte structuréBloc fonctionnel

MCCDChangement coordonné des dynamiques du mouvement

Mouvement Logique à relaisTexte structuré

MCCMMouvement circulaire coordonné

Mouvement Logique à relaisTexte structuré

MCCPCalcul du profil d’une came de mouvement

Mouvement Logique à relaisTexte structuré

MCDChangement des dynamiques du mouvement

Mouvement Logique à relaisTexte structuré

MCLMMouvement linéaire coordonné

Mouvement Logique à relaisTexte structuré

MCRRAZ de commande principale

448 Logique à relais

MCSDArrêt immédiat coordonné du mouvement

Mouvement Logique à relaisTexte structuré

MCSArrêt coordonné du mouvement

Mouvement Logique à relaisTexte structuré

MCSRRAZ d’arrêt immédiat coordonné du mouvement

Mouvement Logique à relaisTexte structuré

MCTTransformation de mouvements coordonnés

Mouvement Logique à relaisTexte structuré

MCTPCalcul de transformation de position de mouvement

Mouvement Logique à relaisTexte structuré

MDFCommande directe du mouvement arrêté

Mouvement Logique à relaisTexte structuré

MDOCDésarmement de sortie de came de mouvement

Mouvement Logique à relaisTexte structuré

MDOCommande directe d’axe activée

Mouvement Logique à relaisTexte structuré

MDRDésarmement de registration d’axe

Mouvement Logique à relaisTexte structuré

Instruction Emplacement Langages

18 Publication 1756-RM003K-FR-P – Juillet 2008

Page 19: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Repérage des instructions

MDWDésarmement de surveillance de position

Mouvement Logique à relaisTexte structuré

MEQMasque égal à

237 Logique à relaisTexte structuréBloc fonctionnel

MGSDArrêt immédiat de groupe d’axes

Mouvement Logique à relaisTexte structuré

MGSArrêt contrôlé de groupe d’axes

Mouvement Logique à relaisTexte structuré

MGSPEchantillonnage des positions d’un groupe d’axes

Mouvement Logique à relaisTexte structuré

MGSRRAZ arrêt immédiat d’un groupe d’axes

Mouvement Logique à relaisTexte structuré

MIDChaîne médiane

603 Logique à relaisTexte structuré

MINCCapture minimum

Commande de procédé

Texte structuréBloc fonctionnel

IMMCCommande multivariable modulaire

Commande de procédé

Texte structuréBloc fonctionnel

MODModulo

266 Logique à relaisTexte structuréBloc fonctionnel

MOVTransfert

283 Logique à relais

MRATExécution du mouvement de réglage d’axe

Mouvement Logique à relaisTexte structuré

MRHDExécution des diagnostics de raccordement d’axe

Mouvement Logique à relaisTexte structuré

MRPRedéfinition des positions d’axe

Mouvement Logique à relaisTexte structuré

MSFDésactivation d’axe asservi

Mouvement Logique à relaisTexte structuré

MSGMessage

144 Logique à relaisTexte structuré

MSOActivation d’axe asservi

Mouvement Logique à relaisTexte structuré

MSTDEcart type en mouvement

Commande de procédé

Texte structuréBloc fonctionnel

MULMultiplication

258 Logique à relaisTexte structuréBloc fonctionnel

MUXMultiplexeur

Commande de procédé

Bloc fonctionnel

Instruction Emplacement Langages

MVMTransfert avec masque

285 Logique à relais

MVMTTransfert masqué avec cible

288 Texte structuréBloc fonctionnel

NEGNégation

274 Logique à relaisTexte structuréBloc fonctionnel

NEQDifférent de

242 Logique à relaisTexte structuréBloc fonctionnel

NOPPas d’opération

453 Logique à relais

NOTNON sur bits

313 Logique à relaisTexte structuréBloc fonctionnel

NTCHFiltre réjecteur

Commande de procédé

Texte structuréBloc fonctionnel

OCONConnecteur de câble de sortie

637 Bloc fonctionnel

ONSImpulsion unique

88 Logique à relais

OROU sur bits

307 Logique à relaisTexte structuréBloc fonctionnel

OREFRéférence de sortie

637 Bloc fonctionnel

OSFIImpulsion sur front descendant avec entrée

99 Texte structuréBloc fonctionnel

OSFImpulsion sur front descendant

94 Logique à relais

OSRIImpulsion sur front montant avec entrée

96 Texte structuréBloc fonctionnel

OSRImpulsion sur front montant

91 Logique à relais

OTEActivation de sortie

82 Logique à relais

OTLVerrouillage de sortie

84 Logique à relais

OTUDéverrouillage de sortie

86 Logique à relais

PATTAttacher à la phase d’équipement

PhaseManager Logique à relaisTexte structuré

PCLFEffacer défaillance de phase d’équipement

PhaseManager Logique à relaisTexte structuré

Instruction Emplacement Langages

Publication 1756-RM003K-FR-P – Juillet 2008 19

Page 20: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Repérage des instructions

PCMDCommande de phase d’équipement

PhaseManager Logique à relaisTexte structuré

PDETDétacher de la phase d’équipement

PhaseManager Logique à relaisTexte structuré

PFLDéfaillance de phase d’équipement

PhaseManager Logique à relaisTexte structuré

PIDEPID évolué

Commande de procédé

Texte structuréBloc fonctionnel

PIDProportionnel, intégral et dérivé

491 Logique à relaisTexte structuré

PIProportionnel + intégral

Commande de procédé

Texte structuréBloc fonctionnel

PMULMultiplicateur d’impulsion

Commande de procédé

Texte structuréBloc fonctionnel

POSPImpulsion proportionnelle

Commande de procédé

Texte structuréBloc fonctionnel

POVRCommande de contournement de phase d’équipement

PhaseManager Logique à relaisTexte structuré

PPDPause de phase d’équipement

PhaseManager Logique à relaisTexte structuré

PRNPNouveaux paramètres de phase d’équipement

PhaseManager Logique à relaisTexte structuré

PSCEtat de phase terminé

PhaseManager Logique à relaisTexte structuré

PXRQRequête externe de phase d’équipement

PhaseManager Logique à relaisTexte structuré

RADRadians

547 Logique à relaisTexte structuréBloc fonctionnel

RESDRéinitialisation dominante

Commande de procédé

Texte structuréBloc fonctionnel

RESRéinitialisation

140 Logique à relais

RETRetour

432 et 470 Logique à relaisTexte structuréBloc fonctionnel

RLIMLimiteur de variation

Commande de procédé

Texte structuréBloc fonctionnel

RMPSRampe/palier

Commande de procédé

Texte structuréBloc fonctionnel

RTOTemporisateur rémanent

112 Logique à relais

Instruction Emplacement Langages

RTORTemporisateur rémanent avec RAZ

124 Texte structuréBloc fonctionnel

RTOSREAL vers chaîne

615 Logique à relaisTexte structuré

SBRSous-programme

432 Logique à relaisTexte structuréBloc fonctionnel

SCLEchelle

Commande de procédé

Texte structuréBloc fonctionnel

SCRVCourbe en S

Commande de procédé

Texte structuréBloc fonctionnel

SELSélection

Commande de procédé

Bloc fonctionnel

SETDActiver dominant

Commande de procédé

Texte structuréBloc fonctionnel

SFPPause SFC

456 Logique à relaisTexte structuré

SFRRAZ SFC

458 Logique à relaisTexte structuré

SINSinus

514 Logique à relaisTexte structuréBloc fonctionnel

SIZETaille en éléments

377 Logique à relaisTexte structuré

SNEGInverseur de signe

Commande de procédé

Texte structuréBloc fonctionnel

SOCAutomate de deuxième ordre

Commande de procédé

Texte structuréBloc fonctionnel

SQIEntrée séquenceur

416 Logique à relais

SQLChargement séquenceur

424 Logique à relais

SQOSortie séquenceur

420 Logique à relais

SQRRacine carrée

270 Logique à relaisBloc fonctionnel

SQRTRacine carrée

270 Texte structuré

SRTTri de fichier

367 Logique à relaisTexte structuré

SRTPCommande impulsionnelle de chauffage/refroidissement

Commande de procédé

Texte structuréBloc fonctionnel

SSUMSommation à sélection

Commande de procédé

Texte structuréBloc fonctionnel

SSVEtablir une valeur système

176 Logique à relaisTexte structuré

Instruction Emplacement Langages

20 Publication 1756-RM003K-FR-P – Juillet 2008

Page 21: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Repérage des instructions

Publication 1756-RM003K-FR-P – Juillet 2008 21

STDEcart type de fichier

372 Logique à relais

STODChaîne vers DINT

608 Logique à relaisTexte structuré

STORChaîne vers REAL

611 Logique à relaisTexte structuré

SUBSoustraction

255 Logique à relaisTexte structuréBloc fonctionnel

SWPBPermutation d’octet

300 Logique à relaisTexte structuré

TANTangente

520 Logique à relaisTexte structuréBloc fonctionnel

TNDFin temporaire

446 Logique à relais

TODConversion en BCD

550 Logique à relaisBloc fonctionnel

TOFRTemporisateur au déclenchement avec RAZ

120 Texte structuréBloc fonctionnel

TOFTemporisateur au déclenchement

108 Logique à relais

TONRTemporisateur à l’enclenchement avec RAZ

116 Texte structuréBloc fonctionnel

TONTemporisateur à l’enclenchement

104 Logique à relais

TOTTotalisateur

Commande de procédé

Texte structuréBloc fonctionnel

TPTPoints de traçage

625 Logique à relais

TRNTroncation

555 Logique à relaisBloc fonctionnel

TRUNCTroncation

555 Texte structuré

UIDDésactivation d’interruption par l’utilisateur

450 Logique à relaisTexte structuré

UIEActivation d’interruption par l’utilisateur

450 Logique à relaisTexte structuré

Instruction Emplacement Langages

UPDNTotalisateur progressif/dégressif

Commande de procédé

Texte structuréBloc fonctionnel

UPPERHaut de casse

617 Logique à relaisTexte structuré

XICExaminer si fermé

78 Logique à relais

XIOExaminer si ouvert

80 Logique à relais

XOROU exclusif sur bits

310 Logique à relaisTexte structuréBloc fonctionnel

XPYX à la puissance Y

540 Logique à relaisTexte structuréBloc fonctionnel

(1)

Instruction Emplacement Langages

Page 22: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Repérage des instructions

Notes :

22 Publication 1756-RM003K-FR-P – Juillet 2008

Page 23: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Préface

Automates Logix5000™ – Instructions

Introduction Ce manuel fait partie d’une série de manuels d’instructions pour les produits Logix5000.

A qui s’adresse ce manuel Ce document fournit des informations aux programmeurs sur les instructions disponibles avec un automate Logix. Vous devez connaître la façon dont un automate Logix enregistre et traite les données.

Si vous êtes un programmeur novice, lisez toutes les informations sur une instruction avant de l’utiliser. Les programmeurs expérimentés peuvent se reporter aux informations sur les instructions pour vérifier des détails.

Tâche/Objet Documents

Programmation de l’automate pour les applications séquentielles

Automates Logix5000 – Instructions – Manuel de référence, publication 1756-RM003

Programmation de l’automate pour les applications de procédé ou de variation de vitesse

Logix5000 Controllers Process Control and Drives Instructions Reference Manual, publication 1756-RM006

Programmation de l’automate pour les applications de mouvement

Logix5000 Controllers Motion Instruction Set Reference Manual, publication 1756-RM007

Programmation de l’automate pour l’utilisation des phases d’équipement

PhaseManager User Manual, publication LOGIX-UM001

Importation d’un fichier texte ou de points dans un projet

Logix5000 Controllers Import/Export Reference Manual, publication 1756-RM084

Exportation d’un projet ou de points vers un fichier texte

Conversion d’une application PLC-5 ou SLC 500 en une application Logix5000

Logix5550 Controller Converting PLC-5 or SLC 500 Logic to Logix5550 Logic Reference Manual, publication 1756-6.8.5

Ce document

23Publication 1756-RM003K-FR-P – Juillet 2008 23

Page 24: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Automates Logix5000™ – Instructions

Objet de ce manuel Ce manuel fournit une description de chaque instruction.

Les icônes suivantes aident à identifier les informations spécifiques à un langage :

Cette section Fournit ce type d’information

Nom de l’instruction identifie l’instruction

détermine si l’instruction est une instruction d’entrée ou de sortie

Opérandes fait la liste de tous les opérandes de l’instruction

Structure de l’instruction indique les bits et les valeurs d’état de la commande de l’instruction, s’il y en a

Description décrit l’utilisation de l’instruction

définit les différences entre l’activation et la désactivation de l’instruction, si nécessaire

Indicateurs d’état arithmétique

détermine si l’instruction a un effet sur les indicateurs d’état arithmétique

voir l’annexe Attributs communs

Conditions d’erreur détermine si l’instruction génère des défauts mineurs ou majeurs

le cas échéant, définit le type et le code de défaut

Exécution définit la façon dont l’instruction fonctionne

Exemple fournit au moins un exemple de programmation dans chacun des langages de programmation

comprend une description expliquant chaque exemple

si disponible en logique à relais, décrit les opérandes

si disponible en blocs fonctionnels, décrit les opérandes

Les connecteurs affichés sont ceux définis par défaut. Le tableau des opérandes liste tous les connecteurs possibles pour un bloc fonctionnel.

si disponible en texte structuré, décrit les opérandes

Cette icône Indique ce langage de programmation

logique à relais

texte structuré

bloc fonctionnel

24 Publication 1756-RM003K-FR-P – Juillet 2008

Page 25: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Automates Logix5000™ – Instructions

Informations communes à toutes les instructions

Les instructions du Logix5000 ont des attributs communs :

Conventions et terminologie

Activer et effacer

Ce manuel utilise activer et effacer pour définir l’état des bits (booléens) et leurs valeurs (non-booléens) :

Si un opérande ou un paramètre accepte plus d’un type de données, les types de données en gras indiquent les types de données optimum. Une instruction est exécutée plus rapidement et demande moins de mémoire si tous les opérandes de l’instruction utilisent le même type de données optimal, généralement DINT ou REAL.

Pour des informations sur

Voir cette annexe

attributs communs l’annexe Attributs communs définit :

• les indicateurs d’état arithmétique

• les types de données

• les mots-clé

attributs de bloc fonctionnel

l’annexe Attributs de bloc fonctionnel définit :

• la commande en mode programmation et opérateur

• les modes de temporisation

Ce terme Signifie

activer le bit est mis à 1 (ON)

une valeur est attribuée à tout nombre autre que zéro

effacer le bit est mis à 0 (OFF)

tous les bits d’une valeur sont mis à 0

Publication 1756-RM003K-FR-P – Juillet 2008 25

Page 26: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Automates Logix5000™ – Instructions

Condition de ligne de logique à relais

L’automate évalue les instructions de logique à relais selon la condition de la ligne précédant l’instruction (condition d’entrée de la ligne). Selon l’état d’entrée de la ligne et l’instruction, l’automate règle l’état de la ligne suivant l’instruction (condition de sortie de la ligne), ce qui affecte à leur tour toutes les instructions suivantes.

Si l’état d’entrée de la ligne vers une instruction d’entrée est vrai, l’automate évalue l’instruction et règle l’état de sortie de la ligne selon le résultat de l’instruction. Si l’instruction finit en état vrai, l’état de sortie de la ligne est vrai ; si l’instruction finit en état faux, l’état de sortie de la ligne est faux.

L’automate pré-scrute également les instructions. La pré-scrutation est une scrutation spéciale de tous les sous-programmes dans l’automate. L’automate scrute tous les sous-programmes principaux et secondaires pendant la pré-scrutation, mais ignore les sauts qui peuvent éviter l’exécution d’instructions. L’automate exécute toutes les boucles FOR et les appels de sous-programmes. Si un sous-programme est appelé plus d’une fois, il est exécuté chaque fois qu’il est appelé. L’automate utilise la pré-scrutation et les instructions de logique à relais pour réinitialiser les E/S non rémanentes et les valeurs internes.

Pendant la pré-scrutation, les valeurs d’entrées ne sont pas actualisées et les sorties ne sont pas mises à jour. Les conditions suivantes génèrent une pré-scrutation :

• le passage du mode Programmation (Program) au mode Exécution (Run) ;

• le passage automatique au mode Exécution à la mise sous tension.

La pré-scrutation d’un programme ne se fait pas si :

• le programme devient planifié pendant que l’automate est en marche ;

• le programme n’est pas planifié lorsque l’automate passe en mode Exécution (Run).

instruction d’entrée

condition entrée ligne

instruction de sortie

condition sortie ligne

26 Publication 1756-RM003K-FR-P – Juillet 2008

Page 27: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Automates Logix5000™ – Instructions

Etats des blocs fonctionnels

L’automate évalue les instructions de bloc fonctionnel en fonction de l’état de diverses conditions.

Chaque instruction de bloc fonctionnel comprend également des paramètres EnableIn et EnableOut :

• les instructions de bloc fonctionnel sont exécutées normalement lorsque EnableIn est activé ;

• lorsque EnableIn est effacé, l’instruction de bloc fonctionnel exécute une logique de pré-scrutation, une logique de post-scrutation ou saute simplement l’exécution normale de l’algorithme ;

• EnableOut est identique à EnableIn ; cependant, si l’exécution du bloc fonctionnel détecte un dépassement, EnableOut est également effacé ;

• l’exécution du bloc fonctionnel reprend où elle a été interrompue lorsque EnableIn passe de effacé à activé. Cependant, il y a certaines instructions de bloc fonctionnel qui spécifient des fonctionnalités spéciales, telles que la réinitialisation, lorsque EnableIn passe de effacé à activé. Pour les instructions de bloc fonctionnel avec des paramètres sur base de temps, lorsque le mode de temporisation est sur Oversample, l’instruction reprend toujours où elle a été interrompue lorsque EnableIn passe de effacé à activé.

Si le paramètre EnableIn n’est pas câblé, l’instruction s’exécute toujours normalement et EnableIn reste activé. Si vous effacez EnableIn, il devient activé à l’exécution suivante de l’instruction.

IMPORTANT Lorsque vous programmez en blocs fonctionnels, limitez la plage des unités procédé à +/–10+/–15,, car les calculs internes en virgule flottante sont effectués en utilisant le format de virgule flottante simple précision. Les unités procédé en dehors de cette plage peuvent entraîner une perte de précision si les résultats approchent les limites du format en virgule flottante simple précision (+/–10+/–38).

Condition possible Description

pré-scrutation La pré-scrutation des sous-programmes de blocs fonctionnels est la même que pour les sous-programmes de logique à relais. La seule différence est que le paramètre EnableIn de chaque instruction de bloc fonctionnel est effacé pendant la pré-scrutation.

première scrutation de l’instruction

La première scrutation de l’instruction est la première fois qu’une instruction est exécutée après la pré-scrutation. L’automate utilise la première scrutation de l’instruction pour lire les entrées courantes et pour déterminer l’état approprié dans lequel se mettre.

première exécution de l’instruction

La première exécution de l’instruction est la première fois qu’une instruction est exécutée avec une nouvelle valeur de structure de données. L’automate utilise la première exécution de l’instruction pour générer des coefficients et d’autres données qui ne changent pas pour un bloc fonctionnel après le chargement initial.

Publication 1756-RM003K-FR-P – Juillet 2008 27

Page 28: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Automates Logix5000™ – Instructions

Notes :

28 Publication 1756-RM003K-FR-P – Juillet 2008

Page 29: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 1

Instructions Logix d’alarmes et d’événements FactoryTalk(ALMD, ALMA)

Introduction Ces instructions d’alarme Logix sont disponibles en logique à relais, en texte structuré et en diagramme de blocs fonctionnels. Lorsqu’elles sont utilisées avec le logiciel FactoryTalk View SE, version 5.0 et ultérieure, ces instructions créent un système d’alarmes combiné avec votre progiciel de visualisation. L’automate détecte les conditions d’alarme et diffuse les événements vers les serveurs d’alarmes et d’événements FactoryTalk View, ces derniers propagent les alarmes vers les clients Factory Talk View SE qui sont abonnés pour recevoir les avertissements.

Si vous voulez Utilisez cette instruction Disponible dans ces langages Voir page

détecter les alarmes sur la base de conditions booléennes (vrai/faux)

ALMD Logique à relais

Texte structuré

Bloc fonctionnel

30

détecter les alarmes sur la base du niveau ou de la vitesse de variation d’une valeur

ALMA Logique à relais

Texte structuré

Bloc fonctionnel

42

29Publication 1756-RM003K-FR-P – Juillet 2008 29

Page 30: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 1 Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA)

Alarme TOR (ALMD) L’instruction ALMD détecte les alarmes en se basant sur des conditions booléennes (vrai/faux). Les paramètres de commande du programme (Prog) et opérateur (Oper) fournissent une interface pour les commandes d’alarme.

Opérandes :

Logique à relais

En logique à relais, l’entrée de condition d’alarme (In) est obtenue à partir de la condition de ligne.

Texte structuré

Les opérandes sont les mêmes que pour l’instruction ALMD en logique à relais, avec quelques exceptions indiquées ci-dessus.

Opérande Type Format Description

Point ALMD ALARM_DIGITAL Structure Structure ALMD.

In BOOL PointImmédiat

Texte structuré uniquement.

La valeur est copiée dans In lorsque l’instruction est exécutée. La valeur d’entrée de l’alarme est comparée pour déterminer si une alarme est présente.

ProgAck BOOL PointImmédiat

La valeur est copiée dans ProgAck lorsque l’instruction est exécutée. Lors de la transition d’effacer à activé, acquitte l’alarme (si un acquittement est requis).

ProgReset BOOL PointImmédiat

La valeur est copiée dans ProgReset lorsque l’instruction est exécutée. Lors de la transition d’effacer à activé, réinitialise l’alarme (le cas échéant).

ProgDisable BOOL PointImmédiat

La valeur est copiée dans ProgDisable lorsque l’instruction est exécutée. Lorsqu’activé, désactive l’alarme (ne supplante pas les commandes d’activation).

ProgEnable BOOL PointImmédiat

La valeur est copiée dans ProgEnable lorsque l’instruction est exécutée. Lorsqu’activé, active l’alarme (prioritaire par rapport aux commandes de désactivation).

MinDurationPRE DINT Immédiat Logique à relais uniquement.

Définit la durée pendant laquelle la condition d’alarme doit être présente avant d’être signalée (en millisecondes).

MinDurationACC DINT Immédiat Logique à relais uniquement.

Indique le nombre de millisecondes écoulées depuis que la condition d’alarme est présente.

ALMD(ALMD, In, ProgAck, ProgReset, ProgDisable, ProgEnable);

30 Publication 1756-RM003K-FR-P – Juillet 2008

Page 31: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA) Chapitre 1

Bloc fonctionnel

Structure ALARM_DIGITAL

Opérande Type Format Description

Point ALMD ALARM_DIGITAL Structure Structure ALMD.

Paramètre d’entrée Type de données

Description

EnableIn BOOL Logique à relais :

Correspond à l’état de la ligne. N’affecte pas le traitement.

Bloc fonctionnel :

Si désactivé, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Lorsqu’activé, l’instruction est exécutée.

Réglage par défaut activé.

Texte structuré :

Pas d’effet. L’instruction est toujours exécutée.

In BOOL Entrée du signal TOR vers l’instruction.

Réglage par défaut désactivé.

Logique à relais :

Suit l’état de la ligne. Activé si l’état de la ligne est vrai. Désactivé si l’état de la ligne est faux.

Texte structuré :

Copié à partir de l’opérande d’instruction.

InFault BOOL Indicateur de mauvaise santé pour l’entrée. L’application utilisateur peut activer InFault pour indiquer que le signal d’entrée présente une erreur. Lorqu’activé, l’instruction active InFaulted (Status.1). Lorqu’effacé, l’instruction efface InFaulted (Status.1). Dans les deux cas, l’instruction continue d’évaluer In pour les conditions d’alarme.

Le réglage par défaut est effacé (bonne santé).

Condition BOOL Définit comment l’alarme est activée. Lorsque Condition est activé, la condition d’alarme est activée si In est activé. Lorsque Condition est effacé, la condition d’alarme est activée si In est effacé.

Réglage par défaut activé.

AckRequired BOOL Définit si l’acquittement d’alarme est requis. Lorsqu’activé, l’acquittement est requis. Lorqu’effacé, l’acquittement n’est pas requis et Acked est toujours activé.

Réglage par défaut activé.

Publication 1756-RM003K-FR-P – Juillet 2008 31

Page 32: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 1 Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA)

Latched BOOL Définit si l’alarme est verrouillée. Les alarmes verrouillées restent InAlarm lorsque la condition d’alarme devient fausse, et jusqu’à ce qu’une commande de réinitialisation (Reset) soit reçue. Lorsqu’activé, l’alarme est verrouillée. Lorsqu’effacé, l’alarme est déverrouillée.

Une alarme verrouillée ne peut être réinitialisée que lorsque la condition d’alarme est fausse.

Réglage par défaut effacé.

ProgAck BOOL Activé par le programme utilisateur pour acquitter l’alarme. Nécessite une transition d’effacer à activé lorsque l’alarme est non acquittée.

Réglage par défaut effacé.

Logique à relais :

Copié à partir de l’opérande d’instruction.

Texte structuré :

Copié à partir de l’opérande d’instruction.

OperAck BOOL Activé par l’interface opérateur pour acquitter l’alarme. Nécessite une transition d’effacer à activé lorsque l’alarme est non acquittée. L’instruction efface ce paramètre.

Réglage par défaut effacé.

ProgReset BOOL Activé par le programme utilisateur pour réinitialiser l’alarme. Nécessite une transition d’effacé à activé lorsque l’alarme est InAlarm et que la condition In ne présente pas d’alarme.

Réglage par défaut effacé.

Logique à relais :

Copié à partir de l’opérande d’instruction.

Texte structuré :

Copié à partir de l’opérande d’instruction.

OperReset BOOL Activé par l’interface opérateur pour réinitialiser l’alarme. Nécessite une transition d’effacé à activé lorsque l’alarme est InAlarm et que la condition In ne présente pas d’alarme. L’alarme efface ce paramètre.

Réglage par défaut effacé.

ProgSuppress BOOL Activé par le programme utilisateur pour supprimer l’alarme.

Réglage par défaut effacé.

OperSuppress BOOL Activé par l’interface opérateur pour supprimer l’alarme. L’alarme efface ce paramètre.

Réglage par défaut effacé.

ProgUnsuppress BOOL Activé par le programme utilisateur pour annuler la suppression de l’alarme. Prioritaire par rapport aux commandes de suppression.

Réglage par défaut effacé.

OperUnsuppress BOOL Activé par l’interface opérateur pour annuler la suppression de l’alarme. Prioritaire par rapport aux commandes de suppression. L’alarme efface ce paramètre.

Réglage par défaut effacé.

Paramètre d’entrée Type de données

Description

32 Publication 1756-RM003K-FR-P – Juillet 2008

Page 33: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA) Chapitre 1

ProgDisable BOOL Activé par le programme utilisateur pour désactiver l’alarme.

Réglage par défaut effacé.

Logique à relais :

Copié à partir de l’opérande d’instruction.

Texte structuré :

Copié à partir de l’opérande d’instruction.

OperDisable BOOL Activé par l’interface opérateur pour désactiver l’alarme. L’alarme efface ce paramètre.

Réglage par défaut effacé.

ProgEnable BOOL Activé par le programme utilisateur pour activer l’alarme. Prioritaire par rapport à la commande de désactivation.

Réglage par défaut effacé.

Logique à relais :

Copié à partir de l’opérande d’instruction.

Texte structuré :

Copié à partir de l’opérande d’instruction.

OperEnable BOOL Activé par l’interface opérateur pour activer l’alarme. Prioritaire par rapport à la commande de désactivation. L’alarme efface ce paramètre.

Réglage par défaut effacé.

AlarmCountReset BOOL Activé par le programme utilisateur pour réinitialiser le compteur d’alarme. Une transition d’effacé à activé remet à zéro le compteur d’alarme.

Réglage par défaut effacé.

UseProgTime BOOL Définit s’il faut utiliser l’horloge de l’automate ou la valeur ProgTime pour dater les événements de changement d’état de l’alarme. Lorsqu’activé, la valeur ProgTime fournit l’horodatage. Lorsqu’effacé, l’horloge de l’automate fournit l’horodatage.

Réglage par défaut effacé.

ProgTime LINT Si UseProgTime est activé, cette valeur est utilisée pour fournir la valeur d’horodatage de tous les événements. Ceci permet à l’application d’appliquer des horodatages obtenus à partir de la source d’alarme, comme un module d’entrées de séquence des événements.

Severity DINT Gravité de l’alarme. Ceci n’affecte pas le traitement des alarmes par l’automate, mais peut être utilisé pour trier et filtrer les fonctions au niveau de l’abonné à l’alarme.

Valable = 1...1000 (1000 = le plus grave ; 1 = le moins grave).

Valeur par défaut = 500.

MinDurationPRE DINT Temps minimum prédéfini (en millisecondes) pendant lequel la condition d’alarme doit rester vraie avant que l’alarme soit marquée comme InAlarm et que la notification d’alarme soit envoyée aux clients. L’automate recueille les données d’alarme dès que la condition d’alarme est détectée ; ainsi, aucune donnée n’est perdue en attendant la fin du temps minimum.

Valable = 0...2 147 483 647.

Valeur par défaut = 0.

Paramètre d’entrée Type de données

Description

Publication 1756-RM003K-FR-P – Juillet 2008 33

Page 34: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 1 Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA)

Paramètre de sortie Type de données

Description

EnableOut BOOL Activation de la sortie.

InAlarm BOOL Etat actif de l’alarme. Activé lorsque l’alarme est active. Effacé lorsque l’alarme n’est pas active (état normal).

Acked BOOL Etat acquitté de l’alarme. Activé lorsque l’alarme est acquittée. Effacé lorsque l’alarme n’est pas acquittée.

Acked est toujours activé lorsque AckRequired est effacé.

InAlarmUnack BOOL Etats actif et acquitté combinés de l’alarme. Activé lorsque l’alarme est active (InAlarm est activé) et non acquittée (Acked est effacé). Effacé lorsque l’alarme est normale (inactive), acquittée ou les deux.

Suppressed BOOL Etat supprimé de l’alarme. Activé lorsque l’alarme est supprimée. Effacé lorsque l’alarme n’est pas supprimée.

Disabled BOOL Etat désactivé de l’alarme. Activé lorsque l’alarme est désactivée. Effacé lorsque l’alarme est activée.

MinDurationACC DINT Temps écoulé depuis que l’alarme a été détectée. Lorsque cette valeur atteint MinDurationPRE, l’alarme est activée (InAlarm est activé) et une notification est envoyée aux clients.

AlarmCount DINT Nombre d’activations de l’alarme (InAlarm est activé). Si la valeur maximale est atteinte, le compteur reste à cette valeur maximale.

InAlarmTime LINT Horodatage de la détection d’alarme.

AckTime LINT Horodatage de l’acquittement d’alarme. Si l’alarme ne requiert pas d’acquittement, cet horodatage est égal à la durée de l’alarme.

RetToNormalTime LINT Horodatage de l’alarme reprenant son état normal.

AlarmCountResetTime LINT Horodatage indiquant quand le compteur de l’alarme a été remis à zéro.

DeliveryER BOOL Erreur de transmission du message de notification d’alarme. Activé lorsqu’il existe une erreur de transmission : soit l’alarme n’a aucun abonné ou au moins un abonné n’a pas reçu le dernier message de changement d’état de l’alarme. Effacé lorsque la transmission a réussi ou est en cours.

DeliveryDN BOOL Transmission du message de notification d’alarme terminée. Activé lorsque la transmission a réussi : l’alarme a au moins un abonné et tous les abonnés ont reçu le dernier message de changement d’état de l’alarme. Effacé lorsque la transmission échoue avant la fin ou est en cours.

DeliveryEN BOOL Etat de la transmission du message de notification d’alarme. Activé lorsque la transmission est en cours. Effacé lorsque la transmission n’est pas en cours.

NoSubscriber BOOL L’alarme n’avait pas d’abonné lors de la tentative de transmission du dernier message. Activé lorsqu’il n’y a pas d’abonné. Effacé lorsqu’il y a au moins un abonné.

NoConnection BOOL Les abonnés de l’alarme n’étaient pas connectés lors de la tentative de transmission du dernier message. Activé lorsque tous les abonnés sont déconnectés. Effacé lorsqu’au moins un abonné est connecté ou lorsqu’il n’y a pas d’abonnés.

CommError BOOL Erreur de communication lors de la transmission d’un message d’alarme. Activé lorsqu’il y a des erreurs de communication et que le nombre maximum de tentatives est atteint. Ceci signifie qu’il y avait un abonné avec une connexion, mais que l’automate n’a pas reçu la confirmation de la transmission du message. Effacé lorsque tous les abonnés connectés confirment la réception du message d’alarme.

AlarmBuffered BOOL Le message d’alarme est mis en mémoire tampon en raison d’une erreur de communication (CommError est activé) ou d’une perte de connexion (NoConnection est activé). Activé lorsque le message est mis en mémoire tampon pour au moins un abonné. Effacé lorsque le message d’alarme n’est pas mis en mémoire tampon.

Subscribers DINT Nombre d’abonnés pour cette alarme.

34 Publication 1756-RM003K-FR-P – Juillet 2008

Page 35: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA) Chapitre 1

Description L’instruction ALMD détecte les alarmes sur la base de conditions booléennes (vrai/faux).

L’instruction ALMD apporte des fonctions complémentaires lorsqu’elle est utilisée avec les logiciels RSLinx Enterprise et FactoryTalk View SE. Vous pouvez afficher les alarmes dans les écrans Sommaire des alarmes (Alarm Summary), Bannière d’alarme (Alarm Banner), Explorateur d’état d’alarme (Alarm Status Explorer) et Visualiseur du journal des alarmes (Alarm Log Viewer) de FactoryTalk View SE.

Le logiciel RSLinx Enterprise s’abonne aux alarmes de l’automate. Utilisez les paramètres de sortie pour surveiller l’instruction afin de voir l’état d’abonnement de l’alarme et pour visualiser les changements d’état de l’alarme. Si une connexion au logiciel RSLinx Enterprise est rompue, l’automate peut mettre les données d’alarme en mémoire tampon pendant un bref moment, jusqu’à la restauration de la connexion.

SubscNotified DINT Nombre d’abonnés notifiés avec succès du dernier changement d’état de l’alarme.

Status DINT Indicateurs d’état combinés :

Status.0 = InstructFault.

Status.1 = InFaulted.

Status.2 = SeverityInv.

InstructFault (Status.0) BOOL Conditions d’erreur d’instruction présentes. Ceci n’est pas une erreur de commande mineure ou majeure. Vérifiez les autres bits d’état pour déterminer ce qui s’est produit.

InFaulted (Status.1) BOOL Le programme utilisateur a activé InFault pour indiquer des données d’entrée de mauvaise qualité. L’alarme continue de surveiller In pour détecter toute condition d’alarme.

SeverityInv (Status.2) BOOL La configuration de gravité de l’alarme n’est pas valable.

Si la gravité est <1, l’instruction utilise Gravité = 1.

Si la gravité est >1000, l’instruction utilise Gravité = 1000.

Paramètre de sortie Type de données

Description

Publication 1756-RM003K-FR-P – Juillet 2008 35

Page 36: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

36

Chapitre 1 Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA)

Schémas d’état lorsque l’acquittement est requis

Latched = True

InAlarm = FalseAcked = True

InAlarm = TrueAcked = False

In = Condition, MinDurationACC >= MinDurationPRE

InAlarm = TrueAcked = True

In != Condition, Reset 2

Ack1

In != Condition, Reset2

Latched = False

InAlarm = FalseAcked = True

InAlarm = TrueAcked = False

In = Condition, MinDurationACC >= MinDurationPRE

In != Condition

InAlarm = FalseAcked = False

InAlarm = TrueAcked = True

In != Condition

Ack1Ack1

In = Condition, MinDurationACC >= MinDurationPRE

1 Alarm can be acked by several different ways: ProgAck, OperAck, clients (RSLogix 5000software, RSView software).

2 Alarm can be reset by several different ways: ProgReset, OperReset, clients (RSLogix 5000software, RSView software).

InAlarm = FauxAcked = Vrai

InAlarm = VraiAcked = Faux

InAlarm = FauxAcked = Faux

InAlarm = VraiAcked = Vrai

In = Condition, MinDurationACC >= Min DurationPRE

Int != Condition

In = Condition, MinDurationACC >= MinDurationPRE

Int != Condition

Ack1 Ack1

Verrouillé = Faux

Verrouillé = Vrai

InAlarm = FauxAcked = Vrai

InAlarm = VraiAcked = Faux

In = Condition, MinDurationACC >= MinDurationPRE

Int != Condition, Reset2

Int != Condition, Reset 2

Ack1

InAlarm = VraiAcked = Vrai

1 L’alarme peut être acquittée de différentes façons : ProgAck, OperAck, clients (logiciel RSLogix 5000, logiciel RSView).

2 L’alarme peut être réinitialisée de différentes façons : ProgReset, OperReset, clients (logiciel RSLogix 5000, logiciel RSView).

Publication 1756-RM003K-FR-P – Juillet 2008

Page 37: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA) Chapitre 1

InAlarm = False InAlarm = True

In = Condition, MinDurationACC >= MinDurationPRE

In != Condition

Acked = True

Latched = False

InAlarm = False InAlarm = True

In = Condition, MinDurationACC >= MinDurationPRE

In != Condition, Reset1

Acked = True

Latched = True

1 Alarm can be reset by several different ways: ProgReset, OperReset, clients (RSLogix 5000software, RSView software)

Schémas d’état lorsque l’acquittement n’est pas requis

Indicateurs d’état arithmétique : Aucuns

Conditions d’erreur : Aucunes

Exécution :

InAlarm = Faux

Int != Condition

InAlarm = Faux

InAlarm = Vrai

InAlarm = Vrai

Acked = Vrai

Acked = Vrai

Int != Condition, Reset1

In = Condition, MinDurationACC >= MinDurationPRE

In = Condition, MinDurationACC >= MinDurationPRE

1 L’alarme peut être réinitialisée de différentes façons : ProgReset, OperReset, clients (logiciel RSLogix 5000, logiciel RSView)

Condition Action logique à relais

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

InAlarm est effacé et Acked est activé.

Les requêtes de l’opérateur, les horodatages et les indicateurs de transmission sont effacés.

L’état d’entrée de la ligne est faux

L’état de sortie de la ligne est réglé sur faux.

EnableIn et EnableOut sont effacés.

Le paramètre In est effacé et l’instruction fait une évaluation pour déterminer l’état de l’alarme.

L’état d’entrée de la ligne est vrai

L’état de sortie de la ligne est réglé sur vrai.

EnableIn et EnableOut sont activés.

Le paramètre In est activé et l’instruction fait une évaluation pour déterminer l’état de l’alarme.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

Verrouillé = Faux

Verrouillé = Vrai

Publication 1756-RM003K-FR-P – Juillet 2008 37

Page 38: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 1 Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA)

ALMD Alarme avec acquittement requis et verrouillée

Condition Action bloc fonctionnel Action texte structuré

Pré-scrutation Les requêtes de l’opérateur, les horodatages et les indicateurs de transmission sont effacés.

InAlarm est effacé et Acked est activé.

Les requêtes de l’opérateur, les horodatages et les indicateurs de transmission sont effacés.

InAlarm est effacé et Acked est activé.

Première scrutation de l’instruction

Aucune. Aucune.

Première exécution de l’instruction

Aucune. Aucune.

EnableIn est effacé L’instruction n’est pas exécutée.

EnableOut est effacé.

L’instruction est exécutée.

EnableOut est toujours activé.

EnableIn est activé L’instruction est exécutée.

EnableOut est activé.

L’instruction est exécutée.

EnableOut est toujours activé.

Post-scrutation Aucune. Aucune.

38 Publication 1756-RM003K-FR-P – Juillet 2008

Page 39: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA) Chapitre 1

ALMD Alarme avec acquittement requis et non verrouillée

ALMD Alarme avec acquittement non requis et verrouillée

Publication 1756-RM003K-FR-P – Juillet 2008 39

Page 40: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 1 Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA)

ALMD Alarme avec acquittement non requis et non verrouillée

Exemple : Deux signaux de panne moteur sont combinés de sorte que si l’un des deux est présent, une alarme de panne moteur est activée. Acquittement de l’alarme par le programme avec transition d’effacé à activé de la valeur du point Motor101Ack. Le programme d’application doit effacer Motor101Ack.

Logique à relais

40 Publication 1756-RM003K-FR-P – Juillet 2008

Page 41: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA) Chapitre 1

Texte structuré

Motor101FaultConditions := Motor101Overtemp OR Motor101FailToStart;

ALMD(Motor101Fault,Motor101FaultConditions,Motor101Ack,0,0,0 );

Bloc fonctionnel

Publication 1756-RM003K-FR-P – Juillet 2008 41

Page 42: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 1 Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA)

Alarme analogique (ALMA) L’instruction ALMA détecte les alarmes en fonction du niveau ou de la vitesse de variation de la valeur analogique. Les paramètres de commande du programme (Prog) et opérateur (Oper) fournissent une interface pour les commandes d’alarme.

Opérandes :

Logique à relais

Opérande Type Format Description

Point ALMA ALARM_ANALOG Structure Structure ALMA.

In REALDINTINTSINT

PointImmédiat

La valeur est copiée dans In lorsque l’instruction est exécutée. La valeur d’entrée de l’alarme est comparée avec les seuils d’alarme pour détecter les conditions d’alarme.

ProgAckAll BOOL PointImmédiat

La valeur est copiée dans ProgAckAll lorsque l’instruction est exécutée. Lors d’une transition d’effacé à activé, acquitte toutes les conditions d’alarme qui requièrent un acquittement.

ProgDisable BOOL PointImmédiat

La valeur est copiée dans ProgDisable lorsque l’instruction est exécutée. Lorsqu’activé, désactive l’alarme (ne supplante pas les commandes d’activation).

ProgEnable BOOL PointImmédiat

La valeur est copiée dans ProgEnable lorsque l’instruction est exécutée. Lorsqu’activé, active l’alarme (prioritaire par rapport aux commandes de désactivation).

HHlimit REAL Immédiat Logique à relais uniquement.

Seuil supérieur d’alarme haute.

HLimit REAL Immédiat Logique à relais uniquement.

Seuil d’alarme haute.

LLimit REAL Immédiat Logique à relais uniquement.

Seuil d’alarme basse.

LLLimit REAL Immédiat Logique à relais uniquement.

Seuil inférieur d’alarme basse.

42 Publication 1756-RM003K-FR-P – Juillet 2008

Page 43: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA) Chapitre 1

Texte structuré

Les opérandes sont les mêmes que pour l’instruction ALMD en logique à relais, avec quelques exceptions indiquées ci-dessus.

Bloc fonctionnel

Opérande Type Format Description

Point ALMA ALARM_ANALOG Structure Structure ALMA.

ALMA (ALMA, In, ProgAckAll, ProgDisable, ProgEnable) ;

Publication 1756-RM003K-FR-P – Juillet 2008 43

Page 44: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 1 Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA)

Structure ALARM_ANALOG

Paramètre d’entrée Type de données

Description

EnableIn BOOL Logique à relais :

Correspond à l’état de la ligne. Si désactivé, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Texte structuré :

Pas d’effet. L’instruction est toujours exécutée.

Bloc fonctionnel :

Si désactivé, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Réglage par défaut activé.

In REAL La valeur d’entrée de l’alarme est comparée avec les seuils d’alarme pour détecter les conditions d’alarme.

Valeur par défaut = 0.0.

Logique à relais :

Copié à partir de l’opérande d’instruction.

Texte structuré :

Copié à partir de l’opérande d’instruction.

InFault BOOL Indicateur de mauvaise santé pour l’entrée. L’application utilisateur peut activer InFault pour indiquer que le signal d’entrée présente une erreur. Lorqu’activé, l’instruction active InFaulted (Status.1). Lorqu’effacé, l’instruction efface InFaulted (Status.1). Dans les deux cas, l’instruction continue d’évaluer In pour les conditions d’alarme.

Le réglage par défaut est effacé (bonne santé).

HHEnabled BOOL Détection de condition d’alarme haute haute. Activer pour permettre la détection de condition d’alarme haute haute. Effacer pour désactiver la détection de condition d’alarme haute haute.

Réglage par défaut activé.

HEnabled BOOL Détection de condition d’alarme haute. Activer pour permettre la détection de condition d’alarme haute. Effacer pour désactiver la détection de condition d’alarme haute.

Réglage par défaut activé.

LEnabled BOOL Détection de condition d’alarme basse. Activer pour permettre la détection de condition d’alarme basse. Effacer pour désactiver la détection de condition d’alarme basse.

Réglage par défaut activé.

LLEnabled BOOL Détection de condition d’alarme basse basse. Activer pour permettre la détection de condition d’alarme basse basse. Effacer pour désactiver la détection de condition d’alarme basse basse.

Réglage par défaut activé.

AckRequired BOOL Définit si l’acquittement d’alarme est requis. Lorsqu’activé, l’acquittement est requis. Lorsqu’effacé, l’acquittement n’est pas requis et HHAcked, HAcked, LAcked, LLAcked, ROCPosAcked et ROCNegAcked sont toujours activés.

Réglage par défaut activé.

44 Publication 1756-RM003K-FR-P – Juillet 2008

Page 45: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA) Chapitre 1

ProgAckAll BOOL Activé par le programme utilisateur pour acquitter toutes les conditions de cette alarme. Nécessite une transition d’effacer à activé lorsque les conditions d’alarme sont non acquittées.

Réglage par défaut effacé.

Logique à relais :

Copié à partir de l’opérande d’instruction.

Texte structuré :

Copié à partir de l’opérande d’instruction.

OperAckAll BOOL Activé par l’interface opérateur pour acquitter toutes les conditions de cette alarme. Nécessite une transition d’effacer à activé lorsque les conditions d’alarme sont non acquittées. L’instruction alarme efface ce paramètre.

Réglage par défaut effacé.

HHProgAck BOOL Acquittement programme haut haut. Activé par le programme utilisateur pour acquitter une condition haute haute. Nécessite une transition d’effacer à activé lorsque la condition d’alarme est non acquittée.

Réglage par défaut effacé.

HHOperAck BOOL Acquittement opérateur haut haut. Activé par l’interface opérateur pour acquitter une condition haute haute. Nécessite une transition d’effacer à activé lorsque la condition d’alarme est non acquittée. L’instruction alarme efface ce paramètre.

Réglage par défaut effacé.

HProgAck BOOL Acquittement programme haut. Activé par le programme utilisateur pour acquitter une condition haute. Nécessite une transition d’effacer à activé lorsque la condition d’alarme est non acquittée.

Réglage par défaut effacé.

HOperAck BOOL Acquittement opérateur haut. Activé par l’interface opérateur pour acquitter une condition haute. Nécessite une transition d’effacer à activé lorsque la condition d’alarme est non acquittée. L’instruction alarme efface ce paramètre.

Réglage par défaut effacé.

LProgAck BOOL Acquittement programme bas. Activé par le programme utilisateur pour acquitter une condition basse. Nécessite une transition d’effacer à activé lorsque la condition d’alarme est non acquittée.

Réglage par défaut effacé.

LOperAck BOOL Acquittement opérateur bas. Activé par l’interface opérateur pour acquitter une condition basse. Nécessite une transition d’effacer à activé lorsque la condition d’alarme est non acquittée. L’instruction alarme efface ce paramètre.

Réglage par défaut effacé.

LLProgAck BOOL Acquittement programme bas bas. Activé par le programme utilisateur pour acquitter une condition basse basse. Nécessite une transition d’effacer à activé lorsque la condition d’alarme est non acquittée.

Réglage par défaut effacé.

Paramètre d’entrée Type de données

Description

Publication 1756-RM003K-FR-P – Juillet 2008 45

Page 46: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 1 Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA)

LLOperAck BOOL Acquittement opérateur bas bas. Activé par l’interface opérateur pour acquitter une condition basse basse. Nécessite une transition d’effacer à activé lorsque la condition d’alarme est non acquittée. L’instruction alarme efface ce paramètre.

Réglage par défaut effacé.

ROCPosProgAck BOOL Acquittement par le programme de la vitesse de variation positive. Activé par le programme utilisateur pour acquitter une condition de vitesse de variation positive. Nécessite une transition d’effacer à activé lorsque la condition d’alarme est non acquittée.

Réglage par défaut effacé.

ROCPosOperAck BOOL Acquittement par l’opérateur de la vitesse de variation positive. Activé par l’interface opérateur pour acquitter une condition de vitesse de variation positive. Nécessite une transition d’effacer à activé lorsque la condition d’alarme est non acquittée. L’instruction alarme efface ce paramètre.

Réglage par défaut effacé.

ROCNegProgAck BOOL Acquittement par le programme de la vitesse de variation négative. Activé par le programme utilisateur pour acquitter une condition de vitesse de variation négative. Nécessite une transition d’effacer à activé lorsque la condition d’alarme est non acquittée.

Réglage par défaut effacé.

ROCNegOperAck BOOL Acquittement par l’opérateur de la vitesse de variation négative. Activé par l’interface opérateur pour acquitter une condition de vitesse de variation négative. Nécessite une transition d’effacer à activé lorsque la condition d’alarme est non acquittée. L’instruction alarme efface ce paramètre.

Réglage par défaut effacé.

ProgSuppress BOOL Activé par le programme utilisateur pour supprimer l’alarme.

Réglage par défaut effacé.

OperSuppress BOOL Activé par l’interface opérateur pour supprimer l’alarme. L’instruction alarme efface ce paramètre.

Réglage par défaut effacé.

ProgUnsuppress BOOL Activé par le programme utilisateur pour annuler la suppression de l’alarme. Prioritaire par rapport aux commandes de suppression.

Réglage par défaut effacé.

OperUnsuppress BOOL Activé par l’interface opérateur pour annuler la suppression de l’alarme. Prioritaire par rapport aux commandes de suppression. L’instruction alarme efface ce paramètre.

Réglage par défaut effacé.

ProgDisable BOOL Activé par le programme utilisateur pour désactiver l’alarme.

Réglage par défaut effacé.

Logique à relais :

Copié à partir de l’opérande d’instruction.

Texte structuré :

Copié à partir de l’opérande d’instruction.

Paramètre d’entrée Type de données

Description

46 Publication 1756-RM003K-FR-P – Juillet 2008

Page 47: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA) Chapitre 1

OperDisable BOOL Activé par l’interface opérateur pour désactiver l’alarme. L’instruction alarme efface ce paramètre.

Réglage par défaut effacé.

ProgEnable BOOL Activé par le programme utilisateur pour activer l’alarme. Prioritaire par rapport à la commande de désactivation.

Réglage par défaut effacé.

Logique à relais :

Copié à partir de l’opérande d’instruction.

Texte structuré :

Copié à partir de l’opérande d’instruction.

OperEnable BOOL Activé par l’interface opérateur pour activer l’alarme. Prioritaire par rapport à la commande de désactivation. L’instruction alarme efface ce paramètre.

Réglage par défaut effacé.

AlarmCountReset BOOL Activé par le programme utilisateur pour réinitialiser le compteur d’alarmes pour toutes les conditions. Une transition d’effacé à activé remet à zéro le compteur d’alarme.

Réglage par défaut effacé.

HHlimit REAL Seuil supérieur d’alarme haute.

Valable = HLimit < HHLimit < valeur flottante positive maximum.

Valeur par défaut = 0.0.

HHSeverity DINT Gravité de la condition d’alarme haute haute. Ceci n’affecte pas le traitement des alarmes par l’automate, mais peut être utilisé par des fonctions de triage et de filtrage au niveau de l’abonné à l’alarme.

Valable = 1...1000 (1000 = le plus grave ; 1 = le moins grave).

Valeur par défaut = 500.

HLimit REAL Seuil d’alarme haute.

Valable = LLimit < HLimit < HHLimit.

Valeur par défaut = 0.0.

HSeverity DINT Gravité de la condition d’alarme haute. Ceci n’affecte pas le traitement des alarmes par l’automate, mais peut être utilisé par des fonctions de triage et de filtrage au niveau de l’abonné à l’alarme.

Valable = 1...1000 (1000 = le plus grave ; 1 = le moins grave).

Valeur par défaut = 500.

LLimit REAL Seuil d’alarme basse.

Valable = LLLimit < LLimit < HLimit.

Valeur par défaut = 0.0.

Paramètre d’entrée Type de données

Description

Publication 1756-RM003K-FR-P – Juillet 2008 47

Page 48: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 1 Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA)

LSeverity DINT Gravité de la condition d’alarme basse. Ceci n’affecte pas le traitement des alarmes par l’automate, mais peut être utilisé par des fonctions de triage et de filtrage au niveau de l’abonné à l’alarme.

Valable = 1...1000 (1000 = le plus grave ; 1 = le moins grave).

Valeur par défaut = 500.

LLLimit REAL Seuil inférieur d’alarme basse.

Valable = valeur flottante négative maximum < LLLimit < LLimit.

Valeur par défaut = 0.0.

LLSeverity DINT Gravité de la condition d’alarme basse basse. Ceci n’affecte pas le traitement des alarmes par l’automate, mais peut être utilisé par des fonctions de triage et de filtrage au niveau de l’abonné à l’alarme.

Valable = 1...1000 (1000 = le plus grave ; 1 = le moins grave).

Valeur par défaut = 500.

MinDurationPRE DINT Temps minimum prédéfini (en millisecondes) pendant lequel un niveau de condition d’alarme doit rester vrai avant que la condition soit marquée comme InAlarm et que la notification d’alarme soit envoyée aux clients. L’automate recueille les données d’alarme dès que la condition d’alarme est détectée ; ainsi, aucune donnée n’est perdue en attendant la fin du temps minimum. Ne s’applique pas aux conditions de vitesse de variation.

MinDurationPRE ne s’applique qu’aux écarts par rapport à la normale dans les deux directions. Par exemple, une fois que la condition haute est en timeout, la condition haute haute devient active immédiatement, alors qu’une condition basse attend la période de timeout.

Valable = 0...2 147 483 647.

Valeur par défaut = 0.

Deadband REAL Zone morte pour détecter que les niveaux d’alarme haute haute, haute, basse et basse basse sont revenus à la normale.

Une zone morte différente de zéro peut réduire les vibrations de la condition d’alarme si la valeur In change en permanence mais reste proche du seuil de la condition de niveau. La valeur de la zone morte n’affecte pas la transition vers l’état InAlarm (actif). Une fois qu’une condition de niveau est active, mais avant que la condition ne revienne à l’état inactif (normal), la valeur In doit :

• descendre en dessous du seuil moins la zone morte (pour les conditions haute et haute haute) ;

ou• monter au-dessus du seuil plus la zone morte (pour les conditions basse et basse basse).

La zone morte n’est pas utilisée pour conditionner la durée minimale.

Valable = 0 ≤ Zone morte < à l’étendue entre la première alarme basse activée et la première alarme haute activée.

Valeur par défaut = 0.0.

ROCPosLimit REAL Limite pour une augmentation de la vitesse de variation en unités par seconde. La détection est activée pour toute valeur > 0.0 si ROCPeriod est également > 0.0.

Valable = 0.0...valeur flottante possible maximum.

Valeur par défaut = 0.0.

Paramètre d’entrée Type de données

Description

48 Publication 1756-RM003K-FR-P – Juillet 2008

Page 49: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA) Chapitre 1

ROCPosSeverity DINT Gravité de la condition d’augmentation de la vitesse de variation. Ceci n’affecte pas le traitement des alarmes par l’automate, mais peut être utilisé par des fonctions de triage et de filtrage au niveau de l’abonné à l’alarme.

Valable = 1...1000 (1000 = le plus grave ; 1 = le moins grave).

Valeur par défaut = 500.

ROCNegLimit REAL Limite pour une diminution de la vitesse de variation en unités par seconde. La détection est activée pour toute valeur > 0.0 si ROCPeriod est également > 0.0.

Valable = 0.0...valeur flottante possible maximum.

Valeur par défaut = 0.0.

ROCNegSeverity DINT Gravité de la condition de diminution de la vitesse de variation. Ceci n’affecte pas le traitement des alarmes par l’automate, mais peut être utilisé par des fonctions de triage et de filtrage au niveau de l’abonné à l’alarme.

Valable = 1...1000 (1000 = le plus grave ; 1 = le moins grave).

Valeur par défaut = 500.

ROCPeriod REAL Durée en secondes pour le calcul (intervalle d’échantillonnage) de la valeur de la vitesse de variation. Chaque fois que l’intervalle d’échantillonnage est écoulé, un nouvel échantillon du paramètre In est stocké et ROC est recalculé.

La détection de la vitesse de variation est activée pour toute valeur > 0.0.

Valable = 0.0...valeur flottante possible maximum.

Valeur par défaut = 0.0.

Paramètre d’entrée Type de données

Description

Paramètre de sortie Type de données

Description

EnableOut BOOL Activation de la sortie.

InAlarm BOOL Etat actif de l’alarme. Activé lorsqu’une condition d’alarme est active. Effacé lorsque toutes les conditions d’alarme ne sont pas actives (état normal).

AnyInAlarmUnack BOOL Etats actif et acquitté combinés de l’alarme. Activé lorsqu’une condition d’alarme est détectée et acquittée. Effacé lorsque toutes les conditions d’alarme sont normales (inactives), acquittées ou les deux.

HHInAlarm BOOL Etat de condition d’alarme haute haute. Activé lorsqu’une condition haute haute existe. Effacé lorsqu’aucune condition haute haute n’existe.

HInAlarm BOOL Etat de condition d’alarme haute. Activé lorsqu’une condition haute existe. Effacé lorsqu’aucune condition haute n’existe.

LInAlarm BOOL Etat de condition d’alarme basse. Activé lorsqu’une condition basse existe. Effacé lorsqu’aucune condition basse n’existe.

LLInAlarm BOOL Etat de condition d’alarme basse basse. Activé lorsqu’une condition basse basse existe. Effacé lorsqu’aucune condition basse basse n’existe.

ROCPosInAlarm BOOL Etat de condition d’alarme de vitesse de variation positive. Activé lorsqu’une condition de vitesse de variation positive existe. Effacé lorsqu’aucune condition de vitesse de variation positive n’existe.

Publication 1756-RM003K-FR-P – Juillet 2008 49

Page 50: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 1 Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA)

ROCNegInAlarm BOOL Etat de condition d’alarme de vitesse de variation négative. Activé lorsqu’une condition de vitesse de variation négative existe. Effacé lorsqu’aucune condition de vitesse de variation négative n’existe.

ROC REAL Vitesse de variation calculée de la valeur In. Cette valeur est actualisée lorsque l’instruction est scrutée après chaque ROCPeriod écoulé. La valeur ROC est utilisée pour évaluer les conditions ROCPosInAlarm et ROCNegInAlarm.

ROC = (échantillon actuel de In – échantillon précédent de In) / ROCPeriod

HHAcked BOOL Etat acquitté de condition haute haute. Activé lorsqu’une condition haute haute est acquittée. Toujours activé lorsque AckRequired est désactivé. Effacé lorsqu’une condition haute haute n’est pas acquittée.

HAcked BOOL Etat acquitté de condition haute. Activé lorsqu’une condition haute est acquittée. Toujours activé lorsque AckRequired est désactivé. Effacé lorsqu’une condition haute n’est pas acquittée.

LAcked BOOL Etat acquitté de condition basse. Activé lorsqu’une condition basse est acquittée. Toujours activé lorsque AckRequired est désactivé. Effacé lorsqu’une condition basse n’est pas acquittée.

LLAcked BOOL Etat acquitté de condition basse basse. Activé lorsqu’une condition basse basse est acquittée. Toujours activé lorsque AckRequired est désactivé. Effacé lorsqu’une condition basse basse n’est pas acquittée.

ROCPosAcked BOOL Etat acquitté de condition d’alarme de vitesse de variation positive. Activé lorsqu’une condition de vitesse de variation positive est acquittée. Toujours activé lorsque AckRequired est désactivé. Effacé lorsqu’une condition de vitesse de variation positive est non acquittée.

ROCNegAcked BOOL Etat acquitté de condition d’alarme de vitesse de variation négative. Activé lorsqu’une condition de vitesse de variation négative est acquittée. Toujours activé lorsque AckRequired est désactivé. Effacé lorsqu’une condition de vitesse de variation négative est non acquittée.

HHInAlarmUnack BOOL Condition haute haute active et état acquitté combinés. Activé lorsque la condition haute haute est active (HHInAlarm est activé) et acquittée. Effacé lorsque la condition haute haute est normale (inactive), acquittée ou les deux.

HInAlarmUnack BOOL Condition haute active et état acquitté combinés. Activé lorsque la condition haute est active (HInAlarm est activé) et acquittée. Effacé lorsque la condition haute est normale (inactive), acquittée ou les deux.

LInAlarmUnack BOOL Condition basse active et état acquitté combinés. Activé lorsque la condition basse est active (LInAlarm est activé) et acquittée. Effacé lorsque la condition basse est normale (inactive), acquittée ou les deux.

LLInAlarmUnack BOOL Condition basse basse active et état acquitté combinés. Activé lorsque la condition basse basse est active (LLInAlarm est activé) et acquittée. Effacé lorsque la condition basse basse est normale (inactive), acquittée ou les deux.

ROCPosInAlarmUnack BOOL Condition de vitesse de variation positive active et état acquitté combinés. Activé lorsque la condition de vitesse de variation positive est active (ROCPosInAlarm est activé) et acquittée. Effacé lorsque la condition de vitesse de variation positive est normale (inactive), acquittée ou les deux.

ROCNegInAlarmUnack BOOL Condition de vitesse de variation négative active et état acquitté combinés. Activé lorsque la condition de vitesse de variation négative est active (ROCNegInAlarm est activé) et acquittée. Effacé lorsque la condition de vitesse de variation négative est normale (inactive), acquittée ou les deux.

Suppressed BOOL Etat supprimé de l’alarme. Activé lorsque l’alarme est supprimée. Effacé lorsque l’alarme n’est pas supprimée.

Disabled BOOL Etat désactivé de l’alarme. Activé lorsque l’alarme est désactivée. Effacé lorsque l’alarme est activée.

Paramètre de sortie Type de données

Description

50 Publication 1756-RM003K-FR-P – Juillet 2008

Page 51: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA) Chapitre 1

MinDurationACC DINT Temps écoulé depuis qu’une alarme a été détectée. Lorsque cette valeur atteint MinDurationPRE, toutes les conditions de niveau d’alarme détectées sont activées (xInAlarm est activé) et une notification est envoyée aux clients.

HHInAlarmTime LINT Horodatage lorsque l’instruction ALMA a détecté que la valeur In a dépassé le seuil de condition haute haute pour la transition la plus récente vers l’état activé.

HHAlarmCount DINT Nombre de fois que la condition haute haute a été activée. Si la valeur maximale est atteinte, le compteur reste à cette valeur maximale.

HInAlarmTime LINT Horodatage lorsque l’instruction ALMA a détecté que la valeur In a dépassé le seuil de condition haute pour la transition la plus récente vers l’état activé.

HAlarmCount DINT Nombre de fois que la condition haute a été activée. Si la valeur maximale est atteinte, le compteur reste à cette valeur maximale.

LInAlarmTime LINT Horodatage lorsque l’instruction ALMA a détecté que la valeur In a dépassé le seuil de condition basse pour la transition la plus récente vers l’état activé.

LAlarmCount DINT Nombre de fois que la condition basse a été activée. Si la valeur maximale est atteinte, le compteur reste à cette valeur maximale.

LLInAlarmTime LINT Horodatage lorsque l’instruction ALMA a détecté que la valeur In a dépassé le seuil de condition basse basse pour la transition la plus récente vers l’état activé.

LLAlarmCount DINT Nombre de fois que la condition basse basse a été activée. Si la valeur maximale est atteinte, le compteur reste à cette valeur maximale.

ROCPosInAlarmTime LINT Horodatage lorsque l’instruction ALMA a détecté que la valeur In a dépassé le seuil de condition de vitesse de variation positive pour la transition la plus récente vers l’état activé.

ROCPosInAlarmCount DINT Nombre de fois que la condition de vitesse de variation positive a été activée. Si la valeur maximale est atteinte, le compteur reste à cette valeur maximale.

ROCNegInAlarmTime LINT Horodatage lorsque l’instruction ALMA a détecté que la valeur In a dépassé le seuil de condition de vitesse de variation négative pour la transition la plus récente vers l’état activé.

ROCNegAlarmCount DINT Nombre de fois que la condition de vitesse de variation négative a été activée. Si la valeur maximale est atteinte, le compteur reste à cette valeur maximale.

AckTime LINT Horodatage de l’acquittement de condition le plus récent. Si l’alarme ne requiert pas d’acquittement, cet horodatage est égal à la durée de la condition d’alarme la plus récente.

RetToNormalTime LINT Horodatage de l’alarme reprenant son état normal.

AlarmCountResetTime LINT Horodatage indiquant quand le compteur de l’alarme a été remis à zéro.

DeliveryER BOOL Erreur de transmission du message de notification d’alarme. Activé lorsqu’il existe une erreur de transmission : soit l’alarme n’a aucun abonné ou au moins un abonné n’a pas reçu le dernier message de changement d’état de l’alarme. Effacé lorsque la transmission a réussi ou est en cours.

DeliveryDN BOOL Transmission du message de notification d’alarme terminée. Activé lorsque la transmission a réussi : l’alarme a au moins un abonné et tous les abonnés ont reçu le dernier message de changement d’état de l’alarme. Effacé lorsque la transmission échoue avant la fin ou est en cours.

DeliveryEN BOOL Etat de la transmission du message de notification d’alarme. Activé lorsque la transmission est en cours. Effacé lorsque la transmission n’est pas en cours.

NoSubscriber BOOL L’alarme n’avait pas d’abonné lors de la tentative de transmission du dernier message. Activé lorsqu’il n’y a pas d’abonné. Effacé lorsqu’il y a au moins un abonné.

NoConnection BOOL Les abonnés de l’alarme n’étaient pas connectés lors de la tentative de transmission du dernier message. Activé lorsque tous les abonnés sont déconnectés. Effacé lorsqu’au moins un abonné est connecté ou lorsqu’il n’y a pas d’abonnés.

Paramètre de sortie Type de données

Description

Publication 1756-RM003K-FR-P – Juillet 2008 51

Page 52: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 1 Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA)

CommError BOOL Erreur de communication lors de la transmission d’un message d’alarme. Activé lorsqu’il y a des erreurs de communication et que le nombre maximum de réessais est atteint. Ceci signifie qu’il y avait un abonné avec une connexion, mais que l’automate n’a pas reçu la confirmation de la transmission du message. Effacé lorsque tous les abonnés connectés confirment la réception du message d’alarme.

AlarmBuffered BOOL Le message d’alarme est mis en mémoire tampon en raison d’une erreur de communication (CommError est activé) ou d’une perte de connexion (NoConnection est activé). Activé lorsque le message est mis en mémoire tampon pour au moins un abonné. Effacé lorsque le message d’alarme n’est pas mis en mémoire tampon.

Subscribers DINT Nombre d’abonnés pour cette alarme.

SubscNotified DINT Nombre d’abonnés notifiés avec succès du dernier changement d’état de l’alarme.

Status DINT Indicateurs d’état combinés :

Status.0 = InstructFault.

Status.1 = InFaulted.

Status.2 = SeverityInv.

Status.3 = AlarmLimitsInv.

Status.4 = DeadbandInv.

Status.5 = ROCPosLimitInv.

Status.6 = ROCNegLimitInv.

Status.7 = ROCPeriodInv.

InstructFault (Status.0) BOOL Conditions d’erreur d’instruction présentes. Ceci n’est pas une erreur mineure ou majeure de l’automate. Vérifiez les autres bits d’état pour déterminer ce qui s’est produit.

InFaulted (Status.1) BOOL Le programme utilisateur a activé InFault pour indiquer des données d’entrée de mauvaise qualité. L’alarme continue de surveiller In pour détecter toute condition d’alarme.

SeverityInv (Status.2) BOOL La configuration de gravité de l’alarme n’est pas valable.

Si la gravité est <1, l’instruction utilise Gravité = 1.

Si la gravité est >1000, l’instruction utilise Gravité = 1000.

AlarmLimitsInv (Status.3)

BOOL La configuration du seuil d’alarme est incorrecte (par exemple, LLimit < LLLimit). Si incorrecte, l’instruction efface tous les bits actifs de seuil de condition. Jusqu’à ce que le défaut soit effacé, aucun nouveau seuil de condition ne peut être détecté.

DeadbandInv (Status.4)

BOOL La configuration de zone morte est incorrecte. Si incorrecte, l’instruction utilise Deadband = 0.0.

Valable = 0 ≤ Zone morte < à l’étendue entre la première alarme basse activée et la première alarme haute activée.

ROCPosLimitInv (Status.5)

BOOL Seuil de vitesse de variation positive incorrect. Si incorrect, l’instruction utilise ROCPosLimit = 0.0, ce qui désactive la détection de fréquence de changement positive.

ROCNegLimitInv (Status.6)

BOOL Seuil de vitesse de variation négative incorrect. Si incorrect, l’instruction utilise ROCNegLimit = 0.0, ce qui désactive la détection de vitesse de variation négative.

ROCPeriodInv (Status.7)

BOOL Intervalle de la vitesse de variation incorrect. Si incorrect, l’instruction utilise ROCPeriod = 0.0, ce qui désactive la détection de la vitesse de variation.

Paramètre de sortie Type de données

Description

52 Publication 1756-RM003K-FR-P – Juillet 2008

Page 53: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA) Chapitre 1

Description L’instruction ALMA détecte les alarmes en fonction du niveau ou de la vitesse de variation d’une valeur.

L’instruction ALMA apporte des fonctions complémentaires lorsqu’elle est utilisée avec les logiciels RSLinx Enterprise et FactoryTalk View SE. Vous pouvez afficher les alarmes dans les écrans Liste des alarmes (Alarm Summary), Bannière d’alarme (Alarm Banner), Explorateur d’état d’alarme (Alarm Status Explorer) et Visualiseur du journal des alarmes (Alarm Log Viewer) de FactoryTalk View SE.

Le logiciel RSLinx Enterprise s’abonne aux alarmes de l’automate. Utilisez les paramètres de sortie pour surveiller l’instruction afin de voir l’état d’abonnement de l’alarme et pour visualiser les changements d’état de l’alarme. Si une connexion au logiciel RSLinx Enterprise est rompue, l’automate peut mettre les données d’alarme en mémoire tampon pendant un bref moment, jusqu’au rétablissement de la connexion.

Publication 1756-RM003K-FR-P – Juillet 2008 53

Page 54: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 1 Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA)

Schémas d’état lorsque l’acquittement est requis

HInAlarm = FalseHAcked = True

HInAlarm = TrueHAcked = False

In >= HLimit, MinDurationACC >= MinDurationPRE

In < (Hlimit - Deadband)

HInAlarm = FalseHAcked = False

HInAlarm = TrueHAcked = True

In < (HLimit - Deadband) Ack1Ack1

HHInAlarm = FalseHHAcked = True

HHInAlarm = TrueHHAcked = False

In >= HHLimit, MinDurationACC >= MinDurationPRE

In < (HHLimit - Deadband)

HHInAlarm = FalseHHAcked = False

HHInAlarm = TrueHHAcked = True

In < (HHLimit - Deadband)Ack1Ack1

LInAlarm = FalseLAcked = True

LInAlarm = TrueLAcked = False

In <= LLimit, MinDurationACC >= MinDurationPRE

In > (Llimit + Deadband)

LInAlarm = FalseLAcked = False

LInAlarm = TrueLAcked = True

In > (LLimit + Deadband)Ack1Ack1

LLInAlarm = FalseLLAcked = True

LLInAlarm = TrueLLAcked = False

In <= LLLimit, MinDurationACC >= MinDurationPRE

In > (LLLimit + Deadband)

LLInAlarm = FalseLLAcked = False

LLInAlarm = TrueLLAcked = True

In > (LLLimit + Deadband)Ack1

RocPosInAlarm = FalseRocPosAcked = True

RocPosInAlarm = TrueRocPosAcked = False

ROC >= RocPosLimit

ROC < RocPosLimit

RocPosInAlarm = FalseRocPosAcked = False

RocPosInAlarm = TrueRocPosAcked = True

ROC < RocPosLimit Ack1Ack1

l,

RocNegInAlarm = FalseRocNegAcked = True

RocNegInAlarm = TrueRocNegAcked = False

ROC <= -RocNegLimit

ROC > -RocNegLimit

RocNegInAlarm = FalseRocNegAcked = False

RocNegInAlarm = TrueRocNegAcked = True

ROC > -RocNegLimit Ack1Ack1

,

Ack1

In >= HLimit, MinDurationACC >= MinDurationPRE

In >= HHLimit, MinDurationACC >= MinDurationPRE

In <= LLimit, MinDurationACC >= MinDurationPRE

In <= LLLimit, MinDurationACC >= MinDurationPRE

ROC >= RocPosLimit

ROC <= -RocNegLimit

ROCPeriodsSample)In(Previou-Sample)In(CurrentROC =

Where a new sample is collected on thenext scan after the ROCPeriod has elapsed.

1 H alarm condition can be acked by several different ways: HProgAck, HOperAck, ProgAckAll, OperAckAll,clients (RSLogix 5000 software, RSView software).

1 HH alarm condition can be acked by several different ways: HHProgAck, HHOperAck, ProgAckAll, OperAckAll,clients (RSLogix 5000 software, RSView software).

1 L alarm condition can be acked by several different ways: LProgAck, LOperAck, ProgAckAll, OperAckAll,clients (RSLogix 5000 software, RSView software).

1 LL alarm condition can be acked by several different ways: LLProgAck, LLOperAck, ProgAckAll, OperAckAll,clients (RSLogix 5000 software, RSView software).

1 ROCNeg alarm condition can be acked by several different ways: RocNegProgAck, RocNegOperAck, ProgAckAll, OperAckAll, clients (RSLogix 5000 software, RSView software).

1 ROCPos alarm condition can be acked by several different ways: RocPosProgAck, RocPosOperAck, ProgAckAll, OperAckAll, clients (RSLogix 5000 software, RSView software).

HinAlarm = FauxHAcked = Vrai

HinAlarm = VraiHAcked = Faux

LinAlarm = FauxLAcked = Vrai

HinAlarm = FauxHAcked = Faux

HinAlarm = VraiHAcked = Vrai

LinAlarm = VraiLAcked = Faux

LinAlarm = FauxLAcked = Faux

LinAlarm = VraiLAcked = Vrai

HHinAlarm = FauxHHAcked = Vrai

HHinAlarm = FauxHHAcked = Faux

HHinAlarm = VraiHHAcked = Faux

HHinAlarm = VraiHHAcked = Vrai

LLinAlarm = FauxLAcked = Vrai

LLinAlarm = VraiLAcked = Faux

LLinAlarm = FauxLAcked = Faux

LLinAlarm = VraiLAcked = Vrai

RocNegInAlarm = FauxRocNegAcked = Vrai

RocNegInAlarm = FauxRocNegAcked = Faux

RocNegInAlarm = VraiRocNegAcked = Faux

RocNegInAlarm = VraiRocNegAcked = Vrai

RocPosInAlarm = VraiRocPosAcked = Faux

RocPosInAlarm = VraiRocPosAcked = Vrai

RocPosInAlarm = FauxRocPosAcked = Vrai

RocPosInAlarm = FauxRocPosAcked = Faux

In < (HLimit – Deadband)In < (HLimit – Deadband)

In < (HHLimit – Deadband)In < (HHLimit – Deadband)

In < (LLLimit – Deadband)In < (LLLimit – Deadband)

In < (LLimit – Deadband)In < (LLimit – Deadband)

ROC < RocPosLimitROC < RocPosLimit

ROC <= RocPosLimit

ROC < -RocNegLimitROC < -RocNegLimit

ROC <= -RocNegLimit

ROC <= -RocNegLimitROC <= RocPosLimit

Ack1 Ack1

Ack1Ack1

Ack1

Ack1Ack1 Ack1 Ack1

Ack1Ack1

Ack1

In >= HLimit, MinDurationACC >= MinDurationPRE

In >= HLimit, MinDurationACC >= MinDurationPRE

In >= HHLimit, MinDurationACC >= MinDurationPRE

In >= HHLimit, MinDurationACC >= MinDurationPRE

1 La condition d’alarme H peut être acquittée de différentes façons : HProgAck, HOperAck, ProgAckAll, OperAckAll, clients (logiciel RSLogix 5000, logiciel RSView).

1 La condition d’alarme HH peut être acquittée de différentes façons : HHProgAck, HHOperAck, ProgAckAll, OperAckAll, clients (logiciel RSLogix 5000, logiciel RSView).

In >= LLLimit, MinDurationACC >= MinDurationPREIn >= LLimit, MinDurationACC >= MinDurationPRE

In >= LLimit, MinDurationACC >= MinDurationPRE

In >= LLLimit, MinDurationACC >= MinDurationPRE

1 La condition d’alarme LL peut être acquittée de différentes façons : LLProgAck, LLOperAck, ProgAckAll, OperAckAll, clients (logiciel RSLogix 5000, logiciel RSView).

1 La condition d’alarme H peut être acquittée de différentes façons : LProgAck, LOperAck, ProgAckAll, OperAckAll, clients (logiciel RSLogix 5000, logiciel RSView).

1 La condition d’alarme ROCPos peut être acquittée de différentes façons : RocPosProgAck, RocPosOperAck, ProgAckAll, OperAckAll, clients (logiciel RSLogix 5000, logiciel RSView).

1 La condition d’alarme ROCNeg peut être acquittée de différentes façons : RocNegProgAck, RocNegOperAck, ProgAkkAll, OperAckAll, clients (logiciel RSLogix 5000, logiciel RSView).

Où un nouvel échantillon est recueilli au cours de la scrutation suivante une fois l’intervalle ROCPeriod échu.

ROC = In(échantillon actuel) – In(échantillon précédent)

ROCPeriod

54 Publication 1756-RM003K-FR-P – Juillet 2008

Page 55: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA) Chapitre 1

Schémas d’état lorsque l’acquittement n’est pas requis

Indicateurs d’état arithmétique : Les indicateurs d’état arithmétiques sont activés pour la sortie ROC.

Conditions d’erreur :

Exécution :

HInAlarm = False HInAlarm = True

In >= HLimit, MinDurationACC >= MinDurationPRE

In < (HLimit - Deadband)

HAcked = True

LInAlarm = False LInAlarm = True

In <= LLimit, MinDurationACC >= MinDurationPRE

In > (LLimit + Deadband)

LAcked = True

HHInAlarm = False HHInAlarm = True

In >= HHLimit, MinDurationACC >= MinDurationPRE

In < (HHLimit - Deadband)

HHAcked = True

LLInAlarm = False LLInAlarm = True

In <= LLLimit, MinDurationACC >= MinDurationPRE

In > (LLLimit + Deadband)

LLAcked = True

RocPosInAlarm = False RocPosInAlarm = True

ROC >= ROCPosLimit

ROC < ROCPosLimit

RocPosAcked = True

ROCPeriodsSample)In(Previou-Sample)In(CurrentROC =

RocNegInAlarm = False RocNegInAlarm = True

ROC <= -ROCNegLimit

ROC > -ROCNegLimit

RocNegAcked = True

Where a new sample is collected on thenext scan after the ROCPeriod has elapsed.

HinAlarm = Faux

LinAlarm = Faux

HHinAlarm = Faux

LLinAlarm = Faux

HinAlarm = Vrai

LinAlarm = Vrai

HHinAlarm = Vrai

LLinAlarm = Vrai

LAcked = Vrai

HHAcked = Vrai

HAcked = Vrai

LLAcked = Vrai

In >= HLimit, MinDurationACC >= MinDurationPRE

In >= LLLimit, MinDurationACC >= MinDurationPRE

In >= HHLimit, MinDurationACC >= MinDurationPRE

In >= LLLimit, MinDurationACC >= MinDurationPRE

In < (HLimit – Deadband)

In < (LLimit – Deadband)

In < (HHLimit – Deadband)

In < (LLLimit – Deadband)

RocPosInAlarm = Faux RocPosInAlarm = Vrai

RocNegInAlarm = Faux RocNegInAlarm = Vrai

RocPosAcked = Vrai

RocNegAcked = Vrai

ROC >= ROCPosLimit

ROC > ROCPosLimit

ROC >= -ROCNegLimit

ROC > -ROCNegLimit

Où un nouvel échantillon est recueilli au cours de la scrutation suivante une fois l’intervalle ROCPeriod échu.

In(échantillon actuel) – In(échantillon précédent)

ROCPeriodROC =

Défaut mineur Type de défaut Code de défaut

Dépassement de capacité ROC 4 4

Condition Action logique à relais

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

Tous les paramètres xInAlarm sont effacés et toutes les conditions d’alarme sont acquittées.

Les requêtes de l’opérateur, les horodatages et les indicateurs de transmission sont effacés.

L’état d’entrée de la ligne est faux

L’instruction n’est pas exécutée.

EnableOut est effacé.

L’état d’entrée de la ligne est vrai

L’instruction est exécutée.

EnableOut est activé.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

Publication 1756-RM003K-FR-P – Juillet 2008 55

Page 56: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 1 Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA)

Condition Action bloc fonctionnel Action texte structuré

Pré-scrutation Les requêtes de l’opérateur, les horodatages et les indicateurs de transmission sont effacés.

Tous les paramètres xInAlarm sont effacés et toutes les conditions d’alarme sont acquittées.

Les requêtes de l’opérateur, les horodatages et les indicateurs de transmission sont effacés.

Tous les paramètres xInAlarm sont effacés et toutes les conditions d’alarme sont acquittées.

Première scrutation de l’instruction

Aucune. Aucune.

Première exécution de l’instruction

Aucune. Aucune.

EnableIn est effacé L’instruction n’est pas exécutée.

EnableOut est effacé.

L’instruction est exécutée.

EnableOut est toujours activé.

EnableIn est activé L’instruction est exécutée.

EnableOut est activé.

L’instruction est exécutée.

EnableOut est toujours activé.

Post-scrutation Aucune. Aucune.

56 Publication 1756-RM003K-FR-P – Juillet 2008

Page 57: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA) Chapitre 1

ALMA Acquittement de la condition de seuil requis

Publication 1756-RM003K-FR-P – Juillet 2008 57

Page 58: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 1 Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA)

ALMA Acquittement de la condition de seuil non requis

58 Publication 1756-RM003K-FR-P – Juillet 2008

Page 59: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA) Chapitre 1

ALMA Acquittement de la vitesse de variation requis

Publication 1756-RM003K-FR-P – Juillet 2008 59

Page 60: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 1 Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA)

ALMA Acquittement de la vitesse de variation non requis

Exemple : Une alarme de réservoir est activée si le niveau du réservoir dépasse un seuil haut ou haut haut. Acquittement de toutes les conditions d’alarme par le programme avec transition d’effacé à activé de la valeur du point Tank32LevelAck. Le programme d’application doit effacer Tank32LevelAck.

60 Publication 1756-RM003K-FR-P – Juillet 2008

Page 61: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA) Chapitre 1

Logique à relais

Texte structuré

ALMA(Tank32Level,Tank32LT,Tank32LevelAck,0, 0);

Bloc fonctionnel

Publication 1756-RM003K-FR-P – Juillet 2008 61

Page 62: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 1 Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA)

Configuration d’une instruction d’alarme

Une fois que vous avez entré une instruction ALMD ou ALMA et que vous avez défini un nom de point d’alarme, utilisez la boîte de dialogue de configuration de l’alarme (Alarm Configuration) pour définir les détails du message.

La boîte de dialogue des propriétés (Properties) de l’instruction d’alarme inclut un onglet Configuration.

Configurez les informations suivantes pour chaque instruction d’alarme.

Cliquez ici pour configurer l’instruction.

Option Description

Condition – Instruction ALMD Condition de déclenchement de l’alarme.

Sélectionnez Input=1 pour une alarme active lorsque In=1. Sélectionnez Input=0 pour une alarme active lorsque In=0.

Entrée de niveau (Input Level) – Instruction ALMA

Entrée de vitesse de variation (Input Rate of Change) – Instruction ALMA

Entrée de niveau (High High, High, Low ou Low Low) ou entrée de vitesse de variation (positive ou négative) pour le déclenchement d’une alarme.

Sélectionnez les conditions d’alarme et entrez les seuils de ces conditions. Désactivez les conditions de vitesse de variation en entrant un 0 comme intervalle (Period) ou seuil.

62 Publication 1756-RM003K-FR-P – Juillet 2008

Page 63: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA) Chapitre 1

Gravité (Severity) Sélectionnez une plage de gravité entre 1 et 1 000 pour indiquer l’importance d’une condition d’alarme. Une gravité de 1 correspond aux alarmes de faible priorité et une gravité de 1 000 correspond à une condition d’urgence.

Par défaut, dans le système FactoryTalk Alarms and Events, la plage de gravité est divisée selon les priorités suivantes :

• 1 à 250 sont des priorités faibles.

• 251 à 500 sont des priorités moyennes.

• 501 à 750 sont des priorités élevées.

• 751 à 1 000 sont des priorités urgentes.

Vous pouvez configurer le lien entre gravité et priorité dans le système FactoryTalk Alarms and Events. Voir l’aide de FactoryTalk pour plus de détails.

Durée minimum (Minimum Duration) Entrez la durée en ms pendant laquelle une condition d’alarme doit être active avant qu’elle soit signalée.

Verrouillé (Latched) – Instruction ALMD Sélectionnez Latched (verrouillé) si vous voulez que l’alarme reste active (InAlarm) une fois que la condition d’alarme redevient inactive (normal). Les alarmes verrouillées requièrent une commande de réinitialisation pour passer à l’état normal. La commande de réinitialisation doit être reçue une fois que la condition revient à l’état normal.

Les commandes d’acquittement ne réinitialisent pas une alarme verrouillée.

Zone morte (Deadband) – Instruction ALMA Spécifiez une valeur de zone morte pour réduire les vibrations de la condition d’alarme dues aux petites variations de la valeur In.

La valeur de zone morte n’affecte pas le seuil d’alarme pour la transition à l’état actif et n’est pas non plus utilisée pendant l’intervalle de la durée minimum (Minimum Duration).

Une fois qu’une condition de niveau devient active (InAlarm), elle reste active jusqu’à ce que la valeur In repasse le seuil de la zone morte définie. Par exemple, si le seuil haut est 80, le seuil bas est 20 et la zone morte est 5, la condition haute est active à ≥ 80 et revient à l’état normal à ≤ 75 ; la condition basse est active à ≤ 20 et revient à l’état normal à ≥ ≤ 25.

La zone morte n’a pas d’effet sur les conditions d’alarme de vitesse de variation.

Acquittement requis (Acknowledgement Required)

Les alarmes sont configurées de façon à exiger un acquittement par défaut. L’acquittement indique qu’un opérateur a connaissance de la condition d’alarme, que les conditions soient revenues à la normale ou non.

Désactivez le réglage d’acquittement requis lorsque vous voulez que l’alarme apparaisse et disparaisse du sommaire des alarmes (Alarm Summary) sur l’IHM sans intervention de l’opérateur.

L’état Acked est toujours activé pour les alarmes qui ne requièrent pas d’acquittement.

Si une alarme TOR est configurée comme verrouillée, la commande de réinitialisation acquitte également l’alarme.

Option Description

Publication 1756-RM003K-FR-P – Juillet 2008 63

Page 64: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 1 Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA)

Vous pouvez modifier tous les aspects de la configuration des alarmes hors ligne ou en ligne. Les modifications en ligne des nouvelles alarmes et des alarmes existantes sont envoyées immédiatement aux abonnés FactoryTalk (les anciens terminaux IHM qui ne font qu’appeler les points ne sont pas actualisés automatiquement). Les abonnés FactoryTalk n’ont pas besoin de se réabonner pour recevoir les informations actualisées. Les modifications en ligne sont diffusées automatiquement de la structure d’alarme de l’automate vers le reste de l’architecture.

Classe d’alarme (Alarm class) Utilisez la classe d’alarme pour regrouper les alarmes de même type. Attribuez la même classe d’alarme à toutes les alarmes que vous voulez regrouper dans une même classe. Le nom de la classe d’alarme est sensible à la casse.

Par exemple, définissez la classe Tank Farm A pour regrouper toutes les alarmes de réservoir d’une zone spécifique. Ou définissez la classe Control Loop pour regrouper toutes les alarmes de boucles PID.

Vous pouvez ensuite afficher et trier les alarmes sur l’IHM selon les classes. Par exemple, un opérateur peut afficher toutes les alarmes de réservoir ou toutes les alarmes de boucle PID.

La classe d’alarme ne limite pas les types d’alarmes auxquels un objet Sommaire des alarmes (Alarm Summary) peut être abonné. Utilisez la classe d’alarme pour trier les alarmes qui sont visibles pour un opérateur une fois qu’elles ont été reçues par l’objet Sommaire des alarmes (Alarm Summary). Le logiciel FactoryTalk View peut filtrer la classe d’alarme en remplaçant des caractères par des caractères génériques.

Commande de visualisation (View command)

Exécute une commande sur le poste de l’opérateur lorsque ce dernier fait une requête pour une alarme spécifique. Ceci permet à un opérateur d’exécuter n’importe quelle commande FactoryTalk View standard, comme appeler des faces avant et des écrans spécifiques, exécuter des macros, accéder aux fichiers d’aide et lancer des applications externes. Lorsque la condition d’alarme se produit et qu’elle est affichée pour l’opérateur, un bouton dans les écrans du sommaire et de la bannière permet à l’opérateur d’exécuter une commande de visualisation connexe.

S’assurer de saisir la syntaxe correcte et de tester la commande pendant le fonctionnement, parce qu’aucune surveillance d’erreurs n’est effectuée lorsque la commande est entrée.

Option Description

64 Publication 1756-RM003K-FR-P – Juillet 2008

Page 65: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA) Chapitre 1

Saisie du texte du message d’alarme

Saisissez le texte du message à afficher lorsqu’une condition d’alarme est active (InAlarm). Pour une instruction ALMD, vous devez saisir les informations du message dans l’onglet Configuration. Pour une instruction ALMA, vous devez saisir les informations du message dans l’onglet Message.

Pour définir un message d’alarme, spécifiez les informations suivantes.

Option Description

Chaîne du message (Message string) La chaîne du message contient les informations à afficher pour l’opérateur à propos de l’alarme. En plus de saisir un texte, vous pouvez inclure des variables. Sélectionnez la variable désirée dans l’éditeur du message d’alarme et ajoutez-la n’importe où dans la chaîne du message.

La chaîne du message peut comporter 255 caractères, y compris les caractères qui définissent les variables incluses (mais non le nombre de caractères dans les valeurs réelles des variables incluses). Par exemple, /*S:0 %Tag1*/ spécifie un point de chaîne et ajoute 13 caractères qui sont comptés dans la longueur totale de la chaîne, mais la valeur réelle du point de chaîne pourrait contenir 82 caractères.

Vous ne pouvez pas accéder via le programme à la chaîne du message d’alarme à partir du point d’alarme. Pour modifier le message d’alarme en fonction d’événements particuliers, configurez un des points associés en type de données de chaîne et intégrez ce point associé au message.

Il est possible d’avoir des versions plurilingues des messages. Pour entrer les différentes langues, utilisez l’utilitaire d’importation/exportation. Pour plus d’informations, voir page 68.

Publication 1756-RM003K-FR-P – Juillet 2008 65

Page 66: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 1 Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA)

Variables de la chaîne du message

Vous pouvez intégrer ces informations variables dans une chaîne de message.

Points associés (Associated tags) Vous pouvez sélectionner jusqu’à quatre points supplémentaires à partir du projet automate pour les associer à l’alarme. Les valeurs de ces points sont envoyées avec un message d’alarme au serveur d’alarmes. Par exemple, une alarme TOR pour une soupape de surpression peut également contenir des informations comme la vitesse de la pompe et la température du réservoir.

Les points associés peuvent être de n’importe quel type de données atomiques (BOOL, DINT, INT, SINT ou REAL) ou une chaîne (STRING). Ce peut être des éléments dans un type de données utilisateur ou dans un tableau. Les références de tableau variables ne sont pas autorisées. Si l’alarme est de niveau automate, les points associés doivent également être de niveau automate.

Alternativement, vous pouvez intégrer les points associés dans la chaîne du texte de message.

Les valeurs du point associé sont toujours envoyées avec l’alarme, visibles par l’opérateur et saisies dans le journal d’historique, que vous les ayez intégrées ou non dans la chaîne du message.

Option Description

Variable Intègre à la chaîne du message Code par défaut ajouté à la chaîne du message

Nom d’alarme (Alarm name)

Le nom de l’alarme, qui est constitué du nom de l’automate, du nom du programme et du nom du point. Par exemple, [AutomateZone1]Programme:Principal.NomPointMonAlarme.

/*S:0 %AlarmName*/

Nom de condition (Condition name)

La condition qui déclenche l’alarme :

• l’alarme TOR affiche le déclencheur ;

• l’alarme analogique affiche HiHi, Hi, Lo, LoLo, ROC_POS ou ROC_NEG.

/*S:0 %ConditionName*/

Valeur d’entrée (Input value)

La valeur d’entrée de l’alarme :

• l’alarme TOR affiche 0 ou 1 ;

• l’alarme analogique affiche la valeur de la variable d’entrée surveillée par l’alarme.

/*N:5 %InputValue NOFILL DP:0*/

Valeur de seuil (Limit value) Le seuil de l’alarme :

• l’alarme TOR affiche 0 ou 1 ;

• l’alarme analogique affiche la plage de vérification réellement configurée pour la condition d’alarme analogique.

/*N:5 %LimitValue NOFILL DP:0*/

Gravité (Severity) La gravité de la condition d’alarme configurée. /*N:5 %Severity NOFILL DP:0*/

Valeurs des points associés (Values of associated tags)

La valeur d’un point configuré pour être inclus avec l’événement d’alarme.

/*N:5 %Tag1 NOFILL DP:0*/

66 Publication 1756-RM003K-FR-P – Juillet 2008

Page 67: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA) Chapitre 1

Le code varie en fonction du type de point que vous sélectionnez, du nombre de chiffres ou de caractères présents dans la valeur du point et de si vous voulez compléter les bits vides de la partie gauche avec des espaces ou des zéros. Par exemple :

Toutes ces informations variables sont incluses avec les données d’alarme, visualisables par l’opérateur et entrées dans le journal d’historique, que vous ayez intégré ou non les informations dans le texte du message.

Point Code

Valeur BOOL /*N:1 %Tag1 NOFILL DP:0*/

Valeur DINT, 9 chiffres, remplissage à gauche avec des espaces

/*N:9 %Tag2 SPACEFILL DP:0*/

Valeur d’entrée REAL, 9 chiffres (inclut la virgule décimale), 3 chiffres après la virgule décimale, remplissage à gauche avec des zéros

/*N:9 %InputValue NOFILL DP:3*/

Valeur REAL, 8 chiffres (inclut la virgule décimale), 4 chiffres après la virgule décimale, remplissage à gauche avec des zéros

/*N:8 %Tag3 ZEROFILL DP:4*/

Valeur de chaîne, pas de longueur fixe /*S:0 %Tag4*/

Valeur de chaîne, 26 caractères, longueur fixe /*S:26 %Tag4*/

Publication 1756-RM003K-FR-P – Juillet 2008 67

Page 68: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 1 Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA)

Versions plurilingues des messages d’alarme

Vous pouvez avoir des messages d’alarme en plusieurs langues. Saisissez les différentes langues dans les versions linguistiques correspondantes du logiciel de programmation RSLogix 5000 ou dans un fichier d’importation/exportation (.CSV ou .TXT).

Vous pouvez accéder au texte du message d’alarme à partir d’un fichier d’importation/exportation (.CSV ou .TXT) et ajouter des lignes supplémentaires pour les versions traduites de la chaîne de message originale. Les messages en différentes langues utilisent des codes de langue ISO dans la colonne TYPE. Le texte du message d’alarme, y compris les codes de variables intégrées, destiné à l’opérateur se trouve dans la colonne DESCRIPTION. L’identificateur (SPECIFIER) identifie la condition d’alarme.

Utilisez l’utilitaire d’importation/exportation pour créer et traduire des chaînes de message en différentes langues. Le format d’importation/exportation .TXT prend en charge les caractères à double octet, vous pouvez donc utiliser ce format pour toutes les langues, notamment le chinois, le japonais et le coréen. Le format d’importation/exportation .CSV ne prend pas en charge les caractères à double octet.

L’importation et l’exportation de messages crée toujours une fusion. Effacer un message dans un fichier .CSV ou .TXT ne l’efface pas du fichier .ACD. Pour effacer un message, importez le fichier .CSV ou .TXT avec les champs type, name et specifier remplis mais avec la description vierge.

68 Publication 1756-RM003K-FR-P – Juillet 2008

Page 69: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA) Chapitre 1

Surveillance de l’état d’alarme

Dans l’onglet d’état (Status) de la boîte de dialogue d’alarme, vous pouvez surveiller la condition d’alarme, acquitter une alarme, désactiver une alarme, supprimer une alarme ou réinitialiser une alarme. Utilisez les choix de la boîte de dialogue pour voir le comportement d’une alarme, sans avoir besoin d’une IHM opérationnelle.

Mise en mémoire tampon d’alarmes

Pour recevoir des messages d’alarme d’automate, les clients de l’alarme (comme un serveur RSLinx Enterprise) doivent créer un abonnement pour les alarmes de l’automate Logix. L’automate maintient une connexion avec chaque abonné et surveille l’état de la connexion.

Lorsque l’état de l’alarme change, les instructions d’alarme de l’automate mettent les informations nécessaires en mémoire cache (comme les horodatages et les valeurs de point associées) et demandent la transmission du message d’alarme à tous les abonnés. Le mécanisme du diffuseur transmet les messages d’alarme à chaque abonné aussi vite que possible.

Si un abonné ne confirme pas la réception du message d’alarme, ou si la connexion avec un abonné connu n’est pas bonne, le mécanisme de diffusion stocke les message d’alarme non reçus dans une mémoire tampon de 100 Ko. Chaque abonné a sa propre mémoire tampon, les problèmes de communication avec un abonné n’interfèrent donc pas avec la capacité de réception des alarmes des autres abonnés. Lorsque la mémoire tampon est pleine, les nouveaux messages d’alarme sont rejetés. La mémoire tampon est créée lorsque l’abonné établit sa connexion initiale et est maintenue pendant une durée configurable (0 à 120 minutes, 20 minutes par défaut) après la perte de sa connexion par un abonné.

Lorsque l’abonné rétablit une connexion dans l’intervalle de timeout de la mémoire tampon, il obtient l’état actuel de toutes les alarmes, il commence à recevoir les messages d’alarme actuels et transfert tous

Publication 1756-RM003K-FR-P – Juillet 2008 69

Page 70: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 1 Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA)

les messages présents dans la mémoire tampon. Même si la mémoire tampon était pleine, et que des messages ont été rejetés, les abonnés se synchronisent correctement avec l’état actuel des alarmes (notamment les horodatages InAlarmTime, RetToNormalTime et AckTime les plus récents).

La mémoire tampon continue jusqu’à être pleine. Une fois pleine, la mémoire tampon n’ajoute plus de transitions d’alarme jusqu’à ce que l’abonné libère de l’espace dans la mémoire tampon.

Accès aux informations d’alarme par le programme

Chaque instruction d’alarme possède une structure d’alarme qui stocke les informations de configuration et d’exécution de l’alarme. La structure d’alarme inclut les éléments de commande Programme et Opérateur et les éléments opérateur. Les instructions d’alarme n’utilisent pas les réglages du mode pour déterminer si l’accès programme ou l’accès opérateur est actif, ces éléments sont donc toujours actifs.

Il existe trois façons d’effectuer une action sur une instruction d’alarme.

Accès Eléments de structure d’alarme

Considérations

Programme utilisateur • ProgAck

• ProgReset

• ProgSuppress

• ProgDisable

• ProgEnable

Utilisez le programme de l’automate pour accéder aux éléments du système d’alarme par le programme. Par exemple, le programme de commande peut déterminer s’il doit désactiver une série d’alarmes liées à une seule cause. Par exemple, le programme de commande peut désactiver une instruction d’alarme, MyDigitalAlarm de type ALARM_DIGITAL, en accédant au point MyDigitalAlarm.ProgDisable.

IHM personnalisée • OperAck

• OperReset

• OperSuppress

• OperDisable

• OperEnable

Créez un écran IHM personnalisé pour accéder aux éléments du système d’alarme. Par exemple, si l’opérateur a besoin de retirer un outil, plutôt que de désactiver ou supprimer manuellement des alarmes individuelles des écrans d’alarmes, l’opérateur peut appuyer sur une touche de désactivation qui permet d’accéder à un point MyDigitalAlarm.OperDisable.

Les paramètres opérateur fonctionnent avec n’importe quelle interface opérateur Rockwell Automation ou d’un autre fournisseur pour autoriser la commande des états d’alarme.

Lorsqu’un paramètre opérateur est activé, l’instruction évalue si elle peut répondre à la requête, puis réinitialise toujours le paramètre.

Objet IHM standard Non accessible L’interaction normale de l’opérateur se fait via les objets sommaire des alarmes, bannière d’alarme et explorateur d’état d’alarme dans l’application FactoryTalk View. Cette interaction est similaire à l’option d’IHM personnalisée décrite plus haut, mais il n’y a pas de visibilité ou d’interaction programmatique.

70 Publication 1756-RM003K-FR-P – Juillet 2008

Page 71: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA) Chapitre 1

Lorsque vous créez une instruction d’alarme, vous devez créer et attribuer un point du type de données d’alarme correct pour l’alarme. Par exemple, créez MonAlarmeTOR de type ALARM_DIGITAL. En logique à relais, ces paramètres d’instruction doivent être entrés sur l’instruction :

• ProgAck

• ProgReset

• ProgDisable

• ProgEnable

En logique à relais ou texte structuré, la valeur ou le point que vous attribuez à un paramètre d’instruction (comme ProgAck) est écrit automatiquement dans le membre de point d’alarme (comme MyAnalogAlarm.ProgAck) chaque fois que l’instruction est scrutée.

En logique à relais et en texte structuré, si vous voulez accéder par le programme à la structure d’alarme, attribuez le point de structure au paramètre dans l’instruction. Par exemple, pour utiliser MyAnalogAlarm.ProgAck dans le programme, attribuez le point MyAnalogAlarm.ProgAck au paramètre ProgAck.

Publication 1756-RM003K-FR-P – Juillet 2008 71

Page 72: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 1 Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA)

Suppression ou désactivation d’alarmes

Supprimez les alarmes pour éliminer les alarmes que vous savez exister de l’IHM mais en les gardant actives. Ceci vous permet d’effacer le sommaire des alarmes tout en résolvant une alarme connue sans continuer à visualiser les informations des alarmes. Une alarme supprimée n’apparaît pas dans le sommaire opérateur ou dans les écrans des bannières, mais une alarme supprimée est tout de même envoyée aux abonnées, enregistrée dans la base de données d’historique, capable de basculer l’état d’une alarme, reçoit un horodatage et peut réagir à d’autres interactions programmatiques ou de l’opérateur.

• Lorsqu’une alarme est Supprimée, elle continue de fonctionner normalement, elle surveille le paramètre In des conditions d’alarme et répond aux requêtes d’acquittement. Tous les abonnés sont avertis de cet événement, et tout message d’alarme généré lorsque l’alarme est supprimée inclut l’état Supprimé. Les clients d’alarme peuvent répondre différemment aux alarmes supprimées. Par exemple, les alarmes supprimées peuvent être enregistrées dans la base de données d’historique mais non annoncée à l’opérateur.

• Lorsqu’une alarme est Non Supprimée, tous les abonnées sont avertis et les messages d’alarme destinés aux abonnés n’incluent plus l’état Supprimé.

Désactivez une alarme pour faire comme si elle n’existait pas dans le programme de commande. Une alarme désactivée ne bascule pas l’état d’alarme ou n’est pas enregistrée dans la base de données d’historique. Une alarme désactivée est tout de même suivie et peut être réactivée dans la fenêtre Alarm Status Explorer du logiciel FactoryTalk View SE.

• Lorsqu’une alarme est Désactivée, toutes ses conditions sont paramétrées à l’état initial (InAlarm est effacé et Acked est activé). Le paramètre In n’est pas surveillé pour détecter les conditions d’alarme. Tous les abonnés sont avertis de cet événement.

• Lorsqu’une alarme est Activée, elle surveille le paramètre In pour détecter les conditions d’alarme. Tous les abonnés sont avertis de cet événement.

72 Publication 1756-RM003K-FR-P – Juillet 2008

Page 73: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA) Chapitre 1

Exécution d’alarme d’automate

Les alarmes d’automate traitent les entrées à partir de deux sources.

Il faut faire attention lorsque vous choisissez l’emplacement pour les instructions d’alarme dans l’application. La précision de l’horodatage dépend de la rapidité avec laquelle l’instruction est scrutée après le changement d’état de la condition d’alarme. Le cumul de temps de MinDuration et les calculs de fréquence de changement requièrent des scrutations répétées, avec des intervalles de temps définis par l’application utilisateur. La scrutation des instructions d’alarme doit continuer lorsque la condition d’alarme devient fausse, de façon à ce que la transition ReturnToNormal puisse être détectée. Par exemple, si vous voulez une précision de 10 ms pour l’horodatage, vous pouvez placer les instructions d’alarme qui ont besoin de cette résolution dans une tâche périodique de 10 ms.

Source Description

Membres de point d’alarme Les membres de point d’alarme sont, pour la plupart, traités lorsque l’application utilisateur scrute l’instruction d’alarme. Ceci inclut :

• traiter les modifications des paramètres de configuration ;

• évaluer la condition d’alarme ;

• mesurer le temps écoulé pour MinDuration ;

• saisir les horodatages InAlarmTime et RetToNormalTime ;

• saisir les valeurs de point associées ;

• traiter les commandes Prog et Oper.

De plus, ces membres de l’état de point d’alarme sont actualisés lorsque les messages d’alarme sont reçus par chaque abonné, de façon asynchrone par rapport à la scrutation du programme :

• DeliveryEN, DeliveryER, DeliveryDN ;

• NoSubscriber, NoConnection, CommError, AlarmBuffered, SubscNotified.

Messages client Les messages client sont traités à mesure qu’ils sont reçus, de façon asynchrone par rapport à la scrutation du programme.

• Commandes Réinitialiser, Acquitter, Désactiver/Activer et Supprimer/Non Supprimer à partir d’un terminal RSLogix 5000.

• Commandes Réinitialiser, Acquitter, Désactiver/Activer et Supprimer/Non Supprimer à partir d’un abonné d’alarme FactoryTalk View SE.

Publication 1756-RM003K-FR-P – Juillet 2008 73

Page 74: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 1 Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA)

Utilisation de la mémoire automate

Il est recommandé d’utiliser les tailles d’alarme suivantes pour un calcul approximatif de la mémoire automate utilisée :

• Généralement 1 Ko par alarme TOR sans point associé.

Exemple d’alarme TOR Taille approximative

Alarme TOR sans point associé et cette configuration :

• Message d’alarme : Défaut contacteur (Contactor Fault)

• Classe d’alarme : Groupe réservoir A (Tank Farm A)

1 012 octets

Alarme TOR avec deux points associés et cette configuration :

• Message d’alarme : Défaut contacteur (Contactor Fault)

• Classe d’alarme : Groupe réservoir A (Tank Farm A)

• Point associé 1 = type de données DINT

• Point associé 2 = type de données DINT

1 100 octets

Alarme TOR avec deux points associés et cette configuration :

• Message d’alarme : Défaut contacteur (Contactor Fault)

• Classe d’alarme : Groupe réservoir A (Tank Farm A)

• Point associé 1 = type de données DINT

• Point associé 2 = type de données STRING

1 522 octets

74 Publication 1756-RM003K-FR-P – Juillet 2008

Page 75: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA) Chapitre 1

• Généralement 2,2 Ko par alarme analogique sans point associé.

Les chaînes de message plus longues, ainsi que les chaînes de message plurilingues, consomme plus de mémoire automate.

L’utilisation réelle de la mémoire dépend de la configuration de l’alarme, de la longueur du message et des points associés à l’alarme.

Exemple d’alarme analogique Taille approximative

Alarme analogique sans point associé et cette configuration :

• Message d’alarme HH : Alarme de seuil

• Message d’alarme H : Alarme de seuil

• Message d’alarme L : Alarme de seuil

• Message d’alarme LL : Alarme de seuil

• Message de vitesse de variation positive : Remplir trop vite

• Message de vitesse de variation négative : Vider trop vite

• Classe d’alarme : Groupe réservoir A

2 228 octets

Alarme analogique avec deux points associés et cette configuration :

• Message d’alarme HH : Alarme de seuil

• Message d’alarme H : Alarme de seuil

• Message d’alarme L : Alarme de seuil

• Message d’alarme LL : Alarme de seuil

• Message de vitesse de variation positive : Remplir trop vite

• Message de vitesse de variation négative : Vider trop vite

• Classe d’alarme : Groupe réservoir A

• Point associé 1 = type de données DINT

• Point associé 2 = type de données DINT

2 604 octets

Alarme analogique avec deux points associés et cette configuration :

• Message d’alarme HH : Alarme de seuil

• Message d’alarme H : Alarme de seuil

• Message d’alarme L : Alarme de seuil

• Message d’alarme LL : Alarme de seuil

• Message de vitesse de variation positive : Remplir trop vite

• Message de vitesse de variation négative : Vider trop vite

• Classe d’alarme : Groupe réservoir A

• Point associé 1 = type de données DINT

• Point associé 2 = type de données STRING

4 536 octets

Publication 1756-RM003K-FR-P – Juillet 2008 75

Page 76: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 1 Instructions Logix d’alarmes et d’événements FactoryTalk (ALMD, ALMA)

Temps de scrutation

Les temps d’exécution suivants montrent comment les instructions ALMD et ALMA affectent la durée totale de scrutation.

Un changement d’état d’alarme est tout événement qui modifie la condition de l’alarme ; par exemple, acquitter ou supprimer l’alarme. Minimisez la possibilité d’un grand nombre d’alarmes changeant d’état simultanément (rafales d’alarmes) en créant des dépendances sur les alarmes associées. Les rafales d’alarmes importantes peuvent avoir un impact significatif sur le temps de scrutation du code de l’application.

Etat de la ligne Temps d’exécution

Alarme TOR (ALMD)

Alarme analogique (ALMA)

Pas de changement d’état d’alarme

Ligne fausse

8 μs 17 μs

Ligne vraie 8 μs 60 μs

Changement d’état d’alarme

Ligne fausse

35 μs 17 μs

Ligne vraie 35 μs 126 μs

76 Publication 1756-RM003K-FR-P – Juillet 2008

Page 77: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 2

Instructions sur bit(XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Introduction Utilisez les instructions sur bit (type à relais) pour surveiller et commander l’état des bits.

Si vous voulez Utilisez cette instruction Disponible dans ces langages Voir page

activer les sorties lorsqu’un bit est activé XIC Logique à relais

Texte structuré(1)

78

activer les sorties lorsqu’un bit est désactivé XIO Logique à relais

Texte structuré(1)

80

activer un bit OTE Logique à relais

Texte structuré(1)

82

activer un bit (rémanent) OTL Logique à relais

Texte structuré(1)

84

désactiver un bit (rémanent) OTU Logique à relais

Texte structuré(1)

86

activer les sorties pendant une scrutation à chaque fois qu’une ligne devient vraie

ONS Logique à relais

Texte structuré(1)

88

activer un bit pendant une scrutation à chaque fois qu’une ligne devient vraie

OSR Logique à relais 91

activer un bit pendant une scrutation à chaque fois que la ligne devient fausse

OSF Logique à relais 94

activer un bit pendant une scrutation à chaque fois que le bit d’entrée est activé dans le bloc fonctionnel

OSRI Texte structuréBloc fonctionnel

96

activer un bit pendant une scrutation à chaque fois que le bit d’entrée est désactivé dans le bloc fonctionnel

OSFI Texte structuréBloc fonctionnel

99

(1) Il n’y a pas d’instruction en texte structuré équivalente. Utilisez une autre programmation en texte structuré pour obtenir le même résultat. Voir la description de l’instruction.

77Publication 1756-RM003K-FR-P – Juillet 2008 77

Page 78: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 2 Instructions sur bit (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Examiner si fermé (XIC) L’instruction XIC examine le bit de données pour voir s’il est activé.

Opérandes :

Logique à relais

Texte structuré

Le texte structuré n’a pas d’instruction XIC, mais vous pouvez obtenir le même résultat en utilisant une structure SI...ALORS (IF...THEN).

IF data_bit THEN

<déclaration>;

END_IF;

Pour plus d’informations sur la syntaxe des structures du texte structuré, voir Annexe 637B, Attributs de bloc fonctionnel.

Description : L’instruction XIC examine le bit de données pour voir s’il est activé.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Exécution :

Opérande Type Format Description

bit de données BOOL point bit à tester

Condition Action logique à relais

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

examiner le bit de données

bit de données = 0

bit de données = 1

l’état de sortie de la ligne est faux

l’état de sortie de la ligne est vrai

l’état d’entrée de la ligne est vrai

fin

78 Publication 1756-RM003K-FR-P – Juillet 2008

Page 79: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions sur bit (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) Chapitre 2

Exemple 1 : Si limit_switch_1 est activé, l’instruction suivante est activée (l’état de sortie de la ligne est vrai).

Logique à relais

Texte structuré

IF limit_switch THEN

<déclaration>;

END_IF;

Exemple 2 : Si S:V est activé (indique qu’un dépassement de capacité s’est produit), l’instruction suivante est activée (l’état de sortie de la ligne est vrai).

Logique à relais

Texte structuré

IF S:V THEN

<déclaration>;

END_IF;

Publication 1756-RM003K-FR-P – Juillet 2008 79

Page 80: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 2 Instructions sur bit (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Examiner si ouvert (XIO) L’instruction XIO examine le bit de données pour voir s’il est désactivé.

Opérandes :

Logique à relais

Texte structuré

Le texte structuré n’a pas d’instruction XIO, mais vous pouvez obtenir le même résultat en utilisant une structure SI...ALORS (IF...THEN).

IF NOT data_bit THEN

<déclaration>;

END_IF;

Pour plus d’informations sur la syntaxe des structures du texte structuré, voir Annexe 637B, Attributs de bloc fonctionnel.

Description : L’instruction XIO examine le bit de données pour voir s’il est désactivé.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Exécution :

Opérande Type Format Description

bit de données BOOL point bit à tester

Condition Action logique à relais

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

examiner le bit de données

bit de données = 0

bit de données = 1

l’état de sortie de la ligne est vrai

l’état de sortie de la ligne est faux

l’état d’entrée de la ligne est vrai

fin

80 Publication 1756-RM003K-FR-P – Juillet 2008

Page 81: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions sur bit (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) Chapitre 2

Exemple 1 : Si limit_switch_2 est désactivé, l’instruction suivante est activée (l’état de sortie de la ligne est vrai).

Logique à relais

Texte structuré

IF NOT limit_switch_2 THEN

<déclaration>;

END_IF;

Exemple 2 : Si S:V est désactivé (indique qu’aucun dépassement de capacité ne s’est produit), l’instruction suivante est activée (l’état de sortie de la ligne est vrai).

Logique à relais

Texte structuré

IF NOT S:V THEN

<déclaration>;

END_IF;

Publication 1756-RM003K-FR-P – Juillet 2008 81

Page 82: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 2 Instructions sur bit (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Activation de sortie (OTE) L’instruction OTE active ou désactive le bit de données.

Opérandes :

Logique à relais

Texte structuré

Le texte structuré n’a pas d’instruction OTE, mais vous pouvez obtenir le même résultat en utilisant une affectation non rémanente.

data_bit [:=] BOOL_expression;

Pour plus d’informations sur la syntaxe des affectations et des expressions du texte structuré, voir Annexe 637B, Attributs de bloc fonctionnel.

Description : Lorsque l’instruction OTE est activée, l’automate active le bit de données. Lorsque l’instruction OTE est désactivée, l’automate désactive le bit de données.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Exécution :

Opérande Type Format Description

bit de données BOOL point bit à activer ou désactiver

Condition Action logique à relais

Pré-scrutation Le bit de données est désactivé.

L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux Le bit de données est désactivé.

L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai Le bit de données est activé.

L’état de sortie de la ligne est réglé sur vrai.

Post-scrutation Le bit de données est désactivé.

L’état de sortie de la ligne est réglé sur faux.

82 Publication 1756-RM003K-FR-P – Juillet 2008

Page 83: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions sur bit (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) Chapitre 2

Exemple : Lorsque switch est activé, l’instruction OTE active (allume) light_1. Lorsque switch est désactivé, l’instruction OTE efface (éteint) light_1.

Logique à relais

Texte structuré

light_1 [:=] switch;

Publication 1756-RM003K-FR-P – Juillet 2008 83

Page 84: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 2 Instructions sur bit (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Verrouillage de sortie (OTL) L’instruction OTL active (verrouille) le bit de données.

Opérandes :

Logique à relais

Texte structuré

Le texte structuré n’a pas d’instruction OTL, mais vous pouvez obtenir le même résultat en utilisant une structure SI...ALORS (IF...THEN).

IF BOOL_expression THEN

data_bit := 1;

END_IF;

Pour plus d’informations sur la syntaxe des structures, expressions et affectations du texte structuré, voir Annexe 637B, Attributs de bloc fonctionnel.

Description : Lorsqu’elle est activée, l’instruction OTL active le bit de données. Le bit de données reste activé jusqu’à ce qu’il soit désactivé, généralement par une instruction OTU. Lorsqu’elle est désactivée, l’instruction OTL ne change pas l’état du bit de données.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Exécution :

Opérande Type Format Description

bit de données BOOL point bit à activer

Condition Action logique à relais

Pré-scrutation Le bit de données n’est pas modifié.

L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux Le bit de données n’est pas modifié.

L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai Le bit de données est activé.

L’état de sortie de la ligne est réglé sur vrai.

Post-scrutation Le bit de données n’est pas modifié.

L’état de sortie de la ligne est réglé sur faux.

84 Publication 1756-RM003K-FR-P – Juillet 2008

Page 85: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions sur bit (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) Chapitre 2

Exemple : Lorsqu’elle est activée, l’instruction OTL active light_2. Le bit de données reste activé jusqu’à ce qu’il soit désactivé, généralement par une instruction OTU.

Logique à relais

Texte structuré

IF BOOL_expression THEN

light_2 := 1;

END_IF;

Publication 1756-RM003K-FR-P – Juillet 2008 85

Page 86: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 2 Instructions sur bit (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Déverrouillage de sortie (OTU)

L’instruction OTU désactive (déverrouille) le bit de données.

Opérandes :

Logique à relais

Texte structuré

Le texte structuré n’a pas d’instruction OTU, mais vous pouvez obtenir le même résultat en utilisant une structure SI...ALORS (IF...THEN).

IF BOOL_expression THEN

data_bit := 0;

END_IF;

Pour plus d’informations sur la syntaxe des structures, expressions et affectations du texte structuré, voir Annexe 637B, Attributs de bloc fonctionnel.

Description : Lorsqu’elle est activée, l’instruction OTU désactive le bit de données. Lorsqu’elle est désactivée, l’instruction OTU ne change pas l’état du bit de données.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Exécution :

Opérande Type Format Description

bit de données BOOL point bit à désactiver

Condition Action logique à relais

Pré-scrutation Le bit de données n’est pas modifié.

L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux Le bit de données n’est pas modifié.

L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai Le bit de données est désactivé.

L’état de sortie de la ligne est réglé sur vrai.

Post-scrutation Le bit de données n’est pas modifié.

L’état de sortie de la ligne est réglé sur faux.

86 Publication 1756-RM003K-FR-P – Juillet 2008

Page 87: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions sur bit (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) Chapitre 2

Exemple : Lorsqu’elle est activée, l’instruction OTU désactive light_2.

Logique à relais

Texte structuré

IF BOOL_expression THEN

light_2 := 0;

END_IF;

Publication 1756-RM003K-FR-P – Juillet 2008 87

Page 88: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 2 Instructions sur bit (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Impulsion (ONS) L’instruction ONS active ou désactive le reste de la ligne, selon l’état du bit de stockage.

Opérandes :

Logique à relais

Texte structuré

Le texte structuré n’a pas d’instruction ONS, mais vous pouvez obtenir le même résultat en utilisant une structure SI...ALORS (IF...THEN).

IF BOOL_expression AND NOT storage_bit THEN

<déclaration>;

END_IF;

storage_bit := BOOL_expression;

Pour plus d’informations sur la syntaxe des structures et expressions du texte structuré, voir Annexe 637B, Attributs de bloc fonctionnel.

Description : Lorsqu’elle est activée et que le bit de mémoire est désactivé, l’instruction ONS active le reste de la ligne. Lorsqu’elle est désactivée ou lorsque le bit de mémoire est activé, l’instruction ONS désactive le reste de la ligne.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Opérande Type Format Description

bit de mémoire BOOL point bit de mémoire interne

mémorise l’état d’entrée de la ligne à partir de la dernière exécution de l’instruction

88 Publication 1756-RM003K-FR-P – Juillet 2008

Page 89: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions sur bit (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) Chapitre 2

Exécution :

Exemple : Vous devez généralement faire précéder l’instruction ONS d’une instruction d’entrée parce que vous scrutez l’instruction ONS lorsqu’elle est activée et lorsqu’elle est désactivée pour qu’elle fonctionne correctement. Une fois que l’instruction ONS est activée, l’état d’entrée de la ligne doit être désactivé ou le bit de mémoire doit être désactivé pour que l’instruction ONS soit activée à nouveau.

Condition Action logique à relais

Pré-scrutation Le bit de mémoire est activé pour empêcher un déclenchement incorrect pendant la première scrutation.

L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux Le bit de mémoire est désactivé.

L’état de sortie de la ligne est réglé sur faux.

Post-scrutation Le bit de mémoire est désactivé.

L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai

fin

examiner le bit de mémoire

bit de mémoire = 0

bit de mémoire = 1

le bit de mémoire est activé

l’état de sortie de la ligne est vrai

le bit de mémoire reste activé

l’état de sortie de la ligne est faux

Publication 1756-RM003K-FR-P – Juillet 2008 89

Page 90: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 2 Instructions sur bit (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Lors de toute scrutation pour laquelle limit_switch_1 est désactivé ou storage_1 est activé, la ligne n’a aucun effet. Lors de toute scrutation pour laquelle limit_switch_1 est activé et storage_1 est désactivé, l’instruction ONS active storage_1 et l’instruction ADD augmente sum de 1. Tant que limit_switch_1 reste activé, sum garde la même valeur. limit_switch_1 doit à nouveau passer de désactivé à activé pour que sum augmente à nouveau.

Logique à relais

Texte structuré

IF limit_switch_1 AND NOT storage_1 THEN

sum := sum + 1;

END_IF;

storage_1 := limit_switch_1;

90 Publication 1756-RM003K-FR-P – Juillet 2008

Page 91: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions sur bit (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) Chapitre 2

Impulsion sur front montant (OSR)

L’instruction OSR active ou désactive le bit de sortie, selon l’état du bit de mémoire.

Cette instruction est disponible en texte structuré et en bloc fonctionnel sous le nom OSRI, voir page 96.

Opérandes :

Logique à relais

Description : Lorsqu’elle est activée et que le bit de mémoire est désactivé, l’instruction OSR active le bit de sortie. Lorsqu’elle est activée et que le bit de mémoire est activé ou désactivé, l’instruction OSR désactive le bit de sortie.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Exécution :

Opérande Type Format Description

bit de mémoire BOOL point bit de mémoire interne

mémorise l’état d’entrée de la ligne à partir de la dernière exécution de l’instruction

bit de sortie BOOL point bit à activer

état d’entrée de la ligne

bit de mémoire

bit de sortie

l’instruction estexécutée

l’instruction est réinitialisée au cours de la scrutation suivante

Publication 1756-RM003K-FR-P – Juillet 2008 91

Page 92: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 2 Instructions sur bit (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Condition Action logique à relais

Pré-scrutation Le bit de mémoire est activé pour empêcher un déclenchement incorrect pendant la première scrutation.

Le bit de sortie est désactivé.

L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux Le bit de mémoire est désactivé.

Le bit de sortie n’est pas modifié.

L’état de sortie de la ligne est réglé sur faux.

Post-scrutation Le bit de mémoire est désactivé.

Le bit de sortie n’est pas modifié.

L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai

fin

examiner le bit de mémoire

bit de mémoire = 0

bit de mémoire = 1

le bit de mémoire est activé

le bit de sortie est activé l’état de sortie de la ligne est vrai

le bit de mémoire reste activé

le bit de sortie est désactivé l’état de sortie de la ligne est vrai

92 Publication 1756-RM003K-FR-P – Juillet 2008

Page 93: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions sur bit (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) Chapitre 2

Exemple : Chaque fois que limit_switch_1 passe de désactivé à activé, l’instruction OSR active output_bit_1 et l’instruction ADD augmente sum de 5. Tant que limit_switch_1 reste activé, sum garde la même valeur. limit_switch_1 doit à nouveau passer de désactivé à activé pour que sum augmente à nouveau. Vous pouvez utiliser output_bit_1 sur plusieurs lignes pour déclencher d’autres opérations.

Publication 1756-RM003K-FR-P – Juillet 2008 93

Page 94: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 2 Instructions sur bit (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Impulsion sur front descendant (OSF)

L’instruction OSF active ou désactive le bit de sortie, selon l’état du bit de mémoire.

Cette instruction est disponible en texte structuré et en bloc fonctionnel sous le nom OSFI, voir page 99.

Opérandes :

Opérandes de logique à relais

Description : Lorsqu’elle est désactivée et que le bit de mémoire est activé, l’instruction OSF active le bit de sortie. Lorsqu’elle est désactivée et que le bit de mémoire est désactivé ou activé, l’instruction OSF désactive le bit de sortie.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Opérande Type Format Description

bit de mémoire BOOL point bit de mémoire interne

mémorise l’état d’entrée de la ligne à partir de la dernière exécution de l’instruction

bit de sortie BOOL point bit à activer

état d’entrée dela ligne

bit de mémoire

bit de sortie

l’instruction estexécutée

l’instruction est réinitialisée au cours de la scrutation suivante

94 Publication 1756-RM003K-FR-P – Juillet 2008

Page 95: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions sur bit (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) Chapitre 2

Exécution :

Exemple : Chaque fois que limit_switch_1 passe d’activé à désactivé, l’instruction OSF active output_bit_2 et l’instruction ADD augmente sum de 5. Tant que limit_switch_1 reste désactivé, sum garde la même valeur. limit_switch_1 doit à nouveau passer d’activé à désactivé pour que sum augmente à nouveau. Vous pouvez utiliser output_bit_2 sur plusieurs lignes pour déclencher d’autres opérations.

Condition Action logique à relais

Pré-scrutation Le bit de mémoire est désactivé pour empêcher un déclenchement incorrect pendant la première scrutation.

Le bit de sortie est désactivé.

L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai Le bit de mémoire est activé.

Le bit de sortie est désactivé.

L’état de sortie de la ligne est réglé sur vrai.

Post-scrutation Voir ci-dessus le cas où l’état d’entrée de la ligne est faux.

L’état d’entrée de la ligne est faux

fin

examiner le bit de mémoire

bit de mémoire = 0

bit de mémoire = 1

le bit de mémoire reste désactivé

le bit de sortie est désactivé l’état de sortie de la ligne est faux

le bit de mémoire est désactivé

le bit de sortie est activé l’état de sortie de la ligne est faux

Publication 1756-RM003K-FR-P – Juillet 2008 95

Page 96: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 2 Instructions sur bit (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Impulsion sur front montant avec entrée (OSRI)

L’instruction OSRI active le bit de sortie pour l’exécution d’un cycle lorsque le bit d’entrée bascule de désactivé à activé.

Cette instruction est disponible en logique à relais sous le nom OSR, voir page 91.

Opérandes :

Texte structuré

Bloc fonctionnel

Structure FBD_ONESHOT

Opérande Type Format Description

point OSRI FBD_ONESHOT structure structure OSRI

Opérande Type Format Description

point OSRI FBD_ONESHOT structure structure OSRI

OSRI (OSRI_tag);

Paramètre d’entrée Type de données

Description

EnableIn BOOL Bloc fonctionnel :

Si désactivé, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Lorsqu’activé, l’instruction est exécutée.

Réglage par défaut activé.

Texte structuré :

Pas d’effet. L’instruction est exécutée.

InputBit BOOL Bit d’entrée. Ceci est équivalent à l’état de la ligne pour l’instruction logique à relais OSR.

Réglage par défaut désactivé.

Paramètre de sortie Type de données

Description

EnableOut BOOL L’instruction a produit un résultat valable.

OutputBit BOOL Bit de sortie

96 Publication 1756-RM003K-FR-P – Juillet 2008

Page 97: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions sur bit (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) Chapitre 2

Description : Lorsque InputBit est activé et InputBitn–1 est désactivé, l’instruction

OSRI active OutputBit. Lorsque InputBitn–1 est activé ou lorsque

InputBit est désactivé, l’instruction OSRI désactive OutputBit.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Exécution :

InputBit

OutputBit

40048l’instruction est

exécutéel’instruction est réinitialisée au cours de la scrutation suivante

InputBitn–1

Condition Action bloc fonctionnel Action texte structuré

Pré-scrutation Aucune. Aucune.

Première scrutation de l’instruction

InputBitn–1 est activé. InputBitn–1 est activé.

Première exécution de l’instruction

InputBitn–1 est activé. InputBitn–1 est activé.

EnableIn est désactivé EnableOut est désactivé, l’instruction ne fait rien et les sorties ne sont pas actualisées.

EnableIn est activé Lors d’une transition de désactivé à activé de InputBit, l’instruction active InputBitn–1.

L’instruction est exécutée.

EnableOut est activé.

Lors d’une transition de désactivé à activé de InputBit, l’instruction active InputBitn–1.

EnableIn est toujours activé.

L’instruction est exécutée.

Post-scrutation Aucune. Aucune.

Publication 1756-RM003K-FR-P – Juillet 2008 97

Page 98: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 2 Instructions sur bit (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Exemple : Lorsque limit_switch1 passe de désactivé à activé, l’instruction OSRI active OutputBit pendant une scrutation.

Texte structuré

OSRI_01.InputBit := limit_switch1;

OSRI(OSRI_01);

State := OSRI_01.OutputBit;

Bloc fonctionnel

98 Publication 1756-RM003K-FR-P – Juillet 2008

Page 99: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions sur bit (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) Chapitre 2

Impulsion sur front descendant avec entrée (OSFI)

L’instruction OSFI active le bit OutputBit pour l’exécution d’un cycle lorsque le bit InputBit bascule d’activé à désactivé.

Cette instruction est disponible en logique à relais sous le nom OSF, voir page 94.

Opérandes :

Texte structuré

Bloc fonctionnel

Structure FBD_ONESHOT

Opérande Type Format Description

point OSFI FBD_ONESHOT structure structure OSFI

Opérande Type Format Description

point OSFI FBD_ONESHOT structure structure OSFI

OSFI (OSFI_tag);

Paramètre d’entrée Type de données

Description

EnableIn BOOL Bloc fonctionnel :

Si désactivé, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Lorsqu’activé, l’instruction est exécutée.

Réglage par défaut activé.

Texte structuré :

Pas d’effet. L’instruction est exécutée.

InputBit BOOL Bit d’entrée. Ceci est équivalent à l’état de la ligne pour l’instruction logique à relais OSF.

Réglage par défaut désactivé.

Paramètre de sortie Type de données

Description

EnableOut BOOL L’instruction a produit un résultat valable.

OutputBit BOOL Bit de sortie

Publication 1756-RM003K-FR-P – Juillet 2008 99

Page 100: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 2 Instructions sur bit (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Description : Lorsque InputBit est désactivé et InputBitn–1 est activé, l’instruction

OSFI active OutputBit. Lorsque InputBitn–1 est désactivé ou lorsque

InputBit est activé, l’instruction OSFI désactive OutputBit.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Exécution :

InputBit

OutputBit

l’instruction estexécutée

l’instruction est réinitialisée au cours de la scrutation suivante

InputBitn–1

40047

Condition Action bloc fonctionnel Action texte structuré

Pré-scrutation Aucune. Aucune.

Première scrutation de l’instruction

InputBitn–1 est désactivé. InputBitn–1 est désactivé.

Première exécution de l’instruction

InputBitn–1 est désactivé. InputBitn–1 est désactivé.

EnableIn est désactivé EnableOut est désactivé, l’instruction ne fait rien et les sorties ne sont pas actualisées.

EnableIn est activé Lors d’une transition de désactivé à activé de InputBit, l’instruction désactive InputBitn–1.

L’instruction est exécutée.

EnableOut est activé.

Lors d’une transition de désactivé à activé de InputBit, l’instruction désactive InputBitn–1.

EnableIn est toujours activé.

L’instruction est exécutée.

Post-scrutation Aucune. Aucune.

100 Publication 1756-RM003K-FR-P – Juillet 2008

Page 101: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions sur bit (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) Chapitre 2

Exemple : Lorsque limit_switch1 passe d’activé à désactivé, l’instruction OSFI active OutputBit pendant une scrutation.

Texte structuré

OSFI_01.InputBit := limit_switch1;

OSFI(OSFI_01);

Output_state := OSFI_01.OutputBit;

Bloc fonctionnel

Publication 1756-RM003K-FR-P – Juillet 2008 101

Page 102: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 2 Instructions sur bit (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Notes :

102 Publication 1756-RM003K-FR-P – Juillet 2008

Page 103: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 3

Instructions de temporisation et de comptage(TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Introduction Les temporisateurs et les compteurs commandent les opérations sur la base du temps ou du nombre d’événements.

La base de temps pour tous les temporisateurs est de 1 ms.

Si vous voulez Utilisez cette instruction Disponible dans ces langages Voir page

mesurer la durée pendant laquelle un temporisateur est activé

TON Logique à relais 104

mesurer la durée pendant laquelle un temporisateur est désactivé

TOF Logique à relais 108

cumuler le temps RTO Logique à relais 112

mesurer la durée pendant laquelle un temporisateur est activé avec réinitialisation intégrée en bloc fonctionnel

TONR Texte structuré

Bloc fonctionnel

116

mesurer la durée pendant laquelle un temporisateur est désactivé avec réinitialisation intégrée en bloc fonctionnel

TOFR Texte structuré

Bloc fonctionnel

120

cumuler le temps avec réinitialisation intégrée en bloc fonctionnel

RTOR Texte structuré

Bloc fonctionnel

124

comptage progressif CTU Logique à relais 128

comptage dégressif CTD Logique à relais 132

comptage progressif et dégressif en bloc fonctionnel

CTUD Texte structuré

Bloc fonctionnel

136

réinitialiser un temporisateur ou un compteur RES Logique à relais 140

103Publication 1756-RM003K-FR-P – Juillet 2008 103

Page 104: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 3 Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Temporisateur à l’enclenchement (TON)

L’instruction TON est un temporisateur non rémanent qui cumule le temps pendant lequel l’instruction est activée (l’état d’entrée de la ligne est vrai).

Cette instruction est disponible en texte structuré et en bloc fonctionnel sous le nom TONR, voir page 116.

Opérandes :

Logique à relais

Structure temporisateur

Description : L’instruction TON accumule le temps jusqu’à ce que :

• l’instruction TON soit désactivée ;

• .ACC ≥ .PRE.

L’unité de temps est toujours 1 ms. Par exemple, pour un temporisateur de 2 secondes, saisissez 2 000 pour la valeur .PRE.

Opérande Type Format Description

temporisateur TIMER point structure temporisateur

présélection DINT immédiat durée du retard (cumul du temps)

accumulateur DINT immédiat nombre total de ms comptées par le temporisateur

la valeur initiale est typiquement 0

Mnémonique Type de données Description

.EN BOOL Le bit d’activation indique que l’instruction TON est activée.

.TT BOOL Le bit de temporisation indique que l’opération de temporisation est en cours.

.DN BOOL Le bit de fin est activé lorsque .ACC ≥ .PRE.

.PRE DINT La valeur présélectionnée définit la valeur (en unités de 1 ms) que la valeur accumulée doit atteindre avant que l’instruction active le bit .DN.

.ACC DINT La valeur accumulée définit le nombre de ms écoulé depuis l’activation de l’instruction TON.

104 Publication 1756-RM003K-FR-P – Juillet 2008

Page 105: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Chapitre 3

Lorsque l’instruction TON est désactivée, la valeur .ACC est effacée.

Un temporisateur s’exécute en soustrayant le temps de la dernière scrutation de l’heure actuelle :

ACC = ACC + (current_time – last_time_scanned)

Après avoir actualisé ACC, le temporisateur active last_time_scanned = current_time. Ceci permet au temporisateur d’être prêt pour la prochaine scrutation.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur :

état d’entrée de la ligne

bit d’activation du temporisateur (.EN)

bit de fin de temporisation (.EN)

valeur accumulée du temporisateur (.ACC)

bit de temporisation en cours (.EN)

présélection

0 16649

le temporisateur n’a pas atteint la valeur .PRE

Délai ON

IMPORTANT Assurez-vous de scruter le temporisateur au moins toutes les 69 minutes lors de son fonctionnement. Autrement, la valeur ACC ne sera pas correcte.

La plage de la valeur last_time_scanned peut aller jusqu’à 69 minutes. Le calcul du temporisateur revient à sa valeur de départ si vous ne le scrutez pas dans les 69 minutes. Dans ce cas, la valeur ACC ne sera pas correcte.

Lorsque le temporisateur fonctionne, scrutez-le dans les 69 minutes si vous le mettez dans un des éléments suivants :

• sous-programme ;• section de code entre les instructions JMP et LBL ;• graphe de fonctionnement séquentiel (SFC) ;• tâche sur événement ou périodique ;• sous-programme d’état d’une phase.

Un défaut majeur se produit si Type de défaut Code de défaut

.PRE < 0 4 34

.ACC < 0 4 34

Publication 1756-RM003K-FR-P – Juillet 2008 105

Page 106: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 3 Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Exécution :

Condition Action logique à relais

Pré-scrutation Les bits .EN, .TT et .DN sont remis à zéro.

La valeur .ACC est remise à zéro.

L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux Les bits .EN, .TT et .DN sont remis à zéro.

La valeur .ACC est remise à zéro.

L’état de sortie de la ligne est réglé sur faux.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

examiner le bit .DNbit .DN = 1

bit .DN = 0

le bit .EN est activéle bit .TT est activélast_time = current_time

L’état d’entrée de la ligne est vrai

examiner .ACC .ACC ≥ .PRE

.ACC < .PRE

le bit .TT est activé.ACC = .ACC + (current_time – last_time)last_time = current_time

la valeur .ACC revient à sa

valeur de départ

non

oui

.ACC = 2 147 483 647

examiner le bit .ENbit .EN = 0

bit .EN = 1

l’état de sortie de la ligne est vrai

fin

.DN est activéle bit .TT est désactivéle bit .EN est activé

106 Publication 1756-RM003K-FR-P – Juillet 2008

Page 107: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Chapitre 3

Exemple : Lorsque limit_switch_1 est activé, light_2 est allumé pendant 180 ms (timer_1 compte le temps). Lorsque timer_1.acc atteint 180, light_2 s’éteint et light_3 s’allume. Light_3 reste allumé jusqu’à ce que l’instruction TON soit désactivée. Si limit_switch_1 est désactivé lorsque timer_1 compte le temps, light_2 s’éteint.

Publication 1756-RM003K-FR-P – Juillet 2008 107

Page 108: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 3 Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Temporisateur au déclenchement (TOF)

L’instruction TOF est un temporisateur non rémanent qui accumule le temps lorsque l’instruction est activée (l’état d’entrée de la ligne est faux).

Cette instruction est disponible en texte structuré et en bloc fonctionnel sous le nom TOFR, voir page 120.

Opérandes :

Logique à relais

Structure temporisateur

Description : L’instruction TOF accumule le temps jusqu’à ce que :

• l’instruction TOF soit désactivée ;

• .ACC ≥ .PRE.

L’unité de temps est toujours 1 ms. Par exemple, pour un temporisateur de 2 secondes, saisissez 2 000 pour la valeur .PRE.

Opérande Type Format Description

temporisateur TIMER point structure temporisateur

présélection DINT immédiat durée du retard (cumul du temps)

accumulateur DINT immédiat nombre total de ms comptées par le temporisateur

la valeur initiale est typiquement 0

Mnémonique Type de données Description

.EN BOOL Le bit d’activation indique que l’instruction TOF est activée.

.TT BOOL Le bit de temporisation indique que l’opération de temporisation est en cours.

.DN BOOL Le bit de fin est désactivé lorsque .ACC ≥ .PRE.

.PRE DINT La valeur présélectionnée définit la valeur (en unités de 1 ms) que la valeur accumulée doit atteindre avant que l’instruction désactive le bit .DN.

.ACC DINT La valeur accumulée définit le nombre de ms écoulé depuis l’activation de l’instruction TOF.

108 Publication 1756-RM003K-FR-P – Juillet 2008

Page 109: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Chapitre 3

Lorsque l’instruction TOF est désactivée, la valeur .ACC est remise à zéro.

Un temporisateur s’exécute en soustrayant le temps de la dernière scrutation de l’heure actuelle :

ACC = ACC + (current_time – last_time_scanned)

Après avoir actualisé ACC, le temporisateur active last_time_scanned = current_time. Ceci permet au temporisateur d’être prêt pour la prochaine scrutation.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur :

Exécution :

état d’entrée de la ligne

bit d’activation du temporisateur (.EN)

bit de fin de temporisation (.EN)

valeur accumulée du temporisateur (.ACC)

bit de temporisation en cours (.EN)

0 16650

le temporisateur n’a pas atteint la valeur .PRE

présélection

temporisation au

déclenchem.

IMPORTANT Assurez-vous de scruter le temporisateur au moins toutes les 69 minutes lors de son fonctionnement. Autrement, la valeur ACC ne sera pas correcte.

La plage de la valeur last_time_scanned peut aller jusqu’à 69 minutes. Le calcul du temporisateur revient à sa valeur de départ si vous ne le scrutez pas dans les 69 minutes. Dans ce cas, la valeur ACC ne sera pas correcte.

Lorsque le temporisateur fonctionne, scrutez-le dans les 69 minutes si vous le mettez dans un des éléments suivants :

• sous-programme ;• section de code entre les instructions JMP et LBL ;• graphe de fonctionnement séquentiel (SFC) ;• tâche sur événement ou périodique ;• sous-programme d’état d’une phase.

Un défaut majeur se produit si Type de défaut Code de défaut

.PRE < 0 4 34

.ACC < 0 4 34

Publication 1756-RM003K-FR-P – Juillet 2008 109

Page 110: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 3 Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Condition Action logique à relais

Pré-scrutation Les bits .EN, .TT et .DN sont remis à zéro.

La valeur .ACC est activée de sorte à être égale à la valeur .PRE.

L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai Les bits .EN, .TT et .DN sont activés.

La valeur .ACC est remise à zéro.

L’état de sortie de la ligne est réglé sur vrai.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

examiner le bit .DNbit .DN = 0

bit .DN = 1

le bit .EN est désactivéle bit .TT est activélast_time = current_time

L’état d’entrée de la ligne est faux

examiner .ACC.ACC ≥ .PRE

.ACC < .PRE

le bit .TT est activé.ACC = .ACC + (current_time – last_time)last_time = current_time

la valeur .ACC revient à sa

valeur de départ

non

oui

.ACC = 2 147 483 647

examiner le bit .ENbit .EN = 1

bit .EN = 0

l’état de sortie de la ligne est faux

fin

.DN est désactivéle bit .TT est désactivéle bit .EN est désactivé

110 Publication 1756-RM003K-FR-P – Juillet 2008

Page 111: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Chapitre 3

Exemple : Lorsque limit_switch_2 est désactivé, light_2 est allumé pendant 180 ms (timer_2 compte le temps). Lorsque timer_2.acc atteint 180, light_2 s’éteint et light_3 s’allume. Light_3 reste allumé jusqu’à ce que l’instruction TOF soit activée. Si limit_switch_2 est activé lorsque timer_2 compte le temps, light_2 s’éteint.

Publication 1756-RM003K-FR-P – Juillet 2008 111

Page 112: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 3 Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Temporisateur rémanent (RTO)

L’instruction RTO est un temporisateur rémanent qui accumule le temps lorsque l’instruction est activée.

Cette instruction est disponible en texte structuré et en bloc fonctionnel sous le nom RTOR, voir page 124.

Opérandes :

Logique à relais

Structure temporisateur

Description : L’instruction RTO accumule le temps jusqu’à ce qu’elle soit désactivée. Lorsque l’instruction RTO est désactivée, elle garde sa valeur .ACC. Vous devez effacer la valeur .ACC, généralement avec une instruction RES qui renvoie à la même structure TIMER.

Opérande Type Format Description

temporisateur TIMER point structure temporisateur

présélection DINT immédiat durée du retard (cumul du temps)

accumulateur DINT immédiat nombre de ms compté par le temporisateur

la valeur initiale est typiquement 0

Mnémonique Type de données Description

.EN BOOL Le bit d’activation indique que l’instruction RTO est activée.

.TT BOOL Le bit de temporisation indique que l’opération de temporisation est en cours.

.DN BOOL Le bit de fin indique que .ACC ≥ .PRE.

.PRE DINT La valeur présélectionnée définit la valeur (en unités de 1 ms) que la valeur accumulée doit atteindre avant que l’instruction active le bit .DN.

.ACC DINT La valeur accumulée définit le nombre de ms écoulé depuis l’activation de l’instruction RTO.

112 Publication 1756-RM003K-FR-P – Juillet 2008

Page 113: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Chapitre 3

L’unité de temps est toujours 1 ms. Par exemple, pour un temporisateur de 2 secondes, saisissez 2 000 pour la valeur .PRE.

Un temporisateur s’exécute en soustrayant le temps de la dernière scrutation de l’heure actuelle :

ACC = ACC + (current_time – last_time_scanned)

Après avoir actualisé ACC, le temporisateur active last_time_scanned = current_time. Ceci permet au temporisateur d’être prêt pour la prochaine scrutation.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur :

état d’entrée de la ligne

bit d’activation du temporisateur (.EN)

bit de fin de temporisation (.EN)

valeur accumulée du temporisateur (.ACC)

bit de temporisation en cours (.EN)

présélection

0

16651

état de ligne qui commande l’instruction RES

le temporisateur n’a pas atteint la valeur .PRE

IMPORTANT Assurez-vous de scruter le temporisateur au moins toutes les 69 minutes lors de son fonctionnement. Autrement, la valeur ACC ne sera pas correcte.

La plage de la valeur last_time_scanned peut aller jusqu’à 69 minutes. Le calcul du temporisateur revient à sa valeur de départ si vous ne le scrutez pas dans les 69 minutes. Dans ce cas, la valeur ACC ne sera pas correcte.

Lorsque le temporisateur fonctionne, scrutez-le dans les 69 minutes si vous le mettez dans un des éléments suivants :

• sous-programme ;• section de code entre les instructions JMP et LBL ;• graphe de fonctionnement séquentiel (SFC) ;• tâche sur événement ou périodique ;• sous-programme d’état d’une phase.

Un défaut majeur se produit si Type de défaut Code de défaut

.PRE < 0 4 34

.ACC < 0 4 34

Publication 1756-RM003K-FR-P – Juillet 2008 113

Page 114: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 3 Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Exécution :

Condition Action logique à relais

Pré-scrutation Les bits .EN, .TT et .DN sont remis à zéro.

La valeur .ACC n’est pas modifiée.

L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux Les bits .EN, .TT et .DN sont désactivés.

Le bit .DN n’est pas modifié.

La valeur .ACC n’est pas modifiée.

L’état de sortie de la ligne est réglé sur faux.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

examiner le bit .DNbit .DN = 1

bit .DN = 0

le bit .EN est activéle bit .TT est activélast_time = current_time

L’état d’entrée de la ligne est vrai

examiner .ACC.ACC ≥ .PRE

.ACC < .PRE

le bit .TT est activé.ACC = .ACC + (current_time – last_time)last_time = current_time

la valeur .ACC revient à

sa valeur de départ

non

oui

.ACC = 2 147 483 647

examiner le bit .ENbit .EN = 0

bit .EN = 1

l’état de sortie de la ligne est vrai

fin

.DN est activéle bit .TT est désactivéle bit .EN est activé

114 Publication 1756-RM003K-FR-P – Juillet 2008

Page 115: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Chapitre 3

Exemple : Lorsque limit_switch_1 est activé, light_1 est allumé pendant 180 ms (timer_2 compte le temps). Lorsque timer_3.acc atteint 180, light_1 s’éteint et light_2 s’allume. Light_2 reste allumé jusqu’à ce que timer_3 soit réinitialisé. Si limit_switch_2 est désactivé lorsque timer_3 compte le temps, light_1 reste allumé. Lorsque limit_switch_2 est activé, l’instruction RES réinitialise timer_3 (remet à zéro le bit d’état et la valeur .ACC).

Publication 1756-RM003K-FR-P – Juillet 2008 115

Page 116: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 3 Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Temporisateur à l’enclenchement avec RAZ (TONR)

L’instruction TONR est un temporisateur non rémanent qui additionne le temps lorsque TimerEnable est activé.

Cette instruction est disponible en logique à relais sous la forme de deux instructions : TON (voir page 104) et RES (voir page 140).

Opérandes :

Texte structuré

Bloc fonctionnel

Structure FBD_TIMER

Variable Type Format Description

point TONR FBD_TIMER structure structure TONR

Opérande Type Format Description

point TONR FBD_TIMER structure structure TONR

TONR(TONR_tag);

Paramètre d’entrée Type de données Description

EnableIn BOOL Bloc fonctionnel :

Si désactivé, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Lorsqu’activé, l’instruction est exécutée.

Réglage par défaut activé.

Texte structuré :

Pas d’effet. L’instruction est exécutée.

TimerEnable BOOL Lorsqu’activé, active l’exécution du temporisateur qui accumule le temps.

Réglage par défaut désactivé.

PRE DINT Valeur présélectionnée du temporisateur. C’est la valeur en unités de 1 ms que ACC doit atteindre avant que le cumul du temps ne s’arrête. Si la valeur est incorrecte, l’instruction active le bit approprié dans l’état (Status) et le temporisateur n’est pas exécuté.

Valable = 0 jusqu’au nombre entier positif maximum.

RAZ BOOL Requête de réinitialisation du temporisateur. Lorsqu’activé, le temporisateur est réinitialisé.

Réglage par défaut désactivé.

Paramètre de sortie Type de données Description

EnableOut BOOL L’instruction a produit un résultat valable.

ACC DINT Durée accumulée en millisecondes.

EN BOOL Sortie d’activation de temporisateur. Indique que l’instruction de temporisation est activée.

TT BOOL Sortie de temporisation en cours. Lorsqu’activé, une opération de temporisation est en cours.

DN BOOL Sortie de fin de temporisation. Indique quand la durée accumulée est supérieure ou égale à la valeur présélectionnée.

116 Publication 1756-RM003K-FR-P – Juillet 2008

Page 117: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Chapitre 3

Description : L’instruction TONR additionne le temps jusqu’à ce que :

• l’instruction TONR soit désactivée ;

• ACC ≥ PRE.

L’unité de temps est toujours 1 ms. Par exemple, pour un temporisateur de 2 secondes, saisissez 2 000 pour la valeur .PRE.

Activez le paramètre d’entrée de réinitialisation pour réinitialiser l’instruction. Si TimerEnable est activé lorsque Reset est activé, l’instruction TONR recommence à additionner le temps lorsque Reset est désactivé.

Un temporisateur s’exécute en soustrayant le temps de la dernière scrutation de l’heure actuelle :

ACC = ACC + (current_time – last_time_scanned)

Status DINT Etat du bloc fonctionnel.

InstructFault (Status.0) BOOL L’instruction a détecté l’une des erreurs d’exécution suivantes. Ceci n’est pas une erreur mineure ou majeure de l’automate. Vérifiez les autres bits d’état pour déterminer ce qui s’est produit.

PresetInv (Status.1) BOOL La valeur présélectionnée est incorrecte.

Paramètre d’entrée Type de données Description

TimerEnable

bit de validation (EN)

bit de fin de temporisation (DN)

valeur accumulée du temporisateur (.ACC)

bit de temporisation en cours (TT)

présélection

0

16649

Délai ON

le temporisateur n’a pas atteint la valeur PRE

Publication 1756-RM003K-FR-P – Juillet 2008 117

Page 118: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 3 Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Après avoir actualisé ACC, le temporisateur active last_time_scanned = current_time. Ceci permet au temporisateur d’être prêt pour la prochaine scrutation.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Exécution :

IMPORTANT Assurez-vous de scruter le temporisateur au moins toutes les 69 minutes lors de son fonctionnement. Autrement, la valeur ACC ne sera pas correcte.

La plage de la valeur last_time_scanned peut aller jusqu’à 69 minutes. Le calcul du temporisateur revient à sa valeur de départ si vous ne le scrutez pas dans les 69 minutes. Dans ce cas, la valeur ACC ne sera pas correcte.

Lorsque le temporisateur fonctionne, scrutez-le dans les 69 minutes si vous le mettez dans un des éléments suivants :

• sous-programme ;• section de code entre les instructions JMP et LBL ;• graphe de fonctionnement séquentiel (SFC) ;• tâche sur événement ou périodique ;• sous-programme d’état d’une phase.

Condition Action bloc fonctionnel Action texte structuré

Pré-scrutation Aucune. Aucune.

Première scrutation de l’instruction

EN, TT et DN sont remis à zéro.

La valeur ACC est remise à 0.

EN, TT et DN sont remis à zéro.

La valeur ACC est remise à 0.

Première exécution de l’instruction

EN, TT et DN sont remis à zéro.

La valeur ACC est remise à 0.

EN, TT et DN sont remis à zéro.

La valeur ACC est remise à 0.

EnableIn est désactivé EnableOut est désactivé, l’instruction ne fait rien et les sorties ne sont pas actualisées.

EnableIn est activé Lorsque EnableIn passe de désactivé à activé, l’instruction est initialisée comme décrit pour la première exécution de l’instruction.

L’instruction est exécutée.

EnableOut est activé.

EnableIn est toujours activé.

L’instruction est exécutée.

RAZ Lorsque le paramètre d’entrée de réinitialisation est activé, l’instruction désactive EN, TT et DN et active ACC = zéro.

Lorsque le paramètre d’entrée de réinitialisation est activé, l’instruction désactive EN, TT et DN et active ACC = zéro.

Post-scrutation Aucune. Aucune.

118 Publication 1756-RM003K-FR-P – Juillet 2008

Page 119: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Chapitre 3

Exemple : Pour chaque scrutation avec limit_switch1 activé, l’instruction TONR augmente la valeur ACC de la valeur du temps écoulé jusqu’à ce que la valeur ACC atteigne la valeur PRE. Lorsque ACC ≥ PRE, le paramètre DN est activé et timer_state est activé.

Texte structuré

TONR_01.Preset := 500;

TONR_01.Reset : = reset;

TONR_O1.TimerEnable := limit_switch1;

TONR(TONR_01);

timer_state := TONR_01.DN;

Exemple de bloc fonctionnel

Publication 1756-RM003K-FR-P – Juillet 2008 119

Page 120: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 3 Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Temporisateur au déclenchement avec RAZ (TOFR)

L’instruction TOFR est un temporisateur non rémanent qui additionne le temps lorsque TimerEnable est désactivé.

Cette instruction est disponible en logique à relais sous la forme de deux instructions : TOF (voir page 108) et RES (voir page 140).

Opérandes :

Texte structuré

Opérandes de bloc fonctionnel

Structure FBD_TIMER

Variable Type Format Description

point TOFR FBD_TIMER structure structure TOFR

Opérande Type Format Description

point TOFR FBD_TIMER structure structure TOFR

TOFR(TOFR_tag);

Paramètre d’entrée Type de données Description

EnableIn BOOL Bloc fonctionnel :

Si désactivé, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Lorsqu’activé, l’instruction est exécutée.

Réglage par défaut activé.

Texte structuré :

Pas d’effet. L’instruction est exécutée.

TimerEnable BOOL Lorsque désactivé, active l’exécution du temporisateur qui accumule le temps.

Réglage par défaut désactivé.

PRE DINT Valeur présélectionnée du temporisateur. C’est la valeur en unités de 1 ms que ACC doit atteindre avant que le cumul du temps ne s’arrête. Si la valeur est incorrecte, l’instruction active le bit approprié dans l’état (Status) et le temporisateur n’est pas exécuté.

Valable = 0 jusqu’au nombre entier positif maximum.

RAZ BOOL Requête de réinitialisation du temporisateur. Lorsqu’activé, le temporisateur est réinitialisé.

Réglage par défaut désactivé.

Paramètre de sortie Type de données Description

EnableOut BOOL L’instruction a produit un résultat valable.

ACC DINT Durée accumulée en millisecondes.

EN BOOL Sortie d’activation de temporisateur. Indique que l’instruction de temporisation est activée.

TT BOOL Sortie de temporisation en cours. Lorsqu’activé, une opération de temporisation est en cours.

120 Publication 1756-RM003K-FR-P – Juillet 2008

Page 121: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Chapitre 3

Description : L’instruction TOFR accumule le temps jusqu’à ce que :

• l’instruction TOFR soit désactivée ;

• ACC ≥ PRE.

L’unité de temps est toujours 1 ms. Par exemple, pour un temporisateur de 2 secondes, saisissez 2 000 pour la valeur .PRE.

Activez le paramètre d’entrée de réinitialisation pour réinitialiser l’instruction. Si TimerEnable est désactivé lorsque Reset est activé, l’instruction TOFR ne recommence pas à additionner le temps lorsque Reset est désactivé.

Un temporisateur s’exécute en soustrayant le temps de la dernière scrutation de l’heure actuelle :

ACC = ACC + (current_time – last_time_scanned)

DN BOOL Sortie de fin de temporisation. Indique quand la durée accumulée est supérieure ou égale à la valeur présélectionnée.

Status DINT Etat du bloc fonctionnel.

InstructFault (Status.0) BOOL L’instruction a détecté l’une des erreurs d’exécution. Ceci n’est pas une erreur mineure ou majeure de l’automate. Vérifiez les autres bits d’état pour déterminer ce qui s’est produit.

PresetInv (Status.1) BOOL La valeur présélectionnée est incorrecte.

Paramètre d’entrée Type de données Description

TimerEnable

bit de validation (EN)

bit de fin de temporisation (DN)

valeur accumulée du temporisateur

bit de temporisation en cours (TT)

0

temporisation au

déclenchem.

16650

le temporisateur n’a pas atteint la valeur PRE

présélection

Publication 1756-RM003K-FR-P – Juillet 2008 121

Page 122: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 3 Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Après avoir actualisé ACC, le temporisateur active last_time_scanned = current_time. Ceci permet au temporisateur d’être prêt pour la prochaine scrutation.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Exécution :

Exemple : Pour chaque scrutation après la désactivation de limit_switch1, l’instruction TOFR augmente la valeur ACC de la valeur du temps écoulé jusqu’à ce que la valeur ACC atteigne la valeur PRE. Lorsque ACC ≥ PRE, le paramètre DN est remis à zéro et timer_state2 est activé.

IMPORTANT Assurez-vous de scruter le temporisateur au moins toutes les 69 minutes lors de son fonctionnement. Autrement, la valeur ACC ne sera pas correcte.

La plage de la valeur last_time_scanned peut aller jusqu’à 69 minutes. Le calcul du temporisateur revient à sa valeur de départ si vous ne le scrutez pas dans les 69 minutes. Dans ce cas, la valeur ACC ne sera pas correcte.

Lorsque le temporisateur fonctionne, scrutez-le dans les 69 minutes si vous le mettez dans un des éléments suivants :

• sous-programme ;• section de code entre les instructions JMP et LBL ;• graphe de fonctionnement séquentiel (SFC) ;• tâche sur événement ou périodique ;• sous-programme d’état d’une phase.

Condition Action bloc fonctionnel Action texte structuré

Pré-scrutation Aucune. Aucune.

Première scrutation de l’instruction

EN, TT et DN sont remis à zéro.

La valeur ACC est réglée à la valeur PRE.

EN, TT et DN sont remis à zéro.

La valeur ACC est réglée à la valeur PRE.

Première exécution de l’instruction

EN, TT et DN sont remis à zéro.

La valeur ACC est réglée à la valeur PRE.

EN, TT et DN sont remis à zéro.

La valeur ACC est réglée à la valeur PRE.

EnableIn est désactivé EnableOut est désactivé, l’instruction ne fait rien et les sorties ne sont pas actualisées.

EnableIn est activé Lorsque EnableIn passe de désactivé à activé, l’instruction est initialisée comme décrit pour la première exécution de l’instruction.

L’instruction est exécutée.

EnableOut est activé.

EnableIn est toujours activé.

L’instruction est exécutée.

RAZ Lorsque le paramètre d’entrée de réinitialisationest activé, l’instruction met à zéro EN, TT et DN et active ACC = PRE. Remarquez que ceci est différent de l’utilisation de l’instruction RES sur une instruction TOF.

Lorsque le paramètre d’entrée de réinitialisation est activé, l’instruction met à zéro EN, TT et DN et active ACC = PRE. Remarquez que ceci est différent de l’utilisation de l’instruction RES sur une instruction TOF.

Post-scrutation Aucune. Aucune.

122 Publication 1756-RM003K-FR-P – Juillet 2008

Page 123: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Chapitre 3

Texte structuré

TOFR_01.Preset := 500

TOFR_01.Reset := reset;

TOFR_O1.TimerEnable := limit_switch1;

TOFR(TOFR_01);

timer_state2 := TOFR_01.DN;

Bloc fonctionnel

Publication 1756-RM003K-FR-P – Juillet 2008 123

Page 124: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 3 Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Temporisateur rémanent avec RAZ (RTOR)

L’instruction RTOR est un temporisateur rémanent qui accumule le temps lorsque TimerEnable est activé.

Cette instruction est disponible en logique à relais sous la forme de deux instructions : RTO (voir page 112) et RES (voir page 140).

Opérandes :

Texte structuré

Opérandes de bloc fonctionnel

Structure FBD_TIMER

Variable Type Format Description

point RTOR FBD_TIMER structure structure RTOR

Opérande Type Format Description

point RTOR FBD_TIMER structure structure RTOR

RTOR(RTOR_tag);

Paramètre d’entrée Type de données Description

EnableIn BOOL Bloc fonctionnel :

Si désactivé, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Lorsqu’activé, l’instruction est exécutée.

Réglage par défaut activé.

Texte structuré :

Pas d’effet. L’instruction est exécutée.

TimerEnable BOOL Lorsqu’activé, active l’exécution du temporisateur qui accumule le temps.

Réglage par défaut désactivé.

PRE DINT Valeur présélectionnée du temporisateur. C’est la valeur en unités de 1 ms que ACC doit atteindre avant que le cumul du temps ne s’arrête. Si la valeur est incorrecte, l’instruction active le bit approprié dans l’état (Status) et le temporisateur n’est pas exécuté.

Valable = 0 jusqu’au nombre entier positif maximum.

RAZ BOOL Requête de réinitialisation du temporisateur. Lorsqu’activé, le temporisateur est réinitialisé.

Paramètre de sortie Type de données Description

EnableOut BOOL L’instruction a produit un résultat valable.

ACC DINT Durée accumulée en millisecondes. Cette valeur est conservée même lorsque l’entrée TimerEnable est désactivée. Ceci rend le comportement de ce bloc différent de celui du bloc TONR.

EN BOOL Sortie d’activation de temporisateur. Indique que l’instruction de temporisation est activée.

TT BOOL Sortie de temporisation en cours. Lorsqu’activé, une opération de temporisation est en cours.

124 Publication 1756-RM003K-FR-P – Juillet 2008

Page 125: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Chapitre 3

Description : L’instruction RTOR accumule le temps jusqu’à ce qu’elle soit désactivée. Lorsque l’instruction RTOR est désactivée, elle garde sa valeur .ACC. Vous devez remettre à zéro la valeur .ACC à l’aide de l’entrée de réinitialisation.

L’unité de temps est toujours 1 ms. Par exemple, pour un temporisateur de 2 secondes, saisissez 2 000 pour la valeur .PRE.

Activez le paramètre d’entrée de réinitialisation pour réinitialiser l’instruction. Si TimerEnable est activé lorsque Reset est activé, l’instruction RTOR recommence à additionner le temps lorsque Reset est désactivé.

Un temporisateur s’exécute en soustrayant le temps de la dernière scrutation de l’heure actuelle :

ACC = ACC + (current_time – last_time_scanned)

DN BOOL Sortie de fin de temporisation. Indique quand la durée accumulée est supérieure ou égale à la valeur présélectionnée.

Status DINT Etat du bloc fonctionnel.

InstructFault (Status.0) BOOL L’instruction a détecté l’une des erreurs d’exécution. Ceci n’est pas une erreur mineure ou majeure de l’automate. Vérifiez les autres bits d’état pour déterminer ce qui s’est produit.

PresetInv (Status.1) BOOL La valeur présélectionnée est incorrecte.

Paramètre d’entrée Type de données Description

TimerEnable

bit de validation (EN)

bit de fin de temporisation (DN)

valeur accumulée du temporisateur (.ACC)

bit de temporisation en cours (TT)

présélection

0

16651

RAZ

le temporisateur n’a pas atteint la valeur PRE

Publication 1756-RM003K-FR-P – Juillet 2008 125

Page 126: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 3 Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Après avoir actualisé ACC, le temporisateur active last_time_scanned = current_time. Ceci permet au temporisateur d’être prêt pour la prochaine scrutation.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Exécution :

Exemple : Pour chaque scrutation avec limit_switch1 activé, l’instruction RTOR augmente la valeur ACC de la valeur du temps écoulé jusqu’à ce que la valeur ACC atteigne la valeur PRE. Lorsque ACC ≥ PRE, le paramètre DN est activé et timer_state3 est activé.

IMPORTANT Assurez-vous de scruter le temporisateur au moins toutes les 69 minutes lors de son fonctionnement. Autrement, la valeur ACC ne sera pas correcte.

La plage de la valeur last_time_scanned peut aller jusqu’à 69 minutes. Le calcul du temporisateur revient à sa valeur de départ si vous ne le scrutez pas dans les 69 minutes. Dans ce cas, la valeur ACC ne sera pas correcte.

Lorsque le temporisateur fonctionne, scrutez-le dans les 69 minutes si vous le mettez dans un des éléments suivants :

• sous-programme ;• section de code entre les instructions JMP et LBL ;• graphe de fonctionnement séquentiel (SFC) ;• tâche sur événement ou périodique ;• sous-programme d’état d’une phase.

Condition Action bloc fonctionnel Action texte structuré

Pré-scrutation Aucune. Aucune.

Première scrutation de l’instruction

EN, TT et DN sont remis à zéro.

La valeur ACC n’est pas modifiée.

EN, TT et DN sont remis à zéro.

La valeur ACC n’est pas modifiée.

Première exécution de l’instruction

EN, TT et DN sont remis à zéro.

La valeur ACC n’est pas modifiée.

EN, TT et DN sont remis à zéro.

La valeur ACC n’est pas modifiée.

EnableIn est désactivé EnableOut est désactivé, l’instruction ne fait rien et les sorties ne sont pas actualisées.

EnableIn est activé Bloc fonctionnel :

Lorsque EnableIn passe de désactivé à activé, l’instruction est initialisée comme décrit pour la première exécution de l’instruction.

L’instruction est exécutée.

EnableOut est activé.

EnableIn est toujours activé.

L’instruction est exécutée.

RAZ Lorsque le paramètre d’entrée de réinitialisation est activé, l’instruction désactive EN, TT et DN et active ACC = zéro.

Lorsque le paramètre d’entrée de réinitialisation est activé, l’instruction désactive EN, TT et DN et active ACC = zéro.

Post-scrutation Aucune. Aucune.

126 Publication 1756-RM003K-FR-P – Juillet 2008

Page 127: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Chapitre 3

Texte structuré

RTOR_01.Preset := 500

RTOR_01.Reset := reset;

RTOR_O1.TimerEnable := limit_switch1;

RTOR(RTOR_01);

timer_state3 := RTOR_01.DN;

Bloc fonctionnel

Publication 1756-RM003K-FR-P – Juillet 2008 127

Page 128: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 3 Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Comptage progressif (CTU) L’instruction CTU effectue un comptage croissant.

Cette instruction est disponible en texte structuré et en bloc fonctionnel sous le nom CTUD, voir page 136.

Opérandes :

Logique à relais

Structure COMPTEUR

Opérande Type Format Description

compteur COUNTER point structure compteur

présélection DINT immédiat limite supérieure du comptage

accumulateur DINT immédiat nombre de fois que le compteur a compté

la valeur initiale est typiquement 0

Mnémonique Type de données Description

.CU BOOL Le bit d’activation de comptage progressif indique que l’instruction CTU est activée.

.DN BOOL Le bit de fin indique que .ACC ≥ .PRE.

.OV BOOL Le bit de dépassement supérieur indique que le compteur dépasse la limite supérieure de 2 147 483 647. Le compteur revient à la valeur de –2 147 483 648 et recommence à compter vers le haut.

.UN BOOL Le bit de dépassement inférieur indique que le compteur a dépassé la limite inférieure de –2 147 483 648. Le compteur revient à la valeur de 2 147 483 647 et recommence à compter vers le bas.

.PRE DINT La valeur présélectionnée définit la valeur que la valeur accumulée doit atteindre avant que l’instruction active le bit .DN.

.ACC DINT La valeur accumulée indique le nombre de transitions que l’instruction a compté.

128 Publication 1756-RM003K-FR-P – Juillet 2008

Page 129: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Chapitre 3

Description : Lorsqu’elle est activée et que le bit .CU est désactivé, l’instruction CTU incrémente le compteur d’une unité. Lorsqu’elle est activée et que le bit .CU est activé, ou lorsqu’elle est désactivée, l’instruction CTU conserve sa valeur .ACC.

La valeur accumulée continue d’augmenter, même une fois le bit .DN est activé. Pour effacer la valeur accumulée, utilisez une instruction RES qui renvoie à la structure compteur ou écrivez un 0 dans la valeur accumulée.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

état d’entrée de la ligne

bit de validation de comptage progressif (.CU)

bit de fin de comptage progressif (.DN)

valeur accumulée du compteur (.ACC)

présélection

16636

Publication 1756-RM003K-FR-P – Juillet 2008 129

Page 130: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 3 Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Exécution :

Condition Action logique à relais

Pré-scrutation Le bit .CU est activé pour empêcher des augmentations incorrectes pendant la scrutation du programme.

L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux Le bit .CU est désactivé.

L’état de sortie de la ligne est réglé sur faux.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

examiner le bit .CUbit .CU = 0

bit .CU = 1

L’état d’entrée de la ligne est vrai

la valeur .ACC revient à sa valeur

de départ

oui

non

examiner le bit .UNbit .UN = 0

bit .UN = 1

le bit .CU est activé

.ACC = .ACC + 1

examiner le bit .OVbit .OV = 0

examiner le bit .UNbit .UN = 1

bit .UN = 0

le bit .UN est désactivéle bit .DN est désactivéle bit .OV est désactivé

le bit .OV est activé

examiner .ACC .ACC ≥ .PRE

.ACC < .PRE

le bit .DN est activé

l’état de sortie de la ligne est vrai

fin

bit .OV = 1

le bit .DN est désactivé

130 Publication 1756-RM003K-FR-P – Juillet 2008

Page 131: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Chapitre 3

Exemple : Une fois que limit_switch_1 est passé de désactivé à activé 10 fois, le bit .DN est activé et light_1 s’allume. Si limit_switch_1 continue de passer de désactivé à activé, counter_1 continue de compter et le bit .DN reste activé. Lorsque limit_switch_2 est activé, l’instruction RES réinitialise counter_1 (remet le bit d’état et la valeur .ACC à zéro) et light_1 s’éteint.

Publication 1756-RM003K-FR-P – Juillet 2008 131

Page 132: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 3 Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Comptage dégressif (CTD) L’instruction CTD effectue un comptage décroissant.

Cette instruction est disponible en texte structuré et en bloc fonctionnel sous le nom CTUD, voir page 136.

Opérandes :

Logique à relais

Structure COMPTEUR

Opérande Type Format Description

compteur COUNTER point structure compteur

présélection DINT immédiat limite inférieure du comptage

accumulateur DINT immédiat nombre de fois que le compteur a compté

la valeur initiale est typiquement 0

Mnémonique Type de données Description

.CD BOOL Le bit d’activation de comptage dégressif indique que l’instruction CTD est activée.

.DN BOOL Le bit de fin indique que .ACC ≥ .PRE.

.OV BOOL Le bit de dépassement supérieur indique que le compteur dépasse la limite supérieure de 2 147 483 647. Le compteur revient à la valeur de –2 147 483 648 et recommence à compter vers le haut.

.UN BOOL Le bit de dépassement inférieur indique que le compteur a dépassé la limite inférieure de –2 147 483 648. Le compteur revient à la valeur de 2 147 483 647 et recommence à compter vers le bas.

.PRE DINT La valeur présélectionnée définit la valeur que la valeur accumulée doit atteindre avant que l’instruction active le bit .DN.

.ACC DINT La valeur accumulée indique le nombre de transitions que l’instruction a compté.

132 Publication 1756-RM003K-FR-P – Juillet 2008

Page 133: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Chapitre 3

Description : L’instruction CTD est généralement utilisée avec une instruction CTU afférente à la même structure de compteur.

Lorsqu’elle est activée et que le bit .CD est désactivé, l’instruction CTD diminue le compteur d’une unité. Lorsqu’elle est activée et que le bit .CD est activé, ou lorsqu’elle est désactivée, l’instruction CTD conserve sa valeur .ACC.

La valeur accumulée continue de diminuer, même une fois le bit .DN activé. Pour effacer la valeur accumulée, utilisez une instruction RES qui renvoie à la structure compteur ou écrivez un 0 dans la valeur accumulée.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

état d’entrée de la ligne

bit de validation de comptage dégressif (.CD)

bit de fin de comptage dégressif (.DN)

valeur accumulée du compteur (.ACC)

présélection

16637

Publication 1756-RM003K-FR-P – Juillet 2008 133

Page 134: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 3 Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Exécution :

Condition Action logique à relais

Pré-scrutation Le bit .CD est activé pour empêcher des décrémentations incorrectes pendant la scrutation du programme.

L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux Le bit .CD est désactivé.

L’état de sortie de la ligne est réglé sur faux.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

examiner le bit .CDbit .CD = 0

bit .CD = 1

L’état d’entrée de la ligne est vrai

la valeur .ACC revient à sa valeur

de départ

oui

non

examiner le bit .UNbit .UN = 0

bit .UN = 1

le bit .CD est activé

.ACC = .ACC – 1

examiner le bit .OV bit .OV = 0

examiner le bit .OVbit .OV = 1

bit .OV = 0

le bit .OV est désactivéle bit .DN est désactivéle bit .UN est désactivé

le bit .UN est activé

examiner .ACC.ACC ≥ .PRE

le bit .DN est activé

l’état de sortie de la ligne est vrai

fin

bit .OV = 1

.ACC < .PRE

le bit .DN est désactivé

134 Publication 1756-RM003K-FR-P – Juillet 2008

Page 135: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Chapitre 3

Exemple : Un convoyeur transporte des pièces dans une zone tampon. Chaque fois qu’une pièce entre dans la zone, limit_switch_1 est activé et counter_1 augmente de 1. Chaque fois qu’une pièce sort de la zone, limit_switch_2 est activé et counter_1 diminue de 1. S’il y a 100 pièces dans la zone tampon (counter_1.dn est activé), conveyor_a est activé et empêche le convoyeur d’amener d’autres pièces jusqu’à ce que de la place se libère dans la zone tampon.

Publication 1756-RM003K-FR-P – Juillet 2008 135

Page 136: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 3 Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Comptage progressif/dégressif (CTUD)

L’instruction CTUD ajoute une unité à son décompte lorsque CUEnable passe de désactivé à activé. L’instruction soustrait une unité lorsque CDEnable passe de désactivé à activé.

Cette instruction est disponible en logique à relais sous la forme de trois instructions : CTU (voir page 128), CTD (voir page 132) et RES (voir page 140).

Opérandes :

Texte structuré

Bloc fonctionnel

Structure FBD_COUNTER

Variable Type Format Description

point CTUD FBD_COUNTER structure structure CTUD

Opérande Type Format Description

point CTUD FBD_COUNTER structure structure CTUD

CTUD(CTUD_tag);

Paramètre d’entrée Type de données Description

EnableIn BOOL Bloc fonctionnel :

Si désactivé, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Lorsqu’activé, l’instruction est exécutée.

Réglage par défaut activé.

Texte structuré :

Pas d’effet. L’instruction est exécutée.

CUEnable BOOL Comptage progressif activé. Lorsque l’entrée passe de désactivée à activée, le totalisateur ajoute une unité au décompte.

Réglage par défaut désactivé.

CDEnable BOOL Comptage dégressif activé. Lorsque l’entrée passe de désactivée à activée, le totalisateur soustrait une unité au décompte.

Réglage par défaut désactivé.

PRE DINT Valeur présélectionnée du compteur. Valeur que la valeur accumulée doit atteindre avant que DN soit activé.

Valable = tout nombre entier

La valeur par défaut est 0.

RAZ BOOL Requête de réinitialisation du temporisateur. Lorsqu’activé, le compteur est réinitialisé.

Réglage par défaut désactivé.

136 Publication 1756-RM003K-FR-P – Juillet 2008

Page 137: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Chapitre 3

Description : Lorsqu’elle est activée et que CUEnable est activé, l’instruction CTUD augmente le compteur d’une unité. Lorsqu’elle est activée et que CDEnable est activé, l’instruction CTUD diminue le compteur d’une unité.

Les paramètres d’entrée CUEnable et CDEnable peuvent être basculés pendant la même scrutation. L’instruction exécute le comptage progressif avant le comptage dégressif.

Paramètre de sortie Type de données

Description

EnableOut BOOL L’instruction a produit un résultat valable.

ACC DINT Valeur accumulée.

CU BOOL Comptage progressif activé.

CD BOOL Comptage dégressif activé.

DN BOOL Comptage terminé. Activé lorsque la valeur accumulée est supérieure ou égale à la valeur présélectionnée.

OV BOOL Dépassement supérieur du compteur. Indique que le compteur a dépassé la limite supérieure de 2 147 483 647.

Le compteur revient alors à –2 147 483 648 et recommence à compter vers le haut.

UN BOOL Dépassement inférieur du compteur. Indique que le compteur a dépassé la limite inférieure de –2 147 483 648.

Le compteur revient alors à 2 147 483 647 et recommence à compter vers le bas.

Publication 1756-RM003K-FR-P – Juillet 2008 137

Page 138: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 3 Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Comptage progressif

Comptage dégressif

Lorsqu’elle est désactivée, l’instruction CTUD conserve sa valeur accumulée. Activez le paramètre d’entrée de réinitialisation (Reset) de la structure FBD_COUNTER pour réinitialiser l’instruction.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

CUEnable

bit de validation de comptage progressif (CU)

bit de fin de comptage progressif (DN)

valeur accumulée du compteur (.ACC)

présélection

16636

CDEnable

bit de validation de comptage dégressif (CD)

bit de fin de comptage dégressif (DN)

valeur accumulée du compteur (.ACC)

présélection

16637

138 Publication 1756-RM003K-FR-P – Juillet 2008

Page 139: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Chapitre 3

Exécution :

Exemple : Lorsque limit_switch1 passe de désactivé à activé, CUEnable est activé pendant une scrutation et l’instruction CTUD augmente la valeur ACC de 1. Lorsque ACC ≥ PRE, le paramètre DN est activé, ce qui active l’instruction de bloc fonctionnel qui suit l’instruction CTUD.

Texte structuré

CTUD_01.Preset := 500;

CTUD_01.Reset := Restart;

CTUD_O1.CUEnable := limit_switch1;

CTUD(CTUD_01);

counter_state := CTUD_01.DN;

Bloc fonctionnel

Condition Action bloc fonctionnel Action texte structuré

Pré-scrutation Pas de réinitialisation nécessaire. Pas de réinitialisation nécessaire.

Première scrutation de l’instruction

CUEnablen–1 et CDEnablen–1 sont activés. CUEnablen–1 et CDEnablen–1 sont activés.

Première exécution de l’instruction

CUEnablen–1 et CDEnablen–1 sont activés. CUEnablen–1 et CDEnablen–1 sont activés.

EnableIn est désactivé EnableOut est désactivé, l’instruction ne fait rien et les sorties ne sont pas actualisées.

EnableIn est activé L’instruction active CUEnablen–1 et CDEnablen–1.

Lors d’une transition de désactivé à activé de EnableIn :

• l’instruction est exécutée ;

• EnableOut est activé.

L’instruction active CUEnablen–1 et CDEnablen–1.

EnableIn est toujours activé.

L’instruction est exécutée.

RAZ Lorsqu’elle est activée, l’instruction remet à zéro CUEnablen–1, CDEnablen–1, CU, CD, DN, OV et UN et active ACC = zéro.

Lorsqu’elle est activée, l’instruction remet à zéro CUEnablen–1, CDEnablen–1, CU, CD, DN, OV et UN et active ACC = zéro.

Post-scrutation Aucune. Aucune.

Publication 1756-RM003K-FR-P – Juillet 2008 139

Page 140: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 3 Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Réinitialisation (RES) L’instruction RES réinitialise un temporisateur, un compteur ou une structure de commande.

Opérandes :

Logique à relais

Description : Lorsqu’elle est activée, l’instruction RES remet à zéro ces éléments :

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Opérande Type Format Description

structure TIMER

CONTROL

COUNTER

point structure à réinitialiser

Lors de l’utilisation d’une instruction RES pour

L’instruction remet à zéro

TIMER la valeur .ACC

les bits d’état du contrôle

COUNTER la valeur .ACC

les bits d’état du contrôle

CONTROL la valeur .POS

les bits d’état du contrôle

ATTENTION Etant donné que l’instruction RES remet à zéro la valeur .ACC, les bits .DN et .TT, n’utilisez pas l’instruction RES pour réinitialiser un temporisateur TOF.

140 Publication 1756-RM003K-FR-P – Juillet 2008

Page 141: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Chapitre 3

Exécution :

Condition Action logique à relais

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai L’instruction RES réinitialise la structure spécifiée.

L’état de sortie de la ligne est réglé sur vrai.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

Publication 1756-RM003K-FR-P – Juillet 2008 141

Page 142: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 3 Instructions de temporisation et de comptage (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Notes :

142 Publication 1756-RM003K-FR-P – Juillet 2008

Page 143: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 4

Instructions d’entrée/de sortie(MSG, GSV, SSV, IOT)

Introduction Les instructions d’entrée/de sortie lisent ou écrivent, soit des données vers ou à partir de l’automate, soit un bloc de données vers ou à partir d’un autre module sur un autre réseau.

Si vous voulez Utilisez cette instruction Disponible dans ces langages Voir page

envoyer des données vers ou à partir d’un autre module

MSG Logique à relais

Texte structuré

144

obtenir des informations sur l’état de l’automate

GSV Logique à relais

Texte structuré

176

régler les informations sur l’état de l’automate SSV Logique à relais

Texte structuré

176

• envoyer des valeurs de sortie à un module d’E/S ou à un automate consommateur à un moment précis du programme logique

IOT Logique à relais

Texte structuré

201

• déclencher une tâche événementielle dans un autre automate

143Publication 1756-RM003K-FR-P – Juillet 2008 143

Page 144: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 4 Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT)

Message (MSG) L’instruction MSG écrit ou lit un bloc de données de façon asynchrone vers un autre module sur un réseau.

Opérandes :

Logique à relais

Texte structuré

Les opérandes sont identiques à ceux de l’instruction MSG en logique à relais.

Structure MESSAGE

Opérande Type Format Description

Contrôle de message

MESSAGE point structure de message

MSG(MessageControl);

ATTENTION Si vous vérifiez le bit d’état plus d’une fois

L’automate change les bits DN, ER, EW et ST de façon asynchrone par rapport à la scrutation de votre programme. Utilisez une copie des bits si vous les vérifiez à plusieurs endroits dans votre programme. Autrement, les bits peuvent être modifiés au cours de la scrutation et votre programme ne fonctionnera pas comme prévu.

Une façon de faire une copie est d’utiliser le mot FLAGS (indicateurs). Copiez le mot FLAGS dans un autre point et vérifiez les bits dans la copie.

IMPORTANT Ne changez pas les bits d’état suivants de l’instruction MSG :

• DN• EN• ER• EW• ST

Ne changez pas ces bits, ni de façon individuelle, ni comme élément du mot FLAGS. Le cas échéant, cela peut provoquer un défaut irrécupérable dans l’automate. L’automate efface le projet de sa mémoire lorsqu’il présente un défaut irrécupérable.

144 Publication 1756-RM003K-FR-P – Juillet 2008

Page 145: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT) Chapitre 4

Mnémonique Type de données

Description

.FLAGS INT Le membre FLAGS permet l’accès aux membres d’état (bits) via un mot de 16 bits.

Ce bit est le membre

2 .EW

4 .ER

5 .DN

6 .ST

7 .EN

8 .TO

9 .EN_CC

Important : ne modifiez pas le bit EW, ER, DN ou ST du membre FLAGS. Par exemple, n’effacez pas tout le mot FLAGS. L’automate ignore la modification et utilise les valeurs des bits mémorisées en interne.

.ERR INT Si le bit .ER est activé, le mot de code d’erreur identifie les codes d’erreur pour l’instruction MSG.

.EXERR INT Le mot de code d’erreur étendu spécifie des informations de code d’erreur supplémentaires pour certains codes d’erreur.

.REQ_LEN INT La longueur requise spécifie le nombre de mots que l’instruction de message tentera de transférer.

.DN_LEN INT La longueur de fin indique le nombre de mots ayant effectivement été transférés.

.EW BOOL Le bit d’activation en attente est activé lorsque l’automate détecte qu’une demande de message est entrée dans la file d’attente. L’automate réinitialise le bit .EW lorsque le bit .ST est activé.

Important : ne modifiez pas le bit EW. L’automate ignore la modification et utilise la valeur du bit mémorisée en interne.

.ER BOOL Le bit d’erreur est activé lorsque l’automate détecte qu’un transfert a échoué. Le bit .ER est réinitialisé au passage de l’état d’entrée de la ligne de faux à vrai suivant.

Important : ne modifiez pas le bit ER.

.DN BOOL Le bit de fin est activé lorsque la dernière trame du message est transférée avec succès. Le bit .DN est réinitialisé au passage de l’état d’entrée de la ligne de faux à vrai suivant.

Important : ne modifiez pas le bit DN.

.ST BOOL Le bit de début est activé lorsque l’automate commence l’exécution de l’instruction MSG. Le bit .ST est réinitialisé lorsque le bit .DN ou le bit .ER est activé.

Important : ne modifiez pas le bit ST. L’automate ignore la modification et utilise la valeur du bit mémorisée en interne.

.EN BOOL Le bit d’activation est activé lorsque l’état d’entrée de la ligne passe à vrai et reste activé jusqu’à ce que le bit .DN ou le bit .ER soit activé et que l’état d’entrée de la ligne soit faux. Si l’état d’entrée de la ligne passe à faux, mais que le bit .DN et le bit .ER sont désactivés, le bit .EN reste activé.

Important : ne modifiez pas le bit EN.

.TO BOOL Si vous activez le bit .TO manuellement, l’automate arrête de traiter le message et active le bit .ER.

.EN_CC BOOL Le bit d’activation de cache détermine la gestion de la connexion MSG. Reportez-vous à Choix d’une option de cache, page 4-173. Les connexions d’instructions MSG sortant par le port série ne sont pas mises en mémoire cache, même si le bit .EN_CC est activé.

.ERR_SRC SINT Utilisé par le logiciel RSLogix 5000 pour indiquer l’erreur de chemin dans la boîte de dialogue Configuration du message.

.DestinationLink INT Pour changer le lien destinataire d’un message DH+ ou CIP avec ID source, régler le membre sur la valeur requise.

Publication 1756-RM003K-FR-P – Juillet 2008 145

Page 146: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 4 Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT)

.DestinationNode INT Pour changer la station destinataire d’un message DH+ ou CIP avec ID source, régler le membre sur la valeur requise.

.SourceLink INT Pour changer le lien source d’un message DH+ ou CIP avec ID source, régler le membre sur la valeur requise.

.Class INT Pour changer le paramètre de classe d’un message générique CIP, régler le membre sur la valeur requise.

.Attribute INT Pour changer le paramètre d’attribut d’un message générique CIP, régler le membre sur la valeur requise.

.Instance DINT Pour changer le paramètre d’instance d’un message générique CIP, régler le membre sur la valeur requise.

.LocalIndex DINT Si vous utilisez un astérisque [*] pour désigner le numéro d’élément du tableau local, LocalIndex fournit le numéro d’élément. Pour changer le numéro d’élément, réglez ce membre sur la valeur requise.

Si le message : Le tableau local est :

lit les données l’élément de destination

écrit les données l’élément source

.Channel SINT Pour envoyer le message par une voie différente du module 1756-DHRIO, réglez ce membre sur la valeur requise. Utilisez le caractère ASCII A ou B.

.Rack SINT Pour changer le numéro de rack d’un message de bloc-transfert, réglez ce membre sur le numéro de rack requis (octal).

.Group SINT Pour changer le numéro de groupe d’un message de bloc-transfert, réglez ce membre sur le numéro de groupe requis (octal).

.Slot SINT Pour changer le numéro d’emplacement d’un message de bloc-transfert, réglez ce membre sur le numéro d’emplacement requis (octal).

Si le message passe par ce réseau :

Spécifiez le numéro d’emplacement en :

RIO octal

ControlNet décimal (0 – 15)

.Path STRING Pour envoyer le message vers un automate différent, réglez ce membre sur le nouveau chemin.

• Entrez le chemin en valeurs hexadécimales.

• N’entrez pas les virgules [,]

Par exemple, pour ce chemin : 1, 0, 2, 42, 1, 3, entrez $01$00$02$2A$01$03.

Pour naviguer jusqu’à un équipement et créer automatiquement une partie de la nouvelle chaîne ou la nouvelle chaîne entière, cliquez avec le bouton droit de la souris sur une chaîne de caractères et choisissez Go to Message Path Editor.

.RemoteIndex DINT Si vous utilisez un astérisque [*] pour désigner le numéro d’élément du tableau distant, RemoteIndex fournit le numéro d’élément. Pour changer le numéro d’élément, réglez ce membre sur la valeur requise.

Si le message : Le tableau distant est :

lit les données l’élément source

écrit les données l’élément de destination

Mnémonique Type de données

Description

146 Publication 1756-RM003K-FR-P – Juillet 2008

Page 147: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT) Chapitre 4

Description L’instruction MSG transfère des éléments de données.

C’est une instruction de transition :

• en logique à relais, basculez l’état d’entrée de la ligne de désactivé à activé chaque fois que l’instruction doit être exécutée ;

• en texte structuré, conditionnez l’instruction de façon à ce qu’elle ne s’exécute que lors d’une transition. Voir l’annexe B.

La taille de chaque élément dépend du type de données que vous spécifiez et du type de message de commande que vous utilisez.

.RemoteElement STRING Pour spécifier une adresse ou un point différent dans l’automate auquel est envoyé le message, réglez ce membre sur la valeur requise. Entrez l’adresse ou le point en caractères ASCII.

Si le message : Le tableau distant est :

lit les données l’élément source

écrit les données l’élément de destination

.UnconnnectedTimeout DINT Dépassement du temps autorisé pour un message sans connexion ou pour établir une connexion. La valeur par défaut est de 30 secondes.

Si le message est Action

sans connexion Le bit ER est activé si l’automate n’obtient pas de réponse dans le délai autorisé par UnconnectedTimeout.

avec connexion Le bit ER est activé si l’automate n’obtient pas de réponse pour établir la connexion dans le délai autorisé par UnconnectedTimeout.

.ConnectionRate DINT Dépassement du temps autorisé pour un message avec connexion une fois qu’il a établi une connexion. Ce dépassement de temps est valable pour la réponse venant de l’autre dispositif à propos de l’envoi des données.

• Ce timeout n’entre en vigueur qu’après l’établissement de la connexion.

• Timeout = ConnectionRate x TimeoutMultiplier.

• Le temps de connexion (ConnectionRate) par défaut est de 7,5 secondes.

• Le multiplicateur de dépassement de temps (TimeoutMultiplier) par défaut est 0 (ce qui équivaut à un facteur de multiplication de 4).

• Le dépassement de temps par défaut des messages connectés est de 30 secondes (7,5 secondes x 4 = 30 secondes).

• Pour changer le dépassement de temps, changez le taux de connexion (ConnectionRate) et laissez le multiplicateur de dépassement de temps (TimeoutMultiplier) à sa valeur par défaut.

.TimeoutMultiplier SINT

Mnémonique Type de données

Description

Publication 1756-RM003K-FR-P – Juillet 2008 147

Page 148: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 4 Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT)

connexion avec .EN_CC = 1

état d’entrée de la ligne

bit .EW

connexion avec .EN_CC = 0

41382

bit .ST

bit .DN ou bit .ER

bit .EN

1 2 3 4 5 6 7

148 Publication 1756-RM003K-FR-P – Juillet 2008

Page 149: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT) Chapitre 4

Exécution :

Où Description Où Description

1 l’état d’entrée de la ligne est vrai

.EN est activé

.EW est activé

la connexion est ouverte*

5 le message est envoyé

.ST est activé

.EW est désactivé

2 le message est envoyé

.ST est activé

.EW est désactivé

6 le message est terminé ou défaillant

l’état d’entrée de la ligne est encore vrai

.DN ou .ER est activé

.ST est désactivé

la connexion est fermée (si .EN_CC = 0)

3 le message est terminé ou défaillant

l’état d’entrée de la ligne est faux

.DN ou .ER est activé

.ST est désactivé

la connexion est fermée (si .EN_CC = 0)

.EN est désactivé (l’état d’entrée de la ligne est faux)

7 l’état d’entrée de la ligne passe à faux et .DN ou .ER est activé

.EN est désactivé

4 l’état d’entrée de la ligne est vrai

.DN ou .ER était précédemment activé

.EN est activé

.EW est activé

la connexion est ouverte*

.DN ou .ER est désactivé

Condition Action logique à relais Action texte structuré

Pré-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

Publication 1756-RM003K-FR-P – Juillet 2008 149

Page 150: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 4 Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT)

l’état d’entrée de la ligne est vrai

L’instruction est exécutée.

L’état de sortie de la ligne est réglé sur vrai.

--

Condition Action logique à relais Action texte structuré

L’état d’entrée de la ligne est faux

fin

l’état de sortie de la ligne est faux

examiner le bit .EN

bit .EN = 1

bit .EN = 0

examiner le bit .EWbit .EW = 1

bit .EW = 0

examiner le bit .STbit .ST = 1

bit .ST = 0

examiner le bit .DNbit .DN =

bit .DN = 0

examiner le bit .DNbit .DN = 1

bit .DN = 0

examiner le bit .ERbit .ER = 1

bit .ER = 0

le bit .EN est désactivé

examiner le bit .ERbit .ER = 1 bit .ER = 0 commande de

bloc-transfertchemin du module

valide

oui non

non

exécuter la demande de message

le bit .EW est activé

connexion du module établie

non

oui

oui

le bit .ER est activé

150 Publication 1756-RM003K-FR-P – Juillet 2008

Page 151: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT) Chapitre 4

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Condition Action logique à relais Action texte structuré

EnableIn est activé -- EnableIn est toujours activé.

L’instruction est exécutée.

Post-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

Exécution de l’instruction

fin

l’état de sortie de la ligne est faux

bit .EN = 0

examiner le bit .EWbit .EW = 1

bit .EW = 0

examiner le bit .STbit .ST = 1

bit .ST = 0

examiner le bit .DNbit .DN = 1

bit .DN = 0

examiner le bit .ERbit .ER = 1 bit .ER = 0 commande de

bloc-transfertchemin du module

valide

oui non

non

les bits .EW, .ST, .TO, .DN et .ER sont désactivésle bit .EN est activéexécuter la demande de messagele bit .EW est activé

connexion du module établie

non

oui

oui

le bit .ER est activé

examiner le bit .ENbit .EN = 1

examiner le bit .EW

bit .EW = 0

examiner le bit .ST

bit .ST = 0

les bits .EW, .ST, .TO, .DN et .ER sont désactivés

le bit .EN est activé

le bit .EN est activé

bit .EW = 1

bit .ST = 1

Publication 1756-RM003K-FR-P – Juillet 2008 151

Page 152: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 4 Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT)

Codes d’erreur MSG Les codes d’erreur dépendent du type d’instruction MSG.

Codes d’erreur

Le logiciel RSLogix 5000 n’affiche pas toujours la description complète.

Code d’erreur (hex)

Description Affichage dans le logiciel

0001 Echec de la connexion (voir les codes d’erreur étendus) identique à la description

0002 Ressources insuffisantes identique à la description

0003 Valeur incorrecte identique à la description

0004 Erreur de syntaxe ESE (voir les codes d’erreur étendus) identique à la description

0005 Destination inconnue, classe non prise en charge, instance indéfinie ou élément de structure indéfini (voir les codes d’erreur étendus)

identique à la description

0006 Espace de trame insuffisant identique à la description

0007 Connexion perdue identique à la description

0008 Service non pris en charge identique à la description

0009 Erreur dans le segment de données ou valeur d’attribut incorrecte

identique à la description

000A Erreur de liste d’attributs identique à la description

000B L’état existe déjà identique à la description

000C Conflit de modèle d’objet identique à la description

000D L’objet existe déjà identique à la description

000E Attribut non réglable identique à la description

000F Permission refusée identique à la description

0010 Conflit d’état du dispositif identique à la description

0011 La réponse ne peut être insérée identique à la description

0012 Primitive du fragment identique à la description

0013 Données de commande insuffisantes identique à la description

0014 Attribut non pris en charge identique à la description

0015 Trop de données identique à la description

001A Demande de passerelle trop longue identique à la description

001B Réponse de passerelle trop longue identique à la description

001C Manque de liste d’attributs identique à la description

001D Liste d’attributs incorrecte identique à la description

001E Erreur de service intégré identique à la description

001F Panne liée à la connexion (voir les codes d’erreur étendus) identique à la description

0022 Réponse reçue incorrecte identique à la description

0025 Erreur de segment clé identique à la description

0026 Erreur ESE non valable identique à la description

152 Publication 1756-RM003K-FR-P – Juillet 2008

Page 153: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT) Chapitre 4

0027 Attribut inattendu dans la liste identique à la description

0028 Erreur DeviceNet – identité de membre incorrecte identique à la description

0029 Erreur DeviceNet – membre non réglable identique à la description

00D1 Le module n’est pas en état de marche erreur inconnue

00FB Port de message pas pris en charge erreur inconnue

00FC Types de données de message pas pris en charge erreur inconnue

00FD Message non initialisé erreur inconnue

00FE Timeout de message erreur inconnue

00FF Erreur générale (voir les codes d’erreur étendus) erreur inconnue

Code d’erreur (hex)

Description Affichage dans le logiciel

Publication 1756-RM003K-FR-P – Juillet 2008 153

Page 154: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 4 Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT)

Codes d’erreur étendus

Le logiciel RSLogix 5000 n’affiche pas de texte pour les codes d’erreur étendus.

Les codes suivants sont les codes d’erreur étendus pour le code d’erreur 0001.

Les codes suivants sont les codes d’erreur étendus pour le code d’erreur 001F.

Les codes suivants sont les codes d’erreur étendus pour les codes d’erreur 0004 et 0005.

Code d’erreur étendu (hex)

Description

0100 Connexion en cours d’utilisation

0103 Transport pas pris en charge

0106 Conflit de propriété

0107 Connexion introuvable

0108 Type de connexion incorrect

0109 Taille de connexion incorrecte

0110 Module non configuré

0111 EPR pas prise en charge

0114 Module incorrect

0115 Type de dispositif incorrect

0116 Révision incorrecte

0118 Format de configuration incorrect

011A Plus de connexions disponibles pour l’application

0203 Timeout de connexion

0204 Timeout de message non connecté

0205 Erreur de paramètre d’envoi non connecté

0206 Message trop long

0301 Pas de mémoire tampon

0302 Bande passante indisponible

0303 Aucun filtre disponible

0305 Correspondance de signature

0311 Port indisponible

0312 Adresse de lien indisponible

0315 Type de segment incorrect

0317 Connexion non programmée

Code d’erreur étendu (hex)

Description

Code d’erreur étendu (hex)

Description

0203 Timeout de connexion

Code d’erreur étendu (hex)

Description

0000 Insuffisance de mémoire pour l’état étendu

0001 Insuffisance d’instances pour l’état étendu

154 Publication 1756-RM003K-FR-P – Juillet 2008

Page 155: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT) Chapitre 4

Les codes suivants sont les codes d’erreur étendus pour le code d’erreur 00FF.

Code d’erreur étendu (hex)

Description

2001 ESE excessif

2002 Mauvaise valeur de paramètre

2018 Rejet de sémaphore

201B Taille trop petite

201C Taille incorrecte

2100 Echec de privilège

2101 Position de commutateur à clé incorrecte

2102 Mot de passe incorrect

2103 Aucun mot de passe attribué

2104 Adresse hors limites

2105 Adresse et quantité hors limites

2106 Données utilisées

2107 Type incorrect ou pas pris en charge

2108 Automate en mode de transfert ou de chargement

2109 Essai de changement des dimensions de tableau

210A Nom de symbole incorrect

210B Le symbole n’existe pas

210E Echec de la recherche

210F La tâche ne peut commencer

2110 Ecriture impossible

2111 Lecture impossible

2112 Sous-programme partagé non modifiable

2113 Automate en mode de défaut

2114 Mode Run verrouillé

Code d’erreur étendu (hex)

Description

P

ublication 1756-RM003K-FR-P – Juillet 2008 155
Page 156: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 4 Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT)

Codes d’erreur PLC et SLC (.ERR)

La révision 10.x et ultérieure, du firmware Logix fournit de nouveaux codes d’erreur pour les erreurs associées aux types de messages PLC et SLC (messages PCCC).

• Ce changement permet au logiciel RSLogix 5000 d’afficher une description plus significative pour bon nombre d’erreurs. Auparavant, le logiciel ne donnait pas de description pour les erreurs associées au code d’erreur 00F0.

• Le changement rend également les codes d’erreur plus cohérents avec les erreurs renvoyées par d’autres automates, comme les PLC-5.

Le tableau suivant présente les modifications des codes d’erreur entre les révisions R9.x et antérieures et la révision R10.x et ultérieure. En raison du changement, le membre .ERR renvoie une valeur unique pour chaque erreur PCCC. .EXERR n’est plus nécessaire pour ces erreurs.

Codes d’erreur PLC et SLC (hex)

R9.x et antérieure R10.x et ultérieure Description

.ERR .EXERR .ERR .EXERR

0010 1000 Commande ou format non admis de la part du processeur local

0020 2000 Module de communication hors service

0030 3000 Station décentralisée manquante, déconnectée ou hors tension

0040 4000 Processeur connecté mais en défaut (matériel)

0050 5000 Mauvais numéro de station

0060 6000 La fonction demandée n’est pas disponible

0070 7000 Le processeur est en mode Programme

0080 8000 Le fichier de compatibilité du processeur n’existe pas

0090 9000 La station décentralisée ne peut mettre la commande dans le buffer

00B0 B000 Le processeur est en cours de chargement et n’est pas accessible

00F0 0001 F001 Le processeur a incorrectement converti l’adresse

00F0 0002 F002 Adresse incomplète

00F0 0003 F003 Adresse incorrecte

00F0 0004 F004 Format d’adresse non admis – symbole non trouvé

00F0 0005 F005 Format d’adresse non admis – le symbole a 0 ou plus de caractères que le nombre maximum accepté par le dispositif

00F0 0006 F006 Le fichier d’adresses n’existe pas dans le processeur cible

00F0 0007 F007 Le fichier de destination est trop petit pour le nombre de mots demandé

00F0 0008 F008 La demande ne peut être exécutée

La situation a changé pendant l’opération multi-trames

00F0 0009 F009 Les données ou le fichier sont trop grands

Mémoire indisponible

156 Publication 1756-RM003K-FR-P – Juillet 2008

Page 157: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT) Chapitre 4

00F0 000A F00A Le processeur cible ne peut mettre les informations demandées en trames

00F0 000B F00B Erreur de privilège; accès refusé

00F0 000C F00C La fonction demandée n’est pas disponible

00F0 000D F00D La demande est redondante

00F0 000E F00E La commande ne peut être exécutée

00F0 000F F00F Dépassement ; dépassement d’histogramme

00F0 0010 F010 Pas d’accès

00F0 0011 F011 Le type de données demandé ne correspond pas aux données disponibles

00F0 0012 F012 Paramètres de commande incorrects

00F0 0013 F013 La référence d’adresse existe dans une zone effacée

00F0 0014 F014 Echec de l’exécution de la commande pour une raison inconnue

Dépassement d’histogramme de PLC-3

00F0 0015 F015 Erreur de conversion des données

00F0 0016 F016 Le scrutateur n’est pas disponible pour communiquer avec un adaptateur de rack 1771

00F0 0017 F017 L’adaptateur n’est pas disponible pour communiquer avec le module

00F0 0018 F018 La réponse du module 1771 était incorrecte

00F0 0019 F019 Etiquette en double

00F0 001A F01A Le propriétaire du fichier est actif – le fichier est utilisé

00F0 001B F01B Le propriétaire du programme est actif – quelqu’un effectue un chargement ou des modifications en ligne

00F0 001C F01C Le fichier disque est protégé en écriture ou inaccessible pour toute autre raison (hors ligne uniquement)

00F0 001D F01D Le fichier disque est utilisé par une autre application

Mise à jour non effectuée (hors ligne uniquement)

Codes d’erreur PLC et SLC (hex) (suite)

R9.x et antérieure R10.x et ultérieure Description

.ERR .EXERR .ERR .EXERR

Publication 1756-RM003K-FR-P – Juillet 2008 157

Page 158: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 4 Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT)

Codes d’erreur de bloc-transfert

Les codes suivants sont les codes d’erreur spécifiques aux blocs-transferts Logix5000.

Code d’erreur (hex)

Description Affichage dans le logiciel

00D0 Le scrutateur n’a pas reçu de réponse de bloc-transfert du module à bloc-transfert dans les 3,5 secondes après la demande

erreur inconnue

00D1 Le checksum de la réponse de lecture ne correspond pas au checksum des données erreur inconnue

00D2 Le scrutateur a demandé une lecture ou une écriture, mais le module de bloc-transfert a répondu avec l’inverse

erreur inconnue

00D3 Le scrutateur a demandé une longueur et le module de bloc-transfert a répondu avec une longueur différente

erreur inconnue

00D6 Le scrutateur a reçu une réponse du module de bloc-transfert indiquant que la demande d’écriture a échoué

erreur inconnue

00EA Le scrutateur n’a pas été configuré pour communiquer avec le rack qui doit contenir ce module de bloc-transfert

erreur inconnue

00EB L’emplacement logique spécifié n’est pas disponible pour la taille de rack donnée erreur inconnue

00EC Une demande de bloc-transfert est en cours et une réponse est requise avant qu’une autre demande ne puisse commencer

erreur inconnue

00ED La taille des demandes de bloc-transfert ne correspond pas aux tailles de demandes de bloc-transfert valables

erreur inconnue

00EE Le type de demande de bloc-transfert ne correspond pas au BT_READ ou BT_WRITE attendu

erreur inconnue

00EF Le scrutateur n’a pas trouvé d’emplacement disponible dans la table des blocs-transferts pour permettre la demande de bloc-transfert

erreur inconnue

00F0 Le scrutateur a reçu une demande de réinitialisation des voies d’E/S décentralisées alors qu’il y avait des blocs-transferts en attente

erreur inconnue

00F3 Les files d’attente pour les bloc-transferts à distance sont pleines erreur inconnue

00F5 Aucune voie de communication n’est configuré pour le rack ou l’emplacement demandé erreur inconnue

00F6 Aucune voie de communication n’est configuré pour les E/S décentralisées erreur inconnue

00F7 Le timeout du bloc-transfert, défini dans l’instruction, a été dépassé avant la fin erreur inconnue

00F8 Erreur du protocole de bloc-transfert – bloc-transfert non sollicité erreur inconnue

00F9 Les données de bloc-transfert ont été perdues en raison d’une mauvaise voie de communication

erreur inconnue

00FA Le module de bloc-transfert a demandé une longueur différente de celle de l’instruction de bloc-transfert associée

erreur inconnue

00FB Le checksum des données de lecture du bloc-transfert est faux erreur inconnue

00FC Un transfert incorrect de données d’écriture du bloc-transfert a été effectué entre l’adaptateur et le module de bloc-transfert

erreur inconnue

00FD La taille du bloc-transfert plus celle de l’index de la table des données de bloc-transfert est supérieure à la taille du fichier de la table des données de bloc-transfert

erreur inconnue

158 Publication 1756-RM003K-FR-P – Juillet 2008

Page 159: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT) Chapitre 4

Spécification des détails de configuration

Une fois que vous avez entré l’instruction MSG et que vous avez spécifié la structure MESSAGE, utilisez l’onglet Configuration de Message dans le logiciel de programmation pour définir les détails du message.

Les détails que vous configurez dépendent du type de message que vous sélectionnez.

Cliquez ici pour configurer l’instruction MSG

42976

Si le dispositif cible est un Sélectionnez l’un de ces types de message

Voir page

Automate Logix5000 Lecture de table de données CIP 160

Ecriture de table de données CIP

Module d’E/S que vous configurez avec le logiciel RSLogix 5000

Reconfiguration du module 161

CIP générique 162

Automate PLC-5 Ecriture de type PLC5 163

Ecriture de type PLC5

Lecture de plage de mot PLC5

Ecriture de plage de mot PLC5

Automate SLC

Automate MicroLogix

Ecriture de type SLC 165

Ecriture de type SLC

Module de bloc-transfert Bloc-transfert de lecture 165

Bloc-transfert d’écriture

Processeur PLC-3 Lecture de type PLC3 165

Ecriture de type PLC3

Lecture de plage de mot PLC3

Ecriture de plage de mot PLC3

Processeur PLC-2 Lecture non protégée PLC2 167

Ecriture non protégée PLC2

Publication 1756-RM003K-FR-P – Juillet 2008 159

Page 160: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 4 Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT)

Vous devez définir les informations de configuration suivantes.

Spécification des messages de lecture et d’écriture des fichiers de données CIP

Les types de messages de lecture et d’écriture du fichier de données CIP transfère les données entre les automates Logix5000.

Pour cette propriété Spécifiez

Elément source • Si vous sélectionnez un type de message de lecture, l’élément source est l’adresse des données que vous voulez lire dans le dispositif cible. Utilisez la syntaxe d’adressage du dispositif cible.

• Si vous sélectionnez un type de message d’écriture, le point source est le premier élément du point que vous voulez envoyer vers l’équipement cible.

Nombre d’éléments Le nombre d’éléments que vous lisez/écrivez dépend du type de données que vous utilisez. Un élément renvoie à un « bloc » de données liées. Par exemple, le point timer1 est un élément constitué d’une structure de commande de temporisateur.

Elément de destination • Si vous sélectionnez un type de message de lecture, l’élément de destination est le premier élément du point dans l’automate Logix5000 où vous voulez stocker les données que vous lisez à partir de l’équipement cible.

• Si vous sélectionnez un type de message d’écriture, l’élément de destination est l’adresse de l’emplacement dans le dispositif cible où vous voulez écrire les données.

Sélectionnez cette commande Si vous voulez

Lecture de fichiers de données CIP lire des données à partir d’un autre automate.

Les types source et de destination doivent concorder.

Ecriture de fichiers de données CIP écrire des données vers un autre automate.

Les types source et de destination doivent concorder.

160 Publication 1756-RM003K-FR-P – Juillet 2008

Page 161: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT) Chapitre 4

Reconfiguration d’un module d’E/S

Utilisez le message de reconfiguration du module (Module Reconfigure) pour envoyer une nouvelle configuration vers un module d’E/S. Pendant la reconfiguration :

• les modules d’entrée continuent d’envoyer des données d’entrée à l’automate ;

• les modules de sortie continuent de commander leurs équipements de sortie.

Un message de reconfiguration du module requiert ces propriétés de configuration.

Exemple : Pour reconfigurer un module d’E/S :

1. réglez le membre requis du point de configuration du module sur la nouvelle valeur ;

2. envoyez un message de reconfiguration du module au module.

Lorsque reconfigure[5] est activé, réglez l’alarme haute sur 60 pour le module local dans l’emplacement 4. Le message de reconfiguration du module envoie alors la nouvelle valeur de l’alarme au module. L’instruction impulsionnelle empêche la ligne d’envoyer des messages multiples au module pendant que reconfigure[5] est actif.

Logique à relais

Texte structuré

IF reconfigure[5] AND NOT reconfigure[6]THEN

Local:4:C.Ch0Config.HAlarmLimit := 60;

IF NOT change_Halarm.EN THEN

MSG(change_Halarm);

END_IF;

END_IF;

reconfigure[6] := reconfigure[5];

Dans cette propriété Sélection

Type de message Reconfiguration du module

Publication 1756-RM003K-FR-P – Juillet 2008 161

Page 162: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 4 Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT)

Définition des messages CIP génériques

Un message CIP générique exécute une opération spécifique sur le module d’E/S.

Si vous voulez Dans cette propriété Saisissez ou sélectionnez

Effectuer un test d’impulsion sur un module de sorties TOR

Type de message CIP générique

Type de service Test par impulsion

Source tag_name de type INT [5]

Ce tableau contient :

tag_name[0] bit de masque de points à tester (ne teste qu’un point à la fois)

tag_name[1] réservé, laisser à 0

tag_name[2] largeur d’impulsion (centaines de μs, généralement 20)

tag_name[3] délai de passage par zéro pour E/S ControlLogix (centaines de μs, généralement 40)

tag_name[4] vérifier le délai

Destination laisser vide

Réinitialiser les fusibles électroniques sur un module de sorties TOR

Type de message CIP générique

Type de service Réinitialiser le fusible électronique

Source tag name de type DINT

Ce point représente un masque de bit des points sur lequel réinitialiser les fusibles.

Destination laisser vide

Réinitialiser les diagnostics verrouillés sur un module d’entrées

Type de message CIP générique

Type de service Réinitialiser les diagnostics verrouillés (I)

Source tag_name de type DINT

Ce point représente un masque de bit des points sur lequel réinitialiser les diagnostics.

Réinitialiser les diagnostics verrouillés sur un module de sorties

Type de message CIP générique

Type de service Réinitialiser les diagnostics verrouillés (O)

Source tag_name de type DINT

Ce point représente un masque de bit des points sur lequel réinitialiser les diagnostics.

162 Publication 1756-RM003K-FR-P – Juillet 2008

Page 163: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT) Chapitre 4

Définition des messages PLC-5

Utilisez les types de message PLC-5 pour communiquer avec les automates PLC-5.

Déverrouiller l’alarme d’un module d’entrées analogiques

Type de message CIP générique

Type de service Sélectionner l’alarme que vous voulez déverrouiller :

• Déverrouiller toutes les alarmes (I)

• Déverrouiller l’alarme haute analogique (I)

• Déverrouiller l’alarme haute haute analogique (I)

• Déverrouiller l’alarme basse analogique (I)

• Déverrouiller l’alarme basse basse analogique (I)

• Déverrouiller l’alarme de variation (I)

Instance Voie de l’alarme que vous voulez déverrouiller

Déverrouiller l’alarme d’un module de sorties analogiques

Type de message CIP générique

Type de service Sélectionner l’alarme que vous voulez déverrouiller :

• Déverrouiller toutes les alarmes (O)

• Déverrouiller l’alarme haute (O)

• Déverrouiller l’alarme basse (O)

• Déverrouiller l’alarme de rampe (O)

Instance Voie de l’alarme que vous voulez déverrouiller

Si vous voulez Dans cette propriété Saisissez ou sélectionnez

Sélectionnez cette commande

Si vous voulez

Lecture de type PLC5 Lire des données de type nombre entier à 16 bits, virgule flottante ou chaîne et maintenir l’intégrité des données. Voir Types de données pour les messages de lecture et d’écriture de type PLC5, page 164.

Ecriture de type PLC5 Ecrire des données de type nombre entier à 16 bits, virgule flottante ou chaîne et maintenir l’intégrité des données. Voir Types de données pour les messages de lecture et d’écriture de type PLC5, page 164.

Lecture de plage de mot PLC5 Lire une plage contiguë de mots de 16 bits dans la mémoire du PLC-5 quel que soit le type de données.

Cette commande commence à l’adresse définie comme élément source et lit de façon séquentielle le nombre de mots de 16 bits demandé.

Les données de l’élément source sont stockées, en commençant à l’adresse spécifiée comme point de destination.

Ecriture de plage de mot PLC5 Ecrire une plage contiguë de mots de 16 bits à partir de la mémoire du Logix5000 quel que soit le type de données vers la mémoire du PLC-5.

Cette commande commence à l’adresse définie comme point source et lit de façon séquentielle le nombre de mots de 16 bits demandé.

Les données du point source sont stockées, en commençant à l’adresse spécifiée comme élément de destination dans le processeur PLC-5.

Publication 1756-RM003K-FR-P – Juillet 2008 163

Page 164: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 4 Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT)

Le tableau suivant indique les types de données à utiliser avec les messages de lecture et d’écriture de type PLC5.

Les commandes de type lecture et écriture fonctionnent également avec les processeurs SLC 5/03 (OS303 et ultérieur), SLC 5/04 (OS402 et ultérieur) et SLC 5/05.

Le diagramme suivant montre comment les commandes de type lecture et écriture et de plage de mots diffèrent. L’exemple utilise des commandes de lecture d’un processeur PLC-5 vers un automate Logix5000.

Types de données pour les messages de lecture et d’écriture de type PLC5

Pour ce type de données PLC-5 Utilisez ce type de données Logix5000

B INT

F REAL

N INT

DINT (N’écrivez des valeurs DINT sur un automate PLC-5 que si la valeur est ≥ –32 768 et ≤ 32 767.)

S INT

ST STRING

mots de 16 bits dans processeur PLC-5

mots de 32 bits dans automate Logix5000

Les commandes de type lecture et écriture maintiennent la structure et la valeur des données.

1

2

3

4

Commande de type lecture

1

2

3

4

mots de 16 bits dans processeur PLC-5

mots de 32 bits dans automate Logix5000

Les commandes de plage de mots remplissent le point de destination de façon contiguë. La structure et la valeur des données changent selon le type des données de destination.

1

2

3

4

Commande de lecture de plage de mots

1

3

2

4

164 Publication 1756-RM003K-FR-P – Juillet 2008

Page 165: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT) Chapitre 4

Définition des messages SLC

Utilisez les types de message SLC pour communiquer avec les automates SLC et MicroLogix. Le tableau suivant indique à quels types de données l’instruction vous permet d’accéder. Le tableau indique également le type de données Logix5000 correspondant.

Définition des messages de bloc-transfert

Les types de message bloc-transfert sont utilisés pour communiquer avec les modules par bloc-transfert sur un réseau RIO.

Pour configurer un message bloc-transfert, observez les directives suivantes :

• les points source (pour BTW) et destination (pour BTR) doivent être assez longs pour accepter les données demandées, excepté pour les structures MESSAGE, AXIS et MODULE ;

• spécifiez combien de nombres entiers de 16 bits (INT) envoyer ou recevoir. Vous pouvez spécifier de 0 à 64 nombres entiers.

Définition des messages PLC-3

Les messages de type PLC-3 sont conçus pour les processeurs PLC-3.

Pour ce type de données SLC ou MicroLogix

Utilisez ce type de données Logix5000

F REAL

L (automates MicroLogix 1200 et 1500) DINT

N INT

Si vous voulez Sélectionnez cette commande

Lire des données à partir d’un module par bloc-transfert.

Ce type de message remplace l’instruction BTR.

Bloc-transfert lecture

Ecrire des données vers un module par bloc-transfert.

Ce type de message remplace l’instruction BTW.

Bloc-transfert écriture

Si vous voulez que Définissez

le module à bloc-transfert détermine combien de nombres entiers de 16 bits envoyer (BTR).

0 comme nombre d’éléments

l’automate envoie 64 nombres entiers (BTW).

Publication 1756-RM003K-FR-P – Juillet 2008 165

Page 166: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 4 Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT)

Sélectionnez cette commande

Si vous voulez

Ecriture de type PLC3 Lire des données de nombres entiers ou de type REAL.

Pour les nombres entiers, cette commande lit des entiers de 16 bits à partir du processeur PLC-3 et les stocke dans des tableaux de données SINT, INT ou DINT dans l’automate Logix5000 et maintient l’intégrité des données.

Cette commande lit également les données à virgule flottante à partir du processeur PLC-3 et les stocke dans un point de type de données REAL dans l’automate Logix5000.

Ecriture de type PLC3 Ecrire des données de nombres entiers ou de type REAL.

Cette commande écrit des données SINT ou INT, dans le fichier de nombres entiers PLC-3 et maintient l’intégrité des données. Vous pouvez écrire des données DINT tant qu’elles entrent dans un type de données INT (−32 768 ≥ données ≤ 32 767).

Cette commande écrit également les données REAL à partir de l’automate Logix5000 vers un fichier à virgule flottante PLC-3 (fichier de type F).

Lecture de plage de mot PLC3 Lire une plage contiguë de mots de 16 bits dans la mémoire du PLC-3 quel que soit le type de données.

Cette commande commence à l’adresse définie comme élément source et lit de façon séquentielle le nombre de mots de 16 bits demandé.

Les données de l’élément source sont stockées, en commençant à l’adresse spécifiée comme point de destination.

Ecriture de plage de mot PLC3 Ecrire une plage contiguë de mots de 16 bits à partir de la mémoire du Logix5000 quel que soit le type de données vers la mémoire du PLC-3.

Cette commande commence à l’adresse définie comme point source et lit de façon séquentielle le nombre de mots de 16 bits demandé.

Les données du point source sont stockées, en commençant à l’adresse spécifiée comme élément de destination dans le processeur PLC-3.

166 Publication 1756-RM003K-FR-P – Juillet 2008

Page 167: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT) Chapitre 4

Le diagramme suivant montre comment les commandes de type lecture et écriture et de plage de mots diffèrent. L’exemple utilise des commandes de lecture d’un processeur PLC-3 vers un automate Logix5000.

Définition des messages PLC-2

Les messages de type PLC-2 sont conçus pour les processeurs PLC-2.

Le message de transfert utilise des mots de 16 bits, assurez-vous que le point du Logix5000 stocke les données transférées de façon appropriée (généralement sous forme de tableau INT).

mots de 16 bits dans processeur PLC-3

mots de 32 bits dans automate Logix5000

Les commandes de type lecture et écriture maintiennent la structure et la valeur des données.

1

2

3

4

Commande de type lecture

1

2

3

4

mots de 16 bits dans processeur PLC-3

mots de 32 bits dans automate Logix5000

Les commandes de plage de mots remplissent le point de destination de façon contiguë. La structure et la valeur des données changent selon le type des données de destination.

1

2

3

4

Commande de lecture de plage de mot

1

3

2

4

Sélectionnez cette commande

Si vous voulez

Lecture non protégée PLC2 lire des mots de 16 bits à partir de n’importe quelle zone de la table de données PLC-2 ou du fichier de compatibilité PLC-2 d’un autre processeur.

Ecriture non protégée PLC2 écrire des mots de 16 bits vers n’importe quelle zone de la table de données PLC-2 ou du fichier de compatibilité PLC-2 d’un autre processeur.

Publication 1756-RM003K-FR-P – Juillet 2008 167

Page 168: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 4 Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT)

Exemples de configuration MSG

Les exemples suivants montrent des points source et destination et des éléments pour différentes combinaisons d’automates.

Pour des instructions MSG ayant pour origine un automate Logix5000 et écrivant dans un autre automate :

Pour des instructions MSG ayant pour origine un automate Logix5000 et lisant à partir d’un autre automate :

Chemin du message Exemple de source et de destination

Logix5000 → Logix5000 point source array_1[0]

point de destination array_2[0]

Vous pouvez utiliser un point d’alias pour le point source (dans l’automate Logix5000 d’origine).

Vous ne pouvez pas utiliser un alias pour le point de destination. La destination doit être un point de base.

Logix5000 → PLC-5

Logix5000 → SLC

point source array_1[0]

élément de destination N7:10

Vous pouvez utiliser un point d’alias pour le point source (dans l’automate Logix5000 d’origine).

Logix5000 → PLC-2 point source array_1[0]

élément de destination 010

Chemin du message Exemple de source et de destination

Logix5000 → Logix5000 point source array_1[0]

point de destination array_2[0]

Vous ne pouvez pas utiliser un point d’alias pour le point source. La source doit être un point de base.

Vous pouvez utiliser un point d’alias pour le point de destination (dans l’automate Logix5000 d’origine).

Logix5000 → PLC-5

Logix5000 → SLC

élément source N7:10

point de destination array_1[0]

Vous pouvez utiliser un point d’alias pour le point de destination (dans l’automate Logix5000 d’origine).

Logix5000 → PLC-2 élément source 010

point de destination array_1[0]

168 Publication 1756-RM003K-FR-P – Juillet 2008

Page 169: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT) Chapitre 4

Définition de la communication

Pour configurer une instruction MSG, spécifiez les détails suivants dans l’onglet Communication.

Définition d’un chemin

Le chemin décrit l’acheminement du message vers la destination. Il utilise soit les noms dans la configuration des E/S de l’automate, soit les nombres que vous saisissez, ou les deux.

Définition d’un chemin

Définition d’une méthode de communication ou d’une adresse de module

Choix d’une option de cache

Si Action

La configuration des E/S de l’automate inclut le module qui obtient le message.

Utilisez le bouton Browse (parcourir) pour sélectionner le module.

La configuration des E/S de l’automate n’inclut que le module de communication local.

1. Utilisez le bouton Browse pour sélectionner le module de communication local.

2. Entrez le reste du chemin.

La configuration des E/S de l’automate n’inclut aucun des modules dont vous avez besoin pour le message.

Entrez le chemin.

Publication 1756-RM003K-FR-P – Juillet 2008 169

Page 170: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 4 Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT)

Pour entrer un chemin, utilisez ce format :

port, adresse_suivante, port, adresse_suivante, …

Exemple

La configuration des E/S de l’automate inclut le module qui obtient le message.

La configuration des E/S de l’automate n’inclut que le module de communication local.

La configuration des E/S de l’automate n’inclut aucun des modules dont vous avez besoin pour le message.

Cliquez sur le bouton Browse (parcourir) et sélectionnez le module.

Aller au module de communication local.

Sorter par le port EtherNet/IP...

pour aller à l’adresse 10.10.10.10.

Passer par le bus intermodules…

jusqu’au module dans le logement 0.

jusqu’au module de communication dans le logement 1

Sorter par le port ControlNet...

pour aller à la station 4

Passer par le bus intermodules…

jusqu’au module dans le logement 0.

Passer par le bus intermodules…

170 Publication 1756-RM003K-FR-P – Juillet 2008

Page 171: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT) Chapitre 4

Où Est

Pour ce réseau Entrer

port bus intermodules 1

DF1 (série, voie série 0) 2

ControlNet

EtherNet/IP

DH+ voie A

DH+ voie B 3

DF1 voie 1 (voie série 1)

adresse_suivante bus intermodules numéro de logement du module

DF1 (série) adresse de station (0 – 254)

ControlNet numéro de station (1 – 99 décimal)

DH+ 8# suivi du numéro de station (1 – 77 octal)

Par exemple, pour définir l’adresse de station octale 37, tapez 8#37.

EtherNet/IP Vous pouvez spécifier un module sur un réseau Ethernet/IP à l’aide d’un des formats suivants :

adresse IP (par exemple, 10.10.10.10) ;

adresse IP:Port (par exemple, 10.10.10.10:24).

nom DNS (par exemple, réservoirs)

nom DNS:Port (par exemple, réservoirs:24)

Publication 1756-RM003K-FR-P – Juillet 2008 171

Page 172: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 4 Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT)

Pour les blocs-transferts

Pour les messages de bloc-transfert, ajoutez les modules suivants à la configuration des E/S de l’automate :

Définition d’une méthode de communication ou d’une adresse de module

Utilisez le tableau suivant pour sélectionner une méthode de communication ou une adresse de module pour le message.

Pour les blocs-transferts sur ce réseau

Ajoutez ces modules à la configuration des E/S

ControlNet • module de communication local (par exemple, module 1756-CNB)

• module adaptateur distant (par exemple, module 1771-ACN)

RIO • module de communication local (par exemple, module 1756-DHRIO)

• un module adaptateur distant (par exemple, module 1771-ASB) pour chaque rack, ou partie de rack, dans un châssis

• module bloc-transfert (en option)

Si le dispositif de destination est un

Sélectionnez Et spécifiez

Automate Logix5000 CIP aucune autre spécification requise

Automate PLC-5 sur réseau EtherNet/IP

Automate PLC-5 sur réseau ControlNet

Automate SLC 5/05

Automate PLC-5 sur réseau DH+ DH+ Voie : Voie A ou B du module 1756-DHRIO connecté au réseau DH+

Automate SLC sur réseau DH+ Lien source : Identificateur de liaison attribué au fond de panier de l’automate dans la table de routage du module 1756-DHRIO. (La station source dans la table de routage est automatiquement le numéro d’emplacement de l’automate).

Processeur PLC-3 Lien destinataire : Identificateur de la liaison DH+ à l’endroit où le dispositif cible réside

Processeur PLC-2 Station destinataire : Adresse de station de l’équipement cible, en octal

S’il n’y a qu’une liaison DH+ et que vous n’avez pas utilisé le logiciel RSLinx pour configurer le module DH/RIO pour les liaisons décentralisées, spécifiez 0 pour Lien source et Lien destinataire.

172 Publication 1756-RM003K-FR-P – Juillet 2008

Page 173: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT) Chapitre 4

Choix d’une option de cache

Selon la configuration choisie pour une instruction MSG, elle peut utiliser une connexion pour envoyer et recevoir des données.

Application sur une station de travail qui reçoit un message non sollicité acheminé via un réseau Ethernet/IP ou ControlNet à l’aide de RSLinx

CIP avec ID source

(Ceci permet à l’application de recevoir des données d’un automate.)

Lien source : Identificateur distant de la rubrique dans le logiciel RSLinx

Lien destinataire : Identificateur de liaison virtuelle configuré dans RSLinx (0 – 65 535)

Station destinataire : Identificateur de destination (0 – 77 octal) fourni par l’application à RSLinx Pour une rubrique DDE dans RSLinx, utilisez 77.

Le numéro d’emplacement de l’automate ControlLogix est utilisé comme station source.

Module bloc-transfert sur un réseau d’E/S décentralisées

RIO Voie : Voie A ou B du module 1756-DHRIO connecté au réseau RIO

Rack : Numéro de rack (octal) du module

Groupe : Numéro de groupe du module

Emplacement : Numéro de l’emplacement où se trouve le module

Module bloc-transfert sur réseau ControlNet

ControlNet Emplacement : Numéro de l’emplacement où se trouve le module

Si le dispositif de destination est un

Sélectionnez Et spécifiez

Ce type de message Et cette méthode de communication

Utilise une connexion

Lecture ou écriture de table de données CIP ✓

PLC2, PLC3, PLC5 ou SLC (tous types) CIP

CIP avec ID source

DH+ ✓

CIP générique votre option (1)

Bloc-transfert lecture ou écriture ✓

(1) Vous pouvez connecter des messages CIP génériques. Mais pour la plupart des applications, il est recommandé de laisser les messages CIP génériques sans connexion.

Publication 1756-RM003K-FR-P – Juillet 2008 173

Page 174: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 4 Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT)

Si une instruction MSG utilise une connexion, vous avez la possibilité de laisser la connexion ouverte (cache) ou de fermer la connexion lorsque le message est transmis.

L’automate possède les limites suivantes pour le nombre de connexions que vous pouvez mettre en cache:

Si plusieurs messages vont vers le même dispositif, les messages peuvent partager une connexion.

Si vous Action

Mettez la connexion en cache

La connexion reste ouverte une fois l’instruction MSG terminée. Ceci permet d’optimiser le temps d’exécution. Etablir une connexion à chaque exécution du message augmente le temps d’exécution.

Ne mettez pas la connexion en cache

La connexion est fermée une fois l’instruction MSG terminée. Ceci permet de libérer la connexion pour d’autres utilisations.

Avec cette révision de firmware

Vous pouvez mettre en cache

11.x ou antérieure • des messages de bloc-transfert pour 16 connexions au maximum

• d’autres types de messages pour 16 connexions au maximum

12.x ou ultérieure jusqu’à 32 connexions

Si les instructions MSG sont pour Et qu’elles sont Action

différents dispositifs Chaque instruction MSG utilise 1 connexion.

le même dispositif activées en même temps Chaque instruction MSG utilise 1 connexion.

PAS activées en même temps Les instructions MSG partagent la connexion. (Elles comptent ensemble comme 1 connexion.)

EXEMPLE Partager une connexion

Si l’automate alterne entre envoyer un message de lecture de bloc-transfert et un message d’écriture de bloc-transfert vers le même module, les deux messages comptent ensemble comme 1 connexion. Mettre les messages en cache compte comme 1 dans la liste de la mémoire cache.

174 Publication 1756-RM003K-FR-P – Juillet 2008

Page 175: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT) Chapitre 4

Recommandations

Observez les recommandations suivantes pour la planification et la programmation de vos instructions MSG :

Recommandation Détails

1. Pour chaque instruction MSG, créez un point de commande.

Chaque instruction MSG requiert son propre point de commande.

• Type de données = MESSAGE

• Champ d’application = automate

• Le point ne peut pas faire partie d’un tableau ou d’un type de données utilisateur

2. Conservez les données source et/ou destination comme des données d’automate.

Une instruction MSG ne peut accéder qu’aux points qui se trouvent dans le dossier Controller Tags (points d’automate).

3. Si votre instruction MSG est destinée à un dispositif qui utilise des nombres entiers de 16 bits, utilisez un buffer de valeurs INT dans l’instruction MSG et de DINT dans le projet.

Si votre message est destiné à un dispositif qui utilise des nombres entiers de 16 bits, comme un automate PLC-5® ou SLC 500™, et qu’il transfère des nombres entiers (pas des valeurs REAL), utilisez un buffer de valeurs INT dans le message et des valeurs DINT dans le projet.

Ceci permet d’améliorer l’efficacité de votre projet parce que les automates Logix sont exécutés plus efficacement et utilisent moins de mémoire pour travailler avec des nombres entiers de 32 bits (DINT).

Pour la conversion de valeurs INT en DINT, voir Logix5000 Controllers Common Procedures, publication 1756-PM001.

4. Mettez en cache les instructions MSG avec connexion qui sont exécutées le plus souvent.

Mettez en cache la connexion de ces instructions MSG qui sont exécutées le plus souvent, jusqu’au nombre maximum autorisé en fonction de la révision de votre automate.

Ceci permet d’optimiser le temps d’exécution parce que l’automate n’a pas besoin d’établir une connexion à chaque fois qu’un message est exécuté.

5. Si vous voulez activer plus de 16 instructions MSG à la fois, utilisez une stratégie de gestion.

Si vous activez plus de 16 instructions MSG à la fois, certaines de ces instructions peuvent subir des retards pour entrer dans la file d’attente. Pour garantir l’exécution de chaque message, utilisez une des options suivantes :

• activez chaque message séquentiellement ;

• activez les messages en groupes ;

• programmez un message pour qu’il communique avec plusieurs dispositifs. Pour plus d’informations, voir Logix5000 Controllers Common Procedures, publication 1756-PM001.

• créez un programme pour coordonner l’exécution des messages. Pour plus d’informations, voir Logix5000 Controllers Common Procedures, publication 1756-PM001.

6. Maintenez le nombre d’instructions MSG sans connexion et sans cache inférieur au nombre de buffers sans connexion.

L’automate peut avoir 10 à 40 buffers sans connexion. Le nombre par défaut est 10.

• Si tous les buffers sans connexion sont utilisés lorsqu’une instruction sort de la file des messages, l’instruction génère une erreur et ne transfère pas les données.

• Vous pouvez augmenter le nombre de buffers sans connexion (40 max.), mais observez en permanence la recommandation 5.

• Pour augmenter le nombre de buffers sans connexion, voir Logix5000 Controllers Common Procedures, publication 1756-PM001.

Publication 1756-RM003K-FR-P – Juillet 2008 175

Page 176: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 4 Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT)

Lire une valeur système (GSV) et écrire une valeur système (SSV)

Les instructions GSV/SSV lisent et écrivent les données système de l’automate qui sont stockées dans les objets.

Opérandes :

Logique à relais

Texte structuré

Les opérandes sont identiques à ceux des instructions GSV et SSV en logique à relais.

Opérande Type Format Description

Nom de la classe nom nom de l’objet

Nom d’instance nom nom de l’objet spécifique, lorsque celui-ci a besoin d’un nom

Nom d’attribut nom attribut de l’objet

le type des données dépend de l’attribut sélectionné

Destination (GSV) SINT

INT

DINT

REAL

structure

point destination des données de l’attribut

Source (SSV) SINT

INT

DINT

REAL

structure

point point contenant les données que vous voulez copier dans l’attribut

GSV(ClassName,InstanceName,AttributeName,Dest);

SSV(ClassName,InstanceName,AttributeName,Source);

176 Publication 1756-RM003K-FR-P – Juillet 2008

Page 177: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT) Chapitre 4

Description : Les instructions GSV/SSV lisent et écrivent les données système de l’automate qui sont stockées dans les objets. L’automate stocke les données système dans des objets. Il n’y a pas de fichier d’état, comme dans le processeur PLC-5.

Lorsqu’elle est activée, l’instruction GSV récupère les informations spécifiées et les stocke dans la destination. Lorsqu’elle est activée, l’instruction SSV écrit des données de la source dans l’attribut spécifié.

Lorsque vous entrez une instruction GSV/SSV, le logiciel de programmation affiche les classes d’objets valables, les noms d’objets et les noms d’attributs pour chaque instruction. Pour l’instruction GSV, vous pouvez obtenir des valeurs pour tous les attributs disponibles. Pour l’instruction SSV, le logiciel n’affiche que les attributs pouvant être écrits (SSV).

La section Objets GSV/SSV montre les attributs de chaque objet et les types de données associés. Par exemple, l’attribut MajorFaultRecord de l’objet Program nécessite un type de données DINT[11].

ATTENTION Utilisez les instructions GSV et SSV avec précaution. La modification des objets peut entraîner un fonctionnement inattendu de l’automate ou des blessures corporelles.

Vous devez tester et vous assurez que les instructions ne modifient pas des données que vous voulez préservées.

Les instructions GVS et SSV sont susceptibles d’écrire ou de lire au-delà d’un membre dans d’autres membres d’un point. Si le point est trop petit, les instructions n’écrivent pas et ne lisent pas les données. Elles génèrent un défaut mineur à la place.

Exemple 1

Le Membre_A est trop petit pour l’attribut. L’instruction GSV écrit la dernière valeur dans le Membre_B.

Exemple 2

Mon_Point est trop petit pour l’attribut. L’instruction GSV s’arrête et enregistre un défaut mineur.

Publication 1756-RM003K-FR-P – Juillet 2008 177

Page 178: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 4 Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT)

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur :

Exécution :

Un défaut mineur se produit si Type de défaut Code de défaut

l’adresse d’objet est incorrecte 4 5

l’objet spécifié ne prend pas en charge GSV/SSV 4 6

l’attribut est incorrect 4 6

l’information disponible n’est pas suffisante pour une instruction SSV

4 6

la destination de GSV n’était pas assez grande pour contenir les données demandées

4 7

Condition Action logique à relais Action texte structuré

Pré-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

L’état d’entrée de la ligne est faux

L’état de sortie de la ligne est réglé sur faux. --

L’état d’entrée de la ligne est vrai

L’instruction est exécutée.

L’état de sortie de la ligne est réglé sur vrai.

--

EnableIn est activé -- EnableIn est toujours activé.

L’instruction est exécutée.

L’instruction est exécutée Lire ou définir la valeur spécifiée. Lire ou définir la valeur spécifiée.

Post-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

178 Publication 1756-RM003K-FR-P – Juillet 2008

Page 179: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT) Chapitre 4

Objets GSV/SSV Lorsque vous entrez une instruction GSV/SSV, vous spécifiez l’objet et l’attribut auquel vous voulez accéder. Dans certains cas, il y a plus d’une occurrence du même type d’objet, vous pouvez donc éventuellement devoir aussi spécifier le nom de l’objet. Par exemple, il peut y avoir plusieurs tâches dans votre application. Chaque tâche a son propre objet TASK auquel vous accédez par le nom de la tâche.

Vous pouvez accéder aux objets suivants :

Accéder à l’objet CONTROLLER

L’objet CONTROLLER fournit des informations d’état sur l’exécution d’un automate.

ATTENTION Pour l’instruction GSV, seule la taille de données spécifiée est copiée vers la destination. Par exemple, si l’attribut est défini comme SINT et la destination est DINT, seuls les 8 bits de poids faible de la destination DINT sont mis à jour, les autres 24 bits restent inchangés.

Pour des informations sur cet objet Voir la page ou la publication suivante

AXIS ControlLogix Motion Module Setup and Configuration Manual, publication 1756-UM006

CONTROLLER 179

CONTROLLERDEVICE 181

CST 183

DF1 184

FAULTLOG 187

MESSAGE 188

MODULE 190

MOTIONGROUP 191

PROGRAM 192

ROUTINE 193

SERIALPORT 193

TASK 195

WALLCLOCKTIME 197

Publication 1756-RM003K-FR-P – Juillet 2008 179

Page 180: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 4 Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT)

Attribut Type de données

Instruction Description

TimeSlice INT GSV

SSV

Pourcentage d’UC disponible attribué aux communications.

Les valeurs acceptables vont de 10 à 90. Cette valeur ne peut pas être modifiée lorsque le commutateur à clé de l’automate est en position Exécution.

ControllerLogTotalEntryCount DINT SSV

GSV

Nombre d’entrées du journal de l’automate depuis la dernière mise à jour du firmware.

Le nombre est réinitialisé si la RAM passe dans un mauvais état.

Le nombre est limité à la valeur DINT la plus élevée.

ControllerLogExecutionModificationCount DINT SSV

GSV

Nombre d’entrées du journal de l’automate provenant d’une modification des propriétés du programme/tâche, d’une modification en ligne ou d’une modification de la tranche de temps de l’automate. Peut également être configuré pour inclure des entrées de journal provenant des forçages.

Le nombre est réinitialisé si la RAM passe dans un mauvais état.

Le nombre n’est pas limité à la valeur DINT la plus élevée et un retour à la valeur de départ peut se produire.

ControllerLogUnsavedEntryCount DINT GSV Nombre d’entrées du journal de l’automate qui ne sont pas encore mémorisées sur un support amovible.

Le nombre est compris entre 0 et le nombre maximum d’entrées.

ControllerLogAutoWrite BOOL MSG Indicateur utilisé pour déterminer si l’écriture automatique du journal de l’automate sur un support amovible est activée.

0 = écriture auto désactivée (par défaut).

1 = le journal de l’automate tente d’écrire sur un support amovible lorsque le journal est plein à 80 %.

ExecutionCountConfigureMask DINT MSG Tableau de bits utilisé pour déterminer ce qui provoque l’augmentation de Modify Execution Count (modifier comptage d’exécution).

0 = réglage par défaut (tout sauf les forçages).

1 = forçages inclus (tout et les forçages).

180 Publication 1756-RM003K-FR-P – Juillet 2008

Page 181: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT) Chapitre 4

Accéder à l’objet CONTROLLERDEVICE

L’objet CONTROLLERDEVICE identifie la partie matérielle de l’automate.

Attribut Type de données

Instruction Description

DeviceName SINT[33] GSV Chaîne ASCII qui identifie la référence de l’automate et de la carte mémoire.

Le premier octet contient le nombre de caractères ASCII renvoyés dans la chaîne de tableau.

ProductCode INT GSV Identifie le type de l’automate

ProductRev INT GSV Identifie la version du produit. L’affichage doit être hexadécimal.

L’octet de poids faible contient la révision majeure ; l’octet de poids fort contient la révision mineure.

SerialNumber DINT GSV Numéro de série du dispositif.

Le numéro de série est attribué lors de la construction du dispositif.

Automate Logix Code produit

CompactLogix5320 43

CompactLogix5330 44

CompactLogix5335E 65

ControlLogix5550 3

ControlLogix5553 50

ControlLogix5555 51

ControlLogix5561 54

ControlLogix5562 55

ControlLogix5563 56

DriveLogix5720 48

FlexLogix5433 41

FlexLogix5434 42

SoftLogix5860 15

Publication 1756-RM003K-FR-P – Juillet 2008 181

Page 182: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 4 Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT)

Status INT GSV Les bits identifient l’état :

Les bits 3 à 0 sont réservés

Bits d’état du dispositif

Bits 7-4 : Signification :0000 réservé

0001 mise à jour mémoire flash en cours

0010 réservé

0011 réservé

0100 mémoire flash défectueuse

0101 en défaut

0110 exécution

0111 programme

Bits d’état de défaut

Bits 11-8 : Signification :0001 défaut mineur récupérable

0010 défaut mineur irrécupérable

0100 défaut majeur récupérable

1000 défaut majeur irrécupérable

Bits d’état spécifiques au Logix5000

Bits 13-12 : Signification :01 commutateur à clé sur Run

10 commutateur à clé sur Program

11 commutateur à clé sur Remote

Bits 15-14 : Signification :

01 l’automate change de mode

10 mode de débogage si l’automate est en mode Run

Type INT GSV Identifie le dispositif comme automate.

Automate = 14

Vendor INT GSV Identifie le fournisseur du dispositif.

Allen-Bradley = 0001

Attribut Type de données

Instruction Description

182 Publication 1756-RM003K-FR-P – Juillet 2008

Page 183: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT) Chapitre 4

Accéder à l’objet CST

L’objet CST (temps système coordonné) fournit le temps système coordonné à des dispositifs dans un châssis.

Attribut Type de données

Instruction Description

CurrentStatus INT GSV Etat en cours du temps système coordonné. Les bits identifient :

Bit : Signification :

0 panne matérielle du temporisateur : le matériel du temporisateur interne du dispositif est en état de défaut

1 effet de rampe activé : la valeur en cours des 16 bits de poids faible positifs du temporisateur monte à la valeur requise, au lieu de sauter à la valeur inférieure. Ces bits sont manipulés par la méthode de synchronisation par incréments spécifique au réseau.

2 maître de temps système : l’objet CST est une source de temps maître dans le système ControlLogix

3 synchronisé : la valeur en cours de 64 bits de l’objet CST est synchronisée par un objet CST maître via une mise à jour du temps système

4 maître de réseau local : l’objet CST est la source de temps maître du réseau local

5 en mode relais : l’objet CST agit en mode relais temporel

6 maître double détecté : un maître de temps du réseau local en double a été détecté. Ce bit est toujours à 0 pour les stations temporelles

7 non utilisé

8 – 9 00 = station temporelle01 = station maître temporelle10 = station de relais temporelle11 = non utilisé

10 – 15 non utilisé

CurrentValue DINT[2] GSV Valeur en cours du temporisateur. DINT[0] contient les 32 bits de poids faible ; DINT[1] contient les 32 bits de poids fort.

La source de temporisateur est ajustée pour correspondre à la valeur fournie par les services de mise à jour et par la synchronisation du réseau de communication local. L’ajustement est soit une montée jusqu’à la valeur requise, soit un réglage immédiat à cette valeur, tel qu’indiqué dans l’attribut CurrentStatus.

Publication 1756-RM003K-FR-P – Juillet 2008 183

Page 184: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 4 Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT)

Accéder à l’objet DF1

L’objet DF1 fournit une interface au driver de communication DF1 que vous pouvez configurer pour le port série.

Attribut Type de données

Instruction Description

ACKTimeout DINT GSV La durée d’attente pour un accusé de réception à une transmission de message (point à point et maître uniquement).

Valeur admissible de 0 à 32 767. Durée exprimée en incréments de 20 ms. La valeur par défaut est 50 (1 seconde).

DiagnosticCounters INT[19] GSV Tableau de compteurs de diagnostic pour le driver de communication DF1.

offset de mot point à point DF1 esclave DF1 maître 0 signature (0x0043) signature (0x0042) signature (0x0044) 1 bits de modem bits de modem bits de modem 2 trames envoyées trames envoyées trames envoyées 3 trames reçues trames reçues trames reçues 4 trames non délivrées trames non délivrées trames non délivrées 5 inutilisé messages réessayés messages réessayés 6 NAK reçus NAK reçus inutilisé 7 ENQ reçus trames d’appel reçues inutilisé 8 trames défectueuses trames défectueuses trames défectueuses

non-acquittées non-acquittées non-acquittées 9 pas de mémoire envoyée NAK pas de mémoire non-acquittée inutilisé 10 trames reçues en double trames reçues en double trames reçues en double 11 mauvais caractères reçus inutilisé inutilisé 12 comptage de récupération DCD comptage de récupération DCD comptage de récupération DCD 13 comptage de modem perdu comptage de modem perdu comptage de modem perdu

14 inutilisé inutilisé durée de scrutation prioritaire maximum 15 inutilisé inutilisé dernière durée de scrutation prioritaire

16 inutilisé inutilisé durée de scrutation normale maximum17 inutilisé inutilisé dernière durée de scrutation normale18 ENQ envoyés inutilisé inutilisé

DuplicateDetection SINT GSV Permet la détection des messages en double.

Value : Signification :0 détection de messages en double désactivéeautre que zéro détection de message en double activée

EmbeddedResponseEnable SINT GSV Active la fonctionnalité de réponse intégrée (point à point uniquement).

Value : Signification :0 lancé uniquement après qu’une réponse ait été

reçue (valeur par défaut)1 activé sans condition

ENQTransmitLimit SINT GSV Le nombre de demandes (ENQ) à envoyer après un timeout ACK (point à point uniquement).

Valeurs admissibles de 0 à 127. La valeur par défaut est 3.

EOTSuppression SINT GSV Active la suppression des transmissions EOT en réponse aux trames d’appel (esclave uniquement).

Value : Signification :0 suppression EOT désactivée (désactivé)autre que zéro suppression EOT activée

184 Publication 1756-RM003K-FR-P – Juillet 2008

Page 185: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT) Chapitre 4

ErrorDetection SINT GSV Spécifie le schéma de détection des erreurs.

Value : Signification :0 BCC (valeur par défaut)1 CRC

MasterMessageTransmit SINT GSV Valeur en cours de la transmission de message maître (maître uniquement).

Value : Signification :0 entre appels de station

1 en séquence d’appel (au lieu du numéro de stationdu maître)

La valeur par défaut est 0.

NAKReceiveLimit SINT GSV Le nombre de NAK reçus en réponse à un message avant l’arrêt de la transmission (communication point à point uniquement).

Valeurs admissibles de 0 à 127. La valeur par défaut est 3.

NormalPollGroupSize INT GSV Nombre de stations à appeler dans le tableau d’appel normal des stations après l’appel de toutes les stations dans le tableau d’appel prioritaire des stations (maître uniquement).

Valeurs admissibles de 0 à 255. La valeur par défaut est 0.

PollingMode SINT GSV Mode d’appel en cours (maître uniquement).

Value : Signification :0 basé sur message, mais n’autorise pas

les esclaves à initier des messages1 basé sur message, et autorise les esclaves

à initier des messages (valeur par défaut)2 standard, transfert de message unique

par scrutation de station3 standard, transfert de multiples messages

par scrutation de station

La valeur par défaut est 1.

ReplyMessageWait DINT GSV La durée (agissant comme maître) d’attente après la réception d’un ACK avant d’appeler l’esclave pour une réponse (maître uniquement).

Valeur admissible de 0 à 65 535. Durée exprimée en incréments de 20 ms. La période par défaut est 5 (100 ms).

StationAddress INT GSV Adresse de station en cours du port série.

Valeurs admissibles de 0 à 254. La valeur par défaut est 0.

SlavePollTimeout DINT GSV La durée en ms, pendant laquelle l’esclave attend que le maître appelle avant qu’il déclare ne pas pouvoir transmettre, parce que le maître est inactif (esclave uniquement).

Valeur admissible de 0 à 32 767. Durée exprimée en incréments de 20 ms. La valeur par défaut est de 3 000 (1 minute).

TransmitRetries SINT GSV Nombre de fois qu’un message est envoyé sans obtenir d’accusé de réception (maître et esclave uniquement).

Valeurs admissibles de 0 à 127. La valeur par défaut est 3.

Attribut Type de données

Instruction Description

Publication 1756-RM003K-FR-P – Juillet 2008 185

Page 186: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 4 Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT)

Pour attribuer des valeurs à un des attributs DF1 en attente :

1. Utilisez une instruction SSV pour établir la valeur de l’attribut en attente.

Vous pouvez attribuer autant d’attributs en attente que vous le voulez en utilisant une instruction SSV pour chacun d’eux.

2. Utilisez une instruction MSG pour attribuer la valeur. L’instruction MSG s’applique à chaque attribut en attente que vous réglez. Configurez l’instruction MSG comme suit :

PendingACKTimeout DINT SSV Valeur en attente pour l’attribut ACKTimeout.

PendingDuplicateDetection SINT SSV Valeur en attente pour l’attribut DuplicateDetection.

PendingEmbeddedResponseEnable

SINT SSV Valeur en attente pour l’attribut EmbeddedResponse.

PendingENQTransmitLimit SINT SSV Valeur en attente pour l’attribut ENQTransmitLimit.

PendingEOTSuppression SINT SSV Valeur en attente pour l’attribut EOTSuppression.

PendingErrorDetection SINT SSV Valeur en attente pour l’attribut ErrorDetection.

PendingNormalPollGroupSize INT SSV Valeur en attente pour l’attribut NormalPollGroupSize.

PendingMasterMessageTransmit

SINT SSV Valeur en attente pour l’attribut MasterMessageTransmit.

PendingNAKReceiveLimit SINT SSV Valeur en attente pour l’attribut NAKReceiveLimit.

PendingPollingMode SINT SSV Valeur en attente pour l’attribut PollingMode.

PendingReplyMessageWait DINT SSV Valeur en attente pour l’attribut ReplyMessageWait.

PendingStationAddress INT SSV Valeur en attente pour l’attribut StationAddress.

PendingSlavePollTimeout DINT SSV Valeur en attente pour l’attribut SlavePollTimeout.

PendingTransmitRetries SINT SSV Valeur en attente pour l’attribut TransmitRetries.

Attribut Type de données

Instruction Description

Onglet de configuration MSG Champ Valeur

Configuration Type de message CIP générique

Code de service 0d hex

Type d’objet a2

Identificateur de l’objet 1

Attribut de l’objet laisser vide

Source laisser vide

Nombre d’éléments 0

Destination laisser vide

Communication Chemin chemin de communication vers soi-même (1,s où s = numéro du logement de l’automate)

186 Publication 1756-RM003K-FR-P – Juillet 2008

Page 187: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT) Chapitre 4

Accéder à l’objet FAULTLOG

L’objet FAULTLOG fournit des informations sur les défauts de l’automate.

Attribut Type de données

Instruction Description

MajorEvents INT GSV

SSV

Le nombre d’événements majeurs qui se sont produits depuis la dernière remise à zéro de ce compteur.

MinorEvents INT GSV

SSV

Le nombre de défauts mineurs qui se sont produits depuis la dernière remise à zéro de ce compteur.

MajorFaultBits DINT GSV

SSV

Les bits individuels indiquent la raison du défaut majeur en cours.

Bit : Signification :1 perte d’alimentation3 E/S4 exécution d’instruction (programme)5 gestionnaire des défauts6 chien de garde7 pile8 changement de mode11 mouvement

MinorFaultBits DINT GSV

SSV

Les bits individuels indiquent la raison du défaut mineur en cours.

Bit : Signification :4 exécution d’instruction (programme)6 chien de garde9 port série10 pile

Publication 1756-RM003K-FR-P – Juillet 2008 187

Page 188: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 4 Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT)

Accéder à l’objet MESSAGE

Vous pouvez accéder à l’objet MESSAGE par les instructions GSV/SSV. Spécifiez le nom du point du message pour déterminer quel objet MESSAGE vous voulez. L’objet MESSAGE fournit une interface pour la configuration et le déclenchement des communications d’égal à égal. Cet objet remplace le type de données MG du processeur PLC-5.

Pour changer l’attribut d’un MESSAGE, procédez comme suit :

1. Utilisez l’instruction GSV pour obtenir l’attribut MessageType et sauvegardez-le dans un point.

2. Utilisez une instruction SSV pour mettre MessageType à 0.

3. Utilisez une instruction SSV pour régler l’attribut du MESSAGE que vous voulez changer.

4. Utilisez l’instruction SSV pour remettre l’attribut MessageType à sa valeur d’origine obtenue à l’étape 1.

Attribut Type de données

Instruction Description

ConnectionPath SINT[130] GSV

SSV

Données de configuration du chemin de connexion. Les deux premiers octets (octets de poids faible et de poids fort) forment la longueur, en octets, du chemin de connexion.

ConnectionRate DINT GSV

SSV

Débit de trame requis de la connexion.

MessageType SINT GSV

SSV

Spécifie le type de message.

Value : Signification :0 non initialisé

Port SINT GSV

SSV

Indique le port par lequel le message doit être envoyé.

Value : Signification :1 fond de panier2 port série

TimeoutMultiplier SINT GSV

SSV

Détermine le moment où une connexion doit être considérée comme ayant dépassé le timeout et doit être coupée.

Value : Signification :0 la connexion dépassera le timeout à la fréquence

de 4 fois la vitesse d’actualisation (valeur pardéfaut)

1 la connexion dépassera le timeout à la fréquencede 8 fois la vitesse d’actualisation

2 la connexion dépassera le timeout à la fréquencede 16 fois la vitesse d’actualisation

UnconnectedTimeout DINT GSV

SSV

Période du timeout en microsecondes pour tous les messages non connectés. La valeur par défaut est de 30 000 000 microsecondes (30 secondes).

188 Publication 1756-RM003K-FR-P – Juillet 2008

Page 189: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT) Chapitre 4

Exemple : L’exemple suivant modifie l’attribut ConnectionPath, pour que le message soit envoyé à un automate différent. Lorsque msg_path est activé, règle le chemin du message msg_1 sur la valeur de msg_1_path. Ceci envoie le message vers un autre automate.

Logique à relais

Texte structuré

IF msg_path THEN

GSV(MESSAGE,msg_1,MessageType,msg_1_type);

SSV(MESSAGE,msg_1,MessageType,tag_a);

SSV(MESSAGE,msg_1,ConnectionPath,msg_1_path[0]);

SSV(MESSAGE,msg_1,MessageType,msg_1_type);

END_IF;

IF NOT msg_1.EN THEN

MSG(msg_1);

END_IF;

Où Est

msg_1 message dont vous voulez changer l’attribut

msg_1_type point qui stocke la valeur de l’attribut Type de message

tag_a point qui stocke un 0.

msg_1_path point de tableau qui stocke le nouveau chemin de connexion du message

0 msg_path

Get System ValueClass name MESSAGEInstance name msg_1Attribute Name MessageTypeDest msg_1_type 2

GSVSet System ValueClass name MESSAGEInstance name msg_1Attribute Name MessageTypeSource tag_a 0

SSV

Set System ValueClass name MESSAGEInstance name msg_1Attribute Name ConnectionPathSource msg_1_path[0] 6

SSVSet System ValueClass name MESSAGEInstance name msg_1Attribute Name MessageTypeSource msg_1_type 2

SSV

1 /msg_1.EN

ENDNER

Type - CIP Data Table WriteMessage Control msg_1 ...

MSG

Get System ValueClass name MessageInstance name msg_1Attribute Name MessageTypeDest msg_1_type

2

Set System ValueClass name MessageInstance name msg_1Attribute Name MessageTypeSource tag_a

0

Set System ValueClass name MessageInstance name msg_1Attribute Name ConnectionPathSource msg_1path[0]

6

Set System ValueClass name MessageInstance name msg_1Attribute Name MessageTypeSource msg_1_type

2

Type – CIP Data Table WriteMessage Control msg_1

GSV SSV

SSV SSV

MSG

msg_path

msg_1.ENENDNER

Publication 1756-RM003K-FR-P – Juillet 2008 189

Page 190: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 4 Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT)

Accéder à l’objet MODULE

L’objet MODULE fournit des informations d’état sur un module. Pour sélectionner un objet MODULE particulier, réglez l’opérande Object Name de l’instruction GSV/SSV sur le nom du module. Le module spécifié doit être présent dans la section de configuration des E/S de l’arborescence de l’automate, et doit avoir un nom de dispositif.

Type de données

Instruction Description

EntryStatus INT GSV Indique l’état en cours de l’entrée de configuration spécifiée. Les 12 bits de poids faible doivent être masqués lors d’une opération de comparaison. Seuls les bits 12 à 15 sont valables.

Value : Signification :16#0000 En veille : l’automate est en cours de démarrage

à la mise sous tension.

16#1000 En défaut : une des connexions de l’objet MODULE au module associé échoue. Cette valeur ne doit pasêtre utilisée pour déterminer si le module a échoué,parce que l’objet MODULE quitte cet état périodiquementlorsqu’il essaie de se reconnecter au module. Testez plutôtl’état d’exécution (16#4000). Recherchez les FaultCodedifférents de 0 pour déterminer si un module est en défaut. Lorsqu’il sont en défaut, les attributs FaultCode et FaultInfo sont valables jusqu’à ce que le défaut soitcorrigé.

16#2000 Validation : l’objet MODULE vérifie l’intégrité de l’objet MODULE avant d’établir des connexions vers le module.

16#3000 Connexion : l’objet MODULE initie des connexions vers le module.

16#4000 Exécution : toutes les connexions vers le module sont établies et les données sont transférées avec succès.

16#5000 Arrêt : l’objet MODULE est en train de couper toutes les connexions vers le module.

16#6000 Inhibition : l’objet MODULE est inhibé (le bit d’inhibition de l’attribut Mode est activé).

16#7000 En attente : l’objet MODULE parent dont cet objet MODULE dépend ne fonctionne pas.

FaultCode INT GSV Nombre qui identifie un défaut de module, le cas échéant.

FaultInfo DINT GSV Fournit des informations spécifiques sur le code de défaut de l’objet MODULE.

ForceStatus INT GSV Spécifie l’état des forçages.

Bit : Signification :0 forçages installés (1=oui, 0=non)1 forçages activés (1=oui, 0=non)2 – 15 inutilisés

190 Publication 1756-RM003K-FR-P – Juillet 2008

Page 191: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT) Chapitre 4

Accéder à l’objet MOTIONGROUP

L’objet MOTIONGROUP fournit des informations d’état sur un groupe d’axes pour le module d’asservissement. Spécifiez le nom du point du groupe d’axes pour déterminer quel objet MOTIONGROUP vous voulez.

Instance DINT GSV Fournit le numéro d’instance de cet objet MODULE.

LEDStatus INT GSV Spécifie l’état en cours des voyants d’E/S sur l’avant de l’automate.

Value : Signification :0 Voyant éteint : aucun objet MODULE n’est configuré pour

l’automate (il n’y a aucun module dans la section deconfiguration des E/S de l’arborescence de l’automate).

1 Rouge clignotant : aucun des objets MODULE nefonctionne.

2 Vert clignotant : au moins un objet MODULE ne fonctionne pas.

3 Vert fixe : tous les objets Module fonctionnent.

Note : vous n’entrez pas de nom d’objet avec cet attribut parce qu’il sert à l’ensemble des modules.

Mode INT GSV

SSV

Spécifie le mode en cours de l’objet MODULE.

Bit : Signification :0 Lorsqu’il est activé, génère un défaut majeur si une des

connexions de l’objet MODULE se met en défaut pendant que l’automate est en mode Run.

2 Lorsqu’il est activé, fait passer l’objet MODULE à l’étatd’inhibition après avoir coupé toutes les connexions versle module.

Type de données

Instruction Description

Attribut Type de données

Instruction Description

Instance DINT GSV Fournit le numéro d’instance de cet objet MOTION_GROUP.

Publication 1756-RM003K-FR-P – Juillet 2008 191

Page 192: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 4 Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT)

Accéder à l’objet PROGRAM

L’objet PROGRAM fournit des informations d’état sur un programme. Spécifiez le nom du programme pour déterminer quel objet MESSAGE vous voulez.

Attribut Type de données Instruction Description

DisableFlag SINT GSV

SSV

Commande l’exécution de ce programme.

Value : Signification :0 exécution activée1 exécution désactivée

Instance DINT GSV Fournit le numéro d’instance de cet objet PROGRAM.

LastScanTime DINT GSV

SSV

Durée nécessaire à l’exécution de ce programme la dernière fois qu’il a été exécuté. La durée est en microsecondes.

MajorFaultRecord DINT[11] GSV

SSV

Enregistre les défauts majeurs pour ce programme.

Il est recommandé de créer une structure utilisateur pour simplifier l’accès à l’attribut MajorFaultRecord :

Nom : Type de données : Style : Description :

TimeLow DINT Décimal 32 bits de poids faible de la valeur d’horodatage du défaut

TimeHigh DINT Décimal 32 bits de poids fort de la valeur d’horodatage du défaut

Type INT Décimal type du défaut (programme, E/S, etc.)

Code INT Décimal code unique pour le défaut (dépend du type du défaut)

Info DINT[8] Hexadécimal information spécifique sur le défaut (dépend du type et du code du défaut)

MaxScanTime DINT GSV

SSV

Durée d’exécution maximum enregistrée pour ce programme. La durée est en microsecondes.

MinorFaultRecord DINT[11] GSV

SSV

Enregistre les défauts mineurs pour ce programme.

Il est recommandé de créer une structure utilisateur pour simplifier l’accès à l’attribut MinorFaultRecord :

Nom : Type de données : Style : Description :

TimeLow DINT Décimal 32 bits de poids faible de la valeur d’horodatage du défaut

TimeHigh DINT Décimal 32 bits de poids fort de la valeur d’horodatage du défaut

Type INT Décimal type du défaut (programme, E/S, etc.)

Code INT Décimal code unique pour le défaut (dépend du type du défaut)

Info DINT[8] Hexadécimal information spécifique sur le défaut (dépend du type et du code du défaut)

SFCRestart INT GSV

SSV

inutilisé – réservé à une utilisation future

192 Publication 1756-RM003K-FR-P – Juillet 2008

Page 193: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT) Chapitre 4

Accéder à l’objet ROUTINE

L’objet ROUTINE fournit des informations d’état sur un sous-programme. Spécifiez le nom du sous-programme pour déterminer quel objet ROUTINE vous voulez.

Accéder à l’objet SERIALPORT

L’objet SERIALPORT fournit une interface au port de communication série.

Attribut Type de données

Instruction Description

Instance DINT GSV Fournit le numéro d’instance de cet objet ROUTINE.

Les valeurs acceptables vont de 0 à 65 535.

Attribut Type de données

Instruction Description

BaudRate DINT GSV Spécifie la vitesse en bauds.

Les valeurs disponibles sont 110, 300, 600, 1 200, 2 400, 4 800, 9 600 et 19 200 (valeur par défaut).

DataBits SINT GSV Spécifie le nombre de bits de données par caractère.

Value : Signification :7 7 bits de données (ASCII uniquement)8 8 bits de données (valeur par défaut)

Parity SINT GSV Spécifie la parité.

Value : Signification :0 pas de parité (pas de valeur par défaut)1 parité impaire (ASCII uniquement)2 parité paire

RTSOffDelay INT GSV Délai d’arrêt de la ligne RTS après la transmission du dernier caractère.

Valeur admissible de 0 à 32 767. Durée exprimée en incréments de 20 ms. La valeur par défaut est de 0 ms.

RTSSendDelay INT GSV Délai de transmission du premier caractère d’un message après le démarrage de la ligne RTS.

Valeur admissible de 0 à 32 767. Durée exprimée en incréments de 20 ms. La valeur par défaut est de 0 ms.

StopBits SINT GSV Spécifie le nombre de bits d’arrêt.

Value : Signification :1 1 bit d’arrêt (valeur par défaut)2 2 bits d’arrêts (ASCII uniquement)

PendingBaudRate DINT SSV Valeur en attente pour l’attribut BaudRate.

PendingDataBits SINT SSV Valeur en attente pour l’attribut DataBits.

Publication 1756-RM003K-FR-P – Juillet 2008 193

Page 194: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 4 Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT)

Pour attribuer des valeurs à un des attributs SERIALPORT en attente :

1. Utilisez une instruction SSV pour régler la valeur de l’attribut en attente.

Vous pouvez attribuer autant d’attributs en attente que vous le voulez en utilisant une instruction SSV pour chacun d’eux.

2. Utilisez une instruction MSG pour attribuer la valeur. L’instruction MSG s’applique à chaque attribut en attente que vous réglez. Configurez les instructions MSG comme suit :

PendingParity SINT SSV Valeur en attente pour l’attribut Parity.

PendingRTSOffDelay INT SSV Valeur en attente pour l’attribut RTSOffDelay.

PendingRTSSendDelay INT SSV Valeur en attente pour l’attribut RTSSendDelay.

PendingStopBits SINT SSV Valeur en attente pour l’attribut StopBits.

Attribut Type de données

Instruction Description

Onglet de configuration MSG Champ Valeur

Configuration Type de message CIP générique

Code de service 0d hex

Type d’objet 6f hex

Identificateur de l’objet 1

Attribut de l’objet laisser vide

Source laisser vide

Nombre d’éléments 0

Destination laisser vide

Communication Chemin chemin de communication vers soi-même (1,s où s = numéro du logement de l’automate)

194 Publication 1756-RM003K-FR-P – Juillet 2008

Page 195: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT) Chapitre 4

Accéder à l’objet TASK

L’objet TASK fournit des informations d’état sur une tâche. Spécifiez le nom de la tâche pour déterminer quel objet TASK vous voulez.

Attribut Type de données

Instruction Description

DisableUpdateOutputs DINT GSV

SSV

Active ou désactive le traitement des sorties à la fin d’une tâche.

Pour : Réglez l’attribut sur :

activer le traitement des sorties à la fin de la tâche

0

désactiver le traitement des sorties à la fin de la tâche

1 (ou toute valeur différente de zéro)

EnableTimeOut DINT GSV

SSV

Active ou désactive la fonction de timeout d’une tâche événementielle.

Pour : Réglez l’attribut sur :

désactiver la fonction de timeout 0

activer la fonction de timeout 1 (ou toute valeur différente de zéro)

InhibitTask DINT GSV

SSV

Empêche l’exécution de la tâche. Si une tâche est inhibée, l’automate préscrute tout de même la tâche lorsque l’automate passe du mode Programmation au mode Exécution ou Test.

Pour : Réglez l’attribut sur :

activer la tâche 0 (par défaut)

inhiber (désactiver) la tâche 1 (ou toute valeur différente de zéro)

Instance DINT GSV Fournit le numéro d’instance de cet objet TASK.

Les valeurs acceptables vont de 0 à 31.

LastScanTime DINT GSV

SSV

Durée nécessaire à l’exécution de cette tâche la dernière fois qu’elle a été exécutée. La durée est en microsecondes.

MaxInterval DINT[2] GSV

SSV

L’intervalle de temps maximum entre les exécutions successives de la tâche. DINT[0] contient les 32 bits de poids faible de la valeur, DINT[1] contient les 32 bits de poids fort de la valeur.

Une valeur de 0 indique une exécution ou moins de la tâche.

MaxScanTime DINT GSV

SSV

Durée d’exécution maximum enregistrée pour ce programme. La durée est en microsecondes.

MinInterval DINT[2] GSV

SSV

L’intervalle de temps minimum entre les exécutions successives de la tâche. DINT[0] contient les 32 bits de poids faible de la valeur, DINT[1] contient les 32 bits de poids fort de la valeur.

Une valeur de 0 indique une exécution ou moins de la tâche.

OverlapCount DINT GSV

SSV

Nombre de fois que la tâche a été déclenchée alors qu’elle était encore en cours d’exécution. Valable pour une tâche événementielle ou périodique.

Pour effacer le comptage, réglez l’attribut sur 0.

Publication 1756-RM003K-FR-P – Juillet 2008 195

Page 196: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 4 Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT)

Priority INT GSV

SSV

Priorité relative de cette tâche comparée aux autres tâches.

Les valeurs acceptables vont de 1 à 15.

Rate DINT GSV

SSV

Si la tâche est de type : L’attribut de fréquence (Rate) définit :

périodique La période de la tâche. La durée est en microsecondes.

événementielle La valeur de timeout de la tâche. La durée est en microsecondes.

StartTime DINT[2] GSV

SSV

Valeur de WALLCLOCKTIME au début de la dernière exécution de la tâche. DINT[0] contient les 32 bits de poids faible de la valeur, DINT[1] contient les 32 bits de poids fort de la valeur.

Status DINT GSV

SSV

Fournit des informations sur l’état de la tâche. Une fois que l’automate active l’un de ces bits, vous devez effacer le bit manuellement.

Pour déterminer si : Examinez ce bit :

Une instruction EVNT a déclenché la tâche (tâche événementielle uniquement).

0

Un timeout a déclenché la tâche (tâche événementielle uniquement).

1

Un chevauchement s’est produit pour cette tâche.

2

Watchdog DINT GSV

SSV

Limite de temps pour l’exécution de tous les programmes associés avec cette tâche. La durée est en microsecondes.

Si vous entrez 0, ces valeurs sont attribuées :

Temps : Type de tâche :

0,5 s périodique ou événementielle

5 s continue

Attribut Type de données

Instruction Description

196 Publication 1756-RM003K-FR-P – Juillet 2008

Page 197: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT) Chapitre 4

Accéder à l’objet WALLCLOCKTIME

L’objet WALLCLOCKTIME fournit un horodatage que l’automate peut utiliser pour la planification.

Attribut Type de données

Instruction Description

CSTOffset DINT[2] GSV

SSV

Décalage positif de CurrentValue de l’objet CST (temps système coordonné, voir page 183). DINT[0] contient les 32 bits de poids faible de la valeur, DINT[1] contient les 32 bits de poids fort de la valeur.

Valeur en μs. La valeur par défaut est 0.

CurrentValue DINT[2] GSV

SSV

Valeur en cours de l’horloge. DINT[0] contient les 32 bits de poids faible de la valeur, DINT[1] contient les 32 bits de poids fort de la valeur.

La valeur est le nombre de microsecondes écoulées depuis 00:00 heure le 1er janvier 1972.

Les objets CST et WALLCLOCKTIME sont mathématiquement reliés dans l’automate. Par exemple, si vous additionnez la valeur CurrentValue CST et la valeur WALLCLOCKTIME CTSOffset, le résultat est la valeur WALLCLOCKTIME CurrentValue.

DateTime DINT[7] GSV

SSV

La date et l’heure dans un format lisible.

DINT[0] année

DINT[1] représentation du mois sous forme de nombre entier(1 – 12)

DINT[2] représentation du jour sous forme de nombre entier(1 – 31)

DINT[3] heure (0 – 23)

DINT[4] minute (0 – 59)

DINT[5] secondes (0 – 59)

DINT[6] microsecondes (0 – 999 999)

Publication 1756-RM003K-FR-P – Juillet 2008 197

Page 198: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 4 Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT)

Exemple de programmation GSV/SSV

Obtenir les informations sur les défauts

Les exemples suivants utilisent des instructions GSV pour obtenir des informations sur les défauts.

Exemple 1 : Cet exemple donne des information sur les défauts à partir du module d’E/S disc_in_2 et stocke les données dans une structure définie par l’utilisateur disc_in_2_info.

Logique à relais

Texte structuré

GSV(MODULE,disc_in_2,FaultCode,disc_in_2_info.FaultCode);

GSV(MODULE,disc_in_2,FaultInfo,disc_in_2_info.FaultInfo);

GSV(MODULE,disc_in_2,Mode,disc_in_2info.Mode);

Exemple 2 : Cet exemple donne des informations d’état sur le programme discrete et stocke les données dans une structure définie par l’utilisateur discrete_info.

Logique à relais

Texte structuré

GSV(PROGRAM,DISCRETE,LASTSCANTIME,discrete_info.LastScanTime);

GSV(PROGRAM,DISCRETE,MAXSCANTIME,discrete_info.MaxScanTime);

198 Publication 1756-RM003K-FR-P – Juillet 2008

Page 199: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT) Chapitre 4

Exemple 3 : Cet exemple donne des informations d’état sur la tâche IO_test et stocke les données dans une structure définie par l’utilisateur io_test_info.

Logique à relais

Texte structuré

GSV(TASK,IO_TEST,LASTSCANTIME,io_test_info.LastScanTime);

GSV(TASK,IO_TEST,MAXSCANTIME,io_test_info.MaxScanTime);

GSV(TASK,IO_TEST,WATCHDOG,io_test_info.WatchDog);

Publication 1756-RM003K-FR-P – Juillet 2008 199

Page 200: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 4 Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT)

Configuration d’indicateurs d’activation et de désactivation

L’exemple suivant utilise l’instruction SSV pour activer ou désactiver un programme. Vous pouvez également utiliser cette méthode pour activer ou désactiver un module d’E/S, ce qui est similaire à l’utilisation de bits d’inhibition avec un processeur PLC-5.

Exemple : Selon l’état de SW.1, placez la valeur appropriée dans l’attribut disableflag du programme discrete.

Logique à relais

Texte structuré

IF SW.1 THEN

discrete_prog_flag := enable_prog;

ELSE

discrete_prog_flag := disable_prog;

END_IF;

SSV(PROGRAM,DISCRETE,DISABLEFLAG,discrete_prog_flag);

200 Publication 1756-RM003K-FR-P – Juillet 2008

Page 201: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT) Chapitre 4

Sortie immédiate (IOT) L’instruction IOT actualise immédiatement les données de sortie spécifiées (tâche de sortie ou point produit).

Opérandes :

Logique à relais

Texte structuré

Les opérandes sont identiques à ceux de l’instruction IOT en logique à relais.

Description : L’instruction IOT ne tient pas compte de l’intervalle entre trames requis (RPI) d’une connexion de sortie et envoie de nouvelles données par la connexion.

• Une connexion de sortie est une connexion associée au point de sortie d’un module d’E/S ou à un point produit.

• Si la connexion se fait avec un point produit, l’instruction IOT envoie également le déclencheur d’événement à l’automate consommateur. Ceci permet à l’instruction IOT de déclencher une tâche événementielle dans l’automate consommateur.

Pour utiliser une instruction IOT et un point produit pour déclencher une tâche événementielle dans un automate consommateur, configurez le point produit comme suit :

Opérande Type Format Description

actualiser point

point point que vous voulez actualiser, soit un :

• point de sortie d’un module d’E/S

• point produit

Ne pas choisir un membre ou un élément de point. Par exemple, Local:5:0 est OK, mais Local:5:0.Data n’est pas OK.

IOT(output_tag);

Cochez cette case.

Ceci configure le point pour qu’il actualise son déclencheurd’événement uniquement via une instruction IOT.

Publication 1756-RM003K-FR-P – Juillet 2008 201

Page 202: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 4 Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT)

Le type de réseau entre les automates détermine quand l’automate consommateur reçoit les nouvelles données et le déclencheur d’événement via l’instruction IOT.

Les schémas suivants comparent la réception des données via une instruction IOT sur les réseaux EtherNet/IP et ControlNet.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Avec l’automate Sur ce réseau Le dispositif consommateur reçoit les données et le déclencheur d’événement

ControlLogix bus intermodules immédiatement

réseau EtherNet/IP immédiatement

réseau ControlNet dans l’intervalle entre trames réel (API) du point consommé (connexion)

SoftLogix5800 Vous pouvez produire et consommer des points uniquement sur un réseau ControlNet.

dans l’intervalle entre trames réel (API) du point consommé (connexion)

Réseau EtherNet/IP Réseau ControlNet

tâche événementielledans l’automate

consommateur

valeurs chargées dans lepoint produit

instruction IOT dansl’automate producteur

tâche événementielledans l’automate

consommateur

valeurs chargées dans lepoint produit

instruction IOT dansl’automate producteur

RPI du point produit

202 Publication 1756-RM003K-FR-P – Juillet 2008

Page 203: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT) Chapitre 4

Exécution :

Exemple 1 : Lorsqu’elle est exécutée, l’instruction IOT envoie immédiatement les valeurs du point Local:5:0 au module de sortie.

Logique à relais

Texte structuré

IOT (Local:5:O);

Condition Action logique à relais Action texte structuré

Pré-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

L’état d’entrée de la ligne est faux

L’état de sortie de la ligne est réglé sur faux. --

L’état d’entrée de la ligne est vrai

L’instruction est exécutée. --

L’état de sortie de la ligne est réglé sur vrai.

EnableIn est activé -- EnableIn est toujours activé.

L’instruction est exécutée.

Exécution de l’instruction L’instruction :

• actualise la connexion du point spécifié.

• réinitialise le temporisateur RPI de la connexion.

Post-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

Publication 1756-RM003K-FR-P – Juillet 2008 203

Page 204: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 4 Instructions d’entrée/de sortie (MSG, GSV, SSV, IOT)

Exemple 2 : Cet automate commande la station 24 et produit les données pour la station suivante (station 25). Pour utiliser une instruction IOT pour signaler la transmission de nouvelles données, le point produit est configuré comme suit :

Logique à relais

Texte structuré

Produced_Tag est configuré pour actualiser sondéclencheur d’événement via une instruction IOT.

Si New_Data = on, les événements suivants se produisent pendant une scrutation :

L’instruction CPS active Produced_Tag = Source_Tag.

L’instruction IOT actualise Produced_Tag et envoie cette valeur actualisée à l’automate consommateur (station 25). Lorsque l’automate consommateur reçoit cette valeur actualisée, il déclenche la tâche événementielle associée dans cet automate.

IF New_Data AND NOT Trigger_Consumer THEN

CPS (Source_Tag,Produced_Tag,1);

IOT (Produced_Tag);

END_IF;

Trigger_Consumer := New_Data;

204 Publication 1756-RM003K-FR-P – Juillet 2008

Page 205: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 5

Instructions de comparaison(CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Introduction Les instructions de comparaison vous permettent de comparer des valeurs à l’aide d’une expression ou d’une instruction de comparaison spécifique.

Vous pouvez comparer des valeurs de différents types de données, tels que virgule flottante et nombre entier.

Pour les instructions de logique à relais, les types de données en gras indiquent les types de données optimaux. Une instruction est exécutée plus rapidement et demande moins de mémoire si tous les opérandes de l’instruction utilisent le même type de données optimal, généralement DINT ou REAL.

Si vous voulez Utilisez cette instruction Disponible dans ces langages Voir page

comparer des valeurs sur la base d’une expression

CMP Logique à relaisTexte structuré(1)

206

tester si deux valeurs sont égales EQU Logique à relaisTexte structuré(2)

Bloc fonctionnel

211

tester si une valeur est supérieure ou égale à une autre valeur

GEQ Logique à relaisTexte structuré(1)

Bloc fonctionnel

215

tester si une valeur est supérieure à une autre valeur

GRT Logique à relaisTexte structuré(1)

Bloc fonctionnel

219

tester si une valeur est inférieure ou égale à une autre valeur

LEQ Logique à relaisTexte structuré(1)

Bloc fonctionnel

223

tester si une valeur est inférieure à une autre valeur

LES Logique à relaisTexte structuré(1)

Bloc fonctionnel

227

tester si une valeur est comprise entre deux autres valeurs

LIM Logique à relaisTexte structuré(1)

Bloc fonctionnel

231

passer deux valeurs dans un masque et tester si elles sont égales

MEQ Logique à relaisTexte structuré(1)

Bloc fonctionnel

237

tester si une valeur n’est pas égale à une autre valeur

NEQ Logique à relaisTexte structuré(1)

Bloc fonctionnel

242

(1) Il n’y a pas d’instruction en texte structuré équivalente. Utilisez une autre programmation en texte structuré pour obtenir le même résultat. Voir la description de l’instruction.

(2) Il n’y a pas d’instruction en texte structuré équivalente. Utilisez l’opérateur dans une expression.

205Publication 1756-RM003K-FR-P – Juillet 2008 205

Page 206: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 5 Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Comparaison (CMP) L’instruction CMP effectue une comparaison sur les opérations arithmétiques que vous spécifiez dans l’expression.

Opérandes :

Logique à relais

Texte structuré

Le texte structuré n’a pas d’instruction CMP, mais vous pouvez obtenir le même résultat en utilisant une structure SI...ALORS (IF...THEN).

IF BOOL_expression THEN

<déclaration>;

END_IF;

Pour plus d’informations sur la syntaxe des structures et des expressions du texte structuré, voir Annexe C, Programmation en texte structuré.

Description : Définissez l’expression CMP avec des opérateurs, des points et des valeurs immédiates. Utilisez des parenthèses ( ) pour définir les sections d’expressions plus complexes.

L’exécution d’une instruction CMP est légèrement plus lente et utilise plus de mémoire que l’exécution des autres instructions de comparaison. L’avantage de l’instruction CMP est qu’elle vous autorise à entrer des expressions complexes dans une seule instruction.

Indicateurs d’état arithmétique : L’instruction CMP n’affecte les indicateurs d’état arithmétique que si l’expression contient un opérateur (ex., +, −, *, /) qui affecte les indicateurs d’état arithmétique.

Conditions d’erreur : Aucune

Opérande Type Format Description

Expression SINT

INT

DINT

REAL

chaîne

immédiat

point

expression constituée de points et/ou de valeurs immédiates séparées par des opérateurs

Un point SINT ou INT est converti en valeur DINT par extension de signe.

206 Publication 1756-RM003K-FR-P – Juillet 2008

Page 207: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Chapitre 5

Exécution :

Exemples : Si l’instruction CMP trouve l’expression vraie, l’état de sortie de la ligne est réglé sur vrai.

Si vous entrez une expression sans opérateur de comparaison, telle que value_1 + value_2, ou value_1, l’instruction évalue l’expression ainsi :

Condition Action logique à relais

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

fin

évaluer l’expressionl’expression est vraie

l’expression est fausse

l’état de sortie de la ligne est vrai

l’état de sortie de la ligne est faux

L’état d’entrée de la ligne est vrai

Si l’expression L’état de sortie de la ligne est réglé sur

différent de zéro vrai

zéro faux

Publication 1756-RM003K-FR-P – Juillet 2008 207

Page 208: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 5 Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Expressions CMP

Vous programmez les expressions en instructions CMP de la même façon que les expressions en instructions FSC. Utilisez les sections suivantes pour trouver les informations sur les opérateurs, le format et l’ordre d’opération valables, qui sont communs aux deux instructions.

Opérateurs valables

Opérateur Description Optimal

+ addition DINT, REAL

– soustraction/négation DINT, REAL

* multiplication DINT, REAL

/ division DINT, REAL

= égalité DINT, REAL

< inférieur DINT, REAL

<= inférieur ou égal DINT, REAL

> supérieur DINT, REAL

>= supérieur ou égal DINT, REAL

<> différent DINT, REAL

** exposant (x à y) DINT, REAL

ABS valeur absolue DINT, REAL

ACS cosinus d’arc REAL

AND ET sur bits DINT

ASN sinus d’arc REAL

ATN tangente d’arc REAL

COS cosinus REAL

DEG radians en degrés DINT, REAL

FRD DBC à nombre entier DINT

LN logarithme naturel REAL

LOG logarithme décimal REAL

MOD modulo DINT, REAL

NOT complément sur bits DINT

OR OU sur bits DINT

RAD degrés en radians DINT, REAL

SIN sinus REAL

SQR racine carrée DINT, REAL

TAN tangente REAL

TOD DBC à nombre entier DINT

TRN troncation DINT, REAL

XOR OU exclusif sur bits DINT

Opérateur Description Optimal

208 Publication 1756-RM003K-FR-P – Juillet 2008

Page 209: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Chapitre 5

Formatage d’expressions

Pour chaque opérateur utilisé dans une expression, vous devez fournir un ou deux opérandes (points ou valeurs immédiates). Utilisez le tableau suivant pour formater les opérateurs et les opérandes dans une expression.

Déterminer l’ordre des opérations

Les opérations que vous écrivez dans l’expression sont effectuées par l’instruction dans un ordre précis, qui n’est pas nécessairement l’ordre dans lequel vous les écrivez. Vous pouvez modifier l’ordre des opérations en groupant des termes entre parenthèses, cela force l’instruction à effectuer une opération entre parenthèses avant les autres opérations.

Les opérations d’ordre identique sont effectuées de gauche à droite.

Pour les opérateurs opérant sur

Utilisez ce format Exemples

un opérande opérateur(opérande) ABS(tag_a)

deux opérandes opérande_a opérateur opérande_b

• tag_b + 5

• tag_c AND tag_d

• (tag_e ** 2) MOD (tag_f / tag_g)

Ordre Fonctionnement

1. ()

2. ABS, ACS, ASN, ATN, COS, DEG, FRD, LN, LOG, RAD, SIN, SQR, TAN, TOD, TRN

3. **

4. − (négation), NOT

5. *, /, MOD

6. <, <=, >, >=, =

7. − (soustraction), +

8. AND

9. XOR

10. OR

Publication 1756-RM003K-FR-P – Juillet 2008 209

Page 210: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 5 Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Utilisation de chaînes dans une expression

Utilisez une expression en logique à relais ou en texte structuré pour comparer les types de données de chaîne. Pour utiliser des chaînes dans une expression, conformez-vous aux directives suivantes :

• Une expression vous permet de comparer deux chaînes de caractères.

• Vous ne pouvez pas entrer des caractères ASCII directement dans l’expression.

• Seuls les opérateurs suivants sont autorisés :

• Les chaînes sont égales si leurs caractères se correspondent.

• Les caractères ASCII sont sensibles à la casse. « A » ($41) en majuscule n’est pas égal à « a » ($61) en minuscule.

• Les valeurs hexadécimales des caractères déterminent si une chaîne est inférieure ou supérieure à une autre chaîne. Pour trouver le code hexadécimal d’un caractère, reportez-vous à la dernière page de ce manuel.

• Lorsque les deux chaînes sont triées comme dans un répertoire téléphonique, l’ordre des chaînes détermine laquelle est supérieure.

Opérateur Description

= égalité

< inférieur

<= inférieur ou égal

> supérieur

>= supérieur ou égal

<> différent

Caractères ASCII Codes Hex

1ab $31$61$62

1b $31$62

A $41

AB $41$42

B $42

a $61

ab $61$62

supérieur

inférieur

AB < B

a > B

210 Publication 1756-RM003K-FR-P – Juillet 2008

Page 211: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Chapitre 5

Egal à (EQU) L’instruction EQU teste si Source A est égale à Source B.

Opérandes :

Logique à relais

• Si vous entrez un point SINT ou INT, la valeur est convertie en valeur DINT par extension de signe.

• Les valeurs REAL sont rarement parfaitement égales. Si vous devez déterminer l’égalité de deux valeurs REAL, utilisez l’instruction LIM.

• Les types de données de chaîne sont :

– le type de données STRING par défaut ;

– tout type de données de chaîne nouveau que vous créez.

• Pour tester les caractères d’une chaîne, entrez un point de type chaîne pour Source A et Source B.

Texte structuré

Utilisez le signe égal « = » comme opérateur dans une expression. Cette expression évalue si sourceA est égale à sourceB.

Pour plus d’informations sur la syntaxe des expressions du texte structuré, voir Annexe C, Programmation en texte structuré.

Opérande Type Format Description

Source A SINT

INT

DINT

REAL

chaîne

immédiat

point

valeur à tester par rapport à Source B

Source B SINT

INT

DINT

REAL

chaîne

immédiat

point

valeur à tester par rapport à Source A

IF sourceA = sourceB THEN

<déclarations>;

Publication 1756-RM003K-FR-P – Juillet 2008 211

Page 212: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 5 Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Bloc fonctionnel

Structure FBD_COMPARE

Description : Utilisez l’instruction EQU pour comparer deux nombres ou deux chaînes de caractères ASCII. Lorsque vous comparez des chaînes :

• les chaînes sont égales si leurs caractères se correspondent ;

• les caractères ASCII sont sensibles à la casse. « A » ($41) en majuscule n’est pas égal à « a » ($61) en minuscule.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Opérande Type Format Description

point EQU FBD_COMPARE structure structure EQU

Paramètre d’entrée Type de données Description

EnableIn BOOL Entrée activée. Si désactivée, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Réglage par défaut activé.

SourceA REAL Valeur à tester par rapport à SourceB.

Valable = toute valeur en virgule flottante

SourceB REAL Valeur à tester par rapport à SourceA.

Valable = toute valeur en virgule flottante

Paramètre de sortie Type de données Description

EnableOut BOOL L’instruction a produit un résultat valable.

Dest BOOL Résultat de l’instruction. Ceci est équivalent à l’état de sortie de la ligne de l’instruction logique à relais EQU.

212 Publication 1756-RM003K-FR-P – Juillet 2008

Page 213: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Chapitre 5

Exécution :

Logique à relais

Bloc fonctionnel

Condition Action

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai

fin

Source A = Source Boui

non

l’état de sortie de la ligne est vrai

l’état de sortie de la ligne est faux

Condition Action

Pré-scrutation Aucune.

Première scrutation de l’instruction Aucune.

Première exécution de l’instruction Aucune.

EnableIn est effacé EnableOut est effacé.

EnableIn est activé L’instruction est exécutée.

EnableOut est activé.

Post-scrutation Aucune.

Publication 1756-RM003K-FR-P – Juillet 2008 213

Page 214: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 5 Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Exemple : Si value_1 est égale à value_2, light_a s’allume. Si value_1 est différente de value_2, light_a s’éteint.

Logique à relais

Texte structuré

light_a := (value_1 = value_2);

Bloc fonctionnel

214 Publication 1756-RM003K-FR-P – Juillet 2008

Page 215: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Chapitre 5

Supérieur ou égal (GEQ) L’instruction GEQ teste si Source A est supérieure ou égale à Source B.

Opérandes :

Logique à relais

• Si vous entrez un point SINT ou INT, la valeur est convertie en valeur DINT par extension de signe.

• Les types de données de chaîne sont :

– le type de données STRING par défaut ;

– tout type de données de chaîne nouveau que vous créez.

• Pour tester les caractères d’une chaîne, entrez un point de type de chaîne pour Source A et Source B.

Texte structuré

Utilisez des signes supérieur à et égal « >= » adjacents comme opérateur dans une expression. Cette expression évalue si sourceA est supérieure ou égale à sourceB.

Pour plus d’informations sur la syntaxe des expressions du texte structuré, voir Annexe C, Programmation en texte structuré.

Opérande Type Format Description

Source A SINT

INT

DINT

REAL

chaîne

immédiat

point

valeur à tester par rapport à Source B

Source B SINT

INT

DINT

REAL

chaîne

immédiat

point

valeur à tester par rapport à Source A

IF sourceA >= sourceB THEN

<déclarations>;

Publication 1756-RM003K-FR-P – Juillet 2008 215

Page 216: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 5 Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Bloc fonctionnel

Structure FBD_COMPARE

Description : L’instruction GEQ teste si Source A est supérieure ou égale à Source B.

Lorsque vous comparez des chaînes :

• les valeurs hexadécimales des caractères déterminent si une chaîne est inférieure ou supérieure à une autre chaîne. Pour trouver le code hexadécimal d’un caractère, reportez-vous à la dernière page de ce manuel ;

• lorsque les deux chaînes sont triées comme dans un répertoire téléphonique, l’ordre des chaînes détermine laquelle est supérieure.

Opérande Type Format Description

point GEQ FBD_COMPARE structure structure GEQ

Paramètre d’entrée Type de données

Description

EnableIn BOOL Entrée activée. Si désactivé, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Réglage par défaut activé.

SourceA REAL Valeur à tester par rapport à SourceB.

Valable = toute valeur en virgule flottante

SourceB REAL Valeur à tester par rapport à SourceA.

Valable = toute valeur en virgule flottante

Paramètre de sortie Type de données

Description

EnableOut BOOL L’instruction a produit un résultat valable.

Dest BOOL Résultat de l’instruction. Ceci est équivalent à l’état de sortie de la ligne pour l’instruction logique à relais GEQ.

Caractères ASCII Codes Hex

1ab $31$61$62

1b $31$62

A $41

AB $41$42

B $42

a $61

ab $61$62

supérieur

inférieur

AB < B

a > B

216 Publication 1756-RM003K-FR-P – Juillet 2008

Page 217: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Chapitre 5

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Exécution : Non affectés

Logique à relais

Bloc fonctionnel

Condition Action

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai

fin

Source A ≥ Source Boui

non

l’état de sortie de la ligne est vrai

l’état de sortie de la ligne est faux

Condition Action

Pré-scrutation Aucune.

Première scrutation de l’instruction Aucune.

Première exécution de l’instruction Aucune.

EnableIn est effacé EnableOut est effacé.

EnableIn est activé L’instruction est exécutée.

EnableOut est activé.

Post-scrutation Aucune.

Publication 1756-RM003K-FR-P – Juillet 2008 217

Page 218: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 5 Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Exemple : Si value_1 est supérieure ou égale à value_2, light_b s’allume. Si value_1 est inférieure à value_2, light_b s’éteint.

Logique à relais

Texte structuré

light_b := (value_1 >= value_2);

Bloc fonctionnel

218 Publication 1756-RM003K-FR-P – Juillet 2008

Page 219: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Chapitre 5

Supérieur à (GRT) L’instruction GRT teste si Source A est supérieure à Source B.

Opérandes :

Logique à relais

• Si vous entrez un point SINT ou INT, la valeur est convertie en valeur DINT par extension de signe.

• Les types de données de chaîne sont :

– le type de données STRING par défaut ;

– tout type de données de chaîne nouveau que vous créez.

• Pour tester les caractères d’une chaîne, entrez un point de type de chaîne pour Source A et Source B.

Texte structuré

Utilisez le signe supérieur à « > » comme opérateur dans une expression. Cette expression évalue si sourceA est supérieure à sourceB.

Pour plus d’informations sur la syntaxe des expressions du texte structuré, voir Annexe C, Programmation en texte structuré.

Bloc fonctionnel

Opérande Type Format Description

Source A SINT

INT

DINT

REAL

chaîne

immédiat

point

valeur à tester par rapport à Source B

Source B SINT

INT

DINT

REAL

chaîne

immédiat

point

valeur à tester par rapport à Source A

Opérande Type Format Description

point GRT FBD_COMPARE structure structure GRT

sourceA = sourceB THEN

<déclarations>;

Publication 1756-RM003K-FR-P – Juillet 2008 219

Page 220: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 5 Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Structure FBD_COMPARE

Description : L’instruction GRT teste si Source A est supérieure à Source B.

Lorsque vous comparez des chaînes :

• les valeurs hexadécimales des caractères déterminent si une chaîne est inférieure ou supérieure à une autre chaîne. Pour trouver le code hexadécimal d’un caractère, reportez-vous à la dernière page de ce manuel ;

• lorsque les deux chaînes sont triées comme dans un répertoire téléphonique, l’ordre des chaînes détermine laquelle est supérieure.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Paramètre d’entrée Type de données Description

EnableIn BOOL Entrée activée. Si désactivé, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Réglage par défaut activé.

SourceA REAL Valeur à tester par rapport à SourceB.

Valable = toute valeur en virgule flottante

SourceB REAL Valeur à tester par rapport à SourceA.

Valable = toute valeur en virgule flottante

Paramètre de sortie Type de données Description

EnableOut BOOL L’instruction a produit un résultat valable.

Dest BOOL Résultat de l’instruction. Ceci est équivalent à l’état de sortie de la ligne pour l’instruction logique à relais GRT.

Caractères ASCII Codes Hex

1ab $31$61$62

1b $31$62

A $41

AB $41$42

B $42

a $61

ab $61$62

supérieur

inférieur

AB < B

a > B

220 Publication 1756-RM003K-FR-P – Juillet 2008

Page 221: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Chapitre 5

Exécution :

Logique à relais

Bloc fonctionnel

Condition Action

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai

fin

Source A > Source Boui

non

l’état de sortie de la ligne est vrai

l’état de sortie de la ligne est faux

Condition Action

Pré-scrutation Aucune.

Première scrutation de l’instruction Aucune.

Première exécution de l’instruction Aucune.

EnableIn est effacé EnableOut est effacé.

EnableIn est activé L’instruction est exécutée.

EnableOut est activé.

Post-scrutation Aucune.

Publication 1756-RM003K-FR-P – Juillet 2008 221

Page 222: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 5 Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Exemple : Si value_1 est supérieure à value_2, light_1 s’allume. Si value_1 est inférieure ou égale à value_2, light_1 s’éteint.

Logique à relais

Texte structuré

light_1 := (value_1 > value_2);

Bloc fonctionnel

222 Publication 1756-RM003K-FR-P – Juillet 2008

Page 223: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Chapitre 5

Inférieur ou égal (LEQ) L’instruction LEQ teste si Source A est inférieure ou égale à Source B.

Opérandes :

Logique à relais

• Si vous entrez un point SINT ou INT, la valeur est convertie en valeur DINT par extension de signe.

• Les types de données de chaîne sont :

– le type de données STRING par défaut ;

– tout type de données de chaîne nouveau que vous créez.

• Pour tester les caractères d’une chaîne, entrez un point de type de chaîne pour Source A et Source B.

Texte structuré

Utilisez des signes inférieur à et égal « >= » adjacents comme opérateur dans une expression. Cette expression évalue si sourceA est inférieure ou égale à sourceB.

Pour plus d’informations sur la syntaxe des expressions du texte structuré, voir Annexe C, Programmation en texte structuré.

Opérande Type Format Description

Source A SINT

INT

DINT

REAL

chaîne

immédiat

point

valeur à tester par rapport à Source B

Source B SINT

INT

DINT

REAL

chaîne

immédiat

point

valeur à tester par rapport à Source A

IF sourceA <= sourceB THEN

<déclarations>;

Publication 1756-RM003K-FR-P – Juillet 2008 223

Page 224: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 5 Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Bloc fonctionnel

Structure FBD_COMPARE

Description : L’instruction LEQ teste si Source A est inférieure ou égale à Source B.

Lorsque vous comparez des chaînes :

• les valeurs hexadécimales des caractères déterminent si une chaîne est inférieure ou supérieure à une autre chaîne. Pour trouver le code hexadécimal d’un caractère, reportez-vous à la dernière page de ce manuel ;

• lorsque les deux chaînes sont triées comme dans un répertoire téléphonique, l’ordre des chaînes détermine laquelle est supérieure.

Opérande Type Format Description

point LEQ FBD_COMPARE structure structure LEQ

Paramètre d’entrée Type de données Description

EnableIn BOOL Entrée activée. Si désactivé, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Réglage par défaut activé.

SourceA REAL Valeur à tester par rapport à SourceB.

Valable = toute valeur en virgule flottante

SourceB REAL Valeur à tester par rapport à SourceA.

Valable = toute valeur en virgule flottante

Paramètre de sortie Type de données Description

EnableOut BOOL L’instruction a produit un résultat valable.

Dest BOOL Résultat de l’instruction. Ceci est équivalent à l’état de sortie de la ligne pour l’instruction logique à relais LEQ.

Caractères ASCII Codes Hex

1ab $31$61$62

1b $31$62

A $41

AB $41$42

B $42

a $61

ab $61$62

supérieur

inférieur

AB < B

a > B

224 Publication 1756-RM003K-FR-P – Juillet 2008

Page 225: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Chapitre 5

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Exécution :

Logique à relais

Bloc fonctionnel

Condition Action

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai

fin

Source A ≤ Source Boui

non

l’état de sortie de la ligne est vrai

l’état de sortie de la ligne est faux

Condition Action

Pré-scrutation Aucune.

Première scrutation de l’instruction Aucune.

Première exécution de l’instruction Aucune.

EnableIn est effacé EnableOut est effacé.

EnableIn est activé L’instruction est exécutée.

EnableOut est activé.

Post-scrutation Aucune.

Publication 1756-RM003K-FR-P – Juillet 2008 225

Page 226: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 5 Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Exemple : Si value_1 est inférieure ou égale à value_2, light_2 s’allume. Si value_1 est supérieure à value_2, light_2 s’éteint.

Logique à relais

Texte structuré

light_2 := (value_1 <= value_2);

Bloc fonctionnel

226 Publication 1756-RM003K-FR-P – Juillet 2008

Page 227: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Chapitre 5

Inférieur à (LES) L’instruction LES teste si Source A est inférieure à Source B.

Opérandes :

Logique à relais

• Si vous entrez un point SINT ou INT, la valeur est convertie en valeur DINT par extension de signe.

• Les types de données de chaîne sont :

– le type de données STRING par défaut ;

• Tout type de données de chaîne nouveau que vous créez.

• Pour tester les caractères d’une chaîne, entrez un point de type de chaîne pour Source A et Source B.

Texte structuré

Utilisez le signe inférieur à « < » comme opérateur dans une expression. Cette expression évalue si sourceA est inférieure à sourceB.

Pour plus d’informations sur la syntaxe des expressions du texte structuré, voir Annexe C, Programmation en texte structuré.

Bloc fonctionnel

Opérande Type Format Description

Source A SINT

INT

DINT

REAL

chaîne

immédiat

point

valeur à tester par rapport à Source B

Source B SINT

INT

DINT

REAL

chaîne

immédiat

point

valeur à tester par rapport à Source A

Opérande Type Format Description

point LES FBD_COMPARE structure structure LES

IF sourceA < sourceB THEN

<déclarations>;

Publication 1756-RM003K-FR-P – Juillet 2008 227

Page 228: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 5 Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Structure FBD_COMPARE

Description : L’instruction LES teste si Source A est inférieure à Source B.

Lorsque vous comparez des chaînes :

• les valeurs hexadécimales des caractères déterminent si une chaîne est inférieure ou supérieure à une autre chaîne. Pour trouver le code hexadécimal d’un caractère, reportez-vous à la dernière page de ce manuel ;

• lorsque les deux chaînes sont triées comme dans un répertoire téléphonique, l’ordre des chaînes détermine laquelle est supérieure.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Paramètre d’entrée Type de données Description

EnableIn BOOL Entrée activée. Si désactivé, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Réglage par défaut activé.

SourceA REAL Valeur à tester par rapport à SourceB.

Valable = toute valeur en virgule flottante

SourceB REAL Valeur à tester par rapport à SourceA.

Valable = toute valeur en virgule flottante

Paramètre de sortie Type de données Description

EnableOut BOOL L’instruction a produit un résultat valable.

Dest BOOL Résultat de l’instruction. Ceci est équivalent à l’état de sortie de la ligne pour l’instruction logique à relais LES.

Caractères ASCII Codes Hex

1ab $31$61$62

1b $31$62

A $41

AB $41$42

B $42

a $61

ab $61$62

supérieur

inférieur

AB < B

a > B

228 Publication 1756-RM003K-FR-P – Juillet 2008

Page 229: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Chapitre 5

Exécution :

Logique à relais

Bloc fonctionnel

Condition Action

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai

fin

Source A < Source Boui

non

l’état de sortie de la ligne est vrai

l’état de sortie de la ligne est faux

Condition Action

Pré-scrutation Aucune.

Première scrutation de l’instruction Aucune.

Première exécution de l’instruction Aucune.

EnableIn est faux EnableOut est effacé.

EnableIn est vrai L’instruction est exécutée.

EnableOut est activé.

Post-scrutation Aucune.

Publication 1756-RM003K-FR-P – Juillet 2008 229

Page 230: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 5 Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Exemple : Si value_1 est inférieure à value_2, light_3 s’allume. Si value_1 est supérieure ou égale à value_2, light_3 s’éteint.

Logique à relais

Texte structuré

light_3 := (value_1 < value_2);

Bloc fonctionnel

230 Publication 1756-RM003K-FR-P – Juillet 2008

Page 231: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Chapitre 5

Limite (LIM) L’instruction LIM teste si la valeur Test est comprise entre la limite inférieure (Low Limit) et la limite supérieure (High Limit).

Opérandes :

Logique à relais

Texte structuré

Le texte structuré n’a pas d’instruction LIM, mais vous pouvez obtenir le même résultat en utilisant le texte structuré.

IF (LowLimit <= HighLimit AND(Test >= LowLimit AND Test <= HighLimit)) OR (LowLimit >= HighLimit AND(Test <= LowLimit OR Test >= HighLimit)) THEN

<déclaration>;

END_IF;

Opérande Type Format Description

Limite inférieure

SINT

INT

DINT

REAL

immédiat

point

valeur de la limite inférieure

Un point SINT ou INT est converti en valeur DINT par extension de signe.

Test SINT

INT

DINT

REAL

immédiat

point

valeur à tester

Un point SINT ou INT est converti en valeur DINT par extension de signe.

Limite supérieure

SINT

INT

DINT

REAL

immédiat

point

valeur de la limite supérieure

Un point SINT ou INT est converti en valeur DINT par extension de signe.

Publication 1756-RM003K-FR-P – Juillet 2008 231

Page 232: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 5 Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Bloc fonctionnel

Structure FBD_LIMIT

Description : L’instruction LIM teste si la valeur Test est comprise entre la limite inférieure (Low Limit) et la limite supérieure (High Limit).

Opérande Type Format Description

point LIM FBD_LIMIT structure structure LIM

Paramètre d’entrée Type de données Description

EnableIn BOOL Si effacé, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Si activé, l’instruction est exécutée comme décrit sous Exécution.

Réglage par défaut activé.

LowLimit REAL Valeur de la limite inférieure.

Valable = toute valeur en virgule flottante

Test REAL Valeur à tester par rapport aux limites.

Valable = toute valeur en virgule flottante

Paramètre de sortie Type de données Description

EnableOut BOOL L’instruction a produit un résultat valable.

Dest BOOL Résultat de l’instruction. Ceci est équivalent à l’état de sortie de la ligne pour l’instruction logique à relais LIM.

HighLimit REAL Valeur de la limite supérieure

Valable = toute valeur en virgule flottante

Si limite inférieure

Et la valeur test est L’état de sortie de la ligne est

≤ limite supérieure égale ou entre les limites vrai

non égale ou hors des limites faux

≥ limite supérieure égale ou hors des limites vrai

non égale ou entre les limites faux

232 Publication 1756-RM003K-FR-P – Juillet 2008

Page 233: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Chapitre 5

Les nombres entiers signés passent du nombre positif maximum au nombre négatif maximum lorsque le bit de poids fort est activé. Par exemple, dans les nombres entiers de 16 bits (type INT), le nombre entier positif maximum est 32 767, représenté en hexadécimal par 16#7FFF (les bits 0 à 14 sont tous activés). Si vous augmentez ce nombre de un, le résultat est 16#8000 (le bit 15 est activé). Pour les nombres entiers signés, hexadécimal 16#8000 est égal à –32 768 décimal. En augmentant à partir de ce point jusqu’à ce que les 16 bits soient activés, on atteint 16#FFFF, qui est égal à –1 décimal.

Ceci peut être représenté comme une ligne numérique circulaire (voir les diagrammes suivants). L’instruction LIM commence à la limite inférieure (Low Limit) et augmente dans le sens horaire jusqu’à la limite supérieure (High Limit). Toute valeur Test dans la plage de sens horaire, de la limite inférieure (Low Limit) à la limite supérieure (High Limit), règle l’état de sortie de la ligne sur vrai. Toute valeur Test dans la plage de sens horaire, de la limite supérieure (High Limit) à la limite inférieure (Low Limit), règle l’état de sortie de la ligne sur faux.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

−1

0

+1

Limite inférieure

Limite supérieure

+n−(n+1)

n = valeur maximum

Limite inférieure ≤ Limite supérieure

L’instruction est vraie si la valeur de test est égale ou entre les limites inférieure et supérieure

Limite inférieure ≥ Limite supérieure

L’instruction est vraie si la valeur de test est égale à ou hors des limites inférieure et supérieure

−1

0

+1

Limite supérieure

Limite inférieure

+n−(n+1)n = valeur maximum

Publication 1756-RM003K-FR-P – Juillet 2008 233

Page 234: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 5 Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Exécution :

Logique à relais

Bloc fonctionnel

Condition Action

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai

fin

évaluer la limitela comparaison est vraie

la comparaison est

l’état de sortie de la ligne est vrai

l’état de sortie de la ligne est faux

Condition Action

Pré-scrutation Aucune.

Première scrutation de l’instruction Aucune.

Première exécution de l’instruction Aucune.

EnableIn est effacé EnableOut est effacé, l’instruction ne fait rien et les sorties ne sont pas actualisées.

EnableIn est activé L’instruction est exécutée.

EnableOut est activé.

Post-scrutation Aucune.

234 Publication 1756-RM003K-FR-P – Juillet 2008

Page 235: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Chapitre 5

Exemple 1 : Limite inférieure ≤ Limite supérieure :Lorsque 0 ≤ value ≥ 100, light_1 s’allume. Si value < 0 ou value >100, light_1 s’éteint.

Logique à relais

Texte structuré

IF (value <= 100 AND(value >= 0 AND value <= 100)) OR (value >= 100 AND value <= 0 OR value >= 100)) THEN

light_1 := 1;

ELSE

light_1 := 0;

END_IF;

Bloc fonctionnel

Publication 1756-RM003K-FR-P – Juillet 2008 235

Page 236: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 5 Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Exemple 2 : Limite inférieure ≥ Limite supérieure :Lorsque value ≥ 0 ou value ≤ –100, light_1 s’allume. Si value < 0 ou value >−100, light_1 s’éteint.

Logique à relais

Texte structuré

IF (0 <= -100 AND value >= 0 AND value <= -100)) OR (0 >= -100 AND(value <= 0 OR value >= -100)) THEN

light_1 := 1;

ELSE

light_1 := 0;

END_IF;

Bloc fonctionnel

236 Publication 1756-RM003K-FR-P – Juillet 2008

Page 237: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Chapitre 5

Masque égal à (MEQ) L’instruction MEQ passe les valeurs Source et Compare par un masque et compare les résultats.

Opérandes :

Logique à relais

Texte structuré

Le texte structuré n’a pas d’instruction MEQ, mais vous pouvez obtenir le même résultat en utilisant le texte structuré.

IF (Source AND Mask) = (Compare AND Mask) THEN

<déclaration>;

END_IF;

Bloc fonctionnel

Opérande Type Format Description

Source SINT

INT

DINT

immédiat

point

valeur à tester par rapport à Compare

Un point SINT ou INT est converti en valeur DINT par remplissage de zéros.

Masque SINT

INT

DINT

immédiat

point

définit les bits à bloquer ou à passer

Un point SINT ou INT est converti en valeur DINT par remplissage par zéros.

Comparer SINT

INT

DINT

immédiat

point

valeur à tester par rapport à Source

Un point SINT ou INT est converti en valeur DINT par remplissage de zéros.

Opérande Type Format Description

point MEQ FBD_MASK_EQUAL structure structure MEQ

Publication 1756-RM003K-FR-P – Juillet 2008 237

Page 238: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 5 Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Structure FBD_MASK_EQUAL

Description : Un « 1 » dans le masque signifie que le bit de données est passé. Un « 0 » dans le masque signifie que le bit de données est bloqué. Généralement, les valeurs Source, Mask et Compare sont de même type.

Si vous mélangez des types d’entiers, l’instruction écrit des 0 pour les bits supérieurs dans des entiers de taille inférieure, pour qu’ils aient la même taille que les entiers de grande taille.

Entrée d’une valeur de masque immédiate

Lorsque vous entrez un masque, le logiciel de programmation passe à des valeurs décimales par défaut. Si vous voulez entrer un masque à l’aide d’un autre format, faites précéder la valeur du préfixe correct.

Indicateurs d’état arithmétique : Non affectés

Paramètre d’entrée Type de données Description

EnableIn BOOL Si effacé, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Si activé, l’instruction est exécutée comme décrit sous Exécution.

Réglage par défaut activé.

Source DINT Valeur à tester par rapport à Compare.

Valable = tout nombre entier

Masque DINT Définit les bits à bloquer (masque).

Valable = tout nombre entier

Comparer DINT Valeur de comparaison.

Valable = tout nombre entier

Paramètre de sortie Type de données Description

EnableOut BOOL L’instruction a produit un résultat valable.

Dest BOOL Résultat de l’instruction. Ceci est équivalent à l’état de sortie de la ligne pour l’instruction logique à relais MEQ.

Préfixe Description

16# hexadécimal

par exemple ; 16#0F0F

8# octal

par exemple ; 8#16

2# binaire

par exemple ; 2#00110011

238 Publication 1756-RM003K-FR-P – Juillet 2008

Page 239: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Chapitre 5

Conditions d’erreur : Aucune

Exécution :

Logique à relais

Bloc fonctionnel

Condition Action

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai

fin

source masquée = comparaison

oui

non

l’état de sortie de la ligne est vrai

l’état de sortie de la ligne est faux

Condition Action

Pré-scrutation Aucune.

Première scrutation de l’instruction Aucune.

Première exécution de l’instruction Aucune.

EnableIn est effacé EnableOut est effacé, l’instruction ne fait rien et les sorties ne sont pas actualisées.

EnableIn est activé L’instruction est exécutée.

EnableOut est activé.

Post-scrutation Aucune.

Publication 1756-RM003K-FR-P – Juillet 2008 239

Page 240: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 5 Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Exemple 1 : Si la valeur masquée value_1 est égale à la valeur masquée value_2, light_1 s’allume. Si la valeur masquée value_1 est différente de la valeur masquée value_2, light_1 s’éteint. Cet exemple montre que les valeurs masquées sont égales. Un 0 dans le masque empêche l’instruction de comparer ce bit (indiqué par x dans l’exemple).

Logique à relais

Texte structuré

light_1 := ((value_1 AND mask_1)=(value_2 AND mask_2));

Bloc fonctionnel

value_1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 value_2 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 0

mask_1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 mask_1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0

value_1 masquée 0 1 0 1 0 1 0 1 1 1 1 1 X X X X value_2 masquée 0 1 0 1 0 1 0 1 1 1 1 1 X X X X

240 Publication 1756-RM003K-FR-P – Juillet 2008

Page 241: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Chapitre 5

Exemple 2 : Si la valeur masquée value_1 est égale à la valeur masquée value_2, light_1 s’allume. Si la valeur masquée value_1 est différente de la valeur masquée value_2, light_1 s’éteint. Cet exemple montre que les valeurs masquées sont différentes. Un 0 dans le masque empêche l’instruction de comparer ce bit (indiqué par x dans l’exemple).

Logique à relais

Texte structuré

light_1 := ((value_1 AND mask_1)=(value_2 AND mask_2));

Bloc fonctionnel

value_1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 value_2 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 0

mask_1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 mask_1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1

value_1 masquée X X X X X X X X X X X X 1 1 1 1 value_2 masquée X X X X X X X X X X X X 0 0 0 0

Publication 1756-RM003K-FR-P – Juillet 2008 241

Page 242: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 5 Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Différent de (NEQ) L’instruction NEQ teste si Source A est différente de Source B.

Opérandes :

Logique à relais

• Si vous entrez un point SINT ou INT, la valeur est convertie en valeur DINT par extension de signe.

• Les types de données de chaîne sont :

– le type de données STRING par défaut ;

– tout type de données de chaîne nouveau que vous créez.

• Pour tester les caractères d’une chaîne, entrez un point de type de chaîne pour Source A et Source B.

Texte structuré

Utilisez les signes inférieur à et supérieur à « <> » ensemble comme opérateur dans une expression. Cette expression évalue si sourceA est différente de sourceB.

Pour plus d’informations sur la syntaxe des expressions du texte structuré, voir Annexe C, Programmation en texte structuré.

Opérande Type Format Description

Source A SINT

INT

DINT

REAL

chaîne

immédiat

point

valeur à tester par rapport à Source B

Source B SINT

INT

DINT

REAL

chaîne

immédiat

point

valeur à tester par rapport à Source A

IF sourceA <> sourceB THEN

<déclarations>;

242 Publication 1756-RM003K-FR-P – Juillet 2008

Page 243: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Chapitre 5

Bloc fonctionnel

Structure FBD_COMPARE

Description : L’instruction NEQ teste si Source A est différente de Source B.

Lorsque vous comparez des chaînes :

• les chaînes de ne sont pas égales si un seul de leurs caractères ne correspond pas dans les deux chaînes ;

• les caractères ASCII sont sensibles à la casse. « A » ($41) en majuscule n’est pas égal à « a » ($61) en minuscule.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Opérande Type Format Description

point NEQ FBD_COMPARE structure structure NEQ

Paramètre d’entrée Type de données Description

EnableIn BOOL Entrée activée. Si désactivé, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Réglage par défaut activé.

SourceA REAL Valeur à tester par rapport à SourceB.

Valable = toute valeur en virgule flottante

SourceB REAL Valeur à tester par rapport à SourceA.

Valable = toute valeur en virgule flottante

Paramètre de sortie Type de données Description

EnableOut BOOL L’instruction a produit un résultat valable.

Dest BOOL Résultat de l’instruction. Ceci est équivalent à l’état de sortie de la ligne pour l’instruction logique à relais NEQ.

Caractères ASCII Codes Hex

1ab $31$61$62

1b $31$62

A $41

AB $41$42

B $42

a $61

ab $61$62

supérieur

inférieur

AB < B

a > B

Publication 1756-RM003K-FR-P – Juillet 2008 243

Page 244: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 5 Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Exécution :

Logique à relais

Bloc fonctionnel

Condition Action

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai

fin

Source A = Source Boui

non

l’état de sortie de la ligne est vrai

l’état de sortie de la ligne est faux

Condition Action

Pré-scrutation Aucune.

Première scrutation de l’instruction Aucune.

Première exécution de l’instruction Aucune.

EnableIn est effacé EnableOut est effacé.

EnableIn est activé L’instruction est exécutée.

EnableOut est activé.

Post-scrutation Aucune.

244 Publication 1756-RM003K-FR-P – Juillet 2008

Page 245: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Chapitre 5

Exemple : Si value_1 est différente de value_2, light_4 s’allume. Si value_1 est égale à value_2, light_4 s’éteint.

Logique à relais

Texte structuré

light_4 := (value_1 <> value_2);

Bloc fonctionnel

Publication 1756-RM003K-FR-P – Juillet 2008 245

Page 246: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 5 Instructions de comparaison (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Notes :

246 Publication 1756-RM003K-FR-P – Juillet 2008

Page 247: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 6

Instructions de calcul/mathématiques(CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Introduction Les instructions de calcul/mathématiques évaluent les opérations arithmétiques à l’aide d’une expression ou d’une instruction arithmétique spécifique.

Vous pouvez mélanger des types de données ; cependant des erreurs de précision et un arrondissement des valeurs peuvent se produire et l’instruction est plus longue à exécuter. Vérifiez le bit S:V pour voir si le résultat a été tronqué.

Pour les instructions de logique à relais, les types de données en gras indiquent les types de données optimaux. Une instruction est exécutée plus rapidement et demande moins de mémoire si tous les

Si vous voulez Utilisez cette instruction Disponible dans ces langages Voir page

évaluer une expression CPT Logique à relaisTexte structuré(1)

248

additionner deux valeurs ADD Logique à relaisTexte structuré(2)

Bloc fonctionnel

252

soustraire deux valeurs SUB Logique à relaisTexte structuré(2)

Bloc fonctionnel

255

multiplier deux valeurs MUL Logique à relaisTexte structuré(2)

Bloc fonctionnel

258

diviser deux valeurs DIV Logique à relaisTexte structuré(2)

Bloc fonctionnel

261

déterminer le reste après la division d’une valeur par une autre

MOD Logique à relaisTexte structuré(2)

Bloc fonctionnel

266

calculer la racine carrée d’une valeur SQR

SQRT(3)

Logique à relaisTexte structuré

Bloc fonctionnel

270

prendre le signe opposé d’une valeur NEG Logique à relaisTexte structuré(2)

Bloc fonctionnel

274

prendre la valeur absolue d’une valeur ABS Logique à relaisTexte structuré

Bloc fonctionnel

277

(1) Il n’y a pas d’instruction en texte structuré équivalente. Utilisez une autre programmation en texte structuré pour obtenir le même résultat. Voir la description de l’instruction.

(2) Il n’y a pas d’instruction en texte structuré équivalente. Utilisez l’opérateur dans une expression.

(3) Texte structuré uniquement.

247Publication 1756-RM003K-FR-P – Juillet 2008 247

Page 248: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 6 Instructions de calcul/mathématiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

opérandes de l’instruction utilisent le même type de données optimal, généralement DINT ou REAL.

Calcul (CPT) L’instruction CPT effectue les opérations arithmétiques que vous définissez dans l’expression.

Opérandes :

Logique à relais

Texte structuré

Le texte structuré n’a pas d’instruction CPT, mais vous pouvez obtenir le même résultat en utilisant une affectation et une expression.

destination := numeric_expresion;

Pour plus d’informations sur la syntaxe des affectations et des expressions du texte structuré, voir Annexe C, Programmation en texte structuré.

Description : L’instruction CPT effectue les opérations arithmétiques que vous définissez dans l’expression. Lorsqu’elle est activée, l’instruction CPT évalue l’expression et stocke le résultat dans la Destination.

L’exécution d’une instruction CPT est légèrement plus lente et utilise plus de mémoire que l’exécution des autres instructions de calcul/mathématiques. L’avantage de l’instruction CPT est qu’elle vous autorise à entrer des expressions complexes dans une seule instruction.

Indicateurs d’état arithmétique : Les indicateurs d’état arithmétique sont affectés.

Conditions d’erreur : Aucune

Opérande Type Format Description

Destination SINTINTDINTREAL

point point pour le stockage du résultat

Expression SINTINTDINTREAL

immédiat

point

expression constituée de points et/ou de valeurs immédiates séparées par des opérateurs

Un point SINT ou INT est converti en valeur DINT par extension de signe.

CONSEIL Il n’y a pas de limite à la longueur d’une expression.

248 Publication 1756-RM003K-FR-P – Juillet 2008

Page 249: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de calcul/mathématiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS) Chapitre 6

Exécution :

Exemple 1 : Lorsqu’elle est activée, l’instruction CPT évalue value_1 multipliée par 5 et divise ce résultat par le résultat de value_2 divisée par 7 et stocke le résultat final dans result_1.

Exemple 2 : Lorsqu’elle est activée, l’instruction CPT tronque float_value_1 et float_value_2, porte la valeur tronquée float_value_2 à la puissance deux et divise la valeur tronquée float_value_1 par ce résultat, puis stocke le reste après la division dans float_value_result_cpt.

Condition Action logique à relais

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai L’instruction évalue l’expression et stocke le résultat dans la Destination.

L’état de sortie de la ligne est réglé sur vrai.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

Publication 1756-RM003K-FR-P – Juillet 2008 249

Page 250: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 6 Instructions de calcul/mathématiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Opérateurs valables

Formatage d’expressions

Pour chaque opérateur utilisé dans une expression, vous devez fournir un ou deux opérandes (points ou valeurs immédiates). Utilisez le tableau suivant pour formater les opérateurs et les opérandes dans une expression.

Opérateur Description Optimal

+ addition DINT, REAL

- soustraction/négation DINT, REAL

* multiplication DINT, REAL

/ division DINT, REAL

** exposant (x à y) DINT, REAL

ABS valeur absolue DINT, REAL

ACS cosinus d’arc REAL

AND ET sur bits DINT

ASN sinus d’arc REAL

ATN tangente d’arc REAL

COS cosinus REAL

DEG radians en degrés DINT, REAL

FRD DBC à nombre entier DINT

LN logarithme naturel REAL

LOG logarithme décimal REAL

MOD modulo DINT, REAL

NOT complément sur bits DINT

OR OU sur bits DINT

RAD degrés en radians DINT, REAL

SIN sinus REAL

SQR racine carrée DINT, REAL

TAN tangente REAL

TOD DBC à nombre entier DINT

TRN troncation DINT, REAL

XOR OU exclusif sur bits DINT

Opérateur Description Optimal

Pour les opérateurs opérant sur

Utilisez ce format Exemples

un opérande opérateur(opérande) ABS(tag_a)

deux opérandes opérande_a opérateur opérande_b

• tag_b + 5

• tag_c AND tag_d

• (tag_e ** 2) MOD (tag_f / tag_g)

250 Publication 1756-RM003K-FR-P – Juillet 2008

Page 251: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de calcul/mathématiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS) Chapitre 6

Déterminer l’ordre des opérations

Les opérations que vous écrivez dans l’expression sont effectuées par l’instruction dans un ordre précis, qui n’est pas nécessairement l’ordre dans lequel vous les écrivez. Vous pouvez modifier l’ordre des opérations en groupant des termes entre parenthèses, cela force l’instruction à effectuer une opération entre parenthèses avant les autres opérations.

Les opérations d’ordre identique sont effectuées de gauche à droite.

Ordre Opération

1. ()

2. ABS, ACS, ASN, ATN, COS, DEG, FRD, LN, LOG, RAD, SIN, SQR, TAN, TOD, TRN

3. **

4. − (négation), NOT

5. *, /, MOD

6. − (soustraction), +

7. AND

8. XOR

9. OR

Publication 1756-RM003K-FR-P – Juillet 2008 251

Page 252: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 6 Instructions de calcul/mathématiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Addition (ADD) L’instruction ADD ajoute Source A à Source B et stocke le résultat dans la Destination.

Opérandes :

Logique à relais

Texte structuré

Utilisez le signe plus « + » comme opérateur dans une expression. Cette expression ajoute sourceA à sourceB et enregistre le résultat dans dest.

Pour plus d’informations sur la syntaxe des expressions du texte structuré, voir Annexe C, Programmation en texte structuré.

Bloc fonctionnel

Opérande Type Format Description

Source A SINT

INT

DINT

REAL

immédiat

point

valeur à ajouter à Source B

Un point SINT ou INT est converti en valeur DINT par extension de signe.

Source B SINT

INT

DINT

REAL

immédiat

point

valeur à ajouter à Source A

Un point SINT ou INT est converti en valeur DINT par extension de signe.

Destination SINT

INT

DINT

REAL

point point pour le stockage du résultat

Opérande Type Format Description

point ADD FBD_MATH structure structure ADD

dest := sourceA + sourceB;

252 Publication 1756-RM003K-FR-P – Juillet 2008

Page 253: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de calcul/mathématiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS) Chapitre 6

Structure BD_MATH

Description : L’instruction ADD ajoute Source A à Source B et stocke le résultat dans la Destination.

Indicateurs d’état arithmétique : Les indicateurs d’état arithmétique sont affectés.

Conditions d’erreur : Aucune

Exécution :

Logique à relais

Paramètre d’entrée Type de données Description

EnableIn BOOL Entrée activée. Si désactivé, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Réglage par défaut activé.

SourceA REAL Valeur à ajouter à SourceB.

Valable = toute valeur en virgule flottante

SourceB REAL Valeur à ajouter à SourceA.

Valable = toute valeur en virgule flottante

Paramètre de sortie Type de données Description

EnableOut BOOL L’instruction a produit un résultat valable.

Dest REAL Résultat de l’instruction mathématique. Les indicateurs d’état arithmétiques sont activés pour cette sortie.

Condition Action

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai Destination = Source A + Source B

L’état de sortie de la ligne est réglé sur vrai.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

Publication 1756-RM003K-FR-P – Juillet 2008 253

Page 254: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 6 Instructions de calcul/mathématiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Bloc fonctionnel

Exemple : Ajouter float_value_1 à float_value_2 et placer le résultat dans add_result.

Logique à relais

Texte structuré

add_result := float_value_1 + float_value_2;

Bloc fonctionnel

Condition Action

Pré-scrutation Aucune.

Première scrutation de l’instruction Aucune.

Première exécution de l’instruction Aucune.

EnableIn est effacé EnableOut est effacé.

EnableIn est activé L’instruction est exécutée.

EnableOut est activé.

Post-scrutation Aucune.

254 Publication 1756-RM003K-FR-P – Juillet 2008

Page 255: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de calcul/mathématiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS) Chapitre 6

Soustraction (SUB) L’instruction SUB soustrait Source B de Source A et stocke le résultat dans la Destination.

Opérandes :

Logique à relais

Texte structuré

Utilisez le signe moins « − » comme opérateur dans une expression. Cette expression soustrait sourceB de sourceA et enregistre le résultat dans dest.

Pour plus d’informations sur la syntaxe des expressions du texte structuré, voir Annexe C, Programmation en texte structuré.

Bloc fonctionnel

Opérande Type Format Description

Source A SINT

INT

DINT

REAL

immédiat

point

valeur à laquelle soustraire Source B

Un point SINT ou INT est converti en valeur DINT par extension de signe.

Source B SINT

INT

DINT

REAL

immédiat

point

valeur à soustraire de Source A

Un point SINT ou INT est converti en valeur DINT par extension de signe.

Destination SINT

INT

DINT

REAL

point point pour le stockage du résultat

Opérande Type Format Description

point SUB FBD_MATH structure structure SUB

dest := sourceA – sourceB;

Publication 1756-RM003K-FR-P – Juillet 2008 255

Page 256: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 6 Instructions de calcul/mathématiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Structure BD_MATH

Description : L’instruction SUB soustrait Source B à Source A et stocke le résultat dans la Destination.

Indicateurs d’état arithmétique : Les indicateurs d’état arithmétique sont affectés.

Conditions d’erreur : Aucune

Exécution :

Logique à relais

Paramètre d’entrée Type de données Description

EnableIn BOOL Entrée activée. Si désactivé, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Réglage par défaut activé.

SourceA REAL Valeur à laquelle soustraire SourceB.

Valable = toute valeur en virgule flottante

SourceB REAL Valeur à soustraire de SourceA.

Valable = toute valeur en virgule flottante

Paramètre de sortie Type de données Description

EnableOut BOOL L’instruction a produit un résultat valable.

Dest REAL Résultat de l’instruction mathématique. Les indicateurs d’état arithmétiques sont activés pour cette sortie.

Condition Action

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai Destination = Source B – Source A

L’état de sortie de la ligne est réglé sur vrai.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

256 Publication 1756-RM003K-FR-P – Juillet 2008

Page 257: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de calcul/mathématiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS) Chapitre 6

Bloc fonctionnel

Exemple : Soustraire float_value_2 de float_value_1 et placer le résultat dans subtract_result.

Logique à relais

Texte structuré

subtract_result := float_value_1 – float_value_2;

Bloc fonctionnel

Condition Action

Pré-scrutation Aucune.

Première scrutation de l’instruction Aucune.

Première exécution de l’instruction Aucune.

EnableIn est effacé EnableOut est effacé.

EnableIn est activé L’instruction est exécutée.

EnableOut est activé.

Post-scrutation Aucune.

Publication 1756-RM003K-FR-P – Juillet 2008 257

Page 258: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 6 Instructions de calcul/mathématiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Multiplication (MUL) L’instruction MUL multiplie Source A par Source B et stocke le résultat dans la Destination.

Opérandes :

Logique à relais

Texte structuré

Utilisez le signe de multiplication « ∗ » comme opérateur dans une expression. Cette expression multiplie sourceA par sourceB et enregistre le résultat dans dest.

Pour plus d’informations sur la syntaxe des expressions du texte structuré, voir Annexe C, Programmation en texte structuré.

Bloc fonctionnel

Opérande Type Format Description

Source A SINT

INT

DINT

REAL

immédiat

point

valeur du multiplicande

Un point SINT ou INT est converti en valeur DINT par extension de signe.

Source B SINT

INT

DINT

REAL

immédiat

point

valeur du multiplicateur

Un point SINT ou INT est converti en valeur DINT par extension de signe.

Destination SINT

INT

DINT

REAL

point point pour le stockage du résultat

Opérande Type Format Description

point MUL FBD_MATH structure structure MUL

dest := sourceA * sourceB;

258 Publication 1756-RM003K-FR-P – Juillet 2008

Page 259: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de calcul/mathématiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS) Chapitre 6

Structure BD_MATH

Description : L’instruction MUL multiplie Source A par Source B et stocke le résultat dans la Destination.

Indicateurs d’état arithmétique : Les indicateurs d’état arithmétique sont affectés.

Conditions d’erreur : Aucune

Exécution :

Logique à relais

Paramètre d’entrée Type de données

Description

EnableIn BOOL Entrée activée. Si désactivé, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Réglage par défaut activé.

Source A REAL Valeur du multiplicande.

Valable = toute valeur en virgule flottante

Source B REAL Valeur du multiplicateur.

Valable = toute valeur en virgule flottante

Paramètre de sortie Type de données

Description

EnableOut BOOL L’instruction a produit un résultat valable.

Dest REAL Résultat de l’instruction mathématique. Les indicateurs d’état arithmétiques sont activés pour cette sortie.

Condition Action

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai Destination = Source B x Source A

L’état de sortie de la ligne est réglé sur vrai.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

Publication 1756-RM003K-FR-P – Juillet 2008 259

Page 260: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 6 Instructions de calcul/mathématiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Bloc fonctionnel

Exemple : Multiplier float_value_1 par float_value_2 et placer le résultat dans multiply_result.

Logique à relais

Texte structuré

multiply_result := float_value_1 ∗ float_value_2;

Bloc fonctionnel

Condition Action

Pré-scrutation Aucune.

Première scrutation de l’instruction Aucune.

Première exécution de l’instruction Aucune.

EnableIn est effacé EnableOut est effacé.

EnableIn est activé L’instruction est exécutée.

EnableOut est activé.

Post-scrutation Aucune.

260 Publication 1756-RM003K-FR-P – Juillet 2008

Page 261: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de calcul/mathématiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS) Chapitre 6

Division (DIV) L’instruction DIV divise Source A par Source B et stocke le résultat dans la Destination.

Opérandes :

Logique à relais

Texte structuré

Utilisez le signe de division « / » comme opérateur dans une expression. Cette expression divise sourceA par sourceB et enregistre le résultat dans dest.

Pour plus d’informations sur la syntaxe des expressions du texte structuré, voir Annexe C, Programmation en texte structuré.

Opérande Type Format Description

Source A SINT

INT

DINT

REAL

immédiat

point

valeur du dividende

Un point SINT ou INT est converti en valeur DINT par extension de signe.

Source B SINT

INT

DINT

REAL

immédiat

point

valeur du diviseur

Un point SINT ou INT est converti en valeur DINT par extension de signe.

Destination SINT

INT

DINT

REAL

point point pour le stockage du résultat

dest := sourceA / sourceB;

Publication 1756-RM003K-FR-P – Juillet 2008 261

Page 262: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 6 Instructions de calcul/mathématiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Bloc fonctionnel

Structure BD_MATH

Description : Si la Destination n’est pas une valeur REAL, l’instruction gère la partie fractionnaire du résultat comme suit :

Opérande Type Format Description

point DIV FBD_MATH structure structure DIV

Paramètre d’entrée Type de données Description

EnableIn BOOL Entrée activée. Si désactivé, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Réglage par défaut activé.

Source A REAL Valeur du dividende.

Valable = toute valeur en virgule flottante

Source B REAL Valeur du diviseur.

Valable = toute valeur en virgule flottante

Paramètre de sortie Type de données Description

EnableOut BOOL L’instruction a produit un résultat valable.

Dest REAL Résultat de l’instruction mathématique. Les indicateurs d’état arithmétiques sont activés pour cette sortie.

Si Source A La partie fractionnaire du résultat

Exemple

et Source B ne sont pas des valeurs REAL

est tronquée Source A DINT 5

Source B DINT 3

Destination DINT 1

ou Source B est une valeur REAL

est arrondie Source A REAL 5.0

Source B DINT 3

Destination DINT 2

262 Publication 1756-RM003K-FR-P – Juillet 2008

Page 263: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de calcul/mathématiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS) Chapitre 6

Si Source B (le diviseur) est zéro :

• un défaut mineur se produit :

– Type 4 : défaut programme

– Code 4 : dépassement arithmétique

• la destination est réglée comme suit :

Pour détecter une division par zéro, examinez le bit de défaut mineur (S:MINOR). Voir Logix5000 Controllers Common Procedures, publication 1756-PM001.

Indicateurs d’état arithmétique : Les indicateurs d’état arithmétique sont affectés.

Conditions d’erreur :

Exécution :

Logique à relais

Si Source B est zéro et Et la destination est un Et le résultat est La destination est réglée sur

tous les opérandes sont des nombres entiers (SINT, INT ou DINT)

Source A

au moins un opérande est une valeur REAL

SINT, INT ou DINT positif –1

négatif 0

REAL positif 1.$ (infini positif)

négatif –1.$ (infini négatif)

Un défaut mineur se produit si

Type de défaut Code de défaut

le diviseur est zéro 4 4

Condition Action

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai Destination = Source A / Source B

L’état de sortie de la ligne est réglé sur vrai.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

Publication 1756-RM003K-FR-P – Juillet 2008 263

Page 264: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 6 Instructions de calcul/mathématiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Bloc fonctionnel

Exemple 1 : Diviser float_value_1 par float_value_2 et placer le résultat dans divide_result.

Logique à relais

Texte structuré

divide_result := float_value_1 / float_value_2;

Bloc fonctionnel

Condition Action

Pré-scrutation Aucune.

Première scrutation de l’instruction Aucune.

Première exécution de l’instruction Aucune.

EnableIn est effacé EnableOut est effacé.

EnableIn est activé L’instruction est exécutée.

EnableOut est activé.

Post-scrutation Aucune.

264 Publication 1756-RM003K-FR-P – Juillet 2008

Page 265: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de calcul/mathématiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS) Chapitre 6

Exemple 2 : Les instructions DIV et MOV travaillent ensemble pour diviser deux nombres entiers, arrondir le résultat et le placer dans un point de nombre entier :

• l’instruction DIV divise dint_a par dint_b ;

• pour arrondir le résultat, la destination est un point REAL. (Si la destination est un point de nombre entier (SINT, INT ou DINT), l’instruction tronque le résultat) ;

• l’instruction MOV déplace le résultat arrondi (real_temp) de DIV vers divide_result_rounded ;

• puisque divide_result_rounded est un point DINT, la valeur de real_temp est arrondie et placée dans la destination DINT.

Logique à relais

43009

Publication 1756-RM003K-FR-P – Juillet 2008 265

Page 266: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 6 Instructions de calcul/mathématiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Modulo (MOD) L’instruction MOD divise Source A par Source B et stocke le reste dans la Destination.

Opérandes :

Logique à relais

Texte structuré

Utilisez MOD comme opérateur dans une expression. Cette expression divise sourceA par sourceB et enregistre le reste dans dest.

Pour plus d’informations sur la syntaxe des expressions du texte structuré, voir Annexe C, Programmation en texte structuré.

Bloc fonctionnel

Opérande Type Format Description

Source A SINT

INT

DINT

REAL

immédiat

point

valeur du dividende

Un point SINT ou INT est converti en valeur DINT par extension de signe.

Source B SINT

INT

DINT

REAL

immédiat

point

valeur du diviseur

Un point SINT ou INT est converti en valeur DINT par extension de signe.

Destination SINT

INT

DINT

REAL

point point pour le stockage du résultat

Opérande Type Format Description

point MOD FBD_MATH structure structure MOD

dest := sourceA MOD sourceB;

266 Publication 1756-RM003K-FR-P – Juillet 2008

Page 267: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de calcul/mathématiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS) Chapitre 6

Structure BD_MATH

Description : si Source B (le diviseur) est zéro :

• un défaut mineur se produit :

– Type 4 : défaut programme

– Code 4 : dépassement arithmétique

• la destination est réglée comme suit :

Pour détecter une division par zéro, examinez le bit de défaut mineur (S:MINOR). Voir Logix5000 Controllers Common Procedures, publication 1756-PM001.

Paramètre d’entrée Type de données Description

EnableIn BOOL Entrée activée. Si désactivé, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Réglage par défaut activé.

Source A REAL Valeur du dividende.

Valable = toute valeur en virgule flottante

Source B REAL Valeur du diviseur.

Valable = toute valeur en virgule flottante

Paramètre de sortie Type de données Description

EnableOut BOOL L’instruction a produit un résultat valable.

Dest REAL Résultat de l’instruction mathématique. Les indicateurs d’état arithmétiques sont activés pour cette sortie.

Si Source B est zéro et Et la destination est un Et le résultat est La destination est réglée sur

tous les opérandes sont des nombres entiers (SINT, INT ou DINT)

Source A

au moins un opérande est une valeur REAL

SINT, INT ou DINT positif –1

négatif 0

REAL positif 1.$ (infini positif)

négatif –1.$ (infini négatif)

Publication 1756-RM003K-FR-P – Juillet 2008 267

Page 268: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 6 Instructions de calcul/mathématiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Indicateurs d’état arithmétique : Les indicateurs d’état arithmétique sont affectés.

Conditions d’erreur :

Exécution :

Logique à relais

Bloc fonctionnel

Un défaut mineur se produit si

Type de défaut Code de défaut

le diviseur est zéro 4 4

Condition Action

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai Destination = Source A – ( TRN ( Source A / Source B ) * Source B )

L’état de sortie de la ligne est réglé sur vrai.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

Condition Action

Pré-scrutation Aucune.

Première scrutation de l’instruction Aucune.

Première exécution de l’instruction Aucune.

EnableIn est effacé EnableOut est effacé.

Post-scrutation Aucune.

268 Publication 1756-RM003K-FR-P – Juillet 2008

Page 269: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de calcul/mathématiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS) Chapitre 6

Exemple : Diviser dividend par divisor et placer le reste dans remainder. Dans cet exemple, trois va trois fois dans 10, avec un reste de un.

Logique à relais

Texte structuré

remainder := dividend MOD divisor;

Bloc fonctionnel

Publication 1756-RM003K-FR-P – Juillet 2008 269

Page 270: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 6 Instructions de calcul/mathématiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Racine carrée (SQR) L’instruction SQR calcule la racine carrée de la Source et stocke le résultat dans la Destination.

Opérandes :

Logique à relais

Texte structuré

Utilisez SQRT comme une fonction. Cette expression calcule la racine carrée de source et enregistre le résultat dans dest.

Pour plus d’informations sur la syntaxe des expressions du texte structuré, voir Annexe C, Programmation en texte structuré.

Opérande Type Format Description

Source SINT

INT

DINT

REAL

immédiat

point

trouve la racine carrée de cette valeur

Un point SINT ou INT est converti en valeur DINT par extension de signe.

Destination SINT

INT

DINT

REAL

point point pour le stockage du résultat

dest := SQRT(source);

270 Publication 1756-RM003K-FR-P – Juillet 2008

Page 271: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de calcul/mathématiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS) Chapitre 6

Bloc fonctionnel

Structure FBD_MATH_ADVANCED

Description : Si la Destination n’est pas une valeur REAL, l’instruction gère la partie fractionnaire du résultat comme suit :

Si la valeur Source est négative, l’instruction prend la valeur absolue de la Source avant de calculer la racine carrée.

Indicateurs d’état arithmétique : Les indicateurs d’état arithmétique sont affectés.

Conditions d’erreur : Aucune

Opérande Type Format Description

point SQR FBD_MATH_ADVANCED structure structure SQR

Paramètre d’entrée Type de données

Description

EnableIn BOOL Entrée activée. Si désactivé, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Réglage par défaut activé.

Source REAL Trouve la racine carrée de cette valeur.

Valable = toute valeur en virgule flottante

Paramètre de sortie Type de données

Description

EnableOut BOOL L’instruction a produit un résultat valable.

Dest REAL Résultat de l’instruction mathématique. Les indicateurs d’état arithmétiques sont activés pour cette sortie.

Si la source est La partie fractionnaire du résultat

Exemple

n’est pas REAL est tronquée Source DINT 3

Destination DINT 1

est REAL est arrondie Source REAL 3.0

Destination DINT 2

Publication 1756-RM003K-FR-P – Juillet 2008 271

Page 272: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 6 Instructions de calcul/mathématiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Exécution :

Logique à relais

Bloc fonctionnel

Condition Action

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai

L’état de sortie de la ligne est réglé sur vrai.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

Destination Source=

Condition Action

Pré-scrutation Aucune.

Première scrutation de l’instruction Aucune.

Première exécution de l’instruction Aucune.

EnableIn est effacé EnableOut est effacé.

EnableIn est activé L’instruction est exécutée.

EnableOut est activé.

Post-scrutation Aucune.

272 Publication 1756-RM003K-FR-P – Juillet 2008

Page 273: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de calcul/mathématiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS) Chapitre 6

Exemple : Calculer la racine carrée de value_1 et placer le résultat dans sqr_result.

Logique à relais

Texte structuré

sqr_result := SQRT(value_1);

Bloc fonctionnel

Publication 1756-RM003K-FR-P – Juillet 2008 273

Page 274: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 6 Instructions de calcul/mathématiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Négation (NEG) L’instruction NEG change le signe de la Source et stocke le résultat dans la Destination.

Opérandes :

Logique à relais

Texte structuré

Utilisez le signe moins « − » comme opérateur dans une expression. Cette expression change le signe de source et enregistre le résultat dans dest.

Pour plus d’informations sur la syntaxe des expressions du texte structuré, voir Annexe C, Programmation en texte structuré.

Bloc fonctionnel

Opérande Type Format Description

Source SINT

INT

DINT

REAL

immédiat

point

valeur de négation

Un point SINT ou INT est converti en valeur DINT par extension de signe.

Destination SINT

INT

DINT

REAL

point point pour le stockage du résultat

Opérande Type Format Description

point NEG FBD_MATH_ADVANCED structure structure NEG

dest := -source;

274 Publication 1756-RM003K-FR-P – Juillet 2008

Page 275: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de calcul/mathématiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS) Chapitre 6

Structure BD_MATH

Description : Si vous mettez un signe moins à une valeur négative, le résultat est positif. Si vous mettez un signe moins à une valeur positive, le résultat est négatif.

Indicateurs d’état arithmétique : Les indicateurs d’état arithmétique sont affectés.

Conditions d’erreur : Aucune

Exécution :

Logique à relais

Bloc fonctionnel

Paramètre d’entrée Type de données Description

EnableIn BOOL Entrée activée. Si désactivé, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Par défaut activé

Source REAL Valeur de négation.

Valable = toute valeur en virgule flottante

Paramètre de sortie Type de données Description

EnableOut BOOL L’instruction a produit un résultat valable.

Dest REAL Résultat de l’instruction mathématique. Les indicateurs d’état arithmétiques sont activés pour cette sortie.

Condition Action

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai Destination = 0 − Source

L’état de sortie de la ligne est réglé sur vrai.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

Condition Action

Pré-scrutation Aucune.

Première scrutation de l’instruction Aucune.

Première exécution de l’instruction Aucune.

EnableIn est effacé EnableOut est effacé.

EnableIn est activé L’instruction est exécutée.

EnableOut est activé.

Post-scrutation Aucune.

Publication 1756-RM003K-FR-P – Juillet 2008 275

Page 276: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 6 Instructions de calcul/mathématiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Exemple : Changer le signe de value_1 et placer le résultat dans negate_result.

Logique à relais

Texte structuré

negate_result := -value_1;

Bloc fonctionnel

276 Publication 1756-RM003K-FR-P – Juillet 2008

Page 277: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de calcul/mathématiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS) Chapitre 6

Valeur absolue (ABS) L’instruction ABS prend la valeur absolue de la Source et stocke le résultat dans la Destination.

Opérandes :

Logique à relais

Texte structuré

Utilisez ABS comme une fonction. Cette expression calcule la valeur absolue de source et enregistre le résultat dans dest.

Pour plus d’informations sur la syntaxe des expressions du texte structuré, voir Annexe C, Programmation en texte structuré.

Bloc fonctionnel

Opérande Type Format Description

Source SINT

INT

DINT

REAL

immédiat

point

valeur de laquelle prendre la valeur absolue

Un point SINT ou INT est converti en valeur DINT par extension de signe.

Destination SINT

INT

DINT

REAL

point point pour le stockage du résultat

Opérande Type Format Description

point ABS FBD_MATH_ADVANCED structure structure ABS

dest := ABS(source);

Publication 1756-RM003K-FR-P – Juillet 2008 277

Page 278: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 6 Instructions de calcul/mathématiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Structure FBD_MATH_ADVANCED

Description : L’instruction ABS prend la valeur absolue de la Source et stocke le résultat dans la Destination.

Indicateurs d’état arithmétique : Les indicateurs d’état arithmétique sont affectés.

Conditions d’erreur : Aucune

Exécution :

Logique à relais

Bloc fonctionnel

Paramètre d’entrée Type de données Description

EnableIn BOOL Entrée activée. Si désactivé, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Réglage par défaut activé.

Source REAL Valeur de laquelle prendre la valeur absolue.

Valable = toute valeur en virgule flottante

Paramètre de sortie Type de données Description

EnableOut BOOL L’instruction a produit un résultat valable.

Dest REAL Résultat de l’instruction mathématique. Les indicateurs d’état arithmétiques sont activés pour cette sortie.

Condition Action

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai Destination = | Source |

L’état de sortie de la ligne est réglé sur vrai.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

Condition Action

Pré-scrutation Aucune.

Première scrutation de l’instruction Aucune.

Première exécution de l’instruction Aucune.

EnableIn est effacé EnableOut est effacé.

EnableIn est activé L’instruction est exécutée.

EnableOut est activé.

Post-scrutation Aucune.

278 Publication 1756-RM003K-FR-P – Juillet 2008

Page 279: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de calcul/mathématiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS) Chapitre 6

Exemple : Placer la valeur absolue de value_1 dans value_1_absolute. Dans cet exemple, la valeur absolue de quatre négatif est quatre positif.

Logique à relais

Texte structuré

value_1_absolute := ABS(value_1);

Bloc fonctionnel

Publication 1756-RM003K-FR-P – Juillet 2008 279

Page 280: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 6 Instructions de calcul/mathématiques (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Notes :

280 Publication 1756-RM003K-FR-P – Juillet 2008

Page 281: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 7

Instructions de transfert/logiques(MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Introduction Vous pouvez mélanger des types de données ; cependant des erreurs de précision et un arrondissement des valeurs peuvent se produire et l’instruction est plus longue à exécuter. Vérifiez le bit S:V pour voir si le résultat a été tronqué.

Pour les instructions de logique à relais, les types de données en gras indiquent les types de données optimaux. Une instruction est exécutée plus rapidement et demande moins de mémoire si tous les opérandes de l’instruction utilisent le même type de données optimal, généralement DINT ou REAL.

Les instructions de transfert modifient et déplacent les bits.

Si vous voulez Utilisez cette instruction Disponible dans ces langages Voir page

copier une valeur MOV Logique à relais

Texte structuré(1)

283

copier une partie spécifique d’un nombre entier MVM Logique à relais 285

copier une partie spécifique d’un nombre entier dans un bloc fonctionnel

MVMT Texte structuré

Bloc fonctionnel

288

transférer des bits à l’intérieur d’un nombre entier ou entre des nombres entiers

BTD Logique à relais 292

déplacer des bits dans un nombre entier ou entre des nombres entiers dans un bloc fonctionnel

BTDT Texte structuré

Bloc fonctionnel

295

effacer une valeur CLR Texte structuré(1)

Logique à relais

298

réarranger les octets d’un point INT, DINT ou REAL

SWPB Logique à relais

Texte structuré

300

(1) Il n’y a pas d’instruction en texte structuré équivalente. Utilisez une autre programmation en texte structuré pour obtenir le même résultat. Voir la description de l’instruction.

Publication 1756-RM003K-FR-P – Juillet 2008 281

Page 282: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 7 Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Les instructions logiques effectuent des opérations sur les bits.

Si vous voulez faire : Utilisez cette instruction :

Disponible dans ces langages Voir page

une opération ET sur bits ET sur bits

&(1)

Logique à relais

Texte structuré(2)

Bloc fonctionnel

304

une opération OU sur bits OU sur bits Logique à relais

Texte structuré(2)

Bloc fonctionnel

307

une opération OU exclusif sur bits XOR sur bits Logique à relais

Texte structuré(2)

Bloc fonctionnel

310

une opération NON sur bits NON sur bits Logique à relais

Texte structuré(2)

Bloc fonctionnel

313

une opération ET logique sur un maximum de huit entrées booléennes

ET booléen (BAND) Texte structuré(2)

Bloc fonctionnel

316

une opération OU logique sur un maximum de huit entrées booléennes

OU booléen (BOR) Texte structuré(2)

Bloc fonctionnel

319

une opération OU exclusive sur deux entrées booléennes

OU exclusif booléen (BXOR) Texte structuré(2)

Bloc fonctionnel

322

complémenter une entrée booléenne NON booléen (BNOT) Texte structuré(2)

Bloc fonctionnel

325

(1) Texte structuré uniquement.

(2) En texte structuré, les opérations ET, OU, XOR et NON peuvent être sur bits ou logiques.

282 Publication 1756-RM003K-FR-P – Juillet 2008

Page 283: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Chapitre 7

Transfert (MOV) L’instruction MOV copie la Source vers la Destination. La Source reste inchangée.

Opérandes :

Logique à relais

Texte structuré

Utilisez une affectation « := » avec une expression. Cette affectation transfert la valeur de source vers dest.

Pour plus d’informations sur la syntaxe des affectations et des expressions du texte structuré, voir Annexe C, Programmation en texte structuré.

Description : L’instruction MOV copie la Source vers la Destination. La Source reste inchangée.

Indicateurs d’état arithmétique : Les indicateurs d’état arithmétique sont affectés.

Conditions d’erreur : Aucune

Opérande Type Format Description

Source SINT

INT

DINT

REAL

immédiat

point

valeur à transférer (copier)

Un point SINT ou INT est converti en valeur DINT par extension de signe.

Destination SINT

INT

DINT

REAL

point point pour le stockage du résultat

dest := source;

Publication 1756-RM003K-FR-P – Juillet 2008 283

Page 284: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 7 Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Exécution :

Exemple : Transférer les données de value_1 vers value_2.

Logique à relais

Texte structuré

value_2 := value _1;

Condition Action logique à relais

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai L’instruction copie la Source dans la Destination.

L’état de sortie de la ligne est réglé sur vrai.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

284 Publication 1756-RM003K-FR-P – Juillet 2008

Page 285: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Chapitre 7

Transfert avec masque (MVM)

L’instruction MVM copie la Source vers une Destination et permet de masquer une partie des données.

Cette instruction est disponible en texte structuré et en bloc fonctionnel sous le nom MVMT, voir page 288.

Opérandes :

Logique à relais

Texte structuré

Cette instruction est disponible en texte structuré sous le nom MVMT. Ou vous pouvez combiner la logique sur bits avec une expression et affecter le résultat à la destination. L’expression effectue un transfert avec masque sur Source.

Pour plus d’informations sur la syntaxe des affectations et des expressions du texte structuré, voir Annexe C, Programmation en texte structuré.

Description : L’instruction MVM utilise un masque pour passer ou bloquer les bits de données Source. Un « 1 » dans le masque signifie que le bit de données est passé. Un « 0 » dans le masque signifie que le bit de données est bloqué.

Si vous mélangez des types d’entiers, l’instruction écrit des 0 dans les bits de poids fort des entiers de taille inférieure, pour qu’ils aient la même taille que les entiers de grande taille.

Opérande Type Format Description

Source SINT

INT

DINT

immédiat

point

valeur à transférer

Un point SINT ou INT est converti en valeur DINT par remplissage de zéros.

Masque SINT

INT

DINT

immédiat

point

bits à bloquer ou à passer

Un point SINT ou INT est converti en valeur DINT par remplissage de zéros.

Destination SINT

INT

DINT

point point pour le stockage du résultat

dest := (Dest AND NOT (Mask))OR (Source AND Mask);

Publication 1756-RM003K-FR-P – Juillet 2008 285

Page 286: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 7 Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Entrée d’une valeur de masque immédiate

Lorsque vous entrez un masque, le logiciel de programmation passe à des valeurs décimales par défaut. Si vous voulez entrer un masque à l’aide d’un autre format, faites précéder la valeur du préfixe correct.

Indicateurs d’état arithmétique Les indicateurs d’état arithmétique sont affectés.

Conditions d’erreur Aucune

Exécution :

Préfixe Description

16# hexadécimal

par exemple ; 16#0F0F

8# octal

par exemple ; 8#16

2# binaire

par exemple ; 2#00110011

Condition Action logique à relais

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai L’instruction passe la Source par le masque et copie le résultat dans la Destination. Les bits non masqués de la Destination restent inchangés.

L’état de sortie de la ligne est réglé sur vrai.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

286 Publication 1756-RM003K-FR-P – Juillet 2008

Page 287: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Chapitre 7

Exemple : Copier les données de value_a vers value_b, tout en autorisant les données à être masquées (un 0 masque les données de value_a).

Logique à relais

Texte structuré

value_b := (value_b AND NOT (mask_2)) OR(value_a AND mask_2);

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0

0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1

Les parties grisées montrent les bits qui ont changé dans value_b.

Publication 1756-RM003K-FR-P – Juillet 2008 287

Page 288: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 7 Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Transfert masqué avec cible (MVMT)

L’instruction MVMT copie d’abord la Cible (consigne) vers la Destination. Elle compare ensuite la Source masquée à la Destination et applique les changements nécessaires à la Destination. La Cible et la Source ne sont pas modifiées.

Cette instruction est disponible en logique à relais sous le nom MVM, voir page 285.

Opérandes :

Texte structuré

Bloc fonctionnel

Structure FBD_MASKED_MOVE

Variable Type Format Description

point MVMT FBD_MASKED_MOVE structure structure MVMT

Opérande Type Format Description

point MVMT FBD_MASKED_MOVE structure structure MVMT

MVMT(MVMT_tag);

Paramètre d’entrée Type de données

Description

EnableIn BOOL Bloc fonctionnel

Si effacé, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Lorsqu’activé, l’instruction est exécutée.

Réglage par défaut activé.

Texte structuré

Pas d’effet. L’instruction est exécutée.

Source DINT Valeur d’entrée à transférer vers la Destination en fonction de la valeur du Masque.

Valable = tout nombre entier

Masque DINT Masque de bits à transférer de Source vers Dest. Pour tous les bits réglés sur 1, les bits correspondant sont transférés de Source vers Dest. Pour tous les bits réglés sur 0, les bits correspondant ne sont pas transférés de Source vers Dest.

Valable = tout nombre entier

Cible DINT Valeur d’entrée à transférer vers Dest avant de transférer les bits de Source à travers le Masque.

Valable = tout nombre entier

288 Publication 1756-RM003K-FR-P – Juillet 2008

Page 289: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Chapitre 7

Description : Lorsqu’elle est activée, l’instruction MVMT utilise un masque pour passer ou bloquer les bits de données Source. Un « 1 » dans le masque signifie que le bit de données est passé. Un « 0 » dans le masque signifie que le bit de données est bloqué.

Si vous mélangez des types d’entiers, l’instruction écrit des 0 dans les bits de poids fort des entiers de taille inférieure, pour qu’ils aient la même taille que les entiers de grande taille.

Entrée d’une valeur de masque immédiate à l’aide d’une référence d’entrée

Lorsque vous entrez un masque, le logiciel de programmation passe à des valeurs décimales par défaut. Si vous voulez entrer un masque à l’aide d’un autre format, faites précéder la valeur du préfixe correct.

Indicateurs d’état arithmétique : Les indicateurs d’état arithmétique sont affectés.

Conditions d’erreur : Aucune

Paramètre de sortie Type de données

Description

EnableOut BOOL L’instruction a produit un résultat valable.

Dest DINT Résultat d’une instruction de transfert avec masque. Les indicateurs d’état arithmétiques sont activés pour cette sortie.

Préfixe Description

16# hexadécimal

par exemple ; 16#0F0F

8# octal

par exemple ; 8#16

2# binaire

par exemple ; 2#00110011

Publication 1756-RM003K-FR-P – Juillet 2008 289

Page 290: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 7 Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Exécution :

Condition Action bloc fonctionnel Action texte structuré

Pré-scrutation Aucune. Aucune.

Première scrutation de l’instruction

Aucune. Aucune.

Première exécution de l’instruction

Aucune. Aucune.

EnableIn est effacé EnableOut est effacé, l’instruction ne fait rien et les sorties ne sont pas actualisées.

EnableIn est activé L’instruction est exécutée.

EnableOut est activé.

EnableIn est toujours activé.

L’instruction est exécutée.

Post-scrutation Aucune. Aucune.

290 Publication 1756-RM003K-FR-P – Juillet 2008

Page 291: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Chapitre 7

Exemple : 1. Copier Target (cible) dans Dest.

2. Masquer Source et la comparer avec Dest. Tous les changements nécessaires sont faits dans Dest. Source et Cible restent inchangées. Un 0 dans le masque empêche l’instruction de comparer ce bit (indiqué par x dans l’exemple).

Texte structuré

MVMT_01.Source := value _1;

MVMT_01.Mask := mask1;

MVMT_01.Target := target;

MVMT(MVMT_01);

value_masked := MVMT_01.Dest;

Bloc fonctionnel

Target 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Dest 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Source 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

Mask1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0

Dest 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1

Les parties grisées montrent les bits qui ont changé.

Publication 1756-RM003K-FR-P – Juillet 2008 291

Page 292: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 7 Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Répartition champ de bits (BTD)

L’instruction BTD copie les bits spécifiés de la Source, les place dans la position appropriée et les écrit dans la Destination.

Cette instruction est disponible en texte structuré et en bloc fonctionnel sous le nom BTDT, voir page 295.

Opérandes :

Logique à relais

Description : Lorsqu’elle est activée, l’instruction BTD copie un groupe de bits de la Source vers la Destination. Le groupe de bits est identifié par le bit Source (bit de poids faible du groupe) et la Longueur (nombre de bits à copier). Le bit de Destination identifie le bit de poids faible par lequel commencer dans la Destination. La Source reste inchangée.

Si la longueur du champ de bit dépasse la Destination, l’instruction n’enregistre pas les bits supplémentaires. Ces bits ne passent pas au mot suivant.

Si vous mélangez des types d’entiers, l’instruction écrit des 0 dans les bits de poids fort des entiers de taille inférieure, pour qu’ils aient la même taille que les entiers de grande taille.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Opérande Type Format Description

Source SINT

INT

DINT

immédiat

point

point qui contient les bits à transférer

Un point SINT ou INT est converti en valeur DINT par remplissage de zéros.

Bit source DINT immédiat

(0 – 31 DINT)(0 – 15 INT)(0 – 7 SINT)

numéro du bit (bit de poids faible) à partir duquel commencer le transfert

doit être dans la plage valable du type de données Source

Destination SINT

INT

DINT

point point vers lequel transférer les bits

Bit destination

DINT immédiat

(0 – 31 DINT)(0 – 15 INT)(0 – 7 SINT)

numéro du bit (bit de poids faible) à partir duquel commencer la copie de bits Source

doit être dans la plage valable du type de données Destination

Longueur DINT immédiat (1 – 32)

nombre de bits à transférer

292 Publication 1756-RM003K-FR-P – Juillet 2008

Page 293: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Chapitre 7

Exécution :

Exemple 1 : Lorsqu’elle est activée, l’instruction BTD transfère les bits dans value_1.

Condition Action logique à relais

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai L’instruction copie et déplace les bits de Source vers la Destination.

L’état de sortie de la ligne est réglé sur vrai.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

value_1avant l’instruction BTD

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0

value_1après l’instruction BTD

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Les parties grisées montrent les bits qui ont changé dans value_1.

Bit sourceBit destination

Publication 1756-RM003K-FR-P – Juillet 2008 293

Page 294: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 7 Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Exemple 2 : Lorsqu’elle est activée, l’instruction BTD transfère 10 bits de value_1 vers value_2.

value_1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

value_2avant l’instruction BTD

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

value_2après l’instruction BTD

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0

Les parties grisées montrent les bits qui ont changé dans value_2.

Bit source

Bit destination

294 Publication 1756-RM003K-FR-P – Juillet 2008

Page 295: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Chapitre 7

Répartition champ de bits avec cible (BTDT)

L’instruction BTDT copie d’abord la Cible vers la Destination. L’instruction copie ensuite les bits spécifiés de la Source, les place dans la position appropriée et les écrit dans la Destination. La Cible et la Source ne sont pas modifiées.

Cette instruction est disponible en logique à relais sous le nom BTD, voir page 292.

Opérandes :

Texte structuré

Bloc fonctionnel

Structure FBD_BIT_FIELD_DISTRIBUTE

Variable Type Format Description

point BTDT FBD_BIT_FIELD_DISTRIBUTE structure structure BTDT

Opérande Type Format Description

point BTDT FBD_BIT_FIELD_DISTRIBUTE structure structure BTDT

BTDT(BTDT_tag);

Paramètre d’entrée Type de données

Description

EnableIn BOOL Bloc fonctionnel :

Si désactivé, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Lorsqu’activé, l’instruction est exécutée.

Réglage par défaut activé.

Texte structuré :

Pas d’effet. L’instruction est exécutée.

Source DINT Valeur d’entrée contenant les bits à transférer vers la Destination.

Valable = tout nombre entier

SourceBit DINT La position du bit dans Source (le bit de poids faible à partir duquel commencer le transfert).

Valable = 0 – 31

Longueur DINT Nombre de bits à transférer

Valable = 1 – 32

DestBit DINT La position du bit dans Dest (le bit de poids faible à partir duquel commencer à copier des bits).

Valable = 0 – 31

Publication 1756-RM003K-FR-P – Juillet 2008 295

Page 296: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 7 Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Description : Lorsqu’elle est activée, l’instruction BTD copie un groupe de bits de la Source vers la Destination. Le groupe de bits est identifié par le bit Source (bit de poids faible du groupe) et la Longueur (nombre de bits à copier). Le bit de Destination identifie le bit de poids faible par lequel commencer dans la Destination. La Source reste inchangée.

Si la longueur du champ de bit dépasse la Destination, l’instruction n’enregistre pas les bits supplémentaires. Ces bits ne passent pas au mot suivant.

Indicateurs d’état arithmétique : Les indicateurs d’état arithmétique sont affectés.

Conditions d’erreur : Aucune

Exécution :

Cible DINT Valeur d’entrée à transférer vers Dest avant de transférer les bits à partir de la Source.

Valable = tout nombre entier

Paramètre de sortie Type de données

Description

EnableOut BOOL L’instruction a produit un résultat valable.

Dest DINT Résultat de l’opération de transfert de bit. Les indicateurs d’état arithmétiques sont activés pour cette sortie.

Paramètre d’entrée Type de données

Description

Condition Action bloc fonctionnel Action texte structuré

Pré-scrutation Aucune. Aucune.

Première scrutation de l’instruction

Aucune. Aucune.

Première exécution de l’instruction

Aucune. Aucune.

EnableIn est effacé EnableOut est effacé, l’instruction ne fait rien et les sorties ne sont pas actualisées.

EnableIn est activé L’instruction est exécutée.

EnableOut est activé.

EnableIn est toujours activé.

L’instruction est exécutée.

Post-scrutation Aucune. Aucune.

296 Publication 1756-RM003K-FR-P – Juillet 2008

Page 297: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Chapitre 7

Exemple : 1. L’automate copie la Cible dans Dest.

2. SourceBit et Length spécifient quel bits de Source sont copiés dans Dest, en commençant par DestBit. Source et Cible ne sont pas modifiées.

Texte structuré

BTDT_01.Source := source;

BTDT_01.SourceBit := source_bit;

BTDT_01.Length := length;

BTDT_01.DestBit := dest_bit;

BTDT_01.Target := target;

BTDT(BTDT_01);

distributed_value := BTDT_01.Dest;

Bloc fonctionnel

Cible 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0

Dest 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0

Source 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0

Dest 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

SourceBitDestBit

Publication 1756-RM003K-FR-P – Juillet 2008 297

Page 298: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 7 Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Effacer (CLR) L’instruction CLR efface tous les bits de la Destination.

Opérandes :

Logique à relais

Texte structuré

Le texte structuré n’a pas d’instruction CLR. A la place, affectez un 0 au point que vous voulez effacer. Cette instruction d’affectation efface dest.

Pour plus d’informations sur la syntaxe des affectations et des expressions du texte structuré, voir Annexe C, Programmation en texte structuré.

Description : L’instruction CLR efface tous les bits de la Destination.

Indicateurs d’état arithmétique : Les indicateurs d’état arithmétique sont affectés.

Conditions d’erreur : Aucune

Exécution :

Opérande Type Format Description

Destination SINT

INT

DINT

REAL

point point à effacer

dest := 0;

Condition Action logique à relais

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai L’instruction efface la Destination.

L’état de sortie de la ligne est réglé sur vrai.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

298 Publication 1756-RM003K-FR-P – Juillet 2008

Page 299: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Chapitre 7

Exemple : Mettre tous les bits de value à 0.

Logique à relais

Texte structuré

value := 0;

Publication 1756-RM003K-FR-P – Juillet 2008 299

Page 300: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 7 Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Permutation d’octet (SWPB)

L’instruction SWPB réarrange les octets d’une valeur.

Opérandes :

Logique à relais

Texte structuré

Les opérandes sont identiques à ceux de l’instruction SWPB en logique à relais. Si vous sélectionnez le mode HIGH/LOW, entrez-le ainsi : HIGHLOW ou HIGH_LOW (sans la barre oblique).

Opérande Type Format Entrez

Source INT

DINT

REAL

point point qui contient les octets que vous voulez réarranger

Mode Ordre Si la source est un

Et que vous voulez mettre les octets dans cette configuration (chaque lettre représente un octet différent)

Sélectionnez

INT – n’importe quelle option

DINT

REAL

ABCD ⇒ DCBA REVERSE (ou entrez 0)

ABCD ⇒ CDAB WORD (ou entrez 1)

ABCD ⇒ BADC HIGH/LOW (ou entrez 2)

Destination INT

DINT

REAL

point point qui stocke les octets dans le nouvel ordre

Si la source est un

La destination doit être un

INT INT

DINT

DINT DINT

REAL REAL

SWPB(Source,OrderMode,Dest);

300 Publication 1756-RM003K-FR-P – Juillet 2008

Page 301: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Chapitre 7

Description : L’instruction SWPB réorganise l’ordre des octets de la Source. Elle place le résultat dans la Destination.

Lorsque vous lisez ou écrivez des caractères ASCII, vous n’avez généralement pas besoin de permuter les caractères. Les instructions de lecture et d’écriture ASCII (ARD, ARL, AWA, AWT) permutent automatiquement les caractères, comme illustré ci-dessous.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Exécution :

42969

42968

B A Nom du point Valeur Style Type

bar_code[0] AB ASCII INT

A B

lecteur de code à barres

Condition Action logique à relais Action texte structuré

Pré-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

L’état d’entrée de la ligne est faux

L’état de sortie de la ligne est réglé sur faux. –

L’état d’entrée de la ligne est vrai

L’état de sortie de la ligne est réglé sur vrai. –

EnableIn est activé – EnableIn est toujours activé.

L’instruction est exécutée.

Exécution de l’instruction L’instruction réorganise les octets spécifiés. L’instruction réorganise les octets spécifiés.

Post-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

Publication 1756-RM003K-FR-P – Juillet 2008 301

Page 302: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 7 Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Exemple 1 : Chacune des trois instructions SWPB réorganise les octets de DINT_1 selon un ordre différent. L’affichage est de style ASCII et chaque caractère représente un octet. Chaque instruction place les octets, dans le nouvel ordre, dans une Destination différente.

Logique à relais

Texte structuré

SWPB(DINT_1,REVERSE,DINT_1_reverse);

SWPB(DINT_1,WORD,DINT_1_swap_word);

SWPB(DINT_1,HIGHLOW,DINT_1_swap_high_low);

Exemple 2 : L’exemple suivant inverse les octets dans chaque élément d’un tableau. Pour un projet RSLogix 5000 qui contient cet exemple, ouvrez le dossier RSLogix 5000\Projects\Samples, fichier Swap_Bytes_in_Array.ACD.

1. Initialisez les points. L’instruction SIZE trouve le nombre d’éléments dans array et stocke cette valeur dans array_length. Une instruction suivante utilise cette valeur pour déterminer quand le sous-programme a eu une action sur tous les éléments dans le tableau.

2. Inversez les octets d’un élément dans array.

• L’instruction SWPB inverse les octets du numéro d’élément qui est indiqué par la valeur de index. Par exemple, lorsque index est égal à 0, l’instruction SWPB agit sur array[0].

• L’instruction ADD incrémente index. A l’exécution suivante de l’instruction, l’instruction SWPB agit sur l’élément suivant dans array.

3. Déterminez quand l’instruction SWPB a eu une action sur tous les éléments dans le tableau.

• Si index est inférieur au nombre d’éléments dans le tableau (array_length), poursuivez avec l’élément suivant dans le tableau.

• Si index est égal à array_length, l’instruction SWPB a agi sur tous les éléments du tableau.

302 Publication 1756-RM003K-FR-P – Juillet 2008

Page 303: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Chapitre 7

Logique à relais

Texte structuré

index := 0;

SIZE (array[0],0,array_length);

REPEAT

SWPB(array[index],REVERSE,array_bytes_reverse[index]);

index := index + 1;

UNTIL(index >= array_length)END_REPEAT;

Initialiser les points.

Inverser les octets.

Déterminer si l’instruction SWPB a eu une action sur tous les éléments dans le tableau.

Publication 1756-RM003K-FR-P – Juillet 2008 303

Page 304: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 7 Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

ET sur bits (AND) L’instruction AND effectue une opération ET à l’aide des bits dans Source A et Source B et stocke le résultat dans la Destination.

Pour effectuer une opération ET logique, voir page 316.

Opérandes :

Logique à relais

Texte structuré

Utilisez ET ou le signe « & » comme opérateur dans une expression. Cette expression évalue sourceA ET sourceB.

Pour plus d’informations sur la syntaxe des expressions du texte structuré, voir Annexe C, Programmation en texte structuré.

Bloc fonctionnel

Opérande Type Format Description

Source A SINT

INT

DINT

immédiat

point

valeur utilisée par l’instruction AND avec Source B

Un point SINT ou INT est converti en valeur DINT par remplissage de zéros.

Source B SINT

INT

DINT

immédiat

point

valeur utilisée par l’instruction AND avec Source A

Un point SINT ou INT est converti en valeur DINT par remplissage de zéros.

Destination SINT

INT

DINT

point stocke le résultat

Opérande Type Format Description

point AND FBD_LOGICAL structure structure AND

dest := sourceA AND sourceB

304 Publication 1756-RM003K-FR-P – Juillet 2008

Page 305: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Chapitre 7

Structure FBD_LOGICAL

Description : Lorsqu’elle est activée, l’instruction évalue l’opération ET :

Si vous mélangez des types d’entiers, l’instruction écrit des 0 dans les bits de poids fort des entiers de taille inférieure, pour qu’ils aient la même taille que les entiers de grande taille.

Indicateurs d’état arithmétique : Les indicateurs d’état arithmétique sont affectés.

Conditions d’erreur : Aucune

Exécution :

Logique à relais

Paramètre d’entrée Type de données

Description

EnableIn BOOL Entrée activée. Si désactivée, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Réglage par défaut activé.

SourceA DINT Valeur utilisée par l’instruction AND avec SourceB.

Valable = tout nombre entier

SourceB DINT Valeur utilisée par l’instruction AND avec SourceA.

Valable = tout nombre entier

Paramètre de sortie Type de données

Description

EnableOut BOOL L’instruction a produit un résultat valable.

Dest DINT Résultat de l’instruction. Les indicateurs d’état arithmétiques sont activés pour cette sortie.

Si le bit de Source A est

Si le bit de Source B est

Le bit de Destination est

0 0 0

0 1 0

1 0 0

1 1 1

Condition Action

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai L’instruction effectue une opération ET sur bits.

L’état de sortie de la ligne est réglé sur vrai.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

Publication 1756-RM003K-FR-P – Juillet 2008 305

Page 306: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 7 Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Bloc fonctionnel

Exemple : Lorsqu’elle est activée, l’instruction ET effectue une opération ET sur bits sur SourceA et SourceB et place le résultat dans Dest.

Logique à relais

Texte structuré

value_result_and := value_1 AND value_2;

Bloc fonctionnel

Condition Action

Pré-scrutation Aucune.

Première scrutation de l’instruction Aucune.

Première exécution de l’instruction Aucune.

EnableIn est effacé EnableOut est effacé.

EnableIn est activé L’instruction est exécutée.

EnableOut est activé.

Post-scrutation Aucune.

SourceA 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1

SourceB 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0

Dest 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0

306 Publication 1756-RM003K-FR-P – Juillet 2008

Page 307: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Chapitre 7

OU sur bits (OR) L’instruction OR effectue une opération OU à l’aide des bits dans Source A et Source B et stocke le résultat dans la Destination.

Pour effectuer une opération OU logique, voir page 319.

Opérandes :

Logique à relais

Texte structuré

Utilisez OR comme opérateur dans une expression. Cette expression évalue sourceA OU sourceB.

Pour plus d’informations sur la syntaxe des expressions du texte structuré, voir Annexe C, Programmation en texte structuré.

Bloc fonctionnel

Opérande Type Format Description

Source A SINT

INT

DINT

immédiat

point

valeur utilisée par l’instruction OR avec Source B

Un point SINT ou INT est converti en valeur DINT par remplissage de zéros.

Source B SINT

INT

DINT

immédiat

point

valeur utilisée par l’instruction OR avec Source A

Un point SINT ou INT est converti en valeur DINT par remplissage de zéros.

Destination SINT

INT

DINT

point stocke le résultat

Opérande Type Format Description

point OR FBD_LOGICAL structure structure OR

dest := sourceA OR sourceB

Publication 1756-RM003K-FR-P – Juillet 2008 307

Page 308: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 7 Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Structure FBD_LOGICAL

Description : Lorsqu’elle est activée, l’instruction évalue l’opération OU :

Si vous mélangez des types d’entiers, l’instruction écrit des 0 dans les bits de poids fort des entiers de taille inférieure, pour qu’ils aient la même taille que les entiers de grande taille.

Indicateurs d’état arithmétique Les indicateurs d’état arithmétique sont affectés.

Conditions d’erreur : Aucune

Exécution :

Logique à relais

Paramètre d’entrée Type de données

Description

EnableIn BOOL Entrée activée. Si désactivée, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Réglage par défaut activé.

SourceA DINT Valeur utilisée par l’instruction OR avec SourceB.

Valable = tout nombre entier

SourceB DINT Valeur utilisée par l’instruction OR avec SourceA.

Valable = tout nombre entier

Paramètre de sortie Type de données

Description

EnableOut BOOL L’instruction a produit un résultat valable.

Dest DINT Résultat de l’instruction. Les indicateurs d’état arithmétiques sont activés pour cette sortie.

Si le bit de Source A est

Si le bit de Source B est

Le bit de Destination est

0 0 0

0 1 1

1 0 1

1 1 1

Condition Action

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai L’instruction effectue une opération OU sur bits.

L’état de sortie de la ligne est réglé sur vrai.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

308 Publication 1756-RM003K-FR-P – Juillet 2008

Page 309: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Chapitre 7

Bloc fonctionnel

Exemple : Lorsqu’elle est activée, l’instruction OU effectue une opération OU sur bits sur SourceA et SourceB et place le résultat dans Dest.

Logique à relais

Texte structuré

value_result_or := value_1 OR value_2;

Bloc fonctionnel

Condition Action

Pré-scrutation Aucune.

Première scrutation de l’instruction Aucune.

Première exécution de l’instruction Aucune.

EnableIn est effacé EnableOut est effacé.

EnableIn est activé L’instruction est exécutée.

EnableOut est activé.

Post-scrutation Aucune.

SourceA 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1

SourceB 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0

Dest 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1

Publication 1756-RM003K-FR-P – Juillet 2008 309

Page 310: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 7 Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

OU exclusif sur bits (XOR) L’instruction XOR effectue une opération OU exclusif sur bits à l’aide des bits dans Source A et Source B et stocke le résultat dans la Destination.

Pour effectuer une opération XOR logique, voir page 322.

Opérandes :

Logique à relais

Texte structuré

Utilisez XOR comme opérateur dans une expression. Cette expression évalue sourceA OU exclusif sourceB.

Pour plus d’informations sur la syntaxe des expressions du texte structuré, voir Annexe C, Programmation en texte structuré.

Bloc fonctionnel

Opérande Type Format Description

Source A SINT

INT

DINT

immédiat

point

valeur utilisée par l’instruction XOR avec Source B

Un point SINT ou INT est converti en valeur DINT par remplissage de zéros.

Source B SINT

INT

DINT

immédiat

point

valeur utilisée par l’instruction XOR avec Source A

Un point SINT ou INT est converti en valeur DINT par remplissage de zéros.

Destination SINT

INT

DINT

point stocke le résultat

Opérande Type Format Description

point XOR FBD_LOGICAL structure structure XOR

dest := sourceA XOR sourceB

310 Publication 1756-RM003K-FR-P – Juillet 2008

Page 311: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Chapitre 7

Structure FBD_LOGICAL

Description : Lorsqu’elle est activée, l’instruction évalue l’opération XOR :

Si vous mélangez des types d’entiers, l’instruction écrit des 0 dans les bits de poids fort des entiers de taille inférieure, pour qu’ils aient la même taille que les entiers de grande taille.

Indicateurs d’état arithmétique Les indicateurs d’état arithmétique sont affectés.

Conditions d’erreur : Aucune

Exécution :

Logique à relais

Paramètre d’entrée Type de données

Description

EnableIn BOOL Entrée activée. Si désactivée, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Réglage par défaut activé.

SourceA DINT Valeur utilisée par l’instruction XOR avec SourceB.

Valable = tout nombre entier

SourceB DINT Valeur utilisée par l’instruction XOR avec SourceA.

Valable = tout nombre entier

Paramètre de sortie Type de données

Description

EnableOut BOOL L’instruction a produit un résultat valable.

Dest DINT Résultat de l’instruction. Les indicateurs d’état arithmétiques sont activés pour cette sortie.

Si le bit de Source A est

Si le bit de Source B est

Le bit de Destination est

0 0 0

0 1 1

1 0 1

1 1 0

Condition Action

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai L’instruction effectue une opération OU sur bits.

L’état de sortie de la ligne est réglé sur vrai.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

Publication 1756-RM003K-FR-P – Juillet 2008 311

Page 312: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 7 Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Bloc fonctionnel

Exemple : Lorsqu’elle est activée, l’instruction XOR effectue une opération XOR sur bits sur SourceA et SourceB et place le résultat dans le point de destination.

Logique à relais

Texte structuré

value_result_xor := value_1 XOR value_2;

Bloc fonctionnel

Condition Action

Pré-scrutation Aucune.

Première scrutation de l’instruction Aucune.

Première exécution de l’instruction Aucune.

EnableIn est effacé EnableOut est effacé.

EnableIn est activé L’instruction est exécutée.

EnableOut est activé.

Post-scrutation Aucune.

value_1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1

value_2 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0

value_result_xor 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1

312 Publication 1756-RM003K-FR-P – Juillet 2008

Page 313: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Chapitre 7

NON sur bits (NOT) L’instruction NOT effectue une opération NON à l’aide des bits de la Source et stocke le résultat dans la Destination.

Pour effectuer une opération NON logique, voir page 325.

Opérandes :

Logique à relais

Texte structuré

Utilisez NON comme opérateur dans une expression. Cette expression évalue NON source.

Pour plus d’informations sur la syntaxe des expressions du texte structuré, voir Annexe C, Programmation en texte structuré.

Bloc fonctionnel

Opérande Type Format Description

Source SINT

INT

DINT

immédiat

point

valeur de négation

Un point SINT ou INT est converti en valeur DINT par remplissage de zéros.

Destination SINT

INT

DINT

point stocke le résultat

Opérande Type Format Description

point NON FBD_LOGICAL structure structure NOT

dest := NOT source

Publication 1756-RM003K-FR-P – Juillet 2008 313

Page 314: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 7 Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Structure FBD_LOGICAL

Description : Lorsqu’elle est activée, l’instruction évalue l’opération NON :

Si vous mélangez des types d’entiers, l’instruction écrit des 0 dans les bits de poids fort des entiers de taille inférieure, pour qu’ils aient la même taille que les entiers de grande taille.

Indicateurs d’état arithmétique : Les indicateurs d’état arithmétique sont affectés.

Conditions d’erreur : Aucune

Exécution :

Logique à relais

Paramètre d’entrée Type de données

Description

EnableIn BOOL Entrée activée. Si désactivée, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Par défaut activé

Source DINT Valeur de négation.

Valable = tout nombre entier

Paramètre de sortie Type de données

Description

EnableOut BOOL L’instruction a produit un résultat valable.

Dest DINT Résultat de l’instruction. Les indicateurs d’état arithmétiques sont activés pour cette sortie.

Si le bit de la Source est

Le bit de Destination est

0 1

1 0

Condition Action

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai L’instruction effectue une opération NON sur bits.

L’état de sortie de la ligne est réglé sur vrai.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

314 Publication 1756-RM003K-FR-P – Juillet 2008

Page 315: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Chapitre 7

Bloc fonctionnel

Exemple : Lorsqu’elle est activée, l’instruction NON effectue une opération NON sur bits sur Source et place le résultat dans Dest.

Logique à relais

Texte structuré

value_result_not := NOT value_1;

Bloc fonctionnel

Condition Action

Pré-scrutation Aucune.

Première scrutation de l’instruction Aucune.

Première exécution de l’instruction Aucune.

EnableIn est effacé EnableOut est effacé.

EnableIn est activé L’instruction est exécutée.

EnableOut est activé.

Post-scrutation Aucune.

value_1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1

value_result_not 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0

Publication 1756-RM003K-FR-P – Juillet 2008 315

Page 316: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 7 Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

ET booléen (BAND) L’instruction BAND effectue une opération ET logique sur un maximum de 8 entrées booléennes.

Pour effectuer une opération ET sur bits, voir page 304.

Opérandes :

Texte structuré

Utilisez ET ou le signe « & » comme opérateur dans une expression. Les opérandes doivent être des valeurs ou expressions BOOL qui évaluent les valeurs BOOL. Cette expressions évalue si operandA et operandB sont tous deux activés (vrais).

Pour plus d’informations sur la syntaxe des expressions du texte structuré, voir Annexe B.

Bloc fonctionnel

Structure FBD_BOOLEAN_AND

Opérande Type Format Description

point BAND FBD_BOOLEAN_AND structure structures BAND

IF operandA AND operandB THEN

<déclaration>;

END_IF;

Paramètre d’entrée Type de données

Description

EnableIn BOOL Entrée activée. Si désactivée, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Réglage par défaut activé.

In1 BOOL Première entrée booléenne.

Réglage par défaut activé.

In2 BOOL Deuxième entrée booléenne.

Réglage par défaut activé.

In3 BOOL Troisième entrée booléenne.

Réglage par défaut activé.

In4 BOOL Quatrième entrée booléenne.

Réglage par défaut activé.

In5 BOOL Cinquième entrée booléenne.

Réglage par défaut activé.

In6 BOOL Sixième entrée booléenne.

Réglage par défaut activé.

In7 BOOL Septième entrée booléenne.

Réglage par défaut activé.

316 Publication 1756-RM003K-FR-P – Juillet 2008

Page 317: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Chapitre 7

Description : L’instruction BAND effectue une opération ET sur un maximum de huit entrées booléennes. Si une entrée n’est pas utilisée, elle est activée (1) par défaut.

Sortie = In1 ET In2 ET In3 ET In4 ET In5 ET In6 ET In7 ET In8

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Exécution :

Exemple 1 : Cet exemple additionne (ET) bool_in1 et bool_in2 et place le résultat dans value_result_and.

Texte structuré

value_result_and := bool_in1 AND bool_in2;

In8 BOOL Huitième entrée booléenne.

Réglage par défaut activé.

Paramètre de sortie Type de données

Description

EnableOut BOOL Activation de la sortie.

Out BOOL La sortie de l’instruction.

Paramètre d’entrée Type de données

Description

Condition Action bloc fonctionnel

Pré-scrutation Aucune.

Première scrutation de l’instruction Aucune.

Première exécution de l’instruction Aucune.

EnableIn est effacé EnableOut est effacé.

EnableIn est activé L’instruction est exécutée.

EnableOut est activé.

Post-scrutation Aucune.

Si BOOL_IN1 est

Si BOOL_IN2 est

VALUE_RESULT_AND est

0 0 0

0 1 0

1 0 0

1 1 1

Publication 1756-RM003K-FR-P – Juillet 2008 317

Page 318: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 7 Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Bloc fonctionnel

Exemple 2 : Si bool_in1 et bool_in2 sont activés (vrais), light1 est activé (allumé). Autrement, light1 est désactivé (éteint).

Texte structuré

IF bool_in1 AND bool_in2 THEN

light1 := 1;

ELSE

light1 := 0;

END_IF;

318 Publication 1756-RM003K-FR-P – Juillet 2008

Page 319: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Chapitre 7

OU booléen (BOR) L’instruction BOR effectue une opération OU logique sur un maximum de huit entrées booléennes.

Pour effectuer une opération OU sur bits, voir page 307.

Opérandes :

Texte structuré

Utilisez OR comme opérateur dans une expression. Les opérandes doivent être des valeurs ou expressions BOOL qui évaluent les valeurs BOOL. Cette expressions évalue si operandA ou operandB, ou les deux sont activés (vrais).

Pour plus d’informations sur la syntaxe des expressions du texte structuré, voir Annexe B.

Bloc fonctionnel

Structure FBD_BOOLEAN_OR

Opérande Type Format Description

point BOR FBD_BOOLEAN_OR structure structure BOR

IF operandA OR operandB THEN

<déclaration>;

END_IF;

Paramètre d’entrée Type de données

Description

EnableIn BOOL Entrée activée. Si désactivée, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Réglage par défaut activé.

In1 BOOL Première entrée booléenne.

Réglage par défaut effacé.

In2 BOOL Deuxième entrée booléenne.

Réglage par défaut effacé.

In3 BOOL Troisième entrée booléenne.

Réglage par défaut effacé.

In4 BOOL Quatrième entrée booléenne.

Réglage par défaut effacé.

In5 BOOL Cinquième entrée booléenne.

Réglage par défaut effacé.

In6 BOOL Sixième entrée booléenne.

Réglage par défaut effacé.

In7 BOOL Septième entrée booléenne.

Réglage par défaut effacé.

Publication 1756-RM003K-FR-P – Juillet 2008 319

Page 320: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 7 Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Description : L’instruction BOR effectue une opération OU sur un maximum de huit entrées booléennes. Si une entrée n’est pas utilisée, elle est désactivée (0) par défaut.

Sortie = In1 OU In2 OU In3 OU In4 OU In5 OU In6 OU In7 OU In8

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Exécution :

Exemple 1 : Cet exemple effectue une opération OU sur bool_in1 et bool_in2 et place le résultat dans value_result_or.

Texte structuré

value_result_or := bool_in1 OR bool_in2;

In8 BOOL Huitième entrée booléenne.

Réglage par défaut effacé.

Paramètre de sortie Type de données

Description

EnableOut BOOL Activation de la sortie.

Out BOOL La sortie de l’instruction.

Paramètre d’entrée Type de données

Description

Condition Action bloc fonctionnel

Pré-scrutation Aucune.

Première scrutation de l’instruction Aucune.

Première exécution de l’instruction Aucune.

EnableIn est effacé EnableOut est effacé.

EnableIn est activé L’instruction est exécutée.

EnableOut est activé.

Post-scrutation Aucune.

Si BOOL_IN1 est

Si BOOL_IN2 est

VALUE_RESULT_OR est

0 0 0

0 1 1

1 0 1

1 1 1

320 Publication 1756-RM003K-FR-P – Juillet 2008

Page 321: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Chapitre 7

Bloc fonctionnel

Exemple 2 : Dans cet exemple, light1 est activé (allumé) si :

• uniquement bool_in1 est activé (vrai) ;

• uniquement bool_in2 est activé (vrai) ;

• bool_in1 et bool_in2 sont activés (vrais).

Autrement, light1 est effacé (éteint).

Texte structuré

IF bool_in1 OR bool_in2 THEN

light1 := 1;

ELSE

light1 := 0;

END_IF;

Publication 1756-RM003K-FR-P – Juillet 2008 321

Page 322: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 7 Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

OU exclusif booléen (BXOR)

L’instruction BXOR effectue une opération OU exclusive sur deux entrées booléennes.

Pour effectuer une opération XOR sur bits, voir page 310.

Opérandes :

Texte structuré

Utilisez XOR comme opérateur dans une expression. Les opérandes doivent être des valeurs ou expressions BOOL qui évaluent les valeurs BOOL. Cette expressions évalue si uniquement operandA ou uniquement operandB est activé (vrai).

Pour plus d’informations sur la syntaxe des expressions du texte structuré, voir Annexe B.

Bloc fonctionnel

Structure FBD_BOOLEAN_XOR

Description : L’instruction BXOR effectue une opération OU exclusive sur deux entrées booléennes.

Sortie = In1 XOR In2

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Opérande Type Format Description

point BXOR FBD_BOOLEAN_XOR structure structure BXOR

IF operandA XOR operandB THEN

<déclaration>;

END_IF;

Paramètre d’entrée Type de données

Description

EnableIn BOOL Entrée activée. Si désactivée, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Réglage par défaut activé.

In1 BOOL Première entrée booléenne.

Réglage par défaut effacé.

In2 BOOL Deuxième entrée booléenne.

Réglage par défaut effacé.

Paramètre de sortie Type de données

Description

EnableOut BOOL Activation de la sortie.

Out BOOL La sortie de l’instruction.

322 Publication 1756-RM003K-FR-P – Juillet 2008

Page 323: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Chapitre 7

Exécution :

Exemple 1 : Cet exemple effectue une opération OU exclusive sur bool_in1 et bool_in2 et place le résultat dans value_result_xor.

Texte structuré

value_result_xor := bool_in1 XOR bool_in2;

Bloc fonctionnel

Condition Action bloc fonctionnel

Pré-scrutation Aucune.

Première scrutation de l’instruction Aucune.

Première exécution de l’instruction Aucune.

EnableIn est effacé EnableOut est effacé.

EnableIn est activé L’instruction est exécutée.

EnableOut est activé.

Post-scrutation Aucune.

Si BOOL_IN1 est

Si BOOL_IN2 est

VALUE_RESULT_XOR est

0 0 0

0 1 1

1 0 1

1 1 0

Publication 1756-RM003K-FR-P – Juillet 2008 323

Page 324: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 7 Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Exemple 2 : Dans cet exemple, light1 est activé (allumé) si :

• uniquement bool_in1 est activé (vrai) ;

• uniquement bool_in2 est activé (vrai) ;

Autrement, light1 est effacé (éteint).

Texte structuré

IF bool_in1 XOR bool_in2 THEN

light1 := 1;

ELSE

light1 := 0;

END_IF;

324 Publication 1756-RM003K-FR-P – Juillet 2008

Page 325: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Chapitre 7

NON booléen (BNOT) L’instruction BNOT complète une entrée booléenne.

Pour effectuer une opération NON sur bits, voir page 313.

Opérandes :

Texte structuré

Utilisez NON comme opérateur dans une expression. L’opérande doit être une valeur ou expression BOOL qui évalue les valeurs BOOL. Cette expression évalue si operand est effacé (faux).

Pour plus d’informations sur la syntaxe des expressions du texte structuré, voir Annexe C, Programmation en texte structuré.

Bloc fonctionnel

Structure FBD_BOOLEAN_NOT

Description : L’instruction BNOT complémente une entrée booléenne.

Sortie = NOT In

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Opérande Type Format Description

point BNOT FBD_BOOLEAN_NOT structure structure BNOT

IF NOT operand THEN

<déclaration>;

END_IF;

Paramètre d’entrée Type de données

Description

EnableIn BOOL Entrée activée. Si désactivée, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Réglage par défaut activé.

In BOOL Entrée de l’instruction.

Réglage par défaut activé.

Paramètre de sortie Type de données

Description

EnableOut BOOL Activation de la sortie.

Out BOOL La sortie de l’instruction.

Publication 1756-RM003K-FR-P – Juillet 2008 325

Page 326: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 7 Instructions de transfert/logiques (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Exécution :

Exemple 1 : Cet exemple complète bool_in1 et place le résultat dans value_result_not.

Texte structuré

value_result_not := NOT bool_in1;

Bloc fonctionnel

Exemple 2 : Si bool_in1 est effacé, light1 est effacé (éteint). Autrement, light1 est activé (allumé).

Texte structuré

IF NOT bool_in1 THEN

light1 := 0;

ELSE

light1 := 1;

END_IF;

Condition Action bloc fonctionnel

Pré-scrutation Aucune.

Première scrutation de l’instruction Aucune.

Première exécution de l’instruction Aucune.

EnableIn est effacé EnableOut est effacé.

EnableIn est activé L’instruction est exécutée.

EnableOut est activé.

Post-scrutation Aucune.

Si BOOL_IN1 est VALUE_RESULT_NOT est

0 1

1 0

326 Publication 1756-RM003K-FR-P – Juillet 2008

Page 327: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 8

Instructions de tableau (fichier)/Instructions diverses(FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Introduction Les instructions de fichier/instructions diverses fonctionnent sur des tableaux de données.

Vous pouvez mélanger des types de données ; cependant des erreurs de précision et un arrondissement des valeurs peuvent se produire et l’instruction est plus longue à exécuter. Vérifiez le bit S:V pour voir si le résultat a été tronqué.

Pour les instructions de logique à relais, les types de données en gras indiquent les types de données optimaux. Une instruction est exécutée plus rapidement et demande moins de mémoire si tous les opérandes de l’instruction utilisent le même type de données optimal, généralement DINT ou REAL.

Si vous voulez Utilisez cette instruction Disponible dans ces langages Voir page

effectuer des opérations arithmétiques, logiques, de décalage et de fonction sur des valeurs de tableaux

FAL Logique à relais

Texte structuré(1)

333

chercher et comparer des valeurs de tableaux FSC Logique à relais 344

copier le contenu d’un tableau dans un autre COP Logique à relais

Texte structuré

352

copier le contenu d’un tableau dans un autre sans interruption

CPS Logique à relais

Texte structuré

352

remplir un tableau avec des données spécifiques

FLL Logique à relais

Texte structuré(1)

358

calculer la moyenne d’un tableau de valeurs AVE Logique à relais

Texte structuré(1)

362

classer une dimension de données de tableau en ordre croissant

SRT Logique à relais

Texte structuré

367

calculer l’écart type d’un tableau de valeurs STD Logique à relais

Texte structuré(1)

372

trouver la taille d’une dimension de tableau SIZE Logique à relais

Texte structuré

377

(1) Il n’y a pas d’instruction en texte structuré équivalente. Utilisez une autre programmation en texte structuré pour obtenir le même résultat. Voir la description de l’instruction.

Publication 1756-RM003K-FR-P – Juillet 2008 327

Page 328: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 8 Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Sélection du mode de fonctionnement

Pour les instructions FAL et FSC, le mode indique à l’automate comment distribuer l’opération de tableau.

Mode Tout

En mode Tout, tous les éléments spécifiés dans le tableau subissent l’opération avant de continuer avec l’instruction suivante. L’opération commence lorsque l’état d’entrée de la ligne de l’instruction passe de faux à vrai. La valeur de position (.POS) de la structure de contrôle indique l’élément du tableau actuellement utilisé par l’instruction. L’opération s’arrête lorsque la valeur .POS est égale à la valeur .LEN.

Si vous voulez Sélectionnez ce mode

opérer sur tous les éléments spécifiés dans un tableau avant de continuer avec l’instruction suivante

Tout

distribuer l’opération de tableau sur plusieurs scrutations

entrez le nombre d’éléments sur lesquels effectuer l’opération à chaque scrutation (1-2147483647)

Numérique

manipuler un élément du tableau chaque fois que l’état d’entrée de la ligne passe de faux à vrai

Incrémental

Tableau de données une scrutation

16639

328 Publication 1756-RM003K-FR-P – Juillet 2008

Page 329: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Chapitre 8

Le diagramme de temporisation ci-dessous indique la relation entre les bits d’état et le fonctionnement de l’instruction. Lorsque l’exécution de l’instruction est terminée, le bit .DN est activé. Les bits .DN et .EN, ainsi que la valeur .POS, sont effacés lorsque l’état d’entrée de la ligne est faux. A ce stade seulement une autre exécution de l’instruction peut être déclenchée par une transition faux-vrai de l’état d’entrée de la ligne.

Mode Numérique

Le mode Numérique répartit l’opération de tableau entre un certain nombre de scrutations. Ce mode est utile pour travailler avec des données sans temps critique ou avec de grandes quantités de données. Vous entrez le nombre d’éléments sur lesquels agir à chaque scrutation, ce qui réduit la durée de la scrutation.

unescrutation

opération terminée

efface les bits d’état et la valeur .POS

état d’entrée de la ligne

bit .EN

bit .DN

scrutation de l’instruction

40010aucune exécution

Publication 1756-RM003K-FR-P – Juillet 2008 329

Page 330: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 8 Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

L’exécution est déclenchée lorsque l’état d’entrée de la ligne passe de faux à vrai. Une fois déclenchée, l’instruction est exécutée continuellement chaque fois qu’elle est scrutée, pendant le nombre de scrutations nécessaires pour terminer l’opération sur le tableau entier. Une fois déclenchée, l’état d’entrée de la ligne peut changer plusieurs fois sans interrompre l’exécution de l’instruction.

Le diagramme de temporisation ci-dessous indique la relation entre les bits d’état et le fonctionnement de l’instruction. Lorsque l’exécution de l’instruction est terminée, le bit .DN est activé.

IMPORTANT Evitez d’utiliser les résultats d’une instruction de fichier fonctionnant en mode Numérique tant que le bit .DN n’est pas activé.

une scrutation

16641

deuxième scrutation

scrutation suivante

scrutations multiples

scrutations multiples

état d’entrée de la ligne

bit .EN

bit .DN

scrutation de l’instruction

efface les bits d’état et la valeur .POS

efface les bits d’état et la valeur .POS

La ligne est vraie à la fin de l’opération La ligne est fausse à la fin de l’opération

40013opération terminée opération terminée

330 Publication 1756-RM003K-FR-P – Juillet 2008

Page 331: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Chapitre 8

Si l’état d’entrée de la ligne est vrai à la fin de l’opération, les bits .EN et .DN sont activés jusqu’à ce que l’état d’entrée de la ligne passe à faux. Lorsque l’état d’entrée de la ligne passe à faux, ces bits et la valeur .POS sont effacés.

Si l’état d’entrée de la ligne est faux à la fin de l’opération, le bit .EN est immédiatement effacé. Une scrutation après l’effacement du bit .EN, le bit .DN et la valeur .POS sont effacés.

Mode incrémental

Le mode incrémental manipule un élément du tableau chaque fois que l’état d’entrée de la ligne de l’instruction passe de faux à vrai.

Le diagramme de temporisation ci-dessous indique la relation entre les bits d’état et le fonctionnement de l’instruction. L’exécution ne se produit que pendant une scrutation au cours de laquelle l’état d’entrée de la ligne passe de faux à vrai. Chaque fois que ceci se produit, un seul élément du tableau est manipulé. Si l’état d’entrée de la ligne reste vrai pendant plus d’une scrutation, l’instruction n’est exécutée que pendant la première scrutation.

����

16643

1e instruction d’activation2e instruction d’activation3e instruction d’activation

dernière instruction d’activation

unescrutation

état d’entrée de la ligne

bit .EN

bit .DN

scrutation de l’instruction

opérationterminée

efface les bits d’état et la valeur .POS

40014

Publication 1756-RM003K-FR-P – Juillet 2008 331

Page 332: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 8 Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Le bit .EN est activé lorsque l’état d’entrée de la ligne est vrai. Le bit .DN est activé lorsque le dernier élément du tableau a été manipulé. Lorsque le dernier élément a été manipulé et que l’état d’entrée de la ligne passe à faux, les bits .EN et .DN, ainsi que la valeur .POS, sont effacés.

Différence entre le mode Incrémental et Numérique au rythme d’un élément par scrutation :

• Le mode Numérique avec n’importe quel nombre d’éléments par scrutation ne requiert qu’une transition de faux à vrai de l’état d’entrée de la ligne pour commencer l’exécution. L’instruction continue d’exécuter le nombre d’éléments spécifié à chaque scrutation jusqu’à la fin, quel que soit l’état d’entrée de la ligne.

• Le mode Incrémental requiert que l’état d’entrée de la ligne passe de faux à vrai pour manipuler un élément du tableau.

332 Publication 1756-RM003K-FR-P – Juillet 2008

Page 333: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Chapitre 8

Arithmétique et logique sur fichier (FAL)

L’instruction FAL effectue des opérations de copie, arithmétiques, logiques et de fonction sur des données stockées dans un tableau.

Opérandes :

Logique à relais

Texte structuré

Le texte structuré n’a pas d’instruction FAL, mais vous pouvez obtenir le même résultat en utilisant une instruction SIZE et une structure POUR...FAIRE (FOR...DO) ou une autre structure de boucle.

SIZE(destination,0,length-1);

FOR position = 0 TO length DO

destination[position] := numeric_expression;

END_FOR;

Pour plus d’informations sur la syntaxe des structures du texte structuré, voir Annexe C, Programmation en texte structuré.

Opérande Type Format Description

Commande CONTROL point structure de commande pour l’opération

Longueur DINT immédiat nombre d’éléments du tableau à manipuler

Position DINT immédiat élément en cours du tableau

la valeur initiale est en général 0

Mode DINT immédiat comment distribuer l’opération

sélectionner INC, ALL ou entrer un nombre

Destination SINT

INT

DINT

REAL

point point pour le stockage du résultat

Expression SINT

INT

DINT

REAL

immédiat

point

expression constituée de points et/ou de valeurs immédiates séparées par des opérateurs

Un point SINT ou INT est converti en valeur DINT par extension de signe.

Publication 1756-RM003K-FR-P – Juillet 2008 333

Page 334: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 8 Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Structure CONTROL

Description : L’instruction FAL effectue les mêmes opérations sur les tableaux que l’instruction CPT sur les éléments.

Les exemples qui commencent à la page page 340 indiquent comment utiliser la valeur .POS pour progresser dans un tableau. Si un indice dans l’expression de la Destination est hors limites, l’instruction FAL génère un défaut majeur (type 4, code 20).

Indicateurs d’état arithmétique : Les indicateurs d’état arithmétique sont affectés.

Conditions d’erreur :

Mnémonique Type de données

Description

.EN BOOL Le bit d’activation indique que l’instruction FAL est activée.

.DN BOOL Le bit de fin est activé lorsque l’instruction a été exécutée sur le dernier élément (.POS = .LEN).

.ER BOOL Le bit d’erreur est activé si l’expression génère un dépassement supérieur (S:V est activé). L’instruction s’arrête jusqu’à ce que le programme remette à 0 le bit .ER. La valeur .POS contient la position de l’élément qui produit le dépassement.

.LEN DINT La longueur spécifie le nombre d’éléments du tableau sur lesquels l’instruction FAL est exécutée.

.POS DINT La position contient la position de l’élément auquel l’instruction est en train d’accéder.

Un défaut majeur se produit si Type de défaut Code de défaut

l’indice est hors limites 4 20

.POS < 0 ou .LEN < 0 4 21

334 Publication 1756-RM003K-FR-P – Juillet 2008

Page 335: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Chapitre 8

Exécution :

Condition Action logique à relais

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

examiner le bit .DN

bit .DN = 0

bit .DN = 1

L’état d’entrée de la ligne est faux

l’état de sortie de la ligne est faux

fin

le bit .EN est effacéle bit .ER est effacéle bit .DN est effacéla valeur .POS est effacée

mode INCnon

oui

mode TOUTnon

oui

le bit .EN est effacé

.POS = .POS + 1

mode Numérique

le bit interne est effacé

.LEN < 0 ou .POS < 0

oui

non

défaut majeur

.POS = .POS – 1

.POS = 0oui

non

le bit .DN est activé le bit .EN est activé

.POS < .LENnon

oui

.LEN > mode

oui

non

mode = .LEN

.LEN = 0oui

non

le bit .DN est activé le bit .EN est effacé

page 339

Publication 1756-RM003K-FR-P – Juillet 2008 335

Page 336: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 8 Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Condition Action logique à relais

L’état d’entrée de la ligne est vrai

l’état de sortie de la ligne est vrai

fin

examiner le bit .DN

bit .DN = 0

bit .DN = 1

.LEN = 0non

oui

mode INCnon

oui

mode TOUT

non

oui

loop_count = loop_count – 1

loop_count < 0non

oui

.POS = .POS + 1

évaluer l’expression

.POS = .POS + 1

examiner S:Vnon

oui

le bit .ER est activé

.POS = .LENnon

oui

le bit .DN est activé le bit .EN est activé .POS = .POS + 1

examiner le bit .ER

bit .ER = 0

bit .ER = 1

le bit .DN est activé le bit .EN est activé mode

INCmode TOUT

mode Numérique

commun

page 339

page 337 page 338

.LEN < 0 ou

.POS < 0oui

non

défaut majeur

336 Publication 1756-RM003K-FR-P – Juillet 2008

Page 337: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Chapitre 8

Condition Action logique à relais

examiner le bit .EN

bit .EN = 1

bit .EN = 0

.POS = .POS + 1

.POS ≥ .LENoui

non

le bit .EN est activéloop_count = 1.POS = .POS – 1

examinerle bit interne

bit = 1

bit = 0

le bit interne est activé

mode INC

commun

.POS = .POS – 1

.POS = 0oui

non

le bit .DN est activé le bit .EN est activé

l’état de sortie de la ligne est vrai

fin

page 336

Publication 1756-RM003K-FR-P – Juillet 2008 337

Page 338: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 8 Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Condition Action logique à relais

examiner le bit .EN

bit .EN = 0

bit .EN = 1

.POS = .POS + 1

.POS ≥ .LENoui

non

loop_count = .LEN – .POS.POS = .POS – 1

examinerle bit interne

bit = 1

bit = 0

le bit .EN est activé

mode TOUT

commun

.POS = .POS – 1

.POS = 0oui

non

le bit .DN est activé le bit .EN est activé

l’état de sortie de la ligne est vrai

finpage 336

338 Publication 1756-RM003K-FR-P – Juillet 2008

Page 339: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Chapitre 8

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

Condition Action logique à relais

examiner le bit .EN

bit .EN = 1

bit .EN = 0

.POS = .POS + 1

.POS ≥ .LENoui

non

examinerle bit interne

bit = 1

bit = 0

le bit interne est activé

mode Numérique

commun

.POS = .POS – 1

.POS = 0oui

non

le bit .DN est activé le bit .EN est activé

l’état de sortie de la ligne est vrai

fin

.LEN ≥ mode

oui

nonmode = .LEN

le bit .EN est activéloop_count = .LEN – .POS.POS = .POS – 1

mode ≥loop_count

non

le bit .EN est activéloop_count = mode

oui

page 336

Publication 1756-RM003K-FR-P – Juillet 2008 339

Page 340: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 8 Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Exemple 1 : Lorsqu’elle est activée, l’instruction FAL copie chaque élément de array_2 dans la même position dans array_1.

Exemple 2 : Lorsqu’elle est activée, l’instruction FAL copie value_1 dans les 10 premières positions de la deuxième dimension de array_2.

Exemple 3 : Chaque fois que l’instruction FAL est activée, elle copie la valeur en cours de array_1 vers value_1. L’instruction FAL utilise le mode incrémental, une seule valeur de tableau est ainsi copiée chaque fois que l’instruction est activée. A son activation suivante, l’instruction écrase value_1 avec la valeur suivante de array_1.

Exemple 4 : Lorsqu’elle est activée, l’instruction FAL additionne value_1 et value_2 et enregistre le résultat dans la position en cours de array_1.

copie de tableau à tableau

Expression :array_2[control_2.pos]

Destination :array_1[control_2.pos]

copie d’élément vers tableau

Expression :value_1

Destination :array_2[0,control_2.pos]

copie de tableau vers élément

Expression :array_1[control_1.pos]

Destination :value_1

opération arithmétique : (élément + élément) vers tableau

Expression :value_1 + value_2

Destination :array_1[control_1.pos]

340 Publication 1756-RM003K-FR-P – Juillet 2008

Page 341: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Chapitre 8

Exemple 5 : Lorsqu’elle est activée, l’instruction FAL divise la valeur de la position en cours de array_2 par la valeur de la position en cours de array_3 et enregistre le résultat dans la position en cours de array_1.

Exemple 6 : Lorsqu’elle est activée, l’instruction FAL ajoute la valeur de la position en cours de array_1 à value_1 et enregistre le résultat dans la position en cours de array_3. L’instruction doit être exécutée 10 fois pour que array_1 et array_3 soient entièrement manipulés.

Exemple 7 : Chaque fois que l’instruction FAL est activée, elle ajoute value_1 à la valeur en cours de array_1 et enregistre le résultat dans value_2. L’instruction FAL utilise le mode incrémental, une seule valeur de tableau est ainsi ajoutée à value_1 chaque fois que l’instruction est activée. A son activation suivante, l’instruction écrase value_2.

opération arithmétique : (tableau / tableau) vers tableau

Expression :array_2[control_2.pos] / array_3[control_2.pos]

Destination :array_1[control_2.pos]

opération arithmétique : (tableau + élément) vers tableau

Expression :array_1[control_1.pos] + value_1

Destination :array_3[control_1.pos]

opération arithmétique : (élément + tableau) vers élément

Expression :value_1 + array_1[control_1.pos]

Destination :value_2

Publication 1756-RM003K-FR-P – Juillet 2008 341

Page 342: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 8 Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Exemple 8 : Lorsqu’elle est activée, l’instruction FAL multiplie la valeur en cours de array_1 par la valeur en cours de array_3 et enregistre le résultat dans value_1. L’instruction FAL utilise le mode incrémental, une seule paire de valeurs de tableau est ainsi multipliée chaque fois que l’instruction est activée. A son activation suivante, l’instruction écrase value_1.

Expressions FAL

Vous programmez les expressions en instructions FAL de la même façon que les expressions en instructions CPT. Utilisez les sections suivantes pour trouver les informations sur les opérateurs, le format et l’ordre d’opération valables, qui sont communs aux deux instructions.

Opérateurs valables

opération arithmétique : (tableau ∗ tableau) vers élément

Expression :array_1[control_1.pos] * array_3[control_1.pos]

Destination :value_1

Opérateur Description Optimal

+ addition DINT, REAL

– soustraction/négation DINT, REAL

* multiplication DINT, REAL

/ division DINT, REAL

** exposant (x à y) DINT, REAL

ABS valeur absolue DINT, REAL

ACS cosinus d’arc REAL

AND ET sur bits DINT

ASN sinus d’arc REAL

ATN tangente d’arc REAL

COS cosinus REAL

DEG radians en degrés DINT, REAL

FRD DCB à nombre entier DINT

LN logarithme naturel REAL

LOG logarithme décimal REAL

MOD modulo DINT, REAL

NOT complément sur bits DINT

OR OU sur bits DINT

RAD degrés en radians DINT, REAL

SIN sinus REAL

SQR racine carrée DINT, REAL

TAN tangente REAL

TOD nombre entier à DCB DINT

TRN troncation DINT, REAL

XOR OU exclusif sur bits DINT

Opérateur Description Optimal

342 Publication 1756-RM003K-FR-P – Juillet 2008

Page 343: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Chapitre 8

Formatage d’expressions

Pour chaque opérateur utilisé dans une expression, vous devez fournir un ou deux opérandes (points ou valeurs immédiates). Utilisez le tableau suivant pour formater les opérateurs et les opérandes dans une expression.

Déterminer l’ordre des opérations

Les opérations que vous écrivez dans l’expression sont effectuées par l’instruction dans un ordre précis, qui n’est pas nécessairement l’ordre dans lequel vous les écrivez. Vous pouvez modifier l’ordre des opérations en groupant des termes entre parenthèses, cela force l’instruction à effectuer une opération entre parenthèses avant les autres opérations.

Les opérations d’ordre identique sont effectuées de gauche à droite.

Pour les opérateurs opérant sur

Utilisez ce format Exemples

un opérande opérateur(opérande) ABS(tag_a)

deux opérandes opérande_a opérateur opérande_b

• tag_b + 5

• tag_c AND tag_d

• (tag_e ** 2) MOD (tag_f / tag_g)

Ordre Fonctionnement

1. ()

2. ABS, ACS, ASN, ATN, COS, DEG, FRD, LN, LOG, RAD, SIN, SQR, TAN, TOD, TRN

3. **

4. − (négation), NOT

5. *, /, MOD

6. − (soustraction), +

7. AND

8. XOR

9. OR

Publication 1756-RM003K-FR-P – Juillet 2008 343

Page 344: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 8 Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Recherche et comparaison sur fichier (FSC)

L’instruction FSC compare des valeurs dans un tableau, élément par élément.

Opérandes :

Logique à relais

Structure CONTROL

Description : Lorsque l’instruction FSC est activée et que la comparaison est vraie, l’instruction active le bit .FD et le bit .POS reflète la position du tableau à laquelle l’instruction a trouvé la comparaison vraie. L’instruction active le bit .IN pour empêcher la recherche de continuer.

Indicateurs d’état arithmétique : Les indicateurs d’état arithmétique sont affectés.

Conditions d’erreur :

Opérande Type Format Description

Commande CONTROL point structure de commande pour l’opération

Longueur DINT immédiat nombre d’éléments du tableau à manipuler

Position DINT immédiat offset dans le tableau

la valeur initiale est en général 0

Mnémonique Type de données

Description

.EN BOOL Le bit d’activation indique que l’instruction FSC est activée.

.DN BOOL Le bit de fin est activé lorsque l’instruction a été exécutée sur le dernier élément (.POS = .LEN).

.ER BOOL Le bit d’erreur n’est pas modifié.

.IN BOOL Le bit d’inhibition indique que l’instruction FSC a détecté une vraie comparaison. Vous devez effacer ce bit pour continuer l’opération de recherche.

.FD BOOL Le bit trouvé indique que l’instruction FSC a détecté une vraie comparaison.

.LEN DINT La longueur spécifie le nombre d’éléments du tableau sur lesquels l’instruction est exécutée.

.POS DINT La position contient la position de l’élément auquel l’instruction est en train d’accéder.

Un défaut majeur se produit si Type de défaut Code de défaut

.POS < 0 ou .LEN < 0 4 21

344 Publication 1756-RM003K-FR-P – Juillet 2008

Page 345: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Chapitre 8

Exécution :

Condition Action logique à relais

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

examiner le bit .DN

bit .DN = 0

bit .DN = 1

L’état d’entrée de la ligne est faux

l’état de sortie de la ligne est faux

fin

le bit .EN est effacéle bit .ER est effacéle bit .DN est effacéla valeur .POS est effacée

mode INCnon

oui

mode TOUTnon

oui

le bit .EN est effacé

.POS = .POS + 1

mode Numérique

le bit interne est effacé

.LEN < 0 ou .POS < 0

oui

non

défaut majeur

.POS = .POS – 1

.POS = 0oui

non

le bit .DN est activé le bit .EN est activé

.POS < .LENnon

oui

.LEN > mode

oui

non

mode = .LEN

.LEN = 0oui

non

le bit .DN est activé le bit .EN est effacé

page 339

Publication 1756-RM003K-FR-P – Juillet 2008 345

Page 346: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 8 Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

Condition Action logique à relais

L’état d’entrée de la ligne est vrai

l’état de sortie de la ligne est vrai

fin

examiner le bit .IN

bit .DN = 0

bit .DN = 1

.LEN = 0non

oui

mode INCnon

oui

mode TOUT

non

oui

loop_count = loop_count – 1

loop_count < 0non

oui

.POS = .POS + 1

évaluer la comparaison

.POS = .POS + 1

correspondancenon

oui

le bit .EN est activéle bit .FD est activéle bit .IN est activé

.POS = .LENnon

oui

le bit .DN est activé le bit .EN est activé .POS = .POS + 1

examiner le bit .ER

bit .ER = 0

bit .ER = 1

le bit .DN est activé le bit .EN est activé mode

INCmode TOUT

mode Numérique

commun

page 339

page 337 page 338

.LEN < 0 ou

.POS < 0oui

non

défaut majeur

examiner le bit .DN

bit .DN = 1

bit .IN = 0

bit .DN = 0

346 Publication 1756-RM003K-FR-P – Juillet 2008

Page 347: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Chapitre 8

Exemple 1 : Recherche d’une correspondance entre deux tableaux Lorsqu’elle est activée, l’instruction FSC compare chacun des 10 premiers éléments de array_1 aux éléments correspondants dans array_2.

Exemple 2 : Recherche d’une correspondance dans un tableau Lorsqu’elle est activée, l’instruction FSC compare MySearchKey à 10 éléments dans array_1.

00000000000000000000000000000000 0

00000000000000000000000000000000 1

00000000000000000000000000000000 2

00000000000000000000000000000000 3

11111111111111110000000000000000 4

11111111111111111111111111111111 5

11111111111111111111111111111111 6

11111111111111111111111111111111 7

11111111111111111111111111111111 8

11111111111111111111111111111111 9

array_1 array_2

L’instruction FSC trouve que ces éléments ne sont pas égaux. Elle active les bits .FD et .IN. La valeur .POS (4) indique la position des éléments qui ne sont pas égaux. Pour continuer à comparer le reste du tableau, effacez le bit .IN.

control_3.pos

00000000000000000000000000000000

00000000000000000000000000000000

00000000000000000000000000000000

00000000000000000000000000000000

00000000000000001111111111111111

11111111111111111111111111111111

11111111111111111111111111111111

11111111111111111111111111111111

11111111111111111111111111111111

11111111111111111111111111111111

MySearchKey référence

L’instruction FSC trouve que cet élément de tableau correspond à MySearchKey. Elle active les bits .FD et .IN. La valeur .POS (4) indique la position de l’élément correspondant. Pour continuer à comparer le reste du tableau, effacez le bit .IN.

control_3.pos

00000000000000000000000000000000 0

00000000000000000000000000000000 1

00000000000000000000000000000000 2

00000000000000000000000000000000 3

11111111111111110000000000000000 4

11111111111111111111111111111111 5

11111111111111111111111111111111 6

11111111111111111111111111111111 7

11111111111111111111111111111111 8

11111111111111111111111111111111 9

11111111111111110000000000000000

Publication 1756-RM003K-FR-P – Juillet 2008 347

Page 348: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 8 Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Exemple 3 : Recherche d’une chaîne dans un tableau de chaînes Lorsqu’elle est activée, l’instruction FSC compare les caractères dans code à 10 éléments dans code_table.

Expressions FSC

Vous programmez les expressions en instructions FSC de la même façon que les expressions en instructions CMP. Utilisez les sections suivantes pour trouver les informations sur les opérateurs, le format et l’ordre d’opération valables, qui sont communs aux deux instructions.

SAM

AFG 0

BEH 1

HUO 2

SAK 3

SAM 4

FQG 5

CLE 6

CAK 7

DET 8

BWG 9

code code_table

L’instruction FSC trouve que cet élément de tableau correspond à code. Elle active les bits .FD et .IN. La valeur .POS (4) indique la position de l’élément correspondant. Pour continuer à comparer le reste du tableau, effacez le bit .IN.

code_table_search.POS

348 Publication 1756-RM003K-FR-P – Juillet 2008

Page 349: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Chapitre 8

Opérateurs valables

Formatage d’expressions

Pour chaque opérateur utilisé dans une expression, vous devez fournir un ou deux opérandes (points ou valeurs immédiates). Utilisez le tableau suivant pour formater les opérateurs et les opérandes dans une expression.

Opérateur Description Optimal

+ addition DINT, REAL

– soustraction/négation DINT, REAL

* multiplication DINT, REAL

/ division DINT, REAL

= égalité DINT, REAL

< inférieur DINT, REAL

<= inférieur ou égal DINT, REAL

> supérieur DINT, REAL

>= supérieur ou égal DINT, REAL

<> différent DINT, REAL

** exposant (x à y) DINT, REAL

ABS valeur absolue DINT, REAL

ACS cosinus d’arc REAL

AND ET sur bits DINT

ASN sinus d’arc REAL

ATN tangente d’arc REAL

COS cosinus REAL

DEG radians en degrés DINT, REAL

FRD DCB à nombre entier DINT

LN logarithme naturel REAL

LOG logarithme décimal REAL

MOD modulo DINT, REAL

NOT complément sur bits DINT

OR OU sur bits DINT

RAD degrés en radians DINT, REAL

SIN sinus REAL

SQR racine carrée DINT, REAL

TAN tangente REAL

TOD nombre entier à DCB DINT

TRN troncation DINT, REAL

XOR OU exclusif sur bits DINT

Opérateur Description Optimal

Pour les opérateurs opérant sur

Utilisez ce format Exemples

un opérande opérateur(opérande) ABS(tag_a)

deux opérandes opérande_a opérateur opérande_b

• tag_b + 5

• tag_c AND tag_d

• (tag_e ** 2) MOD (tag_f / tag_g)

Publication 1756-RM003K-FR-P – Juillet 2008 349

Page 350: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 8 Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Déterminer l’ordre des opérations

Les opérations que vous écrivez dans l’expression sont effectuées par l’instruction dans un ordre précis, qui n’est pas nécessairement l’ordre dans lequel vous les écrivez. Vous pouvez modifier l’ordre des opérations en groupant des termes entre parenthèses, cela force l’instruction à effectuer une opération entre parenthèses avant les autres opérations.

Les opérations d’ordre identique sont effectuées de gauche à droite.

Ordre Fonctionnement

1. ()

2. ABS, ACS, ASN, ATN, COS, DEG, FRD, LN, LOG, RAD, SIN, SQR, TAN, TOD, TRN

3. **

4. − (négation), NOT

5. *, /, MOD

6. <, <=, >, >=, =

7. − (soustraction), +

8. AND

9. XOR

10. OR

350 Publication 1756-RM003K-FR-P – Juillet 2008

Page 351: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Chapitre 8

Utilisation de chaînes dans une expression

Pour utiliser des chaînes de caractères ASCII dans une expression, conformez-vous aux directives suivantes :

• Une expression vous permet de comparer deux chaînes de caractères.

• Vous ne pouvez pas entrer des caractères ASCII directement dans l’expression.

• Seuls les opérateurs suivants sont autorisés :

• Les chaînes sont égales si leurs caractères se correspondent.

• les caractères ASCII sont sensibles à la casse. « A » ($41) en majuscule n’est pas égal à « a » ($61) en minuscule.

• Les valeurs hexadécimales des caractères déterminent si une chaîne est inférieure ou supérieure à une autre chaîne. Pour trouver le code hexadécimal d’un caractère, reportez-vous à la dernière page de ce manuel.

• Lorsque les deux chaînes sont triées comme dans un répertoire téléphonique, l’ordre des chaînes détermine laquelle est supérieure.

Opérateur Description

= égalité

< inférieur

<= inférieur ou égal

> supérieur

>= supérieur ou égal

<> différent

Caractères ASCII Codes Hex

71ab $31$61$62

1b $31$62

A $41

AB $41$42

B $42

a $61

ab $61$62

supérieur

inférieur

AB < B

a > B

Publication 1756-RM003K-FR-P – Juillet 2008 351

Page 352: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 8 Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Copie de fichier (COP) Copie synchrone de fichier (CPS)

Les instructions COP et CPS copient les valeurs de la Source vers la Destination. La Source reste inchangée.

Opérandes :

Logique à relais

Texte structuré

Les opérandes sont identiques à ceux des instructions COP et CPS de la logique à relais.

Opérande Type Format Description

Source SINT

INT

DINT

REAL

chaîne

structure

point élément initial à copier

Important : les opérandes Source et Destination doivent avoir les mêmes types de données, ou des résultats inattendus peuvent se produire.

Destination SINT

INT

DINT

REAL

chaîne

structure

point élément initial à écraser par la Source

Important : les opérandes Source et Destination doivent avoir les mêmes types de données, ou des résultats inattendus peuvent se produire.

Longueur DINT immédiat

point

nombre d’éléments de Destination à copier

COP(Source,Dest,Length);

CPS(Source,Dest,Length);

352 Publication 1756-RM003K-FR-P – Juillet 2008

Page 353: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Chapitre 8

Description : Pendant l’exécution des instructions COP et CPS, d’autres actions de l’automate peuvent tenter d’interrompre l’opération de copie et de changer les données de la source ou de la destination :

Le nombre d’octets copiés est :

Nombre d’octets = Longueur ∗ (nombre d’octets du type de données de la Destination)

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Si la source ou la destination est un

Et que vous voulez Sélectionnez Remarques

• point produit

• point consommé

• données d’E/S

• données qu’une autre tâche peut écraser

empêcher les données de changer pendant l’opération de copie

CPS • Les tâches qui tentent d’interrompre une instruction CPS sont interrompues jusqu’à ce que l’instruction soit terminée.

• Pour faire une estimation de la durée d’exécution de l’instruction CPS, voir Système ControlLogix – Manuel utilisateur, publication 1756-UM001.

permettre aux données d’être changées pendant l’opération de copie

COP

aucune des solutions ci-dessus COP

ATTENTION Si le nombre d’octets est supérieur à la longueur de la Source, des données non attendues sont copiées pour les éléments restants.

IMPORTANT Vous devez tester et vous assurez que l’instruction ne change pas de données que vous ne voulez pas qu’elle change.

Les instructions COP et CPS fonctionne avec une mémoire contiguë. Elle effectue une copie de la mémoire octet par octet. Dans certains cas, elles écrivent au-delà du tableau dans d’autres membres du point. Ceci se produit si la longueur est trop grande et que le point est un type de données utilisateur.

La longueur est trop grande si elle est supérieure au nombre total d’éléments du tableau Destination.

Si le point est Action

un type de données utilisateur

Si la longueur est trop grande, l’instruction écrit au-delà de la fin du tableau dans d’autres membres du point. Elle s’arrête à la fin du point. Aucun défaut majeur n’est généré.

PAS un type de données utilisateur

Si la longueur est trop grande, l’instruction s’arrête à la fin du tableau. Aucun défaut majeur n’est généré.

Publication 1756-RM003K-FR-P – Juillet 2008 353

Page 354: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 8 Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Exécution :

Condition Action logique à relais Action texte structuré

Pré-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

L’état d’entrée de la ligne est faux

L’état de sortie de la ligne est réglé sur faux. –

L’état d’entrée de la ligne est vrai

L’instruction est exécutée.

L’état de sortie de la ligne est réglé sur vrai.

EnableIn est activé – EnableIn est toujours activé.

L’instruction est exécutée.

Post-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

Exécution de l’instruction

l’état de sortie de la ligne est vrai

fin

end_address = start_address + (Longueur ∗ nombre d’octets dans un élément de destination)

oui

non

end_address > fin du tableau de

destination

end_address = fin du tableau de destination

source_address = Source

oui

non

destination_address = end_address

copier les données de source_address dans destination_address

source_address = source_address + 1

destination_address = destination_address + 1

354 Publication 1756-RM003K-FR-P – Juillet 2008

Page 355: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Chapitre 8

Exemple 1 : array_4 et array_5 ont le même type de données. Lorsqu’elle est activée, l’instruction COP copie les 10 premiers éléments de array_4 dans les 10 premiers éléments de array_5.

Logique à relais

Texte structuré

COP(array_4[0],array_5[0],10);

Exemple 2 : Lorsqu’elle est activée, l’instruction COP copie la structure timer_1 dans l’élément 5 de array_timer. L’instruction ne copie qu’une structure vers un seul élément de tableau.

Logique à relais

Texte structuré

COP(timer_1,array_timer[5],1);

Publication 1756-RM003K-FR-P – Juillet 2008 355

Page 356: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 8 Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Exemple 3 : Le tableau project_data (100 éléments) stocke des valeurs qui changent à différents moments dans l’application. Pour envoyer une image complète de project_data à un instant donné vers un autre automate, l’instruction CPS copie project_data dans produced_array.

• Pendant que l’instruction CPS copie les données, aucune autre mise à jour des E/S ou aucune autre tâche ne peut modifier les données.

• Le point produced_array produit les données sur un réseau ControlNet pour qu’elles soient consommées par d’autres automates.

• Pour utiliser la même image de données (c.-à-d., une copie synchronisée des données), les automates consommateurs utilisent une instruction CPS pour copier les données du point consommé dans un autre point pour leur utilisation dans l’application.

Logique à relais

Texte structuré

CPS(project_data[0],produced_array[0],100);

Exemple 4 : Local:0:I.Data stocke les données d’entrées pour le réseau DeviceNet qui est connecté au module 1756-DNB dans l’emplacement 0. Pour synchroniser les entrées avec l’application, l’instruction CPS copie les données d’entrées dans input_buffer.

• Pendant que l’instruction CPS copie les données, aucune autre mise à jour des E/S ne peut modifier les données.

• Lors de l’exécution de l’application, elle utilise comme entrées les données d’entrées dans input_buffer.

Logique à relais

Texte structuré

CPS(Local:0:I.Data[0],input_buffer[0],20);

356 Publication 1756-RM003K-FR-P – Juillet 2008

Page 357: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Chapitre 8

Exemple 5 : Cet exemple initialise un tableau de structures temporisateur. Lorsqu’elle est activée, l’instruction MOV initialise les valeurs .PRE et .ACC du premier élément array_timer. Lorsqu’elle est activée, l’instruction COP copie un bloc d’octets contigus, commençant à array_timer[0]. La longueur est de neuf structures temporisateur.

Logique à relais

Texte structuré

IF S:FS THEN

array_timer[0].pre := 500;

array_timer[0].acc := 0;

COP(array_timer[0],array_timer[1],10);

END_IF;

array_timer[0] Tout d’abord, l’instruction copie les valeurs timer[0] dans timer[1]

array_timer[1] Puis l’instruction copie les valeurs timer[1] dans timer[2]

array_timer[2] Puis l’instruction copie les valeurs timer[2] dans timer[3]

array_timer[3] Puis l’instruction copie les valeurs timer[3] dans timer[4]

array_timer[4]

array_timer[9] Enfin, l’instruction copie les valeurs timer[9] dans timer[10]

array_timer[10]

Publication 1756-RM003K-FR-P – Juillet 2008 357

Page 358: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 8 Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Remplir un fichier (FLL) L’instruction FLL remplit les éléments d’un tableau avec la valeur Source. La Source reste inchangée.

Opérandes :

Logique à relais

Texte structuré

Le texte structuré n’a pas d’instruction FLL, mais vous pouvez obtenir le même résultat en utilisant une instruction SIZE et une structure POUR...FAIRE (FOR...DO) ou une autre structure de boucle.

SIZE(destination,0,length);

FOR position = 0 TO length-1 DO

destination[position] := source;

END_FOR;

Pour plus d’informations sur la syntaxe des structures du texte structuré, voir Annexe C, Programmation en texte structuré.

Opérande Type Format Description

Source SINT

INT

DINT

REAL

immédiat

point

élément à copier

Important : les opérandes Source et Destination doivent avoir les mêmes types de données, ou des résultats inattendus peuvent se produire.

Destination SINT

INT

DINT

REAL

structure

point élément initial à écraser par la Source

Important : les opérandes Source et Destination doivent avoir les mêmes types de données, ou des résultats inattendus peuvent se produire.

La meilleure façon d’initialiser une structure est d’utiliser l’instruction COP.

Longueur DINT immédiat nombre d’éléments à remplir

358 Publication 1756-RM003K-FR-P – Juillet 2008

Page 359: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Chapitre 8

Description : Le nombre d’octets remplis est :

Nombre d’octets = Longueur ∗ (nombre d’octets du type de données de la Destination)

Pour de meilleurs résultats, la Source et la Destination doivent être de même type. Si vous voulez remplir une structure, utilisez l’instruction COP (voir l’exemple 3, page 356). Si vous mélangez les types de données pour la Source et la Destination, les éléments de Destination sont remplis par des valeurs Source converties.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

IMPORTANT Vous devez tester et vous assurez que l’instruction ne change pas de données que vous ne voulez pas qu’elle change.

L’instruction FLL fonctionne sur des données de mémoire contiguës. Dans certains cas, elle écrit au-delà du tableau dans d’autres membres du point. Ceci se produit si la longueur est trop grande et que le point est un type de données utilisateur.

La longueur est trop grande si elle est supérieure au nombre total d’éléments du tableau Destination.

Si le point est Action

un type de données utilisateur

Si la longueur est trop grande, l’instruction écrit au-delà de la fin du tableau dans d’autres membres du point. Elle s’arrête à la fin du point. Aucun défaut majeur n’est généré.

PAS un type de données utilisateur

Si la longueur est trop grande, l’instruction arrête à la fin du tableau. Aucun défaut majeur n’est généré.

Si la source est Et la destination est La Source est convertie en

SINT, INT, DINT ou REAL SINT SINT

SINT, INT, DINT ou REAL INT INT

SINT, INT, DINT ou REAL DINT DINT

SINT, INT, DINT ou REAL REAL REAL

SINT structure SINT (non convertie)

INT structure INT (non convertie)

DINT structure DINT (non convertie)

REAL structure REAL (non convertie)

Publication 1756-RM003K-FR-P – Juillet 2008 359

Page 360: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 8 Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Exécution :

Condition Action logique à relais

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai

l’état de sortie de la ligne est vrai

fin

end_address = start_address + (Longueur ∗ nombre d’octets dans un élément de destination)

oui

non

end_address > fin du tableau de

destination

end_address = fin du tableau de destination

source_address = Source

oui

non

destination_address = end_address

copier les données de source_address dans destination_address

destination_address = destination_address + 1

360 Publication 1756-RM003K-FR-P – Juillet 2008

Page 361: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Chapitre 8

Exemple : L’instruction FLL copie la valeur de value_1 dans dest_1

Logique à relais

Texte structuré

dest_1 := value _1;

Type de données Source (value_1)

Valeur Source (value_1)

Type de données Destination (dest_1)

Valeur Destination (dest_1) après FLL

SINT 16#80 (-128) DINT 16#FFFF FF80 (-128)

DINT 16#1234 5678 SINT 16#78

SINT 16#01 REAL 1.0

REAL 2.0 INT 16#0002

SINT 16#01 TIMER 16#0101 0101

16#0101 0101

16#0101 0101

INT 16#0001 TIMER 16#0001 0001

16#0001 0001

16#0001 0001

DINT 16#0000 0001 TIMER 16#0000 0001

16#0000 0001

16#0000 0001

Publication 1756-RM003K-FR-P – Juillet 2008 361

Page 362: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 8 Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Moyenne de fichier (AVE) L’instruction AVE calcule la moyenne d’un ensemble de valeurs.

Opérandes :

Logique à relais

Texte structuré

Le texte structuré n’a pas d’instruction AVE, mais vous pouvez obtenir le même résultat en utilisant une instruction SIZE et une structure POUR...FAIRE (FOR...DO) ou une autre structure de boucle.

SIZE(array,0,length);

sum := 0;

FOR position = 0 TO length-1 DO

sum := sum + array[position];

END_FOR;

destination := sum / length;

Pour plus d’informations sur la syntaxe des structures du texte structuré, voir Annexe C, Programmation en texte structuré.

Opérande Type Format Description

Tableau SINT

INT

DINT

REAL

point de tableau

trouve la moyenne des valeurs dans ce tableau

spécifie le premier élément du groupe d’éléments sur lequel faire un moyenne

n’utilisez pas CONTROL.POS dans l’indice

Dimension variable

DINT immédiat

(0, 1, 2)

dimension à utiliser

selon le nombre de dimensions, l’ordre est

array[dim_0,dim_1,dim_2]

array[dim_0,dim_1]

array[dim_0]

Destination SINT

INT

DINT

REAL

point résultat de l’opération

Commande CONTROL point structure de commande pour l’opération

Longueur DINT immédiat nombre d’éléments du tableau sur lesquels faire la moyenne

Position DINT immédiat élément en cours du tableau

la valeur initiale est en général 0

362 Publication 1756-RM003K-FR-P – Juillet 2008

Page 363: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Chapitre 8

Structure CONTROL

Description : L’instruction AVE calcule la moyenne d’un ensemble de valeurs.

Indicateurs d’état arithmétique : Les indicateurs d’état arithmétique sont affectés.

Conditions d’erreur :

Mnémonique Type de données

Description

.EN BOOL Le bit d’activation indique que l’instruction AVE est activée.

.DN BOOL Le bit de fin est activé lorsque l’instruction a été exécutée sur le dernier élément du tableau (.POS = .LEN).

.ER BOOL Le bit d’erreur est activé si l’instruction génère un dépassement supérieur. L’instruction s’arrête jusqu’à ce que le programme remette à 0 le bit .ER. La position de l’élément qui a provoqué le dépassement est stockée dans la valeur .POS.

.LEN DINT La longueur spécifie le nombre d’éléments du tableau sur lesquels l’instruction est exécutée.

.POS DINT La position contient la position de l’élément auquel l’instruction est en train d’accéder.

IMPORTANT Assurez-vous que la longueur n’entraîne pas l’instruction au-delà de la variation de Dimension spécifiée. Si cela se produit, la Destination sera incorrecte.

Un défaut majeur se produit si Type de défaut Code de défaut

.POS < 0 ou .LEN < 0 4 21

La variation de Dimension n’existe pas dans le tableau spécifié

4 20

Publication 1756-RM003K-FR-P – Juillet 2008 363

Page 364: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 8 Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Exécution :

Condition Action logique à relais

Pré-scrutation Le bit .EN est effacé.

Le bit .DN est effacé.

Le bit .ER est effacé.

L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai L’instruction AVE calcule la moyenne en additionnant tous les éléments spécifiés dans le tableau et en divisant par le nombre d’éléments.

En interne, l’instruction utilise une instruction FAL pour calculer la moyenne :

Expression = calcul de moyenne

Mode = TOUT

Pour plus de détails sur l’exécution de l’instruction FAL, voir page page 335.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

examiner le bit .DNbit .DN = 0

bit .DN = 1

L’état d’entrée de la ligne est faux

l’état de sortie de la ligne est faux

fin

le bit .EN est effacéle bit .ER est effacéle bit .DN est effacéla valeur .POS est effacée

364 Publication 1756-RM003K-FR-P – Juillet 2008

Page 365: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Chapitre 8

Exemple 1 : array_dint moyen, qui est DINT[4,5].

Logique à relais

Texte structuré

SIZE(array_dint,0,length);

sum := 0;

FOR position = 0 TO (length-1) DO

sum := sum + array_dint[position];

END_FOR;

dint_ave := sum / length;

dimension1

dimension 0

0 20 19 18 17 16

15 14 13 12 11

10 9 8 7 6

5 4 3 2 1

1

2

3

0 1 2 3 4

AVE 19 14 9 4+ + +4

------------------------------------- 464------ 11.5= = =

dint_ave = 12

indices

Publication 1756-RM003K-FR-P – Juillet 2008 365

Page 366: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 8 Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Exemple 2 : array_dint moyen, qui est DINT[4,5].

Logique à relais

Texte structuré

SIZE(array_dint,1,length);

sum := 0;

FOR position = 0 TO (length-1) DO

sum := sum + array_dint[position];

END_FOR;

dint_ave := sum / length;

dimension 1

dimension 0

0 20 19 18 17 16

15 14 13 12 11

10 9 8 7 6

5 4 3 2 1

1

2

3

0 1 2 3 4

AVE 5 4 3 2 1+ + + +5

---------------------------------------- 155------ 3= = =

indices

dint_ave = 3

366 Publication 1756-RM003K-FR-P – Juillet 2008

Page 367: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Chapitre 8

Tri sur fichier (SRT) L’instruction SRT trie un jeu de valeurs dans une dimension (variation de Dimension) du tableau en ordre croissant.

Opérandes :

Logique à relais

Texte structuré

Les opérandes sont identiques à ceux de l’instruction SRT en logique à relais. Cependant, vous définissez les valeurs Longueur et Position en accédant aux membres .LEN et .POS de la structure CONTROL, plutôt qu’en incluant des valeurs dans la liste des opérandes.

Structure CONTROL

Opérande Type Format Description

Tableau SINT

INT

DINT

REAL

point de tableau

tableau à trier

spécifie le premier élément du groupe d’éléments à trier

n’utilisez pas CONTROL.POS dans l’indice

Dimension variable

DINT immédiat

(0, 1, 2)

dimension à utiliser

selon le nombre de dimensions, l’ordre est

array[dim_0,dim_1,dim_2]

array[dim_0,dim_1]

array[dim_0]

Commande CONTROL point structure de commande pour l’opération

Longueur DINT immédiat nombre d’éléments du tableau à trier

Position DINT immédiat élément en cours du tableau

la valeur initiale est en général 0

SRT(Array,Dimtovary,Control);

Mnémonique Type de données

Description

.EN BOOL Le bit d’activation indique que l’instruction SRT est activée.

.DN BOOL Le bit de fin est activé lorsque les éléments spécifiés ont été triés.

.ER BOOL Le bit d’erreur est activé lorsque .LEN < 0 ou .POS < 0. Ces deux états entraînent un défaut majeur.

.LEN DINT La longueur spécifie le nombre d’éléments du tableau sur lesquels l’instruction est exécutée.

.POS DINT La position contient la position de l’élément auquel l’instruction est en train d’accéder.

Publication 1756-RM003K-FR-P – Juillet 2008 367

Page 368: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 8 Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Description : L’instruction SRT trie un jeu de valeurs dans une dimension (variation de Dimension) du tableau en ordre croissant.

C’est une instruction de transition :

• en logique à relais, basculez l’état d’entrée de la ligne d’effacé à activé chaque fois que l’instruction doit être exécutée ;

• en texte structuré, conditionnez l’instruction de façon à ce qu’elle ne s’exécute que lors d’une transition. Voir Annexe C, Programmation en texte structuré.

Indicateurs d’état arithmétique : Les indicateurs d’état arithmétique sont affectés.

Conditions d’erreur :

IMPORTANT Vous devez tester et vous assurez que l’instruction ne change pas de données que vous ne voulez pas qu’elle change.

L’instruction SRT fonctionne avec une mémoire contiguë. Dans certains cas, l’instruction change des données dans d’autres membres du point. Ceci se produit si la longueur est trop grande et que le point est un type de données utilisateur.

IMPORTANT Assurez-vous que la longueur n’entraîne pas l’instruction au-delà de la variation de Dimension spécifiée. Si cela se produit, des résultats inattendus se produiront.

Un défaut majeur se produit si Type de défaut Code de défaut

.POS < 0 ou .LEN < 0 4 21

La variation de Dimension n’existe pas dans le tableau spécifié

4 20

L’instruction essaie d’accéder aux données hors des limites du tableau

4 20

368 Publication 1756-RM003K-FR-P – Juillet 2008

Page 369: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Chapitre 8

Exécution :

Condition Action logique à relais Action texte structuré

Pré-scrutation Le bit .EN est effacé.

Le bit .DN est effacé.

Le bit .ER est effacé.

L’état de sortie de la ligne est réglé sur faux.

Le bit .EN est effacé.

Le bit .DN est effacé.

Le bit .ER est effacé.

L’état d’entrée de la ligne est vrai

L’instruction est exécutée.

L’état de sortie de la ligne est réglé sur vrai.

EnableIn est activé – EnableIn est toujours activé.

L’instruction est exécutée.

Exécution de l’instruction L’instruction trie les éléments spécifiés du tableau en ordre croissant.

L’instruction trie les éléments spécifiés du tableau en ordre croissant.

Post-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

examiner le bit .DN bit .DN = 0

bit .DN = 1

l’état de sortie de la ligne est faux

fin

le bit .EN est effacéle bit .ER est effacéle bit .DN est effacéla valeur .POS est effacée

L’état d’entrée de la ligne est faux

Publication 1756-RM003K-FR-P – Juillet 2008 369

Page 370: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 8 Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Exemple 1 : Trier int _array, qui est DINT[4,5].

Logique à relais

Texte structuré

control_1.LEN := 4;

control_1.POS := 0;

SRT(int_array[0,2],0,control_1);

dimension 1

dimension 0

0 20 19 18 17 16

15 14 13 12 11

10 9 8 7 6

5 4 3 2 1

1

2

3

0 1 2 3 4

dimension 1

dimension 0

0 20 19 3 17 16

15 14 8 12 11

10 9 13 7 6

5 4 18 2 1

1

2

3

0 1 2 3 4

Avant Après

indices

indices

370 Publication 1756-RM003K-FR-P – Juillet 2008

Page 371: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Chapitre 8

Exemple 2 : Trier int _array, qui est DINT[4,5].

Logique à relais

Texte structuré

control_1.LEN := 5;

control_1.POS := 0;

SRT(int_array[2,0],1,control_1);

dimension 1

dimension 0

0 20 19 18 17 16

15 14 13 12 11

10 9 8 7 6

5 4 3 2 1

1

2

3

0 1 2 3 4

dimension 1

dimension 0

0 20 19 18 17 16

15 14 13 12 11

6 7 8 9 10

5 4 3 2 1

1

2

3

0 1 2 3 4

Avant Après

indices

indices

Publication 1756-RM003K-FR-P – Juillet 2008 371

Page 372: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 8 Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Ecart type de fichier (STD) L’instruction STD calcule l’écart type d’un ensemble de valeurs dans une dimension du tableau et stocke le résultat dans la Destination.

Opérandes :

Logique à relais

Structure CONTROL

Opérande Type Format Description

Tableau SINT

INT

DINT

REAL

point de tableau

trouver l’écart type des valeurs dans ce tableau

spécifie le premier élément du groupe d’éléments à utiliser pour calculer l’écart type

n’utilisez pas CONTROL.POS dans l’indice

Un point SINT ou INT est converti en valeur DINT par extension de signe.

Dimension variable

DINT immédiat

(0, 1, 2)

dimension à utiliser

selon le nombre de dimensions, l’ordre est

array[dim_0,dim_1,dim_2]

array[dim_0,dim_1]

array[dim_0]

Destination REAL point résultat de l’opération

Commande CONTROL point structure de commande pour l’opération

Longueur DINT immédiat nombre d’éléments du tableau à utiliser pour calculer l’écart type

Position DINT immédiat élément en cours du tableau

la valeur initiale est en général 0

Mnémonique Type de données

Description

.EN BOOL Le bit d’activation indique que l’instruction STD est activée.

.DN BOOL Le bit de fin est activé lorsque le calcul est terminé.

.ER BOOL Le bit d’erreur est activé lorsque l’instruction génère un dépassement supérieur. L’instruction s’arrête jusqu’à ce que le programme remette à 0 le bit .ER. La position de l’élément qui a provoqué le dépassement est stockée dans la valeur .POS.

.LEN DINT La longueur spécifie le nombre d’éléments du tableau sur lesquels l’instruction est exécutée.

.POS DINT La position contient la position de l’élément auquel l’instruction est en train d’accéder.

372 Publication 1756-RM003K-FR-P – Juillet 2008

Page 373: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Chapitre 8

Texte structuré

Le texte structuré n’a pas d’instruction STD, mais vous pouvez obtenir le même résultat en utilisant une instruction SIZE et une structure POUR...FAIRE (FOR...DO) ou une autre structure de boucle.

SIZE(array,0,length);

sum := 0;

FOR position = 0 TO length-1 DO

sum := sum + array[position];

END_FOR;

average := sum / length;

sum := 0;

FOR position = 0 TO length-1 DO

sum := sum + ((array[position] – average)**2);

END_FOR;

destination := SQRT(sum /(length-1));

Pour plus d’informations sur la syntaxe des structures du texte structuré, voir Annexe C, Programmation en texte structuré.

Description : L’écart type est calculé selon la formule suivante :

Où :

• start = indice de variation de dimension de l’opérande du tableau

• xi = élément variable dans le tableau

• N = nombre d’éléments spécifiés dans le tableau

• AVE =

X start i+( ) AVE–⟨ ⟩2[ ]

i 1=

N

∑⎝ ⎠⎜ ⎟⎜ ⎟⎛ ⎞

N 1–( )--------------------------------------------------------------------

Ecart type =

x start i+( )

i 1=

N

∑⎝ ⎠⎜ ⎟⎜ ⎟⎛ ⎞

N-----------------------------------------

IMPORTANT Assurez-vous que la longueur n’entraîne pas l’instruction au-delà de la variation de Dimension spécifiée. Si cela se produit, la Destination sera incorrecte.

Publication 1756-RM003K-FR-P – Juillet 2008 373

Page 374: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 8 Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Indicateurs d’état arithmétique : Les indicateurs d’état arithmétique sont affectés.

Conditions d’erreur :

Exécution :

Un défaut majeur se produit si Type de défaut Code de défaut

.POS < 0 ou .LEN < 0 4 21

La variation de Dimension n’existe pas dans le tableau spécifié

4 20

Condition Action logique à relais

Pré-scrutation Le bit .EN est effacé.

Le bit .DN est effacé.

Le bit .ER est effacé.

L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai L’instruction STD calcule l’écart type de l’élément spécifié.

En interne, l’instruction utilise une instruction FAL pour calculer la moyenne :

Expression = calcul de l’écart type

Mode = TOUT

Pour plus de détails sur l’exécution de l’instruction FAL, voir page page 335.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

examiner le bit .DN bit .DN = 0

bit .DN = 1

L’état d’entrée de la ligne est faux

l’état de sortie de la ligne est faux

fin

le bit .EN est effacéle bit .ER est effacéle bit .DN est effacéla valeur .POS est effacée

374 Publication 1756-RM003K-FR-P – Juillet 2008

Page 375: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Chapitre 8

Exemple 1 : Calculer l’écart type de dint_array, qui est DINT[4,5].

Logique à relais

Texte structuré

SIZE(dint_array,0,length);

sum := 0;

FOR position = 0 TO (length-1) DO

sum := sum + dint_array[position];

END_FOR;

average := sum / length;

sum := 0;

FOR position = 0 TO (length-1) DO

sum := sum + ((dint_array[position] – average)**2);

END_FOR;

real_std := SQRT(sum / (length-1));

dimension 1

dimension 0

0 20 19 18 17 16

15 14 13 12 11

10 9 8 7 6

5 4 3 2 1

1

2

3

0 1 2 3 4

STD 16 8.5–⟨ ⟩2 11 8.5–⟨ ⟩2 6 8.5–⟨ ⟩2 1 8.5–⟨ ⟩2+ + +

4 1–⟨ ⟩--------------------------------------------------------------------------------------------------------------------------- 6.454972= =

AVE 16 11 6 1+ + +4

------------------------------------- 344------ 8.5= = =

indices

real_std = 6.454972

Publication 1756-RM003K-FR-P – Juillet 2008 375

Page 376: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 8 Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Exemple 2 : Calculer l’écart type de dint_array, qui est DINT[4,5].

Logique à relais

Texte structuré

SIZE(dint_array,1,length);

sum := 0;

FOR position = 0 TO (length-1) DO

sum := sum + dint_array[position];

END_FOR;

average := sum / length;

sum := 0;

FOR position = 0 TO (length-1) DO

sum := sum + ((dint_array[position] – average)**2);

END_FOR;

real_std := SQRT(sum / (length-1));

dimension 1

dimension 0

0 20 19 18 17 16

15 14 13 12 11

10 9 8 7 6

5 4 3 2 1

1

2

3

0 1 2 3 4

STD 20 18–⟨ ⟩2 19 18–⟨ ⟩2 18 18–⟨ ⟩2 17 18–⟨ ⟩2 16 18–⟨ ⟩2+ + + +

5 1–⟨ ⟩------------------------------------------------------------------------------------------------------------------------------------------------------------ 1.581139= =

AVE 20 19 18 17 16+ + + +5

------------------------------------------------------- 905------ 18= = =

indices

real_std = 1.581139

376 Publication 1756-RM003K-FR-P – Juillet 2008

Page 377: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Chapitre 8

Taille en éléments (SIZE) L’instruction SIZE trouve la taille d’une dimension d’un tableau.

Opérandes :

Logique à relais

Texte structuré

Les opérandes sont identiques à ceux de l’instruction SIZE en logique à relais.

Description : L’instruction SIZE trouve le nombre d’éléments (taille) dans la dimension indiquée du tableau Source et place le résultat dans l’opérande Taille.

• L’instruction SIZE trouve la taille d’une dimension d’un tableau.

• L’instruction agit sur un :

– tableau ;

– tableau dans une structure ;

– tableau qui fait partie d’un tableau plus grand.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : aucune

Opérande Type Format Description

Source SINT

INT

DINT

REAL

structure

string

point de tableau

tableau sur lequel l’instruction effectue son opération

Dimension variable

DINT immédiat (0, 1, 2)

dimension à utiliser :

SIZE SINT

INT

DINT

REAL

point le point dans lequel le nombre d’éléments de la dimension spécifiée du tableau est stocké

Pour la taille de Entrez

première dimension 0

deuxième dimension 1

troisième dimension 2

SIZE(Source,Dimtovary,Size);

Publication 1756-RM003K-FR-P – Juillet 2008 377

Page 378: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 8 Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Exécution :

Exemple 1 : Trouver le nombre d’éléments dans la dimension 0 (première dimension) de array_a. Enregistrer la taille dans array_a_size. Dans cet exemple, la dimension 0 de array_a possède 10 éléments.

Logique à relais

Texte structuré

SIZE(array_a,0,array_a_size);

Exemple 2 : Trouver le nombre d’éléments dans le membre DATA de string_1, qui est une chaîne. Enregistrer la taille dans string_1_size. Dans cet exemple, le membre DATA de string_1 possède 82 éléments. (La chaîne utilise le type de données STRING par défaut.) Puisque chaque élément possède un caractère, string_1 peut contenir jusqu’à 82 caractères.

Logique à relais

Texte structuré

SIZE(string_1.DATA[0],0,string_1_size);

Condition Action logique à relais Action texte structuré

Pré-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

L’état d’entrée de la ligne est faux

L’état de sortie de la ligne est réglé sur faux. –

L’état d’entrée de la ligne est vrai

L’instruction est exécutée.

L’état de sortie de la ligne est réglé sur vrai.

EnableIn est activé – EnableIn est toujours activé.

L’instruction est exécutée.

Exécution de l’instruction L’instruction trouve la taille d’une dimension. L’instruction trouve la taille d’une dimension.

Post-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

Size in ElementsSource array_a[0]

255Dim. To Vary 0Size array_a_size

10

SIZESize in ElementsSource array_a[0]

255Dim. To Vary 0Size array_a_size

10

SIZE

Size in ElementsSource string_1.DATA[0]

'$00'Dim. To Vary 0Size string_1_size

82

SIZESize in ElementsSource string_1.DATA[0]

’$00’Dim. To Vary 0Size string_1_size

82

SIZE

378 Publication 1756-RM003K-FR-P – Juillet 2008

Page 379: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Chapitre 8

Exemple 3 : Strings_a est un tableau de structures de chaînes. L’instruction SIZE trouve le nombre d’éléments dans le membre DATA de la structure de chaîne et enregistre la taille dans data_size_a. Dans cet exemple, le membre DATA possède 24 éléments. (La structure de la chaîne a une longueur définie par l’utilisateur de 24.)

Logique à relais

Texte structuré

SIZE(strings_a[0].DATA[0],0,data_size_a);

Size in ElementsSource strings_a[0].DATA[0]

'$00'Dim. To Vary 0Size data_size_a

24

SIZESize in ElementsSource strings_a[0].DATA[0]

’$00’Dim. To Vary 0Size data_size_a

24

SIZE

Publication 1756-RM003K-FR-P – Juillet 2008 379

Page 380: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 8 Instructions de tableau (fichier)/ Instructions diverses (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Notes :

380 Publication 1756-RM003K-FR-P – Juillet 2008

Page 381: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 9

Instructions de tableau (fichier)/décalage(BSL, BSR, FFL, FFU, LFL, LFU)

Introduction Utilisez les instructions de tableau (fichier)/décalage pour modifier l’emplacement des données dans les tableaux.

Vous pouvez mélanger des types de données, mais cela peut entraîner une perte de précision et des erreurs d’arrondis.

Pour les instructions de logique à relais, les types de données en gras indiquent les types de données optimaux. Une instruction est exécutée plus rapidement et demande moins de mémoire si tous les opérandes de l’instruction utilisent le même type de données optimal, généralement DINT ou REAL.

Si vous voulez Utilisez cette instruction Disponible dans ces langages Voir page

charger des bits dans, décaler des bits dans et décharger des bits à partir d’un tableau de bits, un bit à la fois

BSL Logique à relais 382

BSR Logique à relais 386

charger et décharger des valeurs dans le même ordre

FFL Logique à relais 390

FFU Logique à relais 396

charger et décharger des valeurs dans l’ordre inverse

LFL Logique à relais 402

LFU Logique à relais 408

Publication 1756-RM003K-FR-P – Juillet 2008 381

Page 382: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 9 Instructions de tableau (fichier)/décalage (BSL, BSR, FFL, FFU, LFL, LFU)

Décalage binaire à gauche (BSL)

L’instruction BSL décale les bits spécifiés d’une position vers la gauche dans le tableau.

Opérandes :

Logique à relais

Structure CONTROL

Description : Lorsqu’elle est activée, l’instruction décharge le bit de poids fort des bits spécifiés dans le bit .UL, décale les bits restants d’une position à gauche et charge le bit Source dans le bit 0 du tableau.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Opérande Type Format Description

Tableau DINT point de tableau

tableau à modifier,

spécifie le premier élément du groupe d’éléments

n’utilisez pas CONTROL.POS dans l’indice

Commande CONTROL point structure de commande pour l’opération

Bit source BOOL point bit à décaler

Longueur DINT immédiat nombre de bits à décaler dans le tableau

Mnémonique Type de données

Description

.EN BOOL Le bit d’activation indique que l’instruction BSL est activée.

.DN BOOL Le bit de fin est activé pour indiquer que les bits ont été décalés d’une position vers la gauche.

.UL BOOL Le bit de déchargement est la sortie de l’instruction. Le bit .UL enregistre l’état du bit qui a été décalé en dehors de la plage de bits.

.ER BOOL Le bit d’erreur est activé lorsque .LEN < 0.

.LEN DINT La longueur définit le nombre de bits de tableau à décaler.

IMPORTANT Vous devez tester et vous assurez que l’instruction ne change pas de données que vous ne voulez pas qu’elle change.

L’instruction BSL fonctionne avec une mémoire contiguë. Dans certains cas, elle décale les bits au-delà du tableau dans d’autres membres du point. Ceci se produit si la longueur est trop grande et que le point est un type de données utilisateur.

382 Publication 1756-RM003K-FR-P – Juillet 2008

Page 383: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de tableau (fichier)/décalage (BSL, BSR, FFL, FFU, LFL, LFU) Chapitre 9

Exécution :

Condition Action logique à relais

Pré-scrutation Le bit .EN est effacé.

Le bit .DN est effacé.

Le bit .ER est effacé.

La valeur .POS est effacé.

L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux Le bit .EN est effacé.

Le bit .DN est effacé.

Le bit .ER est effacé.

La valeur .POS est effacé.

L’état de sortie de la ligne est réglé sur faux.

Publication 1756-RM003K-FR-P – Juillet 2008 383

Page 384: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 9 Instructions de tableau (fichier)/décalage (BSL, BSR, FFL, FFU, LFL, LFU)

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

Condition Action logique à relais

L’état d’entrée de la ligne est vrai

examiner le bit .EN bit .EN = 1

bit .EN = 0

fin

le bit .DN est activé

décaler le tableau d’une position à gauche

le bit .EN est activé

l’état de sortie de la ligne est vrai

le bit .DN est activé

.POS = .LEN

.LEN = 0 oui

non

.LEN < 0 oui

non

bit sourcebit .UL tableau

examiner le bit source

bit .source = 1

bit .source = 0

le bit .UL reste activé

le bit .UL est activé

le bit .ER est activé

384 Publication 1756-RM003K-FR-P – Juillet 2008

Page 385: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de tableau (fichier)/décalage (BSL, BSR, FFL, FFU, LFL, LFU) Chapitre 9

Exemple 1 : Lorsqu’elle est activée, l’instruction BSL démarre au bit 0 de array_dint[0]. L’instruction décharge array_dint[0].9 dans le bit .UL, décale les bits restants et charge input_1 dans array_dint[0].0. Les valeurs des bits restants (10 – 31) ne sont pas valables.

Exemple 2 : Lorsqu’elle est activée, l’instruction BSL démarre au bit 0 de array_dint[0]. L’instruction décharge array_dint[1].25 dans le bit .UL, décale les bits restants et charge input_1 dans array_dint[0].0. Les valeurs des bits restants (31-26 dans array_dint[1]) ne sont pas valables. Remarquez comment array_dint[0].31 décale les mots dans array_dint[1].0.

9 8 7 6 5 4 3 2 1 0

array_dint[0]avant décalage

1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0

9 8 7 6 5 4 3 2 1 0

array_dint[0]après décalage

0 1 1 1 1 0 0 0 0 1

1

input_10

bit .UL

ces bits sont décalés à gauche

31 0

array_dint[0] 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0

31 0

array_dint[1] 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0

1

input_1ces bits sont décalés à gauche

0

bit .UL

ces bits sont décalés à gauche

Publication 1756-RM003K-FR-P – Juillet 2008 385

Page 386: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 9 Instructions de tableau (fichier)/décalage (BSL, BSR, FFL, FFU, LFL, LFU)

Décalage binaire à droite (BSR)

L’instruction BSR décale les bits spécifiés d’une position vers la droite dans le tableau.

Opérandes :

Logique à relais

Structure CONTROL

Description : Lorsqu’elle est activée, l’instruction décharge la valeur du bit 0 du tableau dans le bit .UL, décale les bits restants d’une position à droite et charge le bit Source dans le bit de poids fort des bits spécifiés.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Opérande Type Format Description

Tableau DINT point de tableau

tableau à modifier,

spécifier l’élément sur lequel démarrer le décalage

n’utilisez pas CONTROL.POS dans l’indice

Commande CONTROL point structure de commande pour l’opération

Bit source BOOL point bit à décaler

Longueur DINT immédiat nombre de bits à décaler dans le tableau

Mnémonique Type de données

Description

.EN BOOL Le bit d’activation indique que l’instruction BSR est activée.

.DN BOOL Le bit de fin est activé pour indiquer que les bits ont été décalés d’une position vers la droite.

.UL BOOL Le bit de déchargement est la sortie de l’instruction. Le bit .UL enregistre l’état du bit qui a été décalé en dehors de la plage de bits.

.ER BOOL Le bit d’erreur est activé lorsque .LEN < 0.

.LEN DINT La longueur définit le nombre de bits de tableau à décaler.

IMPORTANT Vous devez tester et vous assurez que l’instruction ne change pas de données que vous ne voulez pas qu’elle change.

L’instruction BSR fonctionne avec une mémoire contiguë. Dans certains cas, l’instruction change des bits dans d’autres membres du point. Ceci se produit si la longueur est trop grande et que le point est un type de données utilisateur.

386 Publication 1756-RM003K-FR-P – Juillet 2008

Page 387: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de tableau (fichier)/décalage (BSL, BSR, FFL, FFU, LFL, LFU) Chapitre 9

Exécution :

Condition Action logique à relais

Pré-scrutation Le bit .EN est effacé.

Le bit .DN est effacé.

Le bit .ER est effacé.

La valeur .POS est effacé.

L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux Le bit .EN est effacé.

Le bit .DN est effacé.

Le bit .ER est effacé.

La valeur .POS est effacé.

L’état de sortie de la ligne est réglé sur faux.

Publication 1756-RM003K-FR-P – Juillet 2008 387

Page 388: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 9 Instructions de tableau (fichier)/décalage (BSL, BSR, FFL, FFU, LFL, LFU)

Condition Action logique à relais

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai

examiner le bit .EN bit .EN = 1

bit .EN = 0

fin

le bit .DN est activé

décaler le tableau d’une position à gauche

le bit .EN est activé

l’état de sortie de la ligne est vrai

le bit .DN est activé

.POS = .LEN

.LEN = 0 oui

non

.LEN < 0 oui

non

bit source

bit .ULtableau

examiner le bit source

bit .source = 1

bit .source = 0

le bit .UL reste activé

le bit .UL est activé

le bit .ER est activé

388 Publication 1756-RM003K-FR-P – Juillet 2008

Page 389: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de tableau (fichier)/décalage (BSL, BSR, FFL, FFU, LFL, LFU) Chapitre 9

Exemple 1 : Lorsqu’elle est activée, l’instruction BSR démarre au bit 9 de array_dint[0]. L’instruction décharge array_dint[0].0 dans le bit .UL bit, décale à droite les bits restants et charge input_1 dans array_dint[0].9. Les valeurs des bits restants (10 – 31) ne sont pas valables.

Exemple 2 : Lorsqu’elle est activée, l’instruction BSR démarre au bit 25 de array_dint[1]. L’instruction décharge array_dint[0].0 dans le bit .UL bit, décale à droite les bits restants et charge input_1 dans array_dint[1].25. Les valeurs des bits restants (31-26 dans dint_array[1]) ne sont pas valables. Remarquez comment array_dint[1].0 décale les mots dans array_dint[0].31.

9 8 7 6 5 4 3 2 1 0

array_dint[0]avant décalage

1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0

9 8 7 6 5 4 3 2 1 0

array_dint[0]après décalage

1 0 0 1 1 1 1 0 0 0

ces bits sont décalés à droite0

bit .UL1

input_1

31 0

array_dint[0] 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0

31 0

array_dint[1] 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0

ces bits sont décalés à droite 0

bit .UL

ces bits sont décalés à droite1

input_1

Publication 1756-RM003K-FR-P – Juillet 2008 389

Page 390: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 9 Instructions de tableau (fichier)/décalage (BSL, BSR, FFL, FFU, LFL, LFU)

Chargement FIFO (FFL) L’instruction FFL copie la valeur Source dans la pile FIFO.

Opérandes :

Logique à relais

Si vous utilisez une structure définie par l’utilisateur comme type de données pour la Source ou l’opérande FIFO, utilisez la même structure pour les deux opérandes.

Opérande Type Format Description

Source SINT

INT

DINT

REAL

string

structure

immédiat

point

données à stocker dans la pile FIFO

La Source est convertie au type de données du point de tableau. Un petit nombre entier est converti à un nombre entier plus grand par extension du signe.

FIFO SINT

INT

DINT

REAL

string

structure

point de tableau

FIFO à modifier

spécifier le premier élément de la pile FIFO.

n’utilisez pas CONTROL.POS dans l’indice

Commande CONTROL point structure de commande pour l’opération

utilise généralement le même type de commande que l’opérande FFU associée

Longueur DINT immédiat le nombre maximum d’éléments que la pile FIFO peut contenir en même temps

Position DINT immédiat l’emplacement suivant dans la pile FIFO où l’instruction charge les données

la valeur initiale est en général 0

390 Publication 1756-RM003K-FR-P – Juillet 2008

Page 391: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de tableau (fichier)/décalage (BSL, BSR, FFL, FFU, LFL, LFU) Chapitre 9

Structure CONTROL

Description : Utilisez l’instruction FFL avec l’instruction FFU pour stocker et récupérer des données dans un ordre premier entré/premier sorti. Lorsqu’elles sont jumelées, les instructions FFL et FFU constituent un registre à décalage asynchrone.

Généralement, Source et FIFO sont du même type de données.

Lorsqu’elle est activée, l’instruction FFL charge la valeur Source dans l’emplacement de la pile FIFO identifié par la valeur .POS. L’instruction charge une valeur à chaque fois que l’instruction est activée, jusqu’à ce que la pile FIFO soit pleine.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur :

Mnémonique Type de données

Description

.EN BOOL Le bit d’activation indique que l’instruction FFL est activée.

.DN BOOL Le bit de fin est activé pour indiquer que la pile FIFO est pleine (.POS = .LEN). Le bit .DN bloque le chargement de la pile FIFO jusqu’à ce que .POS < .LEN.

.EM BOOL Le bit vide indique que la pile FIFO est vide. Si .LEN ≤ 0 ou .POS < 0, les bits .EM et .DN sont activés.

.LEN DINT La longueur indique le nombre maximum d’éléments que l’opérande FIFO peut contenir en même temps.

.POS DINT La position identifie l’emplacement dans la pile FIFO où l’instruction chargera la prochaine valeur.

IMPORTANT Vous devez tester et vous assurez que l’instruction ne change pas de données que vous ne voulez pas qu’elle change.

L’instruction FFL fonctionne avec une mémoire contiguë. Dans certains cas, elle charge des données au-delà du tableau dans d’autres membres du point. Ceci se produit si la longueur est trop grande et que le point est un type de données utilisateur.

Un défaut majeur se produit si Type de défaut Code de défaut

(élément de départ + .POS) > taille du tableau FIFO

4 20

Publication 1756-RM003K-FR-P – Juillet 2008 391

Page 392: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 9 Instructions de tableau (fichier)/décalage (BSL, BSR, FFL, FFU, LFL, LFU)

Exécution :

Condition Action logique à relais

Pré-scrutation

fin

le bit .EN est activé pour éviter un faux chargement lorsque la scrutation commence

l’état de sortie de la ligne est faux

.LEN < 0 oui

non

.POS < 0 oui

.EM est effacé

.DN est effacé

non

.POS = 0 oui

non

.EM est activé

.POS ≥ .LEN oui

non

.DN est activé

.EM est activé

.DN est activé

392 Publication 1756-RM003K-FR-P – Juillet 2008

Page 393: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de tableau (fichier)/décalage (BSL, BSR, FFL, FFU, LFL, LFU) Chapitre 9

Condition Action logique à relais

l’état d’entrée de la ligne est faux

fin

le bit .EN est effacé

l’état de sortie de la ligne est faux

.LEN < 0 oui

non

.POS < 0 oui

.EM est effacé

.DN est effacé

non

.POS = 0 oui

non

.EM est activé

.POS ≥ .LEN oui

non

.DN est activé

.EM est activé

.DN est activé

Publication 1756-RM003K-FR-P – Juillet 2008 393

Page 394: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 9 Instructions de tableau (fichier)/décalage (BSL, BSR, FFL, FFU, LFL, LFU)

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

Condition Action logique à relais

l’état d’entrée de la ligne est vrai

fin

l’état de sortie de la ligne est vrai

examiner le bit .EN

.EN = 0

.EN = 1

le bit .EN est activé .LEN < 0oui

non

.POS < 0oui

non

le bit .EM est activé

.DN est activé

le bit .EM est effacé

.DN est effacé

.POS = .POS + 1

.POS ≥ .LENoui

non

le bit .DN est activé

.POS ou .LEN > taille du tableau

oui

non

défaut majeur

.POS > .LENoui

non

.POS = .POS – 1

FIFO[.POS – 1] = source

.LEN < 0oui

non

.POS < 0oui

non

le bit .EM est effacé

.DN est effacé

.POS = 0oui

non

le bit .EM est activé

.POS ≥ .LENoui

non

le bit .DN est activé

le bit .EM est activé

.DN est activé

394 Publication 1756-RM003K-FR-P – Juillet 2008

Page 395: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de tableau (fichier)/décalage (BSL, BSR, FFL, FFU, LFL, LFU) Chapitre 9

Exemple : Lorsqu’elle est activée, l’instruction FFL charge value_1 dans la position suivante de la pile FIFO, qui est array_dint[5] dans cet exemple.

avant chargement dela pile FIFO

après chargement dela pile FIFO

array_dint[0] 00000 00000

11111 11111

22222 22222

33333 control_1.pos = 5 33333

44444 value_1 = 55555 44444

array_dint[5] 00000 55555

00000 00000 control_1.pos = 6

00000 00000

00000 00000

00000 00000

Publication 1756-RM003K-FR-P – Juillet 2008 395

Page 396: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 9 Instructions de tableau (fichier)/décalage (BSL, BSR, FFL, FFU, LFL, LFU)

Déchargement de FIFO (FFU)

L’instruction FFU décharge la valeur de la position 0 (première position) de la pile FIFO et enregistre cette valeur dans la Destination. Les données restantes de la pile FIFO sont décalées d’une position vers le bas.

Opérandes :

Logique à relais

Si vous utilisez une structure définie par l’utilisateur comme type de données pour la Destination ou l’opérande FIFO, utilisez la même structure pour les deux opérandes.

Opérande Type Format Description

FIFO SINT

INT

DINT

REAL

string

structure

point de tableau

FIFO à modifier

spécifier le premier élément de la pile FIFO.

n’utilisez pas CONTROL.POS dans l’indice

Destination SINT

INT

DINT

REAL

string

structure

point valeur qui est extraite de la pile FIFO

La valeur de Destination est convertie au type de données du point Destination. Un petit nombre entier est converti à un nombre entier plus grand par extension du signe.

Commande CONTROL point structure de commande pour l’opération

utilise généralement le même type de commande que l’opérande FFL associée

Longueur DINT immédiat le nombre maximum d’éléments que la pile FIFO peut contenir en même temps

Position DINT immédiat l’emplacement suivant dans la pile FIFO où l’instruction décharge les données

la valeur initiale est en général 0

396 Publication 1756-RM003K-FR-P – Juillet 2008

Page 397: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de tableau (fichier)/décalage (BSL, BSR, FFL, FFU, LFL, LFU) Chapitre 9

Structure CONTROL

Description : Utilisez l’instruction FFU avec l’instruction FFL pour stocker et récupérer des données dans un ordre premier entré/premier sorti.

Lorsqu’elle est activée, l’instruction FFU décharge les données du premier élément de la pile FIFO et place cette valeur dans la Destination. L’instruction décharge une valeur à chaque fois que l’instruction est activée, jusqu’à ce que la pile FIFO soit vide. Si la pile FIFO est vide, l’instruction FFU renvoie 0 à la Destination.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur :

Mnémonique Type de données

Description

.EU BOOL Le bit d’activation du déchargement indique que l’instruction FFU est activée. Le bit .EU est activé pour présélectionner une fausse décharge lorsque la scrutation du programme commence.

.DN BOOL Le bit de fin est activé pour indiquer que la pile FIFO est pleine (.POS = .LEN).

.EM BOOL Le bit vide indique que la pile FIFO est vide. Si .LEN ≤ 0 ou .POS < 0, les bits .EM et .DN sont activés.

.LEN DINT La longueur indique le nombre maximum d’éléments dans la pile FIFO.

.POS DINT La position identifie la fin des données qui ont été chargées dans la pile FIFO.

IMPORTANT Vous devez tester et vous assurez que l’instruction ne change pas de données que vous ne voulez pas qu’elle change.

L’instruction FFU fonctionne avec une mémoire contiguë. Dans certains cas, l’instruction décharge des données à partir d’autres membres du point. Ceci se produit si la longueur est trop grande et que le point est un type de données utilisateur.

Un défaut majeur se produit si Type de défaut Code de défaut

Longueur > taille de tableau FIFO 4 20

Publication 1756-RM003K-FR-P – Juillet 2008 397

Page 398: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 9 Instructions de tableau (fichier)/décalage (BSL, BSR, FFL, FFU, LFL, LFU)

Exécution :

Condition Action logique à relais

Pré-scrutation

fin

le bit .EU est activé pour éviter un faux déchargement lorsque la scrutation commence

l’état de sortie de la ligne est faux

.LEN < 0 oui

non

.POS < 0 oui

.EM est effacé

.DN est effacé

non

.POS = 0 oui

non

.EM est activé

.POS ≥ .LEN oui

non

.DN est activé

.EM est activé

.DN est activé

398 Publication 1756-RM003K-FR-P – Juillet 2008

Page 399: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de tableau (fichier)/décalage (BSL, BSR, FFL, FFU, LFL, LFU) Chapitre 9

Condition Action logique à relais

L’état d’entrée de la ligne est faux

fin

le bit .EU est effacé

l’état de sortie de la ligne est faux

.LEN < 0 oui

non

.POS < 0 oui

.EM est effacé

.DN est effacé

non

.POS = 0 oui

non

.EM est activé

.POS ≥ .LEN oui

non

.DN est activé

.EM est activé

.DN est activé

Publication 1756-RM003K-FR-P – Juillet 2008 399

Page 400: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 9 Instructions de tableau (fichier)/décalage (BSL, BSR, FFL, FFU, LFL, LFU)

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

Condition Action logique à relais

L’état d’entrée de la ligne est vrai

fin

examiner le bit .EU

.EU = 0

.EU = 1

le bit .EU est activé .LEN < 0oui

non

.POS < 0oui

non

le bit .EM est activé

.DN est activéle bit .EM est effacé

.DN est effacé

.LEN > taille du tableau

oui

non

défaut majeur

.POS ≤ 1oui

non

le bit .EM est activé

.LEN < 0oui

non

.POS < 0oui

non

le bit .EM est effacé

.DN est effacé

.POS = 0oui

non

le bit .EM est activé

.POS ≥ .LENoui

non

le bit .DN est activé

le bit .EM est activé

.DN est activé

.POS < 1oui

non

Destination = 0

.POS = .POS –1

Destination = FIFO[0]i = 1

FIFO[i – 1] = FIFO[i]i = i +1

i < .LENoui

nonl’état de sortie de la ligne est vrai

400 Publication 1756-RM003K-FR-P – Juillet 2008

Page 401: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de tableau (fichier)/décalage (BSL, BSR, FFL, FFU, LFL, LFU) Chapitre 9

Exemple : Lorsqu’elle est activée, l’instruction FFU décharge array_dint[0] dans value_2 et décale les éléments restants dans array_dint.

avant la décharge de la pile FIFO

après la décharge de la pile FIFO

array_dint[0] 00000 11111

11111 22222

22222 33333

33333 44444

44444 55555

array_dint[5] 55555 00000 control_1.pos = 5

00000 control_1.pos = 6 00000 value_2 = 00000

00000 00000

00000 00000

00000 00000

Publication 1756-RM003K-FR-P – Juillet 2008 401

Page 402: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 9 Instructions de tableau (fichier)/décalage (BSL, BSR, FFL, FFU, LFL, LFU)

Chargement LIFO (LFL) L’instruction LFL copie la valeur Source vers la pile LIFO.

Opérandes :

Logique à relais

Si vous utilisez une structure définie par l’utilisateur comme type de données pour la Source ou l’opérande LIFO, utilisez la même structure pour les deux opérandes.

Opérande Type Format Description

Source SINT

INT

DINT

REAL

chaîne

structure

immédiat

point

données à stocker dans la pile LIFO

La Source est convertie au type de données du point de tableau. Un petit nombre entier est converti à un nombre entier plus grand par extension du signe.

LIFO SINT

INT

DINT

REAL

chaîne

structure

point de tableau

Pile LIFO à modifier

spécifier le premier élément de la pile LIFO

n’utilisez pas CONTROL.POS dans l’indice

Commande CONTROL point structure de commande pour l’opération

utilise généralement le même type de commande que l’opérande LFU associée

Longueur DINT immédiat nombre maximum d’éléments que la pile LIFO peut contenir en même temps

Position DINT immédiat l’emplacement suivant dans la pile LIFO où l’instruction charge les données

la valeur initiale est en général 0

402 Publication 1756-RM003K-FR-P – Juillet 2008

Page 403: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de tableau (fichier)/décalage (BSL, BSR, FFL, FFU, LFL, LFU) Chapitre 9

Structure CONTROL

Description : Utilisez l’instruction LFL avec l’instruction LFU pour stocker et récupérer des données dans un ordre dernier entré/premier sorti. Lorsqu’elles sont jumelées, les instructions LFL et LFU constituent un registre à décalage asynchrone.

Généralement, Source et LIFO sont du même type de données.

Lorsqu’elle est activée, l’instruction LFL charge la valeur Source dans l’emplacement de la pile LIFO identifié par la valeur .POS. L’instruction charge une valeur à chaque fois que l’instruction est activée, jusqu’à ce que la pile LIFO soit pleine.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur :

Mnémonique Type de données

Description

.EN BOOL Le bit d’activation indique que l’instruction LFL est activée.

.DN BOOL Le bit de fin est activé pour indiquer que la pile LIFO est pleine (.POS = .LEN). Le bit .DN bloque le chargement de la pile LIFO jusqu’à ce que .POS < .LEN.

.EM BOOL Le bit vide indique que la pile LIFO est vide. Si .LEN ≤ 0 ou .POS < 0, les bits .EM et .DN sont activés.

.LEN DINT La longueur indique le nombre maximum d’éléments que l’opérande LIFO peut contenir en même temps.

.POS DINT La position identifie l’emplacement dans la pile LIFO où l’instruction chargera la prochaine valeur.

IMPORTANT Vous devez tester et vous assurez que l’instruction ne change pas de données que vous ne voulez pas qu’elle change.

L’instruction LFU fonctionne avec une mémoire contiguë. Dans certains cas, elle charge des données au-delà du tableau dans d’autres membres du point. Ceci se produit si la longueur est trop grande et que le point est un type de données utilisateur.

Un défaut majeur se produit si Type de défaut Code de défaut

(élément de départ + .POS) > taille de tableau LIFO

4 20

Publication 1756-RM003K-FR-P – Juillet 2008 403

Page 404: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 9 Instructions de tableau (fichier)/décalage (BSL, BSR, FFL, FFU, LFL, LFU)

Exécution :

Condition Action logique à relais

Pré-scrutation

fin

le bit .EN est activé pour éviter un faux chargement lorsque la scrutation commence

l’état de sortie de la ligne est faux

.LEN < 0 oui

non

.POS < 0 oui

.EM est effacé

.DN est effacé

non

.POS = 0 oui

non

.EM est activé

.POS ≥ .LEN oui

non

.DN est activé

.EM est activé

.DN est activé

404 Publication 1756-RM003K-FR-P – Juillet 2008

Page 405: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de tableau (fichier)/décalage (BSL, BSR, FFL, FFU, LFL, LFU) Chapitre 9

Condition Action logique à relais

L’état d’entrée de la ligne est faux

fin

le bit .EN est effacé

l’état de sortie de la ligne est faux

.LEN < 0 oui

non

.POS < 0 oui

.EM est effacé

.DN est effacé

non

.POS = 0 oui

non

.EM est activé

.POS ≥ .LEN oui

non

.DN est activé

.EM est activé

.DN est activé

Publication 1756-RM003K-FR-P – Juillet 2008 405

Page 406: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 9 Instructions de tableau (fichier)/décalage (BSL, BSR, FFL, FFU, LFL, LFU)

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

Condition Action logique à relais

L’état d’entrée de la ligne est vrai

fin

l’état de sortie de la ligne est vrai

examinerle bit .EN

.EN = 0

.EN = 1

le bit .EN est activé .LEN < 0oui

non

.POS < 0oui

non

le bit .EM est activé

.DN est activé

le bit .EM est effacé

.DN est effacé

.POS = .POS + 1

.POS ≥ .LENoui

non

le bit .DN est activé

.POS ou .LEN > taille du tableau

oui

non

défaut majeur

.POS > .LENoui

non

.POS = .POS – 1

DEPS[.POS – 1] = source

.LEN < 0oui

non

.POS < 0oui

non

le bit .EM est effacé

.DN est effacé

.POS = 0oui

non

le bit .EM est activé

.POS ≥ .LENoui

non

le bit .DN est activé

le bit .EM est activé

.DN est activé

406 Publication 1756-RM003K-FR-P – Juillet 2008

Page 407: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de tableau (fichier)/décalage (BSL, BSR, FFL, FFU, LFL, LFU) Chapitre 9

Exemple : Lorsqu’elle est activée, l’instruction LFL charge value_1 dans la position suivante de la pile LIFO, qui est array_dint[5] dans cet exemple.

avant chargement de la pile LIFO

après chargement de la pile LIFO

array_dint[0] 00000 00000

11111 11111

22222 22222

33333 control_1.pos = 5 33333

44444 value_1 = 55555 44444

array_dint[5] 00000 55555

00000 00000 control_1.pos = 6

00000 00000

00000 00000

00000 00000

Publication 1756-RM003K-FR-P – Juillet 2008 407

Page 408: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 9 Instructions de tableau (fichier)/décalage (BSL, BSR, FFL, FFU, LFL, LFU)

Déchargement LIFO (LFU) L’instruction LFU décharge la valeur dans la position .POS de la pile LIFO et enregistre 0 dans cet emplacement.

Opérandes :

Logique à relais

Si vous utilisez une structure définie par l’utilisateur comme type de données pour la Destination ou l’opérande LIFO, utilisez la même structure pour les deux opérandes.

Opérande Type Format Description

LIFO SINT

INT

DINT

REAL

string

structure

point de tableau

Pile LIFO à modifier

spécifier le premier élément de la pile LIFO

n’utilisez pas CONTROL.POS dans l’indice

Destination SINT

INT

DINT

REAL

string

structure

point valeur qui est extraite de la pile LIFO

La valeur de Destination est convertie au type de données du point Destination. Un petit nombre entier est converti à un nombre entier plus grand par extension du signe.

Commande CONTROL point structure de commande pour l’opération

utilise généralement le même type de commande que l’opérande LFL associée

Longueur DINT immédiat nombre maximum d’éléments que la pile LIFO peut contenir en même temps

Position DINT immédiat l’emplacement suivant dans la pile LIFO où l’instruction décharge les données

la valeur initiale est en général 0

408 Publication 1756-RM003K-FR-P – Juillet 2008

Page 409: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de tableau (fichier)/décalage (BSL, BSR, FFL, FFU, LFL, LFU) Chapitre 9

Structure CONTROL

Description : Utilisez l’instruction LFU avec l’instruction LFL pour stocker et récupérer des données dans un ordre dernier entré/premier sorti.

Lorsqu’elle est activée, l’instruction LFU décharge la valeur .POS de la pile LIFO et place cette valeur dans la Destination. L’instruction décharge une valeur et la remplace par 0 chaque fois que l’instruction est activée, jusqu’à ce que la pile LIFO soit vide. Si la pile LIFO est vide, l’instruction LFU renvoie 0 à la Destination.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur :

Mnémonique Type de données

Description

.EU BOOL Le bit d’activation de décharge indique que l’instruction LFU est activée. Le bit .EU est activé pour présélectionner une fausse décharge lorsque la scrutation du programme commence.

.DN BOOL Le bit de fin est activé pour indiquer que la pile LIFO est pleine (.POS = .LEN).

.EM BOOL Le bit vide indique que la pile LIFO est vide. Si .LEN ≤ 0 ou .POS < 0, les bits .EM et .DN sont activés.

.LEN DINT La longueur indique le nombre maximum d’éléments que l’opérande LIFO peut contenir en même temps.

.POS DINT La position identifie la fin des données qui ont été chargées dans la pile LIFO.

IMPORTANT Vous devez tester et vous assurez que l’instruction ne change pas de données que vous ne voulez pas qu’elle change.

L’instruction LFU fonctionne avec une mémoire contiguë. Dans certains cas, l’instruction décharge des données à partir d’autres membres du point. Ceci se produit si la longueur est trop grande et que le point est un type de données utilisateur.

Un défaut majeur se produit si Type de défaut Code de défaut

Longueur > taille du tableau LIFO 4 20

Publication 1756-RM003K-FR-P – Juillet 2008 409

Page 410: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 9 Instructions de tableau (fichier)/décalage (BSL, BSR, FFL, FFU, LFL, LFU)

Exécution :

Condition Action logique à relais

Pré-scrutation

fin

le bit .EU est activé pour éviter un faux déchargement lorsque la scrutation commence

l’état de sortie de la ligne est faux

.LEN < 0 oui

non

.POS < 0 oui

.EM est effacé

.DN est effacé

non

.POS = 0 oui

non

.EM est activé

.POS ≥ .LEN oui

non

.DN est activé

.EM est activé

.DN est activé

410 Publication 1756-RM003K-FR-P – Juillet 2008

Page 411: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de tableau (fichier)/décalage (BSL, BSR, FFL, FFU, LFL, LFU) Chapitre 9

Condition Action logique à relais

L’état d’entrée de la ligne est faux

fin

le bit .EU est effacé

l’état de sortie de la ligne est faux

.LEN < 0 oui

non

.POS < 0 oui

.EM est effacé

.DN est effacé

non

.POS = 0 oui

non

.EM est activé

.POS ≥ .LEN oui

non

.DN est activé

.EM est activé

.DN est activé

Publication 1756-RM003K-FR-P – Juillet 2008 411

Page 412: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 9 Instructions de tableau (fichier)/décalage (BSL, BSR, FFL, FFU, LFL, LFU)

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

Condition Action logique à relais

L’état d’entrée de la ligne est vrai

fin

l’état de sortie de la ligne est vrai

examiner le bit .EU

.EU = 0

.EU = 1

le bit .EU est activé .LEN < 0oui

non

.POS < 0oui

non

le bit .EM est activé

.DN est activéle bit .EM est effacé

.DN est effacé

.LEN > taille du tableau

oui

non

défaut majeur

.POS ≤ 1oui

non

le bit .EM est activé

.LEN < 0oui

non

.POS < 0oui

non

le bit .EM est effacé

.DN est effacé

.POS = 0oui

non

le bit .EM est activé

.POS ≥ .LENoui

non

le bit .DN est activé

le bit .EM est activé

.DN est activé

.POS < 1oui

non

.POS > .LENoui

non

.POS = .LEN

Destination = 0

Destination = LIFO[control.POS]

LIFO[control.POS) = 0

.POS = .POS – 1

412 Publication 1756-RM003K-FR-P – Juillet 2008

Page 413: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de tableau (fichier)/décalage (BSL, BSR, FFL, FFU, LFL, LFU) Chapitre 9

Exemple : Lorsqu’elle est activée, l’instruction LFU décharge array_dint[5] dans value_2.

avant déchargement de la pile LIFO

après déchargement de la pile LIFO

array_dint[0] 00000 00000

11111 11111

22222 22222

33333 33333

44444 44444

array_dint[5] 55555 00000 control_1.pos = 5

00000 control_1.pos = 6 00000 value_2 = 55555

00000 00000

00000 00000

00000 00000

Publication 1756-RM003K-FR-P – Juillet 2008 413

Page 414: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 9 Instructions de tableau (fichier)/décalage (BSL, BSR, FFL, FFU, LFL, LFU)

Notes :

414 Publication 1756-RM003K-FR-P – Juillet 2008

Page 415: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 10

Instructions séquenceurs(SQI, SQO, SQL)

Introduction Aucune mesure n’est prise. Les instructions séquenceurs surveillent les opérations cohérentes et répétitives.

Pour les instructions de logique à relais, les types de données en gras indiquent les types de données optimaux. Une instruction est exécutée plus rapidement et demande moins de mémoire si tous les opérandes de l’instruction utilisent le même type de données optimal, généralement DINT ou REAL.

Si vous voulez Utilisez cette instruction Disponible dans ces langages Voir page

détecter quand une étape est terminée SQI Logique à relais 416

activer les conditions de sortie pour l’étape suivante

SQO Logique à relais 420

charger les conditions de référence dans les tableaux séquenceurs

SQL Logique à relais 424

Publication 1756-RM003K-FR-P – Juillet 2008 415

Page 416: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 10 Instructions séquenceurs (SQI, SQO, SQL)

Entrée séquenceur (SQI) L’instruction SQI détecte quand une étape est terminée dans une paire en séquence d’instructions SQO/SQI.

Opérandes :

Logique à relais

Structure CONTROL

Opérande Type Format Description

Tableau DINT point de tableau

tableau de séquenceur

spécifier le premier élément du tableau de séquenceur

n’utilisez pas CONTROL.POS dans l’indice

Masque SINT

INT

DINT

point

immédiat

bits à bloquer ou à passer

Un point SINT ou INT est converti en valeur DINT par extension de signe.

Source SINT

INT

DINT

point données d’entrée pour le tableau du séquenceur

Un point SINT ou INT est converti en valeur DINT par extension de signe.

Commande CONTROL point structure de commande pour l’opération

utilise généralement la même structure de commande que les instructions SQO et SQL

Longueur DINT immédiat nombre d’éléments dans le tableau (tableau du séquenceur) à comparer

Position DINT immédiat position en cours dans le tableau

la valeur initiale est en général 0

Mnémonique Type de données

Description

.ER BOOL Le bit d’erreur est activé lorsque .LEN ≤ 0, .POS < 0 ou .POS > .LEN.

.LEN DINT La longueur indique le nombre d’étapes dans le tableau du séquenceur.

.POS DINT La position identifie l’élément que l’instruction est en train de comparer.

416 Publication 1756-RM003K-FR-P – Juillet 2008

Page 417: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions séquenceurs (SQI, SQO, SQL) Chapitre 10

Description : Lorsqu’elle est activée, l’instruction SQI compare un élément Source par l’intermédiaire d’un masque avec un élément de tableau pour détecter une égalité.

Utilise généralement la même structure de commande que les instructions SQO et SQL.

L’instruction SQI fonctionne avec une mémoire contiguë.

Entrée d’une valeur de masque immédiate

Lorsque vous entrez un masque, le logiciel de programmation passe à des valeurs décimales par défaut. Si vous voulez entrer un masque à l’aide d’un autre format, faites précéder la valeur du préfixe correct.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Préfixe Description

16# hexadécimal

par exemple ; 16#0F0F

8# octal

par exemple ; 8#16

2# binaire

par exemple ; 2#00110011

Publication 1756-RM003K-FR-P – Juillet 2008 417

Page 418: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 10 Instructions séquenceurs (SQI, SQO, SQL)

Exécution :

Condition Action logique à relais

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai

.LEN ≤ 0

.POS < 0ou

.POS > .LEN

non

oui

fin

le bit .ER est activé

l’état de sortie de la ligne est faux

Source masquée = Tableau masqué[.POS]

oui

le bit .ER est effacé

non

l’état de sortie de la ligne est vrai

418 Publication 1756-RM003K-FR-P – Juillet 2008

Page 419: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions séquenceurs (SQI, SQO, SQL) Chapitre 10

Exemple : Lorsqu’elle est activée, l’instruction SQI passe value_2 à travers le masque pour déterminer si le résultat est égal à l’élément actuel dans array_dint. La comparaison masquée est vraie, l’état de sortie de la ligne passe donc à vrai.

Un 0 dans le masque signifie que le bit n’est pas comparé (indiqué par xxxx dans cet exemple).

Utiliser SQI sans SQO

Si vous utilisez l’instruction SQI sans une instruction SQO appariée, vous devez incrémenter le tableau séquenceur extérieurement.

L’instruction SQI compare la valeur source. L’instruction ADD incrémente le tableau du séquenceur. L’instruction GRT détermine s’il existe une autre valeur à vérifier dans le tableau du séquenceur. L’instruction MOV réinitialise la valeur de position après avoir complètement parcouru le tableau du séquenceur une fois.

Opérande SQI Exemple de valeurs (DINT affichées en binaire)

Source xxxxxxxx xxxxxxxx xxxx0101 xxxx1010

Masque 00000000 00000000 00001111 00001111

Tableau xxxxxxxx xxxxxxxx xxxx0101 xxxx1010

Publication 1756-RM003K-FR-P – Juillet 2008 419

Page 420: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 10 Instructions séquenceurs (SQI, SQO, SQL)

Sortie séquenceur (SQO) L’instruction SQO active les conditions de sortie pour l’étape suivante d’une paire en séquence d’instructions SQO/SQI.

Opérandes :

Logique à relais

Structure CONTROL

Opérande Type Format Description

Tableau DINT point de tableau

tableau de séquenceur

spécifier le premier élément du tableau de séquenceur

n’utilisez pas CONTROL.POS dans l’indice

Masque SINT

INT

DINT

point

immédiat

bits à bloquer ou à passer

Un point SINT ou INT est converti en valeur DINT par extension de signe.

Destination DINT point données de sortie provenant du tableau du séquenceur

Commande CONTROL point structure de commande pour l’opération

utilise généralement la même structure de commande que les instructions SQI et SQL

Longueur DINT immédiat nombre d’éléments dans le tableau (tableau séquenceur) à sortir

Position DINT immédiat position en cours dans le tableau

la valeur initiale est en général 0

Mnémonique Type de données

Description

.EN BOOL Le bit d’activation indique que l’instruction SQO est activée.

.DN BOOL Le bit de fin est activé lorsque tous les éléments spécifiés ont été déplacés dans la Destination.

.ER BOOL Le bit d’erreur est activé lorsque .LEN ≤ 0, .POS < 0 ou .POS > .LEN.

.LEN DINT La longueur indique le nombre d’étapes dans le tableau du séquenceur.

.POS DINT La position identifie l’élément que l’automate est en train de manipuler.

420 Publication 1756-RM003K-FR-P – Juillet 2008

Page 421: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions séquenceurs (SQI, SQO, SQL) Chapitre 10

Description : Lorsqu’elle est activée, l’instruction SQO incrémente la position, déplace les données de la position à travers le masque et enregistre le résultat dans la Destination. Si .POS > .LEN, l’instruction revient au début du tableau séquenceur et continue avec .POS = 1.

Utilise généralement la même structure de commande que les instructions SQI et SQL.

L’instruction SQO fonctionne avec une mémoire contiguë.

Entrée d’une valeur de masque immédiate

Lorsque vous entrez un masque, le logiciel de programmation passe à des valeurs décimales par défaut. Si vous voulez entrer un masque à l’aide d’un autre format, faites précéder la valeur du préfixe correct.

Indicateurs d’état arithmétique Non affectés

Conditions d’erreur : Aucune

Exécution :

Préfixe Description

16# hexadécimal

par exemple ; 16#0F0F

8# octal

par exemple ; 8#16

2# binaire

par exemple ; 2#00110011

Condition Action logique à relais

Pré-scrutation Le bit .EN est activé pour empêcher un faux chargement lorsque la scrutation du programme commence.

L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux Le bit .EN est effacé.

L’état de sortie de la ligne est réglé sur faux.

Publication 1756-RM003K-FR-P – Juillet 2008 421

Page 422: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 10 Instructions séquenceurs (SQI, SQO, SQL)

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

Condition Action logique à relais

L’état d’entrée de la ligne est vrai

.LEN ≤ 0 ou .POS < 0

non

oui

le bit .DN est activé

.POS = .LENnon

oui

examiner le bit .EN

.EN = 0

.EN = 1

le bit .EN est activé

le bit .ER est effacé

le bit .DN est activé

.POS ≥ .LENoui

non

.POS = .POS + 1

la valeur.POS revient à sa

valeur de départ

oui

non

le bit .ER est activé

fin

l’état de sortie de la ligne est vrai

le bit .DN est activé.POS = .LENoui

non

Destination = (Destination AND (NOT(Mask)) OR (Array[control.POS] AND Mask)

.POS > .LENnon

oui

.POS = 1

erreur aller à

erreur

422 Publication 1756-RM003K-FR-P – Juillet 2008

Page 423: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions séquenceurs (SQI, SQO, SQL) Chapitre 10

Exemple : Lorsqu’elle est activée, l’instruction SQO incrémente la position, passe les données de la position dans array_dint à travers le masque et enregistre le résultat dans value_1.

Un 0 dans le masque signifie que le bit n’est pas comparé (indiqué par xxxx dans cet exemple).

Utiliser SQI avec SQOSi vous apparez l’instruction SQI avec une instruction SQO, assurez-vous que les deux instructions utilisent les mêmes valeurs Commande, Longueur et Position.

Réinitialisation de la position de SQOChaque fois que l’automate passe du mode Programmation au mode Exécution, l’instruction SQO efface (initialise) la valeur .POS. Pour réinitialiser .POS à la valeur d’initialisation (.POS = 0), utilisez une instruction RES pour effacer la valeur de position. Cet exemple utilise l’état du bit de première scrutation pour effacer la valeur .POS.

Opérande SQO Exemple de valeurs (utilisation de DINT affichées en binaire)

Tableau xxxxxxxx xxxxxxxx xxxx0101 xxxx1010

Masque 00000000 00000000 00001111 00001111

Destination xxxxxxxx xxxxxxxx xxxx0101 xxxx1010

Publication 1756-RM003K-FR-P – Juillet 2008 423

Page 424: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 10 Instructions séquenceurs (SQI, SQO, SQL)

Chargement de séquenceur (SQL)

L’instruction SQL charge les conditions de référence dans le tableau du séquenceur.

Opérandes :

Logique à relais

Structure CONTROL

Opérande Type Format Description

Tableau DINT point de tableau

tableau de séquenceur

spécifier le premier élément du tableau de séquenceur

n’utilisez pas CONTROL.POS dans l’indice

Source SINT

INT

DINT

point

immédiat

données d’entrée à charger dans le tableau du séquenceur

Un point SINT ou INT est converti en valeur DINT par extension de signe.

Commande CONTROL point structure de commande pour l’opération

utilise généralement la même structure de commande que les instructions SQI et SQO

Longueur DINT immédiat nombre d’éléments à charger dans le tableau (tableau de séquenceur)

Position DINT immédiat position en cours dans le tableau

la valeur initiale est en général 0

Mnémonique Type de données

Description

.EN BOOL Le bit d’activation indique que l’instruction SQL est activée.

.DN BOOL Le bit de fin est activé lorsque tous les éléments spécifiés ont été chargés dans Tableau.

.ER BOOL Le bit d’erreur est activé lorsque .LEN ≤ 0, .POS < 0 ou .POS > .LEN.

.LEN DINT La longueur indique le nombre d’étapes dans le tableau du séquenceur.

.POS DINT La position identifie l’élément que l’automate est en train de manipuler.

424 Publication 1756-RM003K-FR-P – Juillet 2008

Page 425: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions séquenceurs (SQI, SQO, SQL) Chapitre 10

Description : Lorsqu’elle est activée, l’instruction SQL incrémente à la position suivante dans le tableau séquenceur et charge la valeur Source dans cette position. SI le bit .DN est activé ou si .POS ≥ .LEN, l’instruction active .POS=1.

Utilise généralement la même structure de commande que les instructions SQI et SQO.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur :

Exécution :

IMPORTANT Vous devez tester et vous assurez que l’instruction ne change pas de données que vous ne voulez pas qu’elle change.

L’instruction SQL fonctionne avec une mémoire contiguë. Dans certains cas, elle charge des données au-delà du tableau dans d’autres membres du point. Ceci se produit si la longueur est trop grande et que le point est un type de données utilisateur.

Un défaut majeur se produit si Type de défaut Code de défaut

Longueur > taille de Tableau 4 20

Condition Action logique à relais

Pré-scrutation Le bit .EN est activé pour empêcher un faux chargement lorsque la scrutation du programme commence.

L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux Le bit .EN est effacé.

L’état de sortie de la ligne est réglé sur faux.

Publication 1756-RM003K-FR-P – Juillet 2008 425

Page 426: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 10 Instructions séquenceurs (SQI, SQO, SQL)

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

Condition Action logique à relais

L’état d’entrée de la ligne est vrai

.LEN ≤ 0 ou .POS < 0

non

oui

le bit .DN est activé

.POS = .LENnon

oui

examiner le bit .EN

.EN = 0

.EN = 1

le bit .EN est activé

le bit .ER est effacé

le bit .DN est activé

.POS ≥ .LENoui

non

.POS = .POS + 1

la valeur .POS revient à sa valeur de

départ

oui

non

le bit .ER est activé

fin

l’état de sortie de la ligne est vrai

le bit .DN est activé.POS = .LENoui

non

.POS > .LENnon

oui

.POS = 1

erreur aller à

erreur

.LEN > taille du tableau

oui

non

Array[control.POS] = Source

défaut majeur

426 Publication 1756-RM003K-FR-P – Juillet 2008

Page 427: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions séquenceurs (SQI, SQO, SQL) Chapitre 10

Exemple : Lorsqu’elle est activée, l’instruction SQL charge value_3 dans la position suivante du tableau du séquenceur, qui est array_dint[5] dans cet exemple.

avant chargement après chargement

array_dint[0] 00000 00000

11111 11111

22222 22222

33333 control_1.pos = 5 33333

44444 value_3 = 55555 44444

array_dint[5] 00000 55555

00000 00000 control_1.pos = 6

00000 00000

00000 00000

00000 00000

Publication 1756-RM003K-FR-P – Juillet 2008 427

Page 428: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 10 Instructions séquenceurs (SQI, SQO, SQL)

Notes :

428 Publication 1756-RM003K-FR-P – Juillet 2008

Page 429: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 11

Instructions de commande de programme(JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Introduction Utilisez l’instruction de commande de programme pour changer le déroulement de la logique.

Si vous voulez Utilisez cette instruction Disponible dans ces langages Voir page

sauter une section de logique qui n’a pas toujours besoin d’être exécutée

JMPLBL

Logique à relais 430

sauter à un sous-programme séparé, passer des données au sous-programme, exécuter le sous-programme et produire des résultats

JSRSBRRET

Logique à relais 432

Bloc fonctionnel

Texte structuré

sauter à un sous-programme externe (automate SoftLogix5800 uniquement)

JXR Logique à relais 443

marquer une fin temporaire qui arrête l’exécution du sous-programme

TND Logique à relais 446

Texte structuré

désactiver toutes les lignes dans une section logique

MCR Logique à relais 448

désactiver les tâches utilisateur UID Logique à relais 450

Texte structuré

activer les tâches utilisateur UIE Logique à relais 450

Texte structuré

désactiver une ligne AFI Logique à relais 452

insérer un marqueur dans la logique NOP Logique à relais 453

terminer une transition de graphe de fonctionnement séquentiel

EOT Logique à relais 454

Texte structuré

mettre en pause un graphe de fonctionnement séquentiel

SFP Logique à relais 456

Texte structuré

réinitialiser un graphe de fonctionnement séquentiel

SFR Logique à relais 458

Texte structuré

déclencher l’exécution d’une tâche événementielle

EVENT Logique à relais 460

Texte structuré

429Publication 1756-RM003K-FR-P – Juillet 2008 429

Page 430: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 11 Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Saut vers une étiquette (JMP)Etiquette (LBL)

Les instructions JMP et LBL sautent des portions de logique à relais.

Opérandes :

Logique à relais

Description : Lorsqu’elle est activée, l’instruction JMP passe à l’instruction LBL référencée et l’automate continue l’exécution à partir de là. Lorsqu’elle est désactivée, l’instruction JMP n’affecte pas l’exécution de la logique à relais.

L’instruction JMP peut déplacer l’exécution de la logique à relais vers l’avant ou l’arrière. Le saut avant vers une étiquette réduit la durée de scrutation du programme en laissant de côté un segment logique jusqu’à ce que vous en ayez besoin. Le saut arrière permet à l’automate de répéter des itérations de logique.

Prenez soin de ne pas faire trop de sauts arrières. Le temporisateur du chien de garde peut être dépassé parce que l’automate n’atteint jamais la fin de la logique, ce qui met l’automate en défaut.

L’instruction LBL est la cible de l’instruction JMP qui possède le même nom d’étiquette. Assurez-vous que l’instruction LBL est la première instruction sur sa ligne.

Un nom d’étiquette doit être unique dans un sous-programme. Le nom peut :

• avoir un maximum de 40 caractères ;

• contenir des lettres, des nombres et des caractères de soulignement (_).

Opérande Type Format Description

Instruction JMP

Nom d’étiquette

nom d’étiquette

entrer le nom de l’instruction LBL associée

Instruction LBL

Nom d’étiquette

nom d’étiquette

l’exécution saute à l’instruction LBL avec nom d’étiquette référencé

ATTENTION La logique sautée n’est pas scrutée. Placez la logique critique en dehors de la zone sautée.

430 Publication 1756-RM003K-FR-P – Juillet 2008

Page 431: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT) Chapitre 11

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur :

Exécution :

Exemple : Lorsque l’instruction JMP est activée, l’exécution saute des lignes de logique successives jusqu’à atteindre la ligne contenant l’instruction LBL avec label_20.

Un défaut majeur se produit si

Type de défaut Code de défaut

l’étiquette n’existe pas 4 42

Condition Action logique à relais

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai L’état de sortie de la ligne est réglé sur vrai.

L’exécution saute à la ligne contenant l’instruction LBL avec le nom d’étiquette référencé.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

[autres lignes de code]

Publication 1756-RM003K-FR-P – Juillet 2008 431

Page 432: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 11 Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Saut vers sous-programme (JSR)Sous-programme (SBR) Retour (RET)

L’instruction JSR fait passer l’exécution à un autre sous-programme. Les instructions SBR et RET sont des instructions en option qui échangent les données avec l’instruction JSR.

Opérande JSR :

Logique à relais

Opérande Type Format Description

Nom du sous-programme

ROUTINE nom sous-programme à exécuter

Paramètre d’entrée

BOOL

SINT

INT

DINT

REAL

structure

immédiat

point

point de tableau

données de ce sous-programme que vous voulez copier vers un point dans le sous-programme secondaire

• Les paramètres d’entrée sont en option.

• Entrer plusieurs paramètres d’entrée, si nécessaire.

Paramètre de retour

BOOL

SINT

INT

DINT

REAL

structure

point

point de tableau

point de ce sous-programme vers lesquels vous voulez copier un résultat du sous-programme secondaire

• Les paramètres de retour sont en option.

• Entrer plusieurs paramètres de retour, si nécessaire.

432 Publication 1756-RM003K-FR-P – Juillet 2008

Page 433: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT) Chapitre 11

Opérande JSR (suite) :

Texte structuré

Bloc fonctionnel

Les opérandes sont identiques à ceux de l’instruction JSR en logique à relais.

Opérande Type Format Description

Nom du sous-programme

ROUTINE nom sous-programme à exécuter

Comptage d’entrée

SINT

INT

DINT

REAL

immédiat nombre de paramètres d’entrée

Paramètre d’entrée

BOOL

SINT

INT

DINT

REAL

structure

immédiat

point

point de tableau

données de ce sous-programme que vous voulez copier vers un point dans le sous-programme secondaire

• Les paramètres d’entrée sont en option.

• Entrer plusieurs paramètres d’entrée, si nécessaire.

Paramètre de retour

BOOL

SINT

INT

DINT

REAL

structure

point

point de tableau

point de ce sous-programme vers lesquels vous voulez copier un résultat du sous-programme secondaire

• Les paramètres de retour sont en option.

• Entrer plusieurs paramètres de retour, si nécessaire.

JSR(RoutineName,InputCount,InputPar,ReturnPar);

Paramètres d’entrée Paramètres de retour

❇ ❇

Publication 1756-RM003K-FR-P – Juillet 2008 433

Page 434: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 11 Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Opérandes SBR : L’instruction SBR doit être la première instruction dans un sous-programme en logique à relais ou en texte structuré.

Logique à relais

Texte structuré

Les opérandes sont identiques à ceux de l’instruction SBR en logique à relais.

Bloc fonctionnel

Les opérandes sont identiques à ceux de l’instruction SBR en logique à relais.

ATTENTION Pour chaque paramètre dans une instruction SBR ou RET, utilisez le même type de données (y compris les dimensions de tableau) que celui du paramètre correspondant dans l’instruction JSR. L’utilisation de types de données différents peut produire des résultats inattendus.

Opérande Type Format Description

Paramètre d’entrée

BOOL

SINT

INT

DINT

REAL

structure

point

point de tableau

point de ce sous-programme vers lequel vous voulez copier le paramètre d’entrée correspondant à partir de l’instruction JSR

SBR(InputPar);

Paramètres

434 Publication 1756-RM003K-FR-P – Juillet 2008

Page 435: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT) Chapitre 11

Opérandes RET :

Logique à relais

Texte structuré

Les opérandes sont identiques à ceux de l’instruction RET en logique à relais.

Bloc fonctionnel

Les opérandes sont identiques à ceux de l’instruction RET en logique à relais.

Description : L’instruction JSR exécute le sous-programme spécifié, qui est renvoyé vers un sous-programme secondaire :

• Le sous-programme est exécuté une fois.

• Une fois le sous-programme exécuté, l’exécution logique revient au sous-programme qui contient l’instruction JSR.

Opérande Type Format Description

Paramètre de retour

BOOL

SINT

INT

DINT

REAL

structure

immédiat

point

point de tableau

donnée de ce sous-programme que vous voulez copier dans le paramètre de retour correspondant dans l’instruction JSR

RET(ReturnPar);

Paramètres

Publication 1756-RM003K-FR-P – Juillet 2008 435

Page 436: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 11 Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Pour programmer un saut vers un sous-programme, suivez les directives suivantes :

Le schéma suivant illustre le fonctionnement des instructions.

IMPORTANT N’utilisez pas d’instruction JSR pour appeler (exécuter) le sous-programme principal.

• Vous pouvez insérer une instruction JSR dans le sous-programme principal ou dans tout autre sous-programme.

• Si vous utilisez une instruction JSR pour appeler le sous-programme principal, puis que vous insérez une instruction RET dans ce sous-programme principal, un défaut majeur se produit (type 4, code 31).

���

������

������ �������

Sous-programme

JSR

SBR

RET

RET

JSR

1. Si vous voulez copier des données vers un point dans le sous-programme, entrez un paramètre d’entrée.

2. Si vous voulez copier un résultat du sous-programme vers un point dans ce sous-programme, entrez un paramètre de retour.

3. Entrez autant de paramètres d’entrée et de retour que nécessaire.

SBR

1. Si l’instruction JSR possède un paramètre d’entrée, entrez une instruction SBR.

2. Placez l’instruction SBR comme première instruction dans le sous-programme.

3. Pour chaque paramètre d’entrée dans l’instruction JSR, entrez le point vers lequel vous voulez copier les données.

42974

Sous-programme

RET

1. Si l’instruction JSR possède un paramètre de retour, entrez une instruction RET.

2. Placez l’instruction RET comme dernière instruction dans le sous-programme.

3. Pour chaque paramètre de retour dans l’instruction JSR, entrez un paramètre de retour à envoyer à l’instruction JSR.

4. Dans un sous-programme à relais, placez des instructions RET supplémentaires pour quitter le sous-programme secondaire en fonction de différentes conditions d’entrée, si nécessaire. (Les sous-programmes de bloc-fonction ne permettent qu’une instruction RET.)

436 Publication 1756-RM003K-FR-P – Juillet 2008

Page 437: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT) Chapitre 11

Il n’y a pas de restrictions, à part la quantité de mémoire de l’automate, au nombre de sous-programmes imbriqués que vous pouvez avoir ou au nombre de paramètres que vous passez ou renvoyez.

Indicateurs d’état arithmétique : Les indicateurs d’état arithmétique sont affectés.

Conditions d’erreur :

Exécution :

Logique à relais et texte structuré

���

���

���

�����

������ �������

sous-programme principal

niveau 1 niveau 3niveau 2

JSRJSR

JSR

SBRSBRSBR

RETRETRET

action_1

action_2 action_3

Un défaut majeur se produit si Type de défaut Code de défaut

L’instruction JSR a moins de paramètres d’entrée que l’instruction SBR 4 31

L’instruction JSR passe à un sous-programme de gestion des défauts 4 ou fourni par l’utilisateur

0 ou fourni par l’utilisateur

L’instruction RET a moins de paramètres de retour que l’instruction JSR 4 31

Le sous-programme principal contient une instruction RET 4 31

Condition Action logique à relais Action texte structuré

Pré-scrutation L’automate exécute tous les sous-programmes quel que soit l’état de ligne. Pour assurer la pré-scrutation de toutes les lignes du sous-programme, l’automate ignore les instructions RET. (C.-à-d. que les instructions RET ne provoquent pas une sortie du sous-programme.)

• Version 6.x et antérieures, les entrées et les paramètres de retour sont passés.

• Version 7.x et ultérieures, les entrées et les paramètres de retour ne sont pas passés.

Si des appels récurrents existent dans le même sous-programme, le sous-programme n’est pré-scruté que la première fois. Si des appels multiples existent (non récurrents) dans le même sous-programme, le sous-programme est pré-scruté à chaque fois.

L’état de sortie de la ligne est réglée sur faux (logique à relais uniquement).

L’état d’entrée de la ligne est faux pour l’instruction JSR

Le sous-programme n’est pas exécuté.

Les sorties du sous-programme gardent leur dernier état.

L’état de sortie de la ligne est réglé sur faux.

Publication 1756-RM003K-FR-P – Juillet 2008 437

Page 438: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 11 Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Bloc fonctionnel

L’état d’entrée de la ligne est vrai

L’instruction est exécutée.

L’état de sortie de la ligne est réglé sur vrai.

EnableIn est activé – EnableIn est toujours activé.

L’instruction est exécutée.

Exécution de l’instruction

Post-scrutation Même action que la pré-scrutation décrite ci-dessus. Même action que la pré-scrutation décrite ci-dessus.

Condition Action logique à relais Action texte structuré

paramètres d’entréeoui

non

JSR copie les paramètres d’entrée dans les points SBR

fin

l’exécution de la logique commence dans le sous-programme identifié par JSR

fin du sous-programme

oui

non

l’état de sortie de la ligne est faux

continue l’exécution du sous-programme

paramètres de retouroui

non

RET copie les paramètres de retour dans les points JSR appropriés

l’état de sortie de la ligne est vrai

l’exécution de la logique revient à JSR

Instruction REToui

non

438 Publication 1756-RM003K-FR-P – Juillet 2008

Page 439: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT) Chapitre 11

Condition Action

Pré-scrutation Aucune.

Première scrutation de l’instruction

Aucune.

Première exécution de l’instruction

Aucune.

Exécution normale 1. Si le sous-programme contient une instruction SBR, l’automate exécute d’abord l’instruction SBR.

2. L’automate verrouille toutes les valeurs de données dans les IREF.

3. L’automate exécute les autres blocs fonctionnels dans l’ordre déterminé par leur câblage. Ceci comprend les autres instructions JSR.

4. L’automate écrit les sorties dans des OREF.

5. Si le sous-programme contient une instruction RET, l’automate exécute l’instruction RET en dernier.

Post-scrutation Le sous-programme est appelé.

Si le sous-programme est un sous-programme SFC, il est initialisé de la même façon que pendant la pré-scrutation.

Publication 1756-RM003K-FR-P – Juillet 2008 439

Page 440: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 11 Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Exemple 1 : L’instruction JSR passe value_1 et value_2 dans routine_1.

L’instruction SBR reçoit value_1 et value_2 de l’instruction JSR et copie ces valeurs dans value_a et value_b, respectivement. L’exécution de la logique continue dans ce sous-programme.

L’instruction RET envoie float_a à l’instruction JSR. L’instruction JSR reçoit float_a et copie la valeur dans float_value_1. L’exécution de la logique continue avec l’instruction suivant l’instruction JSR.

Logique à relais

Texte structuré

Sous-programme Programme

Sous-programme principal

Sous-programme

[autres lignes de code]

Sous-programme Programme

Sous-programme principal JSR(routine_1,2,value_1,value_2,float_value_1);

Sous-programme SBR(value_a,value_b);

<déclarations>;

RET(float_a);

440 Publication 1756-RM003K-FR-P – Juillet 2008

Page 441: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT) Chapitre 11

Exemple 2 :

Logique à relais

MainRoutine

Lorsque abc est actif, subroutine_1 est exécuté, calcule le nombre de cookies et place une valeur dans cookies_1.

Ajoute la valeur de cookies_1 à cookies_2 et enregistre le résultat dans total_cookies.

Subroutine_1

Lorsque def est activé, l’instruction RET renvoie value_1 au paramètre JSR cookies_1 et le reste du sous-programme n’est pas scruté.

Lorsque def est désactivé (ligne précédente) et ghi est activé, l’instruction RET renvoie value_2 au paramètre JSR cookies_1 et le reste du sous-programme n’est pas scruté.

Lorsque def et ghi sont désactivés (lignes précédentes), l’instruction RET renvoie value_3 au paramètre JSR cookies_1.

Publication 1756-RM003K-FR-P – Juillet 2008 441

Page 442: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 11 Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Exemple 3 :

Bloc fonctionnel

42973

42972

2. Les instructions ADD additionnent Input_A, Input_B et Input_C et placent le résultat dans Sum_A_B_C.

Instruction JSR dans Routine_A

Blocs-fonctions du sous-programme Add_Three_Inputs

1. Les valeurs dans Add_Input_1, Add_Input_2 et Add_Input_3 sont copiées dans Input_A, Input_B et Input_C, respectivement.

3. La valeur de Sum_A_B_C est copiée dans Add_Three_Result.

442 Publication 1756-RM003K-FR-P – Juillet 2008

Page 443: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT) Chapitre 11

Saut vers sous-programme externe (JXR)

L’instruction JXR exécute un sous-programme externe. Cette instruction n’est prise en charge que par les automates SoftLogix5800.

Opérandes :

Logique à relais

.

Opérande Type Format Description

Nom du sous-programme externe

ROUTINE nom sous-programme externe à exécuter

Commande desous-programme externe

EXT_ROUTINE_CONTROL

point structure de commande (voir la page suivante)

Paramètre BOOL

SINT

INT

DINT

REAL

structure

immédiat

point

point de tableau

données de ce sous-programme que vous voulez copier vers une variable dans le sous-programme externe

• Les paramètres sont en option.

• Entrez plusieurs paramètres, si nécessaire.

• Vous pouvez avoir jusqu’à 10 paramètres.

Paramètre de retour

BOOL

SINT

INT

DINT

REAL

point point de ce sous-programme vers lequel vous voulez copier un résultat du sous-programme externe

• Le paramètre de retour est en option.

• Vous ne pouvez avoir qu’un paramètre de retour.

Publication 1756-RM003K-FR-P – Juillet 2008 443

Page 444: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 11 Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Structure EXT_ROUTINE_CONTROL

Mnémonique Type de données Description Exécution

ErrorCode SINT Si une erreur se produit, cette valeur identifie l’erreur. Les valeurs valables vont de 0 à 255.

Ce ne sont pas des codes d’erreur prédéfinis. Le développeur du sous-programme externe doit fournir les codes d’erreur.

NumParams SINT Cette valeur indique le nombre de paramètres associés à cette instruction.

Affichage uniquement – cette information est déduite de l’entrée de l’instruction.

ParameterDefs EXT_ROUTINE_PARAMETERS[10]

Ce tableau contient les définitions des paramètres à transmettre au sous-programme externe. L’instruction peut transmettre jusqu’à 10 paramètres.

Affichage uniquement – cette information est déduite de l’entrée de l’instruction.

ReturnParamDef EXT_ROUTIN_PARAMETERS

Cette valeur contient des définitions du paramètre de retour provenant du sous-programme externe. Il n’existe qu’un paramètre de retour.

Affichage uniquement – cette information est déduite de l’entrée de l’instruction.

EN BOOL Lorsqu’il est activé, le bit de validation indique que l’instruction JXR est activée.

Le sous-programme externe active ce bit.

ReturnsValue BOOL S’il est activé, ce bit indique qu’un paramètre de retour a été entré pour l’instruction. S’il est effacé, ce bit indique qu’aucun paramètre de retour n’a été entré pour l’instruction.

Affichage uniquement – cette information est déduite de l’entrée de l’instruction.

DN BOOL Le bit de fin est activé lorsque le sous-programme externe a été exécuté complètement une fois.

Le sous-programme externe active ce bit.

ER BOOL Le bit d’erreur est activé si une erreur se produit. L’instruction s’arrête jusqu’à ce que le programme efface le bit d’erreur.

Le sous-programme externe active ce bit.

FirstScan BOOL Ce bit recherche si c’est la première scrutation après la commutation de l’automate en mode Exécution. Utilisez FirstScan pour initialiser le sous-programme externe, si nécessaire.

L’automate active ce bit pour indiquer l’état de la scrutation.

EnableOut BOOL Activation de la sortie. Le sous-programme externe active ce bit.

EnableIn BOOL Entrée activée. L’automate active ce bit pour indiquer l’état d’entrée de la ligne. L’instruction est exécutée quel que soit l’état de la ligne. Le développeur du sous-programme externe doit surveiller cet état et doit agir en conséquence.

User1 BOOL Ces bits sont disponibles pour l’utilisateur. L’automate n’initialise pas ces bits.

Soit le sous-programme externe, soit le programme utilisateur peut activer ces bits.

User0 BOOL

ScanType1 BOOL Ces bits indiquent le type de scrutation en cours :

Valeurs de bit : Type de scrutation :

00 Normale

01 Pré-scruation

10 Post-scrutation (pas applicableau programmes en logique à relais)

L’automate active ces bits pour indiquer l’état de la scrutation.

ScanType0 BOOL

444 Publication 1756-RM003K-FR-P – Juillet 2008

Page 445: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT) Chapitre 11

Description : Utilisez l’instruction Saut vers sous-programme externe (JXR) pour appeler le sous-programme externe à partir d’une logique à relais dans votre projet. L’instruction JXR prend en charge plusieurs paramètres pour permettre de transmettre des valeurs entre la logique à relais et le sous-programme externe.

L’instruction JXR est similaire à l’instruction Saut vers sous-programme (JSR). L’instruction JXR initie l’exécution du sous-programme externe spécifié :

• le sous-programme est exécuté une fois ;

• une fois le sous-programme externe exécuté, l’exécution logique revient au sous-programme qui contient l’instruction JXR.

Indicateurs d’état arithmétique : Les indicateurs d’état arithmétique ne sont pas affectés.

Conditions d’erreur :

Exécution : L’instruction JXR peut être synchrone ou asynchrone, selon la mise en œuvre de la DLL. Le code de la DLL définit également comment répondre à l’état de la scrutation, à l’état d’entrée de la ligne et à l’état de sortie de la ligne.

Pour plus d’informations sur l’utilisation de l’instruction JXR et sur la création de sous-programmes externes, voir la publication 1789-UM002, SoftLogix5800 System User Manual.

Un défaut majeur se produit si Type de défaut

Code du défaut

• une anomalie se produit dans la DLL du sous-programme externe

• la DLL n’a pas pu être chargée

• le point d’entrée n’a pas été trouvé dans la DLL

4 88

Publication 1756-RM003K-FR-P – Juillet 2008 445

Page 446: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 11 Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Fin temporaire (TND) L’instruction TND agit comme limite.

Opérandes :

Opérandes de logique à relais

Aucune

Texte structuré

Aucune

Vous devez saisir les parenthèses () après la mnémonique de l’instruction, même s’il n’y a pas d’opérandes.

Description : Lorsqu’elle est activée, l’instruction TND laisse l’automate exécuter la logique jusqu’à cette instruction.

Lorsqu’elle est activée, l’instruction TND agit comme fin du sous-programme. Lorsque l’automate scrute une instruction TND, l’automate se déplace jusqu’à la fin du sous-programme en cours. Si l’instruction TND est dans un sous-programme, la commande revient au sous-programme appelant. Si l’instruction TND est dans un sous-programme principal, la commande revient au programme suivant dans la tâche en cours.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Exécution :

TND();

Condition Action logique à relais Action texte structuré

Pré-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

L’état d’entrée de la ligne est faux

L’état de sortie de la ligne est réglé sur faux. –

L’état d’entrée de la ligne est vrai

L’instruction est exécutée.

L’état de sortie de la ligne est réglé sur vrai.

EnableIn est activé – EnableIn est toujours activé.

L’instruction est exécutée.

Exécution de l’instruction Le sous-programme en cours s’arrête. Le sous-programme en cours s’arrête.

Post-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

446 Publication 1756-RM003K-FR-P – Juillet 2008

Page 447: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT) Chapitre 11

Exemple : Vous pouvez utiliser l’instruction TND lors du débogage ou du dépannage pour exécuter la logique jusqu’à un certain point. Déplacez l’instruction TND progressivement dans la logique pendant le débogage de chaque nouvelle section.

Lorsque l’instruction TND est activée, l’automate arrête de scruter le sous-programme en cours.

Logique à relais

Texte structuré

TND();

Publication 1756-RM003K-FR-P – Juillet 2008 447

Page 448: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 11 Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Relais de contrôle maître (MCR)

L’instruction MCR, utilisée par paire, crée une zone programme qui peut désactiver toutes les lignes entre les instructions MCR.

Opérandes :

Logique à relais

Aucune

Description : Lorsque la zone MCR est activée, les lignes de cette zone sont scrutées à la recherche d’états vrai ou faux normaux. Lorsqu’elle est désactivée, l’automate scrute toujours les lignes de la zone MCR, mais la durée de scrutation est réduite parce que les sorties non rémanentes de la zone sont désactivées. L’état d’entrée de la ligne est faux pour toutes les instructions dans la zone MCR désactivée.

Lorsque vous programmez une zone MCR, notez que :

• vous devez terminer la zone par une instruction MCR sans condition ;

• vous ne pouvez pas imbriquer une zone MCR dans une autre ;

• vous ne devez pas sauter à une autre zone MCR. Si la zone est fausse, sauter dans la zone l’active à partir du point où vous avez sauté jusqu’à la fin de la zone ;

• vous n’avez pas besoin de programmer une instruction MCR pour terminer la zone si celle-ci continue jusqu’à la fin du sous-programme.

L’instruction MCR ne remplace pas un relais de contrôle maître câblé offrant la capacité d’arrêt d’urgence. Vous devez quand même installer un relais de contrôle maître câblé pour pouvoir couper l’alimentation des E/S en cas d’urgence.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

ATTENTION Ne superposez pas et n’imbriquez pas les zones MCR. Chaque zone MCR doit être séparée et complète. S’il y a superposition ou imbrication, un fonctionnement imprévisible de la machine peut se produire, risquant de détériorer l’équipement et/ou d’occasionner des blessures.

Placez les opérations critiques en dehors de la zone MCR. Si vous commencez des instructions telles que des temporisateurs dans une zone MCR, l’exécution de l’instruction s’arrête lorsque la zone est désactivée et le temporisateur est effacé.

448 Publication 1756-RM003K-FR-P – Juillet 2008

Page 449: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT) Chapitre 11

Exécution :

Exemple : Lorsque la première instruction MCR est activée (input_1, input_2 et input_3 sont activées), l’automate exécute les lignes de la zone MCR (entre les deux instructions MCR) et active ou efface les sorties, selon l’état des entrées.

Lorsque la première instruction MCR est désactivée (input_1, input_2 et input_3 ne sont pas toutes activées), l’automate exécute les lignes de la zone MCR (entre les deux instructions MCR) et l’état d’entrée de la ligne passe à faux pour toutes les lignes de la zone MCR, quel que soit l’état des entrées.

Condition Action logique à relais

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

Les instructions de la zone sont scrutées, mais l’état de la ligne est faux et les sorties non rémanentes de la zone sont désactivées.

L’état d’entrée de la ligne est vrai L’état de sortie de la ligne est réglé sur vrai.

Les instructions de la zone sont scrutées normalement.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

Publication 1756-RM003K-FR-P – Juillet 2008 449

Page 450: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 11 Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Désactivation d’interruption par l’utilisateur (UID) Activation d’interruption par l’utilisateur (UIE)

Les instructions UID et UIE travaillent ensemble pour empêcher un petit nombre de lignes critiques d’être interrompues par d’autres tâches.

Opérandes :

Logique à relais

Aucune

Texte structuré

Aucune

Vous devez saisir les parenthèses () après la mnémonique de l’instruction, même s’il n’y a pas d’opérandes.

Description : Lorsque l’état d’entrée de la ligne est vrai :

• l’instruction UID empêche les tâches à priorité supérieure d’interrompre la tâche en cours, mais n’empêche pas l’exécution d’un sous-programme de gestion des défauts ou du gestionnaire des défauts de l’automate ;

• l’instruction UIE active d’autres tâches pour interrompre la tâche courante.

Pour empêcher une série de lignes d’être interrompues :

1. réduisez au minimum le nombre de lignes qui ne doivent pas être interrompues. La désactivation des interruptions pendant une durée prolongée peut entraîner la perte de la communication ;

2. entrez une ligne et une instruction UID avant la première ligne qui ne doit pas être interrompue ;

3. entrez une ligne et une instruction UIE après la dernière ligne qui ne doit pas être interrompue ;

4. au besoin, vous pouvez entrer des instructions UID/UIE par paires.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

UID();

UIE();

450 Publication 1756-RM003K-FR-P – Juillet 2008

Page 451: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT) Chapitre 11

Exécution :

Exemple : Lorsqu’une erreur se produit (error_bit est activé), l’instruction FSC vérifie le code d’erreur par rapport à la liste des erreurs critiques. Si l’erreur est critique (error_check.FD est activé), un avertissement est généré. Les instructions UID et UIE empêchent les autres tâches d’interrompre la vérification d’erreur et l’avertissement.

Logique à relais

Texte structuré

UID();

<déclarations>;

UIE();

Condition Action logique à relais Action texte structuré

Pré-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

L’état d’entrée de la ligne est faux

L’état de sortie de la ligne est réglé sur faux. –

L’état d’entrée de la ligne est vrai

L’instruction est exécutée.

L’état de sortie de la ligne est réglé sur vrai.

EnableIn est activé – EnableIn est toujours activé.

L’instruction est exécutée.

Exécution de l’instruction L’instruction UID empêche l’interruption par des tâches ayant une priorité plus élevée.

L’instruction UIE permet l’interruption par des tâches ayant une priorité plus élevée.

Post-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

UID

error_bit

ENDNER

File Search/CompareControl error_checkLength 10Position 8Mode ALLExpression error_code=error_list[error_check.POS]

FSC

error_check.FD

alarm

UIE

File Search/CompareControlLengthPositionModeExpression

error_check

error_code=error_list[error_check.POS]ALL

Alarme

UID

ENDNER

FSCerror_bit

error_check.FD

Publication 1756-RM003K-FR-P – Juillet 2008 451

Page 452: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 11 Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Instruction toujours faux (AFI)

L’instruction AFI règle son état de sortie de ligne sur faux.

Opérandes :

Logique à relais

Aucune

Description : L’instruction AFI règle son état de sortie de ligne sur faux.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Exécution :

Exemple : Utilisez l’instruction AFI pour désactiver temporairement une ligne lorsque vous déboguez un programme.

Lorsqu’elle est activée, l’instruction AFI désactive toutes les instructions sur cette ligne.

Condition Action logique à relais

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai L’état de sortie de la ligne est réglé sur faux.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

452 Publication 1756-RM003K-FR-P – Juillet 2008

Page 453: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT) Chapitre 11

Pas d’opération (NOP) L’instruction NOP fonctionne comme caractère générique.

Opérandes :

Logique à relais

Aucune

Description : Vous pouvez placer l’instruction NOP n’importe où sur une ligne. Activée ou désactivée, cette instruction n’effectue aucune opération.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Exécution :

Exemple : Cette instruction est utile pour localiser des lignes sans condition. Ceci en plaçant l’instruction NOP sur la ligne.

L’instruction NOP contourne l’instruction XIC pour activer la sortie.

Condition Action logique à relais

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai L’état de sortie de la ligne est réglé sur vrai.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

Publication 1756-RM003K-FR-P – Juillet 2008 453

Page 454: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 11 Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Fin de transition (EOT) L’instruction EOT renvoie un état booléen à une transition SFC.

Opérandes :

Logique à relais

Texte structuré

Les opérandes sont identiques à ceux de l’instruction EOT en logique à relais.

Description : Etant donné que l’instruction EOT renvoie un état booléen, plusieurs sous-programmes SFC peuvent partager le même sous-programme contenant l’instruction EOT. Si le sous-programme appelant n’est pas une transition, l’instruction EOT agit comme une instruction TND (voir page 446).

La mise en œuvre Logix de l’instruction EOT diffère de celle d’un automate PLC-5. Dans un automate PLC-5, l’instruction EOT n’a pas de paramètres. A la place, l’instruction EOT PLC-5 renvoie un état de ligne comme état. Dans un automate Logix, le paramètre de retour renvoie l’état de transition puisque l’état de la ligne n’est pas disponible dans tous les langages de programmation Logix.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Exécution :

Opérande Type Format Description

bit de données

BOOL point état de la transition(0=en exécution, 1=terminé)

EOT(data_bit);

Condition Action logique à relais Action texte structuré

Pré-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

L’état d’entrée de la ligne est faux

L’état de sortie de la ligne est réglé sur faux. –

L’état d’entrée de la ligne est vrai

L’instruction est exécutée.

L’état de sortie de la ligne est réglé sur vrai.

EnableIn est activé – EnableIn est toujours activé.

L’instruction est exécutée.

Exécution de l’instruction L’instruction renvoie la valeur du bit de données au sous-programme appelant.

Post-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

454 Publication 1756-RM003K-FR-P – Juillet 2008

Page 455: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT) Chapitre 11

Exemple : Lorsque limit_switch1 et interlock_1 sont activés, activer l’état. Une fois timer_1 terminé, EOT renvoie la valeur de state au sous-programme appelant.

Logique à relais

Texte structuré

State := limit_switch1 AND interlock_1;

IF timer_1.DN THEN

EOT(state);

END_IF;

Publication 1756-RM003K-FR-P – Juillet 2008 455

Page 456: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 11 Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Pause SFC (SFP) L’instruction SFP met un sous-programme SFC en pause.

Opérandes :

Logique à relais

Texte structuré

Les opérandes sont identiques à ceux de l’instruction SFP en logique à relais.

Description : L’instruction SFP vous permet de mettre en pause un sous-programme SFC en cours d’exécution. Si un sous-programme SFC est en pause, utilisez l’instruction SFP à nouveau pour changer cet état et reprendre l’exécution du sous-programme.

Utilisez également l’instruction SFP pour reprendre l’exécution du graphe de fonctionnement séquentiel après avoir utilisé une instruction SFR (voir page 458) pour réinitialiser un sous-programme SFC.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur :

Opérande Type Format Description

Nom SFCRoutine

ROUTINE nom sous-programme SFC à mettre en pause

TargetState DINT immédiat

point

sélectioner une option :

en exécution (ou entrez 0) ;

en pause (ou entrez 1).

SFP(SFCRoutineName,TargetState);

Un défaut majeur se produit si Type de défaut Code de défaut

le sous-programme n’est pas de type sous-programme SFC

4 85

456 Publication 1756-RM003K-FR-P – Juillet 2008

Page 457: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT) Chapitre 11

Exécution :

Exemple : Si sfc_en_p est activé, mettre en pause le sous-programme SFC appelé normal. Redémarrer le graphe de fonctionnement séquentiel (SFC) lorsque sfc_en_e est activé.

Logique à relais

Texte structuré

Mettre en pause le sous-programme SFC : IF (sfp_en_p) THEN

SFP(normal,paused);

sfp_en_p := 0;

END_IF;

Condition Action logique à relais Action texte structuré

Pré-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

L’état d’entrée de la ligne est faux

L’état de sortie de la ligne est réglé sur faux. –

L’état d’entrée de la ligne est vrai

L’instruction est exécutée.

L’état de sortie de la ligne est réglé sur vrai.

EnableIn est activé – EnableIn est toujours activé.

L’instruction est exécutée.

Exécution de l’instruction L’instruction pause ou reprend l’exécution du sous-programme SFC spécifié.

Post-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

Mettre en pause le sous-programme SFC.

Reprendre l’exécution du sous-programme SFC.

Publication 1756-RM003K-FR-P – Juillet 2008 457

Page 458: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 11 Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Reprendre l’exécution du sous-programme SFC : IF (sfp_en_e) THEN

SFP(normal,executing);

sfp_en_e := 0;

END_IF;

Réinitialisation SFC (SFR) L’instruction SFR réinitialise l’exécution d’un sous-programme SFC lors d’une étape spécifiée.

Opérandes :

Opérandes de logique à relais

Texte structuré

Les opérandes sont identiques à ceux de l’instruction SFR en logique à relais.

Description : Lorsque l’instruction SFR est activée :

• dans le sous-programme SFC spécifié, toutes les actions mémorisées arrêtent leur exécution (réinitialisation) ;

• SFC commence l’exécution à l’étape définie.

Si l’étape cible est 0, le graphe est réinitialisé à son étape initiale.

La mise en œuvre Logix de l’instruction SFR diffère de celle d’un automate PLC-5. Dans l’automate PLC-5, l’instruction SFR a été exécutée lorsque l’état de la ligne était vrai. Après la réinitialisation, le graphe de fonctionnement séquentiel reste en pause jusqu’à ce que l’état de la ligne qui contient l’instruction SFR devient faux. Ceci permet de retarder l’exécution après une réinitialisation. Cette fonction de pause/reprise de l’instruction SFR PLC-5 a été découplée de l’état de la ligne et déplacée dans l’instruction SFP.

Indicateurs d’état arithmétique : Non affectés

Opérande Type Format Description

Nom SFCRoutine

ROUTINE nom sous-programme SFC à réinitialiser

Nom d’étape

SFC_STEP point étape cible où reprendre l’exécution

SFR(SFCRoutineName,StepName);

458 Publication 1756-RM003K-FR-P – Juillet 2008

Page 459: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT) Chapitre 11

Conditions d’erreur :

Exécution :

Exemple : Si une condition spécifique se produit (shutdown est activé), redémarrer le SFC à l’étape initialize.

Logique à relais

Texte structuré

IF shutdown THEN

SFR(mySFC,initialize);

END_IF;

Un défaut majeur se produit si Type de défaut Code de défaut

le sous-programme n’est pas de type sous-programme SFC

4 85

l’étape cible spécifiée n’existe pas dans le sous-programme SFC

4 89

Condition Action logique à relais Action texte structuré

Pré-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

L’état d’entrée de la ligne est faux

L’état de sortie de la ligne est réglé sur faux. –

L’état d’entrée de la ligne est vrai

L’instruction est exécutée.

L’état de sortie de la ligne est réglé sur vrai.

EnableIn est activé – EnableIn est toujours activé.

L’instruction est exécutée.

Exécution de l’instruction L’instruction réinitialise le sous-programme SFC spécifié.

L’instruction réinitialise le sous-programme SFC spécifié.

Post-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

Publication 1756-RM003K-FR-P – Juillet 2008 459

Page 460: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 11 Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Déclenchement de tâche événementielle (EVENT)

L’instruction EVENT déclenche l’exécution d’une tâche événementielle.

Opérandes :

Logique à relais

Texte structuré

Les opérandes sont identiques à ceux de l’instruction EVENT en logique à relais.

Description : Utilisez l’instruction EVENT pour exécuter de façon programmatique une tâche événementielle :

• chaque fois que l’instruction est exécutée, elle déclenche la tâche événementielle spécifiée ;

• assurez-vous de laisser suffisamment de temps à la tâche événementielle pour qu’elle termine son exécution avant de la redéclencher. Autrement, une chevauchement peut se produire ;

• si vous exécutez une instruction EVENT alors qu’une tâche événementielle est déjà en cours d’exécution, l’automate augmente le compteur de chevauchement mais il ne déclenche pas la tâche événementielle.

Opérande Type Format Description

Tâche TASK nom tâche événementielle à exécuter

Cette instruction vous permet de choisir d’autres types de tâches, mais elle ne les exécute pas.

EVENT(task_name);

460 Publication 1756-RM003K-FR-P – Juillet 2008

Page 461: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT) Chapitre 11

Déterminer de façon programmatique si une instruction EVENT déclenche une tâche

Pour déterminer si une instruction EVENT déclenche une tâche événementielle, utilisez l’instruction Obtenir valeur système (GSV) pour surveiller l’attribut d’état de la tâche.

L’automate n’efface pas les bits de l’attribut d’état une fois qu’ils sont activés.

• Pour utiliser un bit pour de nouvelles informations d’état, vous devez effacer le bit manuellement.

• Utilisez une instruction Régler valeur système (SSV) pour régler l’attribut sur une autre valeur.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Exécution :

Attribut d’état de l’objet TACHE

Attribut Type de données

Instruction Description

Status DINT GSV

SSV

Fournit des informations sur l’état de la tâche. Une fois que l’automate a activé un bit, vous devez effacer manuellement le bit pour déterminer si un autre défaut de ce type s’est produit.

Pour déterminer si : Examinez ce bit :

Une instruction EVENT a déclenché la tâche (tâche événementielle uniquement).

0

Un timeout a déclenché la tâche (tâche événementielle uniquement).

1

Un chevauchement s’est produit pour cette tâche. 2

Condition Action logique à relais Action texte structuré

Pré-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

L’état d’entrée de la ligne est faux

L’état de sortie de la ligne est réglé sur faux. –

L’état d’entrée de la ligne est vrai

L’instruction est exécutée. –

L’état de sortie de la ligne est réglé sur vrai.

EnableIn est activé – EnableIn est toujours activé.

L’instruction est exécutée.

Exécution de l’instruction L’instruction déclenche l’exécution de la tâche événementielle spécifiée.

Post-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

Publication 1756-RM003K-FR-P – Juillet 2008 461

Page 462: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 11 Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Exemple 1 : Un automate utilise plusieurs programmes mais pas une procédure d’arrêt commune. Chaque programme utilise un nom de point d’accès programme Shut_Down_Line qui est activé si le programme détecte une condition qui requiert un arrêt. La logique de chaque programme est exécutée comme suit :

Si Shut_Down_Line = on (les conditions requièrent un arrêt) alors

Exécuter la tâche Shut_Down une fois

Logique à relais

Programme A

Programme B

Texte structuré

Programme A

Programme B

IF Shut_Down_Line AND NOT Shut_Down_Line_One_Shot THEN

EVENT (Shut_Down);

END_IF;

Shut_Down_Line_One_Shot := Shut_Down_Line;

IF Shut_Down_Line AND NOT Shut_Down_Line_One_Shot THEN

EVENT (Shut_Down);

END_IF;

Shut_Down_Line_One_Shot := Shut_Down_Line;

462 Publication 1756-RM003K-FR-P – Juillet 2008

Page 463: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT) Chapitre 11

Exemple 2 : L’exemple suivant utilise une instruction EVENT pour initialiser une tâche événementielle. (Un autre type d’événement déclenche normalement la tâche événementielle.)

Tâche continue

Si Initialize_Task_1 = 1 alors

L’instruction ONS limite l’exécution de l’instruction EVENT à une scrutation.

L’instruction EVENT déclenche une exécution de Task_1 (tâche événementielle).

Task_1 (tâche événementielle)

L’instruction GSV active Task_Status (point DINT) = attribut Etat de la tâche événementielle. Dans l’attribut Nom d’instance, CECI signifie l’objet TACHE de la tâche dans laquelle se trouve l’instruction (c’est-à-dire, Task_1).

Si Task_Status.0 = 1, alors une instruction EVENT déclenche la tâche événementielle (c’est-à-dire, lorsque la tâche continue exécute son instruction EVENT pour initialiser la tâche événementielle).

L’instruction RES réinitialise un compteur utilisé par la tâche événementielle.

L’automate n’efface pas les bits de l’attribut d’état une fois qu’ils sont activés. Pour utiliser un bit pour de nouvelles informations d’état, vous devez effacer le bit manuellement.

Si Task_Status.0 = 1, alors effacer le bit.

L’instruction OTU active Task_Status.0 = 0.

L’instruction SSV active l’attribut Etat de CETTE tâche (Task_1) = Task_Status. Ceci inclut le bit effacé.

Publication 1756-RM003K-FR-P – Juillet 2008 463

Page 464: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 11 Instructions de commande de programme (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Notes :

464 Publication 1756-RM003K-FR-P – Juillet 2008

Page 465: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 12

Instructions pour/rupture(FOR, FOR...DO, BRK, EXIT, RET)

Introduction Utilisez l’instruction FOR pour appeler un sous-programme de façon répétitive. Utilisez une instruction BRK pour interrompre l’exécution d’un sous-programme.

Si vous voulez Utilisez cette instruction Disponible dans ces langages Voir page

exécuter un sous-programme de façon répétitive

FOR

FOR...DO(1)

Logique à relais

Texte structuré

466

arrêter l’exécution répétée d’un sous-programme

BRK

EXIT(1)

Logique à relais

Texte structuré

469

revenir à l’instruction FOR RET Logique à relais 470

(1) Texte structuré uniquement.

Publication 1756-RM003K-FR-P – Juillet 2008 465

Page 466: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 12 Instructions pour/rupture (FOR, FOR...DO, BRK, EXIT, RET)

Pour (FOR) L’instruction FOR exécute un sous-programme de façon répétitive.

Opérandes :

Logique à relais

Texte structuré

Utilisez la structure FOR...DO (pour...faire). Pour plus d’informations sur les structures de texte structuré, voir Annexe C, Programmation en texte structuré.

Description :

Opérande Type Format Description

Nom du sous-programme

ROUTINE nom de sous-programme

sous-programme à exécuter

Index DINT point compte le nombre d’exécution du sous-programme

Valeur initiale SINT

INT

DINT

immédiat

point

valeur à laquelle démarre l’index

Valeur finale SINT

INT

DINT

immédiat

point

valeur à laquelle arrêter l’exécution du sous-programme

Taille d’étape SINT

INT

DINT

immédiat

point

quantité à ajouter à l’index chaque fois que l’instruction FOR exécute le sous-programme

FOR count:= initial_value TO final_value BY increment DO

<déclaration>;

END_FOR;

IMPORTANT N’utilisez pas d’instruction FOR pour appeler (exécuter) le sous-programme principal.

• Vous pouvez insérer une instruction FOR dans le sous-programme principal ou dans tout autre sous-programme.

• Si vous utilisez une instruction FOR pour appeler le sous-programme principal, puis que vous insérez une instruction RET dans ce sous-programme principal, un défaut majeur se produit (type 4, code 31).

466 Publication 1756-RM003K-FR-P – Juillet 2008

Page 467: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions pour/rupture (FOR, FOR...DO, BRK, EXIT, RET) Chapitre 12

Lorsqu’elle est activée, l’instruction FOR exécute plusieurs fois le sous-programme jusqu’à ce que la valeur de l’index dépasse la valeur finale. Cette instruction ne transmet pas de paramètres au sous-programme.

Chaque fois que l’instruction FOR exécute le sous-programme, elle ajoute la taille de l’étape à l’index.

Attention à ne pas avoir trop de boucle dans une seule scrutation. Un nombre excessif de répétitions peut provoquer un dépassement de temps du chien de garde d’un automate, ce qui entraîne un défaut majeur.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur :

Exécution :

Un défaut majeur se produit si Type de défaut Code de défaut

Le sous-programme principal contient une instruction RET

4 31

Condition Action logique à relais

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’automate exécute le sous-programme une fois.

Si des instructions FOR récurrentes existent dans le même sous-programme, le sous-programme n’est pré-scruté que la première fois. Si des instructions FOR multiples existent (non récurrentes) dans le même sous-programme, le sous-programme est pré-scruté à chaque fois.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

Publication 1756-RM003K-FR-P – Juillet 2008 467

Page 468: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 12 Instructions pour/rupture (FOR, FOR...DO, BRK, EXIT, RET)

Exemple : Lorsqu’elle est activée, l’instruction FOR exécute plusieurs fois routine_2 et augmente value_2 de 1 à chaque fois. Lorsque value_2 est > 10 ou qu’une instruction BRK est activée, l’instruction FOR n’exécute plus routine_2.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

Condition Action logique à relais

index ≥ valeur finalenonoui

exécuter sous-programme

index = (index + step_size)

L’état d’entrée de la ligne est vrai

fin

index = initial_value

l’état de sortie de la ligne est vrai

taille d’étape < 0non

oui

index ≤ valeur finalenon

oui

aller à la fin

finaller à la fin

468 Publication 1756-RM003K-FR-P – Juillet 2008

Page 469: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions pour/rupture (FOR, FOR...DO, BRK, EXIT, RET) Chapitre 12

Rupture (BRK) L’instruction BRK interrompt l’exécution d’un sous-programme appelé par une instruction FOR.

Opérandes :

Logique à relais

Aucune

Texte structuré

Utilisez l’expression EXIT dans une structure de boucle. Pour plus d’informations sur les structures de texte structuré, voir Annexe B.

Description : Lorsqu’elle est activée, l’instruction BRK interrompt le sous-programme et ramène l’automate à l’instruction qui suit l’instruction FOR.

S’il existe des instructions FOR imbriquées, une instruction BRK renvoie la commande à l’instruction FOR la plus à l’intérieur.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Exécution :

Exemple : Lorsqu’elle est activée, l’instruction BRK arrête l’exécution du sous-programme en cours et revient à l’instruction qui suit l’instruction FOR appelante.

EXIT;

Condition Action logique à relais

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai L’état de sortie de la ligne est réglé sur vrai.

L’exécution revient à l’instruction qui suit l’instruction FOR appelante.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

Publication 1756-RM003K-FR-P – Juillet 2008 469

Page 470: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 12 Instructions pour/rupture (FOR, FOR...DO, BRK, EXIT, RET)

Retour (RET) L’instruction RET revient à l’instruction FOR appelante.

Opérandes :

Logique à relais

Aucune

Description :

Lorsqu’elle est activée, l’instruction RET revient à l’instruction FOR appelante. Cette instruction augmente la valeur de l’index de la taille de l’étape et exécute à nouveau le sous-programme. Si la valeur de l’index dépasse la valeur finale, l’instruction FOR se termine et l’exécution passe à l’instruction qui suit l’instruction FOR.

L’instruction FOR n’utilise pas de paramètres. L’instruction FOR ignore tout paramètre que vous entrez dans une instruction RET.

Vous pouvez également utiliser une instruction TND pour terminer l’exécution d’un sous-programme.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur :

Exécution :

IMPORTANT Ne placez pas d’instruction RET dans le sous-programme principal. Si vous placez une instruction RET dans le sous-programme principal, un défaut majeur se produit (type 4, code 31).

Un défaut majeur se produit si Type de défaut Code de défaut

Le sous-programme principal contient une instruction RET

4 31

Condition Action logique à relais

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai Renvoie les paramètres spécifiés au sous-programme appelant.

L’état de sortie de la ligne est réglé sur vrai.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

470 Publication 1756-RM003K-FR-P – Juillet 2008

Page 471: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions pour/rupture (FOR, FOR...DO, BRK, EXIT, RET) Chapitre 12

Exemple : L’instruction FOR exécute plusieurs fois routine_2 et augmente value_2 de 1 à chaque fois. Lorsque value_2 est > 10 ou qu’une instruction BRK est activée, l’instruction FOR n’exécute plus routine_2.

L’instruction RET revient à l’instruction FOR appelante. L’instruction FOR exécute à nouveau le sous-programme et augmente la valeur de l’index de la taille de l’étape ou, si la valeur de l’index dépasse la valeur finale, l’instruction FOR est terminée et l’exécution passe à l’instruction qui suit l’instruction FOR.

sous-programme appelant sous-programme

Publication 1756-RM003K-FR-P – Juillet 2008 471

Page 472: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 12 Instructions pour/rupture (FOR, FOR...DO, BRK, EXIT, RET)

Notes :

472 Publication 1756-RM003K-FR-P – Juillet 2008

Page 473: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 13

Instructions spéciales(FBC, DDT, DTR, PID)

Introduction Les instructions spéciales effectuent des opérations spécifiques aux applications.

Si vous voulez Utilisez cette instruction Disponible dans ces langages Voir page

comparer des données à une référence connue correcte et enregistrer toute différence

FBC Logique à relais 474

comparer des données à une référence connue correcte, enregistrer toute différence et actualiser la référence pour faire concorder la source

DDT Logique à relais 481

passer les données source dans un masque et comparer le résultat à des données de référence, puis écrire la source dans la référence pour la comparaison suivante

DTR Logique à relais 488

commander une boucle PID PID Logique à relais

Texte structuré

491

Publication 1756-RM003K-FR-P – Juillet 2008 473

Page 474: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 13 Instructions spéciales (FBC, DDT, DTR, PID)

Comparaison de fichier de bits (FBC)

L’instruction FBC compare les bits d’un tableau Source avec les bits d’un tableau Référence.

Opérandes :

Logique à relais

Opérande Type Format Description

Source DINT point de tableau

tableau à comparer à la référence

n’utilisez pas CONTROL.POS dans l’indice

Référence DINT point de tableau

tableau à comparer à la source

n’utilisez pas CONTROL.POS dans l’indice

Résultat DINT point de tableau

tableau où enregistrer le résultat

n’utilisez pas CONTROL.POS dans l’indice

Commande Cmp

CONTROL structure structure de commande pour l’opération de comparaison

Longueur DINT immédiat nombre de bits à comparer

Position DINT immédiat position en cours dans la source

la valeur initiale est en général 0

Contrôle de résultat

CONTROL structure structure de commande pour les résultats

Longueur DINT immédiat nombre d’emplacements de stockage dans le résultat

Position DINT immédiat position en cours dans le résultat

la valeur initiale est en général 0

ATTENTION Utilisez différents points pour la structure de commande de comparaison et la structure de contrôle de résultat. L’utilisation du même point pour les deux peut provoquer un fonctionnement imprévu pouvant entraîner des dommages matériels et/ou des blessures.

474 Publication 1756-RM003K-FR-P – Juillet 2008

Page 475: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions spéciales (FBC, DDT, DTR, PID) Chapitre 13

Structure COMPARE

Structure RESULT

Description : Lorsqu’elle est activée, l’instruction FBC compare les bits du tableau Source avec les bits du tableau Référence et enregistre le numéro de bit de chaque différence dans le tableau Résultat.

La différence entre les instructions DDT et FBC est qu’à chaque fois que l’instruction DDT trouve une différence, l’instruction change le bit de référence pour qu’il corresponde au bit source. L’instruction FBC ne change pas le bit de référence.

Mnémonique Type de données

Description

.EN BOOL Le bit d’activation indique que l’instruction FBC est activée.

.DN BOOL Le bit de fin est activé lorsque l’instruction FBC compare le dernier bit dans les tableaux Source et Référence.

.FD BOOL Le bit trouvé est activé chaque fois que l’instruction FBC enregistre une différence (fonctionnement une à la fois) ou après l’enregistrement de toutes les différences (fonctionnement toutes par scrutation).

.IN BOOL Le bit d’inhibition indique le mode de recherche FBC.

0 = mode tout

1 = mode une différence à la fois

.ER BOOL Le bit d’erreur est activé si la comparaison .POS < 0, la comparaison .LEN < 0, le résultat .POS < 0 ou le résultat .LEN < 0 est vraie. L’instruction arrête son exécution jusqu’à ce que le programme efface le bit .ER.

.LEN DINT La valeur de la longueur indique le nombre de bits à comparer.

.POS DINT La valeur de la position indique le bit en cours.

Mnémonique Type de données

Description

.DN BOOL Le bit de fin est activé lorsque le tableau Résultat est plein.

.LEN DINT La valeur de la longueur indique le nombre d’emplacements de stockage dans le tableau Résultat.

.POS DINT La valeur de la position indique la position actuelle dans le tableau Résultat.

IMPORTANT Vous devez tester et vous assurez que l’instruction ne change pas de données que vous ne voulez pas qu’elle change.

L’instruction FBC fonctionne avec une mémoire contiguë. Dans certains cas, elle recherche ou écrit au-delà du tableau dans d’autres membres du point. Ceci se produit si une longueur est trop grande et que le point est un type de données utilisateur.

Publication 1756-RM003K-FR-P – Juillet 2008 475

Page 476: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 13 Instructions spéciales (FBC, DDT, DTR, PID)

Sélection du mode de recherche

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur :

Exécution :

Si vous voulez détecter Sélectionnez ce mode

Une différence à la fois Activez le bit .IN dans la structure CONTROL de comparaison.

Chaque fois que l’état d’entrée de la ligne passe de faux à vrai, l’instruction FBC recherche la différence suivante entre les tableaux Source et Référence. Lorsqu’elle trouve une différence, l’instruction active le bit .FD, enregistre la position de la différence et arrête l’exécution.

Toutes les différences Effacez le bit .IN dans la structure CONTROL de comparaison.

Chaque fois que l’état d’entrée de la ligne passe de faux à vrai, l’instruction FSC recherche toutes les différences entre les tableaux Source et Référence.

Un défaut majeur se produit si Type de défaut Code de défaut

Result.POS > taille du tableau Résultat 4 20

Condition Action logique à relais

Pré-scrutation

fin

le bit compare.EN est effacé

le bit compare.FD est effacé

l’état de sortie de la ligne est faux

examiner le bit compare.DN

bit compare.DN = 0

compare.DN = 1

le bit compare.DN est effacé

la valeur compare.POS est effacée

le bit result.DN est effacé

la valeur result.POS est effacée

476 Publication 1756-RM003K-FR-P – Juillet 2008

Page 477: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions spéciales (FBC, DDT, DTR, PID) Chapitre 13

Condition Action logique à relais

L’état d’entrée de la ligne est faux

fin

le bit compare.EN est effacé

le bit compare.FD est effacé

l’état de sortie de la ligne est faux

examiner le bit compare.DN

bit compare.DN = 0

compare.DN = 1

le bit compare.DN est effacé

la valeur compare.POS est effacée

le bit result.DN est effacé

la valeur result.POS est effacée

Publication 1756-RM003K-FR-P – Juillet 2008 477

Page 478: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 13 Instructions spéciales (FBC, DDT, DTR, PID)

Condition Action logique à relais

examiner le bit compare.EN

compare.EN = 1

compare.EN = 0

L’état d’entrée de la ligne est vrai

examiner le bit compare.DN

compare.DN = 1

bit compare.DN = 0

le bit compare.EN est activé

le bit compare.ER est effacé le bit compare.FD est effacé

compare.LEN ≤ 0oui

non

compare.POS < 0oui

non le bit compare.ER est activé

comparer

page 479fin

l’état de sortie de la ligne est vrai

aller à quitter

quitter

aller à quitter

aller à quitter

478 Publication 1756-RM003K-FR-P – Juillet 2008

Page 479: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions spéciales (FBC, DDT, DTR, PID) Chapitre 13

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

Condition Action logique à relais

compare.POS ≥ compare.LEN

oui

non

compare.POS = compare.LEN

le bit compare.DN est activé

comparer

aller à quitter

source[compare.POS] = reference[compare.POS]

non

oui

examiner le bit result.DN

result.DN = 1

result.DN = 0

compare.POS =compare.POS + 1

le bit compare.FD est activé

le bit result.DN est effacéla valeur result.POS est effacée

result.POS < 0oui

non

result.LEN ≤ 0oui

non le bit compare.ER est activé

aller à quitter

oui

non

défaut majeur

result[result.POS] = compare.POSresult.POS = result.POS + 1

result.POS > result.LEN

non

oui

le bit result.DN est activé

page 478

page 478

result.POS > taille du tableau Résultat

Publication 1756-RM003K-FR-P – Juillet 2008 479

Page 480: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 13 Instructions spéciales (FBC, DDT, DTR, PID)

Exemple : Lorsqu’elle est activée, l’instruction FBC compare la source array_dint1 à la référence array_dint2 et enregistre le résultat dans les emplacements des différences dans le résultat array_dint3.

sourcearray_dint1

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

référencearray_dint2

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0

résultatarray_dint3

5 3

480 Publication 1756-RM003K-FR-P – Juillet 2008

Page 481: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions spéciales (FBC, DDT, DTR, PID) Chapitre 13

Détection de diagnostic (DDT)

L’instruction DDT compare les bits d’un tableau Source avec les bits d’un tableau Référence pour détecter les changements d’état.

Opérandes :

Logique à relais

Opérande Type Format Description

Source DINT point de tableau

tableau à comparer à la référence

n’utilisez pas CONTROL.POS dans l’indice

Référence DINT point de tableau

tableau à comparer à la source

n’utilisez pas CONTROL.POS dans l’indice

Résultat DINT point de tableau

tableau où enregistrer les résultats

n’utilisez pas CONTROL.POS dans l’indice

Commande Cmp

CONTROL structure structure de commande pour l’opération de comparaison

Longueur DINT immédiat nombre de bits à comparer

Position DINT immédiat position en cours dans la source

la valeur initiale est en général 0

Contrôle de résultat

CONTROL structure structure de commande pour les résultats

Longueur DINT immédiat nombre d’emplacements de stockage dans le résultat

Position DINT immédiat position en cours dans le résultat

la valeur initiale est en général 0

ATTENTION Utilisez différents points pour la structure de commande de comparaison et la structure de contrôle de résultat. L’utilisation du même point pour les deux peut provoquer un fonctionnement imprévu pouvant entraîner des dommages matériels et/ou des blessures.

Publication 1756-RM003K-FR-P – Juillet 2008 481

Page 482: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 13 Instructions spéciales (FBC, DDT, DTR, PID)

Structure COMPARE

Structure RESULT

Description : Lorsqu’elle est activée, l’instruction DDT compare les bits du tableau Source avec les bits du tableau Référence, enregistre le numéro de bit de chaque différence dans le tableau Résultat et change la valeur du bit de Référence pour qu’elle corresponde à la valeur du bit Source correspondant.

La différence entre les instructions DDT et FBC est qu’à chaque fois que l’instruction DDT trouve une différence, l’instruction change le bit de référence pour qu’il corresponde au bit source. L’instruction FBC ne change pas le bit de référence.

Mnémonique Type de données

Description

.EN BOOL Le bit d’activation indique que l’instruction DDT est activée.

.DN BOOL Le bit de fin est activé lorsque l’instruction DDT compare le dernier bit dans les tableaux Source et Référence.

.FD BOOL Le bit trouvé est activé chaque fois que l’instruction DDT enregistre une différence (fonctionnement une à la fois) ou après l’enregistrement de toutes les différences (fonctionnement toutes par scrutation).

.IN BOOL Le bit d’inhibition indique le mode de recherche DDT.

0 = mode tout

1 = mode une différence à la fois

.ER BOOL Le bit d’erreur est activé si la comparaison .POS < 0, la comparaison .LEN < 0, le résultat .POS < 0 ou le résultat .LEN < 0 est vraie. L’instruction arrête son exécution jusqu’à ce que le programme efface le bit .ER.

.LEN DINT La valeur de la longueur indique le nombre de bits à comparer.

.POS DINT La valeur de la position indique le bit en cours.

Mnémonique Type de données

Description

.DN BOOL Le bit de fin est activé lorsque le tableau Résultat est plein.

.LEN DINT La valeur de la longueur indique le nombre d’emplacements de stockage dans le tableau Résultat.

.POS DINT La valeur de la position indique la position actuelle dans le tableau Résultat.

IMPORTANT Vous devez tester et vous assurez que l’instruction ne change pas de données que vous ne voulez pas qu’elle change.

L’instruction DDT fonctionne avec une mémoire contiguë. Dans certains cas, elle recherche ou écrit au-delà du tableau dans d’autres membres du point. Ceci se produit si une longueur est trop grande et que le point est un type de données utilisateur.

482 Publication 1756-RM003K-FR-P – Juillet 2008

Page 483: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions spéciales (FBC, DDT, DTR, PID) Chapitre 13

Sélection du mode de recherche

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur :

Exécution :

Si vous voulez détecter Sélectionnez ce mode

une différence à la fois Activez le bit .IN dans la structure CONTROL de comparaison.

Chaque fois que l’état d’entrée de la ligne passe de faux à vrai, l’instruction DDT recherche la différence suivante entre les tableaux Source et Référence. Lorsqu’elle trouve une différence, l’instruction active le bit .FD, enregistre la position de la différence et arrête l’exécution.

toutes les différences Effacez le bit .IN dans la structure CONTROL de comparaison.

Chaque fois que l’état d’entrée de la ligne passe de faux à vrai, l’instruction DDT recherche toutes les différences entre les tableaux Source et Référence.

Un défaut majeur se produit si Type du défaut Code de défaut

Result.POS > taille du tableau Résultat 4 20

Condition Action logique à relais

Pré-scrutation

fin

le bit compare.EN est effacé

le bit compare.FD est effacé

l’état de sortie de la ligne est faux

examiner le bit compare.DN

bit compare.DN = 0

compare.DN = 1

le bit compare.DN est effacé

la valeur compare.POS est effacée

le bit result.DN est effacé

la valeur result.POS est effacée

Publication 1756-RM003K-FR-P – Juillet 2008 483

Page 484: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 13 Instructions spéciales (FBC, DDT, DTR, PID)

Condition Action logique à relais

L’état d’entrée de la ligne est faux

fin

le bit compare.EN est effacé

le bit compare.FD est effacé

l’état de sortie de la ligne est faux

examiner le bit compare.DN

bit compare.DN = 0

compare.DN = 1

le bit compare.DN est effacé

la valeur compare.POS est effacée

le bit result.DN est effacé

la valeur result.POS est effacée

484 Publication 1756-RM003K-FR-P – Juillet 2008

Page 485: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions spéciales (FBC, DDT, DTR, PID) Chapitre 13

Condition Action logique à relais

examiner le bit compare.EN

compare.EN = 1

compare.EN = 0

L’état d’entrée de la ligne est vrai

examiner le bit compare.DN

le bit compare.DN = 1

le bit compare.DN = 0

le bit compare.EN est activé

le bit compare.ER est effacé le bit compare.FD est effacé

compare.LEN ≤ 0oui

non

compare.POS < 0oui

non le bit compare.ER est activé

comparer

page 486fin

l’état de sortie de la ligne est vrai

aller à quitter

quitter

aller à quitter

aller à quitter

Publication 1756-RM003K-FR-P – Juillet 2008 485

Page 486: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 13 Instructions spéciales (FBC, DDT, DTR, PID)

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

Condition Action logique à relais

compare.POS ≥ compare.LEN

oui

non

compare.POS = compare.LEN

le bit compare.DN est activé

comparer

aller à quitter

source[compare.POS] = reference[compare.POS]

non

oui

examiner le bit result.DN

result.DN = 1

result.DN = 0

compare.POS =compare.POS + 1

le bit compare.FD est activéreference[compare.POS] = source[compare.POS]

le bit result.DN est effacéla valeur result.POS est effacée

result.POS < 0oui

non

result.LEN ≤ 0oui

non le bit compare.ER est activé

aller à quitter

oui

non

défaut majeur

result[result.POS] = compare.POSresult.POS = result.POS + 1

result.POS ≥ result.LEN

non

oui

le bit result.DN est activé

page 485

page 478

result.POS > taille du tableau Résultat

486 Publication 1756-RM003K-FR-P – Juillet 2008

Page 487: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions spéciales (FBC, DDT, DTR, PID) Chapitre 13

Exemple : Lorsqu’elle est activée, l’instruction DDT compare la source array_dint1 à la référence array_dint2 et enregistre le résultat dans les emplacements des différences dans le résultat array_dint3. L’automate change également les bits différents dans la référence array_dint2 pour qu’ils correspondent à la source array_dint1.

Source

array_dint1

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

référence (avant comparaison)

array_dint2

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0

Résultat

array_dint3

5 3

référence (après comparaison)

array_dint2

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Publication 1756-RM003K-FR-P – Juillet 2008 487

Page 488: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 13 Instructions spéciales (FBC, DDT, DTR, PID)

Transition de données (DTR)

L’instruction DTR passe la valeur Source à travers un masque et compare le résultat avec la valeur Référence.

Opérandes :

Logique à relais

Description : L’instruction DTR passe la valeur Source à travers un masque et compare le résultat avec la valeur Référence. L’instruction DTR écrit également la valeur Source masquée dans la valeur Référence pour la prochaine comparaison. La Source reste inchangée.

Un « 1 » dans le masque signifie que le bit de données est passé. Un « 0 » dans le masque signifie que le bit de données est bloqué.

Lorsque la Source masquée diffère de la Référence, l’état de sortie de la ligne devient vrai pendant une scrutation. Lorsque la Source masquée est identique à la Référence, l’état de sortie de la ligne est faux.

Opérande Type Format Description

Source DINT immédiat

point

tableau à comparer à la référence

Masque DINT immédiat

point

bits à bloquer ou à passer

Référence DINT point tableau à comparer à la source

ATTENTION La programmation en ligne avec cette instruction peut être dangereuse. Si la valeur Référence est différente à la valeur Source, l’état de sortie de la ligne devient vrai. Prenez des précautions si vous insérez cette instruction lorsque le processeur est en mode Exécution ou en mode Exécution à distance.

488 Publication 1756-RM003K-FR-P – Juillet 2008

Page 489: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions spéciales (FBC, DDT, DTR, PID) Chapitre 13

Entrée d’une valeur de masque immédiate

Lorsque vous entrez un masque, le logiciel de programmation passe à des valeurs décimales par défaut. Si vous voulez entrer un masque à l’aide d’un autre format, faites précéder la valeur du préfixe correct.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Exécution :

Préfixe Description

16# hexadécimal

par exemple ; 16#0F0F

8# octal

par exemple ; 8#16

2# binaire

par exemple ; 2#00110011

Condition Action logique à relais

Pré-scrutation Référence = Source ET Masque.

L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux Référence = Source ET Masque.

L’état de sortie de la ligne est réglé sur faux.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai

fin

source masquée = référence

non

oui

la référence est égale à la source masquée

l’état de sortie de la ligne est vrai

l’état de sortie de la ligne est faux

Publication 1756-RM003K-FR-P – Juillet 2008 489

Page 490: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 13 Instructions spéciales (FBC, DDT, DTR, PID)

Exemple : Lorsqu’elle est activée, l’instruction DTR masque light_1. S’il existe une différence entre les deux valeurs, l’état de sortie de la ligne est réglé sur vrai.

Un 0 dans le masque laisse le bit inchangé.

13385

L’état de a ligne reste faux tant que la valeur d’entrée ne change pas.

L’état de la ligne reste vrai pendant une scrutation lorsqu’un changement est détecté.

0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1

1 8 3 1 8 7

masque = 0FFF

1 8 7

Source

value_1

Référence

value_2

1 8 3

1 8 3

1 8 3

scrutation encours

scrutationprécédente

scrutation précédente

scrutation en cours

exemple 1 exemple 2

97

0

0

0

0

490 Publication 1756-RM003K-FR-P – Juillet 2008

Page 491: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions spéciales (FBC, DDT, DTR, PID) Chapitre 13

Proportionnel, intégral et dérivé (PID)

L’instruction PID commande une variable de procédé, tel que débit, pression, température ou niveau.

Opérandes :

Logique à relais

Opérande Type Format Description

PID PID structure structure PID

Variable de procédé

SINT

INT

DINT

REAL

point valeur que vous voulez commander

Rétro-liaison SINT

INT

DINT

REAL

immédiat

point

(facultatif) sortie d’une station matérielle manuelle/auto qui contourne la sortie de l’automate

Entrez 0 si vous ne voulez pas utiliser ce paramètre.

Variable de contrôle

SINT

INT

DINT

REAL

point valeur qui va au dispositif de commande final (vanne, amortisseur, etc.)

Si vous utilisez la zone morte, la variable de contrôle doit être une valeur REAL sinon elle sera forcée à 0 lorsque l’erreur se trouve dans la zone morte.

Boucle maître PID

PID structure (facultatif) point PID pour le PID maître

Si vous effectuez une commande en cascade et ce PID est une boucle esclave, entrez le nom du PID maître. Entrez 0 si vous ne voulez pas utiliser ce paramètre.

Bit maintien BOOL point (facultatif) état actuel du bit de maintien à partir d’une voie de sortie analogique 1756 pour prendre en charge un redémarrage sans à-coups

Entrez 0 si vous ne voulez pas utiliser ce paramètre.

Valeur maintien

SINT

INT

DINT

REAL

point (facultatif) valeur de lecture de données à partir d’une voie de sortie analogique 1756 pour prendre en charge le redémarrage sans à-coups

Entrez 0 si vous ne voulez pas utiliser ce paramètre.

Publication 1756-RM003K-FR-P – Juillet 2008 491

Page 492: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 13 Instructions spéciales (FBC, DDT, DTR, PID)

Texte structuré

Les opérandes sont identiques à ceux de l’instruction PID en logique à relais. Cependant, vous définissez le point de consigne, la variable de procédé et le % de sortie en accédant aux membres .SP, .PV et .OUT de la structure PID, plutôt qu’en incluant les valeurs dans la liste des opérandes.

Structure PID

Point de consigne

Affiche la valeur actuelle du point de consigne

Variable de procédé

Affiche la valeur actuelle de la variable de procédé mise à l’échelle

% de sortie Affiche la valeur actuelle de la sortie en pourcentage

Opérande Type Format Description

PID(PID,ProcessVariable,Tieback,ControlVariable,PIDMasterLoop,InholdBit,InHoldValue);

Mnémonique Type de données Description

.CTL DINT Le membre .CTL permet l’accès aux membres d’état (bits) via un mot de 32 bits. L’instruction PID active les bits 07 à 15.

Ce bit est le membre

31 .EN

30 .CT

29 .CL

28 .PVT

27 .DOE

26 .SWM

25 .CA

24 .MO

23 .PE

22 .NDF

21 .NOBC

20 .NOZC

Ce bit est le membre suivant, activé par l’instruction PID

15 .INI

14 .SPOR

13 .OLL

12 .OLH

11 .EWD

10 .DVNA

09 .DVPA

08 .PVLA

07 .PVHA

.SP REAL point de consigne

492 Publication 1756-RM003K-FR-P – Juillet 2008

Page 493: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions spéciales (FBC, DDT, DTR, PID) Chapitre 13

.KP REAL indépendant gain proportionnel (sans unité)

dépendant gain automate (sans unité)

.KI REAL indépendant gain intégral (1/s)

dépendant temps d’intégration (minutes par répétition)

.KD REAL indépendant gain dérivé (secondes)

dépendant constante de temps de dérivation (minutes)

.BIAS REAL anticipation de vitesse ou % bias

.MAXS REAL valeur d’échelle d’unité procédé maximum

.MINS REAL valeur d’échelle d’unité procédé minimum

.DB REAL unités procédé de zone morte

.SO REAL % de sortie activée

.MAXO REAL limite de sortie maximum (% de la sortie)

.MINO REAL limite de sortie minimum (% de la sortie)

.UPD REAL temps de mise à jour de la boucle (secondes)

.PV REAL valeur PV mise à l’échelle

.ERR REAL valeur d’erreur mise à l’échelle

.OUT REAL % de sortie

.PVH REAL limite d’alarme haute de variable procédé

.PVL REAL limite d’alarme basse de variable procédé

.DVP REAL limite d’alarme d’écart positif

.DVN REAL limite d’alarme d’écart négatif

.PVDB REAL zone morte d’alarme de variable procédé

.DVDB REAL zone morte d’alarme d’écart

.MAXI REAL valeur PV maximum (entrée non mise à l’échelle)

.MINI REAL valeur PV minimum (entrée non mise à l’échelle)

.TIE REAL valeur de rétro-liaison pour commande manuelle

.MAXCV REAL valeur CV maximum (correspondant à 100 %)

.MINCV REAL valeur CV minimum (correspondant à 0 %)

.MINTIE REAL valeur de rétro-liaison minimum (correspondant à 100 %)

.MAXTIE REAL valeur de rétro-liaison maximum (correspondant à 0 %)

Mnémonique Type de données Description

Publication 1756-RM003K-FR-P – Juillet 2008 493

Page 494: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 13 Instructions spéciales (FBC, DDT, DTR, PID)

.DATA REAL[17] le membre .DATA stocke :

Elément : Description

.DATA[0] accumulation intégrale

.DATA[1] valeur temporaire de lissage des dérivées

.DATA[2] valeur .PV précédente

.DATA[3] valeur .ERR précédente

.DATA[4] valeur .SP valable précédente

.DATA[5] pourcentage de constante de mise à l’échelle

.DATA[6] constante de mise à l’échelle .PV

.DATA[7] constante de mise à l’échelle des dérivées

.DATA[8] valeur .KP précédente

.DATA[9] valeur .KI précédente

.DATA[10] valeur .KD précédente

.DATA[11] gain dépendant .KP

.DATA[12] gain dépendant .KI

.DATA[13] gain dépendant .KD

.DATA[14] valeur .CV précédente

.DATA[15] constante de non-mise à l’échelle .CV

.DATA[16] constante de non-mise à l’échelle de rétro-liaison

.EN BOOL actif

.CT BOOL type en cascade (0=esclave ; 1=maître)

.CL BOOL boucle en cascade (0=non ; 1=oui)

.PVT BOOL suivi de variable de procédé (0=non ; 1=oui)

.DOE BOOL dérivé de (0=PV ; 1=erreur)

.SWM BOOL mode manuel logiciel (0=non-auto ; 1=oui-manuel logiciel)

.CA BOOL action de commande (0 signifie E=SP-PV ; 1 signifie E=PV-SP)

.MO BOOL mode station (0=automatique ; 1=manuel)

.PE BOOL équation PID (0=indépendant ; 1=dépendant)

.NDF BOOL pas de lissage des dérivées(0=filtre de lissage des dérivées actif ; 1=filtre de lissage des dérivées inactif)

.NOBC BOOL rétrocalcul sans polarisation(0=rétrocalcul avec polarisation active ; 1=rétrocalcul avec polarisation inactive)

.NOZC BOOL zone morte sans passage par zéro(0=zone morte avec passage par zéro ; 1=zone morte sans passage par zéro)

.INI BOOL PID initialisé (0=non ; 1=oui)

.SPOR BOOL consigne hors limites (0=non ; 1=oui)

.OLL BOOL CV inférieur à la limite de sortie minimum (0=non ; 1=oui)

.OLH BOOL CV supérieur à la limite de sortie minimum (0=non ; 1=oui)

.EWD BOOL erreur dans les limites de la zone morte (0=non ; 1=oui)

.DVNA BOOL déviation avec alarme basse (0=non ; 1=oui)

Mnémonique Type de données Description

494 Publication 1756-RM003K-FR-P – Juillet 2008

Page 495: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions spéciales (FBC, DDT, DTR, PID) Chapitre 13

Description : L’instruction PID reçoit généralement la variable de procédé (PV) d’un module d’entrées analogiques et module une sortie de variable de contrôle (CV) sur un module de sorties analogiques pour maintenir la variable de procédé au point de consigne voulu.

Le bit .EN indique l’état de l’exécution. Le bit .EN est activé lorsque l’état d’entrée de la ligne passe de faux à vrai. Le bit .EN est effacé lorsque l’état d’entrée de la ligne devient faux. L’instruction PID n’utilise pas de bit .DN. L’instruction PID s’exécute à chaque scrutation tant que l’état d’entrée de la ligne est vrai.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur :

.DVPA BOOL déviation avec alarme haute (0=non ; 1=oui)

.PVLA BOOL PV avec alarme basse (0=non ; 1=oui)

.PVHA BOOL PV avec alarme haute (0=non ; 1=oui)

Mnémonique Type de données Description

����

����

����

���état de ligne

exécution de l’instruction PID

bit .EN

IMPORTANT Ces défauts étaient des défauts majeurs dans l’automate PLC-5.

Un défaut mineur se produit si Type de défaut Code de défaut

.UPD ≤ 0 4 35

consigne hors limites 4 36

Publication 1756-RM003K-FR-P – Juillet 2008 495

Page 496: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 13 Instructions spéciales (FBC, DDT, DTR, PID)

Exécution :

Configuration d’une instruction PID

Après avoir entré l’instruction PID et avoir spécifié la structure PID, utilisez les onglets de configuration pour définir comment l’instruction PID doit fonctionner.

Condition Action Action

Pré-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

L’état d’entrée de la ligne est faux

L’état de sortie de la ligne est réglé sur faux. –

L’état d’entrée de la ligne est vrai

L’instruction est exécutée.

L’état de sortie de la ligne est réglé sur vrai.

EnableIn est activé – EnableIn est toujours activé.

L’instruction est exécutée.

Exécution de l’instruction L’instruction exécute la boucle PID. L’instruction exécute la boucle PID.

Post-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

Cliquez ici pour configurer l’instruction PID

496 Publication 1756-RM003K-FR-P – Juillet 2008

Page 497: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions spéciales (FBC, DDT, DTR, PID) Chapitre 13

Spécification du réglage

Sélectionnez l’onglet Tuning (réglage). Les modifications prennent effet dès que vous cliquez sur un autre champ, sur OK, sur Appliquer ou sur la touche Entrée.

Dans ce champ Spécifiez

Setpoint (SP) (point de consigne)

Entrez une valeur de point de consigne (.SP).

Set output % (% de sortie active)

Entrez un pourcentage de sortie active (.SO).

En mode manuel logiciel, cette valeur est utilisée pour la sorte.

En mode auto, cette valeur affiche le pourcentage de sortie.

Output bias (polarisation de sortie)

Entrez un pourcentage de polarisation de sortie (.BIAS).

Proportional gain (Kp) (gain proportionnel)

Entrez le gain proportionnel (.KP).

Pour les gains indépendants, c’est le gain proportionnel (sans unité).

Pour les gains dépendants, c’est le gain automate (sans unité).

Integral gain (Ki) (gain intégral)

Entrez le gain intégral (.KI).

Pour les gains indépendants, c’est le gain intégral (1/s).

Pour les gains dépendants, c’est le temps d’intégration (minutes par répétition).

Derivative time (Kd) (temps dérivé)

Entrez le gain dérivé (.KD).

Pour les gains indépendants, c’est le gain dérivé (secondes).

Pour les gains dépendants, c’est la constante de temps de dérivation (minutes).

Manual mode (mode manuel)

Sélectionnez manuel (.MO) ou manuel logiciel (.SWM).

Le mode manuel est prioritaire sur le mode manuel logiciel, si les deux sont sélectionnés.

Publication 1756-RM003K-FR-P – Juillet 2008 497

Page 498: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 13 Instructions spéciales (FBC, DDT, DTR, PID)

Spécification de la configuration

Sélectionnez l’onglet Configuration. Vous devez cliquer sur OK ou sur Appliquer pour que les modifications prennent effet.

Dans ce champ Spécifiez

PID equation (équation PID) Sélectionnez gains indépendants ou gains dépendants (.PE).

Utilisez indépendant si vous voulez que les trois gains (P, I et D) fonctionnent de façon indépendante. Utilisez dépendant si vous voulez un gain automate global qui affecte les trois termes (P, I et D).

Control action (action de commande)

Sélectionnez E=PV-SP ou E=SP-PV pour l’action de commande (.CA).

Derivative of (dérivé de) Sélectionnez PV ou erreur (.DOE).

Utilisez la dérivée de PV pour éliminer les pointes de sortie résultant des modifications du point de consigne. Utilisez la dérivée de l’erreur pour des réponses rapides aux modifications du point de consigne lorsque l’algorithme peut tolérer des dépassements.

Loop update time (temps de rafraîchissement de boucle)

Entrez le temps de rafraîchissement (.UPD) de l’instruction.

CV high limit (limite haute CV)

Entrez une limite haute pour la variable de contrôle (.MAXO).

CV low limit (limite basse CV)

Entrez une limite basse pour la variable de contrôle (.MINO).

Deadband value (valeur de zone morte)

Entrez une valeur de zone morte (.DB).

No derivative smoothing (pas de lissage des dérivées)

Activez ou désactivez cette sélection (.NDF).

No bias calculation (pas de calcul de polarisation)

Activez ou désactivez cette sélection (.NOBC).

No zero crossing in deadband (pas de passage par zéro dans la zone morte)

Activez ou désactivez cette sélection (.NOZC).

PV tracking (suivi PV) Activez ou désactivez cette sélection (.PVT).

Cascade loop (boucle en cascade)

Activez ou désactivez cette sélection (.CL).

Cascade type (type de cascade)

Si la boucle en cascade est activée, sélectionnez esclave ou maître (.CT).

498 Publication 1756-RM003K-FR-P – Juillet 2008

Page 499: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions spéciales (FBC, DDT, DTR, PID) Chapitre 13

Spécification des alarmes

Sélectionnez l’onglet Alarms. Vous devez cliquer sur OK ou sur Appliquer pour que les modifications prennent effet.

Spécification de la mise à l’échelle

Sélectionnez l’onglet Scaling. Vous devez cliquer sur OK ou sur Appliquer pour que les modifications prennent effet.

Dans ce champ Spécifiez

PV high (PV haut) Entrez une valeur d’alarme haute PV (.PVH).

PV low (PV bas) Entrez une valeur d’alarme basse PV (.PVL).

PV deadband (zone morte PV)

Entrez une valeur d’alarme de zone morte PV (.PVDB).

positive deviation (écart positif)

Entrez une valeur d’écart positif (.DVP).

negative deviation (écart négatif)

Entrez une valeur d’écart négatif (.DVN).

deviation deadband (zone morte d’écart)

Entrez une valeur d’alarme de zone morte d’écart (.DVDB).

Dans ce champ Spécifiez

PV unscaled maximum (PV non à l’échelle maximum)

Entrez une valeur PV maximum (.MAXI) égale à la valeur non à l’échelle maximum reçue de la voie d’entrée analogique pour la valeur PV.

PV unscaled minimum (PV non à l’échelle minimum)

Entrez une valeur PV minimum (.MINI) égale à la valeur non à l’échelle minimum reçue de la voie d’entrée analogique pour la valeur PV.

PV engineering units maximum (unités de procédé PV maximum)

Entrez les unités de procédé maximum correspondant à .MAXI (.MAXS)

PV engineering units minimum (unités de procédé PV minimum)

Entrez les unités de procédé minimum correspondant à .MINI (.MINS)

CV maximum Entrez une valeur CV maximum correspondant à 100 % (.MAXCV).

CV minimum Entrez une valeur CV minimum correspondant à 0 % (.MINCV).

Tieback maximum (rétro-liaison maximum)

Entrez une valeur de rétro-liaison maximum (.MAXTIE) égale à la valeur non à l’échelle maximum reçue de la voie d’entrée analogique pour la valeur de rétro-liaison.

Tieback minimum (rétro-liaison minimum)

Entrez une valeur de rétro-liaison minimum (.MINTIE) égale à la valeur non à l’échelle minimum reçue de la voie d’entrée analogique pour la valeur de rétro-liaison.

PID Initialized (PID initialisé)

Si vous modifiez les constantes de mise à l’échelle en mode Exécution, désactivez ceci pour réinitialiser les valeurs de non-mise à l’échelle internes (.INI).

Publication 1756-RM003K-FR-P – Juillet 2008 499

Page 500: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 13 Instructions spéciales (FBC, DDT, DTR, PID)

Utilisation des instructions PID

La commande en boucle fermée PID maintient une variable de procédé à un point de consigne voulu. La figure suivante donne un exemple de débit/niveau de liquide :

Dans l’exemple précédent, le niveau du réservoir est comparé au point de consigne. Si le niveau est supérieur au point de consigne, l’équation PID augmente la variable de contrôle et entraîne l’ouverture de la vanne de sortie du réservoir ; ce qui diminue le niveau dans le réservoir.

-

+

14271

point de consigne

débit

erreuréquation PID

variable de contrôlevariable de procédé

détecteur de niveau

500 Publication 1756-RM003K-FR-P – Juillet 2008

Page 501: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions spéciales (FBC, DDT, DTR, PID) Chapitre 13

L’équation PID utilisée dans l’instruction PID est une équation de positionnement qui peut utiliser soit les gains indépendants, soit les gains dépendants. Lorsque les gains indépendants sont utilisés, les gains proportionnels, intégraux et dérivés n’affectent que leurs termes proportionnel, intégral et dérivé, respectivement. Lorsque les gains dépendants sont utilisés, le gain proportionnel est remplacé par un gain d’automate qui affecte les trois termes. Vous pouvez utiliser n’importe quelle forme d’équation pour effectuer le même type de commande. Les deux types d’équation ne sont fournis que pour vous permettre d’utiliser le type d’équation que vous connaissez le mieux.

Option de gain Dérivé de Equation

Gains dépendants(norme ISA)

erreur (E)

variable de procédé (PV)

Gains indépendants erreur (E)

variable de procédé (PV)

CV KC E 1Ti---- Edt Td

dEdt-------+

0

t

∫+ BIAS+=

CV KC E 1Ti---- Edt Td–

dPVdt

-----------

0

t

∫+ BIAS+=

E = SP – PV

CV KC E 1Ti---- Edt Td

dPVdt

-----------+

0

t

∫+ BIAS+=

E = PV – SP

CV KPE Ki+ Edt KddEdt-------+

0

t

∫ BIAS+=

CV KPE Ki+ Edt Kd–dPVdt

-----------

0

t

∫ BIAS+=

E = SP – PV

CV KPE Ki+ Edt KddPVdt

-----------+

0

t

∫ BIAS+=

E = PV – SP

Publication 1756-RM003K-FR-P – Juillet 2008 501

Page 502: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 13 Instructions spéciales (FBC, DDT, DTR, PID)

Où :

Si vous ne voulez pas utiliser un terme spécifique de l’équation PID, réglez simplement son gain sur zéro. Par exemple, si vous ne voulez pas d’action dérivée, réglez Kd ou Td à zéro.

Anti-saturation de l’action intégrale et transfert sans à-coups entre manuel et auto

L’instruction PID évite automatiquement la saturation de l’action intégrale en empêchant le cumul du terme intégral lorsque la sortie CV atteint ses valeurs maximum ou minimum, réglées par .MAXO et .MINO. Le terme intégral cumulé reste gelé jusqu’à ce que la sortie CV descende en dessous de la limite maximale ou augmente au-dessus de la limite minimale. Ensuite, le cumul intégral normal reprend automatiquement.

Variable Description

KP gain proportionnel (sans unité)

Kp = Kc sans unité

Ki gain intégral (secondes –1)

Pour convertir entre Ki (gain intégral) et Ti (temps d’intégration), utilisez :

Kd gain dérivé (secondes)

Pour convertir entre Kd (gain dérivé) et Td (constante de temps de dérivation), utilisez :

Kd = Kc (Td) 60

KC gain automate (sans unité)

Ti temps d’intégration (minutes/répétition)

Td constante de temps de dérivation (minutes)

SP point de consigne

PV variable de procédé

E erreur [(SP-PV) ou (PV-SP)]

BIAS anticipation de vitesse ou polarisation

CV variable de contrôle

dt temps de rafraîchissement de la boucle

KiKC

60Ti-----------=

502 Publication 1756-RM003K-FR-P – Juillet 2008

Page 503: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions spéciales (FBC, DDT, DTR, PID) Chapitre 13

L’instruction PID prend en charge deux modes de commande manuelle :

L’instruction PID fournit également automatiquement des transferts sans à-coups du mode manuel logiciel au mode auto ou du mode manuel au mode auto. L’instruction PID rétrocalcule la valeur du terme de cumul intégral requis pour que la sortie CV suive la valeur de réglage de sortie (.SO) en mode manuel logiciel ou l’entrée de rétro-liaison en mode manuel. Ainsi, lorsque la boucle passe en mode auto, la sortie CV démarre de la sortie activée ou de la valeur de rétro-liaison et il n’y a pas d’à-coups dans la valeur de sortie.

L’instruction PID peut aussi fournir automatiquement un transfert sans à-coups de manuel à auto, même si la commande intégrale n’est pas utilisée (c’est à dire Ki = 0). Dans ce cas, l’instruction modifie le terme

.BIAS pour que la sortie CV suive les valeurs de sortie activée ou de rétro-liaison. Lorsque la commande automatique reprend, le terme .BIAS garde sa dernière valeur. Vous pouvez désactiver le rétrocalcul du terme .BIAS en réglant le bit .NOBC dans la structure de données PID. Si vous réglez .NOBC sur vrai, l’instruction PID ne fournit plus de transfert sans à-coups entre manuel et auto lorsque la commande intégrale n’est pas utilisée.

Temporisation de l’instruction PID

L’instruction PID et l’échantillonnage de la variable de procédé doivent être actualisés régulièrement. Cette durée de rafraîchissement est liée au processus physique que vous commandez. Pour les boucles très lentes, comme les boucles de température, une durée de rafraîchissement d’une fois par seconde ou plus long est généralement suffisante pour obtenir une régulation correcte. Des boucles plus rapides, comme les boucles de pression ou de débit, peuvent nécessiter une durée de rafraîchissement de par exemple

Mode de commande manuelle

Description

manuel logiciel (.SWM) Egalement appelé mode de réglage de sortie.

Permet à l’utilisateur de régler le % de la sortie à partir du logiciel.

La valeur de réglage de sortie (.SO) est utilisée comme la sortie de la boucle. La valeur de réglage de sortie vient généralement d’une entrée opérateur à partir d’un dispositif d’interface opérateur.

manuel (.MO) Prend la valeur de rétro-liaison comme une entrée et règle ses variables internes pour générer la même valeur sur la sortie.

L’entrée de rétro-liaison vers l’instruction PID est mise à l’échelle à 0 – 100 % selon les valeurs de .MINTIE et .MAXTIE, et est utilisée comme sortie de la boucle. L’entrée de rétro-liaison vient généralement de la sortie d’une station matérielle manuel/auto qui contourne la sortie de l’automate.

Remarque : le mode manuel est prioritaire sur le mode manuel logiciel, si les deux bits de mode sont activés.

Publication 1756-RM003K-FR-P – Juillet 2008 503

Page 504: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 13 Instructions spéciales (FBC, DDT, DTR, PID)

250 millisecondes. Seuls de rares cas, comme la commande de la tension sur un dévidoir, nécessitent des rafraîchissements de boucle de l’ordre de 10 millisecondes ou plus rapide.

Etant donné que l’instruction PID utilise un calcul basé sur le temps, vous devez synchroniser l’exécution de cette instruction avec l’échantillonnage de la variable de procédé (PV).

La façon la plus facile d’exécuter l’instruction PID est de mettre cette instruction dans une tâche périodique. Réglez la durée de rafraîchissement de la boucle (.UPD) sur une valeur égale à celle de la tâche périodique et assurez-vous que l’instruction PID est exécutée à chaque scrutation de la tâche périodique.

Logique à relais

Texte structuré

PID(TIC101,Local:0:I.Ch0Data,Local:0:I.Ch1Data,Local:1:O.Ch4Data,0,Local:1:I.Ch4InHold,Local:1:I.Ch4Data);

Lorsque vous utilisez une tâche périodique, assurez-vous que l’entrée analogique utilisée pour la variable de procédé est actualisée dans le processeur à un intervalle significativement plus rapide que l’intervalle de la tâche périodique. Idéalement, la variable de procédé doit être envoyée au processeur au moins cinq à dix fois plus vite que l’intervalle de la tâche périodique. Ceci permet de minimiser la différence de temps entre les échantillons réels de la variable de procédé et l’exécution de la boucle PID. Par exemple, si la boucle PID est dans une tâche périodique de 250 millisecondes, utilisez un temps de mise à jour pour la boucle de 250 millisecondes (.UPD = .25) et configurez le module d’entrées analogiques pour qu’il produise des données au moins tous les 25 à 50 ms.

Une autre méthode moins précise pour exécuter une instruction PID consiste à placer l’instruction dans une tâche continue et à utiliser un bit de fin de temporisation pour déclencher l’exécution de l’instruction PID.

504 Publication 1756-RM003K-FR-P – Juillet 2008

Page 505: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions spéciales (FBC, DDT, DTR, PID) Chapitre 13

Logique à relais

Texte structuré

PID_timer.pre := 1000

TONR(PID_timer);

IF PID_timer.DN THEN

PID(TIC101,Local:0:I.Ch0Data,Local:0:I.Ch1Data,Local:1:O.Ch0Data,0,Local:1:I.Ch0InHold,Local:1:I.Ch0Data);

END_IF;

Dans cette méthode, le temps de mise à jour de la boucle de l’instruction PID doit être égal à la présélection du temporisateur. Comme dans le cas de l’utilisation d’une tâche périodique, vous devez régler le module d’entrées analogiques pour qu’il produise une variable de procédé à une fréquence plus rapide que le temps de mise à jour de la boucle. Vous devriez utiliser la méthode du temporisateur pour l’exécution PID de boucles uniquement avec des temps de mise à jour de boucle qui sont plusieurs fois plus longs que le temps d’exécution de votre tâche continue dans le cas le plus défavorable.

La façon la plus précise d’exécuter une instruction PID est d’utiliser la fonction d’échantillonnage en temps réel (RTS) des modules d’entrées analogiques 1756. Le module d’entrées analogiques échantillonne ses entrées à la fréquence d’échantillonnage en temps réel que vous configurez lorsque vous réglez le module. Lorsque la période d’échantillonnage en temps réel du module est terminée, il actualise ses entrées et rafraîchit un horodateur continu (représenté par le membre .RollingTimestamp de la structure de données d’entrées analogiques) produit par le module.

Publication 1756-RM003K-FR-P – Juillet 2008 505

Page 506: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 13 Instructions spéciales (FBC, DDT, DTR, PID)

L’horodatage est compris entre 0 et 32 767 millisecondes. Surveillez l’horodatage. Lorsqu’il change, un nouvel échantillon de variable de procédé a été reçu. Chaque fois qu’un horodatage change, exécutezl’instruction PID une fois. Etant donné que l’échantillon de variable de procédé est géré par le module d’entrées analogiques, le temps d’échantillonnage d’entrée est très précis, et le réglage du temps de mise à jour de boucle utilisé par l’instruction PID doit être égal au temps RTS du module d’entrées analogiques.

Pour être sûr de ne pas rater d’échantillons de la variable de procédé, exécutez votre programme à une fréquence supérieure au RTS. Par exemple, si le RTS est de 250 ms, vous pouvez mettre le programme PID dans une tâche périodique qui est exécutée toutes les 100 ms pour être sûr de ne jamais rater un échantillon. Vous pouvez même placer le programme PID dans une tâche continue, tant que vous vous assurez que le programme sera actualisé plus souvent que toutes les 250 millisecondes.

Un exemple de la méthode RTS d’exécution est donné ci-dessous. L’exécution de l’instruction PID dépend de la réception de nouvelles données d’entrées analogiques. Si le module d’entrées analogiques échoue ou est retiré, l’automate arrête de recevoir les horodatages continus et la boucle PID arrête son exécution. Vous devez surveiller le bit d’état de l’entrée analogique PV et si elle présente un mauvais état, forcez la boucle en mode manuel logiciel et exécutez la boucle à chaque scrutation. Ceci permet aux opérateurs de changer manuellement la sortie de la boucle PID.

Logique à relais

506 Publication 1756-RM003K-FR-P – Juillet 2008

Page 507: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions spéciales (FBC, DDT, DTR, PID) Chapitre 13

Texte structuré

IF (Local:0:I.Ch0Fault) THENTIC101.SWM [:=] 1;

ELSETIC101.SWM := 0;

END_IF;

IF (Local:0:I.RollingTimestamp<>PreviousTimestamp) OR(Local:0:I.Ch0Fault) THEN

PreviousTimestamp := Local:0:I.RollingTimestamp;

PID(TIC101,Local:0:I.Ch0Data,Local:0:I.Ch1Data,Local:1:O.Ch0Data,0,Local:1:I.Ch0InHold,Local:1:I.Ch0Data);

END_IF;

Redémarrage sans à-coups

L’instruction PID peut dialoguer avec les modules de sorties analogiques 1756 pour la prise en charge d’un redémarrage sans à-coups lorsque l’automate passe du mode Programmation au mode Exécution lorsque l’automate est mis sous tension.

Lorsqu’un module de sorties analogiques 1756 perd la communication avec l’automate ou détecte que l’automate est en mode Programmation, le module de sorties analogiques active ses sorties avec les valeurs de condition de défaut que vous avez définies lors de la configuration du module. Lorsque l’automate revient en mode Exécution ou rétablit la communication avec le module de sorties analogiques, vous pouvez paramétrer l’instruction PID pour qu’elle réinitialise automatiquement ses sorties de variable de procédé à une valeur égale à celle des sorties analogiques en utilisant le bit Inhold et le paramètre Inhold Value sur l’instruction PID.

Publication 1756-RM003K-FR-P – Juillet 2008 507

Page 508: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 13 Instructions spéciales (FBC, DDT, DTR, PID)

Pour régler un redémarrage sans à-coups :

Lissage des dérivées

Le calcul des dérivées est amélioré par le filtre de lissage des dérivées. Ce filtre numérique passe bas de premier ordre aide à minimiser les pointes de terme dérivé provoquées par les interférences dans PV. Ce lissage devient plus puissant avec les gains dérivés plus importants. Vous pouvez désactiver le lissage des dérivées si votre processus requiert des gains dérivés très importants (Kd > 10, par exemple).

Pour désactiver le lissage des dérivées, sélectionnez l’option « No derivative smoothing » (pas de lissage des dérivées) dans l’onglet Configuration ou activez le bit .NDF dans la structure PID.

Action Détails

Configurez la voie du module de sorties analogiques 1756 qui reçoit la variable de procédé provenant de l’instruction PID

Cochez la case « hold for initialization » (maintenir pour initialisation) de la page des propriétés pour la voie spécifique du module.

Ceci indique au module de sorties analogiques que lorsque l’automate revient en mode Exécution ou rétablit la communication avec le module, le module doit maintenir la sortie analogique à sa valeur actuelle jusqu’à ce que la valeur envoyée de l’automate corresponde (à moins de 0,1 % de la plage) à la valeur actuelle utilisée par la voie de sortie. La sortie de l’automate augmente ou diminue jusqu’à la valeur de sortie maintenue en utilisant le terme .BIAS. Cette rampe est similaire au transfert sans à-coups automatique.

Entrez le point du bit Inhold et le point Inhold Value dans l’instruction PID

Le module de sorties analogiques 1756 renvoie deux valeurs pour chaque voie dans sa structure de données d’entrées. Le bit d’état InHold (.Ch2InHold, par exemple), lorsqu’il est vrai, indique que la voie de sortie analogique maintient sa valeur. La valeur de lecture de données (.Ch2Data, par exemple) indique la valeur de sortie actuelle en unités procédé.

Entrez le point du bit d’état InHold en tant que paramètre du bit InHold de l’instruction PID. Entrez le point de la valeur de lecture de données comme paramètre Inhold Value.

Lorsque le bit Inhold est vrai, l’instruction PID déplace Inhold Value dans la sortie de variable de contrôle et est réinitialisée pour accepter un redémarrage sans à-coups à cette valeur. Lorsque le module de sorties analogiques reçoit à nouveau cette valeur de l’automate, il désactive le bit d’état InHold, ce qui permet à l’instruction PID de commander normalement.

508 Publication 1756-RM003K-FR-P – Juillet 2008

Page 509: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions spéciales (FBC, DDT, DTR, PID) Chapitre 13

Réglage de la zone morte

La zone morte ajustable vous permet de sélectionner une plage d’erreur au-dessus et en dessous du point de consigne dans laquelle la sortie ne change pas tant que l’erreur reste dans cette plage. Cette zone morte vous permet de contrôler avec quelle précision la variable de procédé doit correspondre au point de consigne pour que la sortie ne soit pas modifiée. La zone morte permet également de limiter l’usure de vos dispositifs de commande.

Le passage par zéro est un contrôle de zone morte qui permet à l’instruction d’utiliser l’erreur pour les calculs lorsque la variable de procédé entre dans la zone morte et jusqu’à ce qu’elle croise le point de consigne. Une fois que la variable de procédé croise le point de consigne (l’erreur passe par zéro et change de signe) et tant que cette variable reste dans la zone morte, la sortie ne change pas.

La plage de la zone morte au-dessus et en dessous du point de consigne dépend de la valeur que vous spécifiez. Entrez un zéro pour désactiver la zone morte. La zone morte utilise la même unité de mesure que le point de consigne. Vous pouvez utiliser la zone morte sans la fonction de passage par zéro en sélectionnant l’option « no zero crossing for deadband » (pas de passage par zéro pour la zone morte) dans l’onglet Configuration ou en activant le bit .NOZC de la structure PID.

Si vous utilisez la zone morte, la variable de contrôle doit être une valeur REAL sinon elle sera forcée à 0 lorsque l’erreur se trouve dans la zone morte.

Utilisation de la limitation de sortie

Vous pouvez régler une limite de sortie (pourcentage de la sortie) pour la sortie de contrôle. Lorsque l’instruction détecte que la sortie a atteint une limite, elle active un bit d’alarme et empêche la sortie de dépasser la limite supérieure ou inférieure.

erreur dans la plage de la zone morte

+ zone morte

point de consigne

– zone morte

durée 41026

Publication 1756-RM003K-FR-P – Juillet 2008 509

Page 510: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 13 Instructions spéciales (FBC, DDT, DTR, PID)

Anticipation de vitesse ou polarisation de sortie

Vous pouvez anticiper une perturbation du système en envoyant la valeur .BIAS dans la valeur anticipation de vitesse/polarisation de l’instruction PID.

La valeur d’anticipation de vitesse représente une perturbation envoyée à l’instruction PID avant que la perturbation réelle ait une chance de modifier la variable de procédé. L’anticipation est souvent utilisée pour contrôler des processus qui présente un retard de transfert. Par exemple, une valeur d’anticipation représentant « de l’eau froide versée dans un mélange chaud » peut amplifier la valeur de sortie plus rapidement que si l’on attend que la variable de procédé change à la suite du mélange.

Une valeur de polarisation est généralement utilisée lorsqu’aucune commande intégrale n’est utilisée. Dans ce cas, la valeur de polarisation peut être réglée de façon à maintenir la sortie dans la plage requise pour garder PV près du point de consigne.

Boucles en cascade

Pour mettre deux boucles en cascade, l’instruction PID attribue la sortie selon un pourcentage de la boucle maître au point de consigne de la boucle esclave. La boucle esclave convertit automatiquement la sortie de la boucle maître dans les unités procédé correctes pour le point de consigne de la boucle esclave, selon les valeurs .MAXS et .MINS de la boucle esclave.

Logique à relais

Texte structuré

PID(master,pv_master,0,cv_master,0,0,0);

PID (slave,pv_slave,0,cv_slave,master,0,0);

510 Publication 1756-RM003K-FR-P – Juillet 2008

Page 511: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions spéciales (FBC, DDT, DTR, PID) Chapitre 13

Contrôle d’un rapport

Vous pouvez maintenir deux valeurs dans un rapport donné en utilisant ces paramètres :

• valeur non asservie ;

• valeur asservie (point de consigne qui doit être utilisé par l’instruction PID) ;

• rapport entre ces deux valeurs.

Logique à relais

Texte structuré

pid_2.sp := uncontrolled_flow * ratio

PID(pid_2,pv_2,tieback_2,cv_2,0,0,0);

Pour ce paramètre de multiplication Entez cette valeur

Destination valeur asservie

Source A valeur non asservie

Source B rapport

Publication 1756-RM003K-FR-P – Juillet 2008 511

Page 512: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 13 Instructions spéciales (FBC, DDT, DTR, PID)

Théorie du PID Les figures suivantes montrent le déroulement du processus pour une instruction PID.

Processus PID

Processus PID avec boucles maître/esclave

+-

-1+

SP affiché en unités

de procédé

Erreur affichée en unités de

procédé

Mode logiciel A/Mou

station A/M Action de commande

Auto SP-PV

(Erreur)

Manuel

Non

Oui

PVT

SPPV-SP

Convertit binaire en unités de procédé

(PV-mini)(maxs-mins) + minsmaxi-mini

PV

PVaffiché en unités de procédé

Convertit unités en %

Erreurr X 100maxs-mins

Calcul PID

% polarisation de sortie

Mode logiciel A/M

Auto

Auto(% sortie)

% sortie active

Convertit unités rétro-liaison en %

tieback-mintiemaxtie-mintie

x 100

ManuelManuel

Limitation sortie

% sortie active

Mode station A/M

Sortie (CV) affiché en % d’échelle

d’unités de procédé

Convertit % en unités CV

% CV (maxcv-mincv)100

+ mincvCV

+-

-1+

+-

-1+

SP

Auto

Manuel

PVTNon

Oui

Convertit binaire en unités de procédé

(PV-mini)(maxs-mins)maxi-mini

+ mins

PV

SP-PV

PV-SP

(Erreur)Convertit unités

en %Erreurr X 100

maxs-mins

Calcul PID

% polarisation sortie

Mode logiciel A/M

Auto

Auto(% sortie)

Limitation sortie

% sortie activeMode station

A/M

% sortie active

ManuelManuel

(Master.Out)

SP

PV

Boucle maître Mode logiciel A/M

oustation A/M

Action de commande

Boucle esclave

(Master.Out)

Convertit binaire en unités de procédé

(PV-mini)(maxs-mins)maxi-mini

+ mins

(SP)

PV

Convertit % en unités de procédé

Convertit unités rétro-liaison en %

tieback-mintiemaxtie-mintie

x 100

Convertit unités en %

Erreur X 100maxs-mins

Convertit unités en %

Erreur X 100maxs-mins

X (maxs-mins)100

+ mins

Action de commande

SP-PV

PV-SP

Calcul PID

% polarisation de sortie

% sortie active

Auto

Auto

Manuel

Manuel

Mode station A/M

Limitation sortie

Mode logiciel A/M

% sortie active

Convertit % en unités CV

% CV (maxcv-mincv)100

+ mincv

Les éléments référencés dans cette case sont les paramètres, les unités et les modes pertinents pour la boucle esclave définie.

ManuelManuel

Auto

Mode logiciel A/M

512 Publication 1756-RM003K-FR-P – Juillet 2008

Page 513: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 14

Instructions trigonométriques(SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Introduction Les instructions trigonométriques évaluent les opérations arithmétiques à l’aide d’opérations trigonométriques.

Vous pouvez mélanger des types de données ; cependant des erreurs de précision et un arrondissement des valeurs peuvent se produire et l’instruction est plus longue à exécuter. Vérifiez le bit d’état de dépassement (S:V) pour vérifier si le résultat a été tronqué.

Pour les instructions de logique à relais, les types de données en gras indiquent les types de données optimaux. Une instruction est exécutée plus rapidement et demande moins de mémoire si tous les opérandes de l’instruction utilisent le même type de données optimal, généralement DINT ou REAL.

Si vous voulez Utilisez cette instruction Disponible dans ces langages Voir page

prendre le sinus d’une valeur SIN Logique à relaisTexte structuré

Bloc fonctionnel

514

prendre le cosinus d’une valeur COS Logique à relaisTexte structuré

Bloc fonctionnel

517

prendre la tangente d’une valeur TAN Logique à relaisTexte structuré

Bloc fonctionnel

520

prendre le sinus d’arc d’une valeur ASN

ASIN(1)

Logique à relaisTexte structuré

Bloc fonctionnel

523

prendre le cosinus d’arc d’une valeur ACS

ACOS(1)

Logique à relaisTexte structuré

Bloc fonctionnel

526

prendre la tangente d’arc d’une valeur ATN

ATAN(1)

Logique à relaisTexte structuré

Bloc fonctionnel

529

(1) Texte structuré uniquement.

Publication 1756-RM003K-FR-P – Juillet 2008 513

Page 514: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 14 Instructions trigonométriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Sinus (SIN) L’instruction SIN prend le sinus de la valeur Source (en radians) et enregistre le résultat dans la Destination.

Opérandes :

Logique à relais

Texte structuré

Utilisez SIN comme une fonction. Cette fonction calcule le sinus de source et enregistre le résultat dans dest.

Pour plus d’informations sur la syntaxe des expressions du texte structuré, voir Annexe C, Programmation en texte structuré.

Bloc fonctionnel

Structure FBD_MATH_ADVANCED

Opérande Type Format Description

Source SINT

INT

DINT

REAL

immédiat

point

trouver le sinus de cette valeur

Destination SINT

INT

DINT

REAL

point point pour le stockage du résultat

Opérande Type Format Description

point SIN FBD_MATH_ADVANCED structure structure SIN

dest := SIN(source);

Paramètre d’entrée Type de données

Description

EnableIn BOOL Entrée activée. Si désactivée, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Réglage par défaut activé.

Source REAL Entrée de l’instruction mathématique.

Valable = toute valeur en virgule flottante

Paramètre de sortie Type de données

Description

EnableOut BOOL L’instruction a produit un résultat valable.

Dest REAL Résultat de l’instruction mathématique. Les indicateurs d’état arithmétiques sont activés pour cette sortie.

514 Publication 1756-RM003K-FR-P – Juillet 2008

Page 515: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions trigonométriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN) Chapitre 14

Description : La Source doit être supérieure ou égale à –205 887,4 (–2πx215) et

inférieure ou égale à 205 887,4 (2πx215). La valeur de résultat dans la Destination est toujours supérieure ou égale à –1 et inférieure ou égale à 1.

Indicateurs d’état arithmétique : Les indicateurs d’état arithmétique sont affectés.

Conditions d’erreur : Aucune

Exécution :

Logique à relais

Bloc fonctionnel

Condition Action

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai L’automate calcule le sinus de la Source et enregistre le résultat dans la Destination.

L’état de sortie de la ligne est réglé sur vrai.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

Condition Action

Pré-scrutation Aucune.

Première scrutation de l’instruction Aucune.

Première exécution de l’instruction Aucune.

EnableIn est effacé EnableOut est effacé.

EnableIn est activé L’instruction est exécutée.

EnableOut est activé.

Post-scrutation Aucune.

Publication 1756-RM003K-FR-P – Juillet 2008 515

Page 516: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 14 Instructions trigonométriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Exemple : Calculer le sinus de value et placer le résultat dans result.

Logique à relais

Texte structuré

result := SIN(value);

Bloc fonctionnel

516 Publication 1756-RM003K-FR-P – Juillet 2008

Page 517: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions trigonométriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN) Chapitre 14

Cosinus (COS) L’instruction COS prend le cosinus de la valeur Source (en radians) et enregistre le résultat dans la Destination.

Opérandes :

Logique à relais

Texte structuré

Utilisez COS comme une fonction. Cette fonction calcule le cosinus de source et enregistre le résultat dans dest.

Pour plus d’informations sur la syntaxe des expressions du texte structuré, voir Annexe C, Programmation en texte structuré.

Bloc fonctionnel

Opérande Type Format Description

Source SINT

INT

DINT

REAL

immédiat

point

trouver le cosinus de cette valeur

Destination SINT

INT

DINT

REAL

point point pour le stockage du résultat

Opérande Type Format Description

point COS FBD_MATH_ADVANCED structure structure COS

dest := COS(source);

Publication 1756-RM003K-FR-P – Juillet 2008 517

Page 518: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 14 Instructions trigonométriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Structure FBD_MATH_ADVANCED

Description : La Source doit être supérieure ou égale à –205 887,4 (–2πx215) et

inférieure ou égale à 205 887,4 (2πx215). La valeur de résultat dans la Destination est toujours supérieure ou égale à –1 et inférieure ou égale à 1.

Indicateurs d’état arithmétique : Les indicateurs d’état arithmétique sont affectés.

Conditions d’erreur : Aucune

Exécution :

Logique à relais

Paramètre d’entrée Type de données

Description

EnableIn BOOL Entrée activée. Si désactivée, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Réglage par défaut activé.

Source REAL Entrée de l’instruction mathématique.

Valable = toute valeur en virgule flottante

Paramètre de sortie Type de données

Description

EnableOut BOOL L’instruction a produit un résultat valable.

Dest REAL Résultat de l’instruction mathématique. Les indicateurs d’état arithmétiques sont activés pour cette sortie.

Condition Action

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai L’automate calcule le cosinus de la Source et enregistre le résultat dans la Destination.

L’état de sortie de la ligne est réglé sur vrai.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

518 Publication 1756-RM003K-FR-P – Juillet 2008

Page 519: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions trigonométriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN) Chapitre 14

Bloc fonctionnel

Exemple : Calculer le cosinus de value et placer le résultat dans result.

Logique à relais

Texte structuré

result := COS(value);

Bloc fonctionnel

Condition Action

Pré-scrutation Aucune.

Première scrutation de l’instruction Aucune.

Première exécution de l’instruction Aucune.

EnableIn est effacé EnableOut est effacé.

EnableIn est activé L’instruction est exécutée.

EnableOut est activé.

Post-scrutation Aucune.

Publication 1756-RM003K-FR-P – Juillet 2008 519

Page 520: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 14 Instructions trigonométriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Tangente (TAN) L’instruction TAN prend la tangente de la valeur Source (en radians) et enregistre le résultat dans la Destination.

Opérandes :

Logique à relais

Texte structuré

Utilisez TAN comme une fonction. Cette fonction calcule la tangente de source et enregistre le résultat dans dest.

Pour plus d’informations sur la syntaxe des expressions du texte structuré, voir Annexe C, Programmation en texte structuré.

Bloc fonctionnel

Opérande Type Format Description

Source SINT

INT

DINT

REAL

immédiat

point

trouver la tangente de cette valeur

Destination SINT

INT

DINT

REAL

point point pour le stockage du résultat

Opérande Type Format Description

point TAN FBD_MATH_ADVANCED structure structure TAN

dest := TAN(source);

520 Publication 1756-RM003K-FR-P – Juillet 2008

Page 521: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions trigonométriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN) Chapitre 14

Structure FBD_MATH_ADVANCED

Description : La Source doit être supérieure ou égale à –102 943,7 (–2πx214) et

inférieure ou égale à 102 943,7 (2πx214).

Indicateurs d’état arithmétique : Les indicateurs d’état arithmétique sont affectés.

Conditions d’erreur : Aucune

Exécution :

Logique à relais

Bloc fonctionnel

Paramètre d’entrée Type de données

Description

EnableIn BOOL Entrée activée. Si désactivée, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Réglage par défaut activé.

Source REAL Entrée de l’instruction mathématique.

Valable = toute valeur en virgule flottante

Paramètre de sortie Type de données

Description

EnableOut BOOL L’instruction a produit un résultat valable.

Dest REAL Résultat de l’instruction mathématique. Les indicateurs d’état arithmétiques sont activés pour cette sortie.

Condition Action

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai L’automate calcule la tangente de la Source et enregistre le résultat dans la Destination.

L’état de sortie de la ligne est réglé sur vrai.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

Condition Action

Pré-scrutation Aucune.

Première scrutation de l’instruction Aucune.

Première exécution de l’instruction Aucune.

EnableIn est effacé EnableOut est effacé.

EnableIn est activé L’instruction est exécutée.

EnableOut est activé.

Post-scrutation Aucune.

Publication 1756-RM003K-FR-P – Juillet 2008 521

Page 522: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 14 Instructions trigonométriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Exemple : Calculer la tangente de value et placer le résultat dans result.

Logique à relais

Texte structuré

result := TAN(value);

Bloc fonctionnel

522 Publication 1756-RM003K-FR-P – Juillet 2008

Page 523: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions trigonométriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN) Chapitre 14

Sinus d’arc (ASN) L’instruction ASN prend le sinus d’arc de la valeur Source et enregistre le résultat dans la Destination (en radians).

Opérandes :

Logique à relais

Texte structuré

Utilisez ASIN comme une fonction. Cette fonction calcule le sinus d’arc de source et enregistre le résultat dans dest.

Pour plus d’informations sur la syntaxe des expressions du texte structuré, voir Annexe C, Programmation en texte structuré.

Bloc fonctionnel

Structure FBD_MATH_ADVANCED

Opérande Type Format Description

Source SINT

INT

DINT

REAL

immédiat

point

trouver le sinus d’arc de cette valeur

Destination SINT

INT

DINT

REAL

point point pour le stockage du résultat

Opérande Type Format Description

point ASN FBD_MATH_ADVANCED structure structure ASN

dest := ASIN(source);

Paramètre d’entrée Type de données

Description

EnableIn BOOL Entrée activée. Si désactivée, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Réglage par défaut activé.

Source REAL Entrée de l’instruction mathématique.

Valable = toute valeur en virgule flottante

Paramètre de sortie Type de données

Description

EnableOut BOOL L’instruction a produit un résultat valable.

Dest REAL Résultat de l’instruction mathématique. Les indicateurs d’état arithmétiques sont activés pour cette sortie.

Publication 1756-RM003K-FR-P – Juillet 2008 523

Page 524: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 14 Instructions trigonométriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Description : La Source doit être supérieur ou égale à ~1 et inférieure ou égale à 1. La valeur du résultat dans la Destination est toujours supérieure ou égale à –π/2 et inférieure ou égale à π/2 (où π = 3,141593).

Indicateurs d’état arithmétique : Les indicateurs d’état arithmétique sont affectés.

Conditions d’erreur : Aucune

Exécution :

Logique à relais

Bloc fonctionnel

Condition Action

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai L’automate calcule le sinus d’arc de la Source et enregistre le résultat dans la Destination.

L’état de sortie de la ligne est réglé sur vrai.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

Condition Action

Pré-scrutation Aucune.

Première scrutation de l’instruction Aucune.

Première exécution de l’instruction Aucune.

EnableIn est effacé EnableOut est effacé.

EnableIn est activé L’instruction est exécutée.

EnableOut est activé.

Post-scrutation Aucune.

524 Publication 1756-RM003K-FR-P – Juillet 2008

Page 525: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions trigonométriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN) Chapitre 14

Exemple : Calculer le sinus d’arc de value et placer le résultat dans result.

Logique à relais

Texte structuré

result := ASIN(value);

Bloc fonctionnel

Publication 1756-RM003K-FR-P – Juillet 2008 525

Page 526: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 14 Instructions trigonométriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Cosinus d’arc (ACS) L’instruction ACS prend le cosinus d’arc de la valeur Source et enregistre le résultat dans la Destination (en radians).

Opérandes :

Logique à relais

Texte structuré

Utilisez ACOS comme une fonction. Cette fonction calcule le cosinus d’arc de source et enregistre le résultat dans dest.

Pour plus d’informations sur la syntaxe des expressions du texte structuré, voir Annexe C, Programmation en texte structuré

Bloc fonctionnel

Structure FBD_MATH_ADVANCED

Opérande Type Format Description

Source SINT

INT

DINT

REAL

immédiat

point

trouver le cosinus d’arc de cette valeur

Destination SINT

INT

DINT

REAL

point point pour le stockage du résultat

Opérande Type Format Description

point ACS FBD_MATH_ADVANCED structure structure ACS

dest := ACOS(source);

Paramètre d’entrée Type de données

Description

EnableIn BOOL Entrée activée. Si désactivée, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Réglage par défaut activé.

Source REAL Entrée de l’instruction mathématique.

Valable = toute valeur en virgule flottante

Paramètre de sortie Type de données

Description

EnableOut BOOL L’instruction a produit un résultat valable.

Dest REAL Résultat de l’instruction mathématique. Les indicateurs d’état arithmétiques sont activés pour cette sortie.

526 Publication 1756-RM003K-FR-P – Juillet 2008

Page 527: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions trigonométriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN) Chapitre 14

Description : La Source doit être supérieur ou égale à –1 et inférieure ou égale à 1. La valeur du résultat dans la Destination est toujours supérieure ou égale à 0 ou inférieure ou égale à π (où π = 3,141593).

Indicateurs d’état arithmétique : Les indicateurs d’état arithmétique sont affectés.

Conditions d’erreur : Aucune

Exécution :

Logique à relais

Bloc fonctionnel

Condition Action

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai L’automate calcule le cosinus d’arc de la Source et enregistre le résultat dans la Destination.

L’état de sortie de la ligne est réglé sur vrai.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

Condition Action

Pré-scrutation Aucune.

Première scrutation de l’instruction Aucune.

Première exécution de l’instruction Aucune.

EnableIn est effacé EnableOut est effacé.

EnableIn est activé L’instruction est exécutée.

EnableOut est activé.

Post-scrutation Aucune.

Publication 1756-RM003K-FR-P – Juillet 2008 527

Page 528: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 14 Instructions trigonométriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Exemple : Calculer le cosinus d’arc de value et placer le résultat dans result.

Logique à relais

Texte structuré

result := ACOS(value);

Bloc fonctionnel

528 Publication 1756-RM003K-FR-P – Juillet 2008

Page 529: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions trigonométriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN) Chapitre 14

Tangente d’arc (ATN) L’instruction ATN prend la tangente d’arc de la valeur Source et enregistre le résultat dans la Destination (en radians).

Opérandes :

Logique à relais

Texte structuré

Utilisez ATAN comme une fonction. Cette fonction calcule la tangente d’arc de source et enregistre le résultat dans dest.

Pour plus d’informations sur la syntaxe des expressions du texte structuré, voir Annexe C, Programmation en texte structuré.

Bloc fonctionnel

Structure FBD_MATH_ADVANCED

Opérande Type Format Description

Source SINT

INT

DINT

REAL

immédiat

point

trouver la tangente d’arc de cette valeur

Destination SINT

INT

DINT

REAL

point point pour le stockage du résultat

Opérande Type Format Description

point ATN FBD_MATH_ADVANCED structure structure ATN

dest := ATAN(source);

Paramètre d’entrée Type de données

Description

EnableIn BOOL Entrée activée. Si désactivée, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Réglage par défaut activé.

Source REAL Entrée de l’instruction mathématique.

Valable = toute valeur en virgule flottante

Paramètre de sortie Type de données

Description

EnableOut BOOL L’instruction a produit un résultat valable.

Dest REAL Résultat de l’instruction mathématique. Les indicateurs d’état arithmétiques sont activés pour cette sortie.

Publication 1756-RM003K-FR-P – Juillet 2008 529

Page 530: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 14 Instructions trigonométriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Description : La valeur de résultat dans la Destination est toujours supérieure ou égale à –π/2 et inférieure ou égale à π/2 (où π = 3,141593).

Indicateurs d’état arithmétique : Les indicateurs d’état arithmétique sont affectés.

Conditions d’erreur : Aucune

Exécution :

Logique à relais

Bloc fonctionnel

Condition Action

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai L’automate calcule la tangente d’arc de la Source et enregistre le résultat dans la Destination.

L’état de sortie de la ligne est réglé sur vrai.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

Condition Action

Pré-scrutation Aucune.

Première scrutation de l’instruction Aucune.

Première exécution de l’instruction Aucune.

EnableIn est effacé EnableOut est effacé.

EnableIn est activé L’instruction est exécutée.

EnableOut est activé.

Post-scrutation Aucune.

530 Publication 1756-RM003K-FR-P – Juillet 2008

Page 531: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions trigonométriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN) Chapitre 14

Exemple : Calculer la tangente d’arc de value et place le résultat dans result.

Logique à relais

Texte structuré

result := ATAN(value);

Bloc fonctionnel

Publication 1756-RM003K-FR-P – Juillet 2008 531

Page 532: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 14 Instructions trigonométriques (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Notes :

532 Publication 1756-RM003K-FR-P – Juillet 2008

Page 533: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 15

Instructions mathématiques évoluées(LN, LOG, XPY)

Introduction Les instructions mathématiques évoluées incluent les instructions suivantes :

Vous pouvez mélanger des types de données ; cependant des erreurs de précision et un arrondissement des valeurs peuvent se produire et l’instruction est plus longue à exécuter. Vérifiez le bit S:V pour voir si le résultat a été tronqué.

Pour les instructions de logique à relais, les types de données en gras indiquent les types de données optimaux. Une instruction est exécutée plus rapidement et demande moins de mémoire si tous les opérandes de l’instruction utilisent le même type de données optimal, généralement DINT ou REAL.

Si vous voulez Utilisez cette instruction Disponible dans ces langages Voir page

prendre le logarithme naturel d’une valeur LN Logique à relais

Texte structuré

Bloc fonctionnel

534

prendre le logarithme décimal d’une valeur LOG Logique à relais

Texte structuré

Bloc fonctionnel

537

élever une valeur à la puissance d’une autre valeur

XPY Logique à relais

Texte structuré(1)

Bloc fonctionnel

540

(1) Il n’y a pas d’instruction en texte structuré équivalente. Utilisez l’opérateur dans une expression.

Publication 1756-RM003K-FR-P – Juillet 2008 533

Page 534: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 15 Instructions mathématiques évoluées (LN, LOG, XPY)

Logarithme naturel (LN) L’instruction LN prend le logarithme naturel de la Source et enregistre le résultat dans la Destination.

Opérandes :

Logique à relais

Texte structuré

Utilisez LN comme une fonction. Cette fonction calcule le logarithme naturel de source et enregistre le résultat dans dest.

Pour plus d’informations sur la syntaxe des expressions du texte structuré, voir Annexe C, Programmation en texte structuré.

Bloc fonctionnel

Structure FBD_MATH_ADVANCED

Opérande Type Format Description

Source SINT

INT

DINT

REAL

immédiat

point

trouver le logarithme naturel de cette valeur

Destination SINT

INT

DINT

REAL

point point pour le stockage du résultat

Opérande Type Format Description

point LN FBD_MATH_ADVANCED structure structure LN

dest := LN(source);

Paramètre d’entrée Type de données

Description

EnableIn BOOL Entrée activée. Si désactivée, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Réglage par défaut activé.

Source REAL Entrée de l’instruction mathématique.

Valable = toute valeur en virgule flottante

Paramètre de sortie Type de données

Description

EnableOut BOOL L’instruction a produit un résultat valable.

534 Publication 1756-RM003K-FR-P – Juillet 2008

Page 535: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions mathématiques évoluées (LN, LOG, XPY) Chapitre 15

Description : La Source doit être supérieure à zéro, sinon le bit d’état de dépassement (S:V) est activé. La valeur de résultat dans la Destination est supérieure ou égale à –87,33655 et inférieure ou égale à 88,72284.

Indicateurs d’état arithmétique : Les indicateurs d’état arithmétique sont affectés.

Conditions d’erreur : Aucune

Exécution :

Logique à relais

Bloc fonctionnel

Condition Action

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai L’automate calcule le logarithme natuel de la Source et enregistre le résultat dans la Destination.

L’état de sortie de la ligne est réglé sur vrai.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

Condition Action

Pré-scrutation Aucune.

Première scrutation de l’instruction Aucune.

Première exécution de l’instruction Aucune.

EnableIn est effacé EnableOut est effacé.

EnableIn est activé L’instruction est exécutée.

EnableOut est activé.

Post-scrutation Aucune.

Publication 1756-RM003K-FR-P – Juillet 2008 535

Page 536: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 15 Instructions mathématiques évoluées (LN, LOG, XPY)

Exemple : Calculer le logarithme naturel de value et placer le résultat dans result.

Exemple de logique à relais

Texte structuré

result := LN(value);

Bloc fonctionnel

536 Publication 1756-RM003K-FR-P – Juillet 2008

Page 537: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions mathématiques évoluées (LN, LOG, XPY) Chapitre 15

Logarithme décimal (LOG) L’instruction LOG prend le logarithme décimal de la Source et enregistre le résultat dans la Destination.

Opérandes :

Logique à relais

Texte structuré

Utilisez LOG comme une fonction. Cette fonction calcule le logarithme de source et enregistre le résultat dans dest.

Pour plus d’informations sur la syntaxe des expressions du texte structuré, voir Annexe C, Programmation en texte structuré.

Bloc fonctionnel

Opérande Type Format Description

Source SINT

INT

DINT

REAL

immédiat

point

trouver le logarithme de cette valeur

Destination SINT

INT

DINT

REAL

point point pour le stockage du résultat

Opérande Type Format Description

point LOG FBD_MATH_ADVANCED structure structure LOG

dest := LOG(source);

Publication 1756-RM003K-FR-P – Juillet 2008 537

Page 538: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 15 Instructions mathématiques évoluées (LN, LOG, XPY)

Structure FBD_MATH_ADVANCED

Description : La Source doit être supérieure à zéro, autrement le bit d’état de dépassement (S:V) est activé. La valeur de résultat dans la Destination est supérieure ou égale à –37,92978 et inférieure ou égale à 38,53184.

Indicateurs d’état arithmétique : Les indicateurs d’état arithmétique sont affectés.

Conditions d’erreur : Aucune

Exécution :

Logique à relais

Bloc fonctionnel

Paramètre d’entrée Type de données

Description

EnableIn BOOL Entrée activée. Si désactivée, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Réglage par défaut activé.

Source REAL Entrée de l’instruction mathématique.

Valable = toute valeur en virgule flottante

Paramètre de sortie Type de données

Description

EnableOut BOOL L’instruction a produit un résultat valable.

Dest REAL Résultat de l’instruction mathématique. Les indicateurs d’état arithmétiques sont activés pour cette sortie.

Condition Action

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai L’automate calcule le logarithme de la Source et enregistre le résultat dans la Destination.

L’état de sortie de la ligne est réglé sur vrai.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

Condition Action

Pré-scrutation Aucune.

Première scrutation de l’instruction Aucune.

Première exécution de l’instruction Aucune.

538 Publication 1756-RM003K-FR-P – Juillet 2008

Page 539: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions mathématiques évoluées (LN, LOG, XPY) Chapitre 15

Exemple : Calculer le logarithme de value et placer le résultat dans result.

Logique à relais

Texte structuré

result := LOG(value);

Bloc fonctionnel

EnableIn est effacé EnableOut est effacé.

EnableIn est activé L’instruction est exécutée.

EnableOut est activé.

Post-scrutation Aucune.

Condition Action

Publication 1756-RM003K-FR-P – Juillet 2008 539

Page 540: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 15 Instructions mathématiques évoluées (LN, LOG, XPY)

X à la puissance Y (XPY) L’instruction XPY élève Source A (X) à la puissance de Source B (Y) et enregistre le résultat dans la Destination.

Opérandes :

Logique à relais

Texte structuré

Utilisez deux signe de multiplication adjacents « ∗∗ » comme opérateur dans une expression. Cette expression élève sourceX à la puissance de sourceY et enregistre le résultat dans dest.

Pour plus d’informations sur la syntaxe des expressions du texte structuré, voir Annexe C, Programmation en texte structuré.

Bloc fonctionnel

Opérande Type Format Description

Source X SINT

INT

DINT

REAL

immédiat

point

valeur de base

Source Y SINT

INT

DINT

REAL

immédiat

point

exposant

Destination SINT

INT

DINT

REAL

point point pour le stockage du résultat

Opérande Type Format Description

point XPY FBD_MATH structure structure XPY

dest := sourceX ** sourceY;

540 Publication 1756-RM003K-FR-P – Juillet 2008

Page 541: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions mathématiques évoluées (LN, LOG, XPY) Chapitre 15

Structure BD_MATH

Description : Si Source X est négatif, Source Y doit être une valeur entière ou un défaut mineur se produit.

L’instruction XPY utilise cet algorithme : Destination = X**Y

L’automate évalue x0=1 et 0x=0.

Indicateurs d’état arithmétique : Les indicateurs d’état arithmétique sont affectés.

Conditions d’erreur :

Exécution :

Logique à relais

Paramètre d’entrée Type de données

Description

EnableIn BOOL Entrée activée. Si désactivée, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Réglage par défaut activé.

Source X REAL Valeur de base

Valable = toute valeur en virgule flottante

Source Y REAL Exposant.

Valable = toute valeur en virgule flottante

Paramètre de sortie Type de données

Description

EnableOut BOOL L’instruction a produit un résultat valable.

Dest REAL Résultat de l’instruction mathématique. Les indicateurs d’état arithmétiques sont activés pour cette sortie.

Un défaut mineur se produit si Type de défaut Code de défaut

Source X est négatif et Source Y n’est pas une valeur entière

4 4

Condition Action

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai L’automate élève Source X à la puissance de Source Y et enregistre le résultat dans la Destination.

L’état de sortie de la ligne est réglé sur vrai.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

Publication 1756-RM003K-FR-P – Juillet 2008 541

Page 542: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 15 Instructions mathématiques évoluées (LN, LOG, XPY)

Bloc fonctionnel

Exemple : L’instruction XPY met value_1 à la puissance de value_2 et place le résultat dans result.

Logique à relais

Texte structuré

result := (value_1 ∗∗ value_2);

Bloc fonctionnel

Condition Action

Pré-scrutation Aucune.

Première scrutation de l’instruction Aucune.

Première exécution de l’instruction Aucune.

EnableIn est effacé EnableOut est effacé.

EnableIn est activé L’instruction est exécutée.

EnableOut est activé.

Post-scrutation Aucune.

542 Publication 1756-RM003K-FR-P – Juillet 2008

Page 543: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 16

Instructions de conversion mathématique(DEG, RAD, TOD, FRD, TRN, TRUNC)

Introduction Les instructions de conversion mathématique convertissent des valeurs.

Vous pouvez mélanger des types de données, cependant des erreurs de précision et un arrondi des valeurs peuvent se produire et l’instruction est plus longue à exécuter. Vérifiez le bit S:V pour voir si le résultat a été tronqué.

Pour les instructions de logique à relais, les types de données en gras indiquent les types de données optimaux. Une instruction est exécutée plus rapidement et demande moins de mémoire si tous les opérandes de l’instruction utilisent le même type de données optimal, généralement DINT ou REAL.

Si vous voulez Utilisez cette instruction Disponible dans ces langages Voir page

convertir des radians en degrés DEG Logique à relais

Texte structuré

Bloc fonctionnel

544

convertir des degrés en radians RAD Logique à relais

Texte structuré

Bloc fonctionnel

547

convertir une valeur entière en valeur DCB TOD Logique à relais

Bloc fonctionnel

550

convertir une valeur DCB en valeur entière FRD Logique à relais

Bloc fonctionnel

553

retirer la partie fractionnelle d’une valeur TRN

TRUNC(1)

Logique à relais

Texte structuré

Bloc fonctionnel

555

(1) Texte structuré uniquement.

Publication 1756-RM003K-FR-P – Juillet 2008 543

Page 544: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 16 Instructions de conversion mathématique (DEG, RAD, TOD, FRD, TRN, TRUNC)

Degrés (DEG) L’instruction DEG convertit la Source (en radians) en degrés et enregistre le résultat dans la Destination.

Opérandes :

Logique à relais

Texte structuré

Utilisez DEG comme une fonction. Cette fonction convertit la source en degrés et enregistre le résultat dans dest.

Pour plus d’informations sur la syntaxe des expressions du texte structuré, voir Annexe C, Programmation en texte structuré.

Bloc fonctionnel

Structure FBD_MATH_ADVANCED

Opérande Type Format Description

Source SINT

INT

DINT

REAL

immédiat

point

valeur à convertir en degrés

Destination SINT

INT

DINT

REAL

point point pour le stockage du résultat

Opérande Type Format Description

point DEG FBD_MATH_ADVANCED structure structure DEG

dest := DEG(source);

Paramètre d’entrée Type de données

Description

EnableIn BOOL Entrée activée. Si désactivée, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Réglage par défaut activé.

Source REAL Entrée de l’instruction de conversion.

Valable = toute valeur en virgule flottante

Paramètre de sortie Type de données

Description

EnableOut BOOL L’instruction a produit un résultat valable.

Dest REAL Résultat de l’instruction de conversion. Les indicateurs d’état arithmétiques sont activés pour cette sortie.

544 Publication 1756-RM003K-FR-P – Juillet 2008

Page 545: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de conversion mathématique (DEG, RAD, TOD, FRD, TRN, TRUNC) Chapitre 16

Description : L’instruction DEG utilise cet algorithme :Source*180/π (où π = 3,141593)

Indicateurs d’état arithmétique : Les indicateurs d’état arithmétique sont affectés.

Conditions d’erreur : Aucune

Exécution :

Logique à relais

Bloc fonctionnel

Condition Action

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai L’automate convertit la Source en degrés et enregistre le résultat dans la Destination.

L’état de sortie de la ligne est réglé sur vrai.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

Condition Action

Pré-scrutation Aucune.

Première scrutation de l’instruction Aucune.

Première exécution de l’instruction Aucune.

EnableIn est effacé EnableOut est effacé.

EnableIn est activé L’instruction est exécutée.

EnableOut est activé.

Post-scrutation Aucune.

Publication 1756-RM003K-FR-P – Juillet 2008 545

Page 546: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 16 Instructions de conversion mathématique (DEG, RAD, TOD, FRD, TRN, TRUNC)

Exemple : Convertir value en degrés et placer le résultat dans result.

Logique à relais

Texte structuré

result := DEG(value);

Bloc fonctionnel

546 Publication 1756-RM003K-FR-P – Juillet 2008

Page 547: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de conversion mathématique (DEG, RAD, TOD, FRD, TRN, TRUNC) Chapitre 16

Radians (RAD) L’instruction RAD convertit la Source (en degrés) en radians et enregistre le résultat dans la Destination.

Opérandes :

Logique à relais

Texte structuré

Utilisez RAD comme une fonction. Cette fonction convertit la source en radians et enregistre le résultat dans dest.

Pour plus d’informations sur la syntaxe des expressions du texte structuré, voir Annexe C, Programmation en texte structuré.

Bloc fonctionnel

Structure FBD_MATH_ADVANCED

Opérande Type Format Description

Source SINT

INT

DINT

REAL

immédiat

point

valeur à convertir en radians

Destination SINT

INT

DINT

REAL

point point pour le stockage du résultat

Opérande Type Format Description

point RAD FBD_MATH_ADVANCED structure structure RAD

dest := RAD(source);

Paramètre d’entrée Type de données

Description

EnableIn BOOL Entrée activée. Si désactivée, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Réglage par défaut activé.

Source REAL Entrée de l’instruction de conversion.

Valable = toute valeur en virgule flottante

Paramètre de sortie Type de données

Description

EnableOut BOOL L’instruction a produit un résultat valable.

Dest REAL Résultat de l’instruction de conversion. Les indicateurs d’état arithmétiques sont activés pour cette sortie.

Publication 1756-RM003K-FR-P – Juillet 2008 547

Page 548: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 16 Instructions de conversion mathématique (DEG, RAD, TOD, FRD, TRN, TRUNC)

Description : L’instruction RAD utilise cet algorithme :Source*π/180 (où π = 3,141593)

Indicateurs d’état arithmétique : Les indicateurs d’état arithmétique sont affectés.

Conditions d’erreur : Aucune

Exécution :

Logique à relais

Bloc fonctionnel

Condition Action

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai L’automate convertit la Source en radians et enregistre le résultat dans la Destination.

L’état de sortie de la ligne est réglé sur vrai.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

Condition Action

Pré-scrutation Aucune.

Première scrutation de l’instruction Aucune.

Première exécution de l’instruction Aucune.

EnableIn est effacé EnableOut est effacé.

EnableIn est activé L’instruction est exécutée.

EnableOut est activé.

Post-scrutation Aucune.

548 Publication 1756-RM003K-FR-P – Juillet 2008

Page 549: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de conversion mathématique (DEG, RAD, TOD, FRD, TRN, TRUNC) Chapitre 16

Exemple Convertir value en radians et placer le résultat dans result.

Logique à relais

Texte structuré

result := RAD(value);

Bloc fonctionnel

Publication 1756-RM003K-FR-P – Juillet 2008 549

Page 550: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 16 Instructions de conversion mathématique (DEG, RAD, TOD, FRD, TRN, TRUNC)

Conversion en DCB (TOD) L’instruction TOD convertit une valeur décimale (0 ≤ Source ≤ 99 999 999) en valeur DCB et enregistre le résultat dans la Destination.

Opérandes :

Logique à relais

Bloc fonctionnel

Structure FBD_CONVERT

Description : DCB est le système de numérotation à décimal codé binaire qui exprime des chiffres décimaux individuels (0 – 9) dans une notation binaire à 4 bits.

Si vous entrez une Source négative, l’instruction génère un défaut mineur et efface la Destination.

Indicateurs d’état arithmétique : Les indicateurs d’état arithmétique sont affectés.

Opérande Type Format Description

Source SINT

INT

DINT

immédiat

point

valeur à convertir en décimale

Un point SINT ou INT est converti en valeur DINT par remplissage de zéros.

Destination SINT

INT

DINT

point stocke le résultat

Opérande Type Format Description

point TOD FBD_CONVERT structure structure TOD

Paramètre d’entrée Type de données

Description

EnableIn BOOL Entrée activée. Si désactivée, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Réglage par défaut activé.

Source DINT Entrée de l’instruction de conversion.

Valable = tout nombre entier

Paramètre de sortie Type de données

Description

EnableOut BOOL L’instruction a produit un résultat valable.

Dest DINT Résultat de l’instruction de conversion. Les indicateurs d’état arithmétiques sont activés pour cette sortie.

550 Publication 1756-RM003K-FR-P – Juillet 2008

Page 551: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de conversion mathématique (DEG, RAD, TOD, FRD, TRN, TRUNC) Chapitre 16

Conditions d’erreur :

Exécution :

Logique à relais

Bloc fonctionnel

Un défaut mineur se produit si Type de défaut Code de défaut

Source < 0 4 4

Condition Action

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai L’automate convertit la Source en DCB et enregistre le résultat dans la Destination.

L’état de sortie de la ligne est réglé sur vrai.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai

fin

Source < 0non

oui

source > 99 999 999non

oui

convertit la source en DCB

S:V est réglé sur 1

l’état de sortie de la ligne est vrai

Condition Action

Pré-scrutation Aucune.

Première scrutation de l’instruction Aucune.

Première exécution de l’instruction Aucune.

EnableIn est effacé EnableOut est effacé.

EnableIn est activé L’instruction est exécutée.

EnableOut est activé.

Post-scrutation Aucune.

Publication 1756-RM003K-FR-P – Juillet 2008 551

Page 552: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 16 Instructions de conversion mathématique (DEG, RAD, TOD, FRD, TRN, TRUNC)

Exemple : L’instruction TOD convertit value_1 en valeur DCB et place le résultat dans result_a.

Logique à relais

Bloc fonctionnel

552 Publication 1756-RM003K-FR-P – Juillet 2008

Page 553: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de conversion mathématique (DEG, RAD, TOD, FRD, TRN, TRUNC) Chapitre 16

Conversion en nombre entier (FRD)

L’instruction FRD convertit une valeur DCB (Source) en valeur décimale et enregistre le résultat dans la Destination.

Opérandes :

Logique à relais

Bloc fonctionnel

Structure FBD_CONVERT

Description : L’instruction FRD convertit une valeur DCB (Source) en valeur décimale et enregistre le résultat dans la Destination.

Indicateurs d’état arithmétique : Les indicateurs d’état arithmétique sont affectés.

Conditions d’erreur : Aucune

Opérande Type Format Description

Source SINT

INT

DINT

immédiat

point

valeur à convertir en décimale

Un point SINT ou INT est converti en valeur DINT par remplissage de zéros.

Destination SINT

INT

DINT

point stocke le résultat

Opérande Type Format Description

point FRD FBD_CONVERT structure structure FRD

Paramètre d’entrée Type de données

Description

EnableIn BOOL Entrée activée. Si désactivée, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Réglage par défaut activé.

Source DINT Entrée de l’instruction de conversion.

Valable = tout nombre entier

Paramètre de sortie Type de données

Description

EnableOut BOOL L’instruction a produit un résultat valable.

Dest DINT Résultat de l’instruction de conversion. Les indicateurs d’état arithmétiques sont activés pour cette sortie.

Publication 1756-RM003K-FR-P – Juillet 2008 553

Page 554: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 16 Instructions de conversion mathématique (DEG, RAD, TOD, FRD, TRN, TRUNC)

Exécution :

Logique à relais

Bloc fonctionnel

Exemple : L’instruction FRD convertit value_a en valeur décimale et place le résultat dans result_1.

Logique à relais

Bloc fonctionnel

Condition Action

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai L’automate convertit la Source en valeur décimale et enregistre le résultat dans la Destination.

L’état de sortie de la ligne est réglé sur vrai.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

Condition Action

Pré-scrutation Aucune.

Première scrutation de l’instruction Aucune.

Première exécution de l’instruction Aucune.

EnableIn est effacé EnableOut est effacé.

EnableIn est activé L’instruction est exécutée.

EnableOut est activé.

Post-scrutation Aucune.

554 Publication 1756-RM003K-FR-P – Juillet 2008

Page 555: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de conversion mathématique (DEG, RAD, TOD, FRD, TRN, TRUNC) Chapitre 16

Troncation (TRN) L’instruction TRN retire (tronque) la partie fractionnelle de la Source et enregistre le résultat dans la Destination.

Opérandes :

Logique à relais

Texte structuré

Utilisez TRUNC comme une fonction. Cette fonction tronque la source et enregistre le résultat dans dest.

Pour plus d’informations sur la syntaxe des expressions du texte structuré, voir Annexe C, Programmation en texte structuré.

Bloc fonctionnel

Structure FBD_TRUNCATE

Opérande Type Format Description

Source REAL immédiat

point

valeur à tronquer

Destination SINT

INT

DINT

REAL

point point pour le stockage du résultat

Opérande Type Format Description

point TRN FBD_TRUNCATE structure structure TRN

dest := TRUNC(source);

Paramètre d’entrée Type de données

Description

EnableIn BOOL Entrée activée. Si désactivée, l’instruction n’est pas exécutée et les sorties ne sont pas rafraîchies.

Réglage par défaut activé.

Source REAL Entrée de l’instruction de conversion.

Valable = toute valeur en virgule flottante

Paramètre de sortie Type de données

Description

EnableOut BOOL L’instruction a produit un résultat valable.

Dest DINT Résultat de l’instruction de conversion. Les indicateurs d’état arithmétiques sont activés pour cette sortie.

Publication 1756-RM003K-FR-P – Juillet 2008 555

Page 556: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 16 Instructions de conversion mathématique (DEG, RAD, TOD, FRD, TRN, TRUNC)

Description : La troncation n’arrondit pas la valeur ; au contraire, la partie non fractionnelle reste identique quelle que soit la valeur de la partie fractionnelle.

Indicateurs d’état arithmétique : Les indicateurs d’état arithmétique sont affectés.

Conditions d’erreur : Aucune

Exécution :

Logique à relais

Bloc fonctionnel

Condition Action

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai L’automate retire la partie fractionnelle de la Source et enregistre le résultat dans la Destination.

L’état de sortie de la ligne est réglé sur vrai.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

Condition Action

Pré-scrutation Aucune.

Première scrutation de l’instruction Aucune.

Première exécution de l’instruction Aucune.

EnableIn est effacé EnableOut est effacé.

EnableIn est activé L’instruction est exécutée.

EnableOut est activé.

Post-scrutation Aucune.

556 Publication 1756-RM003K-FR-P – Juillet 2008

Page 557: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de conversion mathématique (DEG, RAD, TOD, FRD, TRN, TRUNC) Chapitre 16

Exemple : Retirer la partie fractionnelle de float_value_1, en laissant la partie non fractionnelle identique, et placer le résultat dans float_value_1_truncated.

Logique à relais

Texte structuré

float_value_1_truncated := TRUNC(float_value_1);

Bloc fonctionnel

Publication 1756-RM003K-FR-P – Juillet 2008 557

Page 558: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 16 Instructions de conversion mathématique (DEG, RAD, TOD, FRD, TRN, TRUNC)

Notes :

558 Publication 1756-RM003K-FR-P – Juillet 2008

Page 559: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 17

Instructions du port série ASCII(ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Introduction Utilisez les instructions du port série ASCII pour lire et écrire des caractères ASCII.

IMPORTANT Pour utiliser les instructions port série ASCII, vous devez configurer le port série de l’automate. Voir Logix5000 Controllers Common Procedures, publication 1756-PM001.

Si vous voulez Par exemple Utilisez cette instruction

Disponible dans ces langages

Voir page

déterminer quand le buffer contient des caractères de fin

trouver les données contenant des caractères de fin

ABL Logique à relais

Texte structuré

564

compter les caractères dans la mémoire tampon

vérifier qu’il y a le nombre de caractères requis avant de lire la mémoire tampon

ACB Logique à relais

Texte structuré

567

effacer la mémoire tampon • effacer les anciennes données de la mémoire tampon au démarrage

• synchroniser la mémoire tampon avec un équipement

ACL Logique à relais

Texte structuré

569

effacer les instructions port série ASCII qui sont en cours d’exécution ou qui sont en attente

obtenir l’état des lignes de commande du port série

faire raccrocher un modem AHL Logique à relais

Texte structuré

571

activer ou désactiver le signal DTR

activer ou désactiver le signal RTS

lire un nombre fixe de caractères lire des données d’un équipement qui envoie le même nombre de caractères à chaque transmission

ARD Logique à relais

Texte structuré

575

lire un nombre variable de caractères, jusqu’à et y compris le premier jeu de caractères de fin

lire des données d’un équipement qui envoie un nombre variable de caractères à chaque transmission

ARL Logique à relais

Texte structuré

579

envoyer des caractères et ajouter automatiquement un ou deux caractères supplémentaires pour marquer la fin des données

envoyer des messages qui utilisent toujours le ou les mêmes caractères de fin

AWA Logique à relais

Texte structuré

583

envoyer des caractères envoyer des messages qui utilisent différents caractères de fin

AWT Logique à relais

Texte structuré

588

Publication 1756-RM003K-FR-P – Juillet 2008 559

Page 560: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 17 Instructions du port série ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Exécution de l’instruction

L’exécution des instructions port série ASCII est asynchrone par rapport à la scrutation de la logique.

Chaque instruction du port série ASCII (sauf ACL) utilise une structure SERIAL_PORT_CONTROL pour effectuer les fonctions suivantes :

• commander l’exécution de l’instruction ;

• fournir des informations d’état sur l’instruction.

L’instruction entre dans la file d’attente ASCII.

File d’attente ASCII

Instruction 1 L’instruction au sommet de la file d’attente est exécutée.

Mémoire tamponPort série

Instruction 2

Instruction 3

Instruction 4

L’état d’entrée de la ligne passe de faux à vrai

Les données circulent entre la tâche et la mémoire tampon.

Les données circulent entre la mémoire tampon et le port série.

Logique Tâche ASCII

560 Publication 1756-RM003K-FR-P – Juillet 2008

Page 561: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions du port série ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) Chapitre 17

Le chronogramme suivant montre les changements dans les bits d’état pendant que l’instruction ABL teste la mémoire tampon pour les caractères de fin.

La file d’attente ASCII contient un maximum de 16 instructions. Lorsque la file d’attente est pleine, une instruction tente d’entrer dans la file à chacune des scrutations suivantes de l’instruction, comme indiqué ci-dessous :

scrutation scrutation scrutation scrutation

entre dans la file d’attente remet les bits d’état à zéro

exécute quand scruté et que .DN ou .ER est activé, active le bit EMdans cet exemple,

les caractères de fin sont trouvés

état d’entrée de la ligne faux vrai faux vrai faux

.EN off on off on off

.EU off on

.RN off on off on off

.DN ou .ER off on off on

.FD off on off on

.EM off on off on

scrutation scrutation scrutation scrutation

entre dans la file d’attente

tente d’entrer dans la file, mais celle-ci est pleine

état d’entrée de la ligne faux vrai faux

.EN off on

.EU off on

Publication 1756-RM003K-FR-P – Juillet 2008 561

Page 562: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 17 Instructions du port série ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Codes d’erreur ASCII

Si l’exécution d’une instruction du port série ASCII échoue, le membre ERROR de sa structure SERIAL_PORT_CONTROL contient un des codes d’erreur hexadécimal suivants :

Types de données de chaîneVous stockez des caractères ASCII dans des points qui utilisent un type de données de chaîne.

• Vous pouvez utiliser le type de données STRING par défaut. Il peut stocker un maximum de 82 caractères.

• Vous pouvez créer un nouveau type de données de chaîne qui stocke plus ou moins de caractères.

Pour créer un nouveau type de données de chaîne, voir Logix5000 Controllers Common Procedures, publication 1756-PM001.

Chaque type de données de chaîne contient les membres suivants :

Ce code hex Indique que

16#2 Le modem est hors ligne.

16#3 Le signal CTS a été perdu pendant la communication.

16#4 Le port série était en mode système.

16#A Le bit UL a été activé avant l’exécution de l’instruction. Ceci empêche l’exécution de l’instruction.

16#C L’automate est passé du mode Run au mode Program. Ceci arrête l’exécution de l’instruction port série ASCII et efface la file d’attente.

16#D Dans l’onglet Protocole utilisateur de la boîte de dialogue Propriétés de l’automate, les paramètres de taille ou de mode echo de la mémoire tampon ont été changés et appliqués. Ceci arrête l’exécution de l’instruction port série ASCII et efface la file d’attente.

16#E L’instruction ACL est exécutée.

16#F La configuration du port série passe du mode utilisateur au mode système. Ceci arrête l’exécution d’une instruction port série ASCII et efface la file d’attente des instructions port série ASCII.

16#51 La valeur LEN du point de chaîne est négative ou supérieure à la taille DATA du point de chaîne.

16#54 La longueur de contrôle du port série est supérieure à la taille de la mémoire tampon.

16#55 La longueur de contrôle du port série est négative ou supérieure à la taille de la Source ou de la Destination.

562 Publication 1756-RM003K-FR-P – Juillet 2008

Page 563: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions du port série ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) Chapitre 17

Nom Type de données Description Remarques

LEN DINT nombre de caractères dans la chaîne

La valeur LEN est automatiquement mise à jour avec le nouveau nombre de caractères lorsque vous :

• utilisez la boîte de dialogue « Naviguer dans la chaîne » pour entrer des caractères

• utilisez des instructions qui lisent, convertissent ou manipulent une chaîne

La valeur LEN indique la longueur de la chaîne actuelle. Le membre DATA peut aussi contenir d’anciens caractères qui ne sont pas inclus dans la valeur LEN.

DATA tableau SINT caractères ASCII dans la chaîne

• Pour accéder aux caractères de la chaîne, adressez le nom du point.

Par exemple, pour accéder aux caractères du point string_1, entrez string_1.

• Chaque élément du tableau DATA contient un caractère.

• Vous pouvez créer des nouveaux types de données de chaîne qui stockent plus ou moins de caractères.

Publication 1756-RM003K-FR-P – Juillet 2008 563

Page 564: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 17 Instructions du port série ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Test ASCII pour ligne de mémoire tampon (ABL)

L’instruction ABL compte le nombre de caractères dans la mémoire tampon, jusqu’à et y compris le premier caractère de terminaison.

Opérandes :

Logique à relais

Texte structuré

Les opérandes sont identiques à ceux de l’instruction ABL en logique à relais. Vous pouvez accéder à la valeur Character Count via le membre .POS de la structure SERIAL_PORT_CONTROL.

Structure SERIAL_PORT_CONTROL

Opérande Type Format Description

Voie DINT immédiat

point

0

Port série

Commande

SERIAL_PORT_

CONTROL

point point qui commande l’opération

Nombre de caractères

DINT immédiat 0

Affiche le nombre de caractères dans la mémoire tampon pendant l’exécution, y compris le premier jeu de caractères de fin.

ENDNER

ASCII Test For Buffer LineChannel ?SerialPort Control ?Character Count ?

ABLASCII Test For Buffer LineChannelSerialPort ControlCharacter Count

ABLENDNER

ABL(ChannelSerialPortControl);

Mnémonique Type de données

Description

.EN BOOL Le bit d’activation indique que l’instruction est activée.

.EU BOOL Le bit de file d’attente indique que l’instruction est en file d’attente ASCII.

.DN BOOL Le bit de fin indique quand l’instruction est terminée, mais il est asynchrone par rapport à la scrutation de la logique.

.RN BOOL Le bit d’exécution indique que l’instruction exécute.

.EM BOOL Le bit vide indique que l’instruction est terminée, mais il est synchrone par rapport à la scrutation de la logique.

.ER BOOL Le bit d’erreur indique quand l’instruction échoue (erreurs).

.FD BOOL Le bit trouvé indique que l’instruction a trouvé le ou les caractères de terminaison.

.POS DINT La position détermine le nombre de caractères dans la mémoire tampon, jusqu’à et y compris le premier jeu de caractères de terminaison. L’instruction renvoie ce nombre uniquement après avoir trouvé le ou les caractères de terminaison.

.ERROR DINT L’erreur contient une valeur hexadécimale qui identifie la cause d’une erreur.

564 Publication 1756-RM003K-FR-P – Juillet 2008

Page 565: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions du port série ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) Chapitre 17

Description : L’instruction ABL recherche le premier jeu de caractères de terminaison dans la mémoire tampon. Si l’instruction trouve les caractères de terminaison, elle :

• active le bit .FD ;

• compte le nombre de caractères dans la mémoire tampon, jusqu’à et y compris le premier jeu de caractères de terminaison.

L’onglet Protocole utilisateur de la boîte de dialogue Propriétés de l’automate définit les caractères ASCII que l’instruction considère comme les caractères de fin.

Pour programmer l’instruction ABL, suivez ces directives :

1. Configurez le port série de l’automate pour le mode Utilisateur et définissez les caractères qui servent de caractères de fin.

2. C’est une instruction de transition :

• en logique à relais, basculez l’état d’entrée de la ligne de désactivé à activé chaque fois que l’instruction doit être exécutée ;

• en texte structuré, conditionnez l’instruction de façon à ce qu’elle n’exécute que lors d’une transition.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Exécution :

Condition Action logique à relais Action texte structuré

Pré-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

L’état d’entrée de la ligne est faux

L’état de sortie de la ligne est réglé sur faux. –

L’état d’entrée de la ligne est vrai

L’instruction est exécuté lorsque l’état d’entrée de la ligne passe de désactivé à activé.

L’état de sortie de la ligne est réglé sur vrai.

EnableIn est activé – EnableIn est toujours activé.

L’instruction est exécutée.

Exécution de l’instruction L’instruction compte les caractères dans la mémoire tampon.

Le bit .EN est activé.

Les autres bits d’état, sauf UL, sont effacés.

L’instruction tente d’entrer dans la file d’attente ASCII.

Post-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

Publication 1756-RM003K-FR-P – Juillet 2008 565

Page 566: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 17 Instructions du port série ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Exemple : Tester en permanence la mémoire tampon pour la présence des caractères de terminaison

Logique à relais

Texte structuré

ABL(0,MV_line);

/MV_line.EN

ENDNER

ASCII Test For Buffer LineChannel 0SerialPort Control MV_lineCharacter Count 0

ABLASCII Test For Buffer LineChannelSerialPort ControlCharacter Count

ABLENDNERMV_line

MV_line.EN

566 Publication 1756-RM003K-FR-P – Juillet 2008

Page 567: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions du port série ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) Chapitre 17

Caractères ASCII dans la mémoire tampon (ACB)

L’instruction ACB compte les caractères dans la mémoire tampon.

Opérandes :

Logique à relais

Texte structuré

Les opérandes sont identiques à ceux de l’instruction ACB en logique à relais. Cependant, vous définissez le valeur Nombre de caractères en accédant au membre .POS de la structure SERIAL_PORT_CONTROL, plutôt qu’en incluant la valeur dans la liste des opérandes.

Structure SERIAL_PORT_CONTROL

Opérande Type Format Entrez

Voie DINT immédiat

point

0

Port série

Commande

SERIAL_PORT_

CONTROL

point point qui commande l’opération

Nombre de caractères

DINT immédiat 0

Affiche le nombre de caractères dans la mémoire tampon pendant l’exécution.

ENDNER

ASCII Chars in BufferChannel ?SerialPort Control ?Character Count ?

ACBASCII Chars in BufferChannelSerialPort ControlCharacter Count

ACBENDNER

ACB(ChannelSerialPortControl);

Mnémonique Type de données

Description

.EN BOOL Le bit d’activation indique que l’instruction est activée.

.EU BOOL Le bit de file d’attente indique que l’instruction est en file d’attente ASCII.

.DN BOOL Le bit de fin indique quand l’instruction est terminée, mais il est asynchrone par rapport à la scrutation de la logique.

.RN BOOL Le bit d’exécution indique que l’instruction exécute.

.EM BOOL Le bit vide indique que l’instruction est terminée, mais il est synchrone par rapport à la scrutation de la logique.

.ER BOOL Le bit d’erreur indique quand l’instruction échoue (erreurs).

.FD BOOL Le bit trouvé indique que l’instruction a trouvé un caractère.

.POS DINT La position détermine le nombre de caractères dans la mémoire tampon, jusqu’à et y compris le premier jeu de caractères de terminaison.

.ERROR DINT L’erreur contient une valeur hexadécimale qui identifie la cause d’une erreur.

Publication 1756-RM003K-FR-P – Juillet 2008 567

Page 568: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 17 Instructions du port série ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Description : L’instruction ACB compte les caractères dans la mémoire tampon.

Pour programmer l’instruction ACB, suivez les directives suivantes :

1. Configurez le port série de l’automate en mode Utilisateur.

2. C’est une instruction de transition :

• en logique à relais, basculez l’état d’entrée de la ligne de désactivé à activé chaque fois que l’instruction doit être exécutée ;

• en texte structuré, conditionnez l’instruction de façon à ce qu’elle n’exécute que lors d’une transition.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Exécution :

Exemple : Compter en permanence les caractères dans la mémoire tampon.

Logique à relais

Texte structuré

ACB(0,bar_code_count);

Condition Action logique à relais Action texte structuré

Pré-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

L’état d’entrée de la ligne est faux

L’état de sortie de la ligne est réglé sur faux. –

L’état d’entrée de la ligne est vrai

L’instruction est exécuté lorsque l’état d’entrée de la ligne passe de désactivé à activé.

L’état de sortie de la ligne est réglé sur vrai.

EnableIn est activé – EnableIn est toujours activé.L’instruction est exécutée.

Exécution de l’instruction L’instruction compte les caractères dans la mémoire tampon.Le bit .EN est activé.Les autres bits d’état, sauf UL, sont effacés.L’instruction tente d’entrer dans la file d’attente ASCII.

Post-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

/bar_code_count.EN

ENDNER

ASCII Chars in BufferChannel 0SerialPort Control bar_code_countCharacter Count 0

ACB

ASCII Chars in BufferChannelSerialPort ControlCharacter Count

ENDNERbar_code_count

ACBbar_code_count.EN

568 Publication 1756-RM003K-FR-P – Juillet 2008

Page 569: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions du port série ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) Chapitre 17

Effacement ASCII de la mémoire tampon (ACL)

L’instruction ACL efface immédiatement la mémoire tampon et la file d’attente ASCII.

Opérandes :

Logique à relais

Texte structuré

Les opérandes sont identiques à ceux de l’instruction ACL en logique à relais.

Description : L’instruction ACL effectue immédiatement l’une ou les deux actions suivantes :

• efface les caractères dans le buffer et efface les instructions de lecture de la file d’attente ASCII ;

• efface les instructions d’écriture de la file d’attente ASCII.

Pour programmer l’instruction ACL, suivez ces directives :

1. Configurez le port série de l’automate.

2. Pour déterminer si une instruction a été retirée de la file d’attente ou si elle a été abandonnée, examinez ce qui suit dans l’instruction appropriée :

• le bit .ER est activé

• membre .ERROR vaut 16#E

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Opérande Type Format Entrez

Voie DINT immédiat

point

0

Effacer lecture port série

BOOL immédiat

point

Pour effacer la mémoire tampon et retirer les instructions ARD et ARL de la file d’attente, entrez Oui.

Effacer écriture port série

BOOL immédiat

point

Pour retirer les instructions AWA et AWT de la file d’attente, entrez Oui.

ASCII Clear BufferChannel ?Clear Serial Port Read ?Clear Serial Port Write ?

ACLASCII Clear BufferChannelClear Serial Port ReadClear Serial Port Write

ACL

ACL(Channel,ClearSerialPortRead,ClearSerialPortWrite);

Si votre application Action

utilise des instructions ARD ou ARL

Sélectionnez le mode Utilisateur

n’utilise pas d’instructions ARD ou ARL

Sélectionnez le mode Système ou Utilisateur

Publication 1756-RM003K-FR-P – Juillet 2008 569

Page 570: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 17 Instructions du port série ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Exécution :

Exemple : Lorsque l’automate passe en mode Run, il efface la mémoire tampon et la file d’attente ASCII.

Logique à relais

Texte structuré

osri_1.InputBit := S:FS;

OSRI(osri_1);

IF (osri_1.OutputBit) THEN

ACL(0,0,1);

END_IF;

Condition Action logique à relais Action texte structuré

Pré-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

L’état d’entrée de la ligne est faux

L’état de sortie de la ligne est réglé sur faux. –

L’état d’entrée de la ligne est vrai

L’instruction est exécutée.

L’état de sortie de la ligne est réglé sur vrai.

EnableIn est activé – EnableIn est toujours activé.

L’instruction est exécutée.

Exécution de l’instruction L’instruction efface les instructions et la ou les mémoire(s) tampon spécifiées.

Post-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

S:FS

ASCII Clear BufferChannel 0Clear Serial Port Read 1Clear Serial Port Write 1

ACL

ASCII Clear BufferChannelClear Serial Port ReadClear Serial Port Write

ACL

570 Publication 1756-RM003K-FR-P – Juillet 2008

Page 571: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions du port série ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) Chapitre 17

Lignes d’échange ASCII (AHL)

L’instruction AHL obtient l’état des lignes de commande et active ou désactive les signaux DTR et RTS.

Opérandes :

Logique à relais

Texte structuré

Les opérandes sont identiques à ceux de l’instruction AHL en logique à relais. Cependant, vous spécifiez la valeur Channel Status en accédant au membre .POS de la structure SERIAL_PORT_CONTROL, plutôt que d’inclure la valeur dans la liste des opérandes.

EN

DN

ER

ASCII Handshake LinesChannel ?AND Mask ?

??OR Mask ?

??SerialPort Control ?Channel Status(Decimal) ?

AHLASCII Handshake LinesChannelAND Mask

OR Mask

SerialPort ControlChannel Status (Decimal)

AHLEN

DN

ER

Opérande Type Format Entrez

Voie DINT immédiat

point

0

ANDMask DINT immédiat

point

Reportez-vous à la description.

ORMask DINT immédiat

point

Contrôle du port série SERIAL_PORT_CONTROL point point qui commande l’opération

Etat du canal (décimal) DINT immédiat 0

Affiche l’état des lignes de commande pendant l’exécution.

Pour l’état de cette ligne de commande

Examinez ce bit :

CTS 0

RTS 1

DSR 2

DCD 3

DTR 4

Caractère XOFF reçu 5

AHL(Channel,ANDMask,ORMask,SerialPortControl);

Publication 1756-RM003K-FR-P – Juillet 2008 571

Page 572: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 17 Instructions du port série ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Structure SERIAL_PORT_CONTROL

Description : L’instruction AHL peut :

• obtenir l’état des lignes de commande du port série ;

• activer ou désactiver le signal de terminal de données prêt (DTR) ;

• activer ou désactiver le signal de demande pour émettre (RTS).

Pour programmer l’instruction AHL, suivez ces directives :

1. Configurez le port série de l’automate.

2. Utilisez le tableau suivant pour sélectionner les valeurs correctes pour les opérandes ANDMask et ORMask :

Mnémonique Type de données

Description

.EN BOOL Le bit d’activation indique que l’instruction est activée.

.EU BOOL Le bit de file d’attente indique que l’instruction est en file d’attente ASCII.

.DN BOOL Le bit de fin indique quand l’instruction est terminée, mais il est asynchrone par rapport à la scrutation de la logique.

.RN BOOL Le bit d’exécution indique que l’instruction exécute.

.EM BOOL Le bit vide indique que l’instruction est terminée, mais il est synchrone par rapport à la scrutation de la logique.

.ER BOOL Le bit d’erreur indique quand l’instruction échoue (erreurs).

.FD BOOL Le bit trouvé ne s’applique pas à cette instruction.

.POS DINT La position stocke l’état des lignes de commande.

.ERROR DINT L’erreur contient une valeur hexadécimale qui identifie la cause d’une erreur.

Si votre application Action

utilise des instructions ARD ou ARL

Sélectionnez le mode Utilisateur

n’utilise pas d’instructions ARD ou ARL

Sélectionnez le mode Système ou Utilisateur

Pour DTR Et pour RTS Entrez cette valeur ANDMask

Et entrez cette valeur ORMask

off off 3 0

on 1 2

inchangé 1 0

on off 2 1

on 0 3

inchangé 0 1

inchangé off 2 0

on 0 2

inchangé 0 0

572 Publication 1756-RM003K-FR-P – Juillet 2008

Page 573: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions du port série ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) Chapitre 17

3. C’est une instruction de transition :

• en logique à relais, basculez l’état d’entrée de la ligne de désactivé à activé chaque fois que l’instruction doit être exécutée ;

• en texte structuré, conditionnez l’instruction de façon à ce qu’elle n’exécute que lors d’une transition.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur :

Exécution :

Type Code Cause Méthode de récupération

4 57 L’instruction AHL n’a pas été exécutée parce que le port série est réglé sur pas d’échange.

Choix :

• Changez le réglage de la ligne de contrôle du port série.

• Effacez l’instruction AHL.

Condition Action logique à relais Action texte structuré

Pré-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

L’état d’entrée de la ligne est faux

L’état de sortie de la ligne est réglé sur faux. –

L’état d’entrée de la ligne est vrai

L’instruction est exécuté lorsque l’état d’entrée de la ligne passe de désactivé à activé.

L’état de sortie de la ligne est réglé sur vrai.

EnableIn est activé – EnableIn est toujours activé.

L’instruction est exécutée.

Exécution de l’instruction L’instruction obtient l’état de la ligne de commande et active ou désactive les signaux DTR et RTS.

Le bit .EN est activé.

Les autres bits d’état, sauf UL, sont effacés.

L’instruction tente d’entrer dans la file d’attente ASCII.

Post-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

Publication 1756-RM003K-FR-P – Juillet 2008 573

Page 574: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 17 Instructions du port série ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Exemple : Lorsque get_control_line_status devient actif, obtenir l’état des lignes de commande du port série et enregistrer l’état dans l’opérande Channel Status. Pour afficher l’état d’une ligne de commande spécifique, surveillez le point SerialPortControl et développez le membre POS.

Logique à relais

Texte structuré

osri_1.InputBit := get_control_line_status;

OSRI(osri_1);

IF (osri_1.OutputBit) THEN

AHL(0,0,0,serial_port);

END_IF;

get_control_line_status

EN

DN

ER

ASCII Handshake LinesChannel 0AND Mask 0 OR Mask 0 SerialPort Control serial_portChannel Status(Decimal) 29

AHL

ASCII Handshake LinesChannelAND Mask

OR Mask

SerialPort ControlChannel Status(Decimal)

AHLEN

DN

ER

serial_port

get_control_line_status

574 Publication 1756-RM003K-FR-P – Juillet 2008

Page 575: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions du port série ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) Chapitre 17

Lecture ASCII (ARD) L’instruction ARD retire des caractères de la mémoire tampon et les stocke dans la Destination.

Opérandes :

Logique à relais

Texte structuré

Les opérandes sont identiques à ceux de l’instruction ARD en logique à relais. Cependant, vous définissez les valeurs Longueur de contrôle port série et Lecture de caractères en accédant aux membres .LEN et .POS de la structure SERIAL_PORT_CONTROL, plutôt qu’en incluant des valeurs dans la liste des opérandes.

EN

DN

ER

ASCII Read Channel ?Destination ?

??SerialPort Control ?SerialPort Control Length ?Characters Read ?

ARDARDEN

DN

ER

ASCII ReadChannelDestination

SerialPort ControlSerialPort Control LengthCharacters Read

Opérande Type Format Entrez Remarques

Voie DINT immédiat

point

0

Destination chaîne

SINT

INT

DINT

point point dans lequel les caractères sont déplacés (lecture) :

• Pour un type de données de chaîne, entrez le nom du point.

• Pour un tableau SINT, INT ou DINT, entrez le premier élément du tableau.

• Si vous voulez comparer, convertir ou manipuler les caractères, utilisez un type de données de chaîne.

• Les types de données de chaîne sont :

• type de données STRING par défaut ;

• tout type de données de chaîne nouveau que vous créez.

Port série

Commande

SERIAL_PORT_

CONTROL

point point qui commande l’opération

Longueur de contrôle

du port série

DINT immédiat nombre de caractères à transférer vers la destination (lecture)

• La longueur de contrôle du port série doit être inférieure ou égale à la taille de la Destination.

• Si vous voulez que la longueur de contrôle du port série soit égale à la taille de la Destination, entrez 0.

Lecture de caractères

DINT immédiat 0 Affiche le nombre de caractères lus pendant l’exécution.

ARD(Channel,Destination,SerialPortControl);

Publication 1756-RM003K-FR-P – Juillet 2008 575

Page 576: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 17 Instructions du port série ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Structure SERIAL_PORT_CONTROL

Description : L’instruction ARD retire le nombre de caractères spécifié de la mémoire tampon et les stocke dans la Destination.

• L’instruction ARD est exécutée jusqu’à ce que le nombre de caractères spécifié aient été retirés (Serial Port Control Length).

• Pendant l’exécution de l’instruction ARD, aucune autre instruction port série ASCII n’est exécutée.

Pour programmer l’instruction ARD, suivez ces directives :

1. Configurez le port série de l’automate en mode Utilisateur.

2. Utilisez les résultats d’une instruction ACB pour déclencher l’instruction ARD. Ceci évite que l’instruction ARD bloque la file d’attente ASCII pendant qu’elle attend le nombre de caractères spécifié.

3. C’est une instruction de transition :

• en logique à relais, basculez l’état d’entrée de la ligne de désactivé à activé chaque fois que l’instruction doit être exécutée ;

• en texte structuré, conditionnez l’instruction de façon à ce qu’elle n’exécute que lors d’une transition.

4. Pour déclencher une action après l’exécution de l’instruction, examinez le bit EM.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Mnémonique Type de données

Description

.EN BOOL Le bit d’activation indique que l’instruction est activée.

.EU BOOL Le bit de file d’attente indique que l’instruction est en file d’attente ASCII.

.DN BOOL Le bit de fin indique quand l’instruction est terminée, mais il est asynchrone par rapport à la scrutation de la logique.

.RN BOOL Le bit d’exécution indique que l’instruction exécute.

.EM BOOL Le bit vide indique que l’instruction est terminée, mais il est synchrone par rapport à la scrutation de la logique.

.ER BOOL Le bit d’erreur indique quand l’instruction échoue (erreurs).

.FD BOOL Le bit trouvé ne s’applique pas à cette instruction.

.LEN DINT La longueur indique le nombre de caractères à déplacer vers la destination (lecture).

.POS DINT La position affiche le nombre de caractères lus.

.ERROR DINT L’erreur contient une valeur hexadécimale qui identifie la cause d’une erreur.

576 Publication 1756-RM003K-FR-P – Juillet 2008

Page 577: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions du port série ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) Chapitre 17

Exécution :

Exemple : Un lecteur de code à barres envoie des codes à barres au port série (canal 0) de l’automate. Chaque code à barres contient 24 caractères. Pour déterminer quand l’automate reçoit un code à barres, l’instruction ACB compte de façon continue les caractères dans la mémoire tampon. Quand la mémoire tampon contient au moins 24 caractères, l’automate a reçu un code à barres. L’instruction ARD déplace le code à barres vers le membre DATA du point bag_bar_code, qui est une chaîne.

Logique à relais

Condition Action logique à relais Action texte structuré

Pré-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

L’état d’entrée de la ligne est faux

L’état de sortie de la ligne est réglé sur faux. –

L’état d’entrée de la ligne est vrai

L’instruction est exécuté lorsque l’état d’entrée de la ligne passe de désactivé à activé.

L’état de sortie de la ligne est réglé sur vrai.

EnableIn est activé – EnableIn est toujours activé.

L’instruction est exécutée.

Exécution de l’instruction L’instruction retire des caractères de la mémoire tampon et les stocke dans la Destination.

Le bit .EN est activé.

Les autres bits d’état, sauf UL, sont effacés.

L’instruction tente d’entrer dans la file d’attente ASCII.

Post-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

/bar_code_count.EN

ENDNER

ASCII Chars in BufferChannel 0SerialPort Control bar_code_countCharacter Count 0

ACBASCII Chars in BufferChannelSerialPort ControlCharacter Count

ACB

bar_code_count

EN

ERDN

bar_code_count.EN

Grtr Than or Eql (A>=B)Source A bar_code_count.pos

0Source B 24

GEQEN

DN

ER

ASCII ReadChannel 0Destination bag_bar_code

''SerialPort Control bar_code_readSerialPort Control Length 24Characters Read 0

ARDARDASCII ReadChannelDestination

SerialPort ControlSerialPort Control LengthCharacters Read

bag_bar_code

bar_code_read

EN

DN

ER

Grtr Than or Eql (A>=B)Source A bar_code_count.pos

Source B

GEQ

Publication 1756-RM003K-FR-P – Juillet 2008 577

Page 578: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 17 Instructions du port série ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Texte structuré

ACB(0,bar_code_count);

IF bar_code_count.POS >= 24 THEN

bar_code_read.LEN := 24;

ARD(0,bag_bar_code,bar_code_read);

END_IF;

578 Publication 1756-RM003K-FR-P – Juillet 2008

Page 579: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions du port série ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) Chapitre 17

Ligne de lecture ASCII (ARL)

L’instruction ARL retire les caractères spécifiés de la mémoire tampon et les stocke dans la Destination.

Opérandes :

Logique à relais

Texte structuré

Les opérandes sont identiques à ceux de l’instruction ARL en logique à relais. Cependant, vous définissez les valeurs Longueur de contrôle port série et Lecteur de caractères en accédant aux membres .LEN et .POS de la structure SERIAL_PORT_CONTROL, plutôt qu’en incluant des valeurs dans la liste des opérandes.

EN

DN

ER

ASCII Read LineChannel ?Destination ?

??SerialPort Control ?SerialPort Control Length ?Characters Read ?

ARLARLASCII Read LineChannelDestination

SerialPort ControlSerialPort Control LengthCharacters Read

EN

DN

ER

Opérande Type Format Entrez Remarques

Voie DINT immédiat

point

0

Destination chaîne

SINT

INT

DINT

point point dans lequel les caractères sont déplacés (lecture) :

• Pour un type de données de chaîne, entrez le nom du point.

• Pour un tableau SINT, INT ou DINT, entrez le premier élément du tableau.

• Si vous voulez comparer, convertir ou manipuler les caractères, utilisez un type de données de chaîne.

• Les types de données de chaîne sont :

• type de données STRING par défaut ;

• tout type de données de chaîne nouveau que vous créez.

Port série

Commande

SERIAL_PORT_

CONTROL

point point qui commande l’opération

Longueur de contrôle du port série

DINT immédiat nombre maximum de caractères à lire si aucun caractère de terminaison n’est trouvé.

• Entrez le nombre maximum de caractères qu’un message peut contenir (c’est à dire, quand arrêter la lecture si aucun caractère de fin n’est trouvé).

Par exemple, si les messages ont une longueur de 3 à 6 caractères, entrez 6.

• La longueur de contrôle du port série doit être inférieure ou égale à la taille de la Destination.

• Si vous voulez que la longueur de contrôle du port série soit égale à la taille de la Destination, entrez 0.

Lecture de caractères

DINT immédiat 0 Affiche le nombre de caractères lus pendant l’exécution.

ARL(Channel,Destination,SerialPortControl);

Publication 1756-RM003K-FR-P – Juillet 2008 579

Page 580: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 17 Instructions du port série ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Structure SERIAL_PORT_CONTROL

Description : L’instruction ARL retire des caractères de la mémoire tampon et les stocke dans la Destination comme suit :

• L’exécution de l’instruction ARL continue jusqu’à ce qu’elle ait retiré un des éléments suivants :

– le premier jeu de caractères de fin ;

– nombre de caractères spécifié (Serial Port Control Length).

• Pendant l’exécution de l’instruction ARL, aucune autre instruction port série ASCII n’est exécutée.

Pour programmer l’instruction ARL, suivez ces directives :

1. Configurez le port série de l’automate :

a. sélectionnez le mode Utilisateur ;

b. définissez les caractères qui servent de caractères de fin.

2. Utilisez les résultats d’une instruction ABL pour déclencher l’instruction ARL. Ceci évite que l’instruction ARL bloque la file d’attente ASCII pendant qu’elle attend les caractères de fin.

3. C’est une instruction de transition :

• en logique à relais, basculez l’état d’entrée de la ligne de désactivé à activé chaque fois que l’instruction doit être exécutée ;

• en texte structuré, conditionnez l’instruction de façon à ce qu’elle n’exécute que lors d’une transition.

4. Pour déclencher une action après l’exécution de l’instruction, examinez le bit EM.

Mnémonique Type de données

Description

.EN BOOL Le bit d’activation indique que l’instruction est activée.

.EU BOOL Le bit de file d’attente indique que l’instruction est en file d’attente ASCII.

.DN BOOL Le bit de fin indique quand l’instruction est terminée, mais il est asynchrone par rapport à la scrutation de la logique.

.RN BOOL Le bit d’exécution indique que l’instruction exécute.

.EM BOOL Le bit vide indique que l’instruction est terminée, mais il est synchrone par rapport à la scrutation de la logique.

.ER BOOL Le bit d’erreur indique quand l’instruction échoue (erreurs).

.FD BOOL Le bit trouvé ne s’applique pas à cette instruction.

.LEN DINT La longueur indique le nombre maximum de caractères à déplacer vers la destination (c’est à dire, quand arrêter la lecture si aucun caractère de fin n’est trouvé).

.POS DINT La position affiche le nombre de caractères lus.

.ERROR DINT L’erreur contient une valeur hexadécimale qui identifie la cause d’une erreur.

580 Publication 1756-RM003K-FR-P – Juillet 2008

Page 581: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions du port série ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) Chapitre 17

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Exécution :

Exemple : Tester en permanence la mémoire tampon pour détecter un message provenant du terminal MessageView. Puisque les messages finissent par un retour chariot ($r), le retour chariot est configuré comme caractère de fin dans l’onglet Protocole utilisateur de la fenêtre des propriétés de l’automate. Lorsque l’instruction ABL trouve un retour chariot, elle active le bit FD.

Lorsque l’instruction ABL trouve le retour chariot (MV_line.FD est activé), l’automate a reçu un message complet. L’instruction ARL retire les caractères de la mémoire tampon, jusqu’au et y compris le retour chariot, et les places dans le membre DATA du point MV_msg, qui est une chaîne.

Condition Action logique à relais Action texte structuré

Pré-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

L’état d’entrée de la ligne est faux

L’état de sortie de la ligne est réglé sur faux. –

L’état d’entrée de la ligne est vrai

L’instruction est exécuté lorsque l’état d’entrée de la ligne passe de désactivé à activé.

L’état de sortie de la ligne est réglé sur vrai.

EnableIn est activé – EnableIn est toujours activé.

L’instruction est exécutée.

Exécution de l’instruction L’instruction ARL retire les caractères spécifiés de la mémoire tampon et les stocke dans la Destination.

Le bit .EN est activé.

Les autres bits d’état, sauf UL, sont effacés.

L’instruction tente d’entrer dans la file d’attente ASCII.

Post-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

Publication 1756-RM003K-FR-P – Juillet 2008 581

Page 582: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 17 Instructions du port série ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Logique à relais

Texte structuré

ABL(0,MV_line);

osri_1.InputBit := MVLine.FD;

OSRI(osri_1);

IF (osri_1.OutputBit) THEN

mv_read.LEN := 12;

ARL(0,MV_msg,MV_read);

END_IF;

/MV_line.EN

ENDNER

ASCII Test For Buffer LineChannel 0SerialPort Control MV_lineCharacter Count 0

ABLABLASCII Test For Buffer LineChannelSerialPort ControlCharacters Count

MV_line

ENDNER

MV_line.EN

MV_line.FD

EN

DN

ER

ASCII Read LineChannel 0Destination MV_msg

''SerialPort Control MV_readSerialPort Control Length 12Characters Read 0

ARLARLASCII Read LineChannelDestination

SerialPort ControlSerialPort Control LengthCharacters Read

EN

DN

ER

MV_msg

MV_read

MV_line.FD

582 Publication 1756-RM003K-FR-P – Juillet 2008

Page 583: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions du port série ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) Chapitre 17

Ajout d’écriture ASCII (AWA)

L’instruction AWA envoie un nombre spécifique de caractères du point Source vers un équipement série et ajoute un ou deux caractères prédéterminés.

Opérandes :

Logique à relais

Texte structuré

Les opérandes sont identiques à ceux de l’instruction AWA en logique à relais. Cependant, vous définissez les valeurs Longueur de contrôle port série et Envoi de caractères en accédant aux membres .LEN et .POS de la structure SERIAL_PORT_CONTROL, plutôt qu’en incluant des valeurs dans la liste des opérandes.

EN

DN

ER

ASCII Write Append Channel ?Source ?

??SerialPort Control ?SerialPort Control Length ?Characters Sent ?

AWAAWAASCII Write AppendChannelSource

SerialPort ControlSerialPort Control LengthCharacters Sent

EN

DN

ER

Opérande Type Format Entrez Remarques

Voie DINT immédiat

point

0

Source chaîne

SINT

INT

DINT

point point contenant les caractères à envoyer :

• Pour un type de données de chaîne, entrez le nom du point.

• Pour un tableau SINT, INT ou DINT, entrez le premier élément du tableau.

• Si vous voulez comparer, convertir ou manipuler les caractères, utilisez un type de données de chaîne.

• Les types de données de chaîne sont :

• type de données STRING par défaut ;

• tout type de données de chaîne nouveau que vous créez.

Port série

Commande

SERIAL_PORT_

CONTROL

point point qui commande l’opération

Longueur de contrôle du port série

DINT immédiat nombre de caractères à envoyer

• La longueur de contrôle du port série doit être inférieure ou égale à la taille de la Source.

• Si vous voulez que la longueur de contrôle du port série soit égale au nombre de caractères de la Source, entrez 0.

Characters Sent DINT immédiat 0 Affiche le nombre de caractères envoyés pendant l’exécution.

AWA(Channel,Source,SerialPortControl);

Publication 1756-RM003K-FR-P – Juillet 2008 583

Page 584: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 17 Instructions du port série ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Structure SERIAL_PORT_CONTROL

Description : L’instruction AWA :

• envoie le nombre de caractères spécifié (Serial Port Control Length) du point Source vers l’équipement connecté au port série de l’automate ;

• ajoute un ou deux caractères, définis dans l’onglet Protocole utilisateur de la boîte de dialogue Propriétés de l’automate, à la fin des caractères (ajout).

Pour programmer l’instruction AWA, suivez ces directives :

1. Configurez le port série de l’automate.

a. Votre application comprend-t-elle également des instructions ARD ou ARL ?

b. Définissez les caractères à ajouter aux données.

2. C’est une instruction de transition :

• en logique à relais, basculez l’état d’entrée de la ligne de désactivé à activé chaque fois que l’instruction doit être exécutée ;

• en texte structuré, conditionnez l’instruction de façon à ce qu’elle n’exécute que lors d’une transition.

Mnémonique Type de données

Description

.EN BOOL Le bit d’activation indique que l’instruction est activée.

.EU BOOL Le bit de file d’attente indique que l’instruction est en file d’attente ASCII.

.DN BOOL Le bit de fin indique quand l’instruction est terminée, mais il est asynchrone par rapport à la scrutation de la logique.

.RN BOOL Le bit d’exécution indique que l’instruction exécute.

.EM BOOL Le bit vide indique que l’instruction est terminée, mais il est synchrone par rapport à la scrutation de la logique.

.ER BOOL Le bit d’erreur indique quand l’instruction échoue (erreurs).

.FD BOOL Le bit trouvé ne s’applique pas à cette instruction.

.LEN DINT La longueur indique le nombre de caractères à envoyer.

.POS DINT La position affiche le nombre de caractères envoyés.

.ERROR DINT L’erreur contient une valeur hexadécimale qui identifie la cause d’une erreur.

Si Action

Oui Sélectionnez le mode Utilisateur

Non Sélectionnez le mode Système ou Utilisateur

584 Publication 1756-RM003K-FR-P – Juillet 2008

Page 585: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions du port série ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) Chapitre 17

3. Envoyez-vous toujours le même nombre de caractères à chaque exécution de l’instruction ?

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Exécution :

Si Action

Oui Entrez le nombre de caractères à envoyer dans la longueur de contrôle du port série.

Non Avant que l’instruction ne soit exécutée, copiez le membre LEN du point Source vers le membre LEN du point de contrôle du port série.

Condition Action logique à relais Action texte structuré

Pré-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

L’état d’entrée de la ligne est faux

L’état de sortie de la ligne est réglé sur faux. –

L’état d’entrée de la ligne est vrai

L’instruction est exécuté lorsque l’état d’entrée de la ligne passe de désactivé à activé.

L’état de sortie de la ligne est réglé sur vrai.

EnableIn est activé – EnableIn est toujours activé.

L’instruction est exécutée.

Exécution de l’instruction L’instruction envoie un nombre spécifié de caractères et ajoute un ou deux caractères prédéfinis.

Le bit .EN est activé.

Les autres bits d’état, sauf UL, sont effacés.

L’instruction tente d’entrer dans la file d’attente ASCII.

Post-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

Publication 1756-RM003K-FR-P – Juillet 2008 585

Page 586: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 17 Instructions du port série ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Exemple 1 : Lorsque la température dépasse la limite supérieure (temp_high est activé), l’instruction AWA envoie un message au terminal MessageView connecté au port série de l’automate. Le message contient cinq caractères provenant du membre DATA du point string[1], qui est un type de chaîne. ($14 compte pour un caractère, c’est le code hexadécimal du caractère Ctrl-T.) L’instruction envoie également (ajoute) les caractères définis dans les propriétés de l’automate. Dans cet exemple, l’instruction AWA envoie un retour chariot ($0D), qui marque la fin du message.

Logique à relais

Texte structuré

IF temp_high THEN

temp_high_write.LEN := 5;

AWA(0,string[1],temp_high_write);

temp_high := 0;

END_IF;

temp_high

EN

DN

ER

ASCII Write AppendChannel 0Source string[1]

'$1425\1'SerialPort Control temp_high_writeSerialPort Control Length 5Characters Sent 6

AWAAWAASCII Write AppendChannelSource

SerialPort ControlSerialPort Control LengthCharacters Sent

string[1]

temp_high_write

EN

DN

ER

temp_high

586 Publication 1756-RM003K-FR-P – Juillet 2008

Page 587: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions du port série ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) Chapitre 17

Exemple 2 : Lorsque alarm est activé, l’instruction AWA envoie le nombre de caractères spécifié dans alarm_msg et ajoute un caractère de fin. Le nombre de caractères dans alarm_msg pouvant varier, la ligne commence par déplacer la longueur de la chaîne (alarm_msg.LEN) dans la longueur de contrôle du port série de l’instruction AWA (alarm_write.LEN). Dans alarm_msg, $14 compte pour un caractère, c’est le code hexadécimal du caractère Ctrl-T.)

Logique à relais

Texte structuré

osri_1.InputBit := alarm;

OSRI(osri_1);

IF (osri_1.OutputBit) THEN

alarm_write.LEN := alarm_msg.LEN;

AWA(0,alarm_msg,alarm_write);

END_IF;

alarm

MoveSource alarm_msg.LEN 5Dest alarm_write.LEN 5

MOVEN

DN

ER

ASCII Write AppendChannel 0Source alarm_msg

'$1425\1'SerialPort Control alarm_writeSerialPort Control Length 5Characters Sent 6

AWAAWA

ASCII Write AppendChannelSource

SerialPort ControlSerialPort Control LengthCharacters Sent

alarm_msg

alarm_write

EN

DN

ER

MOV

MoveSource alarm_msg.LEN

Dest. alarm_write.LEN

Alarme

Publication 1756-RM003K-FR-P – Juillet 2008 587

Page 588: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 17 Instructions du port série ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Ecriture ASCII (AWT) L’instruction AWT envoie un nombre spécifié de caractères du point Source vers un équipement série.

Opérandes :

Logique à relais

Texte structuré

Les opérandes sont identiques à ceux de l’instruction AWT en logique à relais. Cependant, vous définissez les valeurs Longueur de contrôle port série et Envoi de caractères en accédant aux membres .LEN et .POS de la structure SERIAL_PORT_CONTROL, plutôt qu’en incluant des valeurs dans la liste des opérandes.

EN

DN

ER

ASCII WriteChannel ?Source ?

??SerialPort Control ?SerialPort Control Length ?Characters Sent ?

AWTAWTASCII WriteChannelSource

SerialPort ControlSerialPort Control LengthCharacters Sent

DN

ER

EN

Opérande Type Format Entrez Remarques

Voie DINT immédiat

point

0

Source chaîne

SINT

INT

DINT

point point contenant les caractères à envoyer :

• Pour un type de données de chaîne, entrez le nom du point.

• Pour un tableau SINT, INT ou DINT, entrez le premier élément du tableau.

• Si vous voulez comparer, convertir ou manipuler les caractères, utilisez un type de données de chaîne.

• Les types de données de chaîne sont :

• type de données STRING par défaut ;

• tout type de données de chaîne nouveau que vous créez.

Port série

Commande

SERIAL_PORT_

CONTROL

point point qui commande l’opération

Longueur de contrôle du port série

DINT immédiat nombre de caractères à envoyer

• La longueur de contrôle du port série doit être inférieure ou égale à la taille de la Source.

• Si vous voulez que la longueur de contrôle du port série soit égale au nombre de caractères de la Source, entrez 0.

Characters Sent DINT immédiat 0 Affiche le nombre de caractères envoyés pendant l’exécution.

AWT(Channel,Source,SerialPortControl);

588 Publication 1756-RM003K-FR-P – Juillet 2008

Page 589: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions du port série ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) Chapitre 17

Structure SERIAL_PORT_CONTROL

Description : L’instruction AWT envoie le nombre de caractères spécifié (Serial Port Control Length) du point Source vers l’équipement connecté au port série de l’automate.

Pour programmer l’instruction AWT, suivez ces directives :

1. Configurez le port série de l’automate.

2. C’est une instruction de transition :

• en logique à relais, basculez l’état d’entrée de la ligne de désactivé à activé chaque fois que l’instruction doit être exécutée ;

• en texte structuré, conditionnez l’instruction de façon à ce qu’elle n’exécute que lors d’une transition.

3. Envoyez-vous toujours le même nombre de caractères à chaque exécution de l’instruction ?

Mnémonique Type de données

Description

.EN BOOL Le bit d’activation indique que l’instruction est activée.

.EU BOOL Le bit de file d’attente indique que l’instruction est en file d’attente ASCII.

.DN BOOL Le bit de fin indique quand l’instruction est terminée, mais il est asynchrone par rapport à la scrutation de la logique.

.RN BOOL Le bit d’exécution indique que l’instruction exécute.

.EM BOOL Le bit vide indique que l’instruction est terminée, mais il est synchrone par rapport à la scrutation de la logique.

.ER BOOL Le bit d’erreur indique quand l’instruction échoue (erreurs).

.FD BOOL Le bit trouvé ne s’applique pas à cette instruction.

.LEN DINT La longueur indique le nombre de caractères à envoyer.

.POS DINT La position affiche le nombre de caractères envoyés.

.ERROR DINT L’erreur contient une valeur hexadécimale qui identifie la cause d’une erreur.

Si votre application Action

utilise des instructions ARD ou ARL Sélectionnez le mode Utilisateur

n’utilise pas d’instructions ARD ou ARL

Sélectionnez le mode Système ou Utilisateur

Si Action

Oui Entrez le nombre de caractères à envoyer dans la longueur de contrôle du port série.

Non Avant que l’instruction ne soit exécutée, déplacez le membre LEN du point Source vers le membre LEN du point de contrôle du port série.

Publication 1756-RM003K-FR-P – Juillet 2008 589

Page 590: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 17 Instructions du port série ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Exécution :

Exemple 1 : Lorsque la température atteint la limite inférieure (temp_low est activé), l’instruction AWT envoie un message au terminal MessageView connecté au port série de l’automate. Le message contient neuf caractères provenant du membre DATA du point string[2], qui est un type de chaîne. ($14 compte pour un caractère, c’est le code hexadécimal du caractère Ctrl-T.) Le dernier caractère est un retour chariot ($r), qui marque la fin du message.

Logique à relais

Condition Action logique à relais Action texte structuré

Pré-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

L’état d’entrée de la ligne est faux

L’état de sortie de la ligne est réglé sur faux. –

L’état d’entrée de la ligne est vrai

L’instruction est exécuté lorsque l’état d’entrée de la ligne passe de désactivé à activé.

L’état de sortie de la ligne est réglé sur vrai.

EnableIn est activé – EnableIn est toujours activé.

L’instruction est exécutée.

Exécution de l’instruction L’instruction envoie un nombre spécifié de caractères.

Le bit .EN est activé.

Les autres bits d’état, sauf UL, sont effacés.

L’instruction tente d’entrer dans la file d’attente ASCII.

Post-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

temp_low

EN

DN

ER

ASCII WriteChannel 0Source string[2]

'$142224\01$r'SerialPort Control temp_low_writeSerialPort Control Length 9Characters Sent 9

AWTAWT

ASCII Write ChannelSource

SerialPort ControlSerialPort Control LengthCharacters Sent

string[2]

temp_low_write

EN

DN

ER

temp_low

590 Publication 1756-RM003K-FR-P – Juillet 2008

Page 591: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions du port série ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) Chapitre 17

Texte structuré

osri_1.InputBit := temp_low;

OSRI(osri_1);

IF (osri_1.OutputBit) THEN

temp_low_write.LEN := 9;

AWT(0,string[2],temp_low_write);

END_IF;

Exemple 2 : Lorsque MV_update est activé, l’instruction AWT envoie les caractères dans MV_msg. Etant donné que le nombre de caractères dans MV_msg varie, la ligne déplace d’abord la longueur de la chaîne (MV_msg.LEN) vers le membre Longueur de contrôle du port série de l’instruction AWT (MV_write.LEN). Dans MV_msg, $16 compte pour un caractère, c’est le code hexadécimal du caractère Ctrl-V.

Logique à relais

Texte structuré

osri_1.InputBit := MV_update;

OSRI(osri_1);

IF (osri_1.OutputBit) THEN

MV_write.LEN := Mv_msg.LEN;

AWT(0,MV_msg,MV_write);

END_IF;

MV_update

MoveSource MV_msg.LEN

10Dest MV_write.LEN

10

MOVEN

DN

ER

ASCII WriteChannel 0Source MV_msg

'$161365\8\1$r'SerialPort Control MV_writeSerialPort Control Length 10Characters Sent 10

AWTAWTASCII Write ChannelSource

SerialPort ControlSerialPort Control LengthCharacters Sent

MV_msg

MV_write

EN

DN

ER

MOVMoveSource MV_msg.LEN

Dest. MV_write.LEN

MV_update

Publication 1756-RM003K-FR-P – Juillet 2008 591

Page 592: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 17 Instructions du port série ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Notes :

592 Publication 1756-RM003K-FR-P – Juillet 2008

Page 593: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 18

Instructions de chaîne ASCII(CONCAT, DELETE, FIND, INSERT, MID)

Introduction Utilisez les instructions de chaîne ASCII pour créer et modifier des chaînes de caractères ASCII.

Vous pouvez également utiliser les instructions suivantes pour comparer ou convertir des caractères ASCII :

Si vous voulez Par exemple Utilisez cette instruction

Disponible dans ces langages

Voir page

ajouter des caractères à la fin d’une chaîne

ajouter des caractères de fin ou des séparateurs dans une chaîne

CONCAT Logique à relais

Texte structuré

595

effacer des caractères dans une chaîne

retirer les caractères d’en-tête ou de contrôle d’une chaîne

DELETE Logique à relais

Texte structuré

597

déterminer le caractère de début d’une sous-chaîne

localiser un groupe de caractères dans une chaîne

FIND Logique à relais

Texte structuré

599

insérer des caractères dans une chaîne

créer une chaîne qui utilise des variables

INSERT Logique à relais

Texte structuré

601

extraire des caractères d’une chaîne extraire des informations d’un code à barres

MID Logique à relais

Texte structuré

603

Si vous voulez Utilisez cette instruction

Voir page

comparer une chaîne à une autre CMP 206

voir si les caractères sont égaux à des caractères spécifiques EQU 211

voir si les caractères ne sont pas égaux à des caractères spécifiques NEQ 242

voir si les caractères sont supérieurs ou égaux à des caractères spécifiques GEQ 211

voir si les caractères sont supérieurs à des caractères spécifiques GRT 219

voir si les caractères sont inférieurs ou égaux à des caractères spécifiques LEQ 223

voir si les caractères sont inférieurs à des caractères spécifiques LES 227

réarranger les octets d’un point INT, DINT ou REAL SWPB 300

trouver une chaîne dans un tableau de chaînes FSC 344

convertir des caractères en valeur SINT, INT, DINT ou REAL STOD 608

convertir des caractères en valeur REAL STOR 611

convertir une valeur SINT, INT, DINT ou REAL en chaîne de caractères ASCII DTOS 613

convertir une valeur REAL en chaîne de caractères ASCII RTOS 615

Publication 1756-RM003K-FR-P – Juillet 2008 593

Page 594: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 18 Instructions de chaîne ASCII (CONCAT, DELETE, FIND, INSERT, MID)

Types de données de chaîne

Vous stockez des caractères ASCII dans des points qui utilisent un type de données de chaîne.

• Vous pouvez utiliser le type de données STRING par défaut. Il peut stocker un maximum de 82 caractères.

• Vous pouvez créer un nouveau type de données de chaîne qui stocke plus ou moins de caractères.

Pour créer un nouveau type de données de chaîne, voir Logix5000 Controllers Common Procedures, publication 1756-PM001.

Chaque type de données de chaîne contient les membres suivants :

Nom Type de données

Description Remarques

LEN DINT nombre de caractères dans la chaîne

La valeur LEN est automatiquement mise à jour avec le nouveau nombre de caractères lorsque vous :

• utilisez la boîte de dialogue « Parcourir la chaîne » pour entrer des caractères ;

• utilisez des instructions qui lisent, convertissent ou manipulent une chaîne.

La valeur LEN indique la longueur de la chaîne actuelle. Le membre DATA peut aussi contenir d’anciens caractères qui ne sont pas inclus dans la valeur LEN.

DATA tableau SINT caractères ASCII dans la chaîne

• Pour accéder aux caractères de la chaîne, adressez le nom du point.

Par exemple, pour accéder aux caractères du point string_1, entrez string_1.

• Chaque élément du tableau DATA contient un caractère.

• Vous pouvez créer des nouveaux types de données de chaîne qui stockent plus ou moins de caractères.

594 Publication 1756-RM003K-FR-P – Juillet 2008

Page 595: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de chaîne ASCII (CONCAT, DELETE, FIND, INSERT, MID) Chapitre 18

Concaténation de chaîne (CONCAT)

L’instruction CONCAT ajoute des caractères ASCII à la fin d’une chaîne.

Opérandes :

Logique à relais

Texte structuré

Les opérandes sont identiques à ceux de l’instruction CONCAT en logique à relais.

Description : L’instruction CONCAT combine les caractères de Source A avec les caractères de Source B et place le résultat dans la Destination.

• Les caractères de la Source A sont les premiers, suivis des caractères de la Source B.

• A moins que la Source A et la Destination ne soient le même point, Source A ne change pas.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur :

String ConcatenateSource A ? ??Source B ? ??Dest ? ??

CONCATSting ConcatenateSource A ?

??Source B ?

??Dest ?

??

CONCAT

Opérande Type Format Entrez Remarques

Source A STRING point le point contenant les caractères de début

Les types de données de chaîne sont :

• type de données STRING par défaut ;

• tout type de données de chaîne nouveau que vous créez.

Source B STRING point le point contenant les caractères de fin

Destination STRING point point pour le stockage du résultat

CONCAT(SourceA,SourceB,Dest);

Type Code Cause Méthode de récupération

4 51 La valeur LEN de la chaîne de points est supérieure à la taille DATA de la chaîne de points.

1. Vérifiez qu’aucune instruction n’écrit dans le membre LEN du point de chaîne.

2. Dans la valeur LEN, entrez le nombre de caractères contenu dans la chaîne.

Publication 1756-RM003K-FR-P – Juillet 2008 595

Page 596: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 18 Instructions de chaîne ASCII (CONCAT, DELETE, FIND, INSERT, MID)

Exécution :

Exemple : Pour déclencher un message dans un terminal MessageView, l’automate doit envoyer une chaîne ASCII contenant un numéro de message et un numéro de station. String_1 contient le numéro du message. Lorsque add_node est activé, l’instruction CONCAT ajoute les caractères de node_num_ascii (numéro de station) à la fin de la chaîne de caractères dans string_1, puis stocke le résultat dans msg.

Logique à relais

Texte structuré

IF add_node THEN

CONCAT(string_1,node_num_ascii,msg);

add_node := 0;

END_IF;

Condition Action logique à relais Action texte structuré

Pré-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

L’état d’entrée de la ligne est faux

L’état de sortie de la ligne est réglé sur faux. –

L’état d’entrée de la ligne est vrai

L’instruction est exécutée.

L’état de sortie de la ligne est réglé sur vrai.

EnableIn est activé – EnableIn est toujours activé.

L’instruction est exécutée.

Exécution de l’instruction L’instruction concatène les chaînes.

Post-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

add_node

String ConcatenateSource A string_1

'$1423\'Source B node_num_ascii

'1'Dest msg

'$1423\1'

CONCATString ConcatenateSource A string_1

’$1423\’Source B node_num_ascii

’1’Dest msg

’$1423\1’

CONCAT

596 Publication 1756-RM003K-FR-P – Juillet 2008

Page 597: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de chaîne ASCII (CONCAT, DELETE, FIND, INSERT, MID) Chapitre 18

Effacement de chaîne (DELETE)

L’instruction DELETE retire des caractères ASCII d’une chaîne.

Opérandes :

Logique à relais

Texte structuré

Les opérandes sont identiques à ceux de l’instruction DELETE en logique à relais.

Description : L’instruction DELETE efface (retire) un groupe de caractères de la Source et place les caractères restants dans la Destination.

• La position de Début et la Quantité définissent les caractères à effacer.

• A moins que la Source et la Destination ne soient le même point, la Source ne change pas.

String DeleteSource ? ??Qty ? ??Start ? ??Dest ? ??

DELETEDELETESting DeleteSource ?

??Qty ?

??Start ?

??Dest ?

??

Opérande Type Format Entrez Remarques

Source STRING point le point qui contient la chaîne dans laquelle vous voulez retirer des caractères

Les types de données de chaîne sont :

• type de données STRING par défaut ;

• tout type de données de chaîne nouveau que vous créez.

Quantité SINT

INT

DINT

immédiat

point

le nombre de caractères à effacer

Le Début et la Quantité doivent être inférieures ou égales à la taille DATA de la Source.

Début SINT

INT

DINT

immédiat

point

la position du premier caractère à effacer

Entrez un numéro entre 1 et la taille DATA de la Source.

Destination STRING point point pour le stockage du résultat

DELETE(Source,Qty,Start,Dest);

Publication 1756-RM003K-FR-P – Juillet 2008 597

Page 598: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 18 Instructions de chaîne ASCII (CONCAT, DELETE, FIND, INSERT, MID)

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur :

Exécution :

Exemple : Les informations ASCII d’un terminal contiennent un caractère d’en-tête. Après que l’automate a lu les données (term_read.EM est activé), l’instruction DELETE efface le caractère d’en-tête.

Logique à relais

Texte structuréIF term_read.EM THEN

DELETE(term_input,1,1,term_text);

term_read.EM := 0;

END_IF;

Type Code Cause Méthode de récupération

4 51 La valeur LEN du point de chaîne est supérieure à la taille DATA du point de chaîne.

1. Vérifiez qu’aucune instruction n’écrit dans le membre LEN du point de chaîne.

2. Dans la valeur LEN, entrez le nombre de caractères contenu dans la chaîne.

4 56 La valeur de Début ou de Quantité est incorrecte.

1. Assurez-vous que la valeur de Début est entre 1 et la taille DATA de la Source.

2. Assurez-vous que la valeur de Début plus la valeur de Quantité est inférieure ou égale à la taille DATA de la Source.

Condition Action logique à relais Action texte structuré

Pré-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

L’état d’entrée de la ligne est faux

L’état de sortie de la ligne est réglé sur faux. –

L’état d’entrée de la ligne est vrai

L’instruction est exécutée.

L’état de sortie de la ligne est réglé sur vrai.

EnableIn est activé – EnableIn est toujours activé.

L’instruction est exécutée.

Exécution de l’instruction L’instruction efface les caractères spécifiés.

Post-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

term_read.EM

String DeleteSource term_input

'$0655'Qty 1

Start 1

Dest term_text

'55'

DELETEDELETESting DeleteSource term_input

’$0655’Qty 1

Start 1

Dest term_text’55’

598 Publication 1756-RM003K-FR-P – Juillet 2008

Page 599: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de chaîne ASCII (CONCAT, DELETE, FIND, INSERT, MID) Chapitre 18

Rechercher une chaîne (FIND)

L’instruction FIND repère la position de début d’une chaîne spécifiée à l’intérieur d’une autre chaîne.

Opérandes :

Logique à relais

Texte structuré

Les opérandes sont identiques à ceux de l’instruction FIND en logique à relais décrite ci-dessus.

Description : L’instruction FIND recherche la chaîne Search dans la chaîne Source. Si l’instruction trouve la chaîne recherchée, le Résultat indique la position de début de cette chaîne dans la chaîne Source.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur :

Find StringSource ? ??Search ? ??Start ? ??Result ? ??

FINDFINDFind StringSource ?

??Search ?

??Start ?

??Result ?

??

Opérande Type Format Entrez Remarques

Source STRING point la chaîne dans laquelle faire la recherche

Les types de données de chaîne sont :

• type de données STRING par défaut ;

• tout type de données de chaîne nouveau que vous créez.

Recherche STRING point la chaîne à rechercher

Début SINT

INT

DINT

immédiat

point

la position de début de recherche dans la Source

Entrez un numéro entre 1 et la taille DATA de la Source.

Résultat SINT

INT

DINT

point le point qui stocke la position de début de la chaîne à rechercher

FIND(Source,Search,Start,Result);

Type Code Cause Méthode de récupération

4 51 La valeur LEN du point de chaîne est supérieure à la taille DATA du point de chaîne.

1. Vérifiez qu’aucune instruction n’écrit dans le membre LEN du point de chaîne.

2. Dans la valeur LEN, entrez le nombre de caractères contenu dans la chaîne.

4 56 La valeur de début est incorrecte. Assurez-vous que la valeur de Début est entre 1 et la taille DATA de la Source.

Publication 1756-RM003K-FR-P – Juillet 2008 599

Page 600: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 18 Instructions de chaîne ASCII (CONCAT, DELETE, FIND, INSERT, MID)

Exécution :

Exemple : Un message de terminal MessageView contient plusieurs informations. La barre oblique inverse [ \ ] sépare chaque information. Pour trouver une information, l’instruction FIND recherche le caractère barre oblique inverse et enregistre sa position dans find_pos.

Logique à relais

Texte structuré

IF MV_read.EM THEN

FIND(MV_msg,find,1,find_pos);

MV_read.EM := 0;

END_IF;

Condition Action logique à relais Action texte structuré

Pré-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

L’état d’entrée de la ligne est faux

L’état de sortie de la ligne est réglé sur faux. –

L’état d’entrée de la ligne est vrai

L’instruction est exécutée.

L’état de sortie de la ligne est réglé sur vrai.

EnableIn est activé – EnableIn est toujours activé.

L’instruction est exécutée.

Exécution de l’instruction L’instruction recherche les caractères spécifiés.

Post-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

MV_read.EM

Find StringSource MV_msg '$06324\12\1\$r'Search find

'\'Start 1

Result find_pos

5

FINDFINDFind StringSource MV_msg

’$06324\12\1\$r’Search find

’\’Start 1

Result find_pos5

600 Publication 1756-RM003K-FR-P – Juillet 2008

Page 601: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de chaîne ASCII (CONCAT, DELETE, FIND, INSERT, MID) Chapitre 18

Insertion d’une chaîne (INSERT)

L’instruction INSERT ajoute des caractères ASCII à un emplacement défini d’une chaîne.

Opérandes :

Logique à relais

Texte structuré

Les opérandes sont identiques à ceux de l’instruction INSERT en logique à relais.

Description : L’instruction INSERT ajoute les caractères de Source B dans une position définie de Source A et place le résultat dans la Destination:

• Début définie où Source B est inséré dans Source A.

• A moins que la Source A et la Destination ne soient le même point, Source A ne change pas.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur :

Insert StringSource A ? ??Source B ? ??Start ? ??Dest ? ??

INSERTINSERTInsert StringSource A ?

??Source B ?

??Start ?

??Dest ?

??

Opérande Type Format Entrez Remarques

Source A STRING point la chaîne dans laquelle les caractères sont insérés

Les types de données de chaîne sont :

• type de données STRING par défaut ;

• tout type de données de chaîne nouveau que vous créez.

Source B STRING point la chaîne qui contient les caractères à insérer

Début SINT

INT

DINT

immédiat

point

la position dans la Source A où sont ajoutés les caractères

Entrez un numéro entre 1 et la taille DATA de la Source.

Résultat STRING point la chaîne pour le stockage du résultat

INSERT(SourceA,SourceB,Start,Dest);

Type Code Cause Méthode de récupération

4 51 La valeur LEN du point de chaîne est supérieure à la taille DATA du point de chaîne.

1. Vérifiez qu’aucune instruction n’écrit dans le membre LEN du point de chaîne.

2. Dans la valeur LEN, entrez le nombre de caractères contenu dans la chaîne.

4 56 La valeur de début est incorrecte. Assurez-vous que la valeur de Début est entre 1 et la taille DATA de la Source.

Publication 1756-RM003K-FR-P – Juillet 2008 601

Page 602: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 18 Instructions de chaîne ASCII (CONCAT, DELETE, FIND, INSERT, MID)

Exécution :

Exemple : Lorsque temp_high est activé, l’instruction INSERT insère les caractères de string_2 à la position 2 dans string_1 et place le résultat dans string_3 :

Logique à relais

Texte structuré

IF temp_high THEN

INSERT(string_1,string_2,2,string_3);

temp_high := 0;

END_IF;

Condition Action logique à relais Action texte structuré

Pré-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

L’état d’entrée de la ligne est faux

L’état de sortie de la ligne est réglé sur faux. –

L’état d’entrée de la ligne est vrai

L’instruction est exécutée.

L’état de sortie de la ligne est réglé sur vrai.

EnableIn est activé – EnableIn est toujours activé.

L’instruction est exécutée.

Exécution de l’instruction L’instruction insère les caractères spécifiés.

Post-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

temp_high

Insert StringSource A string_1

'AD'Source B string_2

'BC'Start 2

Dest string_3

'ABCD'

INSERTINSERTInsert StringSource A string_1

’AD’Source B string_2

’BC’Start 2

Dest string_3’ABCD’

602 Publication 1756-RM003K-FR-P – Juillet 2008

Page 603: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de chaîne ASCII (CONCAT, DELETE, FIND, INSERT, MID) Chapitre 18

Chaîne médiane (MID) L’instruction MID copie un nombre déterminé de caractères ASCII à partir d’une chaîne et les place dans une autre chaîne.

Opérandes :

Logique à relais

Texte structuré

Les opérandes sont identiques à ceux de l’instruction MID en logique à relais.

Description : L’instruction MID copie un groupe de caractères de la Source et place le résultat dans la Destination.

• La position de Début et la Quantité définissent les caractères à copier.

• A moins que la Source et la Destination ne soient le même point, la Source ne change pas.

Indicateurs d’état arithmétique : Non affectés

Middle StringSource ? ??Qty ? ??Start ? ??Dest ? ??

MIDMIDMiddle StringSource ?

??Qty ?

??Start ?

??Dest ?

??

Opérande Type Format Entrez Remarques

Source STRING point la chaîne à partir de laquelle les caractères sont copiés

Les types de données de chaîne sont :

• type de données STRING par défaut ;

• tout type de données de chaîne nouveau que vous créez.

Quantité SINT

INT

DINT

immédiat

point

le nombre de caractères à copier

Le Début et la Quantité doivent être inférieures ou égales à la taille DATA de la Source.

Début SINT

INT

DINT

immédiat

point

la position du premier caractère à copier

Entrez un numéro entre 1 et la taille DATA de la Source.

Destination STRING point la chaîne dans laquelle les caractères sont copiés

MID(Source,Qty,Start,Dest);

Publication 1756-RM003K-FR-P – Juillet 2008 603

Page 604: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 18 Instructions de chaîne ASCII (CONCAT, DELETE, FIND, INSERT, MID)

Conditions d’erreur :

Exécution :

Exemple : Sur les tapis roulants d’un aéroport, chaque valise reçoit un code à barres. Les caractères 9 à 17 de ce code représentent le numéro du vol et l’aéroport de destination. Une fois le code lu (bag_read.EM est activé), l’instruction MID copie le numéro du vol et l’aéroport de destination dans la chaîne bag_flt_and_dest.

Logique à relais

Texte structuré

IF bag_read.EM THEN

MID(bar_barcode,9,9,bag_flt_and_dest);

bag_read.EM := 0;

END_IF;

Type Code Cause Méthode de récupération

4 51 La valeur LEN du point de chaîne est supérieure à la taille DATA du point de chaîne.

1. Vérifiez qu’aucune instruction n’écrit dans le membre LEN du point de chaîne.

2. Dans la valeur LEN, entrez le nombre de caractères contenu dans la chaîne.

4 56 La valeur de Début ou de Quantité est incorrecte.

1. Assurez-vous que la valeur de Début est entre 1 et la taille DATA de la Source.

2. Assurez-vous que la valeur de Début plus la valeur de Quantité est inférieure ou égale à la taille DATA de la Source.

Condition Action logique à relais Action texte structuré

Pré-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

L’état d’entrée de la ligne est faux

L’état de sortie de la ligne est réglé sur faux. –

L’état d’entrée de la ligne est vrai

L’instruction est exécutée.

L’état de sortie de la ligne est réglé sur vrai.

EnableIn est activé – EnableIn est toujours activé.

L’instruction est exécutée.

Exécution de l’instruction L’instruction copie les caractères spécifiés à partir d’une chaîne et les stocke dans une autre chaîne.

Post-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

bag_read.EM

Middle StringSource bag_barcode 'NWA HOP 5058 AMS 01'

Qty 9

Start 9

Dest bag_flt_and_dest '5058 AMS '

MIDMIDMiddle StringSource bag_barcode

’NWA HOP 5058 AMS 01?Qty 9

Start 9

Dest bag_flt_and_dest’5058 AMS’

604 Publication 1756-RM003K-FR-P – Juillet 2008

Page 605: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 19

Instructions de conversion ASCII(STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Introduction Utilisez les instructions de conversion ASCII pour modifier le format des données.

Si vous voulez Par exemple Utilisez cette instruction

Disponible dans ces langages

Voir page

convertir la représentation ASCII d’une valeur de nombre entier en valeur SINT, INT, DINT ou REAL

convertir une valeur de balance de pesage, ou autre équipement ASCII, en nombre entier pour l’utiliser dans votre programme

STOD Logique à relais

Texte structuré

608

convertir la représentation ASCII d’une valeur à virgule flottante en valeur REAL

convertir une valeur de balance de pesage, ou autre équipement ASCII, en valeur REAL pour l’utiliser dans votre programme

STOR Logique à relais

Texte structuré

611

convertir une valeur SINT, INT, DINT ou REAL en chaîne de caractères ASCII

convertir une variable en chaîne ASCII pour l’envoyer à un terminal MessageView

DTOS Logique à relais

Texte structuré

613

convertir une valeur REAL en chaîne de caractères ASCII

convertir une variable en chaîne ASCII pour l’envoyer à un terminal MessageView

RTOS Logique à relais

Texte structuré

615

convertir les lettres d’une chaîne de caractères ASCII en majuscules

convertir une entrée effectuée par un opérateur en majuscules pour que vous puissiez la chercher dans un tableau

UPPER Logique à relais

Texte structuré

617

convertir les lettres d’une chaîne de caractères ASCII en minuscules

convertir une entrée effectuée par un opérateur en minuscules pour que vous puissiez la chercher dans un tableau

LOWER Logique à relais

Texte structuré

619

Publication 1756-RM003K-FR-P – Juillet 2008 605

Page 606: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 19 Instructions de conversion ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Vous pouvez également utiliser les instructions suivantes pour comparer ou manipuler des caractères ASCII :

Si vous voulez Utilisez cette instruction

Voir page

ajouter des caractères à la fin d’une chaîne CONCAT 595

effacer des caractères dans une chaîne DELETE 597

déterminer le caractère de début d’une sous-chaîne FIND 599

insérer des caractères dans une chaîne INSERT 601

extraire des caractères d’une chaîne MID 603

réarranger les octets d’un point INT, DINT ou REAL SWPB 300

comparer une chaîne à une autre CMP 206

voir si les caractères sont égaux à des caractères spécifiques EQU 211

voir si les caractères ne sont pas égaux à des caractères spécifiques NEQ 242

voir si les caractères sont supérieurs ou égaux à des caractères spécifiques GEQ 215

voir si les caractères sont supérieurs à des caractères spécifiques GRT 219

voir si les caractères sont inférieurs ou égaux à des caractères spécifiques LEQ 223

voir si les caractères sont inférieurs à des caractères spécifiques LES 227

trouver une chaîne dans un tableau de chaînes FSC 344

606 Publication 1756-RM003K-FR-P – Juillet 2008

Page 607: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de conversion ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER) Chapitre 19

Types de données de chaîne

Vous stockez des caractères ASCII dans des points qui utilisent un type de données de chaîne.

• Vous pouvez utiliser le type de données STRING par défaut. Il peut stocker un maximum de 82 caractères.

• Vous pouvez créer un nouveau type de données de chaîne qui stocke plus ou moins de caractères.

Pour créer un nouveau type de données de chaîne, voir Logix5000 Controllers Common Procedures, publication 1756-PM001.

Chaque type de données de chaîne contient les membres suivants :

Nom Type de données

Description Remarques

LEN DINT nombre de caractères dans la chaîne

La valeur LEN est automatiquement mise à jour avec le nouveau nombre de caractères lorsque vous :

• utilisez la boîte de dialogue « Parcourir la chaîne » pour entrer des caractères ;

• utilisez des instructions qui lisent, convertissent ou manipulent une chaîne.

La valeur LEN indique la longueur de la chaîne actuelle. Le membre DATA peut aussi contenir d’anciens caractères qui ne sont pas inclus dans la valeur LEN.

DATA tableau SINT caractères ASCII dans la chaîne

• Pour accéder aux caractères de la chaîne, adressez le nom du point.

Par exemple, pour accéder aux caractères du point string_1, entrez string_1.

• Chaque élément du tableau DATA contient un caractère.

• Vous pouvez créer des nouveaux types de données de chaîne qui stockent plus ou moins de caractères.

Publication 1756-RM003K-FR-P – Juillet 2008 607

Page 608: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 19 Instructions de conversion ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Chaîne vers DINT (STOD) L’instruction STOD convertit la représentation ASCII d’un nombre entier en valeur entière ou REAL.

Opérandes :

Logique à relais

Texte structuré

Les opérandes sont identiques à ceux de l’instruction STOD en logique à relais.

Description : L’instruction STOD convertit la Source en nombre entier et enregistre le résultat dans la Destination.

• L’instruction convertit les nombres positifs et négatifs.

• Si la chaîne Source contient des caractères non numériques, l’instruction STOD convertit le premier groupe de chiffres contigus.

– L’instruction saute tous les caractères initiaux de contrôle ou non numériques (sauf le signe moins au début d’un nombre).

– Si la chaîne contient plusieurs groupes de chiffres séparés par des séparateurs (par ex., / ), l’instruction ne convertit que le premier groupe de chiffres.

Indicateurs d’état arithmétique : Les indicateurs d’état arithmétique sont affectés.

String To DINTSource ? ??Dest ? ??

STODString To DINTSource ?

??Dest ?

??

STOD

Opérande Type Format Entrez Remarques

Source STRING point le point qui contient la valeur ASCII

Les types de données de chaîne sont :

• type de données STRING par défaut ;

• tout type de données de chaîne nouveau que vous créez.

Destination SINT

INT

DINT

REAL

point le point qui stocke la valeur entière

Si la valeur Source est un nombre à virgule flottante, l’instruction convertit uniquement la partie entière du nombre (quel que soit le type de données de la destination).

STOD(Source,Dest);

608 Publication 1756-RM003K-FR-P – Juillet 2008

Page 609: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de conversion ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER) Chapitre 19

Conditions d’erreur

Exécution :

Type Code Cause Méthode de récupération

4 51 La valeur LEN du point de chaîne est supérieure à la taille DATA du point de chaîne.

1. Vérifiez qu’aucune instruction n’écrit dans le membre LEN du point de chaîne.

2. Dans la valeur LEN, entrez le nombre de caractères contenu dans la chaîne.

4 53 Le nombre de sortie est au-delà des limites du type de données de la destination.

Choix :

• diminuez la taille de la valeur ASCII ;

• utilisez un type de données plus grand pour la destination.

Condition Action logique à relais Action texte structuré

Pré-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

L’état d’entrée de la ligne est faux

L’état de sortie de la ligne est réglé sur faux. –

L’état d’entrée de la ligne est vrai

L’instruction est exécutée.

L’état de sortie de la ligne est réglé sur vrai.

EnableIn est activé – EnableIn est toujours activé.

L’instruction est exécutée.

Exécution de l’instruction SC est activé.

La destination est effacée.

L’instruction convertit la Source.

Si le résultat est zéro, S:Z est activé.

Post-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

Publication 1756-RM003K-FR-P – Juillet 2008 609

Page 610: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 19 Instructions de conversion ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Exemple : Lorsque MV_read.EM est activé, l’instruction STOD convertit le premier groupe de caractères numériques dans MV_msg en valeur entière. L’instruction saute le caractère de contrôle initial ($06) et s’arrête au séparateur ( \ ).

Logique à relais

Texte structuré

IF MV_read.EM THEN

STOD(MV_msg,MV_msg_nmbr);

MV_read.EM := 0;

END_IF;

MV_read.EM

String To DINTSource MV_msg '$06324\12\1\$r'Dest MV_msg_nmbr

324

STODString To DINTSource MV_msg

’$06324\12\1\$r’Dest MV_msg_nmbr

324

STOD

610 Publication 1756-RM003K-FR-P – Juillet 2008

Page 611: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de conversion ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER) Chapitre 19

Chaîne vers REAL (STOR) L’instruction STOR convertit la représentation ASCII d’une valeur à virgule flottante en valeur REAL.

Opérandes :

Opérandes de logique à relais

Texte structuré

Les opérandes sont identiques à ceux de l’instruction STOR en logique à relais.

Description : L’instruction STOR convertit la Source en valeur REAL et enregistre le résultat dans la Destination.

• L’instruction convertit les nombres positifs et négatifs.

• Si la chaîne Source contient des caractères non numériques, l’instruction STOR convertit le premier groupe de chiffres contigus, y compris la virgule décimale [ . ] :

– L’instruction saute tous les caractères initiaux de contrôle ou non numériques (sauf le signe moins au début d’un nombre).

– Si la chaîne contient plusieurs groupes de chiffres séparés par des séparateurs (par ex., / ), l’instruction ne convertit que le premier groupe de chiffres.

Indicateurs d’état arithmétique : Les indicateurs d’état arithmétique sont affectés.

Conditions d’erreur :

String to RealSource ? ??Dest ? ??

STORString to RealSource ?

??Dest ?

??

STOR

Opérande Type Format Entrez Remarques

Source STRING point le point qui contient la valeur ASCII

Les types de données de chaîne sont :

• type de données STRING par défaut ;

• tout type de données de chaîne nouveau que vous créez.

Destination REAL point le point qui stocke la valeur REAL

STOR(Source,Dest);

Type Code Cause Méthode de récupération

4 51 La valeur LEN du point de chaîne est supérieure à la taille DATA du point de chaîne.

1. Vérifiez qu’aucune instruction n’écrit dans le membre LEN du point de chaîne.

2. Dans la valeur LEN, entrez le nombre de caractères contenu dans la chaîne.

4 53 Le nombre de sortie est au-delà des limites du type de données de la destination.

Choix :

• diminuez la taille de la valeur ASCII ;

• utilisez un type de données plus grand pour la destination.

Publication 1756-RM003K-FR-P – Juillet 2008 611

Page 612: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 19 Instructions de conversion ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Exécution :

Exemple : Après avoir lu le poids indiqué par une balance de pesage (weight_read.EM est activé), l’instruction STOR convertit les caractères numériques de weight_ascii en valeur REAL.

Il est possible qu’une petite différence apparaisse entre les parties fractionnelles de la Source et de la Destination.

Logique à relais

Texte structuré

IF weight_read.EM THEN

STOR(weight_ascii,weight);

weight_read.EM := 0;

END_IF;

Condition Action logique à relais Action texte structuré

Pré-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

L’état d’entrée de la ligne est faux

L’état de sortie de la ligne est réglé sur faux. –

L’état d’entrée de la ligne est vrai

L’instruction est exécutée.

L’état de sortie de la ligne est réglé sur vrai.

EnableIn est activé – EnableIn est toujours activé.

L’instruction est exécutée.

Exécution de l’instruction S:C est activé.

La destination est effacée.

L’instruction convertit la Source.

Si le résultat est zéro, S:Z est activé.

Post-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

weight_read.EM

String to RealSource weight_ascii

'428.259'Dest weight

428.259

STORString to RealSource weight_axcii

’428.259’Dest weight

428.259

STOR

612 Publication 1756-RM003K-FR-P – Juillet 2008

Page 613: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de conversion ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER) Chapitre 19

DINT vers chaîne (DTOS) L’instruction DTOS produit la représentation ASCII d’une valeur.

Opérandes :

Logique à relais

Texte structuré

Les opérandes sont identiques à ceux de l’instruction DTOS en logique à relais.

Description : L’instruction DTOS convertit la Source en chaîne de caractères ASCII et place le résultat dans la Destination.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur :

DINT to StringSource ? ??Dest ? ??

DTOSDTOSDINT to StringSource ?

??Dest ?

??

Opérande Type Format Entrez Remarques

Source SINT

INT

DINT

REAL

point le point qui contient la valeur

Si la source est une valeur REAL, l’instruction la convertit en valeur DINT. Reportez-vous à REAL vers nombre entier, page 634.

Destination STRING point le point qui stocke la valeur ASCII

Les types de données de chaîne sont :

• type de données STRING par défaut ;

• tout type de données de chaîne nouveau que vous créez.

DTOS(Source,Dest);

Type Code Cause Méthode de récupération

4 51 La valeur LEN du point de chaîne est supérieure à la taille DATA du point de chaîne.

1. Vérifiez qu’aucune instruction n’écrit dans le membre LEN du point de chaîne.

2. Dans la valeur LEN, entrez le nombre de caractères contenu dans la chaîne.

4 52 La chaîne de sortie est plus grande que la destination. Créez un nouveau type de données de chaîne suffisamment grand pour la chaîne de sortie. Utilisez le nouveau type de données de chaîne comme type de données pour la destination.

Publication 1756-RM003K-FR-P – Juillet 2008 613

Page 614: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 19 Instructions de conversion ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Exécution :

Exemple : Lorsque temp_high est activé, l’instruction DTOS convertit la valeur dans msg_num en chaîne de caractères ASCII et place le résultat dans msg_num_ascii. Les lignes suivantes insère ou font une concaténation de msg_num_ascii avec d’autres chaînes pour produire un message complet pour un terminal d’affichage.

Logique à relais

Texte structuré

IF temp_high THEN

DTOS(msg_num,msg_num_ascii);

temp_high := 0;

END_IF;

Condition Action logique à relais Action texte structuré

Pré-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

L’état d’entrée de la ligne est faux

L’état de sortie de la ligne est réglé sur faux. –

L’état d’entrée de la ligne est vrai

L’instruction est exécutée.

L’état de sortie de la ligne est réglé sur vrai.

EnableIn est activé – EnableIn est toujours activé.

L’instruction est exécutée.

Exécution de l’instruction L’instruction convertit la Source.

Post-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

temp_high

DINT to StringSource msg_num

23Dest msg_num_ascii

'23'

DTOSDTOSDINT to StringSource msg_num

23Dest msg_num_ascii

’23’

614 Publication 1756-RM003K-FR-P – Juillet 2008

Page 615: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de conversion ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER) Chapitre 19

REAL vers chaîne (RTOS) L’instruction RTOS produit la représentation ASCII d’une valeur REAL.

Opérandes :

Logique à relais

Texte structuré

Les opérandes sont identiques à ceux de l’instruction RTOS en logique à relais.

Description : L’instruction RTOS convertit la Source en chaîne de caractères ASCII et place le résultat dans la Destination.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur :

Real to StringSource ? ??Dest ? ??

RTOSRTOSReal to StringSource ?

??Dest ?

??

Opérande Type Format Entrez Remarques

Source REAL point le point qui contient la valeur REAL

Destination STRING point le point qui stocke la valeur ASCII

Les types de données de chaîne sont :

• type de données STRING par défaut ;

• tout type de données de chaîne nouveau que vous créez.

RTOS(Source,Dest);

Type Code Cause Méthode de récupération

4 51 La valeur LEN du point de chaîne est supérieure à la taille DATA du point de chaîne.

1. Vérifiez qu’aucune instruction n’écrit dans le membre LEN du point de chaîne.

2. Dans la valeur LEN, entrez le nombre de caractères contenu dans la chaîne.

4 52 La chaîne de sortie est plus grande que la destination. Créez un nouveau type de données de chaîne suffisamment grand pour la chaîne de sortie. Utilisez le nouveau type de données de chaîne comme type de données pour la destination.

Publication 1756-RM003K-FR-P – Juillet 2008 615

Page 616: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 19 Instructions de conversion ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Exécution :

Exemple : Lorsque send_data est activé, l’instruction RTOS convertit la valeur dans data_1 en chaîne de caractères ASCII et place le résultat dans data_1_ascii. Les lignes suivantes insère ou font une concaténation de data_1_ascii avec d’autres chaînes pour produire un message complet pour un terminal d’affichage.

Il est possible qu’une petite différence entre les parties fractionnelles de la Source et de la Destination apparaisse.

Logique à relais

Texte structuré

IF send_data THEN

RTOS(data_1,data_1_ascii);

send_data := 0;

END_IF;

Condition Action logique à relais Action texte structuré

Pré-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

L’état d’entrée de la ligne est faux

L’état de sortie de la ligne est réglé sur faux. –

L’état d’entrée de la ligne est vrai

L’instruction est exécutée.

L’état de sortie de la ligne est réglé sur vrai.

EnableIn est activé – EnableIn est toujours activé.

L’instruction est exécutée.

Exécution de l’instruction L’instruction convertit la Source.

Post-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

send_data

Real to StringSource data_1

15.3001Dest data_1_ascii '15.3001003'

RTOSRTOSReal to StringSource data_1

15.3001Dest data_1_ascii

’15.301003’

616 Publication 1756-RM003K-FR-P – Juillet 2008

Page 617: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de conversion ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER) Chapitre 19

Haut de casse (UPPER) L’instruction UPPER convertit les caractères alphabétiques d’une chaîne en caractères majuscules.

Opérandes :

Logique à relais

Texte structuré

Les opérandes sont identiques à ceux de l’instruction UPPER en logique à relais.

Description : L’instruction UPPER convertit en majuscules toutes les lettres de la Source et place le résultat dans la Destination.

• Les caractères ASCII sont sensibles à la casse. « A » ($41) en majuscule n’est pas égal à « a » ($61) en minuscule.

• Si des opérateurs entrent directement des caractères ASCII, convertissez les caractères en majuscules ou en minuscules avant de les comparer.

Tout caractère de la chaîne Source qui n’est pas une lettre reste inchangé.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Exécution :

Opérande Type Format Description

Source STRING point le point qui contient les caractères que vous voulez convertir en majuscules

Destination STRING point le point qui stocke les caractères en majuscule

UPPER(Source,Dest);

Condition Action logique à relais Action texte structuré

Pré-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

L’état d’entrée de la ligne est faux

L’état de sortie de la ligne est réglé sur faux. –

L’état d’entrée de la ligne est vrai

L’instruction est exécutée.

L’état de sortie de la ligne est réglé sur vrai.

EnableIn est activé – EnableIn est toujours activé.

L’instruction est exécutée.

Exécution de l’instruction L’instruction convertit la Source en majuscules.

Post-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

Publication 1756-RM003K-FR-P – Juillet 2008 617

Page 618: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 19 Instructions de conversion ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Exemple : Pour trouver des informations sur un élément spécifique, un opérateur entre la référence de l’élément dans un terminal ASCII. Après que l’automate a lu l’entrée à partir d’un terminal (terminal_read.EM est actif), l’instruction UPPER convertit les caractères dans catalog_number en caractères en majuscule et stocke le résultat dans catalog_number_upper_case. Une ligne postérieure recherche alors dans un tableau les caractères correspondant à ceux de catalog_number_upper_case.

Logique à relais

Texte structuré

IF terminal_read.EM THEN

UPPER(catalog_number,catalog_number_upper_case);

terminal_read.EM := 0;

END_IF;

618 Publication 1756-RM003K-FR-P – Juillet 2008

Page 619: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de conversion ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER) Chapitre 19

Bas de casse (LOWER) L’instruction LOWER convertit les caractères alphabétiques d’une chaîne en caractères minuscules.

Opérandes :

Logique à relais

Texte structuré

Les opérandes sont identiques à ceux de l’instruction LOWER en logique à relais.

Description : L’instruction LOWER convertit en minuscules toutes les lettres de la Source et place le résultat dans la Destination.

• Les caractères ASCII sont sensibles à la casse. « A » ($41) en majuscule n’est pas égal à « a » ($61) en minuscule.

• Si des opérateurs entrent directement des caractères ASCII, convertissez tous les caractères en majuscules ou en minuscules avant de les comparer.

Tout caractère de la chaîne Source qui n’est pas une lettre reste inchangé.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Exécution :

Opérande Type Format Description

Source STRING point le point qui contient les caractères que vous voulez convertir en minuscules

Destination STRING point le point qui stocke les caractères en minuscule

LOWER(Source,Dest);

Condition Action logique à relais Action texte structuré

Pré-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

L’état d’entrée de la ligne est faux

L’état de sortie de la ligne est réglé sur faux. –

L’état d’entrée de la ligne est vrai

L’instruction est exécutée.

L’état de sortie de la ligne est réglé sur vrai.

EnableIn est activé – EnableIn est toujours activé.

L’instruction est exécutée.

Exécution de l’instruction L’instruction convertit la Source en minuscules.

Post-scrutation L’état de sortie de la ligne est réglé sur faux. Aucune.

Publication 1756-RM003K-FR-P – Juillet 2008 619

Page 620: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 19 Instructions de conversion ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Exemple : Pour trouver des informations sur un élément spécifique, un opérateur entre la référence de l’élément dans un terminal ASCII. Après que l’automate a lu l’entrée à partir d’un terminal (terminal_read.EM est actif), l’instruction LOWER convertit les caractères dans item_number en caractères en minuscule et stocke le résultat dans item_number_lower_case. Une ligne postérieure recherche alors dans un tableau les caractères correspondant à ceux de item_number_lower_case.

Logique à relais

Texte structuré

IF terminal_read.EM THEN

LOWER(item_number,item_number_lower_case);

terminal_read.EM := 0;

END_IF;

620 Publication 1756-RM003K-FR-P – Juillet 2008

Page 621: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 20

Instructions de débogage(BPT, TPT)

Introduction Utilisez les instructions de débogage pour surveiller l’état de votre programme dans certaines conditions que vous définissez. Ces instructions ne sont compatibles qu’avec le logiciel RSLogix Emulate 5000, avec lequel vous pouvez émuler un automate Logix 5000 sur votre ordinateur personnel.

Points d’interruption (BPT) Les points d’interruption arrêtent l’émulation du programme lorsqu’une ligne est vraie

Opérandes :

Logique à relais

Description :

Les points d’interruption se programment avec l’instruction de sortie de point d’interruption (BPT). Lorsque les entrées d’une ligne contenant une instruction BPT sont vraies, l’instruction BPT arrête l’exécution du programme. Le logiciel affiche une fenêtre indiquant que le point d’interruption s’est déclenché, ainsi que les valeurs qui l’ont déclenché.

Si vous voulez Utilisez cette instruction Disponible dans ces langages Voir page

arrêter l’émulation du programme lorsqu’une ligne est vraie

BPT Logique à relais 621

enregistrer des données que vous sélectionnez lorsqu’une ligne est vraie

TPT Logique à relais 625

Opérande Type Format Description

Formater STRING point Chaîne qui active le formatage du texte qui apparaît dans la fenêtre de suivi du point d’interruption.

Suivre Ceci BOOL, SINT, INT, DINT, REAL

point Point avec la valeur que vous voulez afficher dans la fenêtre de suivi.

Publication 1756-RM003K-FR-P – Juillet 2008 621

Page 622: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 20 Instructions de débogage (BPT, TPT)

Lorsqu’un point d’interruption s’est déclenché, l’émulateur affiche une fenêtre vous informant qu’un point d’interruption s’est produit. La barre de titre de la fenêtre indique l’emplacement contenant l’émulateur qui a rencontré le point d’interruption.

Lorsque vous cliquez sur OK, l’émulateur reprend l’exécution du programme. Si les conditions qui ont déclenché le point d’interruption persistent, le point d’interruption réapparaît.

En plus, l’émulateur ouvre une fenêtre de suivi pour le point d’interruption. La fenêtre de suivi affiche les informations sur le point d’interruption et les valeurs.

Format de chaîne

Avec le format de chaîne des instructions de point de suivi et de point d’interruption, vous pouvez contrôler la façon dont les points suivis apparaissent dans les fenêtres de suivi ou de point d’interruption. Le format de la chaîne est indiqué ci-après :

en-tête;(texte)%(type)

Où en-tête est une chaîne de texte identifiant le point de suivi ou le point d’interruption, texte est une chaîne décrivant le point (ou tout autre texte de votre choix) et %(type) indique le format du point. Il vous faut un type d’indicateur pour chaque point que vous suivez avec l’instruction de point de suivi ou de point d’interruption.

Par exemple, vous pouvez formater une chaîne de point de suivi comme indiqué ci-dessous :

Mon point de suivi:Point 1 = %e et Point 2 = %d

%e formate le premier point suivi comme une valeur en virgule flottante à double précision avec un exposant et %d formate le deuxième point suivi comme nombre entier décimal signé.

Dans ce cas, vous avez une instruction de point de suivi avec deux opérandes Suivre Ceci (un pour une valeur REAL et un pour une valeur INT, bien que la valeur de n’importe quel point peut être formatée avec n’importe quel indicateur).

ATTENTION Lorsqu’un point d’interruption est déclenché, vous ne pouvez pas modifier votre projet tant que vous n’autorisez pas la poursuite de l’exécution. Vous pouvez aller en ligne avec l’émulateur pour observer l’état de votre projet, mais vous ne pourrez pas le modifier. Si vous essayez d’accepter une modification de ligne lorsqu’un point d’interruption est déclenché, une fenêtre apparaît pour indiquer que l’automate n’est pas dans le mode correct.

622 Publication 1756-RM003K-FR-P – Juillet 2008

Page 623: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de débogage (BPT, TPT) Chapitre 20

La fenêtre du point de suivi résultante qui apparaît lorsque le point de suivi est déclenché ressemble à celle-ci.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Exécution :

Exemple : Vous pouvez afficher de nombreuses valeurs de point avec l’instruction BPT. Cependant, la chaîne de formatage ne peut contenir que 82 caractères. Etant donné que la chaîne de formatage requiert deux caractères pour chaque point que vous voulez dans le point d’interruption, vous ne pouvez pas suivre plus de 41 points avec une seule instruction BPT. En outre, pour séparer les données de point dans vos suivis, vous devrez inclure des espaces et d’autres éléments de formatage, ce qui réduit à bien moins de 41 le nombre de valeurs de point qu’une instruction BPT peut réellement afficher.

L’en-tête (le texte qui précède les deux points dans la chaîne de formatage) apparaît ici.

Le numéro d’emplacement indique l’emplacement contenant le module émulateur qui possède le point de suivi ou le point d’interruption qui est suivi dans la fenêtre de suivi.

Le texte de la valeur REAL (représentée dans la chaîne de formatage par %e) apparaît ici.

Le texte de la valeur INT (représentée dans la chaîne de formatage par %d) apparaît ici.

Condition Action logique à relais

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai L’état de sortie de la ligne est réglé sur vrai.

L’exécution saute à la ligne contenant l’instruction LBL avec le nom d’étiquette référencé.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

Publication 1756-RM003K-FR-P – Juillet 2008 623

Page 624: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 20 Instructions de débogage (BPT, TPT)

Cet ligne montre un point d’interruption qui arrête l’exécution du programme lorsqu’une valeur analogique est supérieure à 3,02 ou inférieure à 2,01.

Vous voulez afficher les informations du point d’interruption avec la chaîne Format (monformat). Dans ce cas, la chaîne de formatage contient le texte suivant :

Breakpoint:The input value is %f

Lorsque le point d’interruption est déclenché, la fenêtre de suivi du point d’interruption affiche les caractères précédant les deux points (« Breakpoint ») dans la barre de titre de la fenêtre de suivi. Les autres caractères constituent les suivis. Dans cet exemple, %f représente le premier (et dans ce cas le seul) point à suivre (« analogvalue »).

Le résultat du suivi apparaît comme ci-dessous.

624 Publication 1756-RM003K-FR-P – Juillet 2008

Page 625: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de débogage (BPT, TPT) Chapitre 20

Points de suivi (TPT) Les points de suivi enregistrent des données que vous sélectionnez lorsqu’une ligne est vraie.

Opérandes :

Logique à relais

Description :

Les points de suivi se programment avec l’instruction de sortie de point de suivi (TPT). Lorsque les entrées sur une ligne contenant une instruction TPT sont vraies, l’instruction TPT écrit une entrée de suivi dans l’affichage ou le fichier journal de suivi.

Vous pouvez suivre de nombreux points avec l’instruction TPT. Cependant, la chaîne de formatage ne peut contenir que 82 caractères. Etant donné que la chaîne de formatage requiert deux caractères pour chaque point que vous voulez suivre, vous ne pouvez pas suivre plus de 41 points avec une seule instruction TPT. En outre, pour séparer les données de point dans vos suivis, vous devrez inclure des espaces et d’autres éléments de formatage, ce qui réduit à bien moins de 41 le nombre de points qu’une instruction TPT peut réellement suivre.

Format de chaîne

Avec le format de chaîne des instructions de point de suivi et de point d’interruption, vous pouvez contrôler la façon dont les points suivis apparaissent dans les fenêtres de suivi ou de point d’interruption. Le format de la chaîne est indiqué ci-après :

en-tête;(texte)%(type)

Où en-tête est une chaîne de texte identifiant le point de suivi ou le point d’interruption, texte est une chaîne décrivant le point (ou tout autre texte de votre choix) et %(type) indique le format du point. Il vous faut un type d’indicateur pour chaque point que vous suivez avec l’instruction de point de suivi ou de point d’interruption.

Par exemple, vous pouvez formater une chaîne de point de suivi comme indiqué ci-dessous :

Opérande Type Format Description

Formater STRING point Chaîne qui configure le formatage des rapports de suivi (à la fois à l’écran et dans le journal sur le disque).

Suivre Ceci BOOL, SINT, INT, DINT,REAL

point Point que vous voulez suivre.

Publication 1756-RM003K-FR-P – Juillet 2008 625

Page 626: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 20 Instructions de débogage (BPT, TPT)

Mon point de suivi:Point 1 = %e et Point 2 = %d

%e formate le premier point suivi comme une valeur en virgule flottante à double précision avec un exposant et %d formate le deuxième point suivi comme nombre entier décimal signé.

Dans ce cas, vous avez une instruction de point de suivi avec deux opérandes Suivre Ceci (un pour une valeur REAL et un pour une valeur INT, bien que la valeur de n’importe quel point peut être formatée avec n’importe quel indicateur).

La fenêtre du point de suivi résultante qui apparaît lorsque le point de suivi est déclenché ressemble à celle-ci.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Exécution :

L’en-tête (le texte qui précède les deux points dans la chaîne de formatage) apparaît ici.

Le numéro d’emplacement indique l’emplacement contenant le module émulateur qui possède le point de suivi ou le point d’interruption qui est suivi dans la fenêtre de suivi.

Le texte de la valeur REAL (représentée dans la chaîne de formatage par %e) apparaît ici.

Le texte de la valeur INT (représentée dans la chaîne de formatage par %d) apparaît ici.

Condition Action logique à relais

Pré-scrutation L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est faux L’état de sortie de la ligne est réglé sur faux.

L’état d’entrée de la ligne est vrai L’état de sortie de la ligne est réglé sur vrai.

L’exécution saute à la ligne contenant l’instruction LBL avec le nom d’étiquette référencé.

Post-scrutation L’état de sortie de la ligne est réglé sur faux.

626 Publication 1756-RM003K-FR-P – Juillet 2008

Page 627: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Instructions de débogage (BPT, TPT) Chapitre 20

Exemple : Cette ligne déclenche un suivi de trois valeurs analogiques lorsqu’une d’entre elles dépasse une valeur définie (30,01).

Vous voulez afficher les informations du point de suivi dans la chaîne Format (monformat). Dans ce cas, la chaîne de formatage contient le texte suivant :

Analog inputs trace:Analog inputs = %f, %f, and %f

Lorsque le point de suivi est déclenché, les caractères précédant les deux points (« Analog inputs trace ») apparaissent dans la barre de titre de la fenêtre de suivi. Les autres caractères constituent le suivi. Dans cet exemple, %f représente les points à suivre (« analogvalue1 », « analogvalue2 » et « analogvalue3 »).

Publication 1756-RM003K-FR-P – Juillet 2008 627

Page 628: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Chapitre 20 Instructions de débogage (BPT, TPT)

Le résultat du suivi apparaît comme ci-dessous.

Lorsque ce suivi est enregistré sur le disque, les caractères précédant les deux points apparaissent dans les suivis.

Ceci indique quel point de suivi a provoqué quelle entrée de suivi. Ceci est un exemple d’entrée de suivi. « Analog inputs trace: » est le texte d’en-tête de la chaîne de formatage de point de suivi.

Analog inputs trace:Analog inputs = 31.00201, 30.282000, and 30.110001

628 Publication 1756-RM003K-FR-P – Juillet 2008

Page 629: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Annexe A

Attributs communs

Introduction Cette annexe décrit les attributs qui sont communs aux instructions Logix.

Valeurs immédiates Lorsque vous entrez une valeur immédiate (constante) au format décimal (par exemple, –2, 3), l’automate stocke la valeur en utilisant 32 bits. Si vous entrez une valeur dans une base de numérotation autre que décimale, comme binaire ou hexadécimale, et que vous ne définissez pas les 32 bits, l’automate place un zéro dans les bits que vous ne définissez pas (remplissage de zéros).

Conversions de données Les conversions de données se produisent lorsque vous mélangez des types de données dans votre programmation.

Pour plus d’informations sur Voir page

Valeurs immédiates 629

Conversions de données 629

EXEMPLE Remplissage de zéros pour valeurs immédiates

Si vous entrez L’automate enregistre

–1 16#ffff ffff (–1)

16#ffff (–1) 16#0000 ffff (65535)

8#1234 (668) 16#0000 029c (668)

2#1010 (10) 16#0000 000a (10)

Lorsque vous programmez en

Les conversions peuvent se produire lorsque vous

Logique à relais mélangez des types de données pour les paramètres d’une instruction

Bloc fonctionnel reliez deux paramètres qui ont des types de données différents

Publication 1756-RM003K-FR-P – Juillet 2008 629

Page 630: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Annexe A Attributs communs

Les instructions sont exécutées plus vite et requièrent moins de mémoire si tous les opérandes de l’instruction utilisent :

• le même type de données ;

• un type de données optimal :

– dans la section « Opérandes » de chaque instruction de ce manuel, un type de données en gras indique le type de données optimal ;

– les types de données DINT et REAL sont généralement les types de données optimaux ;

– la plupart des instructions de bloc fonctionnel prennent en charge seulement un type de données (le type de données optimal) pour ses opérandes.

Si vous mélangez des types de données et que vous utilisez des points qui n’appartiennent pas au type de données optimal, l’automate convertit les données selon les règles ci-dessous.

• Au moins un opérande est-il une valeur REAL ?

• Après l’exécution de l’instruction, le résultat (une valeur DINT ou REAL) est converti au type de données de la destination, le cas échéant.

Vous ne pouvez pas spécifier un point BOOL dans une instruction qui fonctionne sur des types de données de nombres entiers ou REAL.

Etant donné que la conversion prend plus de temps et de mémoire, vous pouvez améliorer l’efficacité de vos programmes des façon suivantes :

• utilisez le même type de données dans toute l’instruction ;

• réduisez au minimum l’utilisation de types de données SINT ou INT.

Autrement dit, n’utilisez que des points DINT ou que des points REAL, ainsi que des valeurs immédiates, dans vos instructions.

Les sections suivantes expliquent comment les données sont converties lorsque vous utilisez des points SINT ou INT ou lorsque vous mélangez des types de données.

Si Les opérandes d’entrée (par exemple, source, point dans une expression, limite) sont convertis en

Oui REAL

Non DINT

630 Publication 1756-RM003K-FR-P – Juillet 2008

Page 631: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Attributs communs Annexe A

SINT ou INT vers DINT

Les sections « Opérandes » de ce manuel identifient la méthode de conversion pour les instructions qui convertissent des valeurs SINT ou INT en valeurs DINT.

L’exemple suivant montre les résultats de la conversion d’une valeur en utilisant l’extension par signe et le remplissage de zéros.

Etant donné que les valeurs immédiates sont toujours remplies par des zéros, la conversion d’une valeur SINT ou INT peut produire des résultats imprévisibles. Dans l’exemple suivant, la comparaison est fausse parce que la Source A, une valeur INT, est convertie par extension de signe, alors que la Source B, une valeur immédiate, est remplie par des zéros.

Cette méthode de conversion

Convertit les données en plaçant

Extension par signe la valeur du bit le plus à gauche (le signe de la valeur) dans chaque position de bit à gauche des bits existants jusqu’à obtenir 32 bits.

Remplissage de zéros des zéros à gauche des bits existants jusqu’à obtenir 32 bits.

Cette valeur 2#1111_1111_1111_1111 (–1)

est convertie à cette valeur par extension de signe

2#1111_1111_1111_1111_1111_1111_1111_1111 (–1)

est convertie à cette valeur par remplissage de zéros

2#0000_0000_0000_0000_1111_1111_1111_1111 (65535)

der Logic Listing - Total number of rungs: 3

EqualSource A remote_rack_1:I.Data[0] 2#1111_1111_1111_1111Source B 2#1111_1111_1111_1111

EQU

42093

EqualSource A remote_rack_1:I.Data[0]

2#1111_1111_1111_1111Source B 2#1111_1111_1111_1111

EQU

Publication 1756-RM003K-FR-P – Juillet 2008 631

Page 632: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Annexe A Attributs communs

Si vous utilisez un point SINT ou INT et une valeur immédiate dans une instruction qui convertie les données par extension de signe, utilisez l’une des méthodes ci-dessous pour gérer les valeurs immédiates.

• Spécifiez toute valeur immédiate dans la base de numération décimale.

• Si vous entrez la valeur dans une base de numérotation autre que décimale, spécifiez les 32 bits de la valeur immédiate. Pour cela, entrez la valeur du bit le plus à gauche dans chaque position de bit sur la gauche jusqu’à obtenir 32 bits.

• Créez un point pour chaque opérande et utilisez le même type de données dans toute l’instruction. Pour attribuer une valeur constante, procédez de l’une des façons suivantes :

– entrez-la dans l’un des points ;

– ajoutez une instruction MOV qui déplace la valeur dans l’un des points.

• Utilisez une instruction MEQ pour vérifier uniquement les bits requis.

Les exemples suivants montrent deux façons de combiner une valeur immédiate avec un point INT. Les deux exemples vérifient les bits d’un module d’E/S 1771 afin de déterminer si tous les bits sont actifs. Etant donnée que le mot de donnée d’entrée d’un module d’E/S 1771 est un point INT, il est plus facile d’utiliser une valeur constante de 16 bits.

EXEMPLE Combinaison d’un point INT avec une valeur immédiate.

Etant donné que remote_rack_1:I.Data[0] est un point INT, la valeur avec laquelle il faut le vérifier est également saisie comme un point INT.

EqualSource A remote_rack_1:I.Data[0] 2#1111_1111_1111_1111Source B int_0 2#1111_1111_1111_1111

EQU

42093

632 Publication 1756-RM003K-FR-P – Juillet 2008

Page 633: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Attributs communs Annexe A

Nombre entier vers REAL

L’automate stocke des valeurs REAL dans un format de nombres à virgule flottante simple précision IEEE. Il utilise un bit pour le signe de la valeur, 23 bits pour la valeur de base et huit bits pour l’exposant (32 bits au total). Si vous combinez un point de nombre entier (SINT, INT ou DINT) et un point REAL comme entrées dans la même instruction, l’automate convertit la valeur entière en valeur REAL avant l’exécution de l’instruction.

• Une valeur SINT ou INT est toujours convertie dans la même valeur REAL.

• Une valeur DINT peut ne pas être convertie à la même valeur REAL :

– une valeur REAL utilise jusqu’à 24 bits pour la valeur de base (23 bits stockés plus un bit « caché ») ;

– une valeur DINT utilise jusqu’à 32 bits pour la valeur (un pour le signe et 31 pour la valeur) ;

– si la valeur DINT requiert plus de 24 bits significatifs, elle peut ne pas être convertie à la même valeur REAL. Dans ce cas, l’automate arrondit à la valeur REAL la plus proche en utilisant 24 bits significatifs.

EXEMPLE Combinaison d’un point INT avec une valeur immédiate.

Etant donné que remote_rack_1:I.Data[0] est un point INT, la valeur avec laquelle il faut le vérifier est d’abord déplacée dans int_0, également un point INT. L’instruction EQU compare ensuite les deux points.

2#1111_1111_1111_1111

MoveSource 2#1111_1111_1111_1111 Dest int_0 2#1111_1111_1111_1111

MOVEqualSource A remote_rack_1:I.Data[0] 2#1111_1111_1111_1111Source B int_0 2#1111_1111_1111_1111

EQU

42093

Publication 1756-RM003K-FR-P – Juillet 2008 633

Page 634: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Annexe A Attributs communs

DINT vers SINT ou INT

Pour convertir une valeur DINT en valeur SINT ou INT, l’automate tronque la partie supérieure de la valeur DINT et active l’indicateur d’état de dépassement supérieur, le cas échéant. L’exemple suivant montre le résultat d’une conversion DINT vers SINT ou INT.

REAL vers nombre entier

Pour convertir une valeur REAL en valeur entière, l’automate arrondi la partie fractionnelle et tronque la portion supérieure de la partie entière. Si des données sont perdues, l’automate active l’indicateur d’état de dépassement supérieur. Les nombres sont arrondis comme suit :

• nombres autres que x,5 sont arrondis au nombre entier le plus proche ;

• X,5 est arrondi au nombre pair le plus proche.

L’exemple suivant montre le résultat de la conversion de valeurs REAL en valeurs DINT.

EXEMPLE Conversion d’une valeur DINT en valeur INT et SINT

EXEMPLE Conversion de valeurs REAL en valeurs DINT.

Cette valeur DINT Est convertie dans cette valeur plus petite

16#0001_0081 (65,665) INT : 16#0081 (129)

SINT : 16#81 (–127)

Cette valeur REAL Est convertie dans cette valeur DINT

–2,5 –2

–1,6 –2

–1,5 –2

–1,4 –1

1,4 1

1,5 2

1,6 2

2,5 2

634 Publication 1756-RM003K-FR-P – Juillet 2008

Page 635: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Attributs communs Annexe A

IMPORTANT Les indicateurs d’état arithmétique sont activés en fonction de la valeur stockée. Les instructions qui normalement n’affectent pas les mots-clés d’état arithmétique peuvent sembler les affecter si la conversion de type se produit en raison d’un mélange de types de données dans les paramètres de l’instruction. Le processus de conversion de type active les mots-clés d’état arithmétique.

Publication 1756-RM003K-FR-P – Juillet 2008 635

Page 636: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Annexe A Attributs communs

Notes :

636 Publication 1756-RM003K-FR-P – Juillet 2008

Page 637: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Annexe B

Attributs de bloc fonctionnel

Introduction Cette annexe décrit des problèmes qui sont spécifiques aux instructions de bloc fonctionnel. Lisez les informations de cette annexe pour être sûr de bien comprendre comment vos sous-programmes de blocs fonctionnels fonctionneront.

Choix des éléments de bloc fonctionnel

Pour commander un dispositif, utilisez les éléments suivants :

Utilisez le tableau suivant pour choisir vos éléments de bloc fonctionnel :z

IMPORTANT Lorsque vous programmez en blocs fonctionnels, limitez la plage des unités procédé à +/–10+/–15. Ceci parce que les calculs en virgule flottante internes sont effectués à l’aide de virgule flottante simple précision. Les unités procédé en dehors de cette plage peuvent entraîner une perte de précision si les résultats approchent les limites de la virgule flottante simple précision (+/–10+/–38).

référence d’entrée (IREF) bloc fonctionnel

connecteur de câble de sortie (OCON)

référence de sortie (OREF)

connecteur decâble d’entrée

(ICON)

Si vous voulez Utilisez

fournir une valeur provenant d’un dispositif ou un point d’entrée

une référence d’entrée (IREF)

envoyer une valeur à un dispositif ou à un point de sortie

une référence de sortie (OREF)

Publication 1756-RM003K-FR-P – Juillet 2008 637

Page 638: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Annexe B Attributs de bloc fonctionnel

Verrouillage de données Si vous utilisez un élément IREF pour spécifier les données d’entrée pour une instruction de bloc fonctionnel, les données dans cet IREF sont verrouillées pour la scrutation du sous-programme de bloc fonctionnel. L’élément IREF verrouille les données à partir des points de programme et d’automate. L’automate actualise toutes les données IREF au début de chaque scrutation.

Dans cet exemple, la valeur du point tagA est stockée au début de l’exécution du sous-programme. La valeur stockée est utilisée lorsque Block_01 est exécuté. La même valeur stockée est également utilisée lorsque Block_02 est exécuté. Si la valeur du point tagA change au cours de l’exécution du sous-programme, la valeur du point tagA stockée dans IREF ne change pas jusqu’à la prochaine exécution du sous-programme.

réaliser une opération sur une ou plusieurs valeurs d’entrée et produire une ou plusieurs valeurs de sortie

un bloc fonctionnel

transférer des données entre des blocs fonctionnels lorsqu’ils sont :

• éloignés sur la même feuille ;

• sur différentes feuilles dans le même sous-programme.

un connecteur de câble de sortie (OCON) et un connecteur de câble d’entrée (ICON)

répartir des données entre plusieurs points dans le sous-programme

un connecteur de câble de sortie unique (OCON) et plusieurs connecteurs de câble d’entrée (ICON)

Si vous voulez Utilisez

IREF

tagA

Block_01

Block_02

638 Publication 1756-RM003K-FR-P – Juillet 2008

Page 639: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Attributs de bloc fonctionnel Annexe B

Cet exemple est identique au précédent. La valeur du point tagA est stockée une seule fois au début de l’exécution du sous-programme. Le sous-programme utilise cette valeur stockée tout au long du sous-programme.

A partir de la version 11 du logiciel RSLogix 5000, vous pouvez utiliser le même point dans plusieurs éléments IREF et un élément OREF dans le même sous-programme. Etant donné que les points dans les éléments IREF sont verrouillés à chaque scrutation du sous-programme, tous les IREF utilisent la même valeur, même si un élément OREF obtient une valeur de point différente au cours de l’exécution du sous-programme. Dans cet exemple, si le point tagA a une valeur de 25,4 lorsque le sous-programme démarre l’exécution de cette scrutation et que le Block_01 change la valeur de tagA en 50,9, le deuxième IREF relié au Block_02 utilise toujours la valeur 25,4 lorsque le Block_02 exécute cette scrutation. La nouvelle valeur 50,9 du point tagA ne sera pas utilisée par l’un quelconque des IREF de ce sous-programme avant le début de la prochaine scrutation.

tagA

Block_01

Block_02

tagA

Publication 1756-RM003K-FR-P – Juillet 2008 639

Page 640: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Annexe B Attributs de bloc fonctionnel

Ordre d’exécution Le logiciel de programmation RSLogix 5000 détermine automatiquement l’ordre d’exécution des blocs fonctionnels dans un sous-programme lorsque vous :

• vérifiez le sous-programme de bloc fonctionnel ;

• vérifiez un projet qui contient un sous-programme de bloc fonctionnel ;

• chargez un projet qui contient un sous-programme de bloc fonctionnel.

Vous définissez l’ordre d’exécution en reliant des blocs fonctionnels entre eux et en indiquant le flux des données de tout câble de retour, le cas échéant.

Si les blocs fonctionnels ne sont pas reliés entre eux, l’ordre d’exécution du premier bloc n’a pas d’importance. Il n’existe pas de flux de données entre les blocs.

Si vous reliez les blocs séquentiellement, l’ordre d’exécution passe de l’entrée à la sortie. Les entrées d’un bloc nécessitent que les données soient disponibles avant que l’automate puisse exécuter ce bloc. Par exemple, le bloc 2 doit être exécuté avant le bloc 3 parce que les sorties du bloc 2 alimentent les entrées du bloc 3.

L’ordre d’exécution ne concerne que les blocs qui sont reliés entre eux. L’exemple suivant est correct parce que les deux groupes de blocs ne sont pas reliés. Les blocs d’un groupe spécifique sont exécutés dans l’ordre approprié pour les blocs de ce groupe.

1 2 3

1 3 5

2 4 6

640 Publication 1756-RM003K-FR-P – Juillet 2008

Page 641: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Attributs de bloc fonctionnel Annexe B

Résolution d’une boucle

Pour créer une boucle de retour autour d’un bloc, raccordez un connecteur de sortie du bloc à un connecteur d’entrée du même bloc. L’exemple suivant est correct. La boucle ne contient qu’un seul bloc, l’ordre d’exécution n’a donc pas d’importance.

Si un groupe de blocs est dans une boucle, l’automate ne peut pas déterminer quel bloc exécuter en premier. Autrement dit, il ne peut pas résoudre la boucle.

Pour identifier quel bloc exécuter en premier, marquez le câble d’entrée qui crée la boucle (le câble de retour) avec l’indicateur Assume Data Available (supposer que les données sont disponibles). Dans l’exemple suivant, bloc 1 utilise la sortie du bloc 3 produite lors de l’exécution précédente du sous-programme.

L’indicateur Assume Data Available définit le flux des données dans la boucle. La flèche indique que les données servent d’entrée pour le premier bloc de la boucle.

Ce connecteur d’entrée utiliseune sortie produite par le bloc

lors de la scrutation précédente.

?? ?

1 2 3

Ce connecteur d’entrée utilise lasortie produite par le bloc 3 lors

de la scrutation précédente.

Indicateur Assume Data Available (supposer que les données sont disponibles)

Publication 1756-RM003K-FR-P – Juillet 2008 641

Page 642: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Annexe B Attributs de bloc fonctionnel

Ne pas marquer tous les câbles d’une boucle avec l’indicateur Assume Data Available.

Résolution du flux de données entre deux blocs

Si vous utilisez plusieurs câbles pour raccorder deux blocs, utilisez les mêmes indicateurs de flux de données pour tous les câbles entre les deux blocs.

Ceci est correct Ceci N’EST PAS correct

L’indicateur Assume Data Available définit le flux des données dans la boucle.

L’automate ne peut pas résoudre la boucle parce que tous les câbles utilisent l’indicateur Assume Data Available.

Indicateur Assume Data Available (supposer que les données sont disponibles)

21 ??

Ceci est correct Ceci N’EST PAS correct

Aucun des deux câbles n’utilise l’indicateur Assume Data Available.

Les deux câbles utilisent l’indicateur Assume Data Available.

Un câble utilise l’indicateur Assume Data Available, mais pas l’autre.

Indicateur Assume Data Available (supposer que les données sont disponibles)

642 Publication 1756-RM003K-FR-P – Juillet 2008

Page 643: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Attributs de bloc fonctionnel Annexe B

Créer une temporisation d’une scrutation

Pour produire une temporisation d’une scrutation entre les blocs, utilisez l’indicateur Assume Data Available. Dans l’exemple suivant, le bloc 1 est exécuté en premier. Il utilise la sortie du bloc 2 produite lors de la scrutation précédente du sous-programme.

Récapitulatif

En résumé, un sous-programme de bloc fonctionnel est exécuté dans l’ordre suivant :

1. L’automate verrouille toutes les valeurs de données dans les IREF.

2. L’automate exécute les autres blocs fonctionnels dans l’ordre déterminé par leur câblage.

3. L’automate écrit les sorties dans les OREF.

2 1

Indicateur Assume Data Available (supposer que les données sont disponibles)

Publication 1756-RM003K-FR-P – Juillet 2008 643

Page 644: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Annexe B Attributs de bloc fonctionnel

Réponses du bloc fonctionnel aux conditions de dépassement

En général, les instructions de bloc fonctionnel qui maintiennent l’historique ne mettent pas l’historique à jour avec les valeurs ±NAN ou ±INF lorsqu’un dépassement se produit. Chaque instruction répond d’une des façons suivantes à une condition de dépassement:

Réponse 1 :

Les blocs exécutent leur algorithme et vérifient le résultat pour ±NAN ou ±INF. Si ±NAN ou ±INF, le bloc produit ±NAN ou ±INF.

Réponse 2 :

Les blocs avec limitation de sortie exécutent leur algorithme et vérifient le résultat pour ±NAN ou ±INF. Les limites de sortie sont définies par les paramètres d’entrée HighLimit et LowLimit. Si ±INF, le bloc produit un résultat limité. Si ±NAN, les limites de sortie ne sont pas utilisées et le bloc produit ±NAN.

Réponse 3 :

La condition de dépassement ne s’applique pas. Ces instructions ont généralement une sortie booléenne.

ALMNTCH

DEDTPMUL

DERVPOSP

ESELRLIM

FGENRMPS

HPFSCRV

LDL2SEL

LDLGSNEG

LPFSRTP

MAVESSUM

MAXCTOT

MINCUPDN

MSTD

MUX

HLL

INTG

PI

PIDE

SCL

SOC

BANDOSRI

BNOTRESD

BORRTOR

BXORSETD

CUTDTOFR

D2SDTONR

D3SD

DFF

JKFF

OSFI

644 Publication 1756-RM003K-FR-P – Juillet 2008

Page 645: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Attributs de bloc fonctionnel Annexe B

Modes de temporisation Les instructions de commande de procédé et de régulation suivantes acceptent différents modes de temporisation.

Voici trois modes de temporisation différents :

DEDT

DERV

HPF

INTG

LDL2

LDLG

LPF

NTCH

PI

PIDE

RLIM

SCRV

SOC

TOT

Mode de temporisation

Description

périodique Le mode périodique est le mode par défaut et convient à la plupart des applications de commande. Il est recommandé de placer les instructions qui utilisent ce mode dans un sous-programme exécuté dans une tâche périodique. La variable de temps (DeltaT) de l’instruction est déterminée comme suit :

Si l’instruction est exécutée dans une

DeltaT est égale

tâche périodique à la période de la tâche

tâche événementielle ou continue

au temps écoulé depuis l’exécution précédente.

L’automate tronque le temps écoulé en millisecondes (ms) entières. Par exemple, si le temps écoulé = 10,5 ms, l’automate règle DeltaT = 10 ms.

Le rafraîchissement de l’entrée de procédé doit être synchronisé avec l’exécution de la tâche ou échantillonné 5 à 10 fois plus vite que l’exécution de la tâche pour minimiser les erreurs d’échantillonnage entre l’entrée et l’instruction.

sur-échantillonnage En mode de sur-échantillonnage, la variable de temps (DeltaT) utilisée par l’instruction est la valeur écrite dans le paramètre OversampleDT de l’instruction. Si l’entrée de procédé a une valeur d’horodatage, utilisez plutôt le mode d’échantillonnage temps réel.

Ajoutez une logique à votre programme pour commander le moment où l’instruction est exécutée. Par exemple, vous pouvez utiliser un temporisateur réglé sur la valeur OversampleDeltaT pour commander l’exécution en utilisant l’entrée EnableIn de l’instruction.

L’entrée de procédé doit être échantillonnée 5 à 10 fois plus vite que l’exécution de l’instruction pour minimiser les erreurs d’échantillonnage entre l’entrée et l’instruction.

Publication 1756-RM003K-FR-P – Juillet 2008

645
Page 646: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Annexe B Attributs de bloc fonctionnel

Les instructions de temps requièrent une valeur constante pour DeltaT pour que l’algorithme de commande calcule correctement la sortie de procédé. Si DeltaT varie, une discontinuité se produit dans la sortie de procédé. L’importance de la discontinuité dépend de l’instruction et de la plage de variation de DeltaT. Une discontinuité se produit si :

• l’instruction n’est pas exécutée pendant une scrutation ;

• l’instruction est exécutée plusieurs fois pendant une tâche ;

• la tâche est en cours et la fréquence de scrutation de la tâche ou le temps d’échantillonnage de l’entrée de procédé change ;

• l’utilisateur change le mode de temporisation pendant l’exécution de la tâche ;

• le paramètre d’ordre est modifié sur un bloc de filtrage pendant l’exécution de la tâche. La modification du paramètre d’ordre sélectionne un algorithme de commande différent dans l’instruction.

échantillonnage en temps réel

En mode d’échantillonnage en temps réel, la variable de temps (DeltaT) utilisée par l’instruction est la différence entre deux valeurs d’horodatage qui correspond aux rafraîchissements de l’entrée de procédé. Utilisez ce mode lorsque l’entrée de procédé associe un horodatage à ses rafraîchissements et qu’il vous faut une coordination précise.

La valeur d’horodatage est lue à partir du nom du point entrée pour le paramètre RTSTimeStamp de l’instruction. Normalement ce nom de point est un paramètre sur le module d’entrées associé à l’entrée de procédé.

L’instruction compare la valeur RTSTime configurée (période de rafraîchissement attendue) avec la variable de temps DeltaT calculée pour déterminer si chaque rafraîchissement de l’entrée de procédé est lue par l’instruction. Si DeltaT n’est pas à 1 milliseconde maximum du temps de configuration, l’instruction active le bit d’état RTSMissed pour indiquer qu’un problème existe pour la lecture des mises à jour de l’entrée sur le module.

Mode de temporisation

Description

646 Publication 1756-RM003K-FR-P – Juillet 2008

Page 647: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Attributs de bloc fonctionnel Annexe B

Paramètres d’instruction communs pour les modes de temporisation

Les instructions qui prennent en charge les modes de temporisation possèdent les paramètres d’entrée et de sortie ci-dessous :

Paramètres d’entrée

Paramètre d’entrée Type de données

Description

TimingMode DINT Sélectionne le mode d’exécution de temporisation.

Valeur : Description :

0 mode périodique

1 mode de sur-échantillonnage

2 mode d’échantillonnage en temps réel

valable = 0 à 2

valeur par défaut = 0

Lorsque TimingMode = 0 et que la tâche est périodique, la temporisation périodique est activée et DeltaT est réglé sur la fréquence de scrutation de la tâche. Lorsque TimingMode = 0 et que la tâche est une tâche événementielle ou continue, la temporisation périodique est activée et DeltaT est réglé sur une valeur égale au laps de temps écoulé depuis la dernière exécution de l’instruction.

Lorsque TimingMode = 1, la temporisation de sur-échantillonnage est activée et DeltaT est réglé sur la valeur du paramètre OversampleDT.

Lorsque TimingMode = 2, la temporisation d’échantillonnage en temps réel est activée et DeltaT est la différence entre les valeurs d’horodatage actuelle et précédente lues à partir du module associé à l’entrée.

Si TimingMode n’est pas valable, l’instruction active le bit approprié dans Status.

OversampleDT REAL Temps d’exécution pour la temporisation de sur-échantillonnage. La valeur utilisée pour DeltaT est en secondes. Si TimingMode = 1, OversampleDT = 0,0 désactive l’exécution de l’algorithme de commande. Si incorrect, l’instruction règle DeltaT = 0,0 et active le bit approprié dans Status.

valable = 0 à 4194,303 secondes

valeur par défaut = 0,0

Publication 1756-RM003K-FR-P – Juillet 2008 647

Page 648: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Annexe B Attributs de bloc fonctionnel

Paramètres de sortie

RTSTime DINT Intervalle de rafraîchissement du module pour l’échantillonnage en temps réel. L’intervalle de rafraîchissement attendu pour DeltaT est mesuré en millisecondes. L’intervalle de rafraîchissement est normalement la valeur qui a été utilisée pour configurer la durée de rafraîchissement du module. Si incorrecte, l’instruction active le bit approprié dans Status et désactive la vérification RTSMissed.

valable = 1 à 32 767 ms

valeur par défaut = 1

RTSTimeStamp DINT Valeur d’horodatage du module pour la durée d’échantillonnage en temps réel. Valeur d’horodatage qui correspond au dernier rafraîchissement du signal d’entrée. Cette valeur est utilisée pour calculer DeltaT. Si incorrecte, l’instruction active le bit approprié dans Status, désactive l’exécution de l’algorithme de commande et désactive la vérification RTSMissed.

valable =1 à 32 767 ms (revient à 0 à partir de 32 767)

1 incrément = 1 milliseconde

valeur par défaut = 0

Paramètre d’entrée Type de données

Description

Paramètre de sortie Type de données

Description

DeltaT REAL Temps écoulé entre les rafraîchissements. Temps écoulé en secondes utilisé par l’algorithme de commande pour calculer la sortie de procédé.

Périodique : DeltaT = fréquence de scrutation de la tâche si c’est une tâche périodique, DeltaT = temps écoulé depuis l’exécution précédente de l’instruction si la tâche est une tâche événementielle ou continue.

Sur-échantillonnage : DeltaT = OversampleDT

Echantillonnage en temps réel : DeltaT = (RTSTimeStampn – RTSTimeStampn–1)

Status DINT Etat du bloc fonctionnel.

TimingModeInv (Status.27)

BOOL Valeur TimingMode incorrecte.

RTSMissed (Status.28) BOOL Uniquement utilisé en mode d’échantillonnage en temps réel. Activé lorsque ABS | DeltaT – RTSTime | > 1 (0,001 seconde).

RTSTimeInv (Status.29)

BOOL Valeur RTSTime incorrecte.

RTSTimeStampInv (Status.30)

BOOL Valeur RTSTimeStamp incorrecte.

DeltaTInv (Status.31) BOOL Valeur DeltaT incorrecte.

648 Publication 1756-RM003K-FR-P – Juillet 2008

Page 649: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Attributs de bloc fonctionnel Annexe B

Présentation des modes de temporisations

Le schéma suivant montre comment une instruction détermine le mode de temporisation approprié.

TimingMode = 2TimingMode = 1TimingMode = 0

Déterminer le mode de temporisation

Temporisation en temps réelTemporisation de sur-échantillonnageTemporisation périodique

Déterminer le type de tâche

tâche périodique tâche événementielle ou continue

DeltaT = OversampleDT

Si DeltaT < 0 ou DeltaT > 4194,303 s, l’instruction règle DeltaT = 0,0 et active le bit approprié dans Status.

Si DeltaT > 0, l’instruction est exécutée.

DeltaT = RTSTimeStampn – RTSTimeStampn–1

Si DeltaT > 0, l’instruction est exécutée.

Si |RTSTIME – DeltaT| > 1, l’instruction active le bit RTSMissed dans Status.

DeltaT = temps de scrutation de la tâche

Si DeltaT > 0, l’instruction est exécutée.

DeltaT = temps écoulé depuis la dernière exécution

Si DeltaT > 0, l’instruction est exécutée.

Publication 1756-RM003K-FR-P – Juillet 2008 649

Page 650: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Annexe B Attributs de bloc fonctionnel

Commande Programme/Opérateur

Plusieurs instructions prennent en charge le concept de commande Programme/Opérateur. Ces instructions comprennent :

• Sélection évoluée (ESEL)

• Totalisateur (TOT)

• PID évolué (PIDE)

• Rampe/palier (RMPS)

• Dispositif TOR 2 états (D2SD)

• Dispositif TOR 3 états (D3SD)

La commande Programme/Opérateur vous permet de commande ces instructions simultanément à partir de votre programme utilisateur et d’un dispositif d’interface opérateur. En commande Programme, l’instruction est commandée par les entrées du programme dans l’instruction ; en commande Opérateur, l’instruction est commandée par les entrées de l’opérateur dans l’instruction.

La commande Programme ou Opérateur est déterminée par l’utilisation des entrées ci-dessous :

Pour déterminer si une instruction est en commande Programme ou Opérateur, examinez la sortie ProgOper. Si ProgOper est activée, l’instruction est en commande Programme ; si ProgOper est désactivée, l’instruction est en commande Opérateur.

La commande Opérateur est prioritaire sur la commande Programme si les deux bits d’entrée de requête sont activés. Par exemple, si ProgProgReq et ProgOperReq sont activés, l’instruction passe en commande Opérateur.

Entrée Description

.ProgProgReq Requête du programme pour passer en commande Programme.

.ProgOperReq Requête du programme pour passer en commande Opérateur.

.OperProgReq Requête de l’opérateur pour passer en commande Programme.

.OperOperReq Requête de l’opérateur pour passer en commande Opérateur.

650 Publication 1756-RM003K-FR-P – Juillet 2008

Page 651: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Attributs de bloc fonctionnel Annexe B

Les entrées de requête Programme sont prioritaires par rapport aux entrées de requête Opérateur. Ceci permet d’utiliser les entrées ProgProgReq et ProgOperReq pour « verrouiller » une instruction dans une commande voulue. Par exemple, supposons qu’une instruction Totalisateur sera toujours utilisée en commande Opérateur, et que votre programme utilisateur ne commandera jamais l’exécution ou l’arrêt du totalisateur. Dans ce cas, vous pouvez raccorder une valeur littérale de 1 dans ProgOperReq. Ceci empêche l’opérateur de mettre le totalisateur en commande Programme par l’activation de OperProgReq à partir d’une interface opérateur.

Etant donné que l’entrée ProgOperReq est toujours activée, appuyer sur le bouton « Program » sur la face avant (ce qui active l’entrée OperProgReg) n’a aucun effet. Normalement, activer OperProgReq met TOT en commande Programme.

Raccorder un « 1 » dans ProgOperReq signifie que le programme utilisateur veut toujours que TOT soit en commande Opérateur.

Publication 1756-RM003K-FR-P – Juillet 2008 651

Page 652: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Annexe B Attributs de bloc fonctionnel

De même, l’activation permanente de ProgProgReq peut « verrouiller » l’instruction en commande Programme. Ceci est utile pour les séquences de démarrage automatique lorsque vous voulez que le programme commande l’action de l’instruction sans vous préoccuper de la possibilité qu’un opérateur prenne la commande de l’instruction par inadvertance. Dans cet exemple, le programme active l’entrée ProgProgReq pendant le démarrage, puis désactive l’entrée ProgProgReq une fois le démarrage terminé. Une fois l’entrée ProgProgReq désactivée, l’instruction reste en commande Programme jusqu’à ce qu’elle reçoive une demande de changement. Par exemple, l’opérateur peut activer l’entrée OperOperReq à partir d’une face avant pour prendre la commande de cette instruction. L’exemple suivant montre comment verrouiller une instruction en commande Programme.

Les entrées de requête opérateur vers l’instruction sont toujours effacées par l’instruction lorsqu’elle est exécutée. Ceci permet aux interfaces opérateur de travailler avec ces instructions simplement en activant le bit de requête de mode voulu. Il n’est pas nécessaire de programmer l’interface opérateur pour réinitialiser les bits de requête. Par exemple, si une interface opérateur active l’entrée OperAutoReq vers une instruction PIDE, lorsque l’instruction PIDE est exécutée, elle détermine quelle est la réponse appropriée et efface OperAutoReq.

Les entrées de requête de programme ne sont normalement pas effacées par l’instruction parce qu’elles sont normalement raccordées comme entrées dans l’instruction. Si l’instruction efface ces entrées, l’entrée serait simplement réactivée par l’entrée câblée. Il peut exister des situations dans lesquelles vous voulez utiliser une autre logique pour activer les requêtes de programme de telle sorte que les requêtes de programme soient effacées par l’instruction. Dans ce cas, vous pouvez activer l’entrée ProgValueReset et l’instruction effacera toujours les entrées de requête du mode Programme lors de son exécution.

Lorsque StartupSequenceActive est activé, l’instruction PIDE est placée en commande Programme et en mode Manuel. La valeur StartupCV est utilisée comme sortie de boucle.

652 Publication 1756-RM003K-FR-P – Juillet 2008

Page 653: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Attributs de bloc fonctionnel Annexe B

Dans cet exemple, une ligne de logique à relais dans un autre sous-programme est utilisée pour verrouiller par impulsion ProgAutoReq pour une instruction PIDE lorsqu’un bouton-poussoir est actionné. Etant donné que l’instruction PIDE efface automatiquement les requêtes du mode Programme, il n’est pas nécessaire d’écrire de logique à relais pour effacer ProgAutoReq après l’exécution du sous-programme, et l’instruction PIDE ne reçoit qu’une requête pour passer en mode Auto chaque fois que le bouton-poussoir est enfoncé.

Lorsque le bouton-poussoir TIC101AutoReq est enfoncé, verrouiller par impulsion ProgAutoReq pour l’instruction PIDE TIC101. TIC101 a été configuré avec l’entrée ProgValueReset activée, donc lorsque l’instruction PIDE est exécutée, elle efface automatiquement ProgAutoReq.

Publication 1756-RM003K-FR-P – Juillet 2008 653

Page 654: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Annexe B Attributs de bloc fonctionnel

Notes :

654 Publication 1756-RM003K-FR-P – Juillet 2008

Page 655: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Annexe C

Programmation en texte structuré

Introduction Cette annexe décrit des problèmes qui sont spécifiques à la programmaton en texte structuré. Lisez les informations de cette annexe pour être sûr de bien comprendre comment votre programmation en texte structuré sera exécutée.

Syntaxe du texte structuré Le texte structuré est un langage de programmation textuel qui utilise des expressions pour définir ce qu’il faut exécuter.

• Le texte structuré n’est pas sensible à la casse.

• Utilisez des tabulations et des retours chariots (lignes séparées) pour faciliter la lecture de votre texte structuré. Ils n’ont aucun effet sur l’exécution du texte structuré.

Le texte structuré n’est pas sensible à la casse.Le texte structuré contient les composants ci-dessous.

Pour plus d’informations sur Voir page

Syntaxe du texte structuré 655

Affectations 657

Expressions 659

Instructions 666

Structures 667

Commentaires 683

Terme Définition Exemples

Affectation

(voir page 657)

Utilisez une expression d’affectation pour attribuer des valeurs à des points.

L’opérateur := est l’opérateur d’affectation.

Terminez l’affectation par un point virgule « ; ».

point := expression;

Publication 1756-RM003K-FR-P – Juillet 2008 655

Page 656: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Annexe C Programmation en texte structuré

Expression

(voir page 659)

Une expression est une partie d’une affectation complète ou d’une structure d’expression. Une expression a pour résultat un nombre (expression numérique) ou un état vrai ou faux (expression BOOL).

Une expression contient :

des points Une zone de la mémoire dénommée et où les données sont stockées (BOOL, SINT, INT, DINT, REAL, chaîne).

valeur1

des immédiats Une valeur constante. 4

des opérateurs Un symbole ou mnémonique qui représente une opération dans une expression.

point1 + point2

point1 >= valeur1

des fonctions Lorsqu’elle est exécutée, une fonction engendre une valeur. Utilisez des parenthèses pour contenir l’opérande d’une fonction.

Bien que leurs syntaxes soient similaires, les fonctions diffèrent des instructions parce que les fonctions ne peuvent être utilisées que dans des expressions. Les instructions ne peuvent pas être utilisées dans des expressions.

fonction(point1)

Instruction

(voir page 666)

Une instruction est une expression autonome.

Une instruction utilise des parenthèses pour contenir ses opérandes.

Selon l’instruction, il peut y avoir zéro, un ou plusieurs opérandes.

Lorsqu’elle est exécutée, une instruction a pour résultat une ou plusieurs valeurs qui font parties d’une structure de données.

Terminez l’instruction par un point virgule « ; ».

Bien que leurs syntaxes soient similaires, les instructions diffèrent des fonctions parce que les instructions ne peuvent pas être utilisées dans des expressions. Les fonctions ne peuvent être utilisées que dans des expressions.

instruction();

instruction(opérande);

instruction(opérande1, opérande2,opérande3);

Terme Définition Exemples

656 Publication 1756-RM003K-FR-P – Juillet 2008

Page 657: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Programmation en texte structuré Annexe C

Affectations Utilisez une affectation pour changer la valeur stockée dans un point. Une affectation a la syntaxe suivante :

point := expression ;

Où :

Structure

(voir page 667)

Instruction conditionnelle utilisée pour déclencher un code en texte structuré (c.-à-d., d’autres déclarations).

Terminez la structure par un point virgule « ; ».

IF...THEN

CASE

FOR...DO

WHILE...DO

REPEAT...UNTIL

EXIT

Commentaire

(voir page 683)

Texte qui explique ou clarifie ce que fait une section du texte structuré.

• Utilisez les commentaires pour faciliter l’interprétation du texte structuré.

• Les commentaires n’affectent pas l’exécution du texte structuré.

• Les commentaires peuvent apparaître n’importe où dans le texte structuré.

//commentaire

(*début du commentaire . . . fin du commentaire*)

/*début du commentaire . . . fin du commentaire*/

Terme Définition Exemples

Composant Description

point Représente le point qui obtient la nouvelle valeur.

Le point doit être BOOL, SINT, INT, DINT ou REAL.

:= Est le symbole de l’affectation.

expression Représente la nouvelle valeur à affecter au point.

Si point est du type de données :

Utilisez ce type d’expression :

BOOL expression BOOL

SINT

INT

DINT

REAL

expression numérique

; Termine l’affectation.

Publication 1756-RM003K-FR-P – Juillet 2008 657

Page 658: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Annexe C Programmation en texte structuré

Le point retient la valeur d’affectation jusqu’à ce qu’une autre affectation change la valeur.

L’expression peut être simple, comme une valeur immédiate ou un autre nom de point, ou elle peut être complexe et inclure plusieurs opérateurs et/ou fonctions. Voir la section suivante « Expressions », page 659.

Spécification d’une affectation non rémanente

L’affectation non rémanente est différente de l’affectation normale décrite ci-dessus parce que le point dans une affectation non rémanente est remis à zéro chaque fois que l’automate :

• passe en mode Exécution ;

• quitte l’étape d’un SFC si vous configurez le SFC pour Automatic reset (remise à zéro automatique). (Ceci ne s’applique que si vous intégrez l’affectation dans l’action de l’étape ou si vous utilisez l’action pour appeler un sous-programme de texte structuré via une instruction JSR.)

Une affectation non rémanente possède la syntaxe suivante :

point [:=] expression ;

Où :

Composant Description

point Représente le point qui obtient la nouvelle valeur.

Le point doit être BOOL, SINT, INT, DINT ou REAL.

[:=] Est le symbole de l’affectation non rémanente.

expression Représente la nouvelle valeur à affecter au point.

Si point est du type de données :

Utilisez ce type d’expression :

BOOL expression BOOL

SINT

INT

DINT

REAL

expression numérique

; Termine l’affectation.

658 Publication 1756-RM003K-FR-P – Juillet 2008

Page 659: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Programmation en texte structuré Annexe C

Affectation d’un caractère ASCII à une chaîne

Utilisez l’opérateur d’affectation pour attribuer un caractère ASCII à un élément du membre DATA d’un point de chaîne. Pour affecter un caractère, spécifiez la valeur du caractère ou spécifiez le nom du point, le membre DATA et l’élément du caractère. Par exemple :

Pour ajouter ou insérer une chaîne de caractères à un point de chaîne, utilisez l’une de ces instructions de chaîne de caractères ASCII :

Expressions Une expression est un nom de point, une équation ou une comparaison. Pour écrire une expression, utilisez l’un des éléments suivants :

• le nom du point qui stocke la valeur (variable) ;

• une nombre que vous entrez directement dans l’expression (valeur immédiate) ;

• une fonction, comme : ABS, TRUNC ;

• des opérateurs, comme : +, –, <, >, Et, Ou.

Respectez les recommandations suivantes pour écrire des expressions :

• Utilisez toute combinaison de lettres en majuscule et en minuscule. Par exemple, ces trois variantes de « ET » sont acceptables : ET, Et, et.

• Pour des impératifs plus complexes, utilisez des parenthèses pour regrouper des expressions dans d’autres expressions. Ceci facilite la lecture de l’expression et permet de s’assurer que l’expression est exécutée dans l’ordre voulu. Voir « Déterminer l’ordre d’exécution », page 665.

Ceci est correct Ceci n’est pas correct

chaîne1.DATA[0]:= 65; chaîne1.DATA[0] := A;

chaîne1.DATA[0]:= chaîne2.DATA[0]; chaîne1 := chaîne2;

Pour Utilisez cette instruction

ajouter des caractères à la fin d’une chaîne CONCAT

insérer des caractères dans une chaîne INSERT

Publication 1756-RM003K-FR-P – Juillet 2008 659

Page 660: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Annexe C Programmation en texte structuré

En texte structuré, utilisez les deux types d’expressions suivants :

Expression BOOL : une expression qui produit une valeur BOOL de 1 (vrai) ou de 0 (faux).

• Une expression booléenne utilise des points booléens, des opérateurs relationnels et des opérateurs logiques pour comparer les valeurs ou vérifier si les conditions sont vraies ou fausses. Par exemple, point1>65.

• Une expression booléenne simple peut être constituée d’un seul point BOOL.

• Généralement, vous utilisez des expressions booléennes pour conditionner l’exécution d’un autre programme.

Expression numérique : une expression qui calcule une valeur entière ou en virgule flottante.

• Une expression numérique utilise des opérateurs arithmétiques, des fonctions arithmétiques et des opérateurs sur bits. Par exemple, point1>+5.

• Une expression numérique est souvent imbriquée dans une expression booléenne. Par exemple, (point1+5)>65.

Utilisez le tableau suivant pour choisir les opérateurs de vos expressions :

Si vous voulez Voir

Calculer une valeur arithmétique « Utilisation d’opérateurs et de fonctions arithmétiques », page 661.

Comparer deux valeurs ou chaînes « Utilisation d’opérateurs relationnels », page 662.

Vérifier si les conditions sont vraies ou fausses

« Utilisation des opérateurs logiques », page 664.

Comparer les bits dans des valeurs « Utilisation d’opérateurs sur bits », page 665.

660 Publication 1756-RM003K-FR-P – Juillet 2008

Page 661: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Programmation en texte structuré Annexe C

Utilisation d’opérateurs et de fonctions arithmétiques

Vous pouvez combiner plusieurs opérateurs et fonctions dans des expressions arithmétiques.

Les opérateurs arithmétiques calculent de nouvelles valeurs.

Les fonctions arithmétiques effectuent des opérations mathématiques. Spécifiez une constante, un point non booléen ou une expression pour la fonction.

Pour Utilisez cet opérateur Type de données optimal

additionner + DINT, REAL

soustraire/négation – DINT, REAL

multiplier * DINT, REAL

exposant (x à la puissance y) ** DINT, REAL

diviser / DINT, REAL

modulo MOD DINT, REAL

Pour Utilisez cette fonction Type de données optimal

valeur absolue ABS (numeric_expression) DINT, REAL

cosinus d’arc ACOS (numeric_expression) REAL

sinus d’arc ASIN (numeric_expression) REAL

tangente d’arc ATAN (numeric_expression) REAL

cosinus COS (numeric_expression) REAL

radians en degrés DEG (numeric_expression) DINT, REAL

logarithme naturel LN (numeric_expression) REAL

logarithme décimal LOG (numeric_expression) REAL

degrés en radians RAD (numeric_expression) DINT, REAL

sinus SIN (numeric_expression) REAL

racine carrée SQRT (numeric_expression) DINT, REAL

tangente TAN (numeric_expression) REAL

troncation TRUNC (numeric_expression) DINT, REAL

Publication 1756-RM003K-FR-P – Juillet 2008 661

Page 662: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Annexe C Programmation en texte structuré

Par exemple :

Utilisation d’opérateurs relationnels

Les opérateurs relationnels comparent deux valeurs ou chaînes pour fournir un résultat vrai ou faux. Le résultat d’une opération relationnelle est une valeur BOOL :

Utilisez les opérateurs relationnels suivants :

Utilisez ce format EXEMPLE

Pour cette situation Vous écrivez

valeur1 opérateur valeur2 SI gain_4 et gain_4_adj sont des points DINT et que votre spécification indique : « Ajouter 15 à gain_4 et stocker le résultat dans gain_4_adj ».

gain_4_adj := gain_4+15;

opérateur valeur1 Si alarme et alarme_haute sont des points DINT et que votre spécification indique : « Négation de alarme_haute et stocker le résultat dans alarme ».

alarme:= -alarme_haute;

fonction(numérique_expression) Si surcourse et surcourse_POS sont des points DINT et que votre spécification indique : « Calculer la valeur absolue de surcourse et stocker le résultat dans surcourse_POS ».

surcourse_POS := ABS(surcourse);

valeur1 opérateur (fonction((valeur2+valeur3)/2)

Si réglage et position sont des points DINT et capteur1 et capteur2 sont des points REAL et que votre spécification indique : « Trouver la valeur absolue de la moyenne de capteur1 et de capteur2, ajouter le réglage, et stocker le résultat dans position ».

position := réglage+ ABS((capteur1+ capteur2)/2);

Si la comparaison est Le résultat est

vrai 1

faux 0

Pour cette comparaison Utilisez cet opérateur Type de données optimal

égalité = DINT, REAL, chaîne

inférieur < DINT, REAL, chaîne

inférieur ou égal <= DINT, REAL, chaîne

supérieur > DINT, REAL, chaîne

supérieur ou égal >= DINT, REAL, chaîne

différent <> DINT, REAL, chaîne

662 Publication 1756-RM003K-FR-P – Juillet 2008

Page 663: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Programmation en texte structuré Annexe C

Par exemple :

Evaluation des chaînes

Les valeurs hexadécimales des caractères ASCII déterminent si une chaîne est inférieure ou supérieure à une autre chaîne.

• Lorsque les deux chaînes sont triées comme dans un répertoire téléphonique, l’ordre des chaînes détermine laquelle est supérieure.

• Les chaînes sont égales si leurs caractères se correspondent.

• Les caractères sont sensibles à la casse. « A » ($41) en majuscule n’est pas égal à « a » ($61) en minuscule.

Pour trouver la valeur décimale et le code hexadécimal d’un caractère, reportez-vous à la dernière page de ce manuel.

Utilisez ce format EXEMPLE

Pour cette situation Vous écrivez

valeur1 opérateur valeur2 Si temp est un point DINT et votre spécification indique : « Si temp est inférieur à 100° alors… ».

IF temp<100 THEN...

pointchaîne1 opérateur pointchaîne2

Si code_barres et dest sont des points de chaîne et que votre spécification indique : « Si code_barres est égal à dest alors… ».

IF code_barres=dest THEN...

car1 opérateur car2

Pour entrer un caractère ASCII directement dans l’expression, entrez la valeur décimale du caractère.

Si code_barres est un point de chaîne et que votre spécification indique : « Si code_barres.DATA[0] est égale à ‘A’ alors… ».

IF code_barres.DATA[0]=65 THEN...

tag_bool := expressions_bool

Si compteur et longueur sont des points DINT, terminé est un point BOOL, et que votre spécification indique : « Si compteur et supérieur ou égal à longueur, vous avez fini de compter ».

terminé := (compteur >= longueur);

Caractères ASCII Codes Hex

1ab $31$61$62

1b $31$62

A $41

AB $41$42

B $42

a $61

ab $61$62

supérieur

inférieur

AB < B

a > B

Publication 1756-RM003K-FR-P – Juillet 2008 663

Page 664: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Annexe C Programmation en texte structuré

Utilisation des opérateurs logiques

Les opérateurs logiques vous permettent de vérifier si plusieurs conditions sont vraies ou fausses. Le résultat d’une opération logique est une valeur BOOL :

Utilisez les opérateurs logiques suivants :

Par exemple :

Si la comparaison est Le résultat est

vrai 1

faux 0

Pour Utilisez cet opérateur Type de données

ET logique &, AND BOOL

OU logique OR BOOL

OU exclusif logique XOR BOOL

complément logique NOT BOOL

Utilisez ce format EXEMPLE

Pour cette situation Vous écrivez

pointBOOL Si photoeye est un point BOOL et votre spécification indique : « Si photoeye est activé alors… ».

IF photoeye THEN...

NON PointBOOL Si photoeye est un point BOOL et votre spécification indique : « Si photoeye est désactivé alors… ».

IF NOT photoeye THEN...

expression1 & expression2 Si photoeye est un point BOOL, temp est un point DINT et que votre spécification indique : « Si photoeye est activé et temp est inférieur à 100° alors… ».

IF photoeye & (temp<100) THEN...

expression1 OU expression2 Si photoeye est un point BOOL, temp est un point DINT et que votre spécification indique : « Si photoeye est activé ou temp est inférieur à 100° alors… ».

IF photoeye OR (temp<100) THEN...

expression1 OU exclusif expression2

Si photoeye1 et photoeye2 sont des points BOOL et votre spécification indique : « Si :

• photoeye1 est activé pendant que photoeye2 est désactivé ou

• photoeye1 est désactivé pendant que photoeye2 est activé

alors… ».

IF photoeye1 XOR photoeye2 THEN...

pointBOOL := expression1 & expression2

Si photoeye1 et photoeye2 sont des points BOOL, ouvrir est un point BOOL, et votre spécification indique : « Si photoeye1 et photoeye2 sont activés, régler ouvrir sur vrai ».

open := photoeye1 & photoeye2;

664 Publication 1756-RM003K-FR-P – Juillet 2008

Page 665: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Programmation en texte structuré Annexe C

Utilisation d’opérateurs sur bits

Les opérateurs sur bits manipulent les bits dans une valeur sur la base de deux valeurs.

Par exemple :

Déterminer l’ordre d’exécution

Les opérations que vous écrivez dans une expression sont exécutées dans un ordre défini, pas nécessairement de gauche à droite.

• Les opérations d’ordre identique sont effectuées de gauche à droite.

• Si une expression contient plusieurs opérateurs ou fonctions, regroupez les conditions entre parenthèses « ( ) ». Ceci permet d’assurer l’ordre d’exécution correct et facilite la lecture de l’expression.

Pour Utilisez cet opérateur Type de données optimal

ET sur bits &, AND DINT

OU sur bits OR DINT

OU exclusif sur bits XOR DINT

complément sur bits NOT DINT

Utilisez ce format EXEMPLE

Pour cette situation Vous écrivez

valeur1 opérateur valeur2 Si entrée1, entrée2 et résultat1 sont des points DINT et que votre spécification indique : « Calculer le résultat sur bits de entrée1 et entrée2. Stocker le résultat dans résultat1 ».

résultat1 := entrée1 AND entrée2;

Ordre Opération

1. ()

2. fonction (…)

3. **

4. − (négation)

5. NOT

6. *, /, MOD

7. +, – (soustraction)

8. <, <=, >, >=

9. =, <>

10. &, AND

11. XOR

12. OR

Publication 1756-RM003K-FR-P – Juillet 2008 665

Page 666: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Annexe C Programmation en texte structuré

Instructions Les déclarations de texte structuré peuvent également être des instructions. Voir le tableau de repérage des instructions au début de ce manuel pour la liste des instructions disponibles en texte structuré. Une instruction de texte structuré est exécutée chaque fois qu’elle est scrutée. Une instruction de texte structuré dans une structure est exécutée chaque fois que les conditions de la structure sont vraies. Si les conditions de la structure sont fausses, les expressions dans la structure ne sont pas scrutées. Il n’y a pas d’état de ligne ou de transition d’état qui déclenche l’exécution.

Ceci diffère des instructions de bloc fonctionnel qui utilisent EnableIn pour déclencher l’exécution. Les instructions de texte structuré sont exécutées comme si EnableIn était toujours activé.

Ceci diffère également des instructions en logique à relais qui utilisent l’état d’entrée de la ligne pour déclencher l’exécution. Certaines instructions de logique à relais sont exécutées uniquement lorsque l’état d’entrée de la ligne passe de faux à vrai. Ce sont des instructions de logique à relais de transition. En texte structuré, les instructions sont exécutées chaque fois qu’elles sont scrutées, à moins de pré-conditionner l’exécution de l’instruction en texte structuré.

Par exemple, l’instruction ABL est une instruction de transition en logique à relais. Dans cet exemple, l’instruction ABL n’est exécutée que lors d’une scrutation quand tag_xic passe de désactivé à activé. L’instruction ABL n’est pas exécutée lorsque tag_xic reste activé ou lorsque tag_xic est désactivé.

En texte structuré, si vous écrivez cet exemple ainsi :

IF tag_xic THEN ABL(0,serial_control);

END_IF;

l’instruction ABL est exécutée à chaque scrutation pour laquelle tag_xic est activé, pas uniquement lorsque tag_xic passe de désactivé à activé.

666 Publication 1756-RM003K-FR-P – Juillet 2008

Page 667: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Programmation en texte structuré Annexe C

Si vous voulez que l’instruction ABL soit exécutée uniquement lorsque tag_xic passe de désactivé à activé, vous devez conditionner l’instruction de texte structuré. Utilisez une impulsion pour déclencher l’exécution.

Structures Les structures peuvent être programmées individuellement ou imbriquées dans d’autres structures.

Certains mots-clés sont réservés à une utilisation ultérieure

Les structures suivantes ne sont pas disponibles :

• GOTO (aller à)

• REPEAT (répéter)

Le logiciel RSLogix 5000 ne vous autorisera pas à les utiliser comme noms de point ou structures.

osri_1.InputBit := tag_xic;

OSRI(osri_1);

IF (osri_1.OutputBit) THEN

ABL(0,serial_control);

END_IF;

Si vous voulez Utilisez cette structure Disponible dans ces langages Voir page

exécuter une action si ou quand une condition spécifique se produit

IF...THEN (si...alors)

texte structuré 668

sélectionner une action à exécuter sur la base d’une valeur numérique

CASE...OF (cas...de)

texte structuré 671

exécuter une action un certain nombre de fois avant l’exécution de toute autre action

FOR...DO (pour...faire)

texte structuré 674

continuer à exécuter une action tant que certains conditions sont vraies

WHILE...DO (pendant...faire)

texte structuré 677

continuer à exécuter une action jusqu’à ce qu’une condition soit vraie

REPEAT...UNTIL (répéter...jusqu’à)

texte structuré 680

Publication 1756-RM003K-FR-P – Juillet 2008 667

Page 668: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Annexe C Programmation en texte structuré

IF...THEN (si...alors) Utilisez IF…THEN pour exécuter une action si ou quand des conditions spécifiques se produisent.

Opérandes :

Texte structuré

Description : La syntaxe est :

Pour utiliser ELSIF ou ELSE, observez les recommandations suivantes :

1. Pour sélectionner parmi plusieurs groupes d’expressions possibles, ajoutez une ou plusieurs expressions ELSIF.

• Chaque ELSIF représente un chemin alternatif.

• Spécifiez autant de chemins ELSIF que nécessaire.

• L’automate exécute le la première structure IF ou ELSIF vraie et saute le reste des structures ELSIF et ELSE.

2. Pour exécuter une action lorsque toutes les conditions IF ou ELSIF sont fausses, ajoutez une structure ELSE.

Opérande Type Format Entrez

expression_booléenne

BOOL point

expression

Point ou expression BOOL qui a pour résultat une valeur BOOL (expression BOOL)

IF bool_expression THEN

<statement>;

END_IF;

IF bool_expression1 THEN

<déclaration >; expression à exécuter quant bool_expression1 est vrai

.

.

.

facultatifELSIF bool_expression2 THEN

<déclaration>; expression à exécuter quant bool_expression2 est vrai

.

.

.

facultatifELSE

<déclaration>; expressions à exécuter quant les deux expressions sont fausses

.

.

.

END_IF;

668 Publication 1756-RM003K-FR-P – Juillet 2008

Page 669: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Programmation en texte structuré Annexe C

Le tableau suivant récapitule différentes combinaisons de IF, THEN, ELSIF et ELSE.

Indicateurs d’état arithmétique Non affectés

Conditions d’erreur : Aucune

Exemple 1 : IF…THEN (si...alors)

Exemple 2 : IF…THEN…ELSE (si...alors...autrement)

Le symbole [:=] indique à l’automate d’effacer voyant lorsque l’automate :

• passe en mode Exécution ;

• quitte l’étape d’un SFC si vous configurez le SFC pour Automatic reset (remise à zéro automatique). (Ceci ne s’applique que si vous intégrez l’affectation dans l’action de l’étape ou si vous utilisez l’action pour appeler un sous-programme de texte structuré via une instruction JSR.)

Si vous voulez Et Utilisez cette structure

exécuter une action si ou quand des conditions sont vraies

ne rien faire si les conditions sont fausses

IF…THEN (si...alors)

exécuter une autre action si les conditions sont fausses

IF…THEN…ELSE (si...alors...autrement)

choisir parmi des expressions alternatives (ou groupes d’expressions) sur la base de conditions d’entrée

ne rien faire si les conditions sont fausses

IF…THEN…ELSIF (si...alors...autrement si)

affecter des expressions par défaut si toutes les conditions sont fausses

IF…THEN…ELSIF…ELSE (si...alors...autrement si...autrement)

Si vous voulez Entrez ce texte structuré

SI rebuts > 3 alors IF rebuts > 3 THEN

convoyeur = désactivé (0) convoyeur := 0;

alarme = activée (1) alarme := 1;

END_IF;

Si vous voulez Entrez ce texte structuré

Si contact de sens de convoyeur = avance (1) alors IF sens_convoyeur THEN

voyant = désactivé voyant := 0;

Autrement voyant = activé ELSE

voyant [:=] 1;

END_IF;

Publication 1756-RM003K-FR-P – Juillet 2008 669

Page 670: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Annexe C Programmation en texte structuré

Exemple 3 : IF…THEN…ELSIF (si...alors...autrementsi)

Le symbole [:=] indique à l’automate de désactiver Arrivée.Sucre lorsque l’automate :

• passe en mode Exécution ;

• quitte l’étape d’un SFC si vous configurez le SFC pour Automatic reset (remise à zéro automatique). (Ceci ne s’applique que si vous intégrez l’affectation dans l’action de l’étape ou si vous utilisez l’action pour appeler un sous-programme de texte structuré via une instruction JSR.)

Exemple 4 : IF…THEN…ELSIF…ELSE (si...alors...autrementsi...autrement)

Si vous voulez Entrez ce texte structuré

Si détecteur de limite basse de sucre = bas (activé) et détecteur de limite haute de sucre = non haut (activé) alors

IF Sucre.Bas & Sucre.Haut THEN

vanne d’arrivée = ouvrir (activé) Arrivée.Sucre [:=] 1;

Jusqu’à détecteur de limite haute de sucre = haut (désactivé)

ELSIF NOT(Sucre.Haut) THEN

Arrivée.Sucre := 0;

END_IF;

Si vous voulez Entrez ce texte structuré

Si température de réservoir > 100 IF temp.réservoir > 200 THEN

alors pompe = lente pompe.rapide :=1; pompe.lente :=0; arrêt.pompe :=0;

Si température de réservoir > 200 ELSIF temp.réservoir > 100 THEN

alors pompe = rapide pompe.rapide :=0; pompe.lente :=1; arrêt.pompe :=0;

autrement pompe = désactivée ELSE

pompe.rapide :=0; pompe.lente :=0; arrêt.pompe :=1;

END_IF;

670 Publication 1756-RM003K-FR-P – Juillet 2008

Page 671: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Programmation en texte structuré Annexe C

CASE...OF (cas...de) Utilisez CASE pour sélectionner une action à exécuter sur la base d’une valeur numérique.

Opérandes :

Texte structuré

Description : La syntaxe est :

Opérande Type Format Entrez

numeric_

expression

SINT

INT

DINT

REAL

point

expression

Point ou expression qui a pour résultat un nombre (expression numérique)

selector SINT

INT

DINT

REAL

immédiat Même type que numeric_expression

IMPORTANT Si vous utilisez des valeurs REAL, utilisez une plage de valeurs pour un sélecteur ; ceci parce qu’il est plus probable que la valeur REAL soit une plage de valeurs plutôt qu’une correspondance exacte à une valeur spécifique.

CASE numeric_expression OF

selector1: statement;

selectorN: statement;

ELSE

statement;

END_CASE;

CASE numeric_expression OF

spécifiez autant devaleurs de sélecteur

alternatives (chemins)que nécessaire

selector1 : <déclaration>;...

expressions à exécuter lorsque numeric_expression = selector1

selector2 : <déclaration>;...

expressions à exécuter lorsque numeric_expression = selector2

selector3 : <déclaration>;...

expressions à exécuter lorsque numeric_expression = selector3

facultatif

ELSE

<déclaration>;...

expressions à exécuter lorsque numeric_expression ≠ tout sélecteur

END_CASE;

Publication 1756-RM003K-FR-P – Juillet 2008 671

Page 672: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Annexe C Programmation en texte structuré

Voir le tableau de la page suivante pour les valeurs de sélecteur valables.

La syntaxe pour entrer les valeurs du sélecteur est :

La structure CASE est similaire à une expression de détecteur en langage de programmation C ou C++. Cependant, avec la structure CASE, l’automate exécute uniquement les expressions qui sont associées avec la première valeur de sélecteur correspondante. L’exécution est toujours interrompue après les expressions de ce sélecteur et passe à l’expression END_CASE.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur : Aucune

Lorsque le sélecteur est Entrez

une valeur valeur: déclaration

plusieurs valeurs distinctes valeur1, valeur2, valeurN : <déclaration>

Utilisez une virgule (,) pour séparer chaque valeur.

une plage de valeurs valeur1..valeurN : <déclaration>

Utilisez deux points (..) pour identifier la plage.

des valeurs distinctes plus une plage de valeurs

valeura, valeurb, valeur1..valeurN : <déclaration>

672 Publication 1756-RM003K-FR-P – Juillet 2008

Page 673: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Programmation en texte structuré Annexe C

EXEMPLE

Le symbole [:=] indique à l’automate d’effacer également les points d’orifice lorsque l’automate :

• passe en mode Exécution ;

• quitte l’étape d’un SFC si vous configurez le SFC pour Automatic reset (remise à zéro automatique). (Ceci ne s’applique que si vous intégrez l’affectation dans l’action de l’étape ou si vous utilisez l’action pour appeler un sous-programme de texte structuré via une instruction JSR.)

Si vous voulez Entrez ce texte structuré

Si numéro de recette = 1 alors CASE numéro_recette OF

Ingrédient A orifice 1 = ouvrir (1) 1: Ingrédient_A.Orifice_1 :=1;

Ingrédient B orifice 4 = ouvrir (1) Ingrédient_B.Orifice_4 :=1;

Si numéro de recette = 2 ou 3 alors 2,3: Ingrédient_A.Orifice_4 :=1;

Ingrédient A orifice 4 = ouvrir (1) Ingrédient_B.Orifice_2 :=1;

Ingrédient B orifice 2 = ouvrir (1)

Si numéro de recette = 4, 5, 6 ou 7 alors 4..7: Ingrédient_A.Orifice_4 :=1;

Ingrédient A orifice 4 = ouvrir (1) Ingrédient_B.Orifice_2 :=1;

Ingrédient B orifice 2 = ouvrir (1)

Si numéro de recette = 8, 11, 12 ou 13 alors 8,11..13 Ingrédient_A.Orifice_1 :=1;

Ingrédient A orifice 1 = ouvrir (1) Ingrédient_B.Orifice_4 :=1;

Ingrédient B orifice 4 = ouvrir (1)

Autrement tous orifices = fermé (0) ELSE

Ingrédient_A.Orifice_1 [:=]0;

Ingrédient_A.Orifice_4 [:=]0;

Ingredient_B.Outlet_2 [:=]0;

Ingredient_B.Outlet_4 [:=]0;

END_CASE;

Publication 1756-RM003K-FR-P – Juillet 2008 673

Page 674: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Annexe C Programmation en texte structuré

FOR…DO (pour...faire) Utilisez la boucle FOR…DO pour exécuter une action un certain nombre de fois avant d’exécuter une autre action.

Opérandes :

Texte structuré

Opérande Type Format Description

count SINT

INT

DINT

point point dans lequel stocker la position du compteur lorsque FOR…DO est exécuté

initial_ value

SINT

INT

DINT

point

expression

immédiat

doit produire un nombre

spécifie la valeur initiale du compteur

final_ value

SINT

INT

DINT

point

expression

immédiat

spécifie la valeur finale du compteur, qui détermine quand sortir de la boucle

increment SINT

INT

DINT

point

expression

immédiat

(facultatif) nombre d’incréments à ajouter à chaque passage dans la boucle

Si vous ne spécifiez pas d’incrément, l’augmentation est de 1.

FOR count:= initial_value TO final_value BY increment DO

<statement>;

END_FOR;

IMPORTANT Assurez-vous de ne pas passer dans la boucle trop de fois pendant une scrutation.

• L’automate n’exécute aucune autre expression du sous-programme tant qu’il n’a pas terminé la boucle.

• Si le temps nécessaire pour terminer la boucle est supérieur au temporisateur du chien de garde pour la tâche, un défaut majeur se produit.

• Prenez en considération l’utilisation d’une structure différente, comme IF...THEN.

674 Publication 1756-RM003K-FR-P – Juillet 2008

Page 675: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Programmation en texte structuré Annexe C

Description : La syntaxe est :

Les schémas suivants montrent comment une boucle FOR...DO est exécutée et comment une déclaration EXIT quitte la boucle prématurément.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur :

FOR count := initial_value

TO final_value

facultatif { BY increment Si vous ne spécifiez pas d’incrément, la boucle augmente de 1.

DO

<déclaration>;

facultatif

IF bool_expression THEN

EXIT; S’il existe des conditions dans lesquelles vous voulez quitter la boucle de façon anticipée, utilisez d’autres expressions, comme une structure IF...THEN, pour conditionner une déclaration EXIT.

END_IF;

END_FOR;

déclaration 1déclaration 2déclaration 3déclaration 4…

Terminé x fois ?

non

oui

reste du sous-programme

déclaration 1déclaration 2déclaration 3déclaration 4…Quitter ?

Terminé x fois ?

non

oui

reste du sous-programme

oui

non

La boucle FOR…DO est exécutée un nombre spécifique de fois.

Pour arrêter la boucle avant que le compteur atteigne la dernière valeur, utilisez une déclaration EXIT.

Un défaut majeur se produit si Type de défaut Code de défaut

la structure reste en boucle trop longtemps

6 1

Publication 1756-RM003K-FR-P – Juillet 2008 675

Page 676: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Annexe C Programmation en texte structuré

Exemple 1 :

Exemple 2 :

Si vous voulez Entrez ce texte structuré

Effacer les bits 0 à 31 dans un tableau de BOOL :

1. Mettez le point subscript à 0.

2. Effacez array[subscript]. Par exemple, lorsque subscript = 5, effacez array[5].

3. Ajoutez 1 à subscript.

4. Si subscript est ≤ à 31, répétez 2 et 3.

Autrement, arrêtez.

For subscript:=0 to 31 by 1 do

array[subscript] := 0;

END_FOR;

Si vous voulez Entrez ce texte structuré

Un type de données utilisateur (structure) stocke les informations suivantes sur un élément dans votre inventaire :

• Identifiant de code-barres de l’élément (type de données chaîne)

• Quantité de l’élément en stock (type de données DINT)

Un tableau de la structure ci-dessus contient un élément pour chaque élément différent dans votre inventaire. Vous devez rechercher un produit spécifique dans le tableau (utilisez sont code-barres) et déterminer la quantité en stock.

1. Obtenez la taille (nombre d’éléments) du tableau Inventory et stockez le résultat dans Inventory_Items (point DINT).

2. Mettez le point position à 0.

3. Si Barcode correspond à l’identifiant d’un élément dans le tableau, alors :

a. Réglez le point Quantity = Inventory[position].Qty. Ceci produit la quantité d’élément en stock.

b. Arrêtez.

Barcode est un point de chaîne qui stocke le code-barres de l’élément que vous recherchez. Par exemple, lorsque position = 5, comparez Barcode à Inventory[5].ID.

4. Ajoutez 1 à position.

5. Si position est ≤ à (Inventory_Items –1), répétez 3 et 4. Etant donné que les numéros d’éléments commencent à 0, le dernier élément est le nombre d’éléments dans le tableau moins 1.

Autrement, arrêtez.

SIZE(Inventory,0,Inventory_Items);

For position:=0 to Inventory_Items – 1 do

If Barcode = Inventory[position].ID then

Quantity := Inventory[position].Qty;

EXIT;

END_IF;

END_FOR;

676 Publication 1756-RM003K-FR-P – Juillet 2008

Page 677: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Programmation en texte structuré Annexe C

WHILE…DO (pendant...faire)

Utilisez la boucle WHILE…DO pour continuer à exécuter une action tant que certaines conditions sont vraies.

Opérandes :

Texte structuré

Description : La syntaxe est :

Opérande Type Format Entrez

expression_booléenne

BOOL point

expression

point ou expression BOOL qui a pour résultat une valeur BOOL

WHILE bool_expression DO

<statement>;

END_WHILE;

IMPORTANT Assurez-vous de ne pas passer dans la boucle trop de fois pendant une scrutation.

• L’automate n’exécute aucune autre expression du sous-programme tant qu’il n’a pas terminé la boucle.

• Si le temps nécessaire pour terminer la boucle est supérieur au temporisateur du chien de garde pour la tâche, un défaut majeur se produit.

• Prenez en considération l’utilisation d’une structure différente, comme IF...THEN.

WHILE bool_expression1 DO

<déclaration>; expression à exécuter pendant que bool_expression1 est vrai

facultatif

IF bool_expression2 THEN

EXIT; S’il existe des conditions dans lesquelles vous voulez quitter la boucle de façon anticipée, utilisez d’autres expressions, comme une structure IF...THEN, pour conditionner une déclaration EXIT.

END_IF;

END_WHILE;

Publication 1756-RM003K-FR-P – Juillet 2008 677

Page 678: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Annexe C Programmation en texte structuré

Les schémas suivants montrent comment une boucle WHILE...DO est exécutée et comment une déclaration EXIT quitte la boucle prématurément.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur :

Exemple 1 :

Lorsque bool_expression est vrai, l’automate exécute uniquement les expressions de la boucle WHILE…DO.

Pour arrêter la boucle avant que les conditions ne soient vraies, utilisez une déclaration EXIT.

déclaration 1déclaration 2déclaration 3déclaration 4…Quitter ?

expression BOOL

vrai

faux

reste du sous-programme

oui

non

déclaration 1déclaration 2déclaration 3déclaration 4…

expression BOOL

vrai

faux

reste du sous-programme

Un défaut majeur se produit si Type de défaut Code de défaut

la structure reste en boucle trop longtemps

6 1

Si vous voulez que Entrez ce texte structuré

la boucle WHILE...DO évalue d’abord ses conditions. Si les conditions sont vraies, l’automate exécute les déclarations de la boucle.

Ceci diffère de la boucle REPEAT...UNTIL parce que la boucle REPEAT...UNTIL exécute les déclarations de la structure, puis détermine si les conditions sont vraies avant d’exécuter les déclarations à nouveau. Les déclarations d’une boucle REPEAT...UNTIL sont toujours exécutées au moins une fois. Les déclarations dans une boucle WHILE...DO peuvent ne jamais être exécutées.

pos := 0;

While ((pos <= 100) & structarray[pos].value <> targetvalue)) do

pos := pos + 2;

String_tag.DATA[pos] := SINT_array[pos];

END_WHILE;

678 Publication 1756-RM003K-FR-P – Juillet 2008

Page 679: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Programmation en texte structuré Annexe C

Exemple 2 :

Si vous voulez Entrez ce texte structuré

Déplacer des caractères ASCII d’un tableau SINT vers un point de chaîne. (Dans un tableau SINT, chaque élément contient un caractère.) Arrêtez lorsque vous atteignez le retour chariot.

1. Mettez Element_number à 0.

2. Comptez le nombre d’éléments dans SINT_array (tableau qui contient les caractères ASCII) et stockez le résultat dans SINT_array_size (point DINT).

3. Si le caractère SINT_array[element_number] = 13 (valeur décimale du retour chariot), alors arrêtez.

4. Réglez String_tag[element_number] = le caractère à SINT_array[element_number].

5. Ajoutez 1 à element_number. Ceci permet à l’automate de vérifier le caractère suivant dans SINT_array.

6. Activez le membre Longueur de String_tag = element_number. (Ceci enregistre le nombre de caractères dans String_tag jusque là.)

7. Si element_number = SINT_array_size, alors arrêtez. (Vous êtes à la fin du tableau et il ne contient pas de retour chariot.)

8. Allez à 3.

element_number := 0;

SIZE(SINT_array, 0, SINT_array_size);

While SINT_array[element_number] <> 13 do

String_tag.DATA[element_number] := SINT_array[element_number];

element_number := element_number + 1;

String_tag.LEN := element_number;

If element_number = SINT_array_size then

EXIT;

END_IF;

END_WHILE;

Publication 1756-RM003K-FR-P – Juillet 2008 679

Page 680: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Annexe C Programmation en texte structuré

REPEAT…UNTIL (répéter...jusqu’à)

Utilisez la boucle REPEAT…UNTIL pour continuer l’exécution d’une action jusqu’à ce que les conditions soient vraies.

Opérandes :

Texte structuré

Description : La syntaxe est :

Opérande Type Format Entrez

expression_booléenne

BOOL point

expression

Point ou expression BOOL qui a pour résultat une valeur BOOL (expression BOOL)

REPEAT

<déclaration>;

UNTIL bool_expression

END_REPEAT;

IMPORTANT Assurez-vous de ne pas passer dans la boucle trop de fois pendant une scrutation.

• L’automate n’exécute aucune autre expression du sous-programme tant qu’il n’a pas terminé la boucle.

• Si le temps nécessaire pour terminer la boucle est supérieur au temporisateur du chien de garde pour la tâche, un défaut majeur se produit.

• Prenez en considération l’utilisation d’une structure différente, comme IF...THEN.

REPEAT

<déclaration>; expression à exécuter pendant que bool_expression1 est faux

facultatif

IF bool_expression2 THEN

EXIT; S’il existe des conditions dans lesquelles vous voulez quitter la boucle de façon anticipée, utilisez d’autres déclarations, comme une structure IF...THEN, pour conditionner une déclaration EXIT.

END_IF;

UNTIL bool_expression1

END_REPEAT;

680 Publication 1756-RM003K-FR-P – Juillet 2008

Page 681: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Programmation en texte structuré Annexe C

Les schémas suivants montrent comment une boucle REPEAT...UNTIL est exécutée et comment une structure EXIT quitte la boule prématurément.

Indicateurs d’état arithmétique : Non affectés

Conditions d’erreur :

Exemple 1 :

Lorsque bool_expression est faux, l’automate exécute uniquement les expressions de la boucle REPEAT…UNTIL.

Pour arrêter la boucle avant que les conditions ne soient fausses, utilisez une déclaration EXIT.

déclaration 1déclaration 2déclaration 3déclaration 4…

expression BOOL

faux

vrai

reste du sous-programmeexpression BOOL

faux

vrai

reste du sous-programme

déclaration 1déclaration 2déclaration 3déclaration 4…Quitter ?

oui

non

Un défaut majeur se produit si Type de défaut Code de défaut

la structure se reboucle trop longtemps 6 1

Si vous voulez Entrez ce texte structuré

La boucle REPEAT...UNTIL exécute les déclarations de la structure, puis détermine si les conditions sont vraies avant de répéter l’exécution des déclarations.

Ceci diffère de la boucle WHILE...DO parce que la boucle WHILE...DO évalue d’abord ses conditions. Si les conditions sont vraies, l’automate exécute les déclarations de la boucle. Les déclarations d’une boucle REPEAT...UNTIL sont toujours exécutées au moins une fois. Les déclarations dans une boucle WHILE...DO peuvent ne jamais être exécutées.

pos := -1;

REPEAT

pos := pos + 2;

UNTIL ((pos = 101) OR (structarray[pos].value = targetvalue))

END_REPEAT;

Publication 1756-RM003K-FR-P – Juillet 2008 681

Page 682: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Annexe C Programmation en texte structuré

Exemple 2 :

Si vous voulez Entrez ce texte structuré

Déplacer des caractères ASCII d’un tableau SINT vers un point de chaîne. (Dans un tableau SINT, chaque élément contient un caractère.) Arrêtez lorsque vous atteignez le retour chariot.

1. Mettez Element_number à 0.

2. Comptez le nombre d’éléments dans SINT_array (tableau qui contient les caractères ASCII) et stockez le résultat dans SINT_array_size (point DINT).

3. Réglez String_tag[element_number] = le caractère à SINT_array[element_number].

4. Ajoutez 1 à element_number. Ceci permet à l’automate de vérifier le caractère suivant dans SINT_array.

5. Activez le membre Longueur de String_tag = element_number. (Ceci enregistre le nombre de caractères dans String_tag jusque là.)

6. Si element_number = SINT_array_size, alors arrêtez. (Vous êtes à la fin du tableau et il ne contient pas de retour chariot.)

7. Si le caractère SINT_array[element_number] = 13 (valeur décimale du retour chariot), alors arrêtez.

Autrement allez à 3.

element_number := 0;

SIZE(SINT_array, 0, SINT_array_size);

Repeat

String_tag.DATA[element_number] := SINT_array[element_number];

element_number := element_number + 1;

String_tag.LEN := element_number;

If element_number = SINT_array_size then

EXIT;

END_IF;

Until SINT_array[element_number] = 13

END_REPEAT;

682 Publication 1756-RM003K-FR-P – Juillet 2008

Page 683: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Programmation en texte structuré Annexe C

Commentaires Ajoutez des commentaires pour faciliter l’interprétation de votre texte structuré.

• Les commentaires vous permettent d’utiliser le langage courant pour décrire le fonctionnement du texte structuré.

• Les commentaires n’affectent pas l’exécution du texte structuré.

Pour ajouter des commentaires à votre texte structuré :

Pour ajouter un commentaire Utilisez l’un des formats suivants

sur une seul ligne //commentaire

(*commentaire*)

/*commentaire*/

à la fin d’une ligne de texte structuré

dans une ligne de texte structuré (*commentaire*)

/*commentaire*/

qui s’étend sur plus d’une ligne (*début du commentaire . . . fin du commentaire*)

/*début du commentaire . . . fin du commentaire*/

Publication 1756-RM003K-FR-P – Juillet 2008 683

Page 684: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Annexe C Programmation en texte structuré

Par exemple :

Format EXEMPLE

//commentaire Au début d’une ligne

//Vérifier la direction du tapis du convoyeur

IF sens_convoyeur THEN...

A la fin d’une ligne

ELSE //Si le convoyeur ne bouge pas, activer le voyant d’alarme

light := 1;

END_IF;

(*commentaire*) Orifice.Sucre[:=]1;(*ouvrir l’orifice d’arrivée*)

IF Sucre.Bas(*LS niveau bas*)& Sucre.Haut (*LS niveau haut*)THEN...

(*Commande la vitesse de la pompe de recirculation. La vitesse dépend de la température du réservoir.*)

IF temp.réservoir > 200 THEN...

/*commentaire*/ Origine.Sucre:=0;/*fermer l’orifice d’arrivée*/

IF code_barres=65 /*A*/ THEN...

/*Obtenir le nombre d’éléments dans le tableau Inventory et stocker la valeur dans le point Inventory_Items*/

SIZE(Inventory,0,Inventory_Items);

684 Publication 1756-RM003K-FR-P – Juillet 2008

Page 685: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Index

Aactivation d’interruption par

l’utilisateur 450activation de sortie 82actualiser la sortie 201addition 252affectation

caractère ASCII 659non rémanente 658rémanent 657

ajout d’écriture ASCII 583alarme TOR 30alarmes 499anticipation de vitesse 510arithmétique et logique

sur fichier 333ASCII

affectation de texte structuré 659attributs

conversion de types de données 629

valeurs immédiates 629attributs communs 629

conversion de types de données 629

valeurs immédiates 629

BBAND 316bas de casse 619BNOT 325BOR 319boucle de retour

schéma de bloc fonctionnel 641boucle non résolue

schéma de bloc fonctionnel 641BXOR 322

Ccache

connexion 173calculer 248caractères ASCII dans

la mémoire tampon 567CASE 671chaîne

évaluation dans le texte structuré 663

chaîne médiane 603chaîne vers DINT 608chaîne vers REAL 611chargement de séquenceur 424chargement FIFO 390chargement LIFO 402chevauchement

vér 195codes d’erreur

ASCII 562instruction MSG 152

codes produit 181

commande Programme/Opérateurprésentation 650

commentairestexte structuré 683

comparaison de bit de fichier 474comparer 206comptage dégressif 132comptage progressif 128comptage progressif/dégressif 136concaténation de chaîne 595conditions de dépassement 644configuration 159

instruction MSG 159instruction PID 496

connecteurschéma de bloc fonctionnel 637

connecteur de câble d’entrée 637connecteur de câble de sortie 637connexion

cache 173conversion de types de données 629conversion en DCB 550conversion en nombre entier 553copie 352copie synchrone 352cosinus 517cosinus d’arc 526

Ddécalage binaire à droite 386décalage binaire à gauche 382déchargement de FIFO 396déchargement LIFO 408déclenchement de tâ 460degré 544désactivation d’interruption par

l’utilisateur 450description

texte structuré 683détection de diagnostic 481déverrouillage de sortie 86différent de 242DINT vers chaîne 613division 261division modulo 266document

texte structuré 683

Eécart type 372écrire une valeur système 176écriture ASCII 588effacer 298effacer chaîne 597effacer la mémoire tampon ASCII

569égal à 211éléments

instruction SIZE 377entrée séquenceur 416ET booléen 316

685Publication 1756-RM003K-FR-P – Juillet 2008 685

Page 686: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Index

ET sur bits 304étiquette 430, 621, 625examiner si ouvert 80exponentiel 540expression

expression BOOLtexte structuré 659

expression numériquetexte structuré 659

ordre d’exécutiontexte structuré 665

texte structuréfonctions 661opérateurs arithmétiques 661opérateurs logiques 664opérateurs relationnels 662opérateurs sur bits 665présentation 659

expression BOOLtexte structuré 659

expression numérique 659expressions

formater 209, 250, 343, 349opérateurs valables 208, 250, 342,

349ordre des opérations 209, 251, 343,

350

Ffin temporaire 446fonctions

texte structuré 661FOR…DO 674

Hhaut de casse 617

IICON 637IF…THEN 668impulsion 88impulsion sur front descendant 94impulsion sur front descendant

avec entrée 99impulsion sur front montant 91Impulsion sur front montant avec

entrée 96indicateurs d’état arithmétique

dépassement 644inférieur 227inférieur ou égal 223insertion d’une chaîne 601instruction ABL 564instruction ABS 277instruction ACB 567instruction ACL 569instruction ACS 526instruction ADD 252

instruction AFI 452instruction AHL 571instruction ALMA 42instruction ALMD, instructions

d’alarmes et d’événementsALMD 30

instruction AND 304instruction ARD 575instruction ARL 579instruction ASCII

ABL 564ACB 567ACL 569AHL 571ARD 575ARL 579AWA 583AWT 588CONCAT 595DELETE 597DTOS 613FIND 599INSERT 601LOWER 619MID 603RTOS 615STOD 608STOR 611SWPB 300UPPER 617

instruction ASN 523instruction ATN 529instruction AVE 362instruction AWA 583instruction AWT 588instruction BRK 469instruction BSL 382instruction BSR 386instruction BTD 292instruction BTDT 295instruction CLR 298instruction CMP 206instruction CONCAT 595instruction COP 352instruction COS 517instruction CPS 352instruction CPT 248instruction CTD 132instruction CTU 128instruction CTUD 136instruction DDT

mode recherche 483opérandes 481

instruction de déclenchement de tâche événementielle 460

instruction de fin de transition 454instruction de pause SFC 456instruction de réinitialisation SFC

458instruction de sortie immédiate 201instruction DEG 544

686 Publication 1756-RM003K-FR-P – Juillet 2008

Page 687: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Index

instruction DELETE 597instruction DIV 261instruction DTOS 613instruction DTR 488instruction EOT 454instruction EQU 211instruction EVENT 460instruction FAL

mode de fonctionnement 328opérandes 333

instruction FBCmode recherche 476opérandes 474

instruction FFL 390instruction FFU 396instruction FIND 599instruction FLL 358instruction FOR 466instruction FRD 553instruction FSC

mode de fonctionnement 328opérandes 344

instruction GEQ 215instruction GRT 219instruction GSV

objets 179opérandes 176

instruction INSERT 601instruction IOT 201instruction JMP 430, 621, 625instruction JSR 432instruction JXR

structure CONTROL 444Instruction LBL 430instruction LBL 621, 625instruction LEQ 223instruction LES 227instruction LFL 402instruction LFU 408instruction LIM 231instruction LN 534instruction LOG 537instruction LOWER 619instruction MCR 448instruction MEQ 237instruction MID 603instruction MOD 266instruction MOV 283instruction MSG 159

codes d’erreur 152connexion cache 173méthode de communication 172opérandes 144recommandations de

programmation 175structure 144

instruction MUL 258instruction MVM 285instruction MVMT 288instruction NEG 274instruction NEQ 242instruction NON 313

instruction NOP 453instruction ONS 88instruction OR 307instruction OSF 94instruction OSFI 99instruction OSR 91instruction OSRI 96instruction OTE 82instruction OTL 84instruction OTU 86instruction PID

alarmes 499anticipation de vitesse 510configuration 496mise à l’échelle 499opérandes 491polarisation de sortie 510réglage 497zone morte 509

instruction RAD 547instruction RES 140Instruction RET 432instruction RET 470instruction RTO 112instruction RTOR 124instruction RTOS 615instruction SBR 432instruction SFP 456instruction SFR 458instruction SIN 514instruction SIZE 377instruction SQI 416instruction SQL 424instruction SQR 270instruction SRT 367instruction SSV

objets 179opérandes 176

instruction STOD 608instruction STOR 611instruction SUB 255instruction SWPB 300instruction TAN 520instruction TND 446instruction TOD 550instruction TOF 108instruction TOFR 120instruction TON 104instruction TONR 116instruction toujours faux 452instruction TRN 555instruction UID 450instruction UIE 450instruction UPPER 617instruction XIO 80instruction XOR 310instruction XPY 540instructions

alarmes et événements 29bit 77calculer 247commande de programme 429

Publication 1756-RM003K-FR-P – Juillet 2008 687

Page 688: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Index

comparer 205compteur 103conversion 543conversion ASCII 605conversion de chaîne 605conversion mathématique 543débogage 621décalage 381entrée/sortie 143logique 281manipulation de chaîne 593manipulation de chaîne ASCII 593mathématiques évoluées 533port série 559port série ASCII 559pour/rupture 465séquenceur 415spéciales 473tableautemporisateur 103transfert 281trigonométriques 513

instructions d’alarmes et d’événements

accès par le programme 70ALMA, alarme analogique 42configuration 62état d’alarme 69exécution d’alarme d’automate 73mise en mémoire tampon

d’alarmes 69suppression ou désactivation

d’alarmes 72texte du message 65

instructions d’entrée/de sortieGSV 176introduction 143IOT 201MSG 144SSV 176

instructions de calculABS 277ADD 252CPT 248DIV 261format d’expression 250, 343introduction 247MOD 266MUL 258NEG 274opérateurs valables 250, 342ordre des opérations 251, 343SQR 270SUB 255

instructions de commande de programme

AFI 452EOT 454EVENT 460

introduction 429JMP 430, 621, 625JSR 432LBL 430, 621, 625MCR 448NOP 453RET 432SBR 432TND 446UID 450UIE 450

instructions de comparaisonCMP 206EQU 211format d’expression 209, 349GEQ 215GRT 219introduction 205LEQ 223LES 227LIM 231MEQ 237NEQ 242opérateurs valables 208, 349ordre des opérations 209, 350

instructions de comptageCTD 132CTU 128CTUD 136introduction 103RES 140

instructions de conversionDEG 544FRD 553introduction 543RAD 547TOD 550TRN 555

instructions de conversion de chaîne

DTOS 613Introduction 605LOWER 619RTOS 615STOD 608STOR 611SWPB 300UPPER 617

instructions de conversion mathématique

DEG 544FRD 553introduction 543RAD 547TOD 550TRN 555

instructions de débogage 621instructions de décalage

BSL 382

688 Publication 1756-RM003K-FR-P – Juillet 2008

Page 689: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Index

BSR 386FFL 390FFU 396Introduction 381LFL 402LFU 408

instructions de fichier. Voir les instructions de tableau

instructions de manipulation de chaîne

CONCAT 595DELETE 597FIND 599INSERT 601introduction 593MID 603

instructions de tableauAVE 362BSL 382BSR 386COP 352CPS 352DDT 481décalage 381FAL 333FBC 474FFL 390FFU 396fichier/divers 327FLL 358FSC 344LFL 402LFU 408mode de fonctionnement 328RES 140séquenceur 415SIZE 377SQI 416SQL 424SQO 420SRT 367STD 372

instructions de temporisationIntroduction 103RES 140RTO 112RTOR 124TOF 108TOFR 120TON 104TONR 116

instructions de transfertBTD 292BTDT 295CLR 298introduction 281MOV 283MVM 285MVMT 288

instructions de transfert/logiquesBAND 316BNOT 325BOR 319BXOR 322

instructions du port sérieABL 564ACB 567ACL 569AHL 571ARD 575ARL 579AWA 583AWT 588Introduction 559

instructions logiquesAND 304Introduction 281NOT 313OR 307XOR 310

instructions mathématiques évoluées

introduction 533LN 534LOG 537XPY 540

instructions pour/ruptureBRK 469introduction 465pour 466RET 470

instructions séquenceursintroduction 415SQI 416SQL 424SQO 420

instructions spécialesDDT 481DTR 488FBC 474introduction 473PID 491SFP 456SFR 458

instructions STD 372instructions sur bit

introduction 77ONS 88OSF 94OSFI 99OSR 91OSRI 96OTE 82OTL 84OTU 86XIO 80

instructions trigonométriquesACS 526

Publication 1756-RM003K-FR-P – Juillet 2008 689

Page 690: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Index

ASN 523ATN 529COS 517introduction 513SIN 514TAN 520

IREF 637

Llecture ASCII 575ligne de lecture ASCII 579lignes d’échange ASCII 571limite 231lire une valeur système 176logarithme

décimal 537naturel 534

logarithme décimal 537logarithme naturel 534

Mmasqué égal à 237masques 489mélange de types de données 629message 144

connexion cache 173recommandations de

programmation 175mise à l’échelle 499mode de fonctionnement 328mode incrémental 331mode Numérique 329mode recherche 476, 483mode TOUT 328modes de temporisation 645moyenne 362multiplication 258

Nnégation 274NON booléen 325NON sur bits 313

Oobjet CONTROLLER 179objet CONTROLLERDEVICE 181objet CST 183objet DF1 184objet FAULTLOG 187objet MESSAGE 188objet MODULE 190objet MOTIONGROUP 191objet PROGRAM 192objet ROUTINE 193objet SERIALPORT 193objet TASK 195objet WALLCLOCKTIME 197

objetsCONTROLLER 179CONTROLLERDEVICE 181CST 183DF1 184FAULTLOG 187instruction GSV/SSV 179MESSAGE 188MODULE 190MOTIONGROUP 191PROGRAM 192ROUTINE 193SERIALPORT 193TASK 195WALLCLOCKTIME 197

OCON 637opérateurs 208, 250, 342, 349

ordre d’exécutiontexte structuré 665

opérateurs arithmétiquestexte structuré 661

opérateurs logiquestexte structuré 664

opérateurs mathématiquestexte structuré 661

opérateurs relationnelstexte structuré 662

opérateurs sur bitstexte structuré 665

ordre d’exécution 640expression en texte structuré 665

ordre des opérations 209, 251, 343, 350

OREF 637OU booléen 319OU exclusif booléen 322OU exclusif sur bits 310OU sur bits 307

Ppas d’opération 453permutation d’octet 300polarisation de sortie 510post-scrutation

texte structuré 658proportionnel, intégral et dérivé 491

Rracine carrée 270radians 547RAZ de commande principale 448REAL vers chaîne 615recherche et comparaison

de fichier 344rechercher chaîne 599rechercher une chaîne 599référence d’entrée 637référence de sortie 637

690 Publication 1756-RM003K-FR-P – Juillet 2008

Page 691: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Index

réglage 497réinitialisation 140remplir un fichier 358répartition champ de bits 292répartition champ de bits

avec cible 295REPEAT…UNTIL 680retour 432, 470rupture 469

Ssaut 430, 621, 625saut vers sous-programme 432schéma de bloc fonctionnel

choix des éléments 637créer une temporisation d’une

scrutation 643résolution d’une boucle 641résolution du flux de données entre

deux blocs 642sinus 514sinus d’arc 523sortie

activer ou désactiver le traitement de fin de tâche 195

actualiser immédiatement 201sortie séquenceur 420sous-programme 432soustraction 255SQO instruction 420status

TASK 195structure

texte structuré 667structure COMPARE 475, 482structure compteur 128, 132structure CONTROL 334, 344, 363,

367, 372, 382, 386, 391, 397, 402, 403, 409, 416, 420, 424, 444

structure de message 144structure FBD_BIT_FIELD_

DISTRIBUTE 295structure FBD_BOOLEAN_AND 316structure FBD_BOOLEAN_NOT 325structure FBD_BOOLEAN_OR 319structure FBD_BOOLEAN_XOR 322structure FBD_COMPARE 212, 216,

220, 224, 228, 243structure FBD_CONVERT 550, 553structure FBD_COUNTER 136structure FBD_LIMIT 232structure FBD_LOGICAL 305, 308,

311, 314structure FBD_MASKED_MOVE 288structure FBD_MASK_EQUAL 238structure FBD_MATH 253, 256, 259,

262, 267, 275, 541

structure FBD_MATH_ADVANCED 271, 278, 514, 518, 521, 523, 526, 529, 534, 538, 544, 547

structure FBD_ONESHOT 96, 99structure FBD_TIMER 116, 120, 124structure FBD_TRUNCATE 555structure PID 492structure RESULT 475, 482structure SERIAL_PORT_CONTROL

560, 562, 564, 567, 572, 576, 580, 584, 589

structure STRING 561, 594, 607structure temporisateur 104, 108,

112structures

chaîne 561, 594, 607COMPARE 475, 482compteur 128, 132CONTROL 334, 344, 363, 367, 372,

382, 386, 391, 397, 402, 403, 409, 416, 420, 424

FBD_BIT_FIELD_DISTRIBUTE 295FBD_BOOLEAN_AND 316FBD_BOOLEAN_NOT 325FBD_BOOLEAN_OR 319FBD_BOOLEAN_XOR 322FBD_COMPARE 212, 216, 220,

224, 228, 243FBD_CONVERT 550, 553FBD_COUNTER 136FBD_LIMIT 232FBD_LOGICAL 305, 308, 311, 314FBD_MASKED_MOVE 288FBD_MASK_EQUAL 238FBD_MATH 253, 256, 259, 262,

267, 275, 541FBD_MATH_ADVANCED 271, 278,

514, 518, 521, 523, 526, 529, 534, 538, 544, 547

FBD_ONESHOT 96, 99FBD_TIMER 116, 120, 124FBD_TRUNCATE 555instruction RES 140MESSAGE 144PID 492Résultat 475, 482SERIAL_PORT_CONTROL 560, 562,

564, 567, 572, 576, 580, 584, 589

STRING 561, 594, 607temporisateur 104, 108, 112

supérieur 219supérieur ou égal 215supposer que les données sont

disponible 641, 642, 643

Publication 1756-RM003K-FR-P – Juillet 2008 691

Page 692: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Index

Ttâche

déclenchement de tâche événementielle 460

déclencher via un point consommé 201

tâche événementielleconfigurer 195déclenchement via instruction

EVENT 460déclencher via un point consommé

201taille en éléments 377tangente 520tangente d’arc 529TASK

configurer par le programme 195surveiller 195

temporisateur à l’enclenchement 104

temporisateur à l’enclenchement avec RAZ 116

temporisateur au déclenchement 108

temporisateur au déclenchement avec RAZ 120

temporisateur rémanent 112temporisateur rémanent

avec RAZ 124temporisation de scrutation

schéma de bloc fonctionnel 643test ASCII pour ligne de mémoire

tampon 564texte structuré

affectation 657affectation non rémanente 658affecter un caractère ASCII 659CASE 671commentaires 683composants 655évaluation des chaînes 663expression 659expression numérique 659fonctions 661FOR…DO 674IF…THEN 668opérateurs arithmétiques 661opérateurs logiques 664opérateurs relationnels 662opérateurs sur bits 665REPEAT…UNTIL 680structures 667WHILE…DO 677

timeoutconfigurer pour tâche

événementielle 195transfert 283transfert avec masque 285transfert masqué avec cible 288transition de données 488trier 367troncation 555type de données de chaîne 561, 594,

607

Vvaleur absolue 277valeurs immédiates 629verrouillage de données 638verrouillage de sortie 84

WWHILE…DO 677

XX à la puissance Y 540

Zzone morte 509

692 Publication 1756-RM003K-FR-P – Juillet 2008

Page 693: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Codes des caractères ASCII

Caractère Déc Hex

[ctrl-@] NUL 0 $00

[ctrl-A] SOH 1 $01

[ctrl-B] STX 2 $02

[ctrl-C] ETX 3 $03

[ctrl-D] EOT 4 $04

[ctrl-E] ENQ 5 $05

[ctrl-F] ACK 6 $06

[ctrl-G] BEL 7 $07

[ctrl-H] BS 8 $08

[ctrl-I] HT 9 $09

[ctrl-J] LF 10 $l ($0A)

[ctrl-K] VT 11 $0B

[ctrl-L] FF 12 $0C

[ctrl-M] CR 13 $r ($0D)

[ctrl-N] SO 14 $0E

[ctrl-O] SI 15 $0F

[ctrl-P] DLE 16 $10

[ctrl-Q] DC1 17 $11

[ctrl-R] DC2 18 $12

[ctrl-S] DC3 19 $13

[ctrl-T] DC4 20 $14

[ctrl-U] NAK 21 $15

[ctrl-V] SYN 22 $16

[ctrl-W] ETB 23 $17

[ctrl-X] CAN 24 $18

[ctrl-Y] EM 25 $19

[ctrl-Z] SUB 26 $1A

ctrl-[ ESC 27 $1B

[ctrl-\] FS 28 $1C

ctrl-] GS 29 $1D

[ctrl-^] RS 30 $1E

[ctrl-_] US 31 $1F

ESPACE 32 $20

! 33 $21

“ 34 $22

# 35 $23

$ 36 $24

% 37 $25

& 38 $26

‘ 39 $27

( 40 $28

) 41 $29

* 42 $2A

+ 43 $2B

, 44 $2C

- 45 $2D

. 46 $2E

/ 47 $2F

0 48 $30

1 49 $31

2 50 $32

3 51 $33

4 52 $34

5 53 $35

6 54 $36

7 55 $37

8 56 $38

9 57 $39

: 58 $3A

; 59 $3B

< 60 $3C

= 61 $3D

> 62 $3E

? 63 $3F

@ 64 $40

A 65 $41

Caractère Déc Hex

B 66 $42

C 67 $43

D 68 $44

E 69 $45

F 70 $46

G 71 $47

H 72 $48

I 73 $49

J 74 $4A

K 75 $4B

L 76 $4C

M 77 $4D

N 78 $4E

O 79 $4F

P 80 $50

Q 81 $51

R 82 $52

S 83 $53

T 84 $54

U 85 $55

V 86 $56

W 87 $57

X 88 $58

Y 89 $59

Z 90 $5A

[ 91 $5B

\ 92 $5C

] 93 $5D

^ 94 $5E

_ 95 $5F

‘ 96 $60

a 97 $61

b 98 $62

Caractère Déc Hex

c 99 $63

d 100 $64

e 101 $65

f 102 $66

g 103 $67

h 104 $68

i 105 $69

j 106 $6A

k 107 $6B

l 108 $6C

m 109 $6D

n 110 $6E

o 111 $6F

p 112 $70

q 113 $71

r 114 $72

s 115 $73

t 116 $74

u 117 $75

v 118 $76

w 119 $77

x 120 $78

y 121 $79

z 122 $7A

{ 123 $7B

| 124 $7C

} 125 $7D

~ 126 $7E

EFFACE 127 $7F

Caractère Déc Hex

Page 694: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions
Page 695: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Assistance Rockwell Automation

Rockwell Automation fournit des informations techniques sur Internet pour vous aider à utiliser ses produits. Sur le site http://support.rockwellautomation.com, vous trouverez des manuels techniques, une foire aux questions, des notes techniques et des profils d’application, des exemples de code et des liens vers des mises à jour de logiciels (service packs). Vous y trouverez également la rubrique « MySupport », que vous pouvez personnaliser pour utiliser au mieux ces outils.

Si vous souhaitez une assistance technique supplémentaire par téléphone pour l’installation, la configuration et le dépannage de vos produits, nous proposons les programmes d’assistance TechConnect. Pour de plus amples informations, contactez votre distributeur ou votre représentant Rockwell Automation, ou allez sur le site http://support.rockwellautomation.com.

Aide à l’installation

En cas de problème sur un module matériel dans les 24 heures suivant son installation, consultez les informations fournies dans le présent manuel. Vous pouvez également appeler l’Assistance Rockwell Automation à un numéro spécial, afin d’obtenir de l’aide pour la mise en service de votre module :

Procédure de retour d’un nouveau produit

Rockwell Automation teste tous ses produits pour en garantir le parfait fonctionnement à leur sortie d’usine. Cependant, si votre produit ne fonctionne pas et doit faire l’objet d’un retour :

Quatrième de couverture

Pour les Etats-Unis

1.440.646.3223du lundi au vendredi, de 8h00 à 17h00 (heure de la côte est)

Pour les autres pays

Contactez votre représentant Rockwell Automation pour tout problème technique.

Pour les Etats-Unis

Contactez votre distributeur. Vous devrez lui fournir le numéro de dossier que le Centre d’assistance vous aura communiqué (voir le numéro de téléphone ci-dessus), afin de procéder au retour.

Pour les autres pays

Contactez votre représentant Rockwell Automation pour savoir comment procéder.

Publication 1756-RM003K-FR-P – Juillet 2008 695Remplace la publication 1756-RM003I-FR-P – Janvier 2007 Copyright © 2008 Rockwell Automation, Inc. Tous droits réservés. Imprimé aux Etats-Unis.

Page 696: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions
Page 697: 1756-RM003K-FR-P, Automates Logix5000™ – Instructions

Autom

ates Logix5000™ – Instructions

Manuel de référence