Schneider Electric EcoStruxure™ Control Expert - Communication, Bibliothèque de blocs Mode d'emploi
Ajouter à Mes manuels596 Des pages
▼
Scroll to page 2
of
596
EcoStruxure™ Control Expert Communication Bibliothèque de blocs Traduction de la notice originale 05/2022 33002528.24 www.se.com Mentions légales La marque Schneider Electric et toutes les marques de commerce de Schneider Electric SE et de ses filiales mentionnées dans ce guide sont la propriété de Schneider Electric SE ou de ses filiales. Toutes les autres marques peuvent être des marques de commerce de leurs propriétaires respectifs. Ce guide et son contenu sont protégés par les lois sur la propriété intellectuelle applicables et sont fournis à titre d'information uniquement. Aucune partie de ce guide ne peut être reproduite ou transmise sous quelque forme ou par quelque moyen que ce soit (électronique, mécanique, photocopie, enregistrement ou autre), à quelque fin que ce soit, sans l'autorisation écrite préalable de Schneider Electric. Schneider Electric n'accorde aucun droit ni aucune licence d'utilisation commerciale de ce guide ou de son contenu, sauf dans le cadre d'une licence non exclusive et personnelle, pour le consulter tel quel. Les produits et équipements Schneider Electric doivent être installés, utilisés et entretenus uniquement par le personnel qualifié. Les normes, spécifications et conceptions sont susceptibles d'être modifiées à tout moment. Les informations contenues dans ce guide peuvent faire l'objet de modifications sans préavis. Dans la mesure permise par la loi applicable, Schneider Electric et ses filiales déclinent toute responsabilité en cas d'erreurs ou d'omissions dans le contenu informatif du présent document ou pour toute conséquence résultant de l'utilisation des informations qu'il contient. En tant que membre d'un groupe d'entreprises responsables et inclusives, nous actualisons nos communications qui contiennent une terminologie non inclusive. Cependant, tant que nous n'aurons pas terminé ce processus, notre contenu pourra toujours contenir des termes standardisés du secteur qui pourraient être jugés inappropriés par nos clients. Communication Table des matières Consignes de sécurité ............................................................................................13 Avant de commencer ........................................................................................14 Démarrage et test.............................................................................................15 Fonctionnement et réglages ..............................................................................16 A propos de ce manuel ...........................................................................................17 Informations générales ..........................................................................................19 Types de module et leur utilisation ...........................................................................20 Types de bloc ...................................................................................................20 Structure d'un FFB............................................................................................22 EN et ENO .......................................................................................................26 Disponibilité des blocs sur les différentes plates-formes matérielles ...........................30 Disponibilité des blocs sur différentes plateformes matérielles .............................30 Fonctionnement des EF de communication ..............................................................34 Structure et gestion des fonctions de communication ..........................................34 Gestion des fonctions de communication ......................................................34 Structure des fonctions de communication ....................................................38 Adresse cible..............................................................................................39 Structure des paramètres de gestion ............................................................39 Paramètres de gestion : rapports de communication et d'opération.................42 Paramètres de gestion : longueur et timeout .................................................45 Informations générales sur les fonctions de communication Premium et Atrium..............................................................................................................47 Règles d'utilisation des fonctions de communication des automates Premium et Atrium ......................................................................................47 Fonctions de communication sur les automates Premium et Atrium ................48 Fonction de serveur ....................................................................................49 Informations générales sur les fonctions de communication Quantum ..................51 Règles d'utilisation des fonctions de communication des automates Quantum ....................................................................................................52 Fonctions de communication sur les automates Quantum .............................54 Informations générales sur les fonctions de communication M340........................57 Fonctions de communication sur les automates M340 ...................................57 33002528.25 3 Communication Informations générales sur les fonctions de communication M580........................58 Règles d'utilisation des fonctions de communication des UC M580.................59 Fonctions de communication sur les automates M580 ...................................61 Informations générales sur les fonctions de communication Momentum ...............63 Fonctions de communication sur les automates Momentum ..........................63 Informations générales sur les fonctions de client OPC UA ..................................64 Définition des blocs UA PLCopen.................................................................64 Mode de surveillance UA.............................................................................65 Comportement général des entrées et sorties communes ..............................67 Utilisation de la mémoire de l'application.......................................................69 Etendu ......................................................................................................................71 ADDM : Conversion d'adresses...............................................................................73 Description.......................................................................................................73 ADDMX : conversion d'adresses .............................................................................80 Description.......................................................................................................80 ADDR : conversion d'adresse..................................................................................88 Description.......................................................................................................88 CANCEL : arrêt d'un échange en cours....................................................................91 Description.......................................................................................................91 Exemple d'annulation d'un échange ...................................................................93 CLOSE_TCP_CNX : Fermeture de connexions TCP.................................................95 Description.......................................................................................................95 CREAD_REG : Lecture de registres en continu .......................................................99 Description.......................................................................................................99 Types de données dérivés............................................................................... 102 Mode de fonctionnement................................................................................. 103 Description des paramètres............................................................................. 104 CWRITE_REG : Ecriture de registres en continu .................................................... 106 Description..................................................................................................... 106 Types de données dérivés............................................................................... 109 Mode de fonctionnement................................................................................. 110 Description des paramètres............................................................................. 111 DATA_EXCH : échange de données entre applications ........................................... 113 Description..................................................................................................... 113 Ecran de saisie assistée.................................................................................. 118 4 33002528.25 Communication Exemple d'utilisation d'un réseau Fipway.......................................................... 120 Exemple d'activation/désactivation du service HTTP ou FTP/TFTP .................... 122 ETH_PORT_CTRL : activation ou désactivation d'un protocole................................ 126 ETH_PORT_CTRL: : exécution d'une commande de sécurité dans une application ..................................................................................................... 126 EthPort_Control_MX : activation ou désactivation d'un protocole ............................. 131 EthPort_Control_MX : activation ou désactivation d'un protocole........................ 131 EXCH_QX : échange de données entre des applications sur le bus EIO................... 134 Description..................................................................................................... 134 INPUT_BYTE : réception de chaînes de caractères ................................................ 139 Description..................................................................................................... 139 INPUT_CHAR : réception de chaînes de caractères ............................................... 144 Description..................................................................................................... 144 Ecran de saisie assistée.................................................................................. 150 Exemple de lecture de chaînes de caractères via un réseau Fipway ................... 152 Exemple de lecture de chaînes de caractères via une liaison série de processeurs Modicon M340 ............................................................................ 153 INPUT_CHAR_QX : réception de chaînes de caractères sur le bus EIO ................... 155 Description..................................................................................................... 155 MBP_MSTR : Maître Modbus Plus ........................................................................ 160 Description du bloc ......................................................................................... 160 Codes de fonction des opérations .................................................................... 164 Structures du bloc de commande de réseau ..................................................... 166 Lecture de données ........................................................................................ 169 Ecriture de données........................................................................................ 171 Extraction de statistiques locales ..................................................................... 173 Suppression de statistiques locales ................................................................. 174 Ecriture de données globales .......................................................................... 175 Lecture de données globales........................................................................... 176 Lire statistiques distantes ................................................................................ 177 Effacer statistiques distantes ........................................................................... 179 Validité de Peer Cop ....................................................................................... 180 Réinitialisation du module optionnel ................................................................. 181 Lecture de la CTE........................................................................................... 182 Ecriture de la CTE .......................................................................................... 184 33002528.25 5 Communication Envoi de messages électroniques.................................................................... 186 Envoi d'une requête Modbus ........................................................................... 188 Requête de clôture d'une connexion ................................................................ 193 Lecture/écriture de données ............................................................................ 194 Activation et désactivation des services HTTP ou FTP/TFTP ............................. 196 Etat d'intégrité des communications Peer Cop .................................................. 198 Statistiques du réseau Modbus Plus ................................................................ 199 Statistiques de réseau Ethernet TCP/IP ........................................................... 205 ModbusP_ADDR : Adresse Modbus Plus............................................................... 209 Description..................................................................................................... 209 Description détaillée ....................................................................................... 212 OUT_IN_CHAR : envoi/réception de chaînes de caractères .................................... 214 Description..................................................................................................... 214 Ecran de saisie assistée.................................................................................. 217 Exemple d'envoi/réception d'une chaîne de caractères...................................... 219 OUT_IN_MBUS : Fonction de communication Modbus ........................................... 222 Présentation générale du bloc de communication OUT_IN_MBUS....................... 222 Description de la fonction .......................................................................... 222 Exemple d'utilisation ................................................................................. 223 Fonctionnalités ......................................................................................... 225 Description du bloc de communication OUT_IN_MBUS ...................................... 226 Représentations et paramètres .................................................................. 227 Le paramètre MbusCmd ............................................................................. 230 Le paramètre RetryLmt ........................................................................... 232 Le paramètre DataBits ........................................................................... 233 Le paramètre RespTout ........................................................................... 233 Le paramètre MasterDataArea ............................................................... 233 Le paramètre Status ............................................................................... 234 Mise en oeuvre du bloc de communication OUT_IN_MBUS................................. 235 Configuration de la liaison série ................................................................. 235 Marche à suivre pour la programmation ...................................................... 239 Utilisation d’un modem .............................................................................. 240 Exemple d’utilisation du bloc de communication OUT_IN_MBUS ......................... 242 Description de l’exemple ........................................................................... 242 Structure de la programmation................................................................... 243 6 33002528.25 Communication Déclaration des variables .......................................................................... 244 Programmation......................................................................................... 245 PRINT_CHAR : Envoi de chaînes de caractères..................................................... 250 Description..................................................................................................... 250 Ecran de saisie assistée.................................................................................. 254 Exemple d'envoi de chaînes de caractères via un réseau Fipway ....................... 256 Exemple d'envoi de chaînes de caractères via une liaison série de processeurs Modicon M340 ............................................................................................... 257 PRINT_CHAR_QX : envoi de chaînes de caractères sur le bus EIO......................... 259 Description..................................................................................................... 259 RCV_TLG : Réception de télégrammes ................................................................. 264 Description..................................................................................................... 264 Exemple de réception d'un télégramme............................................................ 266 READ_ASYN : Lecture asynchrone de données..................................................... 268 Description..................................................................................................... 268 READ_DDT : lecture de DDT ................................................................................ 271 Configuration de la fonction élémentaire READ_DDT ........................................ 271 READ_GDATA : Lecture de Global Data Modbus Plus ............................................ 276 Description..................................................................................................... 276 READ_REG : Lecture de registre .......................................................................... 279 Description..................................................................................................... 279 Types de données dérivés............................................................................... 282 Mode de fonctionnement................................................................................. 284 Description des paramètres............................................................................. 284 READ_REG_QX : lecture de registre sur le bus EIO ............................................... 287 Description..................................................................................................... 287 READ_REMOTE : lecture de variables distantes .................................................... 291 Description..................................................................................................... 291 READ_SDO : objet de données du service de lecture ............................................. 299 READ_SDO : lecture de l'objet de données du service ...................................... 299 READ_VAR : Lecture de variables......................................................................... 304 Description..................................................................................................... 304 Ecran de saisie assistée.................................................................................. 311 Exemple d'utilisation sur un bus Uni-Telway...................................................... 314 Exemple de lecture de bits .............................................................................. 316 33002528.25 7 Communication Exemple d'utilisation dans un réseau ............................................................... 317 Exemple de lecture de mots via la liaison série des processeurs Modicon M340 ............................................................................................................. 320 Exemple de vérification d'exécution ................................................................. 323 SEND_EMAIL : envoi d'un message électronique ................................................... 325 Envoi de messages électroniques.................................................................... 325 SEND_REQ : Envoi de requêtes ........................................................................... 329 Description..................................................................................................... 329 Liste de requêtes UNI-TE ................................................................................ 333 Ecran de saisie assistée.................................................................................. 339 Exemple d'envoi d'une requête UNI-TE ............................................................ 341 Modification des paramètres IP avec SEND_REQ (exemple) ............................. 343 Utilisation de la fonction SEND_REQ ............................................................... 344 SEND_TLG : Envoi de télégrammes...................................................................... 346 Description..................................................................................................... 346 Exemple d'envoi d'un télégramme.................................................................... 349 SYMAX_IP_ADDR : Adresse IP SY/MAX............................................................... 351 Description..................................................................................................... 351 Description détaillée ....................................................................................... 353 TCP_IP_ADDR : Adresse TCP/IP.......................................................................... 355 Description..................................................................................................... 355 Description détaillée ....................................................................................... 358 UNITE_SERVER : Serveur immédiat..................................................................... 360 Description..................................................................................................... 360 Exemple de serveur immédiat ......................................................................... 364 WRITE_ASYN : Ecriture asynchone de données .................................................... 365 Description..................................................................................................... 365 WRITE_GDATA : Ecriture de Global Data Modbus Plus .......................................... 370 Description..................................................................................................... 370 WRITE_REG : Ecriture de registre......................................................................... 373 Description..................................................................................................... 373 Types de données dérivés............................................................................... 376 Mode de fonctionnement................................................................................. 378 Description des paramètres............................................................................. 379 WRITE_REG_QX : écriture de registre sur le bus EIO............................................. 381 8 33002528.25 Communication Description..................................................................................................... 381 WRITE_REMOTE : écriture de variables distantes ................................................. 385 Description..................................................................................................... 385 WRITE_SDO : objet de données du service d'écriture............................................. 393 WRITE_SDO : écriture de l'objet de données du service.................................... 393 WRITE_VAR : Ecriture de variables ....................................................................... 398 Description..................................................................................................... 398 Ecran de saisie assistée.................................................................................. 404 Exemple d'écriture de mots sur un réseau ........................................................ 407 Exemple d'écriture de mots via la liaison série des processeurs Modicon M340 ............................................................................................................. 409 Exemple de vérification d'exécution ................................................................. 411 XMIT: Transmit..................................................................................................... 413 Description sommaire ..................................................................................... 413 Représentation............................................................................................... 414 Description des paramètres............................................................................. 417 Description de la structure des données de XMIT_SET ..................................... 420 Description de la structure des données de XMIT_CFG..................................... 420 Exemple d'application ..................................................................................... 427 XXMIT : Transmission........................................................................................... 434 Introduction au bloc XXMIT ............................................................................. 434 Fonctionnalités du bloc XXMIT................................................................... 434 Fonctions XXMIT............................................................................................ 435 Description sommaire ............................................................................... 435 Représentation ......................................................................................... 437 Description détaillée des paramètres.......................................................... 440 Fonctions de communication du bloc XXMIT............................................... 450 Fonctions ASCII du bloc XXMIT ................................................................. 450 Fonctions de modem du bloc XXMIT .......................................................... 456 Fonctions Modbus du bloc XXMIT .............................................................. 458 Tampon FIFO et contrôle de flux ................................................................ 464 Exemples d’application.............................................................................. 468 Règles de programmation du bloc XXMIT......................................................... 480 Règles de programmation du bloc XXMIT ................................................... 480 Références techniques XXMIT ........................................................................ 482 33002528.25 9 Communication Limites des paramètres de requête/réponse Modbus................................... 482 Configuration de XXMIT à l'aide de modems à numérotation automatique compatibles Hayes (uniquement) ............................................................... 483 Exemple d'application Hayes ..................................................................... 487 Informations sur le câblage.............................................................................. 491 Brochage des câbles................................................................................. 491 Kits d'adaptateur de câble ......................................................................... 504 Client OPC UA ...................................................................................................... 508 UA_Connect ........................................................................................................ 509 Description..................................................................................................... 509 UA_ConnectionGetStatus..................................................................................... 512 Description..................................................................................................... 512 UAConnectionStatus ...................................................................................... 514 UAServerState ............................................................................................... 514 UA_Disconnect .................................................................................................... 515 Description..................................................................................................... 515 UA_NamespaceGetIndexList ................................................................................ 517 Description..................................................................................................... 517 UA_NodeGetHandleList ....................................................................................... 519 Description..................................................................................................... 519 UA_NodeReleaseHandleList................................................................................. 522 Description..................................................................................................... 522 UA_ReadList ....................................................................................................... 524 Description..................................................................................................... 524 UA_WriteList........................................................................................................ 526 Description..................................................................................................... 526 UA_SubscriptionCreate ........................................................................................ 529 Description..................................................................................................... 529 UA_SubscriptionDelete ........................................................................................ 531 Description..................................................................................................... 531 UA_MonitoredItemAddList .................................................................................... 533 Description..................................................................................................... 533 UA_MonitoredItemOperList................................................................................... 536 Description..................................................................................................... 536 UA_SubscriptionProcessed .................................................................................. 539 10 33002528.25 Communication Description..................................................................................................... 539 UA_MonitoredItemRmvList ................................................................................... 541 Description..................................................................................................... 541 Types de données dérivés OPC UA....................................................................... 543 UASessionConnectInfo................................................................................... 543 AUANodeAdditionalInfo .................................................................................. 545 UANodeAdditionalInfo .................................................................................... 545 UAAttributeID ................................................................................................. 545 UAIndexRange............................................................................................... 546 AUANodeID ................................................................................................... 547 UANodeID ..................................................................................................... 547 AUAMonitoredVariables .................................................................................. 547 UAMonitoredVariables .................................................................................... 547 AUAMonitoringParameter ............................................................................... 548 UAMonitoringParameter ................................................................................. 548 ASTVariable................................................................................................... 549 STVariable ..................................................................................................... 549 ASNamespaceURIs........................................................................................ 551 ASTTimeStamp.............................................................................................. 551 STTimeStamp ................................................................................................ 551 Annexes ................................................................................................................. 552 Valeurs et codes d'erreur des EFB......................................................................... 553 Tableau des codes d'erreur de la bibliothèque de communication....................... 553 Erreurs courantes relatives aux valeurs à virgule flottante.................................. 555 Codes d'erreur des EFB avec paramètre STATUS ............................................ 556 Détails des codes d'erreur STATUS 11ss, 12ss, 13ss et 1mss............................ 559 Détail des codes d'erreur STATUS 31ss à 37ss................................................. 562 Détails des codes d'erreur Ethernet TCP/IP des EFB5mss ................................ 570 Détails des codes d'erreur Modbus Plus des EFB 6mss..................................... 573 Codes d'erreur SY/MAX dans les EFB Quantum ............................................... 574 Codes d'erreur détectée EtherNet/IP................................................................ 576 Code d'abandon SDO CANopen...................................................................... 579 Codes d'erreur détectée OPC UA .................................................................... 580 Glossaire ................................................................................................................ 587 Index ....................................................................................................................... 592 33002528.25 11 Consignes de sécurité Communication Consignes de sécurité Informations importantes Lisez attentivement ces instructions et examinez le matériel pour vous familiariser avec l'appareil avant de tenter de l'installer, de le faire fonctionner, de le réparer ou d'assurer sa maintenance. Les messages spéciaux suivants que vous trouverez dans cette documentation ou sur l'appareil ont pour but de vous mettre en garde contre des risques potentiels ou d'attirer votre attention sur des informations qui clarifient ou simplifient une procédure. La présence de ce symbole sur une étiquette “Danger” ou “Avertissement” signale un risque d'électrocution qui provoquera des blessures physiques en cas de non-respect des consignes de sécurité. Ce symbole est le symbole d'alerte de sécurité. Il vous avertit d'un risque de blessures corporelles. Respectez scrupuleusement les consignes de sécurité associées à ce symbole pour éviter de vous blesser ou de mettre votre vie en danger. ! DANGER DANGER signale un risque qui, en cas de non-respect des consignes de sécurité, provoque la mort ou des blessures graves. ! AVERTISSEMENT AVERTISSEMENT signale un risque qui, en cas de non-respect des consignes de sécurité, peut provoquer la mort ou des blessures graves. ! ATTENTION ATTENTION signale un risque qui, en cas de non-respect des consignes de sécurité, peut provoquer des blessures légères ou moyennement graves. AVIS AVIS indique des pratiques n'entraînant pas de risques corporels. 33002528.25 13 Communication Consignes de sécurité Remarque Importante L'installation, l'utilisation, la réparation et la maintenance des équipements électriques doivent être assurées par du personnel qualifié uniquement. Schneider Electric décline toute responsabilité quant aux conséquences de l'utilisation de ce matériel. Une personne qualifiée est une personne disposant de compétences et de connaissances dans le domaine de la construction, du fonctionnement et de l'installation des équipements électriques, et ayant suivi une formation en sécurité leur permettant d'identifier et d'éviter les risques encourus. Avant de commencer N'utilisez pas ce produit sur les machines non pourvues de protection efficace du point de fonctionnement. L'absence de ce type de protection sur une machine présente un risque de blessures graves pour l'opérateur. AVERTISSEMENT EQUIPEMENT NON PROTEGE • N'utilisez pas ce logiciel ni les automatismes associés sur des appareils non équipés de protection du point de fonctionnement. • N'accédez pas aux machines pendant leur fonctionnement. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Cet automatisme et le logiciel associé permettent de commander des processus industriels divers. Le type ou le modèle d'automatisme approprié pour chaque application dépendra de facteurs tels que la fonction de commande requise, le degré de protection exigé, les méthodes de production, des conditions inhabituelles, la législation, etc. Dans certaines applications, plusieurs processeurs seront nécessaires, notamment lorsque la redondance de sauvegarde est requise. Vous seul, en tant que constructeur de machine ou intégrateur de système, pouvez connaître toutes les conditions et facteurs présents lors de la configuration, de l'exploitation et de la maintenance de la machine, et êtes donc en mesure de déterminer les équipements automatisés, ainsi que les sécurités et verrouillages associés qui peuvent être utilisés correctement. Lors du choix de l'automatisme et du système de commande, ainsi que du logiciel associé pour une application particulière, vous devez respecter les normes et réglementations locales et nationales en vigueur. Le document National Safety Council's Accident Prevention Manual (reconnu aux Etats-Unis) fournit également de nombreuses informations utiles. 14 33002528.25 Consignes de sécurité Communication Dans certaines applications, telles que les machines d'emballage, une protection supplémentaire, comme celle du point de fonctionnement, doit être fournie pour l'opérateur. Elle est nécessaire si les mains ou d'autres parties du corps de l'opérateur peuvent entrer dans la zone de point de pincement ou d'autres zones dangereuses, risquant ainsi de provoquer des blessures graves. Les produits logiciels seuls, ne peuvent en aucun cas protéger les opérateurs contre d'éventuelles blessures. C'est pourquoi le logiciel ne doit pas remplacer la protection de point de fonctionnement ou s'y substituer. Avant de mettre l'équipement en service, assurez-vous que les dispositifs de sécurité et de verrouillage mécaniques et/ou électriques appropriés liés à la protection du point de fonctionnement ont été installés et sont opérationnels. Tous les dispositifs de sécurité et de verrouillage liés à la protection du point de fonctionnement doivent être coordonnés avec la programmation des équipements et logiciels d'automatisation associés. NOTE: La coordination des dispositifs de sécurité et de verrouillage mécaniques/ électriques du point de fonctionnement n'entre pas dans le cadre de cette bibliothèque de blocs fonction, du Guide utilisateur système ou de toute autre mise en œuvre référencée dans la documentation. Démarrage et test Avant toute utilisation de l'équipement de commande électrique et des automatismes en vue d'un fonctionnement normal après installation, un technicien qualifié doit procéder à un test de démarrage afin de vérifier que l'équipement fonctionne correctement. Il est essentiel de planifier une telle vérification et d'accorder suffisamment de temps pour la réalisation de ce test dans sa totalité. AVERTISSEMENT RISQUES INHERENTS AU FONCTIONNEMENT DE L'EQUIPEMENT • Assurez-vous que toutes les procédures d'installation et de configuration ont été respectées. • Avant de réaliser les tests de fonctionnement, retirez tous les blocs ou autres cales temporaires utilisés pour le transport de tous les dispositifs composant le système. • Enlevez les outils, les instruments de mesure et les débris éventuels présents sur l'équipement. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Effectuez tous les tests de démarrage recommandés dans la documentation de l'équipement. Conservez toute la documentation de l'équipement pour référence ultérieure. Les tests logiciels doivent être réalisés à la fois en environnement simulé et réel 33002528.25 15 Communication Consignes de sécurité Vérifiez que le système entier est exempt de tout court-circuit et mise à la terre temporaire non installée conformément aux réglementations locales (conformément au National Electrical Code des Etats-Unis, par exemple). Si des tests diélectriques sont nécessaires, suivez les recommandations figurant dans la documentation de l'équipement afin d'éviter de l'endommager accidentellement. Avant de mettre l'équipement sous tension : • Enlevez les outils, les instruments de mesure et les débris éventuels présents sur l'équipement. • Fermez le capot du boîtier de l'équipement. • Retirez toutes les mises à la terre temporaires des câbles d'alimentation entrants. • Effectuez tous les tests de démarrage recommandés par le fabricant. Fonctionnement et réglages Les précautions suivantes sont extraites du document NEMA Standards Publication ICS 7.1-1995 (la version anglaise prévaut) : 16 • Malgré le soin apporté à la conception et à la fabrication de l'équipement ou au choix et à l'évaluation des composants, des risques subsistent en cas d'utilisation inappropriée de l'équipement. • Il arrive parfois que l'équipement soit déréglé accidentellement, entraînant ainsi un fonctionnement non satisfaisant ou non sécurisé. Respectez toujours les instructions du fabricant pour effectuer les réglages fonctionnels. Les personnes ayant accès à ces réglages doivent connaître les instructions du fabricant de l'équipement et les machines utilisées avec l'équipement électrique. • Seuls ces réglages fonctionnels, requis par l'opérateur, doivent lui être accessibles. L'accès aux autres commandes doit être limité afin d'empêcher les changements non autorisés des caractéristiques de fonctionnement. 33002528.25 A propos de ce manuel Communication A propos de ce manuel Objectif du document Ce document décrit les fonctions et blocs fonction de la bibliothèque de communication. Champ d'application Cette documentation s'applique à EcoStruxureTM Control Expert 15.2. Document(s) à consulter Titre de la documentation Numéro de référence EcoStruxure™ Control Expert - Langages de programmation et structure, Manuel de référence 35006144 (Anglais), 35006145 (Français), 35006146 (Allemand), 35013361 (Italien), 35006147 (Espagnol), 35013362 (Chinois) EcoStruxure™ Control Expert, Modes de fonctionnement 33003101 (Anglais), 33003102 (Français), 33003103 (Allemand), 33003104 (Espagnol), 33003696 (Italien), 33003697 (Chinois) EcoStruxure™ Control Expert - Bits et mots système, Manuel de référence EIO0000002135 (Anglais), EIO0000002136 (Français), EIO0000002137 (Allemand), EIO0000002138 (Italien), EIO0000002139 (Espagnol), EIO0000002140 (Chinois) Architectures et services de communication, Manuel de référence 35010500 (Anglais), 35010501 (Français), 35006176 (Allemand), 35013966 (Italien), 35006177 (Espagnol), 35012196 (Chinois) Modicon Modbus Plus Network, Planning and Installation Guide 31003525 (anglais) Premium et Atrium sous EcoStruxure™ Control Expert Liaison série asynchrone, Manuel utilisateur 35006178 (Anglais), 35006179 (Français), 35006180 (Allemand), 35013959 (Italien), 35006181 (Espagnol), 35013960 (Chinois) Premium et Atrium sous EcoStruxure™ Control Expert Modules réseau Ethernet, Manuel utilisateur 35006192 (Anglais), 35006193 (Français), 35006194 (Allemand), 31007214 (Italien), 35006195 (Espagnol), 31007102 (Chinois) Pilotes de communication, Manuel d'installation 35006152 (Anglais), 35006153 (Français), 35006154 (Allemand), 35013950 (Italien), 35006155 (Espagnol), 35012192 (Chinois) EcoStruxure™ Control Expert - Gestion des E/S, Bibliothèque de blocs 33002531 (Anglais), 33002532 (Français), 33002533 (Allemand), 33003684 (Italien), 33002534 (Espagnol), 33003685 (Chinois) 33002528.25 17 Communication A propos de ce manuel Titre de la documentation Numéro de référence EcoStruxure™ Control Expert - Système, Bibliothèque 33002539 (Anglais), 33002540 (Français), 33002541 (Allemand), 33003688 (Italien), 33002542 (Espagnol), 33003689 (Chinois) EcoStruxure™ Control Expert - Obsolète, Bibliothèque de blocs 33002543 (Anglais), 33002544 (Français), 33002545 (Allemand), 33003690 (Italien), 33002546 (Espagnol), 33003691 (Chinois) EcoStruxure™ Control Expert - UnityLL984, Bibliothèque de blocs EIO0000000550 (Anglais), EIO0000000807 (Français), EIO0000000808 (Allemand), EIO0000000809 (Italien), EIO0000000810 (Espagnol), EIO0000000811 (Chinois) Quantum EIO - Modules d’E/S distantes, Guide d’installation et de configuration S1A48978 (Anglais), S1A48981 (Français), S1A48982 (Allemand), S1A48983 (Italien), S1A48984 (Espagnol), S1A48985 (Chinois) Quantum sous EcoStruxure™ Control Expert - Module de communication EtherNet/IP 140 NOC 771 00, Manuel utilisateur 31008209 (Anglais), 31008210 (Français) Quantum sous EcoStruxure™ Control Expert - TCP/IP Configuration, Manuel utilisateur 33002467 (Anglais), 33002468 (Français), 33002469 (Allemand), 31008078 (Italien), 33002470 (Espagnol), 31007110 (Chinois) Quantum sous EcoStruxure™ Control Expert - Modules réseau Ethernet, Manuel utilisateur 33002479 (Anglais), 33002480 (Français), 33002481 (Allemand), 31007213 (Italien), 33002482 (Espagnol), 31007112 (Chinois) Modicon M580 BMENOC0301/11 - Module de communication Ethernet, Guide d'installation et de configuration HRB62665 (Anglais), HRB65311 (Français), HRB65313 (Allemand), HRB65314 (Italien), HRB65315 (Espagnol), HRB65316 (Chinois) Modicon M580 - Matériel, Manuel de référence EIO0000001578 (Anglais), EIO0000001579 (Français), EIO0000001580 (Allemand), EIO0000001582 (Italien), EIO0000001581 (Espagnol), EIO0000001583 (Chinois) Modicon M580 - Modules RIO, Guide d'installation et de configuration EIO0000001584 (Anglais), EIO0000001585 (Français), EIO0000001586 (Allemand), EIO0000001587 (Italien), EIO0000001588 (Espagnol), EIO0000001589 (Chinois), de blocs You can download these technical publications, the present document and other technical information from our website www.se.com/en/download/. 18 33002528.25 Communication Informations générales Contenu de cette partie Types de module et leur utilisation.............................................20 Disponibilité des blocs sur les différentes plates-formes matérielles ..............................................................................30 Fonctionnement des EF de communication................................34 Présentation Ce chapitre contient des informations d'ordre général concernant la bibliothèque Communication. NOTE: Pour obtenir une description détaillée des objets système (%S et %SW), reportez-vous au document EcoStruxure™ Control Expert - Bits et mots système, Manuel de référence. 33002528.25 19 Communication Types de module et leur utilisation Types de module et leur utilisation Contenu de ce chapitre Types de bloc ..........................................................................20 Structure d'un FFB ...................................................................22 EN et ENO ..............................................................................26 Vue d'ensemble Ce chapitre décrit les différents types de module et leur utilisation. Types de bloc Types de bloc Différents types de bloc sont utilisés dans Control Expert. FFB est le terme générique pour tous les types de bloc. Une différence est faite entre les types de bloc suivants : • Fonction élémentaire (EF) • Bloc fonction élémentaire (EFB) • Bloc fonction dérivé (DFB) • Procédure NOTE: Les blocs fonction de mouvement ne sont pas disponibles sur la plate-forme Quantum. Fonction élémentaire Les fonctions élémentaires (EF) n'ont pas d'état interne et elles possèdent une seule sortie. Si les valeurs des entrées sont similaires, la valeur de la sortie est identique pour les exécutions de la fonction. Par exemple, l'ajout de deux valeurs donne le même résultat à chaque exécution. Une fonction élémentaire est représentée dans les langages graphiques (FBD et LD) sous forme de bloc avec des entrées et une sortie. Les entrées sont représentées à gauche du 20 33002528.25 Types de module et leur utilisation Communication bloc et les sorties à droite. Le nom de la fonction, c'est-à-dire le type de fonction, est affiché au centre du bloc. Pour certaines fonctions élémentaires, il est possible d'augmenter le nombre d'entrées. NOTE: Unity Pro est l'ancien nom de Control Expert pour la version 13.1 ou antérieure. ATTENTION COMPORTEMENT INATTENDU DE L'EQUIPEMENT Pour Unity Pro V4.0 et les versions antérieures, n'utilisez pas de liens pour connecter les sorties des blocs fonction lorsque votre application repose sur des données de sortie persistantes d'une EF. Le non-respect de ces instructions peut provoquer des blessures ou des dommages matériels. NOTE: Avec Unity Pro V4.0 et les versions antérieures, la désactivation d'une EF (EN= 0) entraîne la réinitialisation des liens associés à ses entrées/sorties. Pour transférer l'état du signal, n'utilisez pas de lien. Une variable doit être connectée à la sortie de l'EF et être utilisée pour connecter l'entrée de l'élément. Avec Unity Pro V4.1 et les versions ultérieures, vous pouvez maintenir les liens de sortie même si une EF est désactivée en activant l'option Maintenir les liens de sortie sur les EF désactivés (EN=0) par l'intermédiaire du menu Outils > Programme > Langues > Commun. Bloc fonction élémentaire Les blocs fonction élémentaires (EFB) ont un état interne. Si les valeurs des entrées sont identiques, les valeurs des sorties peuvent différer à chaque exécution du bloc fonction. Pour un compteur, par exemple, la valeur de la sortie est incrémentée. Un bloc fonction élémentaire est représenté dans les langages graphiques (FBD et LD) sous forme de bloc avec des entrées et des sorties. Les entrées sont représentées à gauche du bloc et les sorties à droite. Le nom du bloc fonction, c'est-à-dire le type de bloc fonction, est affiché au centre du bloc. Le nom d'instance est affiché au-dessus du bloc. Bloc fonction dérivé Les blocs fonction dérivés (DFB) ont les mêmes caractéristiques que les blocs fonction élémentaires. Ils sont cependant créés par l'utilisateur dans les langages de programmation FBD, LD, IL et/ou ST. 33002528.25 21 Communication Types de module et leur utilisation Procédure Les procédures correspondent à des fonctions proposant plusieurs sorties. Elles ne disposent pas d'état interne. L'unique différence par rapport aux fonctions élémentaires est que les procédures peuvent avoir plus d'une sortie et qu'elles supportent des variables du type de donnée VAR_IN_OUT. Les procédures ne renvoient aucune valeur. Les procédures sont un complément de la norme IEC 61131-3 et doivent être activées de manière explicite. Visuellement, il n'existe aucune différence entre les procédures et les fonctions élémentaires. NOTE: Unity Pro est l'ancien nom de Control Expert pour la version 13.1 ou antérieure. ATTENTION COMPORTEMENT INATTENDU DE L'EQUIPEMENT Pour Unity Pro V4.0 et les versions antérieures, n'utilisez pas de liens pour connecter les sorties des blocs fonction lorsque votre application repose sur des données de sortie persistantes d'une EF. Le non-respect de ces instructions peut provoquer des blessures ou des dommages matériels. NOTE: Avec Unity Pro V4.0 et les versions antérieures, la désactivation d'une EF (EN= 0) entraîne la réinitialisation des liens associés à ses entrées/sorties. Pour transférer l'état du signal, n'utilisez pas de lien. Une variable doit être connectée à la sortie de l'EF et être utilisée pour connecter l'entrée de l'élément. Avec Unity Pro V4.1 et les versions ultérieures, vous pouvez maintenir les liens de sortie même si une EF est désactivée en activant l'option Maintenir les liens de sortie sur les EF désactivés (EN=0) par l'intermédiaire du menu Outils > Programme > Langues > Commun. Structure d'un FFB Structure Un FFB se compose d'une opération (nom du FFB), des opérandes nécessaires à l'opération (paramètres réels et formels) et d'un nom d'instance pour les blocs fonction élémentaires ou dérivés. 22 33002528.25 Types de module et leur utilisation Communication Appel d'un bloc fonction dans le langage de programmation FBD : ATTENTION COMPORTEMENT INATTENDU DE L'APPLICATION N'appelez pas plusieurs fois la même instance de bloc pendant un cycle d'automate. Le non-respect de ces instructions peut provoquer des blessures ou des dommages matériels. Appel formel d'un bloc fonction dans le langage de programmation ST : 33002528.25 23 Communication Types de module et leur utilisation Opération L'opération détermine la fonction qui doit être exécutée par le FFB, par exemple : registre à décalage ou opérations de conversion. Opérande L'opérande détermine les éléments sur lesquels porte l'opération qui est exécutée. Dans les FFB, il est constitué de paramètres formels et de paramètres réels. Paramètres formels et réels Des entrées et des sorties permettent de transférer les valeurs vers ou depuis un FFB. Ces entrées et ces sorties sont appelées « paramètres formels ». Les paramètres formels sont liés à des objets qui comprennent les états courants du processus. Ces objets sont appelés « paramètres réels ». Durant l'exécution du programme, les valeurs sont transmises, par le biais des paramètres réels, du processus au FFB, et renvoyées à nouveau en sortie après le traitement. Le type de données des paramètres réels doit correspondre au type de données des entrées/sorties (paramètres formels). La seule exception concerne les entrées/sorties génériques dont le type de données est déterminé par le paramètre réel. On choisira un type de données adapté pour le bloc fonction, si les paramètres réels sont constitués de valeurs littérales. Appel de FFB dans le langage IL/ST Les FFB peuvent être appelés de deux manières dans les langages textuels IL et ST : formelle ou informelle. Pour obtenir des informations détaillées, reportez-vous au chapitre Langage de programmation (voir EcoStruxure™ Control Expert, Langages de programmation et structure, Manuel de référence). Exemple d'un appel de fonction formel : out:=LIMIT (MN:=0, IN:=var1, MX:=5); Exemple d'un appel de fonction informel : out:=LIMIT (0, var1, 5); NOTE: Les paramètres EN et la sortie ENO peuvent uniquement être utilisés pour des appels formels. 24 33002528.25 Types de module et leur utilisation Communication Variable VAR_IN_OUT Les FFB sont souvent utilisés pour lire une variable en entrée (variables d'entrée), la traiter et générer les valeurs modifiées de cette même variable (variables de sortie). Ce cas particulier d'une variable d'entrée/de sortie est également appelé variable VAR_IN_ OUT. La relation entre la variable d'entrée et la variable de sortie est représentée dans les langages graphiques (FBD et LD) par une ligne. Bloc fonction avec la variable VAR_IN_OUT dans le langage FBD : Bloc fonction avec la variable VAR_IN_OUT dans le langage ST : MY_EXAMP1 (IN1:=Input1, IN2:=Input2, IO1:=Comb_IN_OUT, OUT1=>Output1, OUT2=>Output2); Tenez compte des points suivants lorsque vous utilisez des FFB avec les variables VAR_ IN_OUT : • Une variable doit être affectée à toutes les entrées VAR_IN_OUT. • Aucune valeur littérale ou constante ne doit être affectée aux entrées/sorties VAR_IN_ OUT. Les limitations supplémentaires de ces langages graphiques (FBD et LD) sont les suivantes : • Les liaisons graphiques permettent uniquement de relier des sorties VAR_IN_OUT à des entrées VAR_IN_OUT. • Seule une liaison graphique peut être associée à une entrée/sortie VAR_IN_OUT. • Des variables ou des composantes de variables différentes peuvent être reliées à l'entrée VAR_IN_OUT et à la sortie VAR_IN_OUT. Dans ce cas, la valeur de la variable ou de la composante de variable en entrée est copiée dans la variable ou la composante de variable en sortie. • Vous ne pouvez pas utiliser des négations sur les entrées/sorties VAR_IN_OUT. • Une combinaison de variable/adresse et de liaisons graphiques n'est pas possible pour les sorties VAR_IN_OUT. 33002528.25 25 Communication Types de module et leur utilisation EN et ENO Description Une entrée EN et une sortie ENO peuvent être configurées pour tous les FFB. Si la valeur de EN est déjà réglée sur « 0 », lors de l'appel de FFB, les algorithmes définis par FFB ne sont pas exécutés et ENO est réglé sur « 0 ». Si la valeur de EN est déjà à « 1 », lors de l'appel de FFB, les algorithmes définis par FFB sont exécutés. Après l'exécution sans erreur de ces algorithmes, la valeur de ENO est réglée sur « 1 ». Si certaines conditions d'erreur sont détectées durant l’exécution de ces algorithmes, ENO est réglé sur « 0 ». Si aucune valeur n'est affectée à la broche EN lors de l'appel du FFB, l'algorithme défini par ce dernier est exécuté (comme si EN était égal à "1"). Reportez-vous à la section Maitenir les liens de sortie sur les EF désactivées (voir ™EcoStruxure Control Expert - Modes de fonctionnement. Une fois les algorithmes exécutés, la valeur de ENO est réglée sur « 1 », sinon la valeur de ENO est réglée sur « 0 ». Si la valeur de ENO est réglée sur 0 (car EN = 0 ou en raison d'une condition d'erreur détectée lors de l'exécution ou de l'échec de l'exécution des algorithmes) : 26 33002528.25 Types de module et leur utilisation • Communication Blocs fonction ◦ Traitement des paramètres EN/ENO avec des blocs fonction qui possèdent (uniquement) une liaison en tant que paramètre de sortie : Si l'entrée EN de BlocFonction_1 est réglée sur « 0 », la connexion de sortie OUT de BlocFonction_1 conserve l'état qu'elle avait lors du dernier cycle correctement exécuté. ◦ Traitement des paramètres EN/ENO avec des blocs fonction qui possèdent une variable et une liaison en tant que paramètres de sortie : Si l'entrée EN de BlocFonction_1 est réglée sur « 0 », la connexion de sortie OUT de BlocFonction_1 conserve l'état qu'elle avait lors du dernier cycle correctement exécuté. La variable OUT1 présente sur la même broche conserve son état précédent ou peut être modifiée de manière externe sans incidence sur la connexion. La variable et la liaison sont enregistrées indépendamment l'une de l'autre. 33002528.25 27 Communication • Types de module et leur utilisation Fonctions/procédures NOTE: Unity Pro est l'ancien nom de Control Expert pour la version 13.1 ou antérieure. ATTENTION COMPORTEMENT INATTENDU DE L'EQUIPEMENT Pour Unity Pro V4.0 et les versions antérieures, n'utilisez pas de liens pour connecter les sorties des blocs fonction lorsque votre application repose sur des données de sortie persistantes d'une EF. Le non-respect de ces instructions peut provoquer des blessures ou des dommages matériels. NOTE: Avec Unity Pro V4.0 et les versions antérieures, la désactivation d'une EF (EN=0) entraîne la réinitialisation des liens associés à ses entrées/sorties. Pour transférer l'état du signal, n'utilisez pas de lien. Une variable doit être connectée à la sortie de l'EF et être utilisée pour connecter l'entrée de l'élément. Avec Unity Pro V4.1 et les versions ultérieures, vous pouvez maintenir les liens de sortie même si une EF est désactivée en activant l'option Maintenir les liens de sortie sur les EF désactivés (EN=0) par l'intermédiaire du menu Outils > Programme > Langues > Commun. Comme spécifié dans la norme CEI 61131-3, les sorties de fonctions désactivées (entrée EN réglée sur « 0 ») ne sont pas définies. (Cette caractéristique s'applique également aux procédures.) Voici une explication des états des sorties dans un tel cas : ◦ Traitement des paramètres EN/ENO avec des fonctions/procédures qui possèdent (uniquement) une liaison en tant que paramètre de sortie : Si l'entrée EN de Function/Procedure_1 est réglée sur 0, la connexion de sortie OUT de Function/Procedure_1 est également réglée sur 0. ◦ 28 Traitement des paramètres EN/ENO avec des blocs fonction qui possèdent une variable et une liaison en tant que paramètres de sortie : 33002528.25 Types de module et leur utilisation Communication Si l'entrée EN de Function/Procedure_1 est réglée sur 0, la connexion de sortie OUT de Function/Procedure_1 est également réglée sur 0. La variable OUT1 présente sur la même broche conserve son état précédent ou peut être modifiée de manière externe sans incidence sur la connexion. La variable et la liaison sont enregistrées indépendamment l'une de l'autre. Le comportement de la sortie des FFB ne dépend pas de la façon dont les FFB sont appelés (sans EN/ENO ou avec EN=1). Appel de FFB conditionnel/inconditionnel Un FFB peut être appelé de manière « conditionnelle » ou « inconditionnelle ». La condition est établie en pré-connectant l'entrée EN. • Entrée EN connectée appels conditionnels (le FFB est exécuté uniquement si EN = 1) • Entrée EN affichée, masquée et marquée comme TRUE, ou affichée et non occupée appels inconditionnels (le FFB est traité indépendamment de l'entrée EN) NOTE: Pour les blocs fonction désactivés (EN = 0) équipés d'une fonction d'horloge interne (par exemple DELAY), le temps semble continuer de s'écouler puisqu'il est calculé à l'aide d'une horloge système et donc indépendant du cycle du programme et de la libération du bloc. ATTENTION EQUIPEMENT D'APPLICATION IMPREVU Ne désactivez pas les blocs fonction équipés d'une fonction d'horloge interne en cours de fonctionnement. Le non-respect de ces instructions peut provoquer des blessures ou des dommages matériels. Remarque concernant les langages IL et ST Les paramètres EN et ENO peuvent uniquement être utilisés dans les langages textuels et dans le cadre d'un appel de FFB formel, par exemple : MY_BLOCK (EN:=enable, IN1:=var1, IN2:=var2, ENO=>error, OUT1=>result1, OUT2=>result2); L'affectation de variables à ENO doit être effectuée à l'aide de l'opérateur =>. EN et ENO ne peuvent pas être utilisés pour un appel informel. 33002528.25 29 Disponibilité des blocs sur les différentes platesformes matérielles Communication Disponibilité des blocs sur les différentes plates-formes matérielles Contenu de ce chapitre Disponibilité des blocs sur différentes plateformes matérielles ..............................................................................30 Vue générale Tous les blocs ne sont pas disponibles sur l'ensemble des plates-formes. Ceux qui sont disponibles sur votre plate-forme matérielle sont répertoriés dans les tableaux suivants. Disponibilité des blocs sur différentes plateformes matérielles Introduction Tous les blocs ne sont pas disponibles sur toutes les plates-formes matérielles. Le tableau ci-après indique les blocs disponibles par plate-forme matérielle. NOTE: Les fonctions, procédures et blocs fonction de cette bibliothèque ne sont pas définis dans la norme IEC 61131–3. NOTE: L'utilisation de fonctions de communication n'est pas recommandé dans la tâche FAST. Pour éviter les dysfonctionnements, la meilleure solution consiste à les utiliser dans la tâche MAST. Etendu Disponibilité des blocs : Nom du bloc Type de bloc Premium Quantum M340 M580 Momentum ADDM, page 73 EF - - + + - ADDMX, page 80 EF - +(1) - + - ADDR, page 88 EF + - - - - 30 33002528.25 Disponibilité des blocs sur les différentes platesformes matérielles Communication Nom du bloc Type de bloc Premium Quantum M340 M580 Momentum CANCEL, page 91 Procédure + - + + - CLOSE_TCP_CNX, page 95 Procédure CREAD_REG, page 99 EFB - + - - - CWRITE_REG, page 106 EFB - + - - - DATA_EXCH, page 113 Procédure + - + + - ETH_PORT_CTRL, page 126 EFB + - + + - EthPort_Control_MX, page 131 EF - - - + - EXCH_QX, page 134 EFB - +(1) - - - INPUT_BYTE, page 139 Procédure + - + + - INPUT_CHAR, page 144 Procédure + - + + - INPUT_CHAR_QX, page 155 EFB - +(1) - - - MBP_MSTR, page 160 EFB - + - +(4) +(2) MODBUSP_ADDR, page 209 EFB - + - - - OUT_IN_CHAR, page 214 Procédure + - - - - OUT_IN_MBUS, page 222 DFB + - - - - PRINT_CHAR, page 250 Procédure + - + + - PRINT_CHAR_QX, page 259 EFB - +(1) - - - RCV_TLG, page 264 Procédure + - - - - READ_ASYN, page 268 Procédure + - - - - READ_DDT, page 271 EF - - - + - READ_GDATA, page 276 Procédure + - - - - READ_REG, page 279 EFB - + - - - READ_REG_QX, page 287 EFB - +(1) - - - READ_REMOTE, page 291 EFB - - + + - READ_SDO, page 299 Procédure - - - + - READ_VAR, page 304 Procédure + - + + - SEND_EMAIL, page 325 Procédure - - + - - SEND_REQ, page 329 Procédure + - - - - SEND_TLG, page 346 Procédure + - - - - 33002528.25 + 31 Disponibilité des blocs sur les différentes platesformes matérielles Communication Nom du bloc Type de bloc Premium Quantum M340 M580 Momentum SYMAX_IP_ADDR, page 351 EFB - + - - - TCP_IP_ADDR, page 355 EFB - + - - - UA_Connect, page 509 EFB - - - + - UA_ConnectionGetStatus, page 512 EFB - - - + - UA_Disconnect, page 515 EFB - - - + - UA_MonitoredItemAddList, page 533 EFB - - - + - UA_ MonitoredItemOperateList, page 536 EFB - - - + - UA_MonitoredItemRmvList, page 541 EFB - - - + - UA_NamespaceGetIndexList, page 517 EFB - - - + - UA_NodeGetHandleList, page 519 EFB - - - + - UA_NodeReleaseHandleList, page 522 EFB - - - + - UA_ReadList, page 524 EFB - - - + - UA_SubscriptionCreate, page 529 EFB - - - + - UA_SubscriptionDelete, page 531 EFB - - - + - UA_SubscriptionProcessed, page 539 EFB - - - + - UA_WriteList, page 526 EFB - - - + - UNITE_SERVER, page 360 Procédure + - - - - WRITE_ASYN, page 365 Procédure + - - - - WRITE_GDATA, page 370 Procédure + - - - - WRITE_REG, page 373 EFB - + - - - WRITE_REG_QX, page 381 EFB - +(1) - - - WRITE_REMOTE, page 385 EFB - - + + - WRITE_VAR, page 398 Procédure + - + + - XMIT, page 413 EFB - - - - + 32 33002528.25 Disponibilité des blocs sur les différentes platesformes matérielles Communication Nom du bloc Type de bloc Premium Quantum M340 M580 Momentum XXMIT, page 434 EFB - + - - +(3) + Oui - Non (1) Ces EFB ne peuvent être utilisés que pour passer par les modules de communication Quantum suivants : 140 CRP 312 00, 140 NOC 780 00, 140 NOC 781 00. Si vous les utilisez avec d'autres modules de communication, ils restent actifs jusqu'à ce que le paramètre Abort soit défini. (2) Codes d'opération pris en charge : 1 = écriture de données, 2 = lecture de données, 23 = lecture/écriture de données. (3) Momentum prend en charge la même implémentation que Quantum. REMARQUE : L'implémentation prise en charge présente une énumération de bits différente de celle de Concept/ProWORX. (4) Codes d'opération pris en charge : 1 = écriture de données, 2 = lecture de données, 14 = message explicite CIP, 15 = envoi de requête Modbus, 23 = lecture/écriture de données. 33002528.25 33 Communication Fonctionnement des EF de communication Fonctionnement des EF de communication Contenu de ce chapitre Structure et gestion des fonctions de communication..................34 Informations générales sur les fonctions de communication Premium et Atrium ...................................................................47 Informations générales sur les fonctions de communication Quantum .................................................................................51 Informations générales sur les fonctions de communication M340 ......................................................................................57 Informations générales sur les fonctions de communication M580 ......................................................................................58 Informations générales sur les fonctions de communication Momentum ..............................................................................63 Informations générales sur les fonctions de client OPC UA ..........................................................................................64 Objet de ce chapitre Ce chapitre décrit le fonctionnement et la gestion des fonctions de communication. Structure et gestion des fonctions de communication Présentation Cette section décrit la gestion des deux principaux types de fonction de communication. Il fournit également des informations générales sur la structure des fonctions de communication. Gestion des fonctions de communication Présentation Les fonctions de communication permettent à un équipement de communiquer avec un autre équipement. 34 33002528.25 Fonctionnement des EF de communication Communication Certaines sont communes à plusieurs types de voies de communication ; d'autres, propres à une seule voie de communication. Les fonctions de communication sont traitées de façon asynchrone par rapport à la tâche d'application utilisée pour les activer (à l'exception des fonctions SEND_TLG et RCV_TLG). Une fonction de communication est asynchrone lorsqu'elle est exécutée pendant un ou plusieurs cycles après le cycle dans lequel elle a été activée. Plusieurs blocs de fonction de communication peuvent être programmés sur le même port de communication. Si le nombre maximum de blocs est dépassé sur un port, les blocs excédentaires ne sont pas traités tant qu'un chemin de transaction n'est pas libéré. Lorsqu'un chemin de transaction se libère, le bloc suivant sur le même port devient actif et utilise le chemin libéré. Cette rubrique a pour objet de décrire la gestion des fonctions de communication selon leur type : • les fonctions de type EF et Procédure, • les fonctions de type EFB. NOTE: L'insertion d'une fonction élémentaire (EF) de communication dans la tâche FAST n'augmente pas la vitesse de traitement de l'EF, pas plus que la vitesse d'exécution de la communication. Toutes les communications (y compris la libération physique des messages sur toutes les liaisons de communication) sont exécutées à la fin de la tâche MAST, même si la fonction EF de communication est traitée dans la tâche FAST. Fonctions de communication de type EF et Procédure Les fonctions de communication de type EF et Procédure sont gérées comme suit : 33002528.25 35 Communication Fonctionnement des EF de communication Début d'une communication : la fonction est appelée à l'intérieur de la tâche. L'appel de la fonction déclenche la communication si l'entrée EN est à 1. Surveillance d'une communication : Le système d'exploitation de l'UC gère la communication de manière autonome. Celle-ci est traitée en mode asynchrone par rapport à la tâche qui l'a activée. Il n'est pas nécessaire de réexécuter la fonction lorsqu'elle a été activée. L'utilisateur surveille le processus de communication grâce aux paramètres de gestion mis à jour par le système d'exploitation. Pendant la communication, le bit d'activité, page 40 est mis à 1. Une fois la communication terminée (avec ou sans erreur détectée), ce bit est mis à 0. Comme la communication peut durer plusieurs cycles de tâche, il contient de tester le bit d'activité pour savoir quand la communication s'est terminée. Si la communication nécessite plusieurs cycles de tâche, réinitialisez l'entrée EN à 0 après le lancement de la fonction de communication et avant le cycle de tâche suivant. Pour maintenir une communication continue, conservez l'entrée EN à 1. Début d'une nouvelle communication : deux cas de figure sont possibles : • La fonction est appelée une fois lorsqu'une communication est requise (déclenchement sur front) : appelez la fonction avec l'entrée EN à 1 pour débuter la communication et réinitialisez EN (0) avant le cycle de tâche suivant. • La fonction est appelée de manière cyclique dans une tâche : si le bit d'activité est à 0 (communication précédente terminée, testée par la fonction lorsqu'elle est appelée), la fonction débute une nouvelle communication. Dans ce cas de figure, la communication est continue. Pour éviter de lancer une communication dans le cycle de tâche suivant, réinitialisez l'entrée EN à 0. Fonctions de communication de type EFB Les fonctions de communication de type EFB sont gérées comme suit : 36 33002528.25 Fonctionnement des EF de communication Communication Début d'une communication : la fonction est appelée à l'intérieur de la tâche, mais elle dépend de l'état de l'entrée ENABLE. Pour débuter la communication, les entrées ENABLE et EN doivent être à 1 lorsque la fonction est appelée. Surveillance d'une communication : la fonction est traitée pendant la tâche. Si la communication requiert plusieurs cycles de tâche, la fonction doit être appelée et activée dans la tâche lors de chaque cycle. Pendant la communication, la sortie ACTIVE est mise à 1. Une fois la communication terminée (avec ou sans erreur détectée), la sortie ACTIVE est mise à 0. Si la communication requiert plusieurs cycles de tâche : Début d'une nouvelle communication : • Lorsque la fonction de communication est exécutée, les entrées ENABLE et EN doivent être mises à 1 pendant la communication. La valeur de la sortie ACTIVE peut être utilisée comme une condition pour gérer l'entrée ENABLE de la fonction. Consultez l'exemple fourni dans la section sur la description des fonctions de communication M580, page 60. • Si l'entrée ENABLE ou EN est mise à 0 pendant une tâche, la fonction est désactivée et figée. Elle reprend son activité lors d'un cycle suivant si les entrées ENABLE et EN sont à 1. la fonction est appelée de manière cyclique dans une tâche à des fins de surveillance. Lorsqu'elle est appelée, elle teste elle-même son activité. Si la fonction est inactive (communication précédente terminée), les entrées ENABLE et EN doivent être mises à 1 pour qu'une nouvelle communication puisse débuter. Pour n'exécuter la fonction de communication qu'une fois, l'entrée ENABLE doit être mise à 0 lorsque la sortie ACTIVE est lue à 0. La figure suivante détaille le rôle et le fonctionnement des paramètres ENABLE, ACTIVE, DONE (ou SUCCESS) et ERROR : 1 DONE = 1 si aucune erreur détectée, DONE = 0 en cas d'erreur détectée 2 ERROR = 0 si aucune erreur détectée, ERROR = 1 en cas d'erreur détectée 33002528.25 37 Communication Fonctionnement des EF de communication Le paramètre ENABLE est écrit par l'application. Les paramètres ACTIVE, DONE et ERROR sont lus par l'application. Structure des fonctions de communication Présentation Une fonction de communication utilise : • un paramètre d'adresse, • des paramètres propres à une opération de communication, • des paramètres de gestion. Syntaxe La syntaxe d'une fonction de communication est la suivante : Fonction (adresse cible, paramètres spécifiques, paramètres de gestion) Le tableau suivant décrit les différentes entités composant une fonction : 38 Entité Description Fonction Type de fonction de communication. Adresse cible Adresse du destinataire de l'échange. Paramètres spécifiques Dépendent du type de fonction de communication. Une description est fournie pour chaque fonction de communication. Paramètres de gestion Communs à toutes les fonctions de communication asynchrones. Ils sont constitués : • d'un paramètre fournissant des données relatives à l'activité de la fonction ; • d'un paramètre indiquant le numéro d'échange identifiant la transaction en cours ; • d'un paramètre contenant le compte rendu de l'échange (comptes rendus de communication et d'opération) ; • d'un paramètre de timeout pouvant être utilisé pour vérifier l'absence de réponse ; • d'un paramètre de longueur permettant de stocker le nombre d'octets à envoyer ou le nombre d'octets reçus. 33002528.25 Fonctionnement des EF de communication Communication Adresse cible Présentation Ce paramètre indique l’adresse de l’équipement destinataire (voir Architectures et services de communication, Manuel de référence) de l’échange. Il peut être localisé : • soit par des mots internes (%MW) ou des constantes internes (%KW) • soit par écriture directe en tant que valeur immédiate Pour faciliter la phase de préparation de l'échange, il existe la fonction ADDR (uniquement Control Expert M ou version ultérieure) qui convertit une valeur immédiate de type adresse (chaîne de caractères) en un tableau comportant toujours six mots internes (%MW). Exemple %MWi:6:=ADDR(’{2.4}SYS’); Structure des paramètres de gestion Aperçu Les paramètres de gestion sont regroupés dans un tableau de quatre entiers. Les valeurs contenues dans ce tableau servent à gérer les fonctions de communication. NOTE: dans la documentation technique, ces paramètres sont également désignés par les termes « table de gestion » ou « compte rendu de gestion ». NOTE: les deux premiers mots sont gérés par le système. Vous êtes responsable de la gestion des deux derniers mots. NOTE: Sur les systèmes M580 Hot Standby, apportez les modifications suivantes aux paramètres de gestion dans l'Editeur de données : • Décochez l'attribut Echange sur l'automate redondant pour chacun des quatre paramètres de gestion. • Initialisez le paramètre Longueur à chaque appel de la fonction. • Réglez le paramètre Timeout en fonction de votre application : 33002528.25 ◦ Si la fonction de communication est envoyée via l'UC, la valeur type du timeout est de 500 ms. ◦ Si la fonction de communication est envoyée via un module NOC, la valeur type du timeout est de 2 s. 39 Communication Fonctionnement des EF de communication Structure Le tableau suivant décrit la structure des données de la table de gestion des fonctions de communication : Données gérées par le système Ordre du mot Octet de poids fort Octet de poids faible 1 Numéro d'échange Bit d'activité, page 40 : rang 0 Bit d'annulation, page 40 : rang 1 Bit d'acquittement immédiat, page 41 : rang 2 Données gérées par l'utilisateur 2 Compte rendu d'opération, page 43 3 Timeout, page 46 4 Longueur, page 45 Compte rendu de communication, page 42 Bit d'activité Ce bit indique l'état d'exécution de la fonction de communication. Il prend la valeur 1 lorsque la fonction démarre et revient à 0 une fois l'exécution terminée. Il s'agit du premier bit du premier élément de la table. Déclaration : si la table de gestion a été déclarée de la façon suivante : Tab_Gest ARRAY [1..4] OF INT, le bit d'activité est le bit avec la notation Tab_Gest [1].0. NOTE: la notation utilisée précédemment nécessite de configurer les propriétés du projet de façon à autoriser l'extraction de bits sur les entiers. Dans le cas contraire, Tab_Gest[1].0 n'est pas accessible de cette manière. Bit d'annulation Pour annuler la fonction de communication (pour les automates Modicon M340 et Modicon M580 uniquement), réglez ce bit sur 1 et relancez l'EF. Il s'agit d'une méthode alternative à l'utilisation de l'EF CANCEL, page 91. Déclaration : si la table de gestion a été déclarée de la façon suivante : Tab_Gest ARRAY [1..4] OF INT, le bit d'annulation est le bit avec la notation Tab_Gest [1].1. 40 33002528.25 Fonctionnement des EF de communication Communication Exemple de programmation en ST : annulation d'une fonction READ_VAR IF (%MW40.0) THEN SET(%MW40.1); READ_VAR(ADDM(’0.0.0.6’), ’%MW’, 100, 10, %MW40:4, %MW10:10); END_IF; %MW40 correspond au paramètre GEST (table de gestion).%MW40.0 correspond au bit d'activité de la fonction READ_VAR. Mis à 1 lorsque la fonction de communication est active. Si ce bit est à 1, le programme définit le bit %MW40.1 (qui annule la fonction) à 1. Ceci interrompt la communication de la fonction READ_VAR. NOTE: lors de l'utilisation du bit d'annulation de la fonction de communication contenu dans le mot de gestion d'échanges de la fonction (%MW40 dans cet exemple), la fonction (READ_VAR dans cet exemple) doit être appelée pour activer l'annulation de l'échange. NOTE: lors de l'utilisation du bit d'annulation de la fonction de communication, il est possible d'annuler une communication à partir d'une table d'animation. Pour cela, il suffit de mettre à 1 le bit d'annulation de la fonction (%MW40.1 dans cet exemple), puis de redémarrer la fonction de communication. Bit d'acquittement immédiat Réservé à l'EF INPUT_CHAR, page 144, ce bit force l'exécution immédiate de l'EF. Cette fonctionnalité est utile avec des modules NOM sur des stations distantes (en l'absence de réponse du module CRA dans un délai de deux minutes, le module CRP ferme automatiquement la connexion). La fonction INPUT_CHAR peut rester indéfiniment active dans le module NOM qui attend de recevoir les caractères sur la connexion série. Lorsque cette fonctionnalité est activée, le module NOM répond immédiatement à la requête de caractère d'entrée, même si aucun caractère n'est disponible (avec une longueur de caractères en réception égale à 0, bien entendu). Déclaration : si la table de gestion a été déclarée de la façon suivante : Tab_Gest ARRAY [1..4] OF INT, le bit d'acquittement immédiat est le bit avec la notation Tab_Gest[1].2. Numéro d'échange Lorsqu'une fonction de communication est envoyée, le système lui attribue automatiquement un numéro, permettant ainsi l'identification de l'échange. Ce numéro peut être utilisé lorsqu'il est nécessaire d'arrêter l'échange en cours (à l'aide de la fonction CANCEL, page 91). 33002528.25 41 Communication Fonctionnement des EF de communication Paramètres de gestion : rapports de communication et d'opération Présentation Les rapports de communication et d'opération font partie des paramètres de gestion. NOTE: il est recommandé de toujours tester les rapports de communication à la fin de leur exécution et avant l'activation suivante. Lors d'un démarrage à froid, il est impératif de vérifier tous les paramètres de gestion de la fonction de communication et de les remettre à 0. Rapport de communication Ce rapport est commun à toutes les fonctions. Il est pertinent lorsque la valeur du bit d'activité passe de 1 à 0. Les rapports dont la valeur est comprise entre 16#01 et 16#FE concernent les erreurs détectées par le processeur qui a exécuté la fonction. Les différentes valeurs de ce rapport sont répertoriées dans le tableau suivant : Valeur Rapport de communication (octet de poids faible) 16#00 Echange correct 16#01 Echange interrompu en cas de timeout NOTE: la valeur OK est renvoyée lorsqu'une UC Modicon M340 envoie une requête MODBUS BROADCAST. 42 16#02 Echange arrêté à la demande de l'utilisateur (ANNULER) 16#03 Format d'adresse incorrect 16#04 Adresse cible incorrecte 16#05 Format du paramètre Management incorrect 16#06 Paramètres spécifiques incorrects 16#07 Problème lors de l'envoi à la cible 16#08 Réservé 16#09 Taille du tampon de réception insuffisante 16#0A Taille du tampon d'envoi insuffisante 16#0B Aucune ressource système : le nombre d'EF de communication simultanées dépasse le nombre maximum autorisé par le processeur. 16#0C Numéro d'échange incorrect 33002528.25 Fonctionnement des EF de communication Valeur Rapport de communication (octet de poids faible) 16#0D Pas de réception de télégramme 16#0E Longueur incorrecte 16#0F Service de télégramme non configuré 16#10 Module réseau manquant 16#11 Requête manquante 16#12 Serveur d'application déjà actif 16#13 Numéro de transaction UNI-TE V2 incorrect 16#FF Message refusé Communication NOTE: la valeur OK est renvoyée lorsqu'un TSX SCP ••• ou un TSX SCY ••• envoie une requête DIFFUSION MODBUS. NOTE: la fonction peut détecter une erreur de paramètre avant d'activer l'échange. Dans ce cas, le bit d'activité reste à 0 et le rapport est initialisé avec les valeurs correspondant à l'erreur. NOTE: la valeur 16#FF est renvoyée, indiquant un échange correct effectué avec la fonction WRITE_VAR dans une requête de diffusion Modbus. Cette valeur de rapport est mise en œuvre dans TSX SCY 21601 à partir de la version 2.8 IE46, dans TSX SCY 11601 à partir de la version 1.2 IE11 et dans TSX SCP 111/114 à partir de la version 3.2 IR25. Rapport d'opération Cet octet de rapport est propre à chaque fonction et indique le résultat de l'opération sur l'application distante. Il n'est pertinent que si le rapport de communication a les valeurs suivantes : • 16#00 (échange correct), • 16#FF (message refusé). Si la valeur du rapport de communication est 16#00, le rapport d'opération a les valeurs suivantes : Valeur Rapport d'opération (octet de poids fort) 16#00 Résultat positif 16#01 Requête non traitée 16#02 Réponse incorrecte 16#03 Réservé 33002528.25 43 Communication Valeur Fonctionnement des EF de communication Rapport d'opération (octet de poids fort) REMARQUE : pour Premium, ce rapport signale une taille erronée de tampon de réception (le tampon de réception est trop petit pour contenir la réponse). Code de requête + 16#30 En cas de réponse positive à certaines requêtes 16#FB En cas de réponse à une requête mineure 16#FD Erreur de fonctionnement 16#FE En cas de réponse positive à une certaine requête Cette liste n'est pas exhaustive et dépend de la fonction de communication utilisée. Pour plus d'informations sur les valeurs spécifiques, consultez la fonction de communication correspondante : • Rapport d'opération en cas d'utilisation de SEND_REQ pour échanger une requête UNITE, page 333. • Rapport d'opération en cas d'utilisation de SEND_REQ pour échanger une requête Modbus (voir Premium et Atrium sous EcoStruxure™ Control Expert, Liaison série asynchrone, Manuel utilisateur). Si la valeur du rapport de communication est 16#FF, le rapport d'opération a les valeurs suivantes : 44 Valeur Rapport d'opération (octet de poids fort) 16#01 Pas de ressources vers le processeur 16#02 Pas de ressources de ligne 16#03 Aucun équipement ou équipement sans ressource (*) 16#04 Défaut ligne 16#05 Défaut de longueur 16#06 Voie de communication défectueuse 16#07 Erreur d'adressage 16#08 Erreur d'application 16#0B Aucune ressource système : le nombre d'EF de communication simultanées dépasse le nombre maximum autorisé par le processeur. 16#0C Fonction de communication non active 16#0D Destinataire absent 16#0F Problème de routage intrastation ou voie non configurée 16#11 Format d'adresse non pris en charge 33002528.25 Fonctionnement des EF de communication Valeur Rapport d'opération (octet de poids fort) 16#12 Aucune ressource cible 16#14 Connexion non opérationnelle (exemple : TCP/IP Ethernet) 16#15 Aucune ressource sur la voie locale 16#16 Accès non autorisé (exemple : TCP/IP Ethernet) 16#17 Configuration incohérente du réseau (exemple : TCP/IP Ethernet) 16#18 Connexion temporairement indisponible 16#21 Serveur d'application arrêté 16#30 Erreur d'émission Communication Légende : (*) Code uniquement pris en charge par les cartes PCMCIA : TSX FPP20 et TSX FPP10 Paramètres de gestion : longueur et timeout Présentation Vous devez définir ces deux paramètres. Longueur Le paramètre de longueur est utilisé pour définir le nombre de caractères (en octets) à envoyer lors de l'émission, mais également pour stocker le nombre de caractères (en octets) reçus après la réception d'un message. Avant le lancement de certaines fonctions de communication (SEND_REQ, DATA_EXCH, PRINT_CHAR et SEND_TLG), il est recommandé, voire obligatoire pour certaines d'entre elles, de mettre à jour le paramètre de longueur. NOTE: Avec la fonction PRINT_CHAR, par exemple, si une autre fonction de l'application utilise la même table de compte rendu dans laquelle le nombre d'octets à envoyer est différent de celui de la fonction précédente, il est impératif d'initialiser le paramètre de longueur avec le nouveau nombre d'octets à émettre. Sinon, le nombre d'octets envoyés par la fonction précédente est conservé. 33002528.25 45 Communication Fonctionnement des EF de communication Timeout Le timeout définit le temps d'attente maximum de la réponse. La base de temps pour ce paramètre est de 100 ms (la valeur 0 correspond à une attente infinie). Une fois le timeout expiré, l'échange se termine avec un compte rendu d'erreur. En outre, le système n'accepte aucune réponse après la fin du timeout. Exemple NOTE: 46 • Le timeout est évalué toutes les secondes. • La valeur de timeout d'une fonction de communication doit être suffisamment élevée pour garantir la réception de la réponse à la question posée (utilisation d'un modem externe sur une liaison basée sur un protocole, par exemple). • Pour les communications de maître Modbus, un timeout d'application défini dans les fonctions de communication doit être supérieur au timeout de l'écran de configuration multiplié par le nombre de tentatives (timeout matériel). • Le timeout des EF de communication (telles que WRITE_VAR ou READ_VAR) doit être supérieur au timeout de l'équipement maître de communication (délai de réponse). 33002528.25 Fonctionnement des EF de communication Communication Informations générales sur les fonctions de communication Premium et Atrium Objet de cette partie Cette section décrit le fonctionnement et la gestion des fonctions de communication pour les automates Premium et Atrium. Règles d'utilisation des fonctions de communication des automates Premium et Atrium Présentation Les fonctions de communication utilisées avec les automates Premium et Atrium présentent certaines caractéristiques uniques qui les différencient des autres fonctions de la bibliothèque. Le présent document respecte la charte de documentation relative à la bibliothèque de fonctions. Il contient également des informations supplémentaires concernant les particularités des modules métiers de communication. Variables localisées Toutes les fonctions de communication ne nécessitant pas de programmation au niveau du serveur (READ_VAR, WRITE_VAR, etc.) donnent accès aux variables localisées des automates distants. Les variables non localisées ne sont pas accessibles. NOTE: pour transférer des variables non localisées entre automates, il est nécessaire d'utiliser la fonction DATA_EXCH. Une autre solution consiste à réaliser des copies locales dans les zones de variables localisées. Sauf pour le premier exemple concernant la fonction WRITE_VARControl Expert ( et versions ultérieures uniquement) tous les autres exemples utilisent des variables d'adressage direct (voir EcoStruxure™ Control Expert, Langages de programmation et structure, Manuel de référence) (utilisation d'adresses, de variables localisées). Langage de programmation Le langage de programmation le plus concis pour la création d'applications de communication est le langage littéral structuré (ST - Structured Text). Tous les exemples, à l'exception de la fonction READ_VAR, page 304, sont écrits en langage ST. 33002528.25 47 Communication Fonctionnement des EF de communication Fonctions de communication sur les automates Premium et Atrium Présentation Ces fonctions permettent à un équipement de communiquer avec un autre. Certaines sont communes à plusieurs types de voies de communication ; d'autres, propres à une seule voie de communication. NOTE: les fonctions de communication sont traitées de façon asynchrone par rapport à la tâche d'application utilisée pour les activer. Les seules exceptions sont les fonctions d'envoi/réception de télégramme et d'arrêt d'opération, qui sont exécutées en synchronisation totale avec la tâche d'activation. Fonctions de communication asynchrones Une fonction de communication est asynchrone lorsqu'elle est exécutée pendant un ou plusieurs cycles après celui qui l'a activée. Le tableau suivant présente les fonctions de communication à exécution asynchrone : 48 Fonction Rôle DATA_EXCH Envoyer/demander un accusé de réception de données. ETH_PORT_ CTRL Activer ou désactiver un protocole. INPUT_BYTE Lire un tableau de données. INPUT_CHAR Lire une chaîne de caractères. OUT_IN_CHAR Envoyer une chaîne de caractères et attendre une réponse. OUT_IN_MBUS Emuler une communication maître Modbus à partir d'une liaison série configurée en mode caractère. PRINT_CHAR Ecrire une chaîne de caractères. READ_ASYN Lire 1 Ko de messages. READ_GDATA Lire des données Modbus Plus communes. READ_VAR Lire des objets langage standard : mots et bits internes, mots et bits système, temporisateurs, monostables, programmateurs cycliques, registres, compteurs. SEND_REQ Envoyer des requêtes UNI-TE. UNITE_ SERVER Traiter des requêtes READ_VAR et WRITE_VAR immédiatement sur Modbus (serveur immédiat). WRITE_ASYN Ecrire 1 Ko de messages. 33002528.25 Fonctionnement des EF de communication Communication Fonction Rôle WRITE_GDATA Ecrire des données Modbus Plus communes. WRITE_VAR Ecrire des objets langage standard : mots et bits internes, mots et bis système. NOTE: il est recommandé de déclencher les fonctions asynchrones sur un front et non sur un état, pour éviter de saturer les tampons de communication par l'envoi de multiples requêtes. Pour la même raison, il est également conseillé de gérer le bit d'activité, page 40 et les mots de compte rendu, page 42 pendant l'exécution de chaque fonction de communication. Fonctions de communication synchrones Une fonction de communication est dite synchrone lorsqu'elle s'exécute totalement pendant la tâche automate qui l'a activée. Le tableau suivant présente les fonctions de communication à exécution synchrone : Fonction Rôle CANCEL Arrêter un échange en cours. RCV_TLG Recevoir un télégramme. SEND_TLG Envoyer un télégramme. Fonctions de communication utilitaire Ces fonctions sont exécutées de manière synchrone. Une fonction de communication est dite synchrone lorsqu'elle s'exécute totalement pendant la tâche automate qui l'a activée. Le tableau suivant présente la fonction de communication utilitaire : Fonction Rôle ADDR Convertir une chaîne de caractères en une adresse (tableau de 6 entiers) exploitable directement par la fonction de communication. Fonction de serveur Présentation La fonction de serveur peut servir à répondre aux requêtes émanant d'équipements clients. 33002528.25 49 Communication Fonctionnement des EF de communication Les processeurs TSX 57 35• et PCX 57 35• disposent de deux serveurs de requêtes : • un serveur principal (recommandé pour les requêtes inférieures à 256 octets), • un serveur auxiliaire (recommandé pour les requêtes de 1 024 octets maximum). Ces deux serveurs peuvent être activés simultanément. Illustration Le diagramme suivant illustre l'envoi des requêtes aux serveurs au cours du cycle d'automate : Serveur principal Ce serveur correspond au port 0 (serveur UNI-TE). Il est activé au démarrage du cycle MAST de l'automate. Le temps de réponse de l'automate client varie en fonction de la durée du cycle de l'automate du serveur. Il est ainsi possible de traiter jusqu'à 4 requêtes simultanées par cycle d'automate. 50 33002528.25 Fonctionnement des EF de communication Communication Toutes les requêtes UNI-TE sont prises en charge. Une requête doit être inférieure à 256 octets. Cette entité peut être adressée à l'adresse topologique SYS ou {réseau.station}SYS. Serveur auxiliaire Ce serveur correspond au port 7 (serveur asynchrone). Il est activé uniquement pour des tâches périodiques à la fin du cycle d'automate, une fois la tâche MAST traitée alors que le cycle suivant est sur le point de démarrer. Le démarrage du cycle suivant, avec une priorité plus élevée, peut interrompre une requête en cours. C'est pourquoi l'accès à ce serveur est réservé aux applications pour lesquelles les opérations de lecture/écriture de données ne doivent pas nécessairement correspondre. Le temps de réponse de l'application dépend essentiellement de la durée du cycle de l'automate. La taille d'une requête peut atteindre jusqu'à 1 024 octets. Ce serveur n'est pas accessible via une fonction de communication. Il traite les requêtes de lecture et écriture des objets (bit ou mot), etc. Informations générales sur les fonctions de communication Quantum Présentation Ce sous-chapitre décrit le fonctionnement et la gestion des fonctions de communication des automates Quantum. 33002528.25 51 Communication Fonctionnement des EF de communication Règles d'utilisation des fonctions de communication des automates Quantum Mode de fonctionnement des paramètres Enable, Active, Done et Error Les paramètres ENABLE, ACTIVE, DONE (ou SUCCESS) et ERROR fonctionnent de la manière suivante : (1) DONE = 1 si aucune erreur, DONE = 0 si erreur (2) ERROR = 0 si aucune erreur, ERROR = 1 si erreur Le paramètre ENABLE est écrit par l'application. Les paramètres ACTIVE, DONE et ERROR sont lus par l'application. Pour ne lancer la fonction de communication qu'une seule fois, le signal ENABLE doit être remis à 0 dès que le paramètre ACTIVE est réglé sur 0. Si le paramètre ENABLE est maintenu à 1 lorsque le paramètre ACTIVE est réglé sur 0, la fonction de communication est relancée et le paramètre ACTIVE sera réglé sur 1 lors du cycle suivant. Communication avec des stations Ethernet distantes Lorsqu'une fonction de communication xxx_QX est utilisée pour effectuer des échanges avec des stations Ethernet, il est vivement recommandé de tester l'état de validité de communication de la station Ethernet avant de lancer la fonction de communication. L'exécution d'une fonction de communication adressée à une station défaillante peut prendre jusqu'à 2 minutes. Elle se termine alors avec un état d'erreur suite à l'expiration du délai de transaction (le participant distant n'ayant pas répondu dans le délai imparti). 52 33002528.25 Fonctionnement des EF de communication Communication NOTE: l'exécution des fonctions de communication peut être ralentie si tous les ports de communication sont déjà utilisés par des fonctions de communication. Informations sur l'état de validité de la communication : • %SW172 à %SW173 (voir EcoStruxure™ Control Expert, Bits et mots système, Manuel de référence). Etat d'erreur détectée de communication avec la station d'E/S distantes Ethernet. Un bit de ces mots d'état est réglé sur 0 lorsque la connexion correspondante entre l'automate et la station ne fonctionne pas correctement. • DROP_COM_HEALTH (voir Quantum EIO, Modules d'E/S distantes, Guide d'installation et de configuration). Champ de la structure du DDT associé à une station. Exemple d'utilisation des paramètres en FBD Le schéma FBD ci-dessous montre comment obtenir en permanence les inforrmations d'état de la voie 0 : • d'un module Modicon X80 situé dans le rack 0, emplacement 8 de l'instance de station n°2, à l'adresse IP : 192.168.100.32 ; • via un module de communication d'E/S 140 CRP 312 00 dans l'emplacement 4 du rack local Quantum. Description de la séquence de communication : 33002528.25 53 Communication Etape Fonctionnement des EF de communication Action et résultat 1 Lorsque le bloc READ_STS_QX_Instance n'est pas actif, il est démarré si l'état de validité de la communication de la station est réglé sur 1. 2 READ_STS_QX_Instance est appelé après chaque scrutation suivante, jusqu'à ce que l'opération se termine : 3 • en ayant abouti (DONE réglé sur 1), • ou en ayant échoué (ERROR réglé sur 1). Si l'opération : • aboutit, le mot d'état du module Modicon X80 peut être utilisé dans la variable associée au paramètre STS du bloc ; • échoue, le code d'erreur peut être lu dans le paramètre STATUS. Si la liaison de communication avec la station est rompue, DROP_COM_HEALTH passe à 0 et l'opération en cours est interrompue (STATUS = 16#1001). NOTE: si le paramètre ABORT n'est pas déclenché, le bloc reste actif jusqu'à la fin du timeout de la transaction et la communication s'interrompt suite à une erreur (STATUS = 16#5303). Fonctions de communication sur les automates Quantum Fonctions de communication et chemins de transaction Les blocs fonction de communication utilisent un chemin de transaction de données et requièrent plusieurs cycles pour effectuer une opération. Le nombre de chemins de transaction disponibles par module et par cycle MAST dépend du port de communication utilisé : • Les modules à port intégré Modbus Plus ou NOM prennent en charge jusqu'à 4 blocs simultanément. • Le port intégré Ethernet TCP/IP prend en charge jusqu'à 4 blocs simultanément. • Les modules TCP/IP Ethernet NOE, NOC et 140 CRP 312 00 prennent en charge jusqu'à 16 blocs simultanément. D'autres blocs fonction de communication peuvent être programmés sur le même port de communication. Toutefois, le bloc de communication qui dépasse le nombre maximum sur ce port n'est traité qu'après la mise à disposition d'un des chemins de transaction. Le bloc suivant sur le port devient alors actif et commence à utiliser un chemin disponible. 54 33002528.25 Fonctionnement des EF de communication Communication Fonctions de communication disponibles sur les CPU d'entrée de gamme Rôles des fonctions de communication : Fonction Rôle CREAD_REG Lire en continu une zone de registre à partir d'un esclave adressé via Modbus Plus, TCP/IP-Ethernet ou SY/MAX-Ethernet. CWRITE_REG Ecrire en continu une zone de registre dans un esclave adressé via Modbus Plus, TCP/IP-Ethernet ou SY/MAX-Ethernet. MBP_MSTR Exécuter différentes opérations de communication réseau sur Modbus Plus, TCP/IPEthernet ou SY/MAX-Ethernet. READ_REG (1) Lire une zone de registre à partir d'un esclave adressé via Modbus Plus, TCP/IPEthernet ou SY/MAX-Ethernet. WRITE_REG (1) Ecrire une zone de registre dans un esclave adressé via Modbus Plus, TCP/IPEthernet ou SY/MAX-Ethernet. XXMIT Messages Modbus émis par l'automate maître et des chaînes d'E/S ASCII. (1) Les fonctions de communication READ_REG et WRITE_REG sont exécutées lorsqu'un front apparaît sur l'entrée REG. La communication débute lorsque REG est mis à 1. Puis, REG doit être réinitialisé (0) et remis à 1 pour relancer la communication. Fonctions de communication disponibles sur les CPU haut de gamme Rôles des fonctions de communication : Fonction Rôle CREAD_REG Lire en continu une zone de registre à partir d'un esclave adressé via Modbus Plus, TCP/IP-Ethernet ou SY/MAX-Ethernet. CWRITE_REG Ecrire en continu une zone de registre dans un esclave adressé via Modbus Plus, TCP/IP-Ethernet ou SY/MAX-Ethernet. EXCH_QX Exécuter des transferts de données via un bus EIO entre des esclaves Modbus connectés à un rack Modicon X80. GET_TS_EVT_Q (2) Récupérer des données horodatées dans un module Modicon BMX ERT 1604T ou BMX CRA ••••• d'une station EIO. INPUT_CHAR_QX Recevoir une chaîne de caractères envoyée par un module de communication série Modicon X80 via un bus EIO. MBP_MSTR Exécuter différentes opérations de communication réseau sur Modbus Plus, TCP/IPEthernet ou SY/MAX-Ethernet. PRINT_CHAR_QX Envoyer une chaîne de caractères d'au maximum 1000 octets depuis un maître Modbus Modicon X80 via un bus EIO. 33002528.25 55 Communication Fonctionnement des EF de communication Fonction READ_REG Rôle (1) Lire une zone de registre à partir d'un esclave adressé via Modbus Plus, TCP/IPEthernet ou SY/MAX-Ethernet. READ_REG_QX Lire les registres d'un esclave Modbus connecté à un maître Modbus Modicon X80 via un bus EIO. READ_STS_QX (*) Lire les mots d'état d'un module d'E/S Ethernet Modicon X80 par un échange explicite avec la mémoire du processeur. WRITE_CMD_QX (*) Envoyer une commande à un module d'E/S Ethernet Modicon X80 avec un mot de commande en effectuant un échange explicite? WRITE_REG (1) Ecrire une zone de registre dans un esclave adressé via Modbus Plus, TCP/IPEthernet ou SY/MAX-Ethernet. WRITE_REG_QX Ecrire des registres dans un esclave Modbus connecté à un maître Modbus Modicon X80 via un bus EIO. XXMIT Messages Modbus émis par l'automate maître et des chaînes d'E/S ASCII. * : READ_STS_QX et WRITE_CMD_QX font partie de la bibliothèque de gestion des E/S (famille des échanges explicites) (voir EcoStruxure™ Control Expert, Gestion des E/S, Bibliothèque de blocs). 1 : les fonctions de communication READ_REGe t WRITE_REG sont exécutées lorsqu'un front apparaît sur l'entrée REG. La communication débute lorsque REG est mis à 1. Puis, REG doit être réinitialisé (0) et remis à 1 pour relancer la communication. 2 : GET_TS_EVT_Q fait partie de la bibliothèque système (famille SysClock (voir EcoStruxure™ Control Expert, Système, Bibliothèque de blocs)). Fonctions utilitaires Ces fonctions synchrones sont communes aux UC d'entrée de gamme et haut de gamme. Une fonction est dite synchrone lorsqu'elle s'exécute totalement pendant la tâche d'UC qui l'a activée. Rôles des fonctions de communication : 56 Fonction Rôle ADDMX Convertir une chaîne de caractères (respectant la syntaxe des adresses d'équipement Control Expert) en un tableau d'entiers pour prendre en charge les modules de liaison série Modicon X80 dans une station d'E/S Ethernet ModbusP_ADDR Convertir une adresse Modbus Plus en une adresse directement utilisable par les fonctions de communication. SYMAX_IP_ADDR Convertir une adresse SYMAX/IP en une adresse directement utilisable par les fonctions de communication. TCP_IP_ADDR Convertir une adresse TCP/IP en une adresse directement utilisable par les fonctions de communication. 33002528.25 Fonctionnement des EF de communication Communication Informations générales sur les fonctions de communication M340 Présentation Cette section décrit le fonctionnement et la gestion des fonctions de communication sur les UC M340. Fonctions de communication sur les automates M340 Règles d'utilisation des fonctions de communication héritées sur les UC M340 Les UC M340 utilisent des fonctions de communication de type EF et Procédure, page 35. Fonctions de communication héritées disponibles sur les UC M340 Rôle des fonctions de communication héritées : Nom Rôle DATA_EXCH Emettre ou recevoir des données. INPUT_BYTE Recevoir un tableau d'octets sur une liaison en mode caractère d'un module BMX NOM situé dans un rack local ou lié à une voie de communication intégrée d'une UC. INPUT_CHAR Réception d'une chaîne de caractères sur une liaison en mode caractère d'un module BMX NOM situé dans un rack local ou relié à une voie de communication intégrée à l'UC. PRINT_CHAR Envoi d'une chaîne de caractères sur une liaison en mode caractère d'un module BMX NOM situé dans un rack local ou relié à une voie de communication intégrée à l'UC. READ_VAR Lecture de la valeur d'un ou plusieurs objets de langage via un module de communication situé dans un rack ou relié à une voie de communication intégrée à l'UC. SEND_EMAIL Envoi d'un e-mail via un port Ethernet d'un module de communication connecté sur un rack local. WRITE_VAR Ecrire la valeur d'un ou de plusieurs objets langage via un module de communication situé dans un rack local ou lié à une voie de communication intégrée d'une UC. 33002528.25 57 Communication Fonctionnement des EF de communication Autres fonctions de communication disponibles sur les UC M340 Rôle des autres fonctions de communication : Nom Rôle ETH_PORT_CTRL Activer ou désactiver un protocole. GET_TS_EVT_M (1) Obtenir les données horodatées dans un module Modicon BMX ERT 1604T connecté sur un rack local. 1 : GET_TS_EVT_M fait partie de la bibliothèque système (famille SysClock (voir EcoStruxure™ Control Expert, Système, Bibliothèque de blocs)). Fonctions utilitaires disponibles sur les UC M340 Ces fonctions sont exécutées de manière synchrone. Une fonction est synchrone lorsqu'elle est intégralement exécutée au cours de la tâche d'UC qui l'a activée. Rôle des fonctions utilitaires : Nom Rôle ADDM Convertir une chaîne de caractères en une adresse exploitable directement par les fonctions de communication READ_VAR, WRITE_VAR, DATA_EXCH et PRINT_CHAR. CANCEL Interrompre une fonction de communication asynchrone en cours d'exécution. NOTE: L'utilisation du bit d'annulation, page 40 des paramètres de gestion permet également d'annuler une fonction de communication asynchrone. Informations générales sur les fonctions de communication M580 Présentation Cette section décrit le fonctionnement et la gestion des fonctions de communication sur les UC M580. 58 33002528.25 Fonctionnement des EF de communication Communication Règles d'utilisation des fonctions de communication des UC M580 Présentation Les UC M580 utilisent les deux types de fonctions de communication : • les fonctions de type EF et Procédure, • les fonctions de type EFB. Pour une description générale de la gestion des fonctions de communication en fonction de leur type, consultez la section Gestion des fonctions de communication, page 36. Communication avec des stations Ethernet distantes Lorsqu'une fonction de communication ***_MX est utilisée pour effectuer des échanges avec des stations Ethernet, il est vivement recommandé de tester l'état de communication de la station Ethernet avant de lancer la fonction de communication. Une fonction de communication adressée à une station défaillante peut prendre jusqu'à 2 minutes pour s'exécuter. Elle se termine alors avec un état d'erreur suite au timeout de la transaction (le participant distant n'ayant pas répondu dans le délai imparti). NOTE: l'exécution des autres fonctions de communication peut être ralentie si tous les ports de communication sont déjà utilisés par des fonctions de communication. Les informations sur l'état de validité de la communication sont fournies dans le champ DROP_COM_HEALTH (voir Modicon M580, Modules RIO, Guide d'installation et de configuration) du DDT d'équipement associé à la station. 33002528.25 59 Communication Fonctionnement des EF de communication Exemple d'utilisation des paramètres en FBD Le schéma ci-dessous en FBD montre comment obtenir les informations d'état de la voie 1 d'un module BMX NOM 0200 situé dans le rack 0, emplacement 3 de l'instance de station numéro 3 (le DDT associé peut être par exemple : MOD_COM_3 ou si le nom par défaut EIO2_d3_r0_s3_ NOM0200_3 est conservé) à l'adresse IP 192.168.10.84. read_sts_en_3 doit être défini sur 1. Lorsque le bloc READ_STS_MX_3 n'est pas actif, il est démarré si la variable read_sts_ enable_3 est définie sur 1 par l'utilisateur et que l'état de validité de communication de la station est OK. Chaque scrutation suivante jusqu'à ce que l'opération se termine avec succès (DONE défini sur 1) ou par un échec détecté (ERROR défini sur 1). En cas de succès, les mots d'état du module peuvent être exploités dans la variable liée au paramètre STS du bloc. Si la liaison de communication avec la station est rompue, MOD_ COM_3.DROP_COM_HEALTH passe à 0 et l'opération en cours est interrompue avec le code d'erreur 1001 hex. Si la broche ABORT n'est pas connectée, le bloc s'exécute jusqu'à l'expiration du délai de transaction (15 secondes pour les fonctions ***_MX) et se termine par une erreur avec le code d'état 3401 hex. 60 33002528.25 Fonctionnement des EF de communication Communication Fonctions de communication sur les automates M580 Fonctions de communication héritées disponibles sur les UC M580 Rôle des fonctions de communication héritées : Nom Rôle DATA_EXCH Mettre fin à toutes les requêtes (Modbus, Umas…) envoyées à tout esclave Modbus via un module de communication connecté sur un rack local ou une station EIO. INPUT_BYTE Recevoir un tableau d'octets sur une liaison en mode caractère d'un module BMX NOM connecté sur un rack local ou une station EIO. INPUT_CHAR Recevoir une chaîne de caractères sur une liaison en mode caractère d'un module BMX NOM connecté sur un rack local ou une station EIO. PRINT_CHAR Envoyer une chaîne de caractères sur une liaison en mode caractère d'un module BMX NOM connecté sur un rack local ou une station EIO. READ_VAR Lire la valeur d'un ou de plusieurs objets langage via un module de communication connecté sur un rack ou une station EIO. SEND_EMAIL Envoyer un e-mail via un port Ethernet d'un module de communication connecté dans un rack local (impossible de connecter des modules Ethernet dans une station EIO). WRITE_VAR Ecrire la ou les valeurs d'un ou de plusieurs objets langage via un module de communication connecté sur un rack local ou une station EIO. Autres fonctions de communication disponibles sur les UC M580 Rôle des autres fonctions de communication : Nom Rôle ETH_PORT_CTRL Activer ou désactiver un protocole. EthPort_Control_MX Activer ou désactiver les services Ethernet configurés. GET_TS_EVT_M (1) Obtenir les données horodatées dans un module Modicon BMX ERT 1604T ou BMX CRA ••••• connecté sur un rack local ou une station EIO. READ_PARAM_MX (2) (3) Lire les mots de paramètre d'un module d'E/S Modicon X80 connecté sur un rack local en effectuant un échange explicite. READ_STS_MX (2) Lire les mots d'état d'un module d'E/S Modicon X80 connecté sur un rack local ou une station EIO en effectuant un échange explicite. RESTORE_PARAM_MX (2) Restaurer les mots de paramètre d'un module d'E/S Modicon X80 connecté sur un rack local en effectuant un échange explicite. (3) 33002528.25 61 Communication Fonctionnement des EF de communication Nom Rôle SAVE_PARAM_MX (2) (3) Enregistrer les mots de paramètre d'un module d'E/S Modicon X80 connecté sur un rack local en effectuant un échange explicite. WRITE_CMD_MX (2) Envoyer une commande à un module d'E/S Modicon X80 connecté sur un rack local ou une station EIO en effectuant un échange explicite. WRITE_PARAM_MX (2) (3) Ecrire les mots de paramètre d'un module d'E/S Modicon X80 connecté sur un rack local en effectuant un échange explicite. 1 : GET_TS_EVT_M fait partie de la bibliothèque système (famille SysClock (voir EcoStruxure™ Control Expert, Système, Bibliothèque de blocs)). 2 : READ_STS_MX, WRITE_CMD_MX, READ_PARAM_MX, WRITE_PARAM_MXSAVE_PARAM_MX et RESTORE_PARAM_MX font partie de la bibliothèque de gestion des E/S (famille des échanges explicites (voir EcoStruxure™ Control Expert, Gestion des E/S, Bibliothèque de blocs)). 3 : READ_PARAM_MX, WRITE_PARAM_MX, SAVE_PARAM_MX et RESTORE_PARAM_MX ne s'utilisent qu'avec les modules d'E/S connectés dans un rack local. Lors d'un envoi vers un module sur une station EIO, le code d'erreur 16#2007 (champ réseau non autorisé sur l'esclave) est renvoyé. Fonctions utilitaires disponibles sur les UC M580 Ces fonctions sont exécutées de manière synchrone. Une fonction est synchrone lorsqu'elle est intégralement exécutée au cours de la tâche d'UC qui l'a activée. Rôle des fonctions utilitaires : Nom Rôle ADDM Convertir une chaîne de caractères en une adresse exploitable directement par les fonctions de communication. ADDMX Convertir une chaîne de caractères respectant la syntaxe d'adresse d'équipement Control Expert en un tableau d'entiers. CANCEL Interrompre une fonction de communication asynchrone en cours d'exécution. NOTE: L'utilisation du bit d'annulation, page 40 des paramètres de gestion permet également d'annuler une fonction de communication asynchrone. NOTE: 62 • Pour adresser un module sur une station EIO, la chaîne d'adresse à utiliser avec ADDMX doit être "0.0.3 {xx.xx.xx.xx}" (3 : la voie 3 de l'UC correspond au port intégré Ethernet de l'UC ; xx.xx.xx.xx correspond à l'adresse IP de la station). • Pour adresser un module sur un rack local avec des fonctions ***_MX, la chaîne d'adresse doit être "0.0.10" (adresse du serveur principal de l'UC). 33002528.25 Fonctionnement des EF de communication Communication Informations générales sur les fonctions de communication Momentum Présentation Cette section décrit le fonctionnement et la gestion des fonctions de communication sur les UC Momentum. Fonctions de communication sur les automates Momentum Règles d'utilisation des fonctions de communication de type EFB ou DFB sur les automates Momentum Les automates Momentum utilisent des fonctions de communication de type EFB. Pour plus d'informations sur la gestion de ces fonctions de communication, consultez la section Gestion des fonctions de communication, page 34. Fonctions de communication disponibles sur les automates Momentum Rôles des fonctions de communication : Fonction Rôle MBP_MSTR Effectuer différentes opérations de communication réseau sur Modbus Plus, TCP/IPEthernet. XMIT Messages Modbus émis par l'automate maître et des chaînes d'E/S ASCII. XXMIT Messages Modbus émis par l'automate maître et des chaînes d'E/S ASCII. 33002528.25 63 Communication Fonctionnement des EF de communication Informations générales sur les fonctions de client OPC UA Présentation Ce chapitre présente les fonctions de client OPC UA. Définition des blocs UA PLCopen Les blocs PLCopen sont définis pour prendre en charge la communication UA du client dans un programme IEC1131-3. UA_Connect crée une connexion de transport pour une session OPC UA. UA_Connect doit être exécuté une fois pour chaque connexion. UA_ NamespaceGetIndexList est exécuté une fois pour chaque espace de noms. Le descripteur NodeHdl d'un noeud spécifique est récupéré une fois pour toutes. UA_ReadList et UA_ WriteList peuvent être exécutés aussi souvent que nécessaire dans l'application dans la limite imposée par le système (en fonction du temps de réponse global du serveur OPC UA) . Une fois la communication terminée, le descripteur de noeud n'est plus requis et il est libéré via UA_NodeReleaseHandleList (exécuté pour tous les descripteurs concernés). Le descripteur de connexion est libéré à l'aide de UA_Disconnect. Une liste est traitée comme un tableau du type de base associé (par exemple, UANodeID ou UANodeAdditionalInfo). En outre, une longueur définie contient le nombre d'éléments du tableau. Bien que plusieurs tableaux puissent être connectés au bloc fonction (par exemple, les descripteurs de noeud et les variables dans le cas de UA_ReadList), la longueur est unique car tous les tableaux ont le même nombre d'éléments à traiter. UA_NodeGetHandleList renvoie un tableau d'éléments UANodeHdl. Cet appel ne vérifie pas que l'identifiant UANodeID indiqué est valide. 64 33002528.25 Fonctionnement des EF de communication Communication UANodeID est vérifié uniquement pour déterminer s'il est structurellement correct (par exemple, il ne s'agit pas de l'une des valeurs UAIdentifierType mentionnées). Si sa structure n'est pas correcte, une erreur est détectée et l'élément d'erreur correspondant (NodeErrorIDs) est renvoyé. Le tableau de sortie de UA_NodeGetHandleList peut être utilisé tel quel pour les appels ultérieurs aux blocs fonction UA_ReadList et UA_WriteList, mais l'implémentation du contrôle vérifie l'élément d'erreur correspondant (NodeErrorIDs). Si une erreur générale est détectée, aucune sortie n'est modifiée par rapport à l'implémentation sous-jacente. Mode de surveillance UA Le mode de surveillance permet de lire les valeurs des variables de serveur. Il remplace la méthode de regroupement en appelant périodiquement la méthode UA_ReadList. Les blocs fonction suivants sont utilisés pour créer des souscriptions et y ajouter des éléments surveillés. • Création d'une souscription : Pour créer une souscription, un descripteur de connexion valide est nécessaire. Le descripteur de connexion est acquis à l'aide de UA_Connect une fois pour toutes. UA_SubscriptionCreate crée une souscription et doit être appelé pour chaque souscription nécessaire. La valeur SubscriptionHdl applicable est renvoyée lorsque l'exécution du bloc fonction UA_SubscriptionCreate aboutit. • Surveillance d'un élément : Pour surveiller un élément, un NodeHdl pour le noeud concerné est nécessaire. Par conséquent, UA_SubscriptionCreate et UA_ NodeGetHandleList vont être appelés tous les deux avant l'appel du UA_ MonitoredItemAddList associé. • Ajout d'éléments : UA_MonitoredItemAddList permet d'ajouter des éléments à une souscription identifiée par SubscriptionHdl. Les éléments à surveiller sont affectés à ce bloc fonction sous forme de descripteur de noeud NodeHdl. • Fin de souscription : Lorsque la communication est terminée, n'oubliez pas de supprimer la souscription. Libérez le descripteur de noeud avant de vous déconnecter. Si UA_SubscriptionDelete n'est pas appelé, la souscription continue de fonctionner, même si UA_NodeReleaseHandleList est appelé. 33002528.25 65 Communication Fonctionnement des EF de communication Modes de surveillance Les modes de surveillance inversent l'interaction de communication : Le programme de contrôle initie la communication, mais cela entraîne la transmission de valeurs du serveur OPC UA vers le programme de contrôle. Comme le montre le schéma ci-dessus, une souscription et des éléments surveillés doivent être configurés. Il existe deux modes pour récupérer les valeurs les plus récentes au sein du programme de contrôle : • Synchronisation du contrôleur : Utilisation du bloc fonction UA_MonitoredItemAddList avec UAMonitoringSyncMode (UAMS_ControllerSync) : les valeurs mises à jour sont récupérées une fois l'appel UA_ MonitoredItemOperateList terminé. Cela signifie que la logique du programme de contrôle détermine quand les valeurs sont mises à jour. Si ce bloc n'est pas appelé, aucune mise à jour n'est fournie au programme de contrôle. Le traitement actuellement spécifié des éléments surveillés et des souscriptions est basé sur la liaison d'un noeud UA (identifié par NodeHdl) à une variable d'automate (définie dans le programme de l'automate). En appelant le bloc fonction UA_ MonitoredItemOperateList, les valeurs fournies par le serveur UA sont transférées dans les variables de l'automate. 66 33002528.25 Fonctionnement des EF de communication • Communication Synchronisation du micrologiciel : Le micrologiciel met à jour les valeurs en interne dans la mémoire du contrôleur. Après avoir ajouté des éléments surveillés, le programme de contrôle peut appeler UA_ SubscriptionProcessed pour savoir si des valeurs ont été modifiées. Cependant, le programme de contrôle n'a pas forcément la main sur le moment où les mises à jour sont déployées dans sa mémoire. En mode de synchronisation micrologiciel, la mise à jour est effectuée au début de la tâche MAST. Les deux modes de surveillance (synchronisation du contrôleur et synchronisation du micrologiciel) sont fournis. En général, une taille de file d'attente QueueSize supérieure à la taille du tableau de variables de l'automate renvoie une erreur détectée, indiquée dans les NodeErrorIDs correspondants de UA_MonitoredItemAddList immédiatement après le retour de l'appel. Un débordement (valeurs perdues) est signalé dans les NodeQualityIDs appropriés et les valeurs minimales perdues sont signalées dans le paramètre MinLostValueCount associé. En général, une taille de file d'attente QueueSize supérieure à la taille du tableau de variables de l'automate renvoie une erreur détectée, indiquée dans les NodeErrorIDs correspondants de UA_MonitoredItemAddList immédiatement après le retour de l'appel. Un débordement (valeurs perdues) est signalé dans les NodeQualityIDs appropriés et les valeurs minimales perdues sont signalées dans le paramètre MinLostValueCount associé. Le paramètre QueueSize défini dans la structure UAMonitoringParameter peut être utilisé pour indiquer le mode de surveillance : Avec la configuration de QueueSize > 1 dans le but de ne pas perdre de données modifiées, il incombe également à l'utilisateur de récupérer ces valeurs une par une. QueueSize est donc utilisé pour déterminer le mode de fonctionnement comme suit : QueueSize > 0 avec un exemple de file d'attente de cette taille. Si la valeur est "0", la valeur de QueueSize "1" est appliquée. Cela signifie que pour un élément surveillé, à la fois localement et côté serveur, le nombre de modifications de données pouvant être stockées est égal à QueueSize. Le serveur supprime les modifications de données si l'intervalle de publication est trop grand. Le client supprime les modifications de données si le cycle UA_ MonitoredItemOperateList n'est pas suffisant. La stratégie de suppression du plus ancien est implicitement appliquée. La taille maximale de file d'attente prise en charge est 3. Comportement général des entrées et sorties communes Cette rubrique décrit le comportement des entrées et sorties des blocs fonction OPC UA. 33002528.25 67 Communication Fonctionnement des EF de communication Comportement des blocs fonction avec l'entrée Execute Le front montant de l'entrée Execute lance l'exécution du bloc fonction. Le bloc fonction poursuit son exécution et la sortie Busy prend la valeur TRUE. Les fronts montants supplémentaires sur l'entrée Execute sont ignorés pendant l'exécution du bloc fonction. Une fois l'exécution terminée, les sorties Done ou Error restent sur TRUE jusqu'à ce que l'entrée Execute soit définie sur FALSE. Si l'entrée est réinitialisée avant la fin de l'exécution, les sorties Done ou Error sont définies sur TRUE pendant un cycle. Comportement du timeout Chaque bloc dispose d'une broche TimeOut paramétrable. Il s'agit du temps maximal d'attente d'une réponse au serveur. Lorsque le timeout est activé, la broche ERROR est définie sur 1 et une erreur spécifique est générée sur la broche ErrorID E_TIMEOUT. Pour certains blocs, par exemple UA_ReadList, cette broche peut être utilisée périodiquement pour mettre en commun la valeur de la variable ou, dans le cas de UA_ WriteList, pour écrire une valeur de manière répétitive. Par ailleurs, sur le bloc de connexion inclus dans UASessionConnectInfo, il existe des paramètres de TimeOut supplémentaires : 68 • VendorSpecificParameter.OPCUARequestTimeOut : Timeout de toutes les requêtes OPCUA envoyées via la connexion actuelle ; si la valeur est 0 en interne, la valeur par défaut est 30 s. • SessionTimeout : Définit la durée de vie de la session en l'absence de connexion. 33002528.25 Fonctionnement des EF de communication Communication Consultez l'objet UASessionConnectInfo, page 543 pour plus d'informations sur VendorSpecificParameter.OPCUARequestTimeOut et SessionTimeout. Block Time Out ne peut pas être utilisé pour essayer de répéter immédiatement l'action si le timeout est déclenché. Dans ce cas, la connexion au serveur a peut-être été perdue (connexion filaire rompue et temps de réparation en cours, ou le serveur est occupé, en général par une compilation sur l'automate derrière un serveur BMENUA0100). Vous devez estimer le temps d'occupation du serveur ou de réparation du réseau et harmoniser le TimeOut du bloc et OPCUARequestTimeOut en conséquence. Ces paramètres peuvent être configurés avec la même valeur. Routage Le client OPC UA ne peut accéder au serveur UA que via le port externe du module BMENUA0100 ou les ports Ethernet intégrés des UC. Utilisation de la mémoire de l'application Les blocs fonction OPC UA exigent la création de structures de variables volumineuses. La plupart de ces structures peuvent être définies comme des constantes dans l'éditeur de données. Celles-ci peuvent être utilisés pour configurer les blocs. L'utilisation d'attributs constants localise ces variables dans la mémoire de l'application et non dans la mémoire des données. La zone mémoire de l'application est beaucoup plus grande que la zone mémoire des données. L'exemple suivant présente les structures de tableau que vous pouvez créer pour les types de données dérivés OPC UA fréquemment utilisés. Chaque tableau se compose ainsi : • Nom de la structure • Taille (en octets) • Constante (valeur BOOL indiquant si l'élément est une constante) • Nombre d'instances (nombre d'instances pour cet élément, en fonction des besoins de l'application) • Taille totale des données (quantité de mémoire nécessaire en cas de non-utilisation de constantes) • Taille totale de l'application (quantité de mémoire d'application nécessaire en cas de non-utilisation de constantes) Cet exemple suppose que 64 connexions serveur et 128 noeuds (nombre d'instances UANodeID) par connexion sont requis. Quatre (4) instances de ce type sont nécessaires pour décrire 128 (4*32) NodeID à lire sur le serveur UA concerné. 33002528.25 69 Communication Fonctionnement des EF de communication Nom de la structure Taille AUAMonitoredvariables 25100 Constante (voir REMARQUE) Nombre d'instances Taille totale des données Taille totale de l'application 64 1 606 400 0 1836 x 64 0 117 504 4016 x 64 0 257 024 AUANodeID 8320 x 256 0 2 129 920 AUAMonitoringParameter 4016 x 64 0 257 024 1 606 400 2 761 472 UASessionConnectInfo AUANodeAdditionalInfo Total x NOTE: X = est une constante ; blanc = n'est pas une constante 70 33002528.25 Communication Etendu Contenu de cette partie ADDM : Conversion d'adresses ................................................73 ADDMX : conversion d'adresses ...............................................80 ADDR : conversion d'adresse ...................................................88 CANCEL : arrêt d'un échange en cours .....................................91 CLOSE_TCP_CNX : Fermeture de connexions TCP ..................95 CREAD_REG : Lecture de registres en continu .........................99 CWRITE_REG : Ecriture de registres en continu ...................... 106 DATA_EXCH : échange de données entre applications............. 113 ETH_PORT_CTRL : activation ou désactivation d'un protocole ............................................................................... 126 EthPort_Control_MX : activation ou désactivation d'un protocole ............................................................................... 131 EXCH_QX : échange de données entre des applications sur le bus EIO ............................................................................. 134 INPUT_BYTE : réception de chaînes de caractères.................. 139 INPUT_CHAR : réception de chaînes de caractères ................. 144 INPUT_CHAR_QX : réception de chaînes de caractères sur le bus EIO ............................................................................. 155 MBP_MSTR : Maître Modbus Plus .......................................... 160 ModbusP_ADDR : Adresse Modbus Plus ................................ 209 OUT_IN_CHAR : envoi/réception de chaînes de caractères ............................................................................. 214 OUT_IN_MBUS : Fonction de communication Modbus ............. 222 PRINT_CHAR : Envoi de chaînes de caractères ...................... 250 PRINT_CHAR_QX : envoi de chaînes de caractères sur le bus EIO................................................................................. 259 RCV_TLG : Réception de télégrammes ................................... 264 READ_ASYN : Lecture asynchrone de données ...................... 268 READ_DDT : lecture de DDT .................................................. 271 READ_GDATA : Lecture de Global Data Modbus Plus .............. 276 READ_REG : Lecture de registre ............................................ 279 READ_REG_QX : lecture de registre sur le bus EIO................. 287 READ_REMOTE : lecture de variables distantes...................... 291 READ_SDO : objet de données du service de lecture ............... 299 READ_VAR : Lecture de variables .......................................... 304 SEND_EMAIL : envoi d'un message électronique..................... 325 SEND_REQ : Envoi de requêtes ............................................. 329 SEND_TLG : Envoi de télégrammes ....................................... 346 SYMAX_IP_ADDR : Adresse IP SY/MAX ................................ 351 TCP_IP_ADDR : Adresse TCP/IP ........................................... 355 UNITE_SERVER : Serveur immédiat ...................................... 360 WRITE_ASYN : Ecriture asynchone de données...................... 365 33002528.25 71 Communication WRITE_GDATA : Ecriture de Global Data Modbus Plus ............ 370 WRITE_REG : Ecriture de registre .......................................... 373 WRITE_REG_QX : écriture de registre sur le bus EIO .............. 381 WRITE_REMOTE : écriture de variables distantes ................... 385 WRITE_SDO : objet de données du service d'écriture .............. 393 WRITE_VAR : Ecriture de variables......................................... 398 XMIT: Transmit ...................................................................... 413 XXMIT : Transmission ............................................................ 434 Objet de cette partie Cette section décrit les fonctions et blocs fonction élémentaires de la famille Etendu. 72 33002528.25 ADDM : Conversion d'adresses Communication ADDM : Conversion d'adresses Contenu de ce chapitre Description ..............................................................................73 Objet de ce chapitre Ce chapitre décrit la fonction de conversion d'adresse ADDM. Description Description de la fonction La fonction ADDM permet de convertir une chaîne de caractères en une adresse pouvant être utilisée directement par les fonctions de communication READ_VAR, WRITE_VAR, INPUT_CHAR, PRINT_CHAR, DATA_EXCH et SEND_EMAIL. Les paramètres supplémentaires EN et ENO peuvent être configurés. Représentation en FBD 33002528.25 73 Communication ADDM : Conversion d'adresses Représentation en LD Représentation en IL LD Addr_String ADDM ST Addr_Array Représentation en ST Addr_Array := ADDM(Addr_String); Description des paramètres d'entrée Le tableau suivant décrit le paramètre d'entrée : Paramètre Type Commentaire IN Chaîne de caractères Adresse de l'équipement sur un bus ou sur un réseau. L'entrée est la concaténation d'au maximum trois éléments pouvant prendre différentes valeurs. Chaque élément est facultatif : 74 33002528.25 ADDM : Conversion d'adresses Port de sortie utilisé localement pour joindre l'équipement cible : • Communication Equipement cible Service à joindre au niveau de l'équipement cible : • SYS • {hostAddr} • MBS • node • SMTP • {hostAddr}node • TCP.MBS • CON.CIP • UNC.CIP r.m.c • Netlink NOTE: dans le premier cas, le numéro de la voie c est facultatif. Définitions : • Netlink : nom du réseau indiqué dans le champ Lien réseau de la voie Ethernet. • hostAddr : adresse IP de l'hôte à joindre. • r : numéro de rack de la voie de communication. • m : position de module de la voie de communication. • c : numéro de la voie de communication. • node : nœud Modbus ou CANopen présent derrière une passerelle (identifiée par adresse_hôte [hostAddr]). • SYS : pour effectuer l'adressage du serveur du système. • MBS : pour effectuer l'adressage du serveur du système Modbus (identique à SYS). • SMTP : pour effectuer l'adressage du serveur SMTP. • TCP.MBS : pour effectuer l'adressage d'un serveur Modbus TCP. • CON.CIP : pour effectuer l'adressage d'un équipement connecté via Ethernet/IP. • UNC.CIP : pour effectuer l'adressage d'un équipement non connecté via Ethernet/IP. NOTE: pour configurer une communication via le port Ethernet d'une UC Modicon M580, utilisez r=0, m=0 et c=3. Liste des cas d'emploi : Syntaxes d'adresse Commentaire ’{hostAddr}’ Permet d'accéder à l'hôte (hostAddr) via le lien réseau configuré le plus proche de l'UC. ’{hostAddr}SYS’ Exemple : ADDM(’{192.168.2.3}TCP.MBS’). ’{hostAddr}TCP.MBS’ ’Netlink{hostAddr}SYS’ Permet d'accéder à l'hôte (hostAddr) via le réseau Ethernet (Netlink) défini dans le navigateur de projet de Control Expert, sous Communication > Réseaux. ’Netlink{hostAddr}TCP.MBS’ Exemple : ADDM(’Ethernet_1{192.168.2.3}SYS’). ’Netlink{hostAddr}’ 33002528.25 75 Communication ADDM : Conversion d'adresses Syntaxes d'adresse Commentaire ’Netlink{hostAddr}node’ Permet d'accéder au nœud présent derrière la passerelle ’Netlink {hostAddr}’. Il peut s'agir d'un serveur Modbus TCP ou d'un esclave sur liaison Modbus série géré par la passerelle. Exemple : ADDM(’Ethernet_1{192.168.2.3}255’). ’r.m.c{hostAddr}’ Permet d'accéder à l'hôte (hostAddr) d'après le rack, le module et la voie du module Ethernet. ’r.m.c{hostAddr}SYS’ Exemple : ADDM(’0.0.3{192.168.2.3}’). ’r.m.c{hostAddr}TCP.MBS’ ’r.m.c{hostAddr}node’ Permet d'accéder au nœud présent derrière la passerelle ’r.m.c {hostAddr}’. Il peut s'agir d'un serveur Modbus TCP ou d'un esclave sur liaison Modbus série géré par la passerelle. Exemple : ADDM(’0.0.3{192.168.2.3}255’). ’r.m.c{hostAddr}CON.CIP’ ’r.m.c{hostAddr}UNC.CIP’ Permet d'accéder à un équipement via un réseau Ethernet/IP. Le suffixe CON.CIP est utilisé lorsque l'équipement est connecté (une liaison est encore établie avec l'équipement). Dans le cas contraire, UCN.CIP est utilisé. Exemple 1 : ADDM(’0.0.3{192.168.20.34}CON.CIP’) pour une UC Ethernet Modicon M580. Exemple 2 : ADDM(’0.4.0{192.168.20.34}CON.CIP’) pour une UC Modicon M340 avec un module BMX NOC à l'emplacement 4 du rack 0. ’r.m.c’ ’r.m.c.SYS’ Permet d'accéder au système d'une voie Modbus ou d'envoyer des données via une liaison en mode caractère. NOTE: c= 0 ou 1. Exemple : ADDM(’1.5.0.SYS’). ’r.m.c.e’ ’r.m.c.e.MBS’ Permet d'accéder au serveur de l'équipement esclave sur liaison Modbus série. NOTE: c= 0 ou 1, e=1 à 247. Exemple : ADDM(’1.5.1.54.MBS’). Cas particulier de l'UC M340 avec CANopen intégré : ’0.0.2.e’ Permet d'accéder au serveur e de l'esclave CANopen. NOTE: e=1 à 127. Exemple : ADDM(’10.0.2.67’). 76 33002528.25 ADDM : Conversion d'adresses Communication Exemples avec Modicon M340 : Dans les exemples suivants, le troisième élément de la syntaxe n'est pas utilisé : Equipement à adresser Syntaxe d'ADDM Equipement n° 4 sur la liaison CANopen ADDM('0.0.2.4') Imprimante ASCII sur la liaison série de l'UC ADDM('0.0.0') Equipement dont l'adresse est 192.168.100.10 sur une liaison Ethernet NOE ADDM('0.3.0{192.168.100.10}') ADDM('Ethernet_1{192.168.100.10}') Equipement Modbus n° 4 derrière une passerelle Ethernet dont l'adresse est 192.168.100.18 sur une liaison Ethernet NOE ADDM('0.3.0{192.168.100.18}4') ADDM('Ethernet_1{192.168.100.18} 4') Pour plus d'informations, consultez la section sur l'adressage des automates M340 (voir Architectures et services de communication, Manuel de référence) dans le manuel utilisateur Architectures de communication. 33002528.25 77 Communication ADDM : Conversion d'adresses ATTENTION COMPORTEMENT INATTENDU DE L'APPLICATION N'utilisez pas des paramètres d'adresse erronés. Par exemple, ne définissez pas un paramètre d'adresse qui ne correspond pas à l'équipement cible. Le non-respect de ces instructions peut provoquer des blessures ou des dommages matériels. Description des paramètres de sortie Le tableau suivant décrit le paramètre de sortie : Paramètre Type Commentaire OUT ADDM_TYPE Tableau représentant l'adresse d'un équipement. Ce paramètre est utilisable par plusieurs fonctions de communication comme paramètre d'entrée. Tableau de 8 entiers Le bloc ADDM analyse la syntaxe de la chaîne d'adressage (paramètre IN) et place le résultat dans un tableau de 8 entiers simples qui définit l'adresse de destination. L'adresse de destination peut être fournie par le paramètre OUT de la fonction ADDM ou directement par un tableau de 8 objets INT. Cependant, il est vivement recommandé d'utiliser la fonction ADDM pour effectuer l'adressage d'une fonction élémentaire de communication. La structure de l'adresse de destination est la suivante : 78 Champ Taille Valeur Type Octet Réservé. ClientID Octet Réservé. Rack Octet Numéro d'emplacement du rack. Slot Octet Numéro d'emplacement du module. Channel Octet Numéro de la voie. ProtId Octet Réservé. 0 pour Modbus. AddrLen Octet Cet octet peut prendre les valeurs suivantes : • 0 si le serveur du module ou de la voie est adressé (UnitId et AddrExt non utilisés), • 1 si le numéro de l'équipement est défini, • >1 si AddrExt est également utilisé. 33002528.25 ADDM : Conversion d'adresses Communication Champ Taille Valeur UnitId Octet Numéro de l'équipement (équipement Modbus, par exemple). AddrExt 4 entiers Réservé. Permet de coder des informations supplémentaires concernant les adresses TCP/IP. AVERTISSEMENT FONCTIONNEMENT IMPREVU DE L'APPLICATION Ne modifiez pas les paramètres réservés. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. 33002528.25 79 Communication ADDMX : conversion d'adresses ADDMX : conversion d'adresses Contenu de ce chapitre Description ..............................................................................80 Objet de ce chapitre Ce chapitre décrit la fonction ADDMX de conversion d'adresses de chaînes de caractères en tableaux d'entiers. Description Description de la fonction La fonction ADDMX permet de convertir une chaîne de caractères conforme à la syntaxe des adresses d'équipement Control Expert en un tableau d'entiers afin de prendre en charge les modules de liaison série (e)X80 dans une station d'E/S Ethernet. La fonction ADDMX est exploitable directement par les fonctions de communication suivantes, avec une CPU Modicon M340 locale ou un module M340 distant dans un système Quantum : • READ_STS_QX • WRITE_CMD_QX • EXCH_QX • READ_REG_QX • WRITE_REG_QX • PRINT_CHAR_QX La fonction ADDMX est exploitable directement par les fonctions de communication suivantes dans un système M580 : 80 • READ_STS_MX • WRITE_CMD_MX • READ_PARAM_MX • RESTORE_PARAM_MX • SAVE_PARAM_MX 33002528.25 ADDMX : conversion d'adresses • WRITE_PARAM_MX • INPUT_CHAR • PRINT_CHAR • READ_VAR • WRITE_VAR • INPUT_BYTE • DATA_EXCH • SEND_EMAIL Communication Les paramètres supplémentaires EN et ENO peuvent être configurés. Représentation en FBD Représentation en LD Représentation en IL ADDMX ( IN := InputADDMX ) 33002528.25 81 Communication ADDMX : conversion d'adresses ST OutputADDMX Représentation en ST OutputADDMX := ADDMX (IN := InputADDMX); Description des paramètres Le tableau suivant décrit le paramètre d'entrée : Paramètre Type Commentaire IN Chaîne de caractères Chaîne conforme à la syntaxe des adresses d'équipement Control Expert, contenant le chemin entre le module d'UC et le module de station EIO, ainsi que le chemin à l'intérieur du module de station EIO pour atteindre le module cible. Chaque chemin est délimité par les caractères \\ dans la chaîne. Pour adresser un module BMX CRA 312 •0 ou BME CRA 312 •0 directement avec son adresse IP, le paramètre IN prend l'une des deux formes suivantes : • ‘r0.s0.ch0.{ip.ip.ip.ip}’ • ‘r0.s0.ch0.{ip.ip.ip.ip}TCP.MBS’ Pour adresser un serveur ou un esclave Modbus à l'aide du protocole Modbus (voir Architectures et services de communication, Manuel de référence), le paramètre IN prend l'une des deux formes suivantes : • ‘r0.s0.ch0.{ip.ip.ip.ip}TCP.MBS\\r1.s1.ch1.d’ • ‘r0.s0.ch0.{ip.ip.ip.ip}TCP.MBS\\r1.s1.ch1.d.MBS’ Description détaillée du contenu de la chaîne conforme à la syntaxe des adresses d'équipement Control Expert : Champ Valeur r0.s0.ch0 Adresse topologique du module Quantum NOE ou CRP ou du port Ethernet M580 qui va envoyer la requête TCP/Modbus (numéro du rack, de l'emplacement et de la voie). NOTE: dans un rack Quantum : r0 = 1 et ch0 = 1. NOTE: sur une UC M580, pour configurer une communication transitant par le port Ethernet, réglez le numéro de voie sur 3 (0.0.3). 82 {ip.ip.ip.ip} Module BMX CRA 312 00 ou BMX CRA 312 10 avec l'adresse ip.ip.ip.ip (port 502 du protocole TCP, port et protocole IP par défaut). TCP.MBS Facultatif, qui permet l'adressage d'un serveur Modbus. 33002528.25 ADDMX : conversion d'adresses Communication Champ Valeur \\ Séparateur r1.s1.ch1.d Numéros du rack, de l'emplacement et de la voie du serveur Modbus, et numéro de l'esclave Modbus. Selon le mode d'adressage, les paramètres peuvent être utilisés partiellement comme suit : r1.s1 Mode d'adressage du serveur de module : adresse topologique du serveur de module dans un rack avec un module BMX CRA 312 10. NOTE: Numéro du premier rack Modicon M340 = 0 (r0 = 0). r1.s1.ch1 Mode d'adressage du serveur de voie : adresse du serveur de voie dans le rack. NOTE: Numéro de la première voie Modicon M340 = 0 (ch1 = 0). r1.s1.ch1.d MBS 33002528.25 Mode d'adressage de l'esclave Modbus : adresse de l'esclave Modbus n° d, utilisant la voie ch1 du maître Modbus à partir d'un module NOM situé dans un rack avec un module BMX CRA 312 10. Elément facultatif permettant d'adresser un serveur Modbus si le module NOM n'est pas un maître Modbus. 83 Communication ADDMX : conversion d'adresses Exemples de station Quantum : 84 Equipement à adresser Syntaxe d'ADDMX Serveur du module CRA de la station 5 ADDMX('1.4.1{192.168.100.31}SYS Serveur du module BMX NOM sur la station n° 5 ADDMX('1.4.1{192.168.100.31}\\0.3') Equipement Modbus n° 15 sur la liaison série de BMX NOM sur la station n° 5 ADDMX('1.4.1{192.168.100.31}\\0.3.1.15') 33002528.25 ADDMX : conversion d'adresses Communication Exemples de station M580 : Equipement à adresser Syntaxe d'ADDMX Serveur du module CRA de la station 5 ADDMX('0.0.3{192.168.100.31}SYS Serveur du module BMX NOM dans la station 5 ADDMX('0.0.3{192.168.100.31}\\0.1') Equipement Modbus n° 15 sur la liaison série de BMX NOM dans la station 5 ADDMX('0.0.3{192.168.100.31}\\0.1.1.15') Le tableau suivant décrit le paramètre de sortie : 33002528.25 85 Communication ADDMX : conversion d'adresses Paramètre Type Commentaire OUT ANY_ARRAY_ INT Tableau contenant au moins deux tableaux ADDM_TYPE. Chaque tableau ADDM_TYPE représente l'adresse d'un équipement (plus d'informations ci-après). Ce paramètre est utilisable par plusieurs fonctions de communication comme paramètre d'entrée. Le bloc ADDMX analyse la syntaxe de la chaîne d'adressage (paramètre IN) et place le résultat dans un tableau de tableau qui définit l'adresse de destination. Cette adresse de destination peut être fournie par le paramètre OUT de la fonction ADDMX ou directement par un tableau de tableau (n x 8 objets INT). Cependant, il est vivement recommandé d'utiliser la fonction ADDMX pour adresser une fonction élémentaire de communication. Description détaillée du tableau ADDM_TYPE : Champ Taille Valeur Type 1 octet Réservé (2) ClientID 1 octet 0 si non défini Rack 1 octet Numéro du rack du module Slot 1 octet Numéro de l'emplacement du module Channel 1 octet Numéro de la voie dans le module ProtId 1 octet Cet octet peut prendre les valeurs suivantes : AddrLen 1 octet • 0 : protocole Modbus • 2 : protocole utilisateur • 3 : SMTP Cet octet peut prendre les valeurs suivantes : • 0 : aucun champ facultatif • 1 : contenu de l'adresse Modbus • >1 : contenu de l'adresse Ethernet (utilisation d'AddrExt) UnitId 1 octet Facultatif : adresse de l'équipement ou ID de l'unité AddrExt Array[7] Facultatif : extension de l'adresse cible Ethernet AVERTISSEMENT FONCTIONNEMENT IMPREVU DE L'APPLICATION Ne modifiez pas les paramètres réservés. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. 86 33002528.25 ADDMX : conversion d'adresses Communication ATTENTION COMPORTEMENT INATTENDU DE L'APPLICATION N'utilisez pas des paramètres d'adresse erronés. Par exemple, ne définissez pas un paramètre d'adresse qui ne correspond pas à l'équipement cible. Le non-respect de ces instructions peut provoquer des blessures ou des dommages matériels. 33002528.25 87 Communication ADDR : conversion d'adresse ADDR : conversion d'adresse Contenu de ce chapitre Description ..............................................................................88 Objet de ce chapitre Ce chapitre décrit la fonction de conversion d'adresse ADDR. Description Description de la fonction La fonction ADDR permet de convertir une chaîne de caractères en une adresse pouvant être utilisée directement par les fonctions de communication. Les paramètres supplémentaires EN et ENO peuvent être configurés. Représentation en FBD Représentation : 88 33002528.25 ADDR : conversion d'adresse Communication Représentation en LD Représentation : Représentation en IL Représentation : LD Addr_String ADDR ST Addr_Array Représentation en ST Représentation : Addr_Array := ADDR(Addr_String); Description des paramètres Le tableau suivant décrit le paramètre d'entrée : Paramètre Type Commentaire IN STRING Variable sous forme de chaîne de caractères représentant l'adresse de l'équipement sur un bus ou un réseau. Exemples : ‘{5.6}SYS’, ‘{1.2}0.4.5.2’ Le tableau suivant décrit les paramètres de sortie : 33002528.25 89 Communication ADDR : conversion d'adresse Paramètre Type Commentaire OUT ADDR_TYPE Tableau composé de 6 entiers représentant l'adresse Addr_ String. ou ARRAY [0..5] OF INT Addr_Array peut être utilisé directement comme premier paramètre d'entrée des fonctions élémentaires de communication. ATTENTION COMPORTEMENT IMPREVU DE L'APPLICATION N'utilisez pas des paramètres d'adresse erronés. Ne définissez pas un paramètre d'adresse qui ne correspond pas à l'équipement cible. Le non-respect de ces instructions peut provoquer des blessures ou des dommages matériels. 90 33002528.25 CANCEL : arrêt d'un échange en cours Communication CANCEL : arrêt d'un échange en cours Contenu de ce chapitre Description ..............................................................................91 Exemple d'annulation d'un échange ..........................................93 Objet de ce chapitre Ce chapitre décrit la fonction CANCEL. Description Description de la fonction La fonction CANCEL permet d'interrompre une fonction de communication asynchrone en cours. Le numéro d'échange affecté à chaque communication permet d'identifier la fonction à arrêter. Le laps de temps entre la requête de fonction CANCEL et l'action CANCEL dépend du nombre de fonctions de communication en cours. L'utilisation d'une fonction CANCEL signifie, pour toutes les voies et toutes les fonctions élémentaires (EF), que : • les fonctions de communication asynchrones affectées qui sont en cours sont annulées, • les trames dédiées stockées dans le tampon avant l'utilisation de la fonction CANCEL peuvent être envoyées. NOTE: en mode caractère, les fonctions élémentaires affectées INPUT_CHAR, INPUT_ BYTE et/ou OUT_IN_CHAR en cours sont annulées et la voie de liaison série asynchrone est déverrouillée si elle est en attente de critères de fin. NOTE: l'exécution de cette fonction est synchrone à l'exécution du programme automate (la fonction de communication est arrêtée dans le cycle automate où a été exécutée la fonction CANCEL). Les paramètres supplémentaires EN et ENO peuvent être configurés. 33002528.25 91 Communication CANCEL : arrêt d'un échange en cours NOTE: l'annulation d'un échange est effective au niveau de l'application, mais n'a aucun effet au niveau du port de communication physique. Dès qu'une fonction de communication est lancée, l'échange est géré au niveau du port de communication. L'annulation d'une fonction de communication au niveau de l'application se traduit par la réinitialisation du bit d'activité, l'enregistrement de la valeur 2 dans le rapport et la libération du numéro d'échange. Si finalement, le port reçoit une réponse à la requête d'échange, elle ne peut plus être prise en compte au niveau de l'application. De la même manière, l'événement Time Out (délai d'attente) de la fonction de communication n'arrête pas les nouvelles tentatives de transmission d'un module en cours de communication. Cela peut se produire lorsque les communications sur le réseau sont lentes et/ou de mauvaise qualité, entraînant des retransmissions. Dans ce cas, le délai d'attente de l'application au niveau des fonctions élémentaires doit être cohérent avec les délais d'attente du protocole configurés sur le module. Représentation en FBD Représentation : Représentation en LD Représentation : Représentation en IL Représentation : 92 33002528.25 CANCEL : arrêt d'un échange en cours Communication LD Exchange_Num CANCEL ST Report Représentation en ST Représentation : CANCEL(Exchange_Num, Report); Description des paramètres Le tableau suivant décrit les paramètres d’entrée : Paramètre Type Commentaire NUM INT Ce paramètre spécifie le numéro de l'échange dont l'exécution doit être arrêtée. Le tableau suivant décrit les paramètres de sortie : Paramètre Type Commentaire CR INT Ce compte rendu d'opération prend l'une des deux valeurs suivantes : • 16#00 : opération correcte. La communication est interrompue, le bit d'activité de la fonction interrompue est réglé sur 0 et son compte rendu prend la valeur 2. • 16#0C : numéro d'échange incorrect. Exemple d'annulation d'un échange Présentation Cet exemple concerne l'annulation d'un échange effectué avec la fonction OUT_IN_CHAR. Lors du lancement de l'échange, un numéro unique lui est affecté. Ce numéro reste valide jusqu'à la fin de l'échange. La fonction CANCEL utilise ce numéro pour interrompre l'échange correspondant. 33002528.25 93 Communication CANCEL : arrêt d'un échange en cours Programmation de la fonction OUT_IN_CHAR Programmation en ST : IF RE(%I0.3.8) AND NOT %MW170.0 THEN (* initialisation des données à envoyer *) %MW173 := 10; (* fonction de communication *) OUT_IN_CHAR(ADDR(‘{20.5}0.0.0.SYS’),1,Str_Out,Str_In,%MW170:4); END_IF; Programmation de la fonction CANCEL Programmation en ST : %MW180 := SHRZ_INT(%MW170,8); IF RE(%I0.3.9) THEN CANCEL(%MW180,%MW185); END_IF; La fonction CANCEL comprend deux paramètres : • Sur l'entrée : le numéro de l'échange à annuler. • Sur la sortie : le compte rendu. Il est nécessaire d'initialiser le premier paramètre avec le numéro de l'échange à annuler. Ce numéro est situé dans l'octet de poids fort du premier mot de la table de gestion. Dans le cas présent, il s'agit de l'octet de poids fort de %MW170. Avant d'envoyer la fonction CANCEL, il est nécessaire de créer un décalage de 8 bits pour récupérer les 8 bits de poids fort de % MW170. Paramètres de la requête : 94 Paramètres Description %MW180 Le bit de poids faible contient le numéro de l'échange à annuler. REMARQUE : l'octet de poids fort doit être défini sur zéro. %MW185 Compte rendu de fonction. 33002528.25 CLOSE_TCP_CNX : Fermeture de connexions TCP Communication CLOSE_TCP_CNX : Fermeture de connexions TCP Contenu de ce chapitre Description ..............................................................................95 Objet de ce chapitre Ce chapitre décrit la fonction de communication CLOSE_TCP_CNX. Description Description fonctionnelle Utilisez le bloc fonction élémentaire CLOSE_TCP_CNX pour fermer les connexions TPC ouvertes. NOTE: • • 33002528.25 Avec un module de communication BMX NOE 01•0 dans le rack local : ◦ Le bloc fonction CLOSE_TCP_CNX est compatible uniquement avec les versions de micrologiciel supérieures à V3.20. ◦ Si le module utilise un micrologiciel de version égale ou inférieure à V3.20, un code d'erreur 16#3104 apparaît pour indiquer que le micrologiciel du module n'est pas à jour et n'est pas compatible avec le bloc fonction CLOSE_TCP_ CNX. Le bloc fonction CLOSE_TCP_CNX n'est pas compatible avec les processeurs M340 BMX P34 •0•0•. 95 Communication CLOSE_TCP_CNX : Fermeture de connexions TCP Représentation du bloc fonction élémentaire (EFB) Le bloc fonction élémentaire CLOSE_TCP_CNX se présente comme suit : Description des paramètres Les tableaux suivants décrivent les paramètres inclus dans le bloc fonction élémentaire CLOSE_TCP_CNX. Paramètres d'entrée : Paramètre Type de données Description ADR ANY_ARRAY_ INT Ce tableau contient l'adresse de l'entité destinataire de l'échange de données après application de la fonction ADDM. Il indique le module et la voie qui gèrent la connection. Par exemple, ADDM(0.3.0) représente la voie 0 du module situé à l'emplacement 3 du rack 0. TCPIP STRING Cette chaîne identifie la connexion TCP/IP qui est fermée dans le format suivant : ip1.ip2.ip3.ip4:port, où port identifie le port sur la cible distante. (Il ne correspond pas au port local utilisé pour la connexion.) Si plusieurs connexions sont ouvertes avec le même IP:port distant, elles sont toutes fermées. Si port n'est pas précisé, le port Modbus 502 est utilisé. NB : Les connexions ouvertes par le scrutateur d'E/S Modbus ne sont pas concernées et ne peuvent pas être fermées par l'utilisateur. Paramètres d'entrée et de sortie : 96 33002528.25 CLOSE_TCP_CNX : Fermeture de connexions TCP Communication Paramètre Type de données Description GEST ARRAY [0..3] OF INT Table de gestion de l'échange composée des mots suivants : • Mot de rang 1 : mot géré par le système et composé de 2 octets : ◦ octet de poids fort : numéro d'échange, ◦ octet de poids faible : bit d'activité (rang 0) et bit d'annulation (rang 1) NOTE: Le bit d'annulation n'est disponible que pour les automates Modicon M340 et M580. • Mot de rang 2 : mot géré par le système et composé de 2 octets : ◦ Octet de poids fort : compte rendu d'opération ◦ Octet de poids faible : compte rendu de communication • Mot de rang 3 : mot géré par l'utilisateur et qui définit le temps de réponse maximum en utilisant une base de temps de 100 ms • Mot de rang 4 : mot (géré par le système pour la suppression) qui définit la longueur de l'échange. (Pour plus d'informations, reportezvous à la description de la structure des paramètres de gestion, page 39.) NOTE: Pour CLOSE_TCP_CNX, le paramètre de longueur au rang 4 n'est pas spécifié par l'utilisateur. Juste après l'exécution de la logique, le bit d'activité est réglé sur 0 et le paramètre de longueur reçoit la valeur 2 (correspondant à la longueur de la valeur CNX_STATUS renvoyée) si aucune erreur n'est détectée pour le mot de rang 2. Sinon, la valeur de longueur est définie par un code d'état supplémentaire dans le cas d'un compte rendu d'opération 16#01 (requête non traîtée) ou 16#02 (réponse incorrecte). Les codes d'état indiqués dans ce champ correspondent à un sous-ensemble des codes de paramètre STATUS possibles pour les EFB de communication utilisant le paramètre STATUS. Les valeurs possibles de CLOSE_TCP_CNX comprennent 0x30ss, 0x31ss, 0x4001 et 0x4002. Reportez-vous à la description des codes d'erreur détectée pour le paramètre STATUS, page 556. Paramètres de sortie : Paramètre Type de données Description CNX_STATUS word Ce mot fournit l'état détaillé du service après son exécution : 33002528.25 • 16#0000: La connexion TCP s'est fermée correctement. • 16#0001: La connexion TCP n'est pas valide (paramètres IP ou de port incorrects). • 16#0002: La connexion TCP n'existe pas ou elle est déjà fermée. • 16#FFFF: Le service ne s'est pas exécuté. Reportez-vous au code d'état indiqué dans le mot de compte rendu de la table de gestion (GEST[1]). 97 Communication CLOSE_TCP_CNX : Fermeture de connexions TCP Utilisation de l'EFB Pour utiliser le bloc fonction élémentaire CLOSE_TCP_CNX : Etape 98 Action 1 Définissez l'adresse de la voie de communication qui gère la connexion dans ADR. (Utilisez le bloc ADDM pour indiquer cette adresse dans un format de chaîne explicite.) 2 Indiquez la connexion à fermer dans le paramètre TCPIP. 3 Appelez la fonction qui lance la communication (avec la broche d'entrée EN à 1 si elle est configurée). 4 Surveillez le bit d'activité (dans le paramètre GEST) jusqu'à la fin de la communication (bit d'activité réglé à 0 par le système). Exécutez une seule fois cette fonction pour conserver les valeurs d'état. La fonction n'est pas appelée lorsque le bit d'activité est à 0 (par exemple, par la définition sur 0 de la broche EN). 5 Vérifiez le mot CNX_STATUS. Si CNX_STATUS = 16#FFFF, consultez le paramètre de compte rendu dans GEST[1]. 33002528.25 CREAD_REG : Lecture de registres en continu Communication CREAD_REG : Lecture de registres en continu Contenu de ce chapitre Description ..............................................................................99 Types de données dérivés ...................................................... 102 Mode de fonctionnement ........................................................ 103 Description des paramètres .................................................... 104 Présentation Ce chapitre décrit le bloc CREAD_REG. Description Description de la fonction Ce bloc fonction lit une zone de registre en continu. Il lit les données d'un noeud adressé via Modbus Plus, TCP/IP Ethernet ou SY/MAX Ethernet. Les paramètres supplémentaires EN et ENO peuvent être paramétrés. Les blocs fonction CREAD_REG, CWRITE_REG, READ_REG, WRITE_REG et MBP_MSTR utilisent un chemin de transaction de données et requièrent plusieurs cycles pour effectuer une opération. Le nombre de chemins de transaction disponibles par module et par cycle MAST dépend du port de communication utilisé : • Les modules à port intégré Modbus Plus ou NOM prennent en charge jusqu'à 4 blocs simultanément. • Le port intégré Ethernet TCP/IP prend en charge jusqu'à 4 blocs simultanément. • Les modules TCP/IP Ethernet NOE, NOC et 140 CRP 312 00 prennent en charge jusqu'à 16 blocs simultanément. D'autres blocs fonction de communication peuvent être programmés sur le même port de communication. Toutefois, le bloc de communication qui dépasse le nombre maximum sur ce port n'est traité qu'après la mise à disposition d'un des chemins de transaction. Le bloc suivant sur le port devient alors actif et commence à utiliser un chemin disponible. 33002528.25 99 Communication CREAD_REG : Lecture de registres en continu NOTE: Lorsque vous programmez une fonction CREAD_REG, vous devez connaître les procédures de routage utilisées par votre réseau. Les structures de routage Modbus Plus sont décrites en détail dans le manuel des architectures de communication (voir Architectures et services de communication, Manuel de référence) et le document Réseau Modbus Plus Modicon, Guide de planification et d'installation. Si le routage Ethernet TCP/IP ou SY/MAX est mis en œuvre (voir Quantum sous EcoStruxure™Control Expert, TCP/IP Configuration, Manuel utilisateur), vous devez utiliser des routeurs IP Ethernet standard. NOTE: il est possible d'utiliser plusieurs copies de ce bloc fonction dans le programme. Il n'est cependant pas possible de procéder à une instanciation multiple de ces copies. Représentation en FBD Représentation : Représentation en LD Représentation : 100 33002528.25 CREAD_REG : Lecture de registres en continu Communication Représentation en IL Représentation : CAL CREAD_REG_Instance (SLAVEREG:=OffsetAddress, NO_REG: =NumberOfRegisters, ADDRFLD:=DataStructure, REG_READ= >RegisterToRead, STATUS=>ErrorCode) Représentation en ST Représentation : CREAD_REG_Instance (SLAVEREG:=OffsetAddress, =NumberOfRegisters, ADDRFLD:=DataStructure, >RegisterToRead, STATUS=>ErrorCode) ; NO_REG: REG_READ= Description des paramètres Description des paramètres d'entrée : Paramètre Type de données Description SLAVEREG DINT Adresse du premier registre %MW à consulter sur l'esclave. NO_REG INT Nombre d'adresses à lire depuis l'esclave. ADDRFLD WordArr5 Structure de données décrivant l'adresse Modbus Plus, l'adresse TCP/IP ou l'adresse IP SY/MAX. Description des paramètres de sortie : Paramètre Type de données Description REG_READ ANY Données à lire Une structure de données doit être déclarée en tant que variable localisée pour le fichier à lire. STATUS WORD Si une erreur se produit lors de l'exécution de la fonction, un code d'erreur, page 556 apparaît pendant un cycle au niveau de cette sortie. Erreur d'exécution Tableau des codes d'erreur de la bibliothèque de communication, page 554 33002528.25 101 Communication CREAD_REG : Lecture de registres en continu Types de données dérivés Type de données dérivé WordArr5 dans Modbus Plus Description des éléments : Elément Type de données Description WordArr5[1] WORD Octet de poids faible : Registre 1 de routage, sert à déterminer l'adresse de l'abonné cible (l'une des cinq adresses de l'itinéraire de routage) lors d'une transmission par réseau. Le dernier octet différent de zéro de l'itinéraire de routage est l'abonné cible. Octet de poids fort : Adresse de l'abonné source. • Position de l'emplacement du module lors de l'utilisation du port Modbus Plus sur le module NOM. • Réglé sur 0 si vous utilisez le port Modbus Plus de l'UC (pour tous les emplacements de l'UC). WordArr5[2] WORD Registre 2 de routage WordArr5[3] WORD Registre 3 de routage WordArr5[4] WORD Registre 4 de routage WordArr5[5] WORD Registre 5 de routage Description de WordArr5 sur Ethernet TCP/IP Description de WordArr5 sur Ethernet TCP/IP : Elément Type de données Description WordArr5[1] WORD Octet de poids faible : Index de mappage MBP sur Ethernet Transporter (MET) Octet de poids fort : Emplacement du module NOE 102 WordArr5[2] WORD Octet 4 (octet de poids fort) de l'adresse IP cible 32 bits WordArr5[3] WORD Octet 3 de l'adresse IP cible 32 bits 33002528.25 CREAD_REG : Lecture de registres en continu Communication Elément Type de données Description WordArr5[4] WORD Octet 2 de l'adresse IP cible 32 bits WordArr5[5] WORD Octet 1 (octet de poids faible) de l'adresse IP cible 32 bits Description de WordArr5 sur Ethernet SY/MAX : Description de WordArr5 sur Ethernet SY/MAX : Elément Type de données Description WordArr5[1] WORD Octet de poids faible : Index de mappage MBP sur Ethernet Transporter (MET) Octet de poids fort : Emplacement du module NOE WordArr5[2] WORD Numéro de station cible (ou mettre FF en hexadécimal) WordArr5[3] WORD Terminaison (ou mettre FF en hexadécimal) WordArr5[4] WORD Réservé WordArr5[5] WORD Réservé Mode de fonctionnement Mode de fonctionnement du bloc CREAD_REG Un grand nombre de blocs fonction CREAD_REG peut être programmé, mais seules quatre opérations de lecture peuvent être actives en même temps. Que celles-ci soient déclenchées par ce bloc fonction ou par d'autres (p. ex. MBP_MSTR, MSTR, READ_REG), tous les blocs fonction utilisent la même session de transaction de données et nécessitent plusieurs cycles de programme pour achever une commande. NOTE: Une communication TCP/IP entre un API Quantum (NOE 211 00) et un API Momentum (toutes les UC TCP/IP et tous les modules d'E/S TCP/IP) n'est possible que si une seule tâche de lecture ou d'écriture est effectuée dans chaque cycle d'API. Si plusieurs tâches sont envoyées par cycle, la communication est stoppée, sans qu'un message d'erreur soit généré dans le registre d'état. 33002528.25 103 Communication CREAD_REG : Lecture de registres en continu L'information complète de routage est contenue dans la structure de données WordArr5 de l'entrée ADDRFLD. Le type du bloc fonction lié à cette entrée se règle en fonction du réseau utilisé. Vous devez utiliser pour : • Modbus Plus le bloc fonction ModbusP_ADDR • Ethernet TCP/IP le bloc fonction TCP_IP_ADDR • Ethernet SY/MAX le bloc fonction SYMAX_IP_ADDR NOTE: Vous pouvez également utiliser la structure de données WordArr5 avec des constantes. NOTE: Ce bloc fonction produit une lourde charge sur le réseau ; il est donc conseillé de contrôler soigneusement la performance du réseau. Si ce dernier est surchargé, le programme devra être restructuré afin de travailler avec le bloc fonction READ_REG, une variante du présent bloc fonction, qui fonctionne sur demande et non en mode continu. Description des paramètres SLAVEREG Début de la zone dans l'esclave adressé à partir duquel les données source sont lues. La zone source réside toujours dans la zone de registre %MW. NOTE: Pour les esclaves d'un automate non-Control Expert : La zone source réside toujours dans la zone de registre 4x. SLAVEREG attend la référence source comme décalage dans la zone 4x. Le "4" de début doit être omis (par exemple, 59 (contenu des variables ou valeur du littéral) = 40059). Le paramètre peut être entré en tant qu'adresse, variable localisée, variable non localisée ou littéral. NO_REG Nombre d'adresses à lire depuis l'esclave adressé (1 ... 100). Le paramètre peut être entré en tant qu'adresse, variable localisée ou variable non localisée. 104 33002528.25 CREAD_REG : Lecture de registres en continu Communication REG_READ Un ARRAY de la même taille que la transmission demandée doit faire l'objet d'un accord (≥ NO_REG) pour ce paramètre. Le nom de ce tableau est défini comme paramètre. Si le tableau défini est trop petit, seule la quantité de données présente dans le tableau est transmise. Le paramètre doit être défini en tant que variable localisée. STATUS Si une erreur se produit lors de l'exécution de la fonction, un code d'erreur, page 556 apparaît pendant un cycle au niveau de cette sortie. Le paramètre peut être entré en tant qu'adresse, variable localisée ou variable non localisée. 33002528.25 105 Communication CWRITE_REG : Ecriture de registres en continu CWRITE_REG : Ecriture de registres en continu Contenu de ce chapitre Description ............................................................................ 106 Types de données dérivés ...................................................... 109 Mode de fonctionnement ........................................................ 110 Description des paramètres .................................................... 111 Présentation Ce chapitre décrit le bloc CWRITE_REG. Description Description de la fonction Ce bloc fonction écrit une zone de registre en continu. Il transmet des données de l'automate à un esclave adressé via Modbus Plus, Ethernet TCP/IP ou Ethernet SY/MAX. EN et ENO peuvent être configurés comme paramètres supplémentaires. Les blocs fonction CREAD_REG, CWRITE_REG, READ_REG, WRITE_REG et MBP_MSTR utilisent un chemin de transaction de données et requièrent plusieurs cycles pour effectuer une opération. Le nombre de chemins de transaction disponibles par module et par cycle MAST dépend du port de communication utilisé : • Les modules à port intégré Modbus Plus ou NOM prennent en charge jusqu'à 4 blocs simultanément. • Le port intégré Ethernet TCP/IP prend en charge jusqu'à 4 blocs simultanément. • Les modules TCP/IP Ethernet NOE, NOC et 140 CRP 312 00 prennent en charge jusqu'à 16 blocs simultanément. D'autres blocs fonction de communication peuvent être programmés sur le même port de communication. Toutefois, le bloc de communication qui dépasse le nombre maximum sur ce port n'est traité qu'après la mise à disposition d'un des chemins de transaction. Le bloc suivant sur le port devient alors actif et commence à utiliser un chemin disponible. 106 33002528.25 CWRITE_REG : Ecriture de registres en continu Communication NOTE: Lorsque vous programmez une fonction CWRITE_REG, vous devez connaître les procédures de routage du réseau. Les structures de routage Modbus Plus sont décrites en détail dans le manuel des architectures de communication (voir Architectures et services de communication, Manuel de référence) et le document Réseau Modbus Plus Modicon, Guide de planification et planification. Si le routage Ethernet TCP/IP ou SY/ MAX est mis en œuvre (voir Quantum sous EcoStruxure™Control Expert, TCP/IP Configuration, Manuel utilisateur), vous devez utiliser des routeurs IP Ethernet standard. NOTE: il est possible d'utiliser plusieurs copies de ce bloc fonction dans le programme. Il n'est cependant pas possible de procéder à une instanciation multiple de ces copies. Représentation en FBD Représentation : Représentation en LD Représentation : 33002528.25 107 Communication CWRITE_REG : Ecriture de registres en continu Représentation en IL Représentation : CAL CWRITE_REG_Instance (SLAVEREG:=OffsetAddress, NO_REG: =NumberOfRegisters, REG_WRIT:=SourceDataArea, ADDRFLD: =DataStructure, STATUS=>ErrorCode) Représentation en ST Représentation : CWRITE_REG_Instance ( SLAVEREG:=OffsetAddress, =NumberOfRegisters, REG_WRIT:=SourceDataArea, =DataStructure, STATUS=>ErrorCode) ; NO_REG: ADDRFLD: Description des paramètres Description des paramètres d'entrée : Paramètre Type de données Description SLAVEREG DINT Adresse du premier registre %MW de l'esclave dans lequel écrire les données. NO_REG INT Nombre d'adresses à écrire depuis l'esclave.. REG_WRIT ANY Données source (Une structure de données doit être déclarée en tant que variable affectée pour le fichier source.) ADDRFLD WordArr5 Structure de données transférant l'adresse Modbus Plus, l'adresse TCP/IP ou l'adresse SY/MAX-IP. Description des paramètres de sortie : 108 Paramètre Type de données Description STATUS WORD Si une erreur se produit lors de l'exécution de la fonction, un code d'erreur, page 556 apparaît pendant un cycle au niveau de cette sortie. 33002528.25 CWRITE_REG : Ecriture de registres en continu Communication Erreur d'exécution Tableau des codes d'erreur de la bibliothèque de communication, page 554 Types de données dérivés Description de WordArr5 sur Modbus Plus Description de WordArr5 sur Modbus Plus : Elément Type de données Description WordArr5[1] WORD Octet de poids faible : Registre 1 de routage, sert à déterminer l'adresse de l'abonné cible (l'une des cinq adresses de l'itinéraire de routage) lors d'une transmission par réseau. Le dernier octet différent de zéro de l'itinéraire de routage est l'abonné cible. Octet de poids fort : Adresse de l'abonné source. • Position de l'emplacement du module lors de l'utilisation du port Modbus Plus sur le module NOM. • Si vous utilisez le port Modbus Plus de l'UC, cet octet doit être réglé sur 0 (pour tous les emplacements de l'UC). WordArr5[2] WORD Registre 2 de routage WordArr5[3] WORD Registre 3 de routage WordArr5[4] WORD Registre 4 de routage WordArr5[5] WORD Registre 5 de routage Description de WordArr5 sur Ethernet TCP/IP Description de WordArr5 sur Ethernet TCP/IP : 33002528.25 109 Communication CWRITE_REG : Ecriture de registres en continu Elément Type de données Description WordArr5[1] WORD Octet de poids faible : Index de mappage MBP sur Ethernet Transporter (MET) Octet de poids fort : Numéro d'emplacement du module NOE WordArr5[2] WORD Octet 4 (octet de poids fort) de l'adresse IP cible 32 bits WordArr5[3] WORD Octet 3 de l'adresse IP cible 32 bits WordArr5[4] WORD Octet 2 de l'adresse IP cible 32 bits WordArr5[5] WORD Octet 1 (octet de poids faible) de l'adresse IP cible 32 bits Description de WordArr5 sur Ethernet SY/MAX Description de WordArr5 sur Ethernet SY/MAX : Elément Type de données Description WordArr5[1] WORD Octet de poids faible : Index de mappage MBP sur Ethernet Transporter (MET) Octet de poids fort : Emplacement du module NOE WordArr5[2] WORD Numéro de station cible (ou mettre FF en hexadécimal) WordArr5[3] WORD Terminaison (ou mettre FF en hexadécimal) WordArr5[4] WORD Réservé WordArr5[5] WORD Réservé Mode de fonctionnement Mode de fonctionnement du module CWRITE_REG Un grand nombre de blocs fonction CWRITE_REG peut être programmé, mais seules quatre commandes d'écriture peuvent être actives en même temps. Que celles-ci soient déclenchées par ce bloc fonction ou par d'autres (p. ex. MBP_MSTR, MSTR, WRITE_REG) 110 33002528.25 CWRITE_REG : Ecriture de registres en continu Communication n'est pas significatif. Tous les blocs fonction utilisent la même session de transaction de données et nécessitent plusieurs cycles de programme pour achever une commande. Si plusieurs blocs fonction CWRITE_REG sont utilisés dans une application, ils doivent se différencier entre eux au moins par les paramètres NO_REG ou REG_WRITE. NOTE: Une communication TCP/IP entre un API Quantum (NOE 211 00) et un API Momentum (toutes les UC TCP/IP et tous les modules d'E/S TCP/IP) n'est possible que si une seule tâche de lecture ou d'écriture est effectuée dans chaque cycle d'API. Si plusieurs tâches par cycle sont envoyées, la communication est stoppée, sans qu'un message d'erreur soit généré dans le registre d'état. L'information complète de routage est contenue dans la structure de données WordArr5 de l'entrée ADDRFLD. Le type du bloc fonction lié à cette entrée se règle en fonction du réseau utilisé. Vous devez utiliser pour : • Modbus Plus le bloc fonction ModbusP_ADDR • Ethernet TCP/IP le bloc fonction TCP_IP_ADDR • Ethernet SY/MAX le bloc fonction SYMAX_IP_ADDR NOTE: Vous pouvez également utiliser la structure de données WordArr5 avec des constantes. NOTE: Ce bloc fonction produit une lourde charge sur le réseau ; il est donc conseillé de contrôler soigneusement la performance du réseau. Si ce dernier est surchargé, le programme devra être restructuré afin de travailler avec le bloc fonction WRITE_REG, une variante du présent bloc fonction, qui fonctionne sur demande et non en mode continu. Description des paramètres SLAVEREG Début de la zone dans l'esclave adressé vers lequel les données source sont écrites. La zone source réside toujours dans la zone d'adresse %MW. NOTE: Pour les esclaves d'un automate non-Control Expert : La zone de destination réside toujours dans la zone de registre 4x. SLAVEREG attend l'adresse cible comme décalage dans la zone 4x. Le "4" de début doit être omis (par exemple, 59 (contenu des variables ou valeur du littéral) = 40059). Le paramètre peut être entré en tant qu'adresse, variable localisée, variable non localisée ou littéral. 33002528.25 111 Communication CWRITE_REG : Ecriture de registres en continu NO_REG Nombre de registres à écrire vers le processeur esclave (1 ... 100). Le paramètre peut être entré en tant qu'adresse, variable localisée, variable non localisée ou littéral. STATUS Si une erreur se produit lors de l'exécution de la fonction, un code d'erreur, page 556 apparaît pendant un cycle au niveau de cette sortie. Le paramètre peut être entré en tant qu'adresse, variable localisée ou variable non localisée. REG_WRIT Un ARRAY de la même taille que la transmission demandée doit faire l'objet d'un accord (≥ NO_REG) pour ce paramètre. Le nom de ce tableau est défini comme paramètre. Si le tableau défini est trop petit, seule la quantité de données présente dans le tableau est transmise. Le paramètre doit être défini en tant que variable localisée. 112 33002528.25 DATA_EXCH : échange de données entre applications Communication DATA_EXCH : échange de données entre applications Contenu de ce chapitre Description ............................................................................ 113 Ecran de saisie assistée ......................................................... 118 Exemple d'utilisation d'un réseau Fipway ................................. 120 Exemple d'activation/désactivation du service HTTP ou FTP/ TFTP .................................................................................... 122 Objet de ce chapitre Ce chapitre décrit la fonction DATA_EXCH. Description Description fonctionnelle La fonction DATA_EXCH permet d'effectuer des transferts de données entre des équipements avec des UC (M340) M580, CPU et Premium : • émission de données, • réception de données, • émission suivie d'une réception de données. NOTE: Le type de requête susceptible d'être envoyée dépend du type d'UC : • Sur les UC Modicon M340 et M580, cette fonction permet d'envoyer des requêtes Modbus à un autre équipement. Le protocole d'application Modbus est décrit sur le site http://www.modbus.org. • Sur l'UC Premium, cette fonction permet d'envoyer des requêtes UNI-TE à un autre équipement. A cette fin, il est nécessaire de s'assurer que les données envoyées constituent la totalité de la trame requise par le protocole qui est utilisé. Les paramètres supplémentaires EN et ENO peuvent être configurés. 33002528.25 113 Communication DATA_EXCH : échange de données entre applications Représentation en FBD Représentation : Représentation en LD Représentation : Représentation en IL Représentation : LD Address DATA_EXCH Action, Data_to_Send, Management_Param, Received_Data 114 33002528.25 DATA_EXCH : échange de données entre applications Communication Représentation en ST Représentation : DATA_EXCH(Address, Action, Data_to_Send, Management_Param, Received_Data); Description des paramètres Le tableau suivant décrit les paramètres d’entrée : Paramètre Type Commentaire ADR ARRAY [0... 5] OF INT pour Premium Adresse de l’entité destinataire de l’échange. Si le paramètre Action est de type émission/réception, les adresses de diffusion sont interdites. Pour l'UC Premium : ARRAY [0..7] OF INT pour Modicon M340 et M580 • Utilisez la fonction ADDR, page 88. Pour l'UC Modicon M340 : • Utilisez la fonction ADDM, page 73. • L'entité cible de l'échange est un tableau de 8 mots. %MWx:8. %MWx:8 : Initialisé par le bloc de conversion ADDM. %MW0:8:=ADDM(‘0.3.0.0’) Pour l'UC Modicon M580 : • TYP INT Adresse de l'entité cible de l'opération d'échange, résultat de la fonction ADDMX, page 80. Type d'action à réaliser. Pour l'UC Premium, les valeurs possibles sont : • 1 : émission suivie d'une mise en attente pour réception (action impossible en Uni-Telway esclave) • 2 : émission seule • 3 : mode réception Pour les UC Modicon M340 et M580, la valeur possible est : • EMIS ARRAY [n..m] OF INT 1 : émission suivie d'une mise en attente pour la réception. Tableau d'entiers à envoyer à l'équipement destinataire de la requête. NOTE: assurez-vous que la longueur minimale est égale à 1 élément, même s'il n'y a pas de données à envoyer (code 3 pour l'action, par exemple). NOTE: assurez-vous que la longueur des données à envoyer (en octets) est affectée au quatrième mot de la table de gestion avant de lancer la fonction, pour que celle-ci puisse s'exécuter correctement. Le tableau suivant décrit les paramètres d’entrée/sortie : 33002528.25 115 DATA_EXCH : échange de données entre applications Communication Paramètre Type Commentaire GEST ARRAY [0..3] OF INT Table de gestion de l'échange composée des mots suivants : • Mot de rang 1 : mot géré par le système et composé de 2 octets : ◦ octet de poids fort : numéro d'échange, ◦ octet de poids faible : bit d'activité (rang 0) et bit d'annulation (rang 1) NOTE: le bit d'annulation n'est disponible que pour les automates Modicon M340 et M580. Il s'agit d'un autre moyen d'annuler la fonction de communication sans utiliser l'EF CANCEL, page 91. • Mot de rang 2 : mot géré par le système et composé de 2 octets : ◦ octet de poids fort : compte rendu d'opération ◦ octet de poids faible : compte rendu de communication • Mot de rang 3 : mot géré par l'utilisateur et qui définit le temps de réponse maximum en utilisant une base de temps de 100 ms. • Mot de rang 4 : mot géré par le système et qui définit la longueur de l'échange. Pour plus d'informations, consultez la section Structure des paramètres de gestion, page 39. Le tableau suivant décrit les paramètres de sortie : Paramètre Type Commentaire RECP ARRAY [n..m] OF INT Tableau d'entiers qui contient les données reçues lors d'une action en mode réception ou émission/réception. la taille des données reçues (en octets) est écrite automatiquement par le système dans le quatrième mot de la table de gestion, page 45 NOTE: Même si l'action est uniquement une transmission, vérifiez qu'une table RECP existe avec une taille minimale de 1. Services Modicon M340 Sur les automates Modicon M340, l'utilisateur peut coder un protocole privé et gratuit pour envoyer des requêtes Modbus. Cela permet aux supports Modbus d'envoyer ou de recevoir une chaîne octale libre. L'EF DATA_EXCH peut être utilisée sur tous les ports de communication à l'exception du port CANopen. Les limites de taille du tampon SendBuffer sont fournies par les caractéristiques du port de destination. Le tableau ci-après indique la longueur pour tous les ports de communication : 116 33002528.25 DATA_EXCH : échange de données entre applications Port Longueur Ethernet (NOE ou port intégré) 1 Ko Modbus 256 octets Communication La longueur du message à envoyer ou à recevoir est indiquée dans le quatrième mot du tableau de gestion, page 45. Le bloc de conversion ADDM est utilisé pour indiquer la destination de la requête. Reportez-vous à la fonction ADDM, page 73. NOTE: Spécifiez le mot clé TCP.MBS lorsque l'EF DATA_EXCH est utilisée pour les commandes Modbus sur Ethernet. Les autres entités Ethernet ne sont pas prises en charge. L'EF DATA_EXCH ne gère pas directement une connexion via TCP. Pour le protocole utilisateur ouvert sur Modbus, la syntaxe suivante est acceptée : • rack.module - Serveur de module • rack.module.voie.équipement.MBS - Protocole Modbus • rack.module.voie.équipement - Protocole utilisateur Exemple de service Modicon M340 Objectif : Ecrire dans un seul registre %MW100, longueur := 5 (* REQUEST WRITE SINGLE REGISTER %MW100 Length := 5 *) (* Data_to_send = Modbus request encoding *) (* Byte 1 = Register Address Hi = 0 ; Byte 0 = Function code = 06 *) Data_to_Send[0] := 6; (* Byte 3 = Register Value Hi ; Byte 2 = Register Address Lo = 100 *) Data_to_Send[1] := (RegisterValue & 16#FF00) + 100; (* Byte 5 = unused; Byte 4 = Register Value Lo) Data_to_Send[2] := RegisterValue & 16#FF; IF ((Management_Param[ACTIVITY] & 1) = 0 ) THEN Management_Param[LENGTH] := 5; (* LENGTH RQ WRITE *) 33002528.25 117 Communication DATA_EXCH : échange de données entre applications DATA_EXCH (ADDM('0.0.0.1'), 1, Data_To_Send, Management_Param, Received_ Data); END_IF; NOTE: le bus Modbus est gros-boutiste, alors que les mots P-UNIT sont petit-boutistes. Vous devrez réaliser une conversion pour certaines requêtes. Il est possible d'utiliser l'instruction ROL suivante : Value_read := ROL(Received_Data[1], 8); (* CONVERT BIG/LITTLE ENDIAN *) Ecran de saisie assistée Présentation Pour cette fonction de communication, vous pouvez avoir recours à l'écran de saisie assistée. Veuillez noter que cet écran n'est pas disponible sur les équipements Modicon M340. NOTE: les symboles de variable sont acceptés dans les différents champs de l'écran. Figure La capture d'écran suivante présente un écran de saisie assistée de la fonction : 118 33002528.25 DATA_EXCH : échange de données entre applications Communication Adresse Pour les automates Premium, les types d'objets possibles sont les suivants : • ADDR(STRING) • ARRAY [0..5] OF INT NOTE: Si vous saisissez une valeur directement dans le champ, le bouton de saisie assistée d'adresse est grisé. Mode Choix possibles : • 1 : échange • 2 : émission • 3 : réception NOTE: Si vous utilisez le champ de saisie à la place du menu, vous pouvez saisir une variable de type INT, localisée ou non. Données à envoyer La variable en émission est un tableau d'entiers. Ce tableau peut être localisé ou non. Données à recevoir La zone de réception est un tableau d'entiers pouvant être localisé ou non. La taille de ce tableau dépend du nombre d'objets à recevoir. Compte rendu Le compte rendu est un tableau de 4 entiers, pouvant être localisé ou non. NOTE: Veillez à ne pas utiliser plusieurs zones de mémoire identiques pour les tables de comptes rendus, car la fonction de lecture de variables risque de ne pas fonctionner. 33002528.25 119 Communication DATA_EXCH : échange de données entre applications Exemple d'utilisation d'un réseau Fipway Présentation Supposons une communication entre deux stations d'automate sur un réseau Fipway. La station 1 doit envoyer les données (20 octets situés dans %MW70:10) à la station 2 qui les reçoit dans une table située dans %MW80:10. Chaque automate dispose d'une table de gestion commençant à l'adresse %MW90. Pour la station 1, le mot %MW93 doit contenir la longueur des données à envoyer, soit 20 (10 mots à envoyer). Pour la station 2, le mot %MW93 est défini sur 0 avant l'échange afin de connaître le nombre de caractères reçus à la fin de l'échange. La fonction DATA_EXCH requiert la programmation des deux automates, l'un pour l'envoi et l'autre pour la réception. Figure Les deux stations sont connectées via un réseau Fipway : Emission programmée dans la station 1 Programmation en ST : IF RE(%I0.3.2) AND NOT %MW90.0 THEN (* initialisation des données à envoyer *) %MW93:= 20; (* fonction de communication *) DATA_EXCH(ADDR(’{20.2}APP’),2,%MW70:10,%MW90:4,%MW80:1); 120 33002528.25 DATA_EXCH : échange de données entre applications Communication END_IF; Paramètres de la requête : Paramètres ADDR(‘{20.2}APP’) Description • 20 : réseau • 2 : station • APP : application de la station 2 2 Type de communication : émission %MW70:10 Données à envoyer %MW90:4 Table de gestion %MW80:1 Zone de réception des réponses. En l'occurrence, il n'existe aucune donnée à recevoir, mais un mot doit cependant être réservé (obligatoire). Réception programmée dans la station 2 IF RE(%I0.3.4) AND NOT %MW90.0 THEN (* initialisation des données à recevoir *) %MW93:= 0; (* fonction de communication *) DATA_EXCH(ADDR(’{20.1}APP’),3,%MW70:1,%MW90:4,%MW80:10); END_IF; Paramètres de la requête : Paramètres ADDR(‘{20.1}APP’) Description • 20 : réseau • 1 : station • APP : application de la station 1 3 Type de communication : réception %MW70:1 Données à envoyer. En l'occurrence, il n'y en a pas, mais au moins un mot doit être réservé. %MW90:4 Table de gestion %MW80:10 Zone de réception : 10 mots sont délivrés à partir de la station 1. 33002528.25 121 Communication DATA_EXCH : échange de données entre applications Exemple d'activation/désactivation du service HTTP ou FTP/TFTP Description Une opération d'activation/désactivation du service HTTP ou FTP/TFTP modifie l'état du service HTTP et FTP/TFTP du module. Implémentation réseau Une opération d'activation/désactivation du service HTTP ou FTP/TFTP peut s'effectuer sur des réseaux Ethernet TCP/IP. Implémentation du bloc DATA_EXCH Un bloc DATA_EXCH, page 113 permet de modifier l'état du service FTP/TFTP ou HTTP pendant l'exécution de l'application. Le bloc DATA_EXCH ne peut pas changer l'état du service HTTP ou FTP/TFTP si celui-ci a été désactivé via l'un des outils de configuration. NOTE: il est également recommandé d'utiliser l'EFB ETH_PORT_CTRL, page 126 au lieu de la fonction DATA_EXCH pour gérer la sécurité sur le M340 et le M580. NOTE: le bloc DATA_EXCH ne permet pas de modifier les services Ethernet du port intégré du M580. Pour ce faire, utilisez le bloc ETH_PORT_CTRL, page 126. Configuration de la variable Address La variable Address identifie l'adresse locale du module pour lequel le service FTP/TFTP ou HTTP sera activé ou désactivé. 122 33002528.25 DATA_EXCH : échange de données entre applications Communication Variable Type Description Address ARRAY [0..5] of INT pour Premium Adresse de l’entité destinataire de l’échange. Si le paramètre Action est de type émission/réception, les adresses de diffusion sont interdites. ARRAY [0..7] of INT pour M340 Pour Premium : • Utilisez la fonction ADDR. • Exemple : ADDR( ‘0.4.0.SYS’ ) Pour M340 : • Utilisez la fonction ADDM. • L'entité cible de l'échange est un tableau de 8 mots. • Exemple : ADDM( '0.4.0' ) NOTE: Dans chaque exemple, l'adresse est : • rack = 0 • emplacement = 4 • voie = 0. Configuration de la variable Action La variable Action identifie le type de fonction du bloc fonction DATA_EXCH : Variable Type Description Valeur (hexa) Action INT 1 = transaction suivie d'une mise en attente pour la réception 16#0001 Configuration de la variable Data_to_Send La variable Data_to_Send est un tableau ARRAY [0..3] de types INT et se compose des éléments suivants : Variable Data_to_Send[0] Data_to_Send[1] 33002528.25 Description • Octet de poids fort = 16#00 • Octet de poids faible = code de requête (16#5A) • Octet de poids fort = 16#01 • Octet de poids faible = code de sous-requête (16#6E) Valeur (hexa) 16#005A 16#016E 123 DATA_EXCH : échange de données entre applications Communication Variable Data_to_Send[2] Description Valeur (hexa) • Octet de poids faible = commande de service Ethernet (16#xx) sur M340/M580. 16#00 sur Premium 16#00xx sur M340/M580 • Octet de poids fort = commande de service Ethernet (16#xx) sur Premium. 16#00 sur M340/M580 16#xx00 sur Premium Les valeurs de commande du service Ethernet peuvent être : Data_to_Send[3] • 16#00 - Aucun changement • 16#01 - Activation de FTP uniquement • 16#02 - Désactivation de FTP uniquement • 16#10 - Activation de HTTP uniquement • 16#20 - Désactivation de HTTP uniquement • 16#11 - Activation de FTP et de HTTP • 16#12 - Activation de HTTP ; désactivation de FTP • 16#21 - Désactivation de HTTP ; activation de FTP • 16#22 - Désactivation de FTP et de HTTP • Octet de poids fort = réservé (16#00) • Octet de poids faible = réservé (16#00) 16#0000 Configuration de la variable Management_Param La variable Management_Param est un tableau ARRAY [0..3] de types INT et se compose des éléments suivants : Variable Management_Param[0] Management_Param[1] Management_Param[2] Management_Param[3] Description • Octet de poids fort = Numéro d'échange, spécifié par le système • Octet de poids faible = Bit d'activité, spécifié par le système • Octet de poids fort = Rapport d'opération, page 43, spécifié par le système • Octet de poids faible = Rapport de communication, page 42, spécifié par le système le timeout peut prendre n'importe quelle valeur. La base du timeout étant de 100 ms, dans cet exemple, le timeout est réglé sur 10 secondes. • Octet de poids fort = longueur (16#00) • Octet de poids faible = longueur (16#08) Valeur (hexa) - - 16#0064 16#0008 NOTE: la longueur doit être réglée sur une valeur de 8 octets. 124 33002528.25 DATA_EXCH : échange de données entre applications Communication Affichage de la réponse Utilisez une table d'animation Control Expert pour afficher la réponse. La réponse se trouve dans la variable Received_Data qui est de type ARRAY [0..3] OF INT : Variable Valeur (hexa) Exemple d'une réponse ayant abouti : Received_Data[0] 16#005A (M340 Modbus) 16#008A (Premium UNITE) Received_Data[1] 16#xxFE (Réussite) Received_Data[2] 16#00yy NOTE: le mot créé avec la valeur 16#yyxx a la même signification que la sortie ETH_SCE_ STATUS, page 128 de l'EFB ETH_PORT_CTRL, page 126. Received_Data[3] 16#0000 Exemple de réponse n'ayant pas abouti : Received_Data[0] 16#005A (M340 Modbus) 16#008A (Premium UNITE) Received_Data[1] 16#xxFD (erreur détectée)1 Received_Data[2] 16#00xx1 Received_Data[3] 16#0000 1. Le code de l'erreur détectée apparaît au format FD xx xx, où xx xx peut prendre les valeurs suivantes : • 50 86 : occupé : lorsque la requête arrive deux secondes après la requête précédente, que cette dernière ait abouti et qu'une erreur ait été détectée. • 40 01 : même état : lorsque la requête est appelée pour conserver la configuration des services HTTP et FTP/TFTP en l'état. • 20 04 : données non valides : lorsque les données de la requête ne figurent pas dans le formulaire spécifié par le type de requête. • 50 69 : désactivé : lorsque le service FTP/TFTP ou HTTP est déjà désactivé par Control Expert et que la requête tente de modifier l'état du service désactivé. NOTE: En cas de détection de plusieurs erreurs, l'ordre de priorité de l'affichage est Désactivé, Données non valides, Même état et Occupé. 33002528.25 125 ETH_PORT_CTRL : activation ou désactivation d'un protocole Communication ETH_PORT_CTRL : activation ou désactivation d'un protocole Contenu de ce chapitre ETH_PORT_CTRL: : exécution d'une commande de sécurité dans une application .............................................................. 126 Objet de ce chapitre Ce chapitre décrit la fonction ETH_PORT_CTRL. ETH_PORT_CTRL: : exécution d'une commande de sécurité dans une application Description de la fonction Utilisez le bloc fonction ETH_PORT_CTRL pour contrôler les protocoles FTP TFTP, HTTP et DHCP / BOOTP lorsqu'ils sont activés sur l'écran (voir Modicon M580, Module de communication BMENOC0301/0311 Ethernet, Guide d'installation et de configuration) Sécurité de Control Expert. (Par défaut, ces protocoles sont désactivés.) Pour des raisons de cybersécurité (afin de protéger les données contre toute demande de modification en mode Surveillance), mappez les entrées sur les variables localisées et non localisées pour lesquelles la propriété HMI est désactivée (variable absente du dictionnaire de données). Les paramètres supplémentaires EN et ENO peuvent aussi être configurés. 126 33002528.25 ETH_PORT_CTRL : activation ou désactivation d'un protocole Communication Représentation en FBD Représentation : Représentation en LD Représentation : Représentation en IL CAL ETH_PORT_CTRL_Instance (ENABLE := EnableSecurityChange, ABORT := AbortSecurityChange, ADDR := ModuleAddress, ETH_SCE := ServiceToChange, DONE => BlockExecutionDone, ACTIVE => BlockExecutionInProgress, ERROR => BlockExecutionError, STATUS => BlockErrorStatus, ETH_SCE_STATUS => ChangeServiceStatus) Représentation en ST ETH_PORT_CTRL_Instance (ENABLE := EnableSecurityChange, ABORT := AbortSecurityChange, ADDR := ModuleAddress, ETH_SCE := ServiceToChange, DONE => BlockExecutionDone, ACTIVE => BlockExecutionInProgress, ERROR 33002528.25 127 ETH_PORT_CTRL : activation ou désactivation d'un protocole Communication => BlockExecutionError, STATUS => BlockErrorStatus, ETH_SCE_STATUS => ChangeServiceStatus); Description des paramètres Le tableau suivant décrit les paramètres d'entrée : Paramètre Type Commentaire ENABLE BOOL Réglé sur 1 pour déclencher l'opération. ABORT BOOL Réglé sur 1 pour abandonner l'opération en cours. ADDR ANY_ARRAY_ INT Tableau contenant l'adresse de l'entité dont vous souhaitez modifier l'état de sécurité, qui est le résultat de la fonction ADDMX, page 80, ADDMX ou ADDM, page 73. Exemple : ETH_SCE WORD • ADDM('0.0.10') pour une CPU M580 • ADDM('0.3.0') pour un module BMENOC0301/11 à l'emplacement 3 du rack principal Pour chaque protocole, utilisez ces valeurs binaires pour contrôler le protocole : • 00 : le protocole est inchangé. • 01 : le protocole est activé. • 10 : le protocole est désactivé. • 11 : réservé NOTE: la valeur 11 signale une erreur détectée dans ETH_SCE_ STATUS. Ces bits sont utilisés pour les différents protocoles : • 0, 1 : FTP • 2, 3 : TFTP (disponible seulement pour Modicon M580) • 4, 5 : HTTP • 6, 7 : DHCP / BOOTP • 8 à 15 : réservés (valeur = 0) (1) Pour adresser un module dans le rack local, entrez 0.0.10 (adresse du serveur principal d'UC). Le tableau suivant décrit les paramètres de sortie : 128 Paramètre Type Commentaire DONE BOOL Indication d'une opération terminée. La valeur est 1 lorsque l'exécution de l'opération s'est achevée avec succès. ACTIVE BOOL Indication d'une opération en cours. La valeur est 1 lorsque l'opération est en cours d'exécution. ERROR BOOL Réglé sur 1 si une erreur est détectée par le bloc fonction. 33002528.25 ETH_PORT_CTRL : activation ou désactivation d'un protocole Communication Paramètre Type Commentaire STATUS WORD Code fournissant l'identification de l'erreur détectée, page 556. ETH_SCE_ STATUS WORD Pour chaque protocole, ces valeurs contiennent la réponse à toute tentative d'activation ou de désactivation des protocoles FTP, TFTP, HTTP et DHCP / BOOTP : • 0 : commande exécutée • 1 : commande non exécutée Motifs de non-exécution de la commande : • Le service de communication a été désactivé par la configuration. • Le service de communication est déjà à l'état demandé par la commande (Activé ou Désactivé). • Le service de communication (x) n'existe pas ou n'est pas pris en charge par le module. Ces bits sont utilisés pour les différents protocoles : • 0 : FTP • 1 : TFTP • 2 : HTTP • 3 : DHCP / BOOTP • 4 à 15 : réservés (valeur = 0) Type d'exécution Synchrone : Avec les modules CPU M580 suivants, le bloc fonction ETH_PORT_CTRL est exécuté de manière synchrone. Par conséquent, la sortie DONE est activée dès que l'entrée ENABLE est définie sur ON. Dans ce cas, la sortie ACTIVE reste sur OFF. • BMEP581020 • BMEP582020 • BMEP582040 • BMEP583020 • BMEP583040 • BMEP584020 • BMEP584040 • BMEP585040 • BMEP586040 • BMEH582040* • BMEH584040* 33002528.25 129 ETH_PORT_CTRL : activation ou désactivation d'un protocole Communication BMEH586040* * Avec les CPU BMEH58•040 du système de redondance d'UC, vérifiez que le bloc fonction ETH_PORT_CTRL est exécuté de la même manière sur les CPU primaire et redondante. • Asynchrone : Avec les modules suivants, le bloc fonction ETH_PORT_CTRL est exécuté de manière asynchrone. Plusieurs cycles peuvent être nécessaires avant que la sortie DONE soit activée. Par conséquent, la sortie ACTIVE est définie sur ON jusqu'à la fin de l'exécution du bloc fonction ETH_PORT_CTRL. • Modules M340 : • ◦ BMXNOC0401 ◦ BMXNOE0100 ◦ BMXNOE0110 Modules M580 : ◦ BMENOC0301/11 Utilisation de l'EFB ETH_PORT_CTRL Pour utiliser l'EFB ETH_PORT_CTRL, procédez comme suit : Etape 130 Action 1 Définissez sur 1 les bits des services à activer dans ETH_SCE. 2 Définissez sur 1 l'entrée ENABLE afin d'activer l'EFB. 3 L'entrée ENABLE doit être un OR entre une commande d'impulsion et la sortie ACTIVE de l'EFB. 4 Vérifiez la valeur de la sortie STATUS : • STATUS<>0 : il y a un problème de communication. • STATUS = 0 : Vérifiez ETH_SCE_STATUS. Les services pour lesquels les bits ont été activés n'ont pas été modifiés comme prévu. 33002528.25 EthPort_Control_MX : activation ou désactivation d'un protocole Communication EthPort_Control_MX : activation ou désactivation d'un protocole Contenu de ce chapitre EthPort_Control_MX : activation ou désactivation d'un protocole ............................................................................... 131 Objet de ce chapitre Ce chapitre décrit la fonction EthPort_Control_MX. EthPort_Control_MX : activation ou désactivation d'un protocole Description de la fonction La fonction EthPort_Control_MX est utilisée dans Unity Pro 8.0, pour une UC Modicon M580 avec connexion Ethernet intégrée. Elle permet d'activer ou de désactiver les protocoles suivants : • FTP • TFTP • HTTP Activez le protocole dans la configuration avant d'utiliser la fonction EthPort_Control_MX pour désactiver ou de réactiver le protocole. Si un protocole n'est pas activé dans une configuration, la fonction EthPort_Control_MX n'applique aucune modification et une erreur est signalée. Les paramètres supplémentaires EN et ENO peuvent être configurés. 33002528.25 131 Communication EthPort_Control_MX : activation ou désactivation d'un protocole Représentation en FBD Représentation : Représentation en LD Représentation : Représentation en IL Représentation : EthPort_Control_MX (ENABLE:=EnableControl, ADR:=EntityToControl, ETHERNET_SERVICE:=ServicesControl) ST ControlStatus Représentation en ST Représentation : ControlStatus:=EthPort_Control_MX (ENABLE:=EnableControl, ADR: =EntityToControl, ETHERNET_SERVICE:=ServicesControl); 132 33002528.25 EthPort_Control_MX : activation ou désactivation d'un protocole Communication Description des paramètres Le tableau suivant décrit les paramètres d’entrée : Paramètre Type Description ACTIVER BOOL Activez ou désactivez EF. ADR ANY_ARRAY_INT Tableau contenant l'adresse de l'entité de destination de l'opération d'écriture, résultat de la fonction ADDM, page 73 ou ADDMX, page 80. NOTE: la fonction EthPort_Control_MX est réservée aux UC Modicon M580 avec Unity Pro 8.0. Utilisez la fonction ADDM('0.0.0') pour activer/désactiver les services de protocole de l'UC. ETHERNET_ SERVICE WORD Structure du mot : • bit 0-1 : FTP • bit 2-3 : TFTP • bit 4-5 : HTTP • bit 6-15 : réservé Signification de la combinaison de bits pour chaque protocole : • 00 : aucun changement d'état du service • 01 : activation du protocole • 10 : désactivation du protocole • 11 : réservé Le tableau suivant décrit le paramètre de sortie : Paramètre Type Description STATUS INT Etat renvoyé par le système : 33002528.25 • 3 : format d'adresse incorrect • -1 : paramètres non valides • 0 : réussite 133 EXCH_QX : échange de données entre des applications sur le bus EIO Communication EXCH_QX : échange de données entre des applications sur le bus EIO Contenu de ce chapitre Description ............................................................................ 134 Introduction Ce chapitre décrit la fonction EXCH_QX. Description Description de la fonction La fonction EXCH_QX permet de transférer des données (via Modbus) entre des esclaves Modbus connectés à un module de communication Modicon X80 (BMX NOM) situé dans une station EIO. NOTE: le protocole d'application Modbus est décrit sur le site http://www.modbus.org. Les paramètres supplémentaires EN et ENO peuvent être configurés. Les blocs fonction de communication utilisent un chemin de transaction de données et requièrent plusieurs cycles pour effectuer une opération. Le nombre de chemins de transaction disponibles par module et par cycle MAST dépend du port de communication utilisé : • Les modules à port intégré Modbus Plus ou NOM prennent en charge jusqu'à 4 blocs simultanément. • Le port intégré Ethernet TCP/IP prend en charge jusqu'à 4 blocs simultanément. • Les modules TCP/IP Ethernet NOE, NOC et 140 CRP 312 00 prennent en charge jusqu'à 16 blocs simultanément. D'autres blocs fonction de communication peuvent être programmés sur le même port de communication. Toutefois, le bloc de communication qui dépasse le nombre maximum sur ce port n'est traité qu'après la mise à disposition d'un des chemins de transaction. Le bloc suivant sur le port devient alors actif et commence à utiliser un chemin disponible. 134 33002528.25 EXCH_QX : échange de données entre des applications sur le bus EIO Communication Représentation en FBD Représentation : Représentation en LD Représentation : 33002528.25 135 EXCH_QX : échange de données entre des applications sur le bus EIO Communication Représentation en IL Représentation : CAL EXCH_QX_Instance (ENABLE:=ExchQxEnable, ABORT:=ExchQxAbort, ADDR: =ModuleAddress, SEND_BYTE:=NbBytesToSend, SEND_BUFFER: =ExchQxDataSource, DONE=>ExchQxSuccessfull, ACTIVE=>ExchQxActive, ERROR=>ExchQxFaulty, STATUS=>ErrorCode, REC_BYTE=>NbBytesReceived, REC_BUFFER=>ReceivedBuffer) Représentation en ST Représentation : EXCH_QX_Instance (ENABLE:=ExchQxEnable, ABORT:=ExchQxAbort, ADDR: =ModuleAddress, SEND_BYTE:=NbBytesToSend, SEND_BUFFER: =ExchQxDataSource, DONE=>ExchQxSuccessfull, ACTIVE=>ExchQxActive, ERROR=>ExchQxFaulty, STATUS=>ErrorCode, REC_BYTE=>NbBytesReceived, REC_BUFFER=>ReceivedBuffer) Description des paramètres Le tableau suivant décrit les paramètres d’entrée : Paramètre Type Commentaire ENABLE BOOL Réglé sur 1 pour effectuer des transferts de données. ABORT BOOL Réglé sur 1 pour abandonner l'opération en cours. ADDR ANY_ARRAY_INT Tableau contenant l'adresse de l'esclave Modbus, c'està-dire le résultat de la fonction ADDMX, page 80. SEND_BYTE WORD Nombre d'octets à envoyer. SEND_BUFFER ANY_ARRAY_BYTE Champ de données source. Une structure de données doit être déclarée en tant que variable localisée pour le fichier source. Le tableau suivant décrit les paramètres de sortie : 136 Paramètre Type Commentaire DONE BOOL Réglé sur 1 lorsque la fonction s'est exécutée correctement. ACTIVE BOOL Réglé sur 1 lorsque la fonction est en cours d'exécution. 33002528.25 EXCH_QX : échange de données entre des applications sur le bus EIO Communication Paramètre Type Commentaire ERROR BOOL Réglé sur 1 si une erreur est détectée par le bloc fonction. STATUS WORD Fournit le code d'erreur, page 556 si le bloc fonction détecte une erreur. REC_BYTE WORD Nombre d'octets à recevoir par l'esclave Modbus. REC_BUFFER ANY_ARRAY_BYTE Données reçues (Une structure de données doit être déclarée en tant que variable localisée pour le fichier à lire.) Exemple ST (* Example: we want to read the %MW1000 on slave number 5 (a M340 PLC for instance) wired to channel 0 of the NOM in slot 2 of which IP address is 192.168.10.17, the Quantum CRP is in slot 5 for instance. First of all you should declare in the data editor the following variables: data_to_send as an ARRAY [0..4] OF BYTE (or more if you want to send more bytes) bytes_to_send as a WORD slave_addres as a STRING[40] received_data as an ARRAY [0..3] OF BYTE (or more if you need) enable_sending as a BOOL and you should create an instance of EXCH_QX EFB named for instance EXCH_ QX_6 *) (* initialize the data to send *) data_to_send[0]:=16#03; (* Modbus function code read Holding register *) data_to_send[1]:=16#03; (* MSB of the first register address *) 33002528.25 137 Communication EXCH_QX : échange de données entre des applications sur le bus EIO data_to_send[2]:=16#E8; (* LSB of the first register address, 16#03E8 = 1000*) data_to_send[3]:=16#00; (* MSB of the quantity of registers to read *) data_to_send[4]:=16#01; (* LSB of the quantity of registers to read *) (* initialize the number of byte to send *) bytes_to_send:=5; (* initialize the address of the slave *) slave_address:='1.5.1{192.168.10.17}\\0.2.0.5'; (* CRP slot 5, Drop address 192.168.10.17, NOM in slot 2 of main drop rack. *) EXCH_QX_6 (ENABLE := enable_sending, ADDR := addmx(slave_address), SEND_BYTE := bytes_to_send, SEND_BUFFER := data_to_send, REC_BUFFER => received_data); (* to start the EFB EXCH_QX_6 set enable_sending, then received_data[0] will contain the function code sent (3) received_data[1] will contain the number of bytes received (2) received_data[2] and received_data[3] will contain the value of %MW1000 from the slave number 5*) 138 33002528.25 INPUT_BYTE : réception de chaînes de caractères Communication INPUT_BYTE : réception de chaînes de caractères Contenu de ce chapitre Description ............................................................................ 139 Objet de ce chapitre Ce chapitre décrit la procédure INPUT_BYTE. NOTE: Cette fonction est en général semblable à la procédure INPUT_CHAR à une exception près : elle utilise le type ARRAY OF BYTE au lieu du type STRING pour le paramètre RECP. INPUT_BYTE permet de lire des valeurs numériques à l'intérieur d'un bloc fonction dérivé, opération impossible avec la fonction INPUT_CHAR. Description Description fonctionnelle La fonction INPUT_BYTE permet d'envoyer une requête de lecture de tableau d'octets à un module de communication en mode caractère. Le message reçu est enregistré dans un tableau d'octets. NOTE: En général, INPUT_BYTE se comporte comme INPUT_CHAR, mais elle permet de transmettre un tableau d'octets à la place d'une chaîne en tant que paramètre de sortie. Pour cette raison, il est possible de lire une valeur d'octet 0 (NULL) dans un flux d'octets émis par un port série. Pour les automates Premium, cette fonction permet de recevoir jusqu'à 4 Ko (120 octets au niveau du port terminal). Sur les ModiconM340 M580CPU et , cette fonction permet de recevoir jusqu'à 1024 octets. Deux possibilités s'offrent à vous : • Lire un nombre d'octets : Aucune condition ne doit être configurée. • Lire un message : Une condition d'arrêt doit être configurée dans l'écran de configuration. Les paramètres supplémentaires EN et ENO peuvent être configurés. 33002528.25 139 Communication INPUT_BYTE : réception de chaînes de caractères Représentation en FBD Représentation : Représentation en LD Représentation : Représentation en IL Représentation : LD Address INPUT_BYTE Raz, Buffer_Length, Management_Param, Received_Data 140 33002528.25 INPUT_BYTE : réception de chaînes de caractères Communication Représentation en ST Représentation : INPUT_BYTE(Address, Raz, Buffer_Length, Management_Param, Received_ Data); Description des paramètres Le tableau suivant décrit les paramètres d’entrée : Paramètre Type Commentaire ADR ARRAY [0..5] OF INT pour Premium Pour l'automate Premium : ARRAY [0..7] OF INT pour Modicon M340 et M580 • L'adresse de la voie (en mode caractères) de réception du message est indiquée par la fonction ADDR, page 88. • Seules les adresses se terminant par SYS sont valides (par exemple, port terminal du processeur 0.0.0.SYS). Pour l'automate Modicon M340 : • L'adresse de la voie (en mode caractères) de réception du message est indiquée par la fonction ADDM, page 73. • La syntaxe de l'adresse est de type ADDM. Le champ Node est facultatif. Il peut être de type SYS ou vide (par exemple ADDM('0.0.0.SYS') est égal à ADDM('0.0.0'). Pour la M580CPU Modicon : • RAZ INT Adresse de l'entité cible de l'opération d'entrée, résultat de la fonction ADDMX, page 80. Réinitialisation. Ce paramètre permet de réinitialiser la mémoire de réception du coupleur. • valeur 0 : pas de réinitialisation de la mémoire • valeur 1 : réinitialisation de la mémoire REMARQUE : Pour les communications au niveau du port terminal des automates Premium, la valeur doit être 1. REMARQUE : Sur les module CPU Modicon M340 et M580, l'EF INPUT_BYTE peut être programmée avec ou sans ce paramètre. NB INT Longueur du tampon ou nombre d'octets à recevoir. • Valeur = 0 : Message lu dès qu'il est disponible sur la voie. Ici, une condition d'arrêt doit être spécifiée dans l'écran de configuration. • Valeur supérieure à 0 : Indique le nombre d'octets à lire. REMARQUE : Pour les communications au niveau du port terminal des automates Premium, 0 est la seule valeur autorisée. Le caractère de fin de message par défaut est un retour chariot (CR). 33002528.25 141 Communication INPUT_BYTE : réception de chaînes de caractères Le tableau suivant décrit les paramètres d’entrée/sortie : Paramètre Type Commentaire GEST ARRAY [0..3] OF INT Table de gestion de l'échange composée des mots suivants : • Mot de rang 1 : mot géré par le système et composé de 2 octets : ◦ octet de poids fort : numéro d'échange, ◦ octet de poids faible : bit d'activité (rang 0) et bit d'annulation (rang 1) NOTE: le bit d'annulation n'est disponible que pour les automates Modicon M340 et M580. • Mot de rang 2 : mot géré par le système et composé de 2 octets : ◦ octet de poids fort : compte rendu d'opération ◦ octet de poids faible : compte rendu de communication • Mot de rang 3 : mot géré par l'utilisateur et qui définit le temps de réponse maximum en utilisant une base de temps de 100 ms. • Mot de rang 4 : mot géré par le système et qui définit la longueur de l'échange. Pour plus d'informations, consultez la section Structure des paramètres de gestion, page 39. Le tableau suivant décrit les paramètres de sortie : Paramètre Type Commentaire RECP ARRAY OF BYTE Octets reçus. Le résultat est ensuite stocké dans un tableau BYTE. NOTE: la taille des données reçues (en octets) est automatiquement écrite par le système dans le quatrième mot du tableau de gestion. Règles de programmation Si plusieurs fonctions INPUT_BYTE sont lancées simultanément, le paramètre RAZ doit être réglé sur 0 (mémoire de réception du module non réinitialisée). Une requête peut être envoyée afin de réinitialiser la mémoire du module pour le message suivant, afin de ne pas recevoir d'anciennes données. Si le paramètre RAZ est réglé sur 1, la fonction INPUT_BYTE doit être lancée avant d'envoyer des données. 142 33002528.25 INPUT_BYTE : réception de chaînes de caractères Communication Sur les automates Premium, plusieurs cycles d'automate sont nécessaires pour recevoir une chaîne de plus de 240 octets (la chaîne est fragmentée). Il est donc important de s'assurer que les données de gestion n'ont pas été modifiées au cours du traitement de la fonction. Le système reçoit la chaîne de manière cohérente sur plusieurs fragments. Sur les M340 Modicon M580CPU et , un seul cycle d'UC est nécessaire pour recevoir une chaîne de caractères de 1024 octets maximum. Il est important de s'assurer que les données de gestion n'ont pas été modifiées au cours du traitement de la fonction. Le port série de l'automate Modicon M340 est en duplex intégral. Par conséquent, une fonction PRINT_CHAR peut être envoyée même si une fonction INPUT_BYTE a été envoyée et mise en attente. 33002528.25 143 Communication INPUT_CHAR : réception de chaînes de caractères INPUT_CHAR : réception de chaînes de caractères Contenu de ce chapitre Description ............................................................................ 144 Ecran de saisie assistée ......................................................... 150 Exemple de lecture de chaînes de caractères via un réseau Fipway .................................................................................. 152 Exemple de lecture de chaînes de caractères via une liaison série de processeurs Modicon M340 ....................................... 153 Objet de ce chapitre Ce chapitre décrit la fonction INPUT_CHAR. Description Description fonctionnelle La fonction INPUT_CHAR est utilisée pour envoyer une requête de lecture de chaîne de caractères à un module de communication en mode caractère (attente de réception des chaînes de caractères). Le message reçu est enregistré dans une chaîne de caractères. Pour les automates Premium, cette fonction permet de recevoir jusqu'à 4 Ko (120 octets au niveau du port terminal). Sur les UC M340 et M580, cette fonction permet de recevoir jusqu'à 1 024 octets. Deux possibilités s'offrent à vous : • Lire un nombre de caractères : Aucune condition ne doit être configurée. • Lire un message : Une condition d'arrêt doit être configurée dans l'écran de configuration. Les paramètres supplémentaires EN et ENO peuvent être configurés. 144 33002528.25 INPUT_CHAR : réception de chaînes de caractères Communication Représentation en FBD Représentation : Représentation en LD Représentation : Représentation en IL Représentation : LD Address INPUT_CHAR Raz, String_Length, Management_Param, Received_Data 33002528.25 145 Communication INPUT_CHAR : réception de chaînes de caractères Représentation en ST Représentation : INPUT_CHAR(Address, Raz, String_Length, Management_Param, Received_ Data); Description des paramètres Le tableau suivant décrit les paramètres d’entrée : 146 33002528.25 INPUT_CHAR : réception de chaînes de caractères Communication Paramètre Type Commentaire ADR ARRAY [0..5] OF INT for Premium Pour l'automate Premium : ARRAY [0..7] OF INT for Modicon M340 and M580 • L'adresse de la voie (en mode caractères) de réception du message est indiquée par la fonction ADDR, page 88. • Seules les adresses se terminant par SYS sont possibles (exemple : 0.0.0.SYS (port terminal du processeur)). Pour l'automate Modicon M340 : • L'adresse de la voie (en mode caractères) de réception du message est indiquée par la fonction ADDM, page 73. • La syntaxe de l'adresse est de type ADDM (‘r.m.c.node’). Le champ Node est facultatif. Il peut être de type SYS ou vide (par exemple ADDM('0.0.0.SYS') est égal à ADDM ('0.0.0')). Pour l'UC Modicon M580 : • RAZ INT Adresse de l'entité cible de l'opération d'entrée, résultat de la fonction ADDMX, page 80. Réinitialisation. Ce paramètre permet de réinitialiser la mémoire de réception du coupleur. • valeur 0 : pas de réinitialisation de la mémoire • valeur 1 : réinitialisation de la mémoire REMARQUE : Pour les communications au niveau du port terminal des automates Premium, la valeur doit être 1. REMARQUE : Sur les UC Modicon M340 et M580, l'EF INPUT_ CHAR peut être programmée avec ou sans ce paramètre. NB INT Longueur de la chaîne de caractères ou nombre de caractères à recevoir. • Valeur = 0 : Message lu dès qu'il est disponible sur la voie. Ici, une condition d'arrêt doit être spécifiée dans l'écran de configuration. • Valeur supérieure à 0 : Indique le nombre de caractères à lire. REMARQUE : Pour les communications au niveau du port terminal des automates Premium, 0 est la seule valeur autorisée. Le caractère de fin de message par défaut est un retour chariot (CR). Le tableau suivant décrit les paramètres d’entrée/sortie : 33002528.25 147 Communication INPUT_CHAR : réception de chaînes de caractères Paramètre Type Commentaire GEST ARRAY [0..3] OF INT Table de gestion de l'échange composée des mots suivants : • Mot de rang 1 : mot géré par le système et composé de 2 octets : ◦ octet de poids fort : numéro d'échange, ◦ octet de poids faible : bit d'activité (rang 0), bit d'annulation (rang 1) et bit de reconnaissance immédiate (rang 2) NOTE: le bit d'annulation n'est disponible que pour les automates Modicon M340 et M580. • Mot de rang 2 : mot géré par le système et composé de 2 octets : ◦ octet de poids fort : compte rendu d'opération ◦ octet de poids faible : compte rendu de communication • Mot de rang 3 : mot géré par l'utilisateur et qui définit le temps de réponse maximum en utilisant une base de temps de 100 ms. • Mot de rang 4 : mot géré par le système et qui définit la longueur de l'échange. Pour plus d'informations, consultez la section Structure des paramètres de gestion, page 39. Le tableau suivant décrit les paramètres de sortie : Paramètre Type Commentaire RCP STRING Chaîne reçue. Cette chaîne est ensuite stockée dans une chaîne de caractères. NOTE: la taille des données reçues (en octets) est automatiquement écrite par le système dans le quatrième mot du tableau de gestion. Règles de programmation Si plusieurs fonctions INPUT_CHAR sont lancées simultanément, le paramètre RAZ doit être réglé sur 0 (mémoire de réception du module non réinitialisée). Une requête peut être envoyée afin de réinitialiser la mémoire du module pour le message suivant et de ne pas recevoir d'anciennes données. Si le paramètre RAZ est réglé sur 1, la fonction INPUT_CHAR doit être lancée avant d'envoyer des données. Sur les automates Premium, plusieurs cycles d'automate sont nécessaires pour recevoir une chaîne de caractères de plus de 240 octets (la chaîne est fragmentée). Il est donc important de s'assurer que les données de gestion n'ont pas été modifiées au cours du 148 33002528.25 INPUT_CHAR : réception de chaînes de caractères Communication traitement de la fonction. Le système reçoit la chaîne de manière cohérente sur plusieurs fragments. Sur les UC Modicon M340 et M580, un seul cycle d'UC (CPU) est nécessaire pour recevoir une chaîne de caractères de 1 024 octets maximum. Il est important de s'assurer que les données de gestion n'ont pas été modifiées au cours du traitement de la fonction. Le port série de l'automate Modicon M340 est en duplex intégral. Par conséquent, une fonction PRINT_CHAR peut être envoyée même si une fonction INPUT_CHAR a été envoyée et mise en attente. Il est possible de lancer la fonction INPUT_CHAR avant de finaliser les caractères sur l'automate. Si des caractères de fin sont utilisés, que le tampon en contient beaucoup et qu'il n'a pas été réinitialisé, chaque fonction INPUT_CHAR reçoit la chaîne de début du tampon jusqu'au premier caractère de fin. Les caractères lus sont ensuite supprimés du tampon. La lecture d'un nombre de caractères fonctionne de la même manière. Si des caractères de fin sont configurés, il est possible d'utiliser la fonction de nombre de caractères. NOTE: Gestion RTS/CTS : Dans une communication en mode caractère, lorsque vous utilisez l'EF INPUT_CHAR, les caractères reçus sur la liaison série sont stockés dans un tampon en anneau. La taille de ce tampon est 1024. Lorsque le tampon est plein, les autres caractères sont perdus. Pour empêcher cette perte de caractères, il est possible de sélectionner la gestion RTS/CTS. Dans ce cas, lorsque le buffer en anneau est presque plein, l'UC réinitialise son signal RTS pour interrompre l'envoi des caractères. Si une chaîne de plus de 1000 caractères est émise (par exemple 1013), le RTS ne permettra de recevoir que les 1000 premiers caractères, et la fonction INPUT_CHAR attendra le caractère de fin indéfiniment (si aucun délai d'expiration n'a été défini pour cette fonction). AVERTISSEMENT PERTES DE DONNEES Assurez-vous que les équipements distants n'envoient pas de chaînes de plus de 1000 caractères (y compris les caractères de fin) lorsque vous utilisez la gestion RTS/CTS. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. NOTE: Si vous souhaitez envoyer une chaîne de plus de 1000 caractères (1013 par exemple), vous devez envoyer deux chaînes, la première avec les 1000 premiers caractères et la seconde avec les (13) caractères restants. 33002528.25 149 Communication INPUT_CHAR : réception de chaînes de caractères Ecran de saisie assistée Présentation Pour cette fonction de communication, vous pouvez avoir recours à l'écran de saisie assistée. Notez que cet écran n'est pas disponible pour les Modicon M340. NOTE: les symboles de variable sont acceptés dans les différents champs de l'écran. Figure La capture suivante est un exemple d'écran de saisie assistée de la fonction : Adresse Pour les automates Premium, les types d'objets possibles sont les suivants : • ADDR(STRING) • ARRAY [0..5] OF INT NOTE: Si vous saisissez une valeur directement dans le champ, le bouton de saisie assistée d'adresse est grisé. 150 33002528.25 INPUT_CHAR : réception de chaînes de caractères Communication RAZ mémoire du module Choix possible de type INT : • Oui • Non NOTE: La sélection du bouton Oui ou Non affiche immédiatement la valeur 1 ou 0. Type de lecture Les deux boutons radio permettent de sélectionner le mode de fonctionnement. La sélection doit être effectuée en fonction de la configuration de la voie utilisée. Nombre de caractères Vous pouvez entrer un entier, sous forme de variable ou de valeur immédiate. Chaîne à recevoir La zone de réception est une variable de type STRING. La taille de cette variable dépend du nombre de caractères à recevoir. La variable doit être déclarée avant d'être utilisée dans cet écran. Compte rendu Le compte rendu est un tableau de 4 entiers. NOTE: Veillez à ne pas utiliser plusieurs zones de mémoire identiques pour les tables de comptes rendus, car la fonction de lecture de variables risque de ne pas fonctionner. 33002528.25 151 Communication INPUT_CHAR : réception de chaînes de caractères Exemple de lecture de chaînes de caractères via un réseau Fipway Présentation Sur une station avec l'adresse 1 sur le réseau Fipway 20, nous voulons lire une chaîne de caractères envoyée par un terminal vidéo (écran et clavier) connecté au port TER de l'automate d'adresse réseau 20, station 5. Cette chaîne de caractères est stockée dans la variable Str_1, la table de gestion de la fonction de communication étant %MW110:4. Figure Les deux stations sont connectées via un réseau Fipway. Programmation Programmation en ST : IF RE(%I0.3.6) AND NOT %MW110.0 THEN INPUT_CHAR(ADDR('{20.5}0.0.SYS'), 1, 0, %MW110:4, Str_1); END_IF; Paramètres de la requête : 152 33002528.25 INPUT_CHAR : réception de chaînes de caractères Paramètres ADDR(‘{20.5}0.0.0.SYS’) Communication Description • {20.5} : réseau 20, station 5 • 0 : rack • 0 : module • 0 : voie 0 • SYS : adresse système (port terminal) 1 Réinitialisation 0 Lecture de la totalité de la chaîne de caractères %MW110:4 Table de gestion Str_1 Variable de type STRING devant recevoir le message Exemple de lecture de chaînes de caractères via une liaison série de processeurs Modicon M340 Présentation Nous voulons lire une chaîne de caractères envoyée par un terminal de saisie/d'affichage de données compact raccordé au port série d'un processeur Modicon M340. Cette chaîne de caractères est stockée dans la variable Str, la table de gestion de la fonction de communication étant gestion. 33002528.25 153 Communication INPUT_CHAR : réception de chaînes de caractères Figure Un automate Modicon M340 est relié à un terminal de saisie/d'affichage de données TM8501 : Programmation Programmation en ST : IF (%M15) THEN INPUT_CHAR(ADDM('0.0.0'), 1, 0, gestion, Str); END_IF; Paramètres de la requête : Paramètres ADDM('0.0.0') 154 Description • 0 : rack • 0 : module • 0 : voie 0 • SYS : adresse système (facultative sur les automates Modicon M340) 1 Réinitialisation 0 Lecture de la totalité de la chaîne de caractères gestion Table de gestion Str Variable de type STRING devant recevoir le message 33002528.25 INPUT_CHAR_QX : réception de chaînes de caractères sur le bus EIO Communication INPUT_CHAR_QX : réception de chaînes de caractères sur le bus EIO Contenu de ce chapitre Description ............................................................................ 155 Introduction Ce chapitre décrit la fonction INPUT_CHAR_QX. Description Description de la fonction La fonction INPUT_CHAR_QX permet de recevoir une chaîne de caractères envoyée par un équipement série connecté à un module de communication série Modicon X80 (BMX NOM) situé dans une station EIO. Le message reçu est enregistré dans une chaîne de caractères. Les paramètres supplémentaires EN et ENO peuvent être configurés. NOTE: La fonction INPUT_CHAR_QX fonctionne avec un module Modicon M340 BMX NOM 0200 muni d'un micrologiciel version SV 1.4 ou ultérieure. Si le micrologiciel est d'une version antérieure, une erreur (STATUS = 16#3301) est générée. Les blocs fonction de communication utilisent un chemin de transaction de données et requièrent plusieurs cycles pour effectuer une opération. Le nombre de chemins de transaction disponibles par module et par cycle MAST dépend du port de communication utilisé : • Les modules à port intégré Modbus Plus ou NOM prennent en charge jusqu'à 4 blocs simultanément. • Le port intégré Ethernet TCP/IP prend en charge jusqu'à 4 blocs simultanément. • Les modules TCP/IP Ethernet NOE, NOC et 140 CRP 312 00 prennent en charge jusqu'à 16 blocs simultanément. D'autres blocs fonction de communication peuvent être programmés sur le même port de communication. Toutefois, le bloc de communication qui dépasse le nombre maximum sur ce port n'est traité qu'après la mise à disposition d'un des chemins de transaction. Le bloc suivant sur le port devient alors actif et commence à utiliser un chemin disponible. 33002528.25 155 Communication INPUT_CHAR_QX : réception de chaînes de caractères sur le bus EIO Représentation en FBD Représentation : Représentation en LD Représentation : 156 33002528.25 INPUT_CHAR_QX : réception de chaînes de caractères sur le bus EIO Communication Représentation en IL Représentation : CAL INPUT_CHAR_QX_Instance (ENABLE:=InputCharEnable, ABORT: =InputCharAbort, ADDR:=ModuleAddress, RESET_BUF:=ResetInputBuffer, INPUT_LEN:=NbCharToRead, DONE=>InputCharSuccessfull, ACTIVE= >InputCharActive, ERROR=>InputCharFaulty, STATUS=>ErrorCode, REC_LEN= >NbCharReceived, REC_BUF=>ReceivedBuffer) Représentation en ST Représentation : INPUT_CHAR_QX_Instance (ENABLE:=InputCharEnable, ABORT: =InputCharAbort, ADDR:=ModuleAddress, RESET_BUF:=ResetInputBuffer, INPUT_LEN:=NbCharToRead, DONE=>InputCharSuccessfull, ACTIVE= >InputCharActive, ERROR=>InputCharFaulty, STATUS=>ErrorCode, REC_LEN= >NbCharReceived, REC_BUF=>ReceivedBuffer) Description des paramètres Le tableau suivant décrit les paramètres d’entrée : Paramètre Type Commentaire ACTIVER BOOL Réglé sur 1 pour recevoir une chaîne de caractères. ABORT BOOL Réglé sur 1 pour abandonner l'opération en cours. ADDR ANY_ARRAY_INT Tableau contenant l'adresse du module Modicon M340 cible, c'est-à-dire le résultat de la fonction ADDMX, page 80. RESET_BUF BOOL Ce paramètre permet de réinitialiser la mémoire de réception : INPUT_LEN INT • 0: aucune réinitialisation de la mémoire • 1: réinitialisation de la mémoire Nombre de caractères à recevoir : • 0: message lu dès qu'il est disponible sur la voie. Une condition STOP doit être définie dans l'écran de configuration. • >0: nombre de caractères à lire. Le tableau suivant décrit les paramètres de sortie : 33002528.25 157 INPUT_CHAR_QX : réception de chaînes de caractères sur le bus EIO Communication Paramètre Type Commentaire DONE BOOL Réglé sur 1 lorsque la fonction s'est exécutée correctement. ACTIVE BOOL Réglé sur 1 lorsque la fonction est en cours d'exécution. ERROR BOOL Réglé sur 1 si une erreur est détectée par le bloc fonction. STATUS WORD Fournit le code d'erreur, page 556 si le bloc fonction détecte une erreur. REC_LEN INT Nombre de caractères reçus. REC_BUF ANY Caractères reçus. Règles de programmation Si plusieurs fonctions INPUT_CHAR_QX sont lancées simultanément, le paramètre RESET_ BUF doit être réglé sur 0 (mémoire de réception du module non réinitialisée). Une requête de réinitialisation (RESET_BUF=1) doit être émise pour réinitialiser la mémoire du module pour le message suivant, afin d'éviter la réception de données anciennes. Si le paramètre RESET_BUF est réglé sur 1, la fonction INPUT_CHAR_QX doit être lancée avant l'envoi des données. Sinon les caractères déjà reçus sont supprimés. Il est possible de lancer la fonction INPUT_CHAR_QX avant l'envoi des caractères de fin à l'automate. Si des caractères de fin sont utilisés, que le tampon en contient beaucoup et qu'il n'a pas été réinitialisé, chaque fonction INPUT_CHAR_QX reçoit la chaîne de début du tampon jusqu'au premier caractère de fin. Les caractères lus sont ensuite supprimés du tampon. La lecture d'un nombre de caractères fonctionne de la même manière. Si des caractères de fin sont configurés, il est possible d'utiliser la fonction de nombre de caractères. NOTE: gestion RTS/CTS : si vous utilisez l'EF INPUT_CHAR_QX dans une communication en mode caractère, les caractères reçus sur la liaison série sont stockés dans un tampon en anneau. La taille de ce buffer est de 1 024. Lorsque le buffer est plein, les autres caractères sont perdus. Pour empêcher cette perte de caractères, il est possible de sélectionner la gestion RTS/CTS. Dans ce cas, lorsque le buffer en anneau est presque plein, l'UC réinitialise son signal RTS pour interrompre l'envoi des caractères. Si une chaîne de plus de 1000 caractères est envoyée (par exemple, 1013), le RTS n'autorise la réception que des 1000 premiers caractères, tandis que la fonction INPUT_ CHAR_QX attend le caractère de fin indéfiniment. 158 33002528.25 INPUT_CHAR_QX : réception de chaînes de caractères sur le bus EIO Communication AVERTISSEMENT PERTES DE DONNEES Assurez-vous que les équipements distants n'envoient pas de chaînes de plus de 1000 caractères (y compris les caractères de fin) lorsque vous utilisez la gestion RTS/CTS. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. NOTE: si vous souhaitez envoyer une chaîne de plus de 1000 caractères (1013, par exemple), vous devez envoyer 2 chaînes. Par exemple, 1000 caractères dans la première, et les 13 caractères restants dans la seconde. 33002528.25 159 Communication MBP_MSTR : Maître Modbus Plus MBP_MSTR : Maître Modbus Plus Contenu de ce chapitre Description du bloc ................................................................ 160 Codes de fonction des opérations ........................................... 164 Structures du bloc de commande de réseau ............................ 166 Lecture de données ............................................................... 169 Ecriture de données ............................................................... 171 Extraction de statistiques locales............................................. 173 Suppression de statistiques locales......................................... 174 Ecriture de données globales.................................................. 175 Lecture de données globales .................................................. 176 Lire statistiques distantes ....................................................... 177 Effacer statistiques distantes .................................................. 179 Validité de Peer Cop............................................................... 180 Réinitialisation du module optionnel ........................................ 181 Lecture de la CTE .................................................................. 182 Ecriture de la CTE.................................................................. 184 Envoi de messages électroniques ........................................... 186 Envoi d'une requête Modbus................................................... 188 Requête de clôture d'une connexion........................................ 193 Lecture/écriture de données ................................................... 194 Activation et désactivation des services HTTP ou FTP/ TFTP .................................................................................... 196 Etat d'intégrité des communications Peer Cop.......................... 198 Statistiques du réseau Modbus Plus........................................ 199 Statistiques de réseau Ethernet TCP/IP................................... 205 Présentation Ce chapitre décrit le bloc MBP_MSTR. Description du bloc Description de la fonction Vous pouvez sélectionner l'une des 14 opérations de communication réseau disponibles, page 164 à l'aide du bloc fonction MBP_MSTR. Le bloc MBP_MSTR est pris en charge sur diverses plates-formes matérielles, page 30. 160 33002528.25 MBP_MSTR : Maître Modbus Plus Communication EN et ENO peuvent être configurés comme paramètres supplémentaires. NOTE: vérifiez que le programmeur du bloc fonction MBP_MSTR connaît les procédures de routage de votre réseau. Les structures de routage Modbus Plus sont décrites en détail dans le manuel des architectures de communication (voir Architectures et services de communication, Manuel de référence) et dans le document Réseau Modbus Plus Modicon, Guide de planification et d'installation. Si le routage Ethernet TCP/IP ou SY/MAX est mis en œuvre (voir Quantum sous EcoStruxure™Control Expert, TCP/IP Configuration, Manuel utilisateur), vous devez utiliser des routeurs EtherNet IP standard. Les blocs fonction CREAD_REG, CWRITE_REG, READ_REG, WRITE_REG et MBP_MSTR utilisent un chemin de transaction de données et requièrent plusieurs cycles pour effectuer une opération. Le nombre de chemins de transaction disponibles par module et par cycle MAST dépend du port de communication utilisé : • Les modules à port intégré Modbus Plus ou NOM prennent en charge jusqu'à 4 blocs simultanément. • Le port intégré Ethernet TCP/IP prend en charge jusqu'à 4 blocs simultanément. • Les modules TCP/IP Ethernet NOE, NOC et 140 CRP 312 00 prennent en charge jusqu'à 16 blocs simultanément. D'autres blocs fonction de communication peuvent être programmés sur le même port de communication. Toutefois, le bloc de communication qui dépasse le nombre maximum sur ce port n'est traité qu'après la mise à disposition d'un des chemins de transaction. Le bloc suivant sur le port devient alors actif et commence à utiliser un chemin disponible. NOTE: dans les sections FBD et LD, ce bloc fonction est utilisable au niveau programme et avec des blocs fonction dérivés (DFB). en cas d'utilisation de DFB, les paramètres COMMANDE et DATABUF sont directement associés aux broches d'E/S des DFB. NOTE: pour qu'une communication TCP/IP entre un automate (PLC) Quantum et un automate (PLC) Momentum puisse avoir lieu, il faut qu'une seule tâche de lecture ou d'écriture soit réalisée au cours de chaque cycle. Si plusieurs tâches sont envoyées par cycle d'automate (PLC), la communication est stoppée, sans qu'un message d'erreur ne soit généré dans le registre d'état du bloc fonction. NOTE: dans un système de redondance d'UC (Hot Standby) Quantum ou Premium, pour éviter que l'UC (CPU) redondante exécute des fonctions de communication (maintenant dans l'état RUN en mode local), vous devez ajouter une condition sur les bits d'état pour désactiver la fonction si l'UC (CPU) est en mode local. Exemple : • Vous pouvez envoyer MBP_MSTR.Enable:=(HSBY_NOEPLCMSTR_ON) AND (% SW61.1) AND NOT (%SW61.0). ou • 33002528.25 Vous pouvez créer une variable booléenne, primary_state:=(%SW61.1) AND NOT (%SW61.0) et l'insérer pour exécuter la section. 161 Communication MBP_MSTR : Maître Modbus Plus NOTE: dans un système de redondance d'UC (Hot Standby) M580, pour éviter que l'UC (CPU) redondante exécute des fonctions de communication (maintenant dans l'état RUN en mode local), vous devez ajouter une condition sur les bits d'état pour désactiver la fonction si l'UC (CPU) est en mode local. Exemple : • Vous pouvez définir MBP_MSTR.Enable:=(HSBY_NOEPLCMSTR_ON AND ECPU_HSBY_1.LOCAL_HSBY_STS.RUN_PRIMARY). ou • Vous pouvez utiliser la variable booléenne ECPU_HSBY_1.LOCAL_HSBY_STS. RUN_PRIMARY comme condition pour exécuter la section. NOTE: il est possible d'utiliser plusieurs copies de ce bloc fonction dans le programme. Il n'est cependant pas possible de procéder à une instanciation multiple de ces copies. Représentation en FBD 162 33002528.25 MBP_MSTR : Maître Modbus Plus Communication Représentation en LD Paramètres d'entrée Paramètre Type de données Description ACTIVER BOOL Sur ON, l'opération spécifiée dans le premier élément du registre COMMANDE est activée. ABORT BOOL Sur ON, l'opération active, page 164 est abandonnée. Paramètres de sortie Paramètre Type de données Description ACTIVE BOOL ON lorsque l'opération est active. ERROR BOOL ON lorsque l'abandon de l'opération a échoué. SUCCESS BOOL ON lorsque l'opération s'est déroulée correctement. 33002528.25 163 Communication MBP_MSTR : Maître Modbus Plus Paramètre Type de données Description COMMANDE WORD Ce champ contient le bloc de commande. Le premier élément, COMMANDE[1], contient le numéro du code de l'opération à réaliser, page 164. Le contenu du registre de séquences est déterminé par l'opération. Vérifiez que le champ de données est déclaré en tant que variable localisée. La structure du bloc de commande varie selon le réseau utilisé, page 166. DATABUF WORD Pour les opérations fournissant des données (par exemple une opération d'écriture write), le champ de données est la source des données. Pour les opérations recevant des données (par exemple une opération de lecture read), le champ de données est la cible des données. Avec les opérations de lecture et d'écriture de la CTE Ethernet, le contenu de la table d'extension de configuration Ethernet se trouve dans les champs de données. Dans ce cas, vérifiez que DATABUF est défini en tant que tableau comportant au moins 10 éléments. Vérifiez que le champ de données est déclaré en tant que variable localisée. Erreur d'exécution Si une erreur se produit au cours d'une opération MBP_MSTR, un code d'erreur hexadécimal s'affiche dans le registre COMMANDE[2] du bloc de commande pendant un cycle. NOTE: Les codes d'erreur, page 556 des fonctions varient selon les réseaux. NOTE: Pour obtenir la liste de l'ensemble des valeurs et codes d'erreur de bloc, reportez-vous aux tableaux des codes d'erreur pour la bibliothèque de communication, page 553. Codes de fonction des opérations Codes de fonction MBP_MSTR valides Le bloc MBP_MSTR permet de déclencher des opérations de communication réseau via le réseau. A chaque opération est affecté un code de fonction comme indiqué dans le tableau suivant. La disponibilité des opérations dépend du type de réseau et de module utilisés. Code de fonction Opération Modbus Plus TCP/IP Ethernet SY/MAX Ethernet CIP Ethernet 1 Ecriture de données X X X - 2 Lecture de données X X X - 164 33002528.25 MBP_MSTR : Maître Modbus Plus Communication Code de fonction Opération Modbus Plus TCP/IP Ethernet SY/MAX Ethernet CIP Ethernet 3 Extraction de statistiques locales X X - - 4 Suppression de statistiques locales X X - - 5 Ecriture de données globales, Peer Cop, page 175 X - - - 6 Lecture de données globales, Peer Cop, page 176 X - - - 7 Obtention de statistiques distantes X X - - 8 Suppression de statistiques distantes, page 179 X X - - 9 Etat de validité de Peer Cop, page 180 X - - - 10 Réinitialisation du module optionnel - X X - 11 Lecture de la CTE (extension de configuration) - X X - 12 Ecriture de la CTE (extension de configuration) - X X - 13 Envoi d'e-mail, page 186 - X - - 14 Message explicite CIP (voir Quantum sous EcoStruxure™ Control Expert, Module de communication EtherNet/IP 140 NOC 771 00, Manuel utilisateur) - - - X 15 Envoi d'une requête Modbus, page 188 - X - - 16 Requête de clôture d'une connexion, page 193 - X - - 17 Modification de l'adresse Modbus Plus (voir Quantum sous EcoStruxure™ Control Expert, Modules réseau Ethernet, Manuel utilisateur) X - - - 23 Lecture/écriture de données, page 194 - X - - 65520 (déc) FFF0 (hex) Activation/désactivation de HTTP ou FTP/TFTP - X - - où : • X signifie Oui • - signifie Non 33002528.25 165 Communication MBP_MSTR : Maître Modbus Plus Structures du bloc de commande de réseau Récapitulatif La structure du bloc de commande MBP_MSTR varie selon le type de réseau que vous utilisez. Les structures pour Modbus Plus, Ethernet TCP/IP et Ethernet SyMax sont décrites ci-dessous. Bloc de commande pour Modbus Plus Registre Sommaire COMMANDE[1] Indique une opération valide pour Modbus Plus. COMMANDE[2] Indique l'état d'erreur. COMMANDE[3] Indique la longueur, c'est-à-dire le nombre d'unités de données transférées (max. 100). COMMANDE[4] Indique des informations liées à l'opération MSTR. COMMANDE[5] Registre de routage 1 : sert à indiquer un abonné cible pendant un transfert réseau (adresses du chemin de routage - 1 sur 5). Octet de poids fort : adresse de l'abonné source, soit l'emplacement pour le module NOM (Network Options Module) Modbus Plus. Si vous utilisez le port Modbus Plus de l'UC, cet octet doit être réglé sur 0 (pour tous les emplacements de l'UC). Octet de poids faible : adresse de l'abonné cible, soit une valeur qui représente une adresse directe ou de pont. S'il n'y a pas de pont, cette valeur contient l'adresse de l'abonné cible. S'il y a un pont, cette valeur contient son adresse. Si le NOM est inséré dans l'emplacement 7 du rack du module, l'octet de poids fort du registre de routage 1 se présente comme suit (valeur 0x0706) : Octet de poids fort Emplacements 1 à 16 Octet de poids faible Adresse cible (valeur binaire entre 1 et 64 (normale) ou entre 65 et 255 (étendue)) COMMANDE[6] 166 Registre de routage 2, adresse de l'abonné cible (pont ou modules Modbus Plus supplémentaires). Si l'adressage du registre de routage précédent est terminé, la valeur est réglée sur 0. 33002528.25 MBP_MSTR : Maître Modbus Plus Communication Registre Sommaire COMMANDE[7] Registre de routage 3, identique au 2. COMMANDE[8] Registre de routage 4, identique au registre de routage 2 (voir registre de routage 2) COMMANDE[9] Registre de routage 5, identique au registre de routage 2 (voir registre de routage 2) Bloc de commande pour Ethernet TCP/IP Registre Sommaire COMMANDE[1] Indique une opération valide pour TCP/IP. COMMANDE[2] Indique l'état d'erreur. COMMANDE[3] Indique la longueur, c'est-à-dire le nombre d'unités de données transférées (max. 100). COMMANDE[4] Indique des informations liées à l'opération MSTR. COMMANDE[5] Registre de routage : sert à indiquer un abonné cible pendant un transfert réseau. Octet de poids fort : adresse de l'abonné source, soit l'emplacement NOE pour le module NOE. Si vous utilisez un Ethernet intégré dans l'UC, cet octet doit être réglé sur 254 (FE hex) pour tous les emplacements de l'UC. Octet de poids faible : adresse de l'abonné cible, soit une valeur qui représente une adresse directe ou de pont. S'il n'y a pas de pont, la valeur de l'octet de poids faible est réglée sur 0. S'il y a un pont, cette valeur contient le MBP pour l'index de mappage sur Ethernet (MET). Si le module NOE est inséré dans l'emplacement 7 du rack du module et que l'index de mappage sur Ethernet (MET) est 6, le registre de routage se présente comme suit (valeur 0x0706) : Octet de poids fort Emplacements 1 à 16 Octet de poids faible Index de mappage MBP sur Ethernet Transporter (MET) COMMANDE[6] Octet 4, MSB de l'adresse IP cible à 32 bits COMMANDE[7] Octet 3 de l'adresse IP cible à 32 bits COMMANDE[8] Octet 2 de l'adresse IP cible à 32 bits COMMANDE[9] Octet 1, LSB de l'adresse IP cible à 32 bits 33002528.25 167 Communication MBP_MSTR : Maître Modbus Plus Registre Sommaire COMMANDE[10] Indique des informations liées à l'opération MSTR. COMMANDE[11] Indique des informations liées à l'opération MSTR. NOTE: CONTROL[10] et CONTROL[11] sont utilisés lors de la configuration du bloc MBP_MSTR pour une opération Lecture/Ecriture (code de fonction 23). Bloc de commande pour Ethernet SY/MAX Registre Sommaire COMMANDE[1] Indique une opération valide pour SY/MAX. COMMANDE[2] Indique l'état d'erreur. COMMANDE[3] Indique la longueur, c'est-à-dire le nombre de registres transférés (max. 100). COMMANDE[4] Indique des informations liées à l'opération MSTR. COMMANDE[5] Registre de routage : sert à indiquer un abonné cible pendant un transfert réseau. Octet de poids fort : adresse de l'abonné source, soit l'emplacement pour le module NOE. Octet de poids faible : adresse de l'abonné cible, soit une valeur qui représente une adresse directe ou de pont. S'il n'y a pas de pont, la valeur de l'octet de poids faible est réglée sur 0. S'il y a un pont, cette valeur contient le MBP pour l'index de mappage sur Ethernet (MET). Si le NOM est inséré dans l'emplacement 7 du rack du module et que l'index de mappage sur Ethernet (MET) est 6, le registre de routage se présente comme suit (valeur 0x0706) : Octet de poids fort Emplacements 1 à 16 Octet de poids faible index de mappage MBP sur Ethernet Transporter (MET). 168 COMMANDE[6] Numéro de station cible (ou réglé sur FF hex) COMMANDE[7] Terminaison (réglée sur FF hex) 33002528.25 MBP_MSTR : Maître Modbus Plus Communication Lecture de données Description Une opération de lecture transfère des données d'un équipement source esclave spécifié vers un équipement de destination maître sur le réseau. L'opération utilise un chemin de transaction maître et sa réalisation peut nécessiter plusieurs cycles. Pour programmer un bloc MBP_MSTR en vue d'exécuter une opération d'écriture, utilisez le code fonction 2, page 164. NOTE: N'essayez pas de programmer un MBP_MSTR pour lire dans sa propre adresse de station. Par cette action, le bloc fonction génère une erreur dans le registre COMMANDE[2] du bloc de commande, page 166. Vous pouvez effectuer une opération de lecture dans un registre esclave inexistant. L'esclave détecte l'état et le consigne (l'opération peut s'étendre sur plusieurs cycles). NOTE: Pour que l'automate (PLC) Quantum puisse communiquer avec un automate (PLC) Premium/Atrium, assurez-vous que l'adressage s'effectue avec un décalage de 1. Pour accéder à l'objet d'adresse n d'un automate (PLC) Premium, vérifiez que la fonction de communication de l'automate (PLC) Quantum utilise l'adresse n+1. L'adressage IEC commence à 0, tandis que l'adressage Modbus commence à 1. Implémentation réseau L'opération d'écriture peut être effectuée sur les réseaux Modbus Plus, Ethernet TCP/IP et Ethernet SY/MAX. Utilisation du bloc de commande pour Modbus Plus Registre Signification COMMANDE[1] 2 = lecture de données COMMANDE[2] Indique l'état d'erreur. COMMANDE[3] Nombre de registres à lire depuis l'esclave. COMMANDE[4] Détermine le registre de départ %MW dans l'esclave à partir duquel les données sont lues, par exemple 1 = %MW1, 49 = %MW49. COMMANDE[5] Le registre de routage 1 sert à indiquer l'adresse (adresse du chemin de routage 1 sur 5) de l'abonné pendant un transfert réseau. ... Le dernier octet du chemin de routage qui n'est pas réglé sur 0 est le nœud cible. COMMANDE[9] 33002528.25 169 Communication MBP_MSTR : Maître Modbus Plus Utilisation du bloc de commande pour Ethernet TCP/IP Registre Signification COMMANDE[1] 2 = lecture de données COMMANDE[2] Indique l'état d'erreur. COMMANDE[3] Nombre d'adresses à lire depuis l'esclave. COMMANDE[4] Détermine le registre de départ %MW dans l'esclave à partir duquel les données sont lues, par exemple 1 = %MW1, 49 = %MW49. COMMANDE[5] Registre de routage COMMANDE[6] • Octet de poids fort : emplacement du module adaptateur réseau • Octet de poids faible : index de mappage MET (MBP on Ethernet Transporter) Chaque adresse contient 1 octet de l'adresse IP à 32 bits, où le MSB est dans COMMANDE[6] et le LSB dans COMMANDE[9]. ... COMMANDE[9] Utilisation du bloc de commande pour Ethernet SY/MAX Registre Signification COMMANDE[1] 2 = lecture de données COMMANDE[2] Indique l'état d'erreur. COMMANDE[3] Nombre d'adresses à lire depuis l'esclave. COMMANDE[4] Détermine le registre de départ %MW dans l'esclave dans lequel les données sont écrites, par exemple 1 = %MW1, 49 = %MW49. COMMANDE[5] Registre de routage : COMMANDE[6] • Octet de poids fort : emplacement du module adaptateur réseau • Octet de poids faible : numéro de station cible Terminaison : FF hexadécimal ... COMMANDE[9] 170 33002528.25 MBP_MSTR : Maître Modbus Plus Communication Ecriture de données Description L'opération d'écriture transfère des données d'un équipement source maître vers un équipement esclave cible spécifique du réseau. L'opération utilise un chemin de transaction maître et sa réalisation peut nécessiter plusieurs cycles. Pour programmer un bloc MBP_ MSTR en vue d'exécuter une opération d'écriture, utilisez le code fonction 1, page 164. NOTE: N'essayez pas de programmer un MBP_MSTR pour écrire dans sa propre adresse de station. Sinon, le bloc fonction génèrera une erreur dans le registre COMMANDE[2] du bloc de commande, page 166. Vous pouvez effectuer une opération d'écriture dans un registre esclave inexistant. L'esclave détecte l'état et le consigne (l'opération peut s'étendre sur plusieurs cycles). NOTE: Pour que l'automate (PLC) Quantum puisse communiquer avec un automate (PLC) Premium/Atrium, assurez-vous que l'adressage s'effectue avec un décalage de 1. Pour accéder à l'objet d'adresse n d'un automate (PLC) Premium, vérifiez que la fonction de communication de l'automate (PLC) Quantum utilise l'adresse n+1. L'adressage IEC commence à 0, tandis que l'adressage Modbus commence à 1. Implémentation réseau L'opération d'écriture peut être effectuée sur les réseaux Modbus Plus, Ethernet TCP/IP et SY/MAX Ethernet. Utilisation du bloc de commande pour Modbus Plus Registre Signification COMMANDE[1] 1= écriture de données COMMANDE[2] Indique l'état d'erreur. COMMANDE[3] Nombre d'adresses envoyées à l'esclave. COMMANDE[4] Détermine le registre de départ %MW dans l'esclave dans lequel les données sont écrites, par exemple 1 = %MW1, 49 = %MW49. COMMANDE[5] Le registre de routage 1 sert à indiquer l'adresse (adresse du chemin de routage 1 sur 5) de l'abonné pendant un transfert réseau. ... Le dernier octet du chemin de routage qui n'est pas réglé sur 0 est le nœud cible. COMMANDE[9] 33002528.25 171 Communication MBP_MSTR : Maître Modbus Plus Utilisation du bloc de commande pour Ethernet TCP/IP Registre Signification COMMANDE[1] 1= écriture de données COMMANDE[2] Indique l'état d'erreur. COMMANDE[3] Nombre d'adresses envoyées à l'esclave. COMMANDE[4] Détermine l'adresse de départ %MW de l'esclave dans lequel les données sont écrites.. COMMANDE[5] Registre de routage : COMMANDE[6] • Octet de poids fort : emplacement du module adaptateur réseau • Octet de poids faible : index de mappage MET (MBP on Ethernet transporter) Chaque adresse contient 1 octet de l'adresse IP à 32 bits. ... COMMANDE[9] Utilisation du bloc de commande pour Ethernet SY/MAX Registre Signification COMMANDE[1] 1= écriture de données COMMANDE[2] Indique l'état d'erreur. COMMANDE[3] Nombre d'adresses envoyées à l'esclave. COMMANDE[4] Détermine le registre de départ %MW dans l'esclave dans lequel les données sont écrites, par exemple 1 = %MW1, 49 = %MW49. COMMANDE[5] Registre de routage : COMMANDE[6] • Octet de poids fort : emplacement du module adaptateur réseau • Octet de poids faible : numéro de station cible Terminaison : FF hexadécimal ... COMMANDE[9] 172 33002528.25 MBP_MSTR : Maître Modbus Plus Communication Extraction de statistiques locales Description L'opération d'extraction de statistiques locales lit les données depuis l'abonné local en un cycle et ne nécessite pas de chemin de transaction maître. Pour programmer un bloc MBP_ MSTR en vue d'extraire des statistiques locales, utilisez le code fonction 3, page 164. Implémentation réseau Une opération d'extraction de statistiques locales peut s'effectuer sur les réseaux Modbus Plus et Ethernet TCP/IP, page 205. Utilisation du bloc de commande pour Modbus Plus Registre Signification COMMANDE[1] 3 = extraction de statistiques locales COMMANDE[2] Indique l'état d'erreur COMMANDE[3] Nombre d'adresses à lire à partir des statistiques locales (1 à 54). Remarque : la taille du tampon de données doit être égale ou supérieure à celle de cette entrée. COMMANDE[4] Première adresse à partir de laquelle la table des statistiques doit être lue (Reg1=0) COMMANDE[5] Le registre de routage 1 sert à indiquer l'adresse (adresse du chemin de routage 1 sur 5) de l'abonné pendant un transfert réseau. Le dernier octet du chemin de routage qui n'est pas réglé sur 0 est l'abonné cible. Utilisation du bloc de commande pour Ethernet TCP/IP Registre Signification COMMANDE[1] 3 = extraction de statistiques locales COMMANDE[2] Indique l'état d'erreur COMMANDE[3] Nombre d'adresses à lire à partir des statistiques locales (1 à 38). 33002528.25 173 Communication Registre MBP_MSTR : Maître Modbus Plus Signification Remarque : la taille du tampon de données doit être égale à celle de cette entrée. COMMANDE[4] Première adresse à partir de laquelle la table des statistiques doit être lue (Reg1=0) COMMANDE[5] Registre de routage Octet de poids fort : emplacement du module de la carte réseau COMMANDE[6] Non utilisé ... COMMANDE[9] Suppression de statistiques locales Description L'opération de suppression de statistiques locales supprime les valeurs des mots 13 à 22 dans la table des statistiques de l'abonné local. Cette opération s'effectue en un cycle et ne nécessite pas de chemin de transaction maître. Pour programmer un bloc MBP_MSTR en vue de supprimer des statistiques locales, utilisez le code fonction 4, page 164. Implémentation réseau L'opération de suppression de statistiques locales peut être réalisée sur les réseaux Modbus Plus et Ethernet TCP/IP, page 205. Utilisation du bloc de commande pour Modbus Plus 174 Registre Signification COMMANDE[1] 4 = suppression de statistiques locales COMMANDE[2] Indique l'état d'erreur. COMMANDE[3] Réservé 33002528.25 MBP_MSTR : Maître Modbus Plus Communication Registre Signification COMMANDE[4] Réservé COMMANDE[5] Le registre de routage 1 sert à indiquer l'adresse (adresse du chemin de routage 1 sur 5) de l'abonné pendant un transfert réseau. Le dernier octet du chemin de routage qui n'est pas réglé sur 0 est l'abonné cible. Utilisation du bloc de commande pour Ethernet TCP/IP Registre Signification COMMANDE[1] 4 = suppression de statistiques locales COMMANDE[2] Indique l'état d'erreur. COMMANDE[3] Réservé COMMANDE[4] Réservé COMMANDE[5] Registre de routage Octet de poids fort : emplacement du module de la carte réseau COMMANDE[6] Réservé ... COMMANDE[9] Ecriture de données globales Description L'opération d'écriture de données globales transfère des données au processeur de communication de l'abonné actuel ; les données peuvent être transmises sur le réseau dès que l'abonné reçoit le jeton, puis être lues par tous les abonnés connectés au réseau local, page 176. L'opération d'écriture de données globales s'effectue en un cycle et ne nécessite pas de chemin de transaction maître. Pour programmer un bloc MBP_MSTR en vue d'écrire des données globales, utilisez le code fonction 5, page 164. 33002528.25 175 Communication MBP_MSTR : Maître Modbus Plus Implémentation réseau L'opération d'écriture de données globales ne peut être réalisée que sur les réseaux Modbus Plus. Les opérations de lecture et d'écriture de données globales comprennent une fonctionnalité Modbus Plus appelée Peer Cop. Utilisation du bloc de commande pour Modbus Plus Registre Signification COMMANDE[1] 5 = écriture de données globales COMMANDE[2] Indique l'état d'erreur. COMMANDE[3] Nombre d'adresses à écrire à partir de la RAM d'état dans la mémoire de données globales (processeur de communication) (1 à 32) COMMANDE[4] Réservé COMMANDE[5] Si les données globales sont envoyées via un NOM, entrez l'emplacement de ce module dans l'octet de poids fort de ce registre. Lecture de données globales Description L'opération de lecture de données globales lit des données à partir du processeur de communication d'un abonné du réseau qui dispose de données globales écrites, page 175. Cette opération ne nécessite pas de chemin de transaction maître. L'opération de lecture de données globales peut durer plusieurs cycles si les données ne sont pas disponibles sur les abonnés appelés. Si les données globales sont disponibles, l'opération s'exécute en un cycle. Pour programmer un bloc MBP_MSTR en vue d'écrire des données globales, utilisez le code fonction 6, page 164. Implémentation réseau L'opération de lecture de données globales ne peut être réalisée que sur des réseaux Modbus Plus. Les opérations de lecture et d'écriture de données globales comprennent une fonctionnalité Modbus Plus appelée Peer Cop. 176 33002528.25 MBP_MSTR : Maître Modbus Plus Communication Utilisation du bloc de commande pour Modbus Plus Registre Signification COMMANDE[1] 6 = lecture de données globales COMMANDE[2] Indique l'état d'erreur. COMMANDE[3] Nombre d'adresses à envoyer depuis la mémoire de données globales (processeur de communication) (1 à 32) COMMANDE[4] Affiche les adresses disponibles dans l'abonné scruté. Ce registre est automatiquement mis à jour. COMMANDE[5] L'octet de poids faible contient l'adresse de l'abonné dont les données globales doivent être lues. Sa valeur peut être comprise dans la plage 1 à 64. Si les données globales sont reçues via un NOM, entrez l'emplacement de ce module dans l'octet de poids fort de cette adresse. Lire statistiques distantes Description L'opération d'obtention de statistiques distantes permet de lire des données à partir d'abonnés distants du réseau. A chaque requête, le processeur de communication distant fournit une table complète de statistiques, même si la requête ne fait pas référence à la totalité de la table. Il copie ensuite uniquement les mots que vous avez interrogés dans les adresses $MW identifiées. La réalisation d'une opération peut prendre plusieurs cycles et elle ne nécessite pas de chemin de transaction maître. Pour programmer un bloc MBP_MSTR en vue d'extraire des statistiques distantes, utilisez le bloc fonction 7, page 164. Implémentation réseau Une opération d'extraction de statistiques peut être effectuée sur les réseaux Modbus Plus et TCP/IP Ethernet. 33002528.25 177 Communication MBP_MSTR : Maître Modbus Plus Utilisation du bloc de commande pour Modbus Plus Registre Signification COMMANDE[1] 7 = obtention de statistiques distantes COMMANDE[2] Indique l'état d'erreur COMMANDE[3] Nombre d'adresses à lire dans le champ des données de statistiques (1 à 54). Remarque : la taille du tampon de données doit être égale ou supérieure à celle de cette entrée. COMMANDE[4] Première adresse à partir de laquelle les statistiques de l'abonné doivent être lues. Il est impossible de dépasser le nombre de registres de statistiques disponibles. COMMANDE[5] Adresse de routage 1 à 5 de l'abonné. ... Le dernier octet du chemin de routage qui n'est pas réglé sur 0 est l'abonné cible. COMMANDE[9] Utilisation du bloc de commande pour Ethernet TCP/IP Registre Signification COMMANDE[1] 7 = obtention de statistiques distantes COMMANDE[2] Indique l'état d'erreur COMMANDE[3] Nombre d'adresses à lire dans le champ des données de statistiques (1 à 38). Remarque : la taille du tampon de données doit être égale ou supérieure à celle de cette entrée. COMMANDE[4] Première adresse à partir de laquelle les statistiques de l'abonné doivent être lues. Il est impossible de dépasser le nombre de registres de statistiques disponibles. COMMANDE[5] Registre de routage Octet de poids fort : emplacement du module de la carte réseau COMMANDE[6] Chaque adresse contient 1 octet de l'adresse IP à 32 bits, où la valeur de COMMANDE[6] est le MSB et celle de COMMANDE[9] est le LSB. ... COMMANDE[9] 178 33002528.25 MBP_MSTR : Maître Modbus Plus Communication Effacer statistiques distantes Description L'opération de suppression de statistiques distantes supprime les valeurs de l'abonné distant des mots 13 à 22 dans la table des statistiques de l'abonné local. Elle utilise un chemin de transaction maître et sa réalisation peut nécessiter plusieurs cycles. Pour programmer un bloc MBP_MSTR en vue d'exécuter une opération de suppression de statistiques distantes, utilisez le code fonction 8, page 164. Implémentation réseau L'opération de suppression de statistiques distantes peut être réalisée sur les réseaux Modbus Plus et Ethernet TCP/IP, page 205. Utilisation du bloc de commande pour Modbus Plus Registre Signification COMMANDE[1] 8 = suppression de statistiques distantes COMMANDE[2] Indique l'état d'erreur. COMMANDE[3] Réservé COMMANDE[4] Réservé COMMANDE[5] Le registre de routage 1 sert à indiquer l'adresse (adresse du chemin de routage 1 sur 5) de l'abonné cible pendant un transfert réseau. ... Le dernier octet du chemin de routage qui n'est pas réglé sur 0 est l'abonné cible. COMMANDE[9] Utilisation du bloc de commande pour Ethernet TCP/IP Registre Signification COMMANDE[1] 8 = suppression de statistiques distantes COMMANDE[2] Indique l'état d'erreur. COMMANDE[3] Réservé 33002528.25 179 Communication MBP_MSTR : Maître Modbus Plus Registre Signification COMMANDE[4] Réservé COMMANDE[5] Registre de routage Octet de poids fort : emplacement du module de la carte réseau COMMANDE[6] Chaque adresse contient un octet de l'adresse IP à 32 bits, où le MSB est dans COMMANDE[6] et le LSB dans COMMANDE[9]. ... COMMANDE[9] Validité de Peer Cop Description L'opération de validité de Peer Cop lit les données sélectionnées dans la table de validité des communications Peer Cop et les télécharge à l'adresse %MW spécifiée dans la RAM d'état. Pour programmer un bloc MBP_MSTR en vue d'exécuter une opération de suppression de statistiques distantes, utilisez le code fonction 9, page 164. NOTE: la validité Peer Cop est opérationnelle uniquement si un scrutateur d'E/S à diffusion des E/S est configuré. La table de validité des communications Peer Cop a une longueur de 12 mots ; MBP_MSTR indexe ces mots avec les numéros 0 à 11. Implémentation réseau L'opération de validité Peer Cop ne peut être réalisée que sur les réseaux Modbus Plus. Utilisation du bloc de commande pour Modbus Plus 180 Registre Signification COMMANDE[1] 9 = validité de Peer Cop COMMANDE[2] Indique l'état d'erreur. COMMANDE[3] Nombre de mots requis par la table Peer Cop (1 à 12) 33002528.25 MBP_MSTR : Maître Modbus Plus Communication Registre Signification COMMANDE[4] Premier mot à lire à partir de la table Peer Cop, où 0 est le premier mot et 11 le dernier mot COMMANDE[5] Adresse de routage 1 S'il s'agit du second de deux abonnés locaux, réglez la valeur de l'octet de poids fort sur 1. Réinitialisation du module optionnel Description Suite à une opération de réinitialisation du module optionnel, le module de communication Ethernet Quantum NOE ou le port Ethernet sur un module d'UC 140 CPU 65150/60 entre dans un cycle de réinitialisation de son environnement de travail. Pour programmer un bloc MBP_MSTR en vue d'exécuter une opération de réinitialisation du module optionnel, utilisez le code fonction 10, page 164. Implémentation réseau L'opération de réinitialisation du module optionnel peut être réalisée sur des réseaux Ethernet TCP/IP, page 205 et Ethernet SY/MAX. Utilisation du bloc de commande pour Ethernet TCP/IP Registre Signification COMMANDE[1] 10 = réinitialisation du module optionnel COMMANDE[2] Indique l'état d'erreur. COMMANDE[3] Aucune signification COMMANDE[4] Aucune signification COMMANDE[5] Registre de routage, page 167 COMMANDE[6] Aucune signification ... COMMANDE[9] 33002528.25 181 Communication MBP_MSTR : Maître Modbus Plus Utilisation du bloc de commande pour Ethernet SY/MAX (COMMANDE) Registre Signification COMMANDE[1] 10 = réinitialisation du module optionnel COMMANDE[2] Indique l'état d'erreur. COMMANDE[3] Aucune signification COMMANDE[4] Aucune signification COMMANDE[5] Registre de routage, page 168 COMMANDE[6] Aucune signification ... COMMANDE[9] Lecture de la CTE Description L'opération de lecture de la CTE lit un nombre spécifique d'octets dans la table d'extension de configuration Ethernet située dans le tampon indiqué de la mémoire de l'automate. Ces octets sont décalés par rapport au début de la table de la CTE. Le contenu de la table de la CTE s'affiche dans le paramètres de sortie, page 163 DATABUF. Pour programmer un bloc MBP_MSTR en vue d'exécuter une opération de suppression de statistiques distantes, utilisez le code fonction 11, page 164. Implémentation réseau L'opération de lecture de la CTE peut être réalisée sur des réseaux Ethernet TCP/IP et Ethernet SY/MAX. 182 33002528.25 MBP_MSTR : Maître Modbus Plus Communication Utilisation du bloc de commande pour Ethernet TCP/IP Registre Signification COMMANDE[1] 11 = lecture de la CTE COMMANDE[2] Indique l'état d'erreur. COMMANDE[3] Le paramètre de longueur : une valeur comprise entre 12 et 37. COMMANDE[4] Aucune signification COMMANDE[5] Registre de routage Octet de poids faible = index de mappage Soit une valeur affichée dans l'octet du registre, soit non utilisé. Ou octet de poids fort = emplacement du module de la carte réseau CONTROL[6]... Réservé COMMANDE[9] Utilisation du bloc de commande pour Ethernet SY/MAX Registre Signification CONTROL[1] 11 = lecture de la CTE CONTROL[2] Indique l'état d'erreur. CONTROL[3] Nombre de mots transférés CONTROL[4] Décalage d'octet dans la structure du registre de l'automate, qui indique où la lecture des octets de la CTE doit commencer. CONTROL[5] Registre de routage MSB : emplacement du module NOE COMMANDE[6] Terminaison : FF hex ... CONTROL[9] 33002528.25 183 Communication MBP_MSTR : Maître Modbus Plus Implémentation de l'indicateur de la CTE (DATABUF) Les valeurs de la table CTE apparaissent dans la sortie DATABUF lorsqu'une opération de lecture de la CTE est implémentée. Le registre affiche les données CTE suivantes : Implémentation de l'indicateur de la CTE (DATABUF) : Paramètres Registre Contenu Type de trame DATABUF[0] 1 = 802.3 2 = Ethernet Adresse IP Masque réseau inférieur Passerelle DATABUF[1] Premier octet de l'adresse IP DATABUF[2] Deuxième octet de l'adresse IP DATABUF[3] Troisième octet de l'adresse IP DATABUF[4] Quatrième octet de l'adresse IP DATABUF[5] Mot de poids fort DATABUF[6] Mot de poids faible DATABUF[7] Premier octet de la passerelle DATABUF[8] Deuxième octet de la passerelle DATABUF[9] Troisième octet de la passerelle DATABUF[10] Quatrième octet de la passerelle Ecriture de la CTE Description L'opération d'écriture de la CTE écrit la table de configuration CTE à partir des données spécifiées (DATABUF) dans une table d'extension de configuration Ethernet spécifiée ou dans un emplacement spécifique. Pour programmer un bloc MBP_MSTR en vue d'exécuter une opération d'écriture de la CTE, utilisez le code fonction 12, page 164. Implémentation réseau L'opération d'écriture de la CTE peut être réalisée sur des réseaux Ethernet TCP/IP, page 205 et Ethernet SY/MAX. 184 33002528.25 MBP_MSTR : Maître Modbus Plus Communication Utilisation du bloc de commande pour Ethernet TCP/IP Registre Signification COMMANDE[1] 12 = écriture de la CTE COMMANDE[2] Indique l'état d'erreur. COMMANDE[3] Le paramètre de longueur : une valeur comprise entre 12 et 37. COMMANDE[4] Aucune signification COMMANDE[5] Registre de routage Octet de poids faible = index de mappage Soit une valeur affichée dans l'octet de l'adresse, soit non utilisé. ou Octet de poids fort = emplacement du module de la carte réseau COMMANDE[6] Aucune signification ... COMMANDE[9] Utilisation du bloc de commande pour Ethernet SY/MAX Registre Signification COMMANDE[1] 12 = écriture de la CTE (table d'extension de configuration) COMMANDE[2] Indique l'état d'erreur. COMMANDE[3] Nombre de mots transférés COMMANDE[4] Décalage d'octet dans la structure de l'adresse de l'automate, qui indique où les octets CTE sont écrits. COMMANDE[5] Registre de routage Octet de poids fort = emplacement du module NOE Octet de poids faible = numéro de station cible COMMANDE[6] Terminaison : FF hex COMMANDE[7] Aucune signification ... COMMANDE[9] 33002528.25 185 Communication MBP_MSTR : Maître Modbus Plus Implémentation de l'indicateur CTE (DATABUF) Les valeurs de la table d'extension de configuration Ethernet apparaissent dans le champ de sortie DATABUF lorsqu'une opération d'écriture de la CTE est implémentée. Les registres servent à transférer les données CTE suivantes : Implémentation de l'indicateur CTE (DATABUF) : Paramètres Registre Contenu Type de trame DATABUF[0] 1 = 802.3 2 = Ethernet Adresse IP Masque réseau inférieur Passerelle DATABUF[1] Premier octet de l'adresse IP DATABUF[2] Deuxième octet de l'adresse IP DATABUF[3] Troisième octet de l'adresse IP DATABUF[4] Quatrième octet de l'adresse IP DATABUF[5] Mot de poids fort DATABUF[6] Mot de poids faible DATABUF[7] Premier octet de la passerelle DATABUF[8] Deuxième octet de la passerelle DATABUF[9] Troisième octet de la passerelle DATABUF[10] Quatrième octet de la passerelle Envoi de messages électroniques Description Le service de notification par message électronique permet la signalisation d'alarmes et d'événements sur les projets utilisant un contrôleur. Le contrôleur surveille le système et crée dynamiquement un message électronique qui alerte les utilisateurs locaux ou distants. Une condition ou un événement défini par l'utilisateur déclenche la création d'un message par le bloc MSTR. Chaque message utilise l'un des trois en-têtes définis par l'utilisateur. Chaque message envoyé depuis le contrôleur peut contenir du texte et des variables (au maximum 238 octets). Le projet sélectionne l'en-tête approprié. Chaque en-tête contient les éléments suivants : 186 33002528.25 MBP_MSTR : Maître Modbus Plus • le nom de l'expéditeur, • Liste des destinataires • Objet Communication Pour programmer un bloc MBP_MSTR afin qu'il envoie un message électronique, utilisez le code fonction 13, page 164. Implémentation réseau Vous pouvez envoyer un message électronique sur un réseau Ethernet TCP/IP. Utilisation du bloc de commande pour Ethernet TCP/IP Registre Signification CONTROL[1] 13 = envoi d'un message électronique CONTROL[2] Signale les codes d'erreur des messages électroniques, page 572 CONTROL[3] Nombre de mots transférés CONTROL[4] Inutilisé CONTROL[5] Octet de poids fort : adresse du module NOE ou 0xFE pour le 140 CPU 651 60. Octet de poids faible : toujours 0 CONTROL[6] Inutilisé ... CONTROL[9] 33002528.25 187 Communication MBP_MSTR : Maître Modbus Plus Description des paramètres DATABUF Registre Sommaire DATABUF 1 L'en-tête du message électronique est l'octet de poids faible, avec une valeur de 1, 2 ou 3. L'octet de poids fort contient le nombre (n) de caractères dans l'objet (entre 0 et 238). DATABUF 2 Données (au format ASCII) copiées dans le message électronique. à Les n premiers caractères sont ajoutés à l'objet configuré pour le message électronique. Les caractères restants (2 * N -2 - n) font partie du corps du message, N étant le nombre de mots transférés. DATABUF 119 Envoi d'une requête Modbus Présentation Utilisez l'opération 15 du bloc MSTR pour envoyer des requêtes Modbus génériques sur le réseau. NOTE: cette opération n'est pas disponible sur les ports Modbus Plus (port intégré sur l'UC ou les modules NOM) et le port Ethernet intégré sur une UC. Fonctionnement du bloc Le bloc MBP_MSTR peut envoyer des requêtes et recevoir des réponses d'une longueur maximale de 253 octets. Pour plus d'informations, reportez-vous à la section Fonctionnement du bloc, page 160 : 188 • Lorsque la broche d'entrée ENABLE est activée (ON), l'operation 15 débute. • Si la broche d'entrée ABORT est activée (ON) ou si la broche d'entrée ENABLE est désactivée (OFF), l'opération est arrêtée. • La broche de sortie ACTIVE est activée (ON) pendant l'opération. • La broche de sortie ERROR est activée (ON) si l'opération n'aboutit pas. • La broche de sortie SUCCESS est activée (ON) si l'opération aboutit. • Les broches de sortie CONTROL et DATABUF définissent l'opération (reportez-vous aux sections Bloc CONTROL, page 189 et Tampon de données, page 189). 33002528.25 MBP_MSTR : Maître Modbus Plus • Communication EN et ENO peuvent être configurés comme paramètres supplémentaires. Bloc CONTROL Le format du bloc CONTROL est décrit dans la tableau ci-dessous : Mot Description CONTROL[1] 15 = Envoi d'une requête Modbus CONTROL[2] Indique l'état de l'erreur détectée. CONTROL[3] Longueur de DATABUF (WORD) CONTROL[4] Offset du début de la réponse dans DATABUF (WORD). NOTE: pour éviter d'écraser la requête, la valeur de l'offset de la réponse multipliée par 2 doit être supérieure à la longueur de la requête (CONTROL [10]). CONTROL[5] Registre de routage : Octet de poids fort = Emplacement du module de communication Ethernet. Octet de poids faible = Index de mappage MET (MBP on Ethernet Transporter) (également appelé ID unité). CONTROL[6] Octet 4 de l'adresse IP (MSB) CONTROL[7] Octet 3 de l'adresse IP CONTROL[8 Octet 2 de l'adresse IP CONTROL[9] Octet 1 de l'adresse IP (LSB) CONTROL[10] Longueur des données de la requête DATABUF (octets). CONTROL[11] Longueur de la réponse DATABUF reçue (octets). NOTE: cette valeur est en lecture seule. Elle est définie par le module optionnel à l'issue de l'opération. Tampon de données Le protocole MODBUS définit une unité PDU (Protocol Data Unit) indépendante des couches de communication sous-jacentes. Le tampon de données (DATABUF) est constitué de registres contigus qui incluent la PDU de la requête Modbus et la PDU de la réponse Modbus : 33002528.25 189 Communication MBP_MSTR : Maître Modbus Plus DATABUF PDU de la requête Modbus : La longueur du tampon de données est définie dans le mot CONTROL[3]. La longueur de la réponse de données est définie dans le mot CONTROL [10]. PDU de la réponse Modbus : Le début de la réponse de données (Offset de la réponse) est défini dans le mot CONTROL[4]. NOTE: pour éviter d'écraser la requête, la valeur de l'offset de la réponse multipliée par 2 doit être supérieure à la longueur de la requête (CONTROL[10]). La longueur de la réponse de données est définie dans le mot CONTROL [11]. ATTENTION PERTE DE DONNEES Vérifiez que l'offset de la réponse est supérieur à la longueur de la requête de données. Le non-respect de ces instructions peut provoquer des blessures ou des dommages matériels. NOTE: la requête et la réponse doivent être structurées selon l'ordre « petit-boutiste ». Chaque mot présente 2 octets de données au format « petit-boutiste », dans lequel l'octet de poids faible est stocké dans la plus petite adresse mémoire. Requête Modbus Le format de la PDU de la requête Modbus est le suivant : Offset d'octet Champ Type de données Description 1 Code fonction BYTE Code fonction Modbus 2 Données de la requête Zone BYTE Ce champ dépend du code fonction et contient des informations telles que des références de variable, des décomptes de variables, des offsets de données, des codes de sous-fonction, etc. Réponse Modbus Le format de la PDU de la réponse Modbus est le suivant : 190 33002528.25 MBP_MSTR : Maître Modbus Plus Communication Offset d'octet Champ Type de données Description 1 Code fonction BYTE Code fonction Modbus 2 Données de la réponse Zone BYTE Ce champ dépend du code fonction et contient des informations telles que des références de variable, des décomptes de variables, des offsets de données, des codes de sous-fonction, etc. Réponse d'exception Modbus Le format de la PDU de la réponse d'exception Modbus est le suivant : Offset d'octet Champ Type de données Description 1 Code fonction BYTE Code fonction Modbus + 80 (hexadécimal) 2 Code d'exception code BYTE Ce champ est défini dans la Spécification du protocole d'application MODBUS. Spécification Modbus Les codes fonction Modbus standard sont définis dans la Spécification du protocole d'application MODBUS V1.1b, disponible en téléchargement sur le site : www.modbus-ida. org. Exemple d'envoi de requête Modbus Pour lire quatre registres d'entrée contigus (code fonction Modbus 4) à partir du registre 100 (64 au format hexadécimal) dans un équipement distant, une requête Modbus doit être envoyée sur le réseau avec la réponse Modbus suivante : Nom du champ de la requête Valeur Code fonction 04 Adresse de début, haute 00 Adresse de début, basse 64 Nombre de registres, haut 00 Nombre de registres, bas 04 33002528.25 191 Communication MBP_MSTR : Maître Modbus Plus Nom du champ de la réponse Valeur Code fonction 04 Nombre d'octets 08 Valeur du registre 100, haute 00 Valeur du registre 100, basse 01 Valeur du registre 101, haute 00 Valeur du registre 101, basse 02 Valeur du registre 102, haute 00 Valeur du registre 102, basse 03 Valeur du registre 103, haute 00 Valeur du registre 103, basse 04 Utilisation des valeurs suivantes du mot CONTROL : • CONTROL[1] (opération MSTR) = 15 • CONTROL[2] (code d'erreur) = reportez-vous à la description du bloc CONTROL (lecture seule) • CONTROL[3] (longueur de DATABUF) = 11 • CONTROL[4] (offset de la réponse) = 5 • CONTROL[5] (registre de routage) = reportez-vous à la description du bloc CONTROL • CONTROL[6] (IP1) = reportez-vous à la description du bloc CONTROL • CONTROL[7] (IP1) = reportez-vous à la description du bloc CONTROL • CONTROL[8] (IP1) = reportez-vous à la description du bloc CONTROL • CONTROL[9] (IP1) = reportez-vous à la description du bloc CONTROL • CONTROL[10] (longueur de la requête) = 5 • CONTROL[11] (offset de la réponse) = 10 Le codage des données dans le tampon de données est le suivant : Requête 192 Champ Valeur (hexadécimale) Description DATABUF[1] 0400 Code fonction + Adresse de début, haute DATABUF[2] 6400 Adresse de début, basse + Nombre de registres, haut DATABUF[3] 0400 Nombre de registres, bas + NULL DATABUF[4] 0000 Valeur de type Null 33002528.25 MBP_MSTR : Maître Modbus Plus Réponse Communication Champ Valeur (hexadécimale) Description DATABUF[5] 0000 Valeur de type Null DATABUF[6] 0408 Code fonction + Nombre d'octets DATABUF[7] 0001 Valeur du registre 100, haute + Valeur du registre 100, basse DATABUF[8] 0002 Valeur du registre 101, haute + Valeur du registre 101, basse DATABUF[9] 0003 Valeur du registre 102, haute + Valeur du registre 102, basse DATABUF[10] 0004 Valeur du registre 103, haute + Valeur du registre 103, basse DATABUF[11] 0000 Valeur de type Null Requête de clôture d'une connexion Présentation Utilisez l'opération 16 du bloc MBP_MSTR pour clôturer une connexion TCP/IP Modbus sur le réseau. NOTE: cette opération n'est pas disponible sur les ports Modbus Plus (port intégré aux modules CPU ou NOM). Fonctionnement du bloc Le bloc MBP_MSTR peut envoyer des requêtes et recevoir des réponses d'une longueur maximale de 253 octets. Pour plus d'informations sur le fonctionnement du bloc, consultez la description du bloc, page 160: • Lorsque la broche d'entrée ENABLE est activée (ON), l'opération 15 débute. • Si la broche d'entrée ABORT est activée (ON) ou si la broche d'entrée ENABLE est désactivée (OFF), l'opération s'arrête. • La broche de sortie ACTIVE est activée (ON) pendant l'opération. • La broche de sortie ERROR est activée (ON) si l'opération est annulée sans avoir abouti. • La broche de sortie SUCCESS est activée (ON) si l'opération aboutit. • Les broches de sortie, page 163 CONTROL et DATABUF identifient l'opération. • EN et ENO peuvent être configurés comme paramètres supplémentaires. 33002528.25 193 Communication MBP_MSTR : Maître Modbus Plus Bloc CONTROL Le format du bloc CONTROL est décrit ci-après : Registre Fonction Description CONTROL[1] Opération 16 = clôture de la connexion CONTROL[2] Etat de l'erreur Etat de l'erreur détectée, page 556 (lecture seule) CONTROL[3] (non utilisé) – CONTROL[4] (non utilisé) – CONTROL[5] Registre de routage Octet de poids fort = emplacement du module de communication Ethernet Octet de poids faible = indice de mappage MET (MBP on Ethernet Transporter) (également appelé ID d'unité) CONTROL[6] Adresse IP Octet 4 de l'adresse IP (octet de poids fort) CONTROL[7] Octet 3 de l'adresse IP CONTROL[8] Octet 2 de l'adresse IP CONTROL[9] Octet 1 de l'adresse IP (octet de poids faible) Lecture/écriture de données Introduction Au cours d'une transaction unique, l'opération MSTR de lecture/écriture permet de transférer des données d'un équipement source maître vers un équipement esclave cible donné, puis de transférer des données depuis cet équipement esclave source vers le maître. L'opération utilise un chemin de transaction maître et sa réalisation peut nécessiter plusieurs cycles. Pour programmer un bloc MBP_MSTR en vue d'exécuter une opération combinée de lecture/écriture, utilisez le code fonction 23, page 164. L'opération combinée de lecture/écriture peut être utilisée uniquement avec ces modèles : 194 • Quantum : NOE 771 01 (3.0 ou ultérieur) ou NOE 771 11 (3.0 ou ultérieur) • Momentum : M1E CPU (1.0 ou ultérieur) 33002528.25 MBP_MSTR : Maître Modbus Plus Communication Utilisation du bloc de commande Registre Contenu COMMANDE[1] 23 = lecture/écriture des données. COMMANDE[2] Indique l'état d'erreur. COMMANDE[3] Nombre de registres à envoyer à l'esclave. COMMANDE[4] Indique l'adresse %MW de départ dans l'esclave, dans laquelle il faut écrire (ex. : 1 = % MW1, 49 = %MW49). COMMANDE[5] Registre de routage : Octet de poids fort : emplacement du module de la carte réseau. Octet de poids faible : index de mappage MBP sur Ethernet Transporter (MET) COMMANDE[6] Chaque adresse contient 1 octet de l'adresse IP à 32 bits, où le MSB est dans COMMANDE[6] et le LSB dans COMMANDE[9]. ... COMMANDE[9] COMMANDE[10] Nombre de registres à lire depuis l'esclave. COMMANDE[11] Indique le registre de départ %MW dans l'esclave à partir duquel les données sont lues, par exemple 1 = %MW1, 49 = %MW49. NOTE: lorsque vous configurez le bloc MBP_MSTR pour une opération de lecture/ écriture de données, notez que : • le paramètre de sortie DATABUF est utilisé pour stocker, dans l'ordre suivant : 1 les données à écrire, 2 les données à lire, • la taille du paramètre de sortie DATABUF doit être égale à la somme des tailles des données à écrire et des données à lire ; si sa taille est inférieure, des données sont écrasées et peuvent être perdues, • les paramètres CONTROL et DATABUF doivent tous deux être stockés à des adresses affectées telles que les adresses %MW. 33002528.25 195 Communication MBP_MSTR : Maître Modbus Plus Activation et désactivation des services HTTP ou FTP/TFTP Description Une opération d'activation/désactivation du service HTTP ou FTP/TFTP modifie l'état du service HTTP et FTP/TFTP du module. Implémentation réseau Une opération d'activation/désactivation des services HTTP ou FTP/TFTP peut s'effectuer sur des réseaux Ethernet TCP/IP, page 205. Utilisation du bloc de commande pour Ethernet TCP/IP Lorsque HTTP ou FTP/TFTP a été activé via les outils de configuration de Control Expert (voir Quantum sous EcoStruxure™ Control Expert, Modules réseau Ethernet, Manuel utilisateur), vous pouvez utiliser un bloc MSTR pour changer l'état activé du service pendant l'exécution de l'application. Le bloc MSTR ne peut pas changer l'état d'un service HTTP ou FTP/TFTP si ce service a été désactivé via un outil de configuration. Registre Signification CONTROL[1] 65520 (décimal), FFF0 (hexadécimal) = activer/désactiver HTTP ou FTP/TFTP CONTROL[2] Indique l'état d'erreur. Codes de retour possibles : 0x000 (réussite) : le bloc MSTR ayant le code opérationnel 65520 a été appelé et l'état activé du service HTTP ou FTP/TFTP a été changé. 0x5068 (occupé) : le bloc MSTR ayant le code opérationnel 65520 a été appelé dans un délai de 2 secondes après l'appel précédent (quel que soit le code de retour de l'appel précédent). 0x4001 (même état) : le bloc MSTR ayant le code opérationnel 65520 a été appelé pour faire passer l'état activé des services HTTP et FTP/TFTP à l'état dans lequel ils se trouvaient déjà. 0x2004 (données non valides) : le bloc MSTR ayant le code opérationnel 65520 a été appelé et les données du bloc de contrôle ne correspondaient pas aux spécifications. 0x5069 (désactivé) : le service HTTP ou FTP/TFTP a déjà été désactivé via l'interface Control Expert lorsque le bloc MSTR ayant le code opérationnel 65520 a été appelé pour changer l'état du service désactivé. CONTROL[3] 196 Définir ce registre sur 1 33002528.25 MBP_MSTR : Maître Modbus Plus Registre Communication Signification CONTROL[4] CONTROL[5] Numéro d'emplacement du module et ID de destination Octet de poids fort = Numéro d'emplacement du module et emplacement du module de communication Octet de poids faible = ID de destination CONTROL[6] Mode de requête Bit 0 (LSB) = 1 : activer FTP/TFTP Bit 0 (LSB) = 0 : désactiver FTP/TFTP Bit 1 = 1 : activer HTTP Bit 1 = 0 : désactiver HTTP CONTROL[7] Définir ce registre sur 0 CONTROL[8] CONTROL[9] Les changements d'état des services HTTP, FTP et TFTP effectués par MSTR avec le code opération 65520 (décimal) sont remplacés par la valeur configurée lorsque le module est redémarré ou réinitialisé et lorsqu'une nouvelle application est téléchargée sur le module. Voici quelques exemples : Etat configuré par Control Expert Action tentée à l'aide de MSTR avec le code opération 65520 (décimal) Résultat Désactivé Tout MSTR renvoie le code d'erreur 0x5069 (le service a déjà été désactivé par configuration) Activé Désactiver MSTR renvoie le code 0x000 (réussite). • Une autre action par bloc MSTR active le service OU • Le module est réinitialisé ou redémarré OU • Activer 33002528.25 Une nouvelle application est téléchargée et le service est désactivé par configuration MSTR renvoie le code d'erreur 0x4001 (même état). Aucun changement effectué 197 Communication MBP_MSTR : Maître Modbus Plus Etat d'intégrité des communications Peer Cop Etat d'intégrité des communications Peer Cop La table contenant les informations sur l'état de Peer Cop remplit 12 registres contigus indexés avec les nombres 0 à 11 dans une opération MBP_MSTR. Chaque bit des mots de la table sert à présenter un aspect spécifique de l'intégrité des communications pour un abonné spécifique du réseau Modbus Plus. Pour programmer un bloc MBP_MSTR en vue d'obtenir l'état d'intégrité de Peer Cop, utilisez le code de fonction 9, page 164. Implémentation réseau Une opération d'état d'intégrité des communications Peer Cop ne peut s'effectuer que sur les réseaux Modbus Plus. Relation entre les bits des noeuds (abonnés) du réseau Les bits des mots 0 à 3 représentent l'intégrité à l'entrée des communications globales des abonnés 1 à 64. Les bits des mots 4 à 7 représentent l'inégrité de la sortie d'un abonné spécifique. Les bits des mots 8 à 11 représentent l'intégrité de l'entrée d'un abonné spécifique. Type d'état Réception globale Index des mots Relation entre les bits des abonnés du réseau 0 1 2 3 Envoi direct 4 5 6 198 33002528.25 MBP_MSTR : Maître Modbus Plus Type d'état Communication Index des mots Relation entre les bits des abonnés du réseau 7 Réception directe 8 9 10 11 Etat du bit d'intégrité L'état du bit d'intégrité de Peer Cop indique l'état actuel des communications de l'abonné qui lui est affecté. Un bit d'intégrité est défini lorsque l'abonné associé accepte l'entrée pour son bloc de données Peer Cop ou lorsqu'il reçoit un signal lui indiquant qu'un autre abonné a accepté des données de sortie spécifiques depuis son bloc de données de sortie Peer Cop. Un bit d'intégrité est supprimé si le bloc de données associé n'accepte pas de communications dans la période de temporisation Peer Cop configurée. Tous les bits d'intégrité sont supprimés lorsque la commande d'interface Placer Peer Cop est exécutée pendant le démarrage de l'automate. Les valeurs de la table deviennent valides lorsque le jeton est entièrement contourné, après que la commande Placer Peer Cop a été exécutée. Le bit d'intégrité d'un abonné spécifique est toujours 0 lorsque l'entrée Peer Cop affectée est 0. Statistiques du réseau Modbus Plus Statistiques du réseau Modbus Plus Le tableau suivant contient les statistiques disponibles sur Modbus Plus. Pour obtenir ces données, exécutez l'opération MBP_MSTR correspondante (code fonction 8 Modbus). NOTE: si vous modifiez l'opération de suppression des statistiques locales, page 174 ou de suppression des statistiques distantes, page 179, seuls les mots 13 à 22 de la table des statistiques sont supprimés. 33002528.25 199 Communication MBP_MSTR : Maître Modbus Plus Mot Bits 00 ID du type de nœud 01 Description 0 Type de nœud inconnu 1 Nœud automate 2 Nœud pont Modbus 3 Nœud ordinateur hôte 4 Nœud routeur Plus 5 Nœud E/S Peer 6…15 Réservé 0…11 Numéro de version du logiciel sous forme de valeur hexadécimale (pour lire cette valeur, isoler les bits 12 à 15 du mot) 12…14 Réservé 15 Définit les compteurs d'erreurs du mot 15. Le bit de poids fort définit l'utilisation des compteurs d'erreurs du mot 15. La version du logiciel est contenue dans la moitié ayant la valeur la plus basse de l'octet de poids fort et l'octet de poids faible. 02 03 200 Adresse réseau de cette station Variable de l'état MAC : 0 Etat de démarrage 1 Signaux de l'indicateur de l'état hors ligne 2 Etat hors ligne dupliqué 3 Etat de repos 4 Etat d'utilisation du jeton 5 Etat de la réponse du travail 6 Etat du transfert du jeton 7 Etat de la requête de réponse 8 Contrôle de l'état du transfert 9 Etat de la requête de jeton 33002528.25 MBP_MSTR : Maître Modbus Plus Mot 04 05 Bits Description 10 Etat de la requête de réponse Etat de Peer (code LED) ; indique l'état de cet équipement par rapport au réseau : 0 Opération de connexion du moniteur 32 Opération de connexion normale 64 Jeton non reçu 96 Station unique 128 Station en double Compteur de transferts du jeton (s'incrémente chaque fois que la station reçoit le jeton) 06 07 08 09 10 11 12 13 14 15 Communication Temps de cycle du jeton en ms BAS Echec des données maître pour la structure de bits pendant la détention du jeton HAUT Echec du programme maître pour la structure de bits (bitmap) pendant la détention du jeton BAS Détention du jeton pour l'activité bitmap des données maître HAUT Détention du jeton pour l'activité bitmap du programme maître BAS Détention du jeton pour l'activité bitmap des données esclaves HAUT Détention du jeton pour l'activité bitmap du programme esclave BAS HAUT Commande de requête de transfert bitmap - interrogation données esclaves/esclaves BAS Requête de transfert de réponse bitmap - interrogation programme maître/maître HAUT Commande de requête de transfert bitmap - interrogation programme esclave/ esclave BAS Etat de connexion bitmap du programme maître HAUT Fermeture de session bitmap du programme esclave BAS Compteur d'erreurs de retard de prétransfert HAUT Compteur d'erreurs de débordement du tampon de réception DMA BAS Commande de répétition du compteur de réceptions HAUT Compteur d'erreurs de taille de bloc de données Si le bit 15 du mot 1 est sur 0, le mot 15 a la signification suivante : BAS Compteur d'erreurs d'abandon sur collision du destinataire HAUT Compteur d'erreurs d'alignement du destinataire Si le bit 15 du mot 1 est sur 1, le mot 15 a la signification suivante : 33002528.25 201 Communication Mot 16 17 18 19 20 21 22 23 24 25 26 27 28 29 202 MBP_MSTR : Maître Modbus Plus Bits Description BAS Erreur de bloc de données sur le câble A HAUT Erreur de bloc de données sur le câble B BAS Compteur d'erreurs CRC du destinataire HAUT Compteur d'erreurs de longueur de paquet incorrecte BAS Compteur d'erreurs d'adresse de liaison incorrecte HAUT Compteur d'erreurs de stockage de tampon de transfert de dépassement par valeur inférieure DMA BAS Compteur d'erreurs de longueur de paquet interne incorrecte HAUT Compteur d'erreurs de code fonction MAC incorrect BAS Compteur de nouvelles tentatives de communication HAUT Compteur d'erreurs d'échec de communication BAS Compteur de réceptions de paquets correctes HAUT Compteur d'erreurs d'absence de réponse BAS Compteur d'erreurs de réception de réponse inattendue HAUT Compteur d'erreurs de chemin inattendu BAS Compteur d'erreurs de réponse inattendue HAUT Compteur d'erreurs de transaction ignorée BAS Table des stations actives bitmap, nœuds 1 à 8 HAUT Table des stations actives bitmap, nœuds 9 à 16 BAS Table des stations actives bitmap, nœuds 17 à 24 HAUT Table des stations actives bitmap, nœuds 25 à 32 BAS Table des stations actives bitmap, nœuds 33 à 40 HAUT Table des stations actives bitmap, nœuds 41 à 48 BAS Table des stations actives bitmap, nœuds 49 à 56 HAUT Table des stations actives bitmap, nœuds 57 à 64 BAS Table des stations à jeton bitmap, nœuds 1 à 8 HAUT Table des stations à jeton bitmap, nœuds 9 à 16 BAS Table des stations à jeton bitmap, nœuds 17 à 24 HAUT Table des stations à jeton bitmap, nœuds 25 à 32 BAS Table des stations à jeton bitmap, nœuds 33 à 40 33002528.25 MBP_MSTR : Maître Modbus Plus Mot 30 31 32 33 34 35 36 37 38 39 40 41 42 43 33002528.25 Communication Bits Description HAUT Table des stations à jeton bitmap, nœuds 41 à 48 BAS Table des stations à jeton bitmap, nœuds 49 à 56 HAUT Table des stations à jeton bitmap, nœuds 57 à 64 BAS Table bitmap concernant l'existence de données globales, nœuds 1 à 8 HAUT Table bitmap concernant l'existence de données globales, nœuds 9 à 16 BAS Table bitmap concernant l'existence de données globales, nœuds 17 à 24 HAUT Table bitmap concernant l'existence de données globales, nœuds 25 à 32 BAS Table bitmap concernant l'existence de données globales, nœuds 33 à 40 HAUT Table bitmap concernant l'existence de données globales, nœuds 41 à 48 BAS Table bitmap concernant l'existence de données globales, nœuds 49 à 56 HAUT Table bitmap concernant l'existence de données globales, nœuds 57 à 64 BAS Tampon de réception bitmap utilisé, tampons 1 à 8 HAUT Tampon de réception bitmap utilisé, tampons 9 à 16 BAS Tampon de réception bitmap utilisé, tampons 17 à 24 HAUT Tampon de réception bitmap utilisé, tampons 25 à 32 BAS Tampon de réception bitmap utilisé, tampons 33 à 40 HAUT Compteur des commandes traitées activées pour l'administration de la station BAS Compteur d'activations de la commande de chemin de sortie 1 des données maître HAUT Compteur d'activations de la commande de chemin de sortie 2 des données maître BAS Compteur d'activations de la commande de chemin de sortie 3 des données maître HAUT Compteur d'activations de la commande de chemin de sortie 4 des données maître BAS Compteur d'activations de la commande de chemin de sortie 5 des données maître HAUT Compteur d'activations de la commande de chemin de sortie 6 des données maître BAS Compteur d'activations de la commande de chemin de sortie 7 des données maître HAUT Compteur d'activations de la commande de chemin de sortie 8 des données maître BAS Compteur des commandes traitées pour le chemin d'entrée 41 des données esclaves HAUT Compteur des commandes traitées pour le chemin d'entrée 42 des données esclaves BAS Compteur des commandes traitées pour le chemin d'entrée 43 des données esclaves HAUT Compteur des commandes traitées pour le chemin d'entrée 44 des données esclaves 203 Communication Mot Bits Description 44 BAS Compteur des commandes traitées pour le chemin d'entrée 45 des données esclaves HAUT Compteur des commandes traitées pour le chemin d'entrée 46 des données esclaves BAS Compteur des commandes traitées pour le chemin d'entrée 47 des données esclaves HAUT Compteur des commandes traitées pour le chemin d'entrée 48 des données esclaves BAS Compteur d'activations de la commande de chemin de sortie 81 du programme maître HAUT Compteur d'activations de la commande de chemin de sortie 82 du programme maître BAS Compteur d'activations de la commande de chemin de sortie 83 du programme maître HAUT Compteur d'activations de la commande de chemin de sortie 84 du programme maître BAS Compteur d'activations de la commande de chemin de sortie 85 du programme maître HAUT Compteur d'activations de la commande de chemin de sortie 86 du programme maître BAS Compteur d'activations de la commande de chemin de sortie 87 du programme maître HAUT Compteur d'activations de la commande de chemin de sortie 88 du programme maître BAS Compteur des commandes traitées pour le chemin d'entrée C1 du programme esclave HAUT Compteur des commandes traitées pour le chemin d'entrée C2 du programme esclave BAS Compteur des commandes traitées pour le chemin d'entrée C3 du programme esclave HAUT Compteur des commandes traitées pour le chemin d'entrée C4 du programme esclave BAS Compteur des commandes traitées pour le chemin d'entrée C5 du programme esclave HAUT Compteur des commandes traitées pour le chemin d'entrée C6 du programme esclave BAS Compteur des commandes traitées pour le chemin d'entrée C7 du programme esclave HAUT Compteur des commandes traitées pour le chemin d'entrée C8 du programme esclave 45 46 47 48 49 50 51 52 53 204 MBP_MSTR : Maître Modbus Plus 33002528.25 MBP_MSTR : Maître Modbus Plus Communication Statistiques de réseau Ethernet TCP/IP Statistiques de réseau Ethernet TCP/IP Un module Ethernet TCP/IP répond aux commandes de statistiques locales et distantes provenant du bloc MBP_MSTR par le contenu du tableau tampon de données databuf (voir les informations dans la table ci-après) : Mot Signification 00 à 02 Adresse MAC Mot Contenu Par exemple, l'adresse MAC 00 00 54 00 12 34 s'affiche comme suit : 00 00 00 01 54 00 02 12 34 03 Etat de la carte (consultez la table ci-après) 04 et 05 Nombre d'interruptions récepteur 06 et 07 Nombre d'interruptions transfert 08 et 09 Compte d'erreur de timeout de transfert 10 et 11 Compte d'erreur détection de collisions 12 et 13 Paquets omis 14 et 15 Compte d'erreur mémoire 16 et 17 Nombre de redémarrages effectués par le driver 18 et 19 Compte d'erreurs de trame de réception 20 et 21 Compte d'erreurs de débordement du récepteur 22 et 23 Compte d'erreurs CRC de réception 24 et 25 Compte d'erreurs du tampon de réception 26 et 27 Compte d'erreurs du tampon de transfert 28 et 29 Compteur d'erreurs de dépassement par valeur inférieure corbeille de transfert 30 et 31 Compteur de collisions tardives 32 et 33 Compteur de pertes de porteuse 33002528.25 205 Communication MBP_MSTR : Maître Modbus Plus Mot Signification 34 et 35 Nombre de réitérations 36 et 37 Adresse IP Mot Contenu par exemple, l'adresse IP 198.202.137.113 (ou C6 CA 89 71) est représentée ainsi : 36 89 71 37 C6 CA Définition des bits du mot d'état de la carte NOTE: Il est préférable d'afficher le mot d'état de la carte au format binaire. Le tableau suivant donne la signification des bits du mot d'état de la carte. • 140 NOE 771 x1, versions 2.0, 3.0, 3.1, 3.3 et 3.6 ou supérieures • 140 NOE 771x0, versions 3.0, 3.3 et 3.4 ou supérieures N° de bit Définition 15 0 = DEL Link éteinte 1 = DEL Link allumée 14 0 = DEL Appl éteinte 1 = DEL Appl allumée 13 0 = paire torsadée 1 = fibre optique 12 0 = 10 Mbits 1 = 100 Mbits 11 ... 8 (Réservé) 7 ... 4 Type de module (voir le tableau ci-dessous) 3 (Réservé) 2 0 = half duplex 1 = full duplex 1 0 = non configuré 1 = configuré 0 0 = ne fonctionne pas 1 = fonctionne NOTE: Les bits sont comptés de la droite vers la gauche, en commençant par le bit 0 (bit faible). Par exemple, Automate en fonctionnement = 0000 0000 0000 0001 et Connexion de la DEL = 1000 0000 0000 0000. Le tableau ci-après décrit les définitions du bit de mot concernant l'état de la carte pour : 206 • 140 NOE 771 x1, version 3.5 • 140 NOE 771 x0, versions 1.02 et 2.0 • 140 CPU 651 x0 33002528.25 MBP_MSTR : Maître Modbus Plus Communication N° de bit Définition 15 ... 12 Type de module (voir le tableau ci-dessous) 11 (Réservé) 10 0 = half duplex 1 = full duplex 9 0 = non configuré 1 = configuré 8 0 = l'automate ne fonctionne pas 1 = l'automate/NOE fonctionne 7 0 = DEL Link éteinte 1 = DEL Link allumée 6 0 = DEL Appl éteinte 1 = DEL Appl allumée 5 0 = paire torsadée 1 = fibre optique 4 0 = 10 Mbits 1 = 100 Mbits 3 ... 0 (Réservé) NOTE: Les bits sont comptés de la droite vers la gauche, en commençant par le bit 0 (bit faible). Par exemple, automate fonctionne = 0x0100, DEL Application = 0x0040 et connexion DEL = 0x0080. Définition des bits du mot d'état de la carte par type de module Le tableau ci-après décrit les valeurs des types de module : Valeur des bits 7 à 4 ou 15 à 12 Type de module Remarque : Consultez les tables précédentes pour la plage de bits qui s'applique à la version logicielle de votre module. 0 NOE 2x1 1 ENT 2 M1E 3 NOE 771 00 4 ETY 5 CIP 6 (réservé) 7 140 CPU 651 x0 8 (réservé) 9 (réservé) 33002528.25 207 Communication MBP_MSTR : Maître Modbus Plus Valeur des bits 7 à 4 ou 15 à 12 Type de module Remarque : Consultez les tables précédentes pour la plage de bits qui s'applique à la version logicielle de votre module. 208 10 NOE 771 10 11 NOE 771 01 12 NOE 771 11 13 ... 15 (réservé) 33002528.25 ModbusP_ADDR : Adresse Modbus Plus Communication ModbusP_ADDR : Adresse Modbus Plus Contenu de ce chapitre Description ............................................................................ 209 Description détaillée............................................................... 212 Présentation Ce chapitre décrit le bloc ModbusP_ADDR. Description Description de la fonction Ce bloc fonction permet de saisir l'adresse Modbus Plus des blocs fonction READ_REG, CREAD_REG, WRITE_REG et CWRITE_REG. Cette adresse est transférée sous la forme d'une structure de données. EN et ENO peuvent être configurés comme paramètres supplémentaires. NOTE: pour programmer le bloc fonction ModbusP_ADDR, vous devez bien connaître votre réseau. Les structures de routage Modbus Plus sont décrites en détail dans le manuel des architectures de communication (voir Architectures et services de communication, Manuel de référence) et le document Réseau Modbus Plus Modicon, Guide de planification et d'installation. 33002528.25 209 Communication ModbusP_ADDR : Adresse Modbus Plus Représentation en FBD Représentation : Représentation en LD Représentation : 210 33002528.25 ModbusP_ADDR : Adresse Modbus Plus Communication Représentation en IL Représentation : CAL ModbusP_ADDR_Instance (SLOT_ID:=NOMModuleSlot, ROUTING1: =BYTE_variable1, ROUTING2:=BYTE_variable2, ROUTING3:=BYTE_ variable3, ROUTING4:=BYTE_variable4, ROUTING5:=BYTE_variable5, ADDRFLD=>DataStructureModbusPlusAddress) Représentation en ST Représentation : ModbusP_ADDR_Instance (SLOT_ID:=NOMModuleSlot, ROUTING1:=BYTE_ variable1, ROUTING2:=BYTE_variable2, ROUTING3:=BYTE_variable3, ROUTING4:=BYTE_variable4, ROUTING5:=BYTE_variable5, ADDRFLD= >DataStructureModbusPlusAddress) ; Description des paramètres Description des paramètres d'entrée: Paramètre Type de données Description Slot_ID BYTE ID de l'emplacement Emplacement du module NOM ROUTING1 BYTE Le routage 1 sert à déterminer l'adresse du nœud cible (l'une des cinq adresses de chemin de routage) lors du transfert par le réseau. Le dernier octet différent de zéro du chemin de routage est le nœud cible. ROUTING2 BYTE Routage 2 ROUTING3 BYTE Routage 3 ROUTING4 BYTE Routage 4 ROUTING5 BYTE Routage 5 Description des paramètres de sortie : Paramètre Type de données Description ADDRFLD WordArr5 Structure de données utilisée pour transférer l'adresse Modbus Plus 33002528.25 211 Communication ModbusP_ADDR : Adresse Modbus Plus Description détaillée Types de données dérivés Description des éléments pour WordArr5 : Elément Type de données Description WordArr5[1] WORD Registre de routage 1 Octet de poids faible : sert à déterminer l'adresse de l'abonné cible (l'une des cinq adresses de l'itinéraire de routage) lors d'une transmission par réseau. Octet de poids fort : Emplacement du module réseau (NOM), si disponible. WordArr5[2] WORD Registre 2 de routage WordArr5[3] WORD Registre 3 de routage WordArr5[4] WORD Registre 4 de routage WordArr5[5] WORD Registre 5 de routage Slot_ID Lorsqu'un module réseau optionnel (NOM) Modbus Plus est interrogé et réagit comme noeud cible dans le rack d'un automate Quantum, la valeur de l'entrée Slot_ID représente l'emplacement physique du NOM : lorsque le NOM est enfiché à l'emplacement 7 du châssis, la valeur a l'aspect suivant : 212 33002528.25 ModbusP_ADDR : Adresse Modbus Plus Communication Routage x L'entrée Routage x sert à déterminer l'adresse de l'abonné cible (l'une des cinq adresses de l'itinéraire de routage) lors d'une transmission par réseau. Le dernier octet différent de zéro de l'itinéraire de routage est l'abonné cible. Registre de routage 1 Lorsqu'un module réseau optionnel (NOM) Modbus Plus dans le rack d'un automate Quantum est interrogé comme abonné cible, l'octet de poids fort représente l'emplacement physique du NOM. Si l'abonné cible est une UC, l'octet de poids fort est configuré sur "0" (quel que soit l'emplacement de l'UC). Lorsque le NOM est enfiché sur l'emplacement 7 du rack, l'octet de poids fort du registre 1 de routage est le suivant : Octet de poids fort Emplacements 1 à 16 Octet de poids faible Adresse cible (valeur binaire entre 1 et 64 (normal) ou entre 65 et 255 (étendu)) 33002528.25 213 OUT_IN_CHAR : envoi/réception de chaînes de caractères Communication OUT_IN_CHAR : envoi/réception de chaînes de caractères Contenu de ce chapitre Description ............................................................................ 214 Ecran de saisie assistée ......................................................... 217 Exemple d'envoi/réception d'une chaîne de caractères ............. 219 Objet de ce chapitre Ce chapitre décrit la fonction de communication OUT_IN_CHAR. Description Description de la fonction La fonction OUT_IN_CHAR permet l'émission d’une chaîne de 210 octets maximum (120 pour la prise terminal) suivie d'une demande de réception de message (l'émission seule ou la réception seule est également possible). La chaîne de caractères peut être contenue dans une variable statique (voir EcoStruxure™ Control Expert, Langages de programmation et structure, Manuel de référence) ou définie sous forme de valeur immédiate (série d'octets entre apostrophes, par exemple 'Message à envoyer'). Ces chaînes peuvent contenir des caractères spéciaux et doivent débuter par le caractère $ suivi par la valeur hexadécimale du caractère à transmettre, exemple $0D. Certains caractères spéciaux (voir EcoStruxure™ Control Expert, Langages de programmation et structure, Manuel de référence) peuvent être utilisés, par exemple : $R = CR (retour chariot) $L = LF (retour à la ligne) $N = CR+LF Les paramètres supplémentaires EN et ENO peuvent être configurés. 214 33002528.25 OUT_IN_CHAR : envoi/réception de chaînes de caractères Communication Représentation en FBD Représentation : Représentation en LD Représentation : Représentation en IL Représentation : LD Address OUT_IN_CHAR Mode, Data_to_Send, Management_Param, Received_Data 33002528.25 215 OUT_IN_CHAR : envoi/réception de chaînes de caractères Communication Représentation en ST Représentation : OUT_IN_CHAR(Address, Mode, Data_to_Send, Management_Param, Received_Data); Description des paramètres Le tableau suivant décrit les paramètres d’entrée : Paramètre Type Commentaire Address ARRAY [0...5] OF INT Adresse de l’entité destinataire de l’échange. Seules les adresses se terminant par SYS sont possibles (par exemple : {Network.Station}SYS). Mode INT Mode d’opération : Data_to_Send STRING • 1 : émission suivie du mode réception • 2 : émission d’un message • 3 : mise en réception de message Chaîne de caractères à envoyer. Cette chaîne de caractères doit obligatoirement exister lors de l’appel de la fonction, même s’il n’y a aucune donnée à émettre (mode réception simple par exemple). Le tableau suivant décrit les paramètres d’entrée/sortie : Paramètre Type Commentaire Management_Param ARRAY [0...3] OF INT Tableau de gestion des échanges, page 39 Le tableau suivant décrit les paramètres de sortie : 216 Paramètre Type Commentaire Received_Data STRING Chaîne de caractères reçue. Cette chaîne de caractères doit obligatoirement exister lors de l’appel de la fonction, même s’il n’y a aucune donnée à recevoir (mode émission simple par exemple). 33002528.25 OUT_IN_CHAR : envoi/réception de chaînes de caractères Communication NOTE: Lors d’une émission ou d’une émission suivie d’une réception, il est conseillé d’initialiser le quatrième mot de la table de gestion (longueur) avant d'exécuter la fonction. D’autre part, la longueur de la chaîne de caractères reçue est mémorisée dans ce même mot à la fin de l’échange. Toutefois, il faut au préalable lors de la configuration définir une condition d’arrêt (voir Premium et Atrium sous EcoStruxure™ Control Expert, Liaison série asynchrone, Manuel utilisateur). Pour envoyer des chaînes de caractères contenant des caractères de fin de chaîne (ZERO), vous devez : • Utiliser des chaînes localisées. • Initialiser le dernier mot de la table de gestion des échanges avec le nombre de caractères à envoyer. Si vous initialisez ce mot avec la valeur 0, la chaîne envoyée s’arrêtera au premier caractère ZERO rencontré. Si vous l’initialisez avec une valeur, la longueur de la chaîne de caractères envoyée sera égale à cette valeur. Ecran de saisie assistée Présentation Pour cette fonction de communication, vous pouvez avoir recours à l'écran de saisie assistée. Veuillez noter que cet écran n'est pas disponible sur les équipements Modicon M340. NOTE: les symboles de variable sont acceptés dans les différents champs de l'écran. 33002528.25 217 Communication OUT_IN_CHAR : envoi/réception de chaînes de caractères Figure La capture suivante est un exemple d'écran de saisie assistée de la fonction : Adresse Pour les automates Premium, les types d'objets possibles sont les suivants : • ADDR(STRING) • ARRAY [0..5] OF INT NOTE: Si vous saisissez une valeur directement dans le champ, le bouton de saisie assistée d'adresse est grisé. Mode Les choix dans la liste déroulante : • Echange • Emission • Réception affichent directement la valeur immédiate 1, 2 ou 3. NOTE: Faites votre choix parmi les solutions proposées dans le menu déroulant. 218 33002528.25 OUT_IN_CHAR : envoi/réception de chaînes de caractères Communication NOTE: Si vous utilisez le champ de saisie à la place du menu, vous pouvez saisir une variable de type INT, localisée ou non. Chaîne à envoyer La chaîne à envoyer est une variable de type STRING. Cette variable doit être déclarée avant d'être utilisée. Si une variable est choisie (par exemple, String_0), le champ de saisie de valeur immédiate disparaît. Chaîne à recevoir La zone de réception est une variable de type STRING. La taille de cette variable dépend du nombre de caractères à recevoir. La variable doit être déclarée avant d'être utilisée dans cet écran. Compte rendu Le compte rendu est un tableau de 4 entiers. NOTE: Veillez à ne pas utiliser plusieurs zones de mémoire identiques pour les tables de comptes rendus, car la fonction de lecture de variables risque de ne pas fonctionner. Exemple d'envoi/réception d'une chaîne de caractères Présentation Considérons que vous souhaitez envoyer une chaîne de caractères Str_1 de la station 1 du réseau 20 au port terminal de la station 5, puis recevoir une chaîne de caractères Str_2 dans le port terminal de la station 5 du même réseau. Un terminal vidéo est connecté au port terminal de la station 5 du réseau 20. La chaîne de caractères à émettre contient 10 caractères. La table de gestion de la fonction est composée d'un tableau de mots %MW170:4. 33002528.25 219 OUT_IN_CHAR : envoi/réception de chaînes de caractères Communication Figure Les deux stations sont connectées via un réseau Fipway. Programmation Programmation en ST : IF RE(%I0.3.8) AND NOT %MW170.0 THEN (* initialisation des données à envoyer *) %MW173 := 10; (* fonction de communication *) OUT_IN_CHAR(ADDR(’{20.5}0.0.0.SYS’),1,Str_1,%MW170:4,Str_ 2); END_IF; Paramètres de la requête : Paramètres ADDR(‘{20.5}0.0.0.SYS’) 220 Description • {20.5} : réseau 20, station 5 • 0 : rack • 0 : module • 0 : voie 0 • SYS : adresse système 1 Emission puis réception Str_1 Variable de type STRING contenant le message à émettre 33002528.25 OUT_IN_CHAR : envoi/réception de chaînes de caractères Paramètres Description %MW170:4 Table de gestion Str_2 Variable de type STRING devant contenir le message reçu Communication NOTE: Avant le lancement de la fonction, initialisez le paramètre de longueur (dans cet exemple : %MW173) avec la valeur correspondant au nombre de caractères (en octets) à envoyer à Str_1. A la fin de l'échange, %MW173 contient la longueur des données reçues (en octets). 33002528.25 221 OUT_IN_MBUS : Fonction de communication Modbus Communication OUT_IN_MBUS : Fonction de communication Modbus Contenu de ce chapitre Présentation générale du bloc de communication OUT_IN_ MBUS..................................................................................... 222 Description du bloc de communication OUT_IN_MBUS.............. 226 Mise en oeuvre du bloc de communication OUT_IN_ MBUS..................................................................................... 235 Exemple d’utilisation du bloc de communication OUT_IN_ MBUS..................................................................................... 242 Objet du chapitre Ce chapitre décrit la fonction de communication OUT_IN MBUS. Présentation générale du bloc de communication OUT_IN_MBUS Objet de ce sous-chapitre Ce sous-chapitre présente une description sommaire du bloc de communication OUT_IN_ MBUS. Description de la fonction Introduction La fonction OUT_IN_MBUS permet d'émuler une communication Modbus maître à partir d'une liaison série configurée en mode caractères. Combinée à la possibilité de transmettre une configuration Modbus esclave en temps réel à une configuration en mode caractères via la fonction WRITE_CMD, cette fonction permet à l'automate de fonctionner comme maître ou comme esclave Modbus sur la même liaison. 222 33002528.25 OUT_IN_MBUS : Fonction de communication Modbus Communication NOTE: cette fonction n'est utile que lorsque les deux modes Modbus maître et esclave fonctionnent simultanément. Si tel n'est pas le cas, les normes EF READ_VAR et WRITE_VAR sont recommandées pour la gestion de la fonction de maître Modbus (l'esclave Modbus est implicitement géré par le système). Dans ce cas, consultez la documentation Modbus. NOTE: Veillez à ce que deux maîtres (sur le même bus) n'envoient pas des requêtes simultanément, autrement les demandes risquent d'être perdues et les différents rapports sont susceptibles de générer un résultat incorrect 16#0100 (en cas d'impossibilité de traiter la requête) ou 16#ODFF (en cas d'absence de l'esclave). AVERTISSEMENT COMPORTEMENT INATTENDU DE L'APPLICATION - ECRITURE DE VARIABLES SUR DES ESCLAVES Avant d'écrire des variables d'un maître vers un esclave, vérifiez que le comportement de l'application résultant reste acceptable. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Exemple d'utilisation Mode nominal La plupart des applications comprennent un PC utilisé pour des fonctions de supervision. Le superviseur est un maître Modbus qui communique avec différents esclaves. Ce fonctionnement est appelé mode nominal. 33002528.25 223 Communication OUT_IN_MBUS : Fonction de communication Modbus L'illustration ci-après présente le mode nominal (de superviseur à esclave). Mode d'exception Un automate doit être capable de basculer sur demande du mode esclave Modbus au mode maître Modbus afin d'envoyer des requêtes à d'autres automates ou équipements. Ce basculement est appelé mode d'exception. Lorsque le mode d'exception prend fin, le système doit être capable de revenir à l'état initial (au mode nominal). 224 33002528.25 OUT_IN_MBUS : Fonction de communication Modbus Communication L'illustration ci-après présente le mode d'exception (émulation maître à esclave) : Fonctionnalités Présentation La fonction OUT_IN_MBUS prend en charge : • Les codes Modbus 1, 2, 3, 4, 5, 6, 15, 16, page 230, • Les modes ASCII et RTU, page 233, • L'adressage complet, page 230. La fonction OUT_IN_MBUS est présente sous forme de DFB et doit être redémarrée pour chaque cycle de l'automate tant que le bit d'activité est réglé sur 1. Cette fonction est disponible sur des automates Premium utilisant une carte de communication TSXSCP111 ou TSXSCP114 installée sur le processeur ou un module hôte (TSXSCY21601 ou TSXSCY11601). 33002528.25 225 Communication OUT_IN_MBUS : Fonction de communication Modbus Restrictions Sur chacun des ports, vous ne devez pas activer simultanément plus d'un DFB OUT_IN_ MBUS. De même, vous ne devez pas utiliser simultanément les blocs PRINT_CHAR, INPUT_ CHAR ou OUT_IN_CHAR. La fonction OUT_IN_MBUS ne prend pas en charge : • La modification des paramètres des couches physiques ou des couches de liaison : Débit en bauds, format de caractère, passage du RTU en ASCII ou vice versa, gestion des signaux RS232, • Les conflits et erreurs de communication pouvant résulter de la présence de deux maîtres Modbus actifs simultanément sur la même liaison, • Tous les modes opératoires pouvant résulter d'un défaut ou d'une connexion temporaire à une carte de communication, • La configuration et la gestion de modems. Description du bloc de communication OUT_IN_ MBUS Objet de ce sous-chapitre Ce sous-chapitre présente une description détaillée du bloc de communication OUT_IN_ MBUS. 226 33002528.25 OUT_IN_MBUS : Fonction de communication Modbus Communication Représentations et paramètres Représentation en FBD Représentation : 33002528.25 227 Communication OUT_IN_MBUS : Fonction de communication Modbus Représentation en LD Représentation : Représentation en IL Représentation : LD Address OUT_IN_MBUS AD, MC, RL, DB, AB, MDA, RT, AC, DO, ERR, ST Représentation en ST Représentation : OUT_IN_MBUS(AD, MC, RL, DB, AB, MDA, RT, AC, DO, ERR, ST); Description des paramètres Le tableau suivant décrit les paramètres d'entrée : 228 33002528.25 OUT_IN_MBUS : Fonction de communication Modbus Communication Paramètre Type Commentaire ADDR ADDR_TYPE Informations sur l'adresse du port de communications de l'équipement esclave. Cette adresse doit être de la forme ADDR(’r.m.c.SYS’). Description des abréviations : r = rack, m = emplacement de module, c = voie (canal). MBUSCMD ARRAY [1.. 4] OF INT Définition, page 230 du tableau Modbus RETRYLMT INT Nombre de tentatives, page 232 d'envoi d'un message effectuées par le bloc DATABITS BOOL Messages, page 233 Modbus à envoyer en mode ASCII (DATABITS =0) ou en mode RTU (DATABITS=1). RESPTOUT INT Délai d'attente, page 233 du bloc. ABORT BOOL Bit d'annulation DFB Le tableau suivant décrit le paramètre d'E/S : Paramètre Type Commentaire MASTERDATAAREA ARRAY [x.. y] OF INT Zone de données, page 233 de l'automate maître NOTE: Pour pouvoir lire l'un des 8 derniers bits de la mémoire, vous devez lire l'intégralité des 8 derniers bits, sinon la fonction renvoie un compte rendu d'erreur. Vous pouvez ensuite extraire le bit souhaité. NOTE: Lorsque le paramètre d'E/S utilise un tableau dynamique, vous devez sélectionner dans Control Expert l'option Autoriser les tableaux dynamiques [ANY_ ARRAY_XXX] sous Outils > Options du projet > Extensions de langage. Le tableau suivant décrit les paramètres de sortie (lecture seule) : Paramètre Type Commentaire RETRY INT La valeur affichée indique le nombre de tentatives en cours effectuées par le bloc. ACTIVE BOOL La valeur 1 indique qu'une opération est en cours. DONE BOOL La valeur 1 indique que l'opération est terminée. ERROR BOOL La valeur 1 indique qu'une erreur s'est produite. STATUS INT La valeur affiche un code de statut, page 234 généré par le bloc. 33002528.25 229 OUT_IN_MBUS : Fonction de communication Modbus Communication Le paramètre MbusCmd Définition du paramètre MbusCmd Le paramètre MbusCmd représente la commande Modbus. Le paramètre MbusCmd est constitué d’un tableau de 4 registres tel que présenté cidessous : Contenu Description Description MbusCmd[1] Adresse esclave Ce mot contient l'adresse de l'automate Modbus esclave. La plage des adresses admissibles est de 0 à 248. L’adresse 0 est réservée pour envoyer un message Modbus à plusieurs automates. Ce type de transmission est appelé mode diffusion. Le mode diffusion prend uniquement en charge les codes de fonction Modbus écrivant des données de l'automate maître vers des automates esclaves. Il ne prend pas en charge les codes de fonction Modbus lisant des données des automates esclaves. L’adresse 248 est réservée à la communication point à point quand l’adresse de l’esclave n’est pas connue. Cette adresse n’est pas supportée par tous les équipements. MbusCmd[2] Code fonction Modbus Le bloc OUT_IN_MBUS prend en charge les codes de fonction suivants : • 01 = lecture de plusieurs bits de sortie (0x), • 02 = lecture de plusieurs bits d'entrée (1x), • 03 = lecture de plusieurs registres de sortie (4x), • 04 = lecture de plusieurs registres d'entrée (3x),) • 05 = écriture d'un seul bit de sortie (0x), • 06 = écriture d'un seul registre de sortie (4x), • 15 = écriture de plusieurs bits de sortie (0x),) • 16 = écriture de plusieurs registres de sortie (4x). Note : quand l’automate esclave est de type Premium, tous les bits deviennent des % M et les registres deviennent des %MW. 230 33002528.25 OUT_IN_MBUS : Fonction de communication Modbus Communication Contenu Description Description MbusCmd[3] Zone de données de l'automate esclave Pour une commande de lecture, la zone de données de l'automate esclave est la source des données. Pour une commande d'écriture, la zone de données de l'automate esclave est la destination des données. Par exemple : • pour lire les bits de sortie 300 à 500 d'un automate esclave, entrez 300 dans ce champ, • pour écrire des données d'un automate maître dans le registre 100 de type 4x d'un automate esclave, entrez 100 dans ce champ. Selon le type de commande Modbus (lecture ou écriture), les zones de données source et cible doivent être conformes à celles du tableau ci-après, page 231. MbusCmd[4] Quantité Ce registre contient la quantité de données à écrire ou à lire dans l'automate esclave. Par exemple, entrez 100 pour lire 100 registres de sortie dans l'automate esclave ou entrez 32 pour écrire 32 bits de sortie dans un automate esclave. Il existe une taille limite, qui dépend du code fonction Modbus utilisé et du mode de transmission (RTU ou ASCII). Ces valeurs limites de MbusCmd[4] sont détaillées dans le tableau ci-après, page 232. Cette taille est non significative pour les codes fonctions 5 et 6. Note : la zone mémoire est limitée en fonction de l’équipement et du paramétrage de l’esclave MbusCmd[3] Le tableau ci-dessous présente la zone de données de l’automate esclave pour MbusCmd [3]. Cette zone de données dépend du code fonction Modbus utilisé et du type d’automate esclave : Code fonction Zone de données pour équipement standard Modbus Zone de données pour automate Premium 01 (lecture de plusieurs bits de sortie (0x)) 0x (source) %M (source) 02 (lecture de plusieurs bits d'entrée (1x)) 1x (source) %M (source) 03 (lecture de plusieurs registres de sortie (4x)) 4x (source) %MW (source) 04 (lecture de plusieurs registres d'entrée (3x)) 3x (source) %MW (source) 05 (écriture d'un seul bit de sortie (0x)) 0x (destination) %M (destination) 06 (écriture d'un seul registre de sortie (4x)) 4x (destination) %MW (destination) 33002528.25 231 OUT_IN_MBUS : Fonction de communication Modbus Communication Code fonction Zone de données pour équipement standard Modbus Zone de données pour automate Premium 15 (écriture de plusieurs bits de sortie (0x)) 0x (destination) %M (destination) 16 (écriture de plusieurs registres de sortie (4x)). 4x (destination) %MW (destination) MbusCmd[4] Le tableau ci-dessous présente la valeur limite de MbusCmd[4]. Cette valeur dépend du code fonction Modbus utilisé et du mode de transmission : Code fonction Mode RTU (8 bits) Mode ASCII (7 bits) 01 (lecture de plusieurs bits de sortie (0x)) 1000 500 02 (lecture de plusieurs bits d'entrée (1x)) 1000 500 03 (lecture de plusieurs registres de sortie (4x)) 100 50 04 (lecture de plusieurs registres d'entrée (3x)) 100 50 05 (écriture d'un seul bit de sortie (0x)) 1 1 06 (écriture d'un seul registre de sortie (4x)) 1 1 15 (écriture de plusieurs bits de sortie (0x)) 1000 500 16 (écriture de plusieurs registres de sortie (4x)). 100 50 Le paramètre RetryLmt Définition Ce paramètre correspond au nombre de tentatives d'envoi d'un message effectuées par le bloc OUT_IN_MBUS avant réception d'une réponse correcte de la part d'un équipement esclave (automate, modem, etc.). Lorsque la réponse n'est pas complètement structurée dans le délai imparti, le bloc génère une erreur et un code d'erreur. Le nombre de nouvelles tentatives doit être compris entre 0 et 32767. Ce champ est utilisé conjointement avec RespTout. 232 33002528.25 OUT_IN_MBUS : Fonction de communication Modbus Communication Le paramètre DataBits Définition Les messages Modbus peuvent être envoyés en mode ASCII ou RTU. Le mode ASCII utilise 7 bits de données tandis que le mode RTU en utilise 8. Pour l'envoi d'un message en caractères RTU, Databits doit être à 1. La valeur doit être conforme à la configuration de la carte de communication. NOTE: pour éviter tout problème en cas de modification de configuration, utilisez les constantes systèmes de type %KWr.m.c.1.8 pour initialiser ce paramètre. Le paramètre RespTout Définition Ce paramètre correspond au délai de temps d'attente du bloc OUT_IN_MBUS avant réception d'une réponse correcte de la part d'un équipement esclave (automate, modem, etc.). Lorsque la réponse n'est pas complètement structurée dans le délai imparti, le bloc génère une erreur. Le système n’admet aucune réponse après ce délai. La base de temps est de 100ms. Les valeurs valides sont comprises entre 0 (attente infinie) et 32767. Le timeout commence à s'écouler après l'envoi du dernier caractère du message. Le paramètre MasterDataArea Définition Pour une commande de lecture, la zone de données de l'automate maître est la destination des données renvoyées par l'esclave. Pour une commande d'écriture, la zone de données de l'automate maître est la source des données. Pour les codes commandes Modbus 1, 2, 5 et 15, le codage des bits s’effectue de la manière suivante : 33002528.25 233 OUT_IN_MBUS : Fonction de communication Modbus Communication • Les bits 1 à 16 sont stockés dans le premier élément du tableau d’INT passé en argument, le premier bit étant dans le bit de poids faible de l’élément. • Les bits 17 à 32 sont stockés dans le second élément du tableau, le bit 17 correspondant au bit de poids faible de l’élément. • Etc. Ainsi, pour échanger 1000 bits, il convient de déclarer un tableau de 63 INT (1000/16 + 8). NOTE: une zone de données de type entier %MW peut être utilisée directement dans le paramètre MasterDataArea (exemple : %MW100:50 désigne un tableau de 50 entiers commençant à l’adresse 100). Une suite d’éléments d’un tableau de bit de type %M doit au préalable être convertie et recopiée dans un tableau d’entiers (INT) selon le codage décrit ci-dessus. Le paramètre Status Définition Ce paramètre affiche un code d’état généré par le bloc OUT_IN_MBUS. Le tableau ci-dessous présente les différents codes d’état. 234 Code d’état Description de l’état 1 Exception Modbus - Fonction incorrecte 2 Exception Modbus - Adresse de données incorrecte 3 Exception Modbus - Valeur de données incorrecte 4 Exception Modbus - Erreur abonné esclave 5 Exception Modbus - Confirmation 6 Exception Modbus - Abonné esclave occupé 7 Exception Modbus - Confirmation négative 8 Exception Modbus - Erreur de parité mémoire 104 La longueur de données ne peut être égale à zéro 108 Erreur non définie 113 Checksum LRC de l'automate esclave non valide 114 Checksum CRC de l'automate esclave non valide 115 Code fonction Modbus invalide 116 Timeout message de réponse Modbus 33002528.25 OUT_IN_MBUS : Fonction de communication Modbus Code d’état Description de l’état 124 Etat interne indéfini 125 Mode diffusion interdit pour cette fonction Modbus 128 Réponse inattendue de la part de l'esclave Modbus 130 Mot de commande modifié en cours d'activité 131 Nombre de caractères incorrect 200 Adresse esclave hors limites 201 Erreur de communication avec le port série 202 Nombre binaire invalide 203 Quantité de données trop grande 204 Zone de données du maître trop petite 205 Le timeout doit être positif 206 Exception Modbus inconnue 207 Action annulée par l’utilisateur 208 RetryLmt doit être positif Communication Mise en oeuvre du bloc de communication OUT_ IN_MBUS Objet de ce sous-chapitre Ce sous-chapitre décrit la mise en œuvre du bloc de communication OUT_IN_MBUS. Configuration de la liaison série Présentation L'utilisation du bloc OUT_IN_MBUS nécessite une configuration préalable correcte de la liaison série. Les paramètres suivants sont utilisés : • en liaison avec la transmission et configurés à partir de Control Expert 33002528.25 235 Communication • OUT_IN_MBUS : Fonction de communication Modbus en liaison avec l'application et transmis en tant qu'arguments de fonction Rappel des paramètres de transmission La liaison série des cartes est configurée dans Control Expert. Les paramètres sont les suivants : • Vitesse de transmission • Délai entre caractères • Données • Arrêt • Parité Pour que l'échange de données soit possible entre tous les équipements connectés sur le bus, il est nécessaire que la configuration de la ligne série soit idendique pour tous ces équipements. L'écran de configuration utilisé pour entrer les paramètres dépend de la configuration sélectionnée en mode nominal. 236 33002528.25 OUT_IN_MBUS : Fonction de communication Modbus Communication Paramètres de transmission du mode Modbus L'illustration ci-après présente un écran de configuration où le mode nominal est en mode Modbus. NOTE: La valeur du paramètre d'entrée Databit, page 233 du bloc OUT_IN_MBUS doit correspondre à la valeur cochée dans la fenêtre Données de l'écran de configuration. L'utilisation de OUT_IN_MBUS nécessite une commutation dynamique vers le mode caractère. Dans ce mode, les conditions d'arrêt (sur des caractères ou sur un silence) sont désactivées et l'application ne peut pas les modifier. La fonction OUT_IN_CHAR n'est donc plus utilisable en mode réception (arrêt sur timeout). Seules les fonctions INPUT_CHAR et INPUT_BYTES peuvent être utilisées pour la réception (en précisant le nombre de caractères à recevoir). 33002528.25 237 Communication OUT_IN_MBUS : Fonction de communication Modbus Paramètres de transmission du mode caractère L'illustration ci-après présente un écran de configuration où le mode nominal est en mode caractère. NOTE: La valeur du paramètre d'entrée Databit, page 233 du bloc OUT_IN_MBUS doit correspondre à la valeur cochée dans la fenêtre Données de l'écran de configuration. Lorsque la carte est configurée en mode caractère : • Les conditions d'arrêt (sur certains caractères ou sur silence) configurables dans ce mode doivent être désactivées pour permettre le fonctionnement correct de OUT_IN_ MBUS. La fonction OUT_IN_CHAR n'est donc plus utilisable en mode réception (arrêt sur timeout). Seules les fonctions INPUT_CHAR et INPUT_BYTES peuvent être utilisées pour la réception (en précisant le nombre de caractères à recevoir). • Le délai entre caractères n'est pas configurable. Il est donc nécessaire de vérifier que la valeur de ce paramètre dans les équipements Modbus distants est compatible avec la configuration du mode caractère. Paramètres pour l'application Deux paramètres destinés à l'application sont envoyés en tant qu'arguments de la fonction OUT_IN_MBUS. Ces paramètres sont les suivants : 238 33002528.25 OUT_IN_MBUS : Fonction de communication Modbus • nombre de tentatives, page 232 • délai de réponse, page 233 Communication Marche à suivre pour la programmation Marche à suivre Le tableau ci-dessous présente la marche à suivre pour programmer le bloc OUT_IN_MBUS : Etape 1 Action Préparation du port de communication. 2 Initialisation des paramètres. 3 Appel du bloc OUT_IN_ MBUS. 4 Réinitialisation du port de communication. détails • Si le port série n’est pas configuré en mode caractères, changez le mode Modbus du port en mode caractères en envoyant sur le port série la commande WRITE_CMD, page 239, • dans le cas d’une transmission modem, envoyez la commande HAYES en utilisant le bloc PRINT_CHAR ou OUT_IN_CHAR afin de configurer le modem, page 240, • dans le cas d’une transmission modem, utilisez la commande HAYES pour envoyer un message de numérotation au modem en utilisant le bloc PRINT_CHAR ou OUT_IN_CHAR. Le message de numérotation est utilisé pour envoyer un numéro de téléphone au modem, page 240. Initialisez les paramètres d’entrées du bloc DFB. Il n’est pas utile de répéter cette opération à chaque cycle automate. • OUT_IN_MBUS doit être appelé à chaque cycle automate jusqu’à ce que le bit d’activité soit à zéro, • dès que le bit d’activité est à zéro, forcez un bit dans la condition d’appel du bloc pour éviter un nouvel appel, • vérifiez le bit d’erreur (en cas d’erreur, le mot de statut précise la cause d’erreur). • Dans le cas d’une transmission modem, envoyez la commande HAYES pour envoyer un message de déconnexion au modem, page 240 en utilisant le bloc PRINT_CHAR ou OUT_IN_CHAR. • Si le port a été commuté en mode caractères (dans l’étape 1), retournez dans le mode d’origine du port série par la commande WRITE_CMD, page 239. Ecrire les mots de commande sur un port de communication Les étapes qui suivent doivent être exécutées pour envoyer un WRITE_CMD à un port de communication : 33002528.25 239 OUT_IN_MBUS : Fonction de communication Modbus Communication Etape Action 1 Testez si aucune commande n’est en attente. • 2 Avant d’exécutez un WRITE_CMD, testez si un échange est en cours en utilisant l’objet langage %MWr.m.c.0. Pour rafraîchir ce mot, il convient d’utiliser le bloc READ_STS. Affectez le mot de commande • Vous devez ensuite modifier la valeur de l’objet langage commande pour réaliser la commande requise. Pour un lien Modbus, l’objet langage est le mot interne %MWr.m. c.15. Par exemple, pour commuter du mode Modbus au mode caractères, %MWr.m.c.15 est mis à 16#4000 (%MWr.m.c.15.14=1). Note : un seul bit de commande doit être commuté de 0 à 1 avant de transmettre le WRITE_CMD. 3 Envoyez la commande • Finalement, un WRITE_CMD doit être exécuté pour acquitter la commande. Dans l’exemple, page 242 qui suit, nous utilisons l’interface IODDT correspondante pour communiquer avec le canal du port série de communication. Utilisation d’un modem Description Il est nécessaire de se familiariser avec trois commandes pour interfacer des modems téléphoniques à des automates. Ces commandes sont : • initialiser le modem, • numéroter, • déconnecter le modem. Il est impératif d’envoyer au modem un message d’initialisation puis de numérotation avant de lui envoyer un message ASCII ou Modbus. Lorsque la connexion a réussi entre les deux modems, vous pouvez envoyer un nombre illimité de messages ASCII ou de messages Modbus. Quand tous les messages ont été envoyés, vous devez envoyer la chaîne de déconnexion au modem. Initialiser le modem Le message d’initialisation est un message ASCII comportant 512 caractères maximum, bien que 50 caractères suffisent généralement pour initialiser un modem. 240 33002528.25 OUT_IN_MBUS : Fonction de communication Modbus Communication Vous pouvez utiliser n’importe quelle commande Hayes AT comme composant de la chaîne d’initialisation. Exemple : un message Hayes typique d’initialisation : • AT&F&K0&Q0&D0V1X0Q0 <CR><LF> NOTE: pour simplifier la programmation, vous pouvez initialiser le modem par un terminal (exemple : Windows hyperteminal) et ne pas utiliser la fonction OUT_IN_CHAR. Une fois les paramètres chargés dans le modem, ils peuvent être sauvegardés en mémoire non volatile avec une commande AT, habituellement &W. Numéroter le modem Le message de numérotation est utilisé pour envoyer le numéro de téléphone au modem. Seules les commandes AT relatives à la numérotation doivent être incluses dans le message. Exemple 1 : numéroter par fréquence : • AT DT 6800326 <CR><LF> Exemple 2 : numéroter par impulsion : • AT DP 6800326 <CR><LF> Exemple 3 : numéroter par fréquence avec attente de la tonalité : • AT DT W,6800326 <CR><LF> NOTE: la valeur du TimeOut doit être grande car la connexion entre deux modems prend du temps (par exemple, mettez le timeout à 30000ms). Un code d’état, page 234 116 est généré par le bloc OUT_IN_MBUS si la valeur est trop courte. Plusieurs essais peuvent être nécessaires avant de trouver le temps optimal. Déconnecter le modem Le message de déconnexion est utilisé pour déconnecter le modem. Exemple 1 : message Hayes typique de déconnexion : • +++AT H0 <CR><LF> NOTE: la valeur du TimeOut doit être grande car la déconnexion d’un modem prend du temps (par exemple, mettez le timeout à 30000ms). Un code d’état, page 234 116 est généré par le bloc OUT_IN_MBUS si la valeur est trop courte. Plusieurs essais peuvent être nécessaires avant de trouver le temps optimal. 33002528.25 241 Communication OUT_IN_MBUS : Fonction de communication Modbus Exemple d’utilisation du bloc de communication OUT_IN_MBUS Objet de ce sous-chapitre Ce sous-chapitre présente un exemple d’utilisation du bloc de communication OUT_IN_ MBUS. Description de l’exemple Présentation L'exemple sélectionné est une application de communication Modbus via des modems. La figure ci-dessous illustre l'exemple : Les équipements communiquent les uns avec les autres à l'aide de modems. Le superviseur est le maître Modbus, tandis que les automates X et Y sont des esclaves. L'objectif de l'exemple est d'écrire des valeurs des zones de données de l'automate X vers l'automate Y. L'automate X doit écrire une zone de données de 41 entiers à partir de l'adresse %MW100 vers l'automate Y à partir de l'adresse %MW100. Pour cela, l'automate X doit devenir le maître Modbus. L'adresse Modbus de l'automate X est 9, celle de l'automate Y est 10. 242 33002528.25 OUT_IN_MBUS : Fonction de communication Modbus Communication Pour simplifier la programmation, les modems ont été initialisés à l'aide des paramètres adéquats par l'intermédiaire d'un terminal de programmation. Ces paramètres sont sauvegardés dans la mémoire non volatile à l'aide des commandes AT&W. Structure de la programmation Commentaires d’étapes Le tableau ci-dessous récapitule les étapes de programmation de l’exemple : Numéro d’étape Description de l’étape 0 Etat initial de la fonction. Attente du passage à 1 du bit Start_4 pour passer à l’étape 5. 5 Si aucune commande n’est en cours sur le port série, une commande est envoyée pour passer le port série du mode Modbus en mode caractère. Passage à l’étape 10. 10 Lecture du status du port série. • • 15 S’il y a une erreur sur le port série alors ◦ Error_4 est à -2, ◦ passage à l’étape 65. Si aucune erreur sur le port série, ◦ et mode caractère actif, alors passage à l’étape 15, ◦ et pas de mode caractère actif, alors test de l’état de passage en mode caractère sur 1000 cycles. Si, au bout des 1000 cycles, le mode n’a pas changé, alors Error_4 est à -1, et passage à l’étape 65. Envoi d’une commande de numérotation au modem par le bloc PRINT_CHAR et attente de la réponse via INPUT_CHAR. Passage à l’étape 20. 20 Si le résultat de PRINT_CHAR est bien concluant alors passage à l’étape 25 sinon passage à l’étape 65 avec Error_4 à -3. 25 Si le résultat de INPUT_CHAR est bien concluant alors passage à l’étape 30 sinon passage à l’étape 65 avec Error_4 à -4. 30 Si le modem répond alors passage à l’étape 35 sinon passage à l’étape 65 avec Error_4 à -5. 35 Initialisation du paramétrage du bloc OUT_IN_MBUS. Passage en étape 40. 40 33002528.25 • Appel du bloc OUT_IN_MBUS. 243 OUT_IN_MBUS : Fonction de communication Modbus Communication Numéro d’étape Description de l’étape • 45 Si le bit Active_4 est à 0, ◦ et si le bit Flag_Error_4 est à 0, alors passage à l’étape 45, ◦ et si le bit Flag_Error_4 est à 1, alors passage à l’étape 45 avec Error_4 à -6. Envoi d’une commande de déconnexion au modem par le bloc PRINT_CHAR. Passage à l’étape 50. 50 Si le résultat de PRINT_CHAR est concluant alors passage à l’étape 55 sinon passage à l’étape 65 avec Error_4 à la valeur 1. 55 Si aucune commande n’est en cours sur le port série, une commande est envoyée pour passer le port série du mode caractère au mode Modbus. Passage à l’étape 60. 60 Lecture du status du port série. • • 65 S’il y a une erreur sur le port série alors ◦ Error_4 est à 3, ◦ passage à l’étape 65. Si aucune erreur sur le port série, ◦ et passage en mode Modbus, alors passage à l’étape 65, ◦ et pas en mode Modbus, alors test de l’état de passage en mode Modbus sur 1000 cycles. Si, au bout des 1000 cycles, le mode n’a pas changé, alors Error_4 est à 2, et passage à l’étape 65. Retour à l’étape 0 (l’état initial de la fonction) et bit Start_4 à 0. Déclaration des variables Présentation Le tableau ci-dessous recense le détail des variables utilisées : 244 Variable Type Définition Start_4 BOOL Bit de démarrage de la fonction Step_4 INT Etape de la fonction Error_4 INT Code d’erreur de la fonction MngtPrint_4 ARRAY[0..4] of INT Tableau des paramètres de communication pour le bloc INPUT_CHAR MngtInput_4 ARRAY[0..4] of INT Tableau des paramètres de communication pour le bloc PRINT_CHAR 33002528.25 OUT_IN_MBUS : Fonction de communication Modbus Communication Variable Type Définition ReqString_4 STRING Commande d’une chaîne de caractères au modem AnsString_4 STRING Réponse d’une chaîne de caractères du modem Out_In_Mbus_4 OUT_IN_MBUS Instance du bloc OUT_IN_MBUS Adr_4 INT Port de communication de l’automate esclave MbusCmd_4[1] INT Code fonction Modbus MbusCmd_4[2] INT Quantité de données à lire MbusCmd_4[3] INT Adresse Modbus de l’automate esclave MbusCmd_4[4] INT Début de la zone de données à lire de l’esclave RetryLmt_4 INT Nombre de tentatives DataBits_4 INT Mode de transmission (1 pour RTU et 0 pour ASCII) RespTout_4 INT Timeout Retry_4 INT Nombre de tentatives effectuées par le bloc Active_4 BOOL La valeur 1 indique que l’opération est en cours Done_4 BOOL La valeur 1 indique que l’opération a réussie Flag_Error_4 BOOL La valeur 1 indique qu'une erreur est survenue ou que l'opération courante est terminée Status_4 INT Code d’état généré par le bloc Programmation Programmation en langage ST Cet exemple est programmé en langage ST (littéral structuré). La section correspondante se trouve dans la même tâche maître (MAST). (* Fonction pour écrire %MW100 dans %MW140 de l'esclave Y *) (* --------------------------------------------- *) CASE Step_4 OF 0: (* Initialisation *) IF (Start_4) THEN (* Indicateur de déclenchement *) Error_4 := 0; Step_4 := 5; (* Etape suivante *) END_IF; 5: 33002528.25 245 Communication OUT_IN_MBUS : Fonction de communication Modbus (* Envoyer commande pour basculer le port série du mode Modbus en mode caractère *) READ_STS(Ioddt_Pcmcia_0_3_1); (* Lire état du port série *) IF (Ioddt_Pcmcia_0_3_1.EXCH_STS = 0) THEN (* Aaucune commande active *) Ioddt_Pcmcia_0_3_1.CONTROL := 16#00; (* Réinitialiser mot de commande *) SET(Ioddt_Pcmcia_0_3_1.MB_TO_CHAR); (* Régler bit de commande MB_TO_CHAR *) WRITE_CMD (Ioddt_Pcmcia_0_3_1); (* Envoyer commande *) i := 0; (* Initialiser compteur de nouvelles tentatives *) Step_4 := 10; (* Etape suivante *) END_IF; 10: (* Tester résultat de la commande de bascule *) READ_STS(Ioddt_Pcmcia_0_3_1); (* Lire état du port série *) IF (Ioddt_Pcmcia_0_3_1.EXCH_STS = 0) THEN (* Commande terminée *) RESET(Ioddt_Pcmcia_0_3_1.MB_TO_CHAR); (* Rréinitialiser bit de commande MB_TO_CHAR *) IF (Ioddt_Pcmcia_0_3_1.EXCH_RPT = 0) THEN (* Aucune erreur *) IF (AND(Ioddt_Pcmcia_0_3_1.PROTOCOL, 16#0F) = 03) THEN (* Mode caractère OK *) °°°°°°°° Step_4 := 15; (* Etape suivante *) ELSE i := i + 1; IF (i > 1000) THEN Error_4 := -1; (* Erreur *) Step_4 := 65; (* Etape suivante = fin *) END_IF; END_IF; ELSE (* Erreur lors de l'envoi de la commande au port *) Error_4 := -2; (* Erreur *) Step_4 := 65; (* Etape suivante = fin *) END_IF; END_IF; 15: (* Envoyer commande de numérotation au modem *) Adr_4 := ADDR('0.3.1.SYS'); (* Port de communication *) MngtPrint_4[3] := 50; (* Timeout *) MngtPrint_4[4] := 16; (* Nombre d'octets à envoyer *) ReqString_4 := 'ATDT0102030405$N'; (* Message de numérotation *) PRINT_CHAR(Adr_4, ReqString_4, MngtPrint_4); MngtInput_4[3] := 300; (* Timeout *) MngtInput_4[4] := 0; (* Nombre d'octets à envoyer *) 246 33002528.25 OUT_IN_MBUS : Fonction de communication Modbus Communication INPUT_CHAR(Adr_4, 0, 12, MngtInput_4, AnsString_4); (* Attente réponse du modem *) Step_4 := 20; (* Etape suivante *) 20: (* Tester résultat de la fonction PRINT_CHAR *) IF (NOT MngtPrint_4[1].1) THEN IF (MngtPrint_4[2] = 0) THEN Step_4 := 25; (* Etape suivante *) ELSE Error_4 := -3; (* Erreur *) Step_4 := 65; (* Etape suivante = fin *) END_IF; END_IF; 25: (* Tester résultat de la fonction INPUT_CHAR *) IF (NOT MngtInput_4[1].1) THEN IF (MngtInput_4[2] = 0) THEN Step_4 := 30; (* Réussite : étape suivante *) ELSE Error_4 := -4; (* Erreur *) Step_4 := 65; (* Etape suivante = fin *) END_IF; END_IF; 30: (* Tester réponse du modem *) IF (AnsString_4 = 'CONNECT 9600') THEN Step_4 := 35; (* Réussite : étape suivante *) ELSE Error_4 := -5; (* Erreur *) Step_4 := 65; (* Etape suivante = fin *) END_IF; 35: (* Initialiser paramètres de OUT_IN_MBUS *) MbusCmd_4[1] := 10; (* Adresse automate esclave *) MbusCmd_4[2] := 16#06; (* Fonction Modbus 16#06 *) MbusCmd_4[3] := 100; (* Zone automate esclave = %MW100 *) MbusCmd_4[4] := 41; (* Quantité de données *) RetryLmt_4 := 2; (* Nombre de nouvelles tentatives *) DataBits_4 := %KW0.3.1.1.8; (* 1 = 8 bits -> Mode RTU, 0 = 7 bits -> Mode ASCII *) RespTout_4 := 300; (* Timeout = 30 s *) Flag_Error_4 := 0; Step_4 := 40; (* Etape suivante *) 40: (* Appel de OUT_IN_MBUS *) Out_In_Mbus_4 (Adr_4, MbusCmd_4, RetryLmt_4, DataBits_4, RespTout_4, Abort_4, 33002528.25 247 Communication OUT_IN_MBUS : Fonction de communication Modbus %MW100:41, Retry_4, Active_4, Done_4, Flag_ Error_4, Status_4); IF (NOT Active_4) THEN (* Demande terminée *) IF (NOT Flag_Error_4) THEN (* Aucune erreur *) Step_4 := 45; (* Etape suivante *) ELSE (* Erreur *) Error_4 := -6; (* Erreur *) Step_4 := 45; (* Etape suivante *) END_IF; END_IF; 45: (* Raccrochage du modem *) MngtPrint_4[3] := 50; (* Timeout *) MngtPrint_4[4] := 9; (* Nombre d'octets à envoyer *) ReqString_4 := '+++ATH0$N'; (* Message de raccrochage *) PRINT_CHAR(Adr_4, ReqString_4, MngtPrint_4); Step_4 := 50; (* Etape suivante *) 50: (* Tester résultat de la fonction PRINT_CHAR *) IF (NOT MngtPrint_4[1].1) THEN IF (MngtPrint_4[2] = 0) THEN (* Réussite : étape suivante *) Step_4 := 55; ELSE (* Fin sur erreur *) Error_4 := 1; Step_4 := 65; END_IF; END_IF; 55: (* Envoyer commande pour basculer le port série du mode Modbus en mode caractère *) READ_STS(Ioddt_Pcmcia_0_3_1); (* Lire état du port série *) IF (Ioddt_Pcmcia_0_3_1.EXCH_STS = 0) THEN (* Aucune commande active *) Ioddt_Pcmcia_0_3_1.CONTROL := 16#00; (* Réinitialiser mot de commande *) SET(Ioddt_Pcmcia_0_3_1.CHAR_TO_MB); (* Régler bit de commande MB_TO_CHAR *) WRITE_CMD (Ioddt_Pcmcia_0_3_1); (* Envoyer commande *) i := 0; (* Initialiser compteur de nouvelles tentatives *) Step_4 := 60; (* Etape suivante *) END_IF; 60: (* Tester résultat de la commande de bascule *) READ_STS(Ioddt_Pcmcia_0_3_1); (* Lire état du port série *) IF (Ioddt_Pcmcia_0_3_1.EXCH_STS = 0) THEN (* Commande terminée *) 248 33002528.25 OUT_IN_MBUS : Fonction de communication Modbus Communication RESET(Ioddt_Pcmcia_0_3_1.CHAR_TO_MB); (* Réinitialiser bit de commande CHAR_TO_MB *) IF (Ioddt_Pcmcia_0_3_1.EXCH_RPT = 0) THEN (* Aucune erreur *) IF (AND(Ioddt_Pcmcia_0_3_1.PROTOCOL, 16#0F) = 07) THEN (* Mode Modbus OK *) Step_4 := 65; (* Etape suivante *) ELSE i := i + 1; IF (i > 1000) THEN Error_4 := 2; (* Erreur *) Step_4 := 65; (* Etape suivante *) END_IF; END_IF; ELSE (* Erreur lors de l'envoi de la commande au port *) Error_4 := 3; (* Erreur *) Step_4 := 65; (* Etape suivante *) END_IF; END_IF; 65: (* Fin *) Start_4 := 0; (* Autoriser nouvelle demande *) Step_4 := 0; (* Atteindre état d'attente *) END_CASE; 33002528.25 249 Communication PRINT_CHAR : Envoi de chaînes de caractères PRINT_CHAR : Envoi de chaînes de caractères Contenu de ce chapitre Description ............................................................................ 250 Ecran de saisie assistée ......................................................... 254 Exemple d'envoi de chaînes de caractères via un réseau Fipway .................................................................................. 256 Exemple d'envoi de chaînes de caractères via une liaison série de processeurs Modicon M340 ....................................... 257 Objet de ce chapitre Ce chapitre décrit la fonction PRINT_CHAR. Description Description fonctionnelle Pour les automates Premium, la fonction PRINT_CHAR est utilisée pour envoyer une chaîne de caractères de 4 Ko maximum (120 octets sur le port terminal) à transmettre sur une liaison mode caractère. Pour les CPU Modicon M340 et M580, la fonction PRINT_CHAR permet d'envoyer une chaîne de caractères de 1 024 octets maximum. La chaîne de caractères peut être contenue dans une variable statique (voir ™EcoStruxure Control Expert - Langages de programmation et structure - Manuel de référence) ou définie sous forme de valeur immédiate (série d’octets entre apostrophes, par exemple : 'Message à envoyer'). Ces chaînes de caractère peuvent contenir des caractères spéciaux, ils doivent débuter par le caractère $ suivi par la valeur hexadécimale du caractère à transmettre, exemple $0D. Certains caractères spéciaux (voir ™EcoStruxure Control Expert - Langages de programmation et structure - Manuel de référence) peuvent être utilisés, tels que : $R = CR (retour chariot) $L = LF (retour à la ligne) $N = CR+LF Les paramètres supplémentaires EN et ENO peuvent être configurés. 250 33002528.25 PRINT_CHAR : Envoi de chaînes de caractères Communication AVERTISSEMENT FONCTIONNEMENT IMPREVU DE L'EQUIPEMENT Coordonnez une demande entre P-HSBY et Target dans une application 2 fils pour abandonner simultanément une fonction PRINT_CHAR pendant une permutation. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Représentation en FBD Représentation : Représentation en LD Représentation : 33002528.25 251 Communication PRINT_CHAR : Envoi de chaînes de caractères Représentation en IL Représentation : LD Address PRINT_CHAR String_to_Send, Management_Param Représentation en ST Représentation : PRINT_CHAR(Address, String_to_Send, Management_Param); Description des paramètres Le tableau suivant décrit les paramètres d’entrée : Paramètre Type Commentaire ADR ARRAY [0..5] OF INT pour Premium Les instructions suivantes ne sont correctes que pour l'automate Premium : ARRAY [0..7] OF INT pour Modicon M340 et M580 • Address of the message's receiving character mode channel is given by the ADDR, page 88 function • Seules les adresses se terminant par SYS sont possibles (exemple : 0.0.0.SYS (port terminal du processeur)). Les instructions suivantes ne s'appliquent qu'à l'automate Modicon M340 : • L'adresse de la voie (en mode caractères) de réception du message est indiquée par la fonction ADDM, page 73.. • La syntaxe de l'adresse est de type ADDM (‘r.m.c. node’). Le champ Node est facultatif. Il peut être de type SYS ou vide (par exemple ADDM('0.0.0.SYS') est égal à ADDM('0.0.0')). Les instructions suivantes ne s'appliquent qu'à l'UC Modicon M580 : • EMIS STRING Adresse de l'entité cible de l'opération d'impression, résultat de la fonction ADDMX, page 80. Chaîne de caractères à envoyer. Intégrée dans une chaîne de caractères ou indiquée sous forme de valeur immédiate. Remarque : cette chaîne de caractères doit exister, même s'il n'y a pas de données à envoyer. 252 33002528.25 PRINT_CHAR : Envoi de chaînes de caractères Communication Le tableau suivant décrit les paramètres d’entrée/sortie : Paramètre Type Commentaire GEST ARRAY [0..3] OF INT Table de gestion de l'échange composée des mots suivants : • Mot de rang 1 : mot géré par le système et composé de 2 octets : ◦ octet de poids fort : numéro d'échange, ◦ octet de poids faible : bit d'activité (rang 0) et bit d'annulation (rang 1) NOTE: le bit d'annulation n'est disponible que pour les automates Modicon M340 et M580. • Mot de rang 2 : mot géré par le système et composé de 2 octets : ◦ octet de poids fort : compte rendu d'opération ◦ octet de poids faible : compte rendu de communication • Mot de rang 3 : mot géré par l'utilisateur et qui définit le temps de réponse maximum en utilisant une base de temps de 100 ms. • Mot de rang 4 : mot géré par l'utilisateur et qui définit la longueur de l'échange. ◦ Si cette longueur de paramètre est définie sur 0, le système envoie la chaîne entière. ◦ Si cette longueur de paramètre est supérieure à la longueur de la chaîne, l'erreur 16#0A (Taille insuffisante du tampon d'envoi) est renvoyée dans le 2e mot de gestion et aucun caractère n'est envoyé. NOTE: Dans le cas de PRINT_CHAR, le quatrième mot de gestion (longueur à envoyer) ne doit pas être écrit tant que le bit d'activité est à 1 (c'est-à-dire une fois EF en cours d'exécution). Sinon, la fonction PRINT_CHAR risquerait de se verrouiller en renvoyant une erreur 0xB. Pour plus d'informations, consultez la section Structure des paramètres de gestion, page 39. Règles de programmation Les caractères spéciaux doivent être précédés du caractère $ dans la chaîne à transmettre. Les caractères $ ne sont pas transmis par l'émetteur et ne doivent donc pas être comptés lors de l'initialisation du paramètre de longueur. Les espaces entre deux caractères sont comptés dans un octet. Par conséquent, dans l'exemple PRINTING IN PROGRESS$L$R, la longueur des données à transmettre est de 22 octets. 33002528.25 253 Communication PRINT_CHAR : Envoi de chaînes de caractères Sur les automates Premium, plusieurs cycles d'automate sont nécessaires pour envoyer une chaîne de caractères de plus de 240 octets (la chaîne est fragmentée). Il est donc important de s'assurer que les données de gestion n'ont pas été modifiées au cours du traitement de la fonction. Le système transmet la chaîne de manière cohérente sur plusieurs fragments, mais n'empêche pas la transmission d'une autre chaîne de caractères entre deux fragments. Sur les CPU Modicon M340 et M580, un cycle d'UC est nécessaire pour envoyer une chaîne de caractères de 1 024 octets maximum. Il est important de s'assurer que les données de gestion n'ont pas été modifiées au cours du traitement de la fonction. Le port série de l'automate Modicon M340 est en duplex intégral. Par conséquent, une fonction PRINT_CHAR peut être envoyée même si une fonction INPUT_CHAR a été envoyée et mise en attente. NOTE: Pour envoyer des chaînes de caractères contenant des caractères de fin de chaîne (NULL). Vous devez : • utiliser des STRING localisées, • initialiser le dernier mot du tableau de gestion des échanges avec le nombre de caractères à émettre. Si vous initialisez ce mot avec la valeur 0 la chaîne envoyée s’arrêtera au premier caractère NULL rencontré. Si vous l’initialisez avec une valeur, la longueur de la chaîne de caractères envoyée sera égale à cette valeur. Ecran de saisie assistée Présentation Pour cette fonction de communication, vous pouvez avoir recours à l'écran de saisie assistée. Notez que cet écran n'est pas disponible pour les Modicon M340/M580. NOTE: les symboles de variable sont acceptés dans les différents champs de l'écran. 254 33002528.25 PRINT_CHAR : Envoi de chaînes de caractères Communication Illustration La capture suivante est un exemple d'écran de saisie assistée de la fonction : Adresse Pour les automates Premium, les types d'objets possibles sont les suivants : • ADDR(STRING), • ARRAY [0..5] OF INT. NOTE: si vous saisissez une valeur directement dans le champ, le bouton de saisie d'adresse assistée devient gris. Chaîne à envoyer La chaîne à envoyer est une variable de type STRING ou une valeur immédiate. Lorsqu'une variable de type STRING est sélectionnée, le champ de valeur disparaît. Rapport Le rapport est un tableau de 4 entiers, pouvant être affecté ou non. NOTE: veillez à ne pas utiliser plusieurs zones de mémoire identiques pour les tables de rapport, car la fonction de lecture de variables risque de ne pas fonctionner. 33002528.25 255 Communication PRINT_CHAR : Envoi de chaînes de caractères Exemple d'envoi de chaînes de caractères via un réseau Fipway Présentation Supposons que vous voulez envoyer une chaîne de caractères à un terminal vidéo connecté à la liaison intégrée du module TSX SCY 21601 d'un automate dont l'adresse est réseau 20 station 3. Le module TSX SCY 21601 se trouve dans l'emplacement 2 du rack de base. La table de gestion est située dans %MW110:4 et la chaîne à envoyer est située dans la variable Str_1. Figure Les deux stations sont connectées via un réseau Fipway. Emission Programmation en ST : IF RE(%I0.3.6) AND NOT %MW110.0 THEN PRINT_CHAR(ADDR('{20.3}0.2.0.SYS'),Str_1,%MW110:4); END_IF; Paramètres de la requête : 256 33002528.25 PRINT_CHAR : Envoi de chaînes de caractères Paramètres ADDR(‘{20.3}0.2.0. SYS’) Communication Description • {20.3} : réseau 20, station 3 • 0 : rack • 2 : module • 0 : voie 0 • SYS : adresse système Str_1 Chaîne de caractères à envoyer ; la variable Str_1 est de type STRING. %MW110:4 Table de gestion NOTE: A chaque lancement de la fonction, initialisez le paramètre de longueur (dans cet exemple : %MW113) avec la valeur correspondant au nombre de caractères (en octets) à envoyer à Str_1. Exemple d'envoi de chaînes de caractères via une liaison série de processeurs Modicon M340 Présentation Supposons que nous voulions envoyer une chaîne de caractères vers un terminal d'affichage/saisie de données compact raccordé au port série d'un processeur Modicon M340. La table de gestion est située dans %MW110:4 et la chaîne à envoyer est située dans la variable caract. 33002528.25 257 Communication PRINT_CHAR : Envoi de chaînes de caractères Figure Un automate Modicon M340 est relié à un terminal de saisie/d'affichage de données TM8501 : Emission Programmation en ST : IF (%M16) THEN PRINT_CHAR(ADDM('0.0.0'),caract,gestion); END_IF; Paramètres de la requête : Paramètres ADDM('0.0.0') Description • 0 : rack • 0 : module • 0 : voie 0 • SYS : adresse système (facultative sur les automates Modicon M340) caract Chaîne de caractères à émettre, variable caract. gestion Table de gestion NOTE: Lors de chaque lancement de la fonction, initialisez le paramètre de longueur (par exemple : %MW113 si la table de gestion passe de %MW110 à %MW113) avec la valeur correspondant au nombre de caractères (en octets) à envoyer à caract. 258 33002528.25 PRINT_CHAR_QX : envoi de chaînes de caractères sur le bus EIO Communication PRINT_CHAR_QX : envoi de chaînes de caractères sur le bus EIO Contenu de ce chapitre Description ............................................................................ 259 Introduction Ce chapitre décrit la fonction PRINT_CHAR_QX. Description Description de la fonction La fonction PRINT_CHAR_QX permet d'envoyer une chaîne de caractères de 1000 octets maximum à un équipement série connecté à un module de communication série Modicon X80 (BMXNOM0200) situé dans une station EIO. La chaîne de caractères peut être contenue dans une variable statique (voir EcoStruxure™ Control Expert, Langages de programmation et structure, Manuel de référence) ou définie sous forme de valeur immédiate (série d'octets entre apostrophes, par exemple 'Message à envoyer'). Ces chaînes de caractère peuvent contenir des caractères spéciaux, ils doivent débuter par le caractère $ suivi par la valeur hexadécimale du caractère à transmettre, exemple $0D. Certains caractères spéciaux (voir EcoStruxure™ Control Expert, Langages de programmation et structure, Manuel de référence) peuvent être utilisés, par exemple : $R = CR (retour chariot) $L = LF (retour à la ligne) $N = CR+LF Les paramètres supplémentaires EN et ENO peuvent être configurés. Les blocs fonction de communication utilisent un chemin de transaction de données et requièrent plusieurs cycles pour effectuer une opération. Le nombre de chemins de transaction disponibles par module et par cycle MAST dépend du port de communication utilisé : • Les modules à port intégré Modbus Plus ou NOM prennent en charge jusqu'à 4 blocs simultanément. • Le port intégré Ethernet TCP/IP prend en charge jusqu'à 4 blocs simultanément. 33002528.25 259 Communication • PRINT_CHAR_QX : envoi de chaînes de caractères sur le bus EIO Les modules TCP/IP Ethernet NOE, NOC et 140 CRP 312 00 prennent en charge jusqu'à 16 blocs simultanément. D'autres blocs fonction de communication peuvent être programmés sur le même port de communication. Toutefois, le bloc de communication qui dépasse le nombre maximum sur ce port n'est traité qu'après la mise à disposition d'un des chemins de transaction. Le bloc suivant sur le port devient alors actif et commence à utiliser un chemin disponible. Représentation en FBD Représentation : 260 33002528.25 PRINT_CHAR_QX : envoi de chaînes de caractères sur le bus EIO Communication Représentation en LD Représentation : Représentation en IL Représentation : CAL PRINT_CHAR_QX_Instance (ENABLE:=PrintCharEnable, ABORT: =PrintCharAbort, ADDR:=ModuleAddress, SEND_LEN:=NbCharToSend, SEND_ BUF:=SendBuffer, DONE=>PrintCharSuccessfull, ACTIVE= >PrintCharActive, ERROR=>PrintCharFaulty, STATUS=>ErrorCode) Représentation en ST Représentation : PRINT_CHAR_QX_Instance (ENABLE:=PrintCharEnable, ABORT: =PrintCharAbort, ADDR:=ModuleAddress, SEND_LEN:=NbCharToSend, SEND_ BUF:=SendBuffer, DONE=>PrintCharSuccessfull, ACTIVE= >PrintCharActive, ERROR=>PrintCharFaulty, STATUS=>ErrorCode); 33002528.25 261 PRINT_CHAR_QX : envoi de chaînes de caractères sur le bus EIO Communication Description des paramètres Le tableau suivant décrit les paramètres d’entrée : Paramètre Type Commentaire ENABLE BOOL Réglé sur 1 pour envoyer une chaîne de caractères. ABORT BOOL Réglé sur 1 pour abandonner l'opération en cours. ADDR ANY_ARRAY_INT Tableau contenant l'adresse du module Modicon X80 cible, qui est le résultat de la fonction ADDMX, page 80. SEND_LEN INT Nombre de caractères à envoyer. SEND_BUF ANY Caractères à envoyer. Remarque : ce paramètre de caractères doit être défini, même en l'absence de données à envoyer. Description des paramètres de sortie : Paramètre Type de données Signification DONE BOOL Réglé sur 1 lorsque la fonction s'est exécutée correctement. ACTIVE BOOL Réglé sur 1 lorsque la fonction est en cours d'exécution. ERROR BOOL Réglé sur 1 si une erreur est détectée par le bloc fonction. STATUS WORD Fournit le code d'erreur, page 556 si une erreur est détectée par le bloc fonction. Règles de programmation Les caractères spéciaux doivent être précédés du caractère $ dans la chaîne à transmettre. Les caractères $ ne sont pas transmis par l'émetteur et ne doivent donc pas être comptés lors de l'initialisation du paramètre de longueur. Les espaces entre deux caractères sont comptés dans un octet. Par conséquent, dans l'exemple PRINTING IN PROGRESS$L$R, la longueur des données à transmettre est de 22 octets. 262 33002528.25 PRINT_CHAR_QX : envoi de chaînes de caractères sur le bus EIO Communication NOTE: Pour envoyer des chaînes de caractères contenant des caractères de fin de chaîne (ZERO), vous devez : • utiliser des chaînes localisées, • initialiser SEND_LEN avec le nombre de caractères à envoyer. 33002528.25 263 Communication RCV_TLG : Réception de télégrammes RCV_TLG : Réception de télégrammes Contenu de ce chapitre Description ............................................................................ 264 Exemple de réception d'un télégramme ................................... 266 Objet de ce chapitre Ce chapitre décrit la fonction RCV_TLG. Description Description de la fonction La fonction RCV_TLG permet de lire des données de type télégramme envoyées par une application distante. Les données reçues doivent avoir une longueur maximale de 16 octets. Contrairement aux autres fonctions de communication, cette fonction est traitée immédiatement (synchrone) : il n'y a donc aucun bit d'activité ni paramètre de timeout. Par conséquent, la table d'entiers affectée aux paramètres de gestion n'utilise que deux mots au lieu de quatre (le nombre d'échanges et de timeouts n'est pas requis). NOTE: cette fonction n'est utilisable sur Fipway que dans le processeur, et pour les stations 0 à 15. Les paramètres supplémentaires EN et ENO peuvent être configurés. Représentation en FBD Représentation : 264 33002528.25 RCV_TLG : Réception de télégrammes Communication Représentation en LD Représentation : Représentation en IL Représentation : LD Management_Param RCV_TLG Address, Received_Data Représentation en ST Représentation : RCV_TLG(Management_Param, Address, Received_Data); Description des paramètres Le tableau suivant décrit le paramètre d'entrée/sortie : 33002528.25 265 Communication RCV_TLG : Réception de télégrammes Paramètre Type Commentaire Management_Param ARRAY [0.. 1] OF INT Table de mots utilisée pour gérer l'échange. Cette table contient deux mots : le mot de rapport et le mot indiquant le volume de données reçues (en nombre d'octets). Le compte rendu comporte : • le compte rendu d'opération (octet de poids fort du premier mot) ; • le compte rendu de communication (octet de poids faible du premier mot). Le rapport d'opération prend l'une des valeurs suivantes : • 16#00 : échange correct • 16#05 : paramètres de gestion incorrects • 16#06 : paramètres spécifiques incorrects • 16#09 : taille du tampon de réception insuffisante • 16#0B : aucune ressource système : le nombre d'EF de communication simultanées dépasse le nombre maximum autorisé par le processeur • 16#0D : aucun télégramme reçu • 16#10 : module de réseau manquant • 16#0F : service de télégramme non configuré Le tableau suivant décrit les paramètres de sortie : Paramètre Type Commentaire Address INT Adresse de l'entité envoyant le télégramme à la fin de l'échange. Received_Data ARRAY [n... m] OF INT • L'octet de poids faible correspond au numéro de réseau hexadécimal. • L'octet de poids fort correspond au numéro de station hexadécimal. Tampon de réception. Tableau d'entiers contenant les données reçues. Il peut contenir jusqu'à 8 entiers (16 octets). Exemple de réception d'un télégramme Présentation Supposons que vous voulez recevoir un télégramme à 8 mots (16 octets) d'une application distante sur un réseau Fipway. 266 33002528.25 RCV_TLG : Réception de télégrammes Communication Figure Les deux stations sont connectées via un réseau Fipway. Programmation Programmation en ST : IF RE(%I0.3.11) THEN RCV_TLG(%MW200:2, %MW300,%MW310:8); END_IF; Paramètres de la requête : Paramètres Description %MW200:2 Table de gestion %MW300 Contient l'adresse de l'expéditeur à la fin de l'échange. %MW310:8 Contenu du télégramme reçu NOTE: Lorsqu'une fonction RCV_TLG est programmée dans une tâche événement, elle ne peut pas être utilisée dans une tâche MAST ou FAST. Pour exécuter cette fonction de manière synchrone, il est nécessaire de tester le compte-rendu de l'opération immédiatement après la ligne de programme activant l'exécution de la fonction. 33002528.25 267 Communication READ_ASYN : Lecture asynchrone de données READ_ASYN : Lecture asynchrone de données Contenu de ce chapitre Description ............................................................................ 268 Objet de ce chapitre Ce chapitre décrit la fonction de communication READ_ASYN. Description Description de la fonction La fonction READ_ASYN permet de lire 1 Koctet de données par le canal de messagerie asynchrone de modules TSX ETY en mode TCP/IP. Les données accessibles en lecture sont les suivantes : • Bits internes • Mots internes La lecture asynchrone ne peut s’effectuer qu’entre deux stations d’un même segment de réseau Ethernet TCP/IP. La fonction READ_ASYN est émise à la fin de la tâche MAST seulement si celle-ci est configurée en mode périodique. Il est possible d’activer 8 fonctions simultanément. Le principe de fonctionnement est identique à celui de la fonction WRITE_ASYN, page 366. La taille des buffers d'émission et de réception est exprimée en mots. Elle est de 512 mots soit 1024 octets. NOTE: La fonction serveur asynchrone supporte les protocoles UNI-TE V1 ou V2.0. La fonction READ_ASYN utilise le protocole UNI-TE V2.0. Les paramètres supplémentaires EN et ENO peuvent être configurés. 268 33002528.25 READ_ASYN : Lecture asynchrone de données Communication Représentation en FBD Représentation : Représentation en LD Représentation : Représentation en IL Représentation : LD Address READ_ASYN Object_Type, First_Object, Object_Number, Management_ Param, Receiving_Array 33002528.25 269 Communication READ_ASYN : Lecture asynchrone de données Représentation en ST Représentation : READ_ASYN(Address, Object_Type, First_Object, Object_Number, Management_Param, Receiving_Array); Description des paramètres Le tableau suivant décrit les paramètres d’entrée : Paramètre Type Commentaire Address ARRAY [0... 5] OF INT Adresse de l’entité destinataire de l’échange. Les adresses sont de la forme ADDR(’{Network. Station}SYS. Object_Type STRING Type des objets à lire : • %M : bits internes, • %MW : mots internes, • %S : bits système, • %SW : mots système. First_Object DINT Indice du premier objet à lire. Object_Number INT Nombre d'objets à lire. Le tableau suivant décrit les paramètres d’entrée/sortie : Paramètre Type Commentaire Management_Param ARRAY [0.. 3] OF INT Tableau de gestion des échanges, page 39 Le tableau suivant décrit les paramètres de sortie : 270 Paramètre Type Commentaire Receiving_Array ARRAY [n... m] OF INT Tableau de mots contenant la valeur des objets lus. 33002528.25 READ_DDT : lecture de DDT Communication READ_DDT : lecture de DDT Contenu de ce chapitre Configuration de la fonction élémentaire READ_DDT ............... 271 Objet de ce chapitre Ce chapitre décrit la fonction de communication READ_DDT. Configuration de la fonction élémentaire READ_ DDT Présentation Utilisez le bloc fonction READ_DDT pour configurer les messages pour le module de communication BMENUA0100. Les paramètres ADR, DDT_NAME et GEST définissent l'opération. EN et ENO peuvent être configurés en tant que paramètres supplémentaires. Représentation en FBD 33002528.25 271 Communication READ_DDT : lecture de DDT Paramètres d'entrée Paramètre Type de données Description EN BOOL Ce paramètre est facultatif. Lorsque la valeur un est associée à cette entrée, le bloc est activé et peut résoudre l'algorithme des blocs fonction. Lorsque la valeur zéro est associée à cette entrée, le bloc est désactivé et ne peut résoudre l'algorithme des blocs fonction. ADR Tout tableau de INT Tableau contenant l'adresse de l'entité de destination de l'opération d'échange. L'adresse est le résultat de la fonction ADDMX. Par exemple : ADDMX(0.0.3{192.168.10.2}100.TCP.MBS) indique que le module à l'adresse IP 192.168.10.2, avec UnitId 100 (serveur local du module), est connecté au port Ethernet intégré. DDT_NAME CHAINE Nom du DDT à lire : T_BMENUA0100 Paramètres d'entrée/sortie Le tableau GEST est local : Paramètre Type de données Description GEST Array [0...3] of INT Paramètres de gestion, composés de quatre mots. Consultez la rubrique d'aide Control Expert Structure des paramètres de gestion, page 39 pour plus d'informations sur ces paramètres. Mot# Octet de poids fort Octet de poids faible 0 Numéro de l'échange Bit d'activité : rang 0 Bit d'annulation : rang 1 Bit de données immédiat : rang 2 272 1 Compte rendu d'opération, page 43 2 Timeout, page 46 3 Longueur, page 45 Compte rendu de communication, page 42 33002528.25 READ_DDT : lecture de DDT Communication Paramètres de sortie Paramètre Type de données Description ENO BOOL Ce paramètre est facultatif. Lorsque vous sélectionnez cette sortie, vous obtenez également l'entrée EN. La sortie ENO est activée lorsque l'exécution du bloc fonction aboutit. RECP_DDT Tout Mémoire tampon de réception. Une variable DDT peut être utilisée. Consultez la description du DDT de T_ BMENUA0100 (voir M580, BMENUA0100 OPC UA Module intégré, Guide d'installation et de configuration) pour connaître le contenu de ce DDT. la taille des données reçues (en octets) est automatiquement écrite par le système dans le quatrième mot de la table de gestion. Bloc fonction de communication asynchrone Dans une application à redondance d'UC, pendant un événement de basculement, le bloc fonction de communication asynchrone READ_DDT ne recommence pas automatiquement à fonctionner sur le nouveau PAC primaire, sauf s'il est configuré de la manière spécifique décrite ci-après. Procédez comme suit pour permettre aux EFB de communication asynchrone de fonctionner à nouveau automatiquement après un basculement : • Programmez votre application afin que toutes les instances EFB ne soient pas échangées avec le PAC redondant. Pour cela, désélectionnez l'attribut Echange sur l'automate redondant de l'instance EFB. Remarques relatives à la configuration de la fonction Lors de l'utilisation de la fonction élémentaire (EF) READ_DDT, notez bien : • Si votre application utilise plus d'un module BMENUA0100 dans un même rack, configurez une instance distincte de tableau d'éléments WORD pour chaque broche GEST. Chaque bloc gère son propre tableau de types WORD. • Il n'est pas nécessaire de définir une valeur pour le paramètre de longueur dans GEST [3], car il n'y a aucune donnée à envoyer. A la fin de l'opération (lorsque le bit d'activité dans GEST[0] est défini sur 0), la longueur est définie avec la longueur des données copiées dans le paramètre de sortie RECP_DDT si aucune erreur détectée est signalée dans GEST[1] ou avec un code d'état supplémentaire. Consultez la rubrique d'aide Control Expert Codes des EFB avec paramètre STATUS, page 556 pour accéder à la description de ces valeurs de code d'état supplémentaires. 33002528.25 273 Communication READ_DDT : lecture de DDT • Si le délai est égal à 0 indique une période d'attente illimitée. Dans ce cas, le délai ou la perte de communication qui se produit durant l'opération d'échange n'est pas détecté. Durant cette période d'attente illimitée, le paramètre RECP_DDT conserve sa valeur précédente. Pour éviter ce scénario, définissez le délai à une valeur différente de zéro. • En cas de rapport d'opération 16#01 (requête non traitée) ou 16#02 (réponse incorrecte) dans le mot GEST[1] du tableau de gestion, un code d'état supplémentaire peut être signalé dans le paramètre de longueur (GEST[3]). Les codes d'état renvoyés dans ce champ correspond à une sous-plage de codes STATUS possibles de EFB de communication. Les valeurs possibles pour READ_DDT sont 0x30ss et 0x4001. Consultez la rubrique d'aide Control Expert Codes des EFB avec paramètre STATUS, page 556 pour accéder à la description de ces valeurs de code d'état supplémentaires. • En fonction du DDT défini dans le paramètre DDT_NAME, certaines vérifications de cohérence sont exécutées sur les données reçues. En cas de détection de divergence, le code 16#02 (réponse incorrecte) est défini dans l'octet de rapport d'opération (octet de poids fort GEST[1]). Notez que le bloc ne vérifie pas la validité du type de données de la variable configurée comme mémoire tampon de réception (RECP_DDT). Vérifiez que le type de données de la variable liée au paramètre RECP_DDT correspond au type de données reçues. ATTENTION FONCTIONNEMENT IMPREVU DE L'APPLICATION • Vérifiez que la variable de type DDT associée au paramètre de sortie RECP_DDT correspond au type de données écrites dans la mémoire tampon de réception. • Vérifiez que l'adresse définie dans le paramètre ADR correspond au module approprié, en particulier si plusieurs modules identiques sont configurés sur le même réseau. Le non-respect de ces instructions peut provoquer des blessures ou des dommages matériels. Configuration de la fonction élémentaire READ_DDT Pour configurer la fonction élémentaire READ_DDT, suivez ces étapes : 274 Etape Action 1 Définissez l'adresse de l'équipement de destination dans ADR (utilisez un bloc ADDM pour définir cette adresse dans un format de chaîne explicite). 2 Définissez le paramètre DDT_NAME avec le nom du DDT à lire. 3 Appelez la fonction READ_DDT pour lancer la communication (avec la broche d'entrée EN définie sur 1 si elle est configurée). 33002528.25 READ_DDT : lecture de DDT Communication Etape Action 4 Surveillez ce bit d'activité (octet de poids faible du paramètre GEST[0]) jusqu'à la fin de la communication (le bit d'activité est défini sur 0 par le système lorsque la communication est terminée). Exécutez une seule fois cette fonction pour éviter d'effacer les valeurs d'état. Par exemple, si la broche EN est définie sur 0 durant l'opération, la fonction est appelée à nouveau. 5 Consultez les paramètres de rapport dans GEST[1]. Si le rapport indique 16#0000, alors la mémoire tampon RECP_DDT est remplie de données reçues. La taille des données reçues (en octets) est écrite dans le quatrième mot (GEST[3]) de la table de gestion. Exemple de fonction élémentaire (EF) READ_DDT Dans cet exemple, la fonction élémentaire READ_DDT peut être lancée : • En continu, en définissant la variable read_ddt_continuous. NOTE: En cas de détection d'erreur, les codes de rapport dans le deuxième mot de la variable read_ddt_mngt ne peuvent pas être lu. • Une seule fois, en définissant la variable read_ddt_one_shot. 33002528.25 275 READ_GDATA : Lecture de Global Data Modbus Plus Communication READ_GDATA : Lecture de Global Data Modbus Plus Contenu de ce chapitre Description ............................................................................ 276 Objet de ce chapitre Ce chapitre décrit la fonction READ_GDATA. Description Description de la fonction La fonction READ_GDATA permet de lire les données partagées, appelées aussi Global Data, sur un réseau Modbus Plus. Les Global Data sont partagées entre 64 stations maximum d’un même réseau Modbus Plus. Chaque station peut écrire jusqu’à 32 entiers qui sont utilisables par toutes les stations du réseau. Réciproquement, chaque station peut lire les 32 (maximum) entiers de toutes les autres stations du réseau. Les paramètres supplémentaires EN et ENO peuvent être configurés. Représentation en FBD Représentation : 276 33002528.25 READ_GDATA : Lecture de Global Data Modbus Plus Communication Représentation en LD Représentation : Représentation en IL Représentation : LD Address READ_GDATA Management_Param, Receiving_Array Représentation en ST Représentation : READ_GDATA(Address, Management_Param, Receiving_Array); Description des paramètres Le tableau suivant décrit les paramètres d’entrée : Paramètre Type Commentaire Address ARRAY [0... 5] OF INT Adresse de l’entité destinataire de l’échange. Cette adresse est initialisée, avant l’échange, avec la valeur du noeud sur lequel est raccordée la station dont on veut connaître les Global Data. Exemple d'adresse : ADDR(‘0.0.1.10’) correspond à la station connectée au noeud 10 du réseau. Les trois premiers chiffres (0.0.1) correspondent à l’adresse de la voie de la carte PCMCIA Modbus Plus du Premium. 33002528.25 277 READ_GDATA : Lecture de Global Data Modbus Plus Communication Le tableau suivant décrit les paramètres d’entrée/sortie : Paramètre Type Commentaire Management_Param ARRAY [0.. 3] OF INT Table de gestion de l’échange, page 39. Il n’est pas nécessaire d’initialiser le paramètre de longueur avant de lancer l’échange. A la fin de cet échange, ce paramètre de longueur (le quatrième mot) contient le nombre d’octets qui composent les données produites par la station spécifiée dans l’adresse. Le tableau suivant décrit les paramètres de sortie : 278 Paramètre Type Commentaire Receiving_Array ARRAY [n... m] OF INT Tableau de mots contenant la valeur des objets lus. 33002528.25 READ_REG : Lecture de registre Communication READ_REG : Lecture de registre Contenu de ce chapitre Description ............................................................................ 279 Types de données dérivés ...................................................... 282 Mode de fonctionnement ........................................................ 284 Description des paramètres .................................................... 284 Présentation Ce chapitre décrit le bloc READ_REG. Description Description de la fonction En cas de front montant sur l'entrée REQ, ce bloc fonction lit une zone de registre d'un esclave adressé via Modbus Plus, Ethernet TCP/IP ou Ethernet SY/MAX. Les blocs fonction CREAD_REG, CWRITE_REG, READ_REG, WRITE_REG et MBP_MSTR utilisent un chemin de transaction de données et requièrent plusieurs cycles pour effectuer une opération. Le nombre de chemins de transaction disponibles par module et par cycle MAST dépend du port de communication utilisé : • Les modules à port intégré Modbus Plus ou NOM prennent en charge jusqu'à 4 blocs simultanément. • Le port intégré Ethernet TCP/IP prend en charge jusqu'à 4 blocs simultanément. • Les modules TCP/IP Ethernet NOE, NOC et 140 CRP 312 00 prennent en charge jusqu'à 16 blocs simultanément. D'autres blocs fonction de communication peuvent être programmés sur le même port de communication. Toutefois, le bloc de communication qui dépasse le nombre maximum sur ce port n'est traité qu'après la mise à disposition d'un des chemins de transaction. Le bloc suivant sur le port devient alors actif et commence à utiliser un chemin disponible. 33002528.25 279 Communication READ_REG : Lecture de registre NOTE: lorsque vous programmez une fonction READ_REG, vous devez connaître les procédures de routage utilisées par votre réseau. Les structures de routage Modbus Plus sont décrites en détail dans le manuel des architectures de communication (voir Architectures et services de communication, Manuel de référence) et le document Réseau Modbus Plus Modicon, Guide de planification et planification. Si le routage Ethernet TCP/IP ou SY/MAX est mis en œuvre (voir Quantum sous EcoStruxure™Control Expert, TCP/IP Configuration, Manuel utilisateur), vous devez utiliser des routeurs IP Ethernet standard. NOTE: il est possible d'utiliser plusieurs copies de ce bloc fonction dans le programme. Il n'est cependant pas possible de procéder à une instanciation multiple de ces copies. Représentation en FBD Représentation : Représentation en LD Représentation : 280 33002528.25 READ_REG : Lecture de registre Communication Représentation en IL Représentation : CAL READ_REG_Instance (REQ:=StartReadOnce, SLAVEREG:=OffsetAddress, NO_REG:=NumberOfRegisters, ADDRFLD:=DataStructure, NDR=>SetAfterReadingNewData, ERROR=>SetInCaseOfError, REG_READ=>RegisterToRead, STATUS=>ErrorCode) Représentation en ST Représentation : READ_REG_Instance (REQ:=StartReadOnce, SLAVEREG:=OffsetAddress, NO_REG:=NumberOfRegisters, ADDRFLD:=DataStructure, NDR=>SetAfterReadingNewData, ERROR=>SetInCaseOfError, REG_READ=>RegisterToRead, STATUS=>ErrorCode) ; Description des paramètres Description des paramètres d'entrée : Paramètre Type de données Signification REQ BOOL, En cas de front montant sur l'entrée REQ, ce bloc fonction lit une zone de registre d'un esclave adressé via Modbus Plus, Ethernet TCP/IP ou Ethernet SY/MAX. SLAVEREG DINT Adresse du premier registre %MW à consulter sur l'esclave. NO_REG INT Nombre d'adresses à lire depuis l'esclave. ADDRFLD WordArr5 Structure de données décrivant l'adresse Modbus Plus, l'adresse TCP/IP ou l'adresse SY/MAX-IP Description des paramètres de sortie : Paramètre Type de données Signification NDR BOOL Mis à 1 pendant un cycle après la lecture des nouvelles données. ERROR BOOL Mis à 1 pendant un cycle si une erreur apparaît 33002528.25 281 Communication READ_REG : Lecture de registre Paramètre Type de données Signification STATUS WORD, Si une erreur se produit lors de l'exécution de la fonction, un code d'erreur, page 556 apparaît pendant un cycle au niveau de cette sortie. REG_READ ANY Ecriture de données (Une structure de données doit être déclarée en tant que variable localisée pour le fichier à lire.) Erreur d'exécution Pour obtenir la liste de l'ensemble des valeurs et codes d'erreur de bloc, consultez le tableau des codes d'erreur, page 553.. Types de données dérivés Description de WordArr5 sur Modbus Plus Description de WordArr5 sur Modbus Plus : Elément Type de données Description WordArr5[1] WORD Octet de poids faible : Registre 1 de routage, sert à déterminer l'adresse de l'abonné cible (l'une des cinq adresses de l'itinéraire de routage) lors d'une transmission par réseau. Le dernier octet différent de zéro de l'itinéraire de routage est l'abonné cible. Octet de poids fort : Adresse de l'abonné source. 282 • Position de l'emplacement du module lors de l'utilisation du port Modbus Plus sur le module NOM. • Si vous utilisez le port Modbus Plus de l'UC, cet octet doit être réglé sur 0 (pour tous les emplacements de l'UC). WordArr5[2] WORD Registre 2 de routage WordArr5[3] WORD Registre 3 de routage 33002528.25 READ_REG : Lecture de registre Communication Elément Type de données Description WordArr5[4] WORD Registre 4 de routage WordArr5[5] WORD Registre 5 de routage Description de WordArr5 sur Ethernet TCP/IP Description de WordArr5 sur Ethernet TCP/IP : Elément Type de données Description WordArr5[1] WORD Octet de poids faible : Index de mappage MBP sur Ethernet Transporter (MET) Octet de poids fort : Emplacement du module NOE (16#FE si Ethernet est intégré à l'UC) WordArr5[2] WORD Octet 4 (octet de poids fort) de l'adresse IP cible 32 bits WordArr5[3] WORD Octet 3 de l'adresse IP cible 32 bits WordArr5[4] WORD Octet 2 de l'adresse IP cible 32 bits WordArr5[5] WORD Octet 1 (octet de poids faible) de l'adresse IP cible 32 bits Description de WordArr5 sur Ethernet SY/MAX Description de WordArr5 sur Ethernet SY/MAX : Elément Type de données Description WordArr5[1] WORD Octet de poids faible : Index de mappage MBP sur Ethernet Transporter (MET) Octet de poids fort : Emplacement du module NOE WordArr5[2] WORD Numéro de station cible (ou mettre FF en hexadécimal) WordArr5[3] WORD Terminaison (ou mettre FF en hexadécimal) WordArr5[4] WORD Réservé WordArr5[5] WORD Réservé 33002528.25 283 Communication READ_REG : Lecture de registre Mode de fonctionnement Mode de fonctionnement des blocs READ_REG Un grand nombre de blocs fonction READ_REG peut être programmé, mais seules quatre opérations de lecture peuvent être actives en même temps. Dans ce cas, il n'est pas important que celles-ci soient déclenchées par ce bloc fonction ou par d'autres (MBP_MSTR, CREAD_REG). Tous les blocs fonction utilisent la même session de transaction de données et nécessitent plusieurs cycles de programme pour réaliser un travail. NOTE: Une communication TCP/IP entre un automate Quantum (NOE 211 00) et un automate Momentum (toutes les UC TCP/IP et tous les modules d'E/S TCP/IP) n'est possible que si une seule tâche de lecture ou d'écriture est effectuée dans chaque cycle. Si plusieurs tâches sont envoyées par cycle d'automate, la communication s'arrête sans générer de message d'erreur dans le registre d'état du bloc fonction. L'information complète de routage est contenue dans la structure de données WordArr5 de l'entrée ADDRFLD. Le type du bloc fonction lié à cette entrée est défini par le réseau utilisé. Veuillez utiliser : • Modbus Plus pour le bloc fonction ModbusP_ADDR • Ethernet TCP/IP pour le bloc fonction TCP_IP_ADDR • Ethernet SY/MAX pour le bloc fonction SYMAX_IP_ADDR NOTE: Vous pouvez également utiliser la structure de données WordArr5 avec des constantes. Description des paramètres REQ Un front montant déclenche la transaction de lecture. Le paramètre peut être entré en tant qu'adresse directe, variable localisée, variable non localisée ou littéral. SLAVEREG Début de la zone dans l'esclave adressé à partir duquel les données source sont lues. La zone source réside toujours dans la zone de registre %MW. 284 33002528.25 READ_REG : Lecture de registre Communication NOTE: Pour les esclaves d'un automate non-Control Expert : La zone source réside toujours dans la zone de registre 4x. SLAVEREG attend la référence source comme décalage dans la zone 4x. Le "4" de début doit être omis (par exemple, 59 (contenu des variables ou valeur du littéral) = 40059). Le paramètre peut être entré en tant qu'adresse directe, variable localisée, variable non localisée ou littéral. NO_REG Nombre d'adresses à lire depuis l'esclave adressé (1 ... 100). Le paramètre peut être entré en tant qu'adresse directe, variable localisée, variable non localisée ou littéral. NDR La transition vers l'état ON pour un cycle de programme indique la réception de nouvelles données prêtes à être traitées. Le paramètre peut être entré en tant qu'adresse directe, variable localisée ou variable non localisée. ERROR La transition vers l'état ON pour un cycle de programme indique la détection d'une nouvelle erreur. Le paramètre peut être entré en tant qu'adresse directe, variable localisée ou variable non localisée. REG_READ Un ARRAY de la même taille que la transmission demandée doit faire l'objet d'un accord (≥ NO_REG) pour ce paramètre. Le nom de ce tableau est défini comme paramètre. Si le tableau défini est trop petit, seule la quantité de données présente dans le tableau est transmise. Le paramètre doit être défini en tant que variable localisée. 33002528.25 285 Communication READ_REG : Lecture de registre STATUS Si une erreur se produit lors de l'exécution de la fonction, un code d'erreur, page 556 apparaît pendant un cycle au niveau de cette sortie. Le paramètre peut être entré en tant qu'adresse, variable localisée ou variable non localisée. 286 33002528.25 READ_REG_QX : lecture de registre sur le bus EIO Communication READ_REG_QX : lecture de registre sur le bus EIO Contenu de ce chapitre Description ............................................................................ 287 Introduction Ce chapitre décrit la fonction READ_REG_QX. Description Description de la fonction La fonction READ_REG_QX permet de lire les registres d'un esclave Modbus connecté à un module de communication série Modicon X80 situé dans une station EIO. Lorsque vous programmez une fonction READ_REG_QX, vous devez connaître les procédures de routage utilisées par votre réseau. Les structures de chemin de routage Modbus Plus sont décrites en détail dans le chapitre Adressage d'une entité de communication Modbus Plus (voir Architectures et services de communication, Manuel de référence) et dans le guide de planification et d'installation du réseau Modbus Plus, page 17. NOTE: il est possible d'utiliser plusieurs copies de ce bloc fonction dans le programme. Il n'est cependant pas possible de procéder à une instanciation multiple de ces copies. Les paramètres supplémentaires EN et ENO peuvent être configurés. Les blocs fonction de communication utilisent un chemin de transaction de données et requièrent plusieurs cycles pour effectuer une opération. Le nombre de chemins de transaction disponibles par module et par cycle MAST dépend du port de communication utilisé : • Les modules à port intégré Modbus Plus ou NOM prennent en charge jusqu'à 4 blocs simultanément. • Le port intégré Ethernet TCP/IP prend en charge jusqu'à 4 blocs simultanément. • Les modules TCP/IP Ethernet NOE, NOC et 140 CRP 312 00 prennent en charge jusqu'à 16 blocs simultanément. 33002528.25 287 Communication READ_REG_QX : lecture de registre sur le bus EIO D'autres blocs fonction de communication peuvent être programmés sur le même port de communication. Toutefois, le bloc de communication qui dépasse le nombre maximum sur ce port n'est traité qu'après la mise à disposition d'un des chemins de transaction. Le bloc suivant sur le port devient alors actif et commence à utiliser un chemin disponible. Représentation en FBD Représentation : 288 33002528.25 READ_REG_QX : lecture de registre sur le bus EIO Communication Représentation en LD Représentation : Représentation en IL Représentation : CAL READ_REG_QX_Instance (ENABLE:=ReadRegQxEnable, ABORT: =ReadRegQxAbort, ADDR:=ModuleAddress, NO_REG:=NbRegistersToRead, SLAVEREG:=SlaveAddress, IEC:=IndexAdjust, DONE= >ReadRegQxSuccessfull, ACTIVE=>ReadRegQxActive, ERROR= >ReadRegQxFaulty, STATUS=>ErrorCode, REG_READ=>ReadData) Représentation en ST Représentation : READ_REG_QX_Instance (ENABLE:=ReadRegQxEnable, ABORT: =ReadRegQxAbort, ADDR:=ModuleAddress, NO_REG:=NbRegistersToRead, SLAVEREG:=SlaveAddress, IEC:=IndexAdjust, DONE= >ReadRegQxSuccessfull, ACTIVE=>ReadRegQxActive, ERROR= >ReadRegQxFaulty, STATUS=>ErrorCode, REG_READ=>ReadData) 33002528.25 289 Communication READ_REG_QX : lecture de registre sur le bus EIO Description des paramètres Description des paramètres d'entrée : Paramètre Type de données Signification ENABLE BOOL Réglé sur 1 pour lire les registres. ABORT BOOL Réglé sur 1 pour abandonner l'opération en cours. ADDR ANY_ARRAY_INT Tableau contenant l'adresse de l'esclave Modbus, c'est-à-dire le résultat de la fonction ADDMX, page 80. NO_REG INT Nombre de registres à lire dans l'esclave Modbus. SLAVEREG DINT Adresse d'offset du premier registre %MW à lire dans l'esclave Modbus. IEC INT Réglage d'index appliqué au paramètre SLAVEREG. Le paramètre IEC peut prendre deux valeurs : • 0: %MWx • 1: %MWx+1 La valeur par défaut du paramètre IEC est 0 pour une cible Modicon M340. Description des paramètres de sortie : Paramètre Type de données Signification DONE BOOL Réglé sur 1 lorsque la fonction s'est exécutée correctement. ACTIVE BOOL Réglé sur 1 lorsque la fonction est en cours d'exécution. ERROR BOOL Réglé sur 1 si une erreur est détectée par le bloc fonction. STATUS WORD Fournit le code d'erreur, page 556 si une erreur est détectée par le bloc fonction. REG_READ ANY_ARRAY_WORD Lire des données (Une structure de données doit être déclarée comme une variable localisée pour recevoir la réponse de l'esclave Modbus.) 290 33002528.25 READ_REMOTE : lecture de variables distantes Communication READ_REMOTE : lecture de variables distantes Contenu de ce chapitre Description ............................................................................ 291 Introduction Cette section décrit le bloc fonction de communication READ_REMOTE. Description Description fonctionnelle La fonction READ_REMOTE est utilisée pour lire la valeur de variables distantes qui sont ensuite échangées entre applications d'automate. Lorsque la valeur d'entrée EN est TRUE : • Le bloc fonction de communication READ_REMOTE permet d'échanger des valeurs de variable entre automates. Les variables localisées et non localisées peuvent être lues. • Il est possible de lire tout type de variable distante nommée (localisée ou non localisée) sur la base du nom de la variable. • Le nombre de broches liées à la sélection des variables est fixe et ne peut pas être modifié par l'utilisateur : 14 broches pour spécifier des variables locales et 14 broches pour spécifier des variables distantes. Il n'est pas nécessaire de connecter toutes les broches d'entrée et de sortie. NOTE: Les noms de variable distante indiqués dans le paramètre R_VAR_x peuvent être modifiés au moment de l'exécution. Cela entraîne une relance du processus de vérification entre les automates local et distant. Les paramètres supplémentaires EN et ENO peuvent être configurés. Limites liées au micrologiciel des UC Le bloc READ_REMOTE est pris en charge par : 33002528.25 291 Communication READ_REMOTE : lecture de variables distantes • UC M580 avec système d'exploitation de version 3.20 ou ultérieure • UC M340 avec système d'exploitation de version 3.30 ou ultérieure Pour permettre la vérification de type via une comparaison de sommes de contrôle (voir Contrôle des types de données, page 296), l'UC distante doit utiliser la version minimale de micrologiciel suivante : • UC M580 avec système d'exploitation de version 3.20 ou ultérieure • UC M340 avec système d'exploitation de version 3.30 ou ultérieure NOTE: Il est possible d'échanger des variables avec une UC M580 ou M340 distante disposant d'un micrologiciel antérieur ou avec une autre UC prenant en charge la fonction Dictionnaire de données en désactivant la vérification de type basée sur la comparaison de somme de contrôle à l'aide du paramètre CTRL, page 294. Représentation en FBD Représentation : 292 33002528.25 READ_REMOTE : lecture de variables distantes Communication Représentation en LD Représentation : Représentation en IL Représentation : CAL READ_REMOTE_Instance CTRL:=ReadRemote_Control, ENABLE: =ReadRemote_Enable, ADDR:=Address, ABORT:=ReadRemote_Abort, R_VAR_1: =RemoteVariable_1, ..., R_VAR_14:=RemoteVariable_14, DONE= >ReadRemote_Done, ACTIVE=>ReadRemote_Active, ERROR=>ReadRemote_ ExecutionError, STATUS=>ErrorCode, EXT_STATUS=>ExtendedErrorCode, L_ VAR_1=>LocalVariable_1, ..., L_VAR_14=>LocalVariable_14) Représentation en ST Représentation : READ_REMOTE_Instance (CTRL:=ReadRemote_Control, ENABLE:=ReadRemote_ Enable, ADDR:=Address, ABORT:=ReadRemote_Abort, R_VAR_1: =RemoteVariable_1, ..., R_VAR_14:=RemoteVariable_14, DONE= >ReadRemote_Done, ACTIVE=>ReadRemote_Active, ERROR=>ReadRemote_ ExecutionError, STATUS=>ErrorCode, EXT_STATUS=>ExtendedErrorCode, L_ VAR_1=>LocalVariable_1, ..., L_VAR_14=>LocalVariable_14); 33002528.25 293 Communication READ_REMOTE : lecture de variables distantes Description des paramètres Le tableau suivant décrit les paramètres d’entrée : Paramètre Type Commentaire CTRL ARRAY_INT [0..3] Paramètre d'entrée Control : • INT [0] : TIMEOUT définissant le temps d'attente maximum jusqu'à la fin d'exécution de la fonction READ_REMOTE (millisecondes) • INT [1] : défini sur 1 si la version de micrologiciel de l'UC distante est antérieure à V3.30 pour M340 ou à V3.2 pour M580 NOTE: La vérification de type via la somme de contrôle du type n'est pas effectuée dans le cas de INT [1]. Cette vérification s'appuie uniquement sur la longueur du type (par exemple, les types des variables locale et distante sont considérés comme cohérents s'ils ont la même taille en octets). ENABLE BOOL La fonction est exécutée lorsque ce paramètre est ON. ABORT BOOL La fonction n'est pas exécutée (abandon) lorsque ce paramètre est ON. ADDR ANY_ARRAY_INT Tableau contenant l'adresse de l'automate, résultat de : R_VAR_i STRING • la fonction ADDM pour M340 ; • la fonction ADDMX pour M580 Identification (nom symbolique) d'une variable distante. Le tableau suivant décrit les paramètres de sortie : Paramètre Type Commentaire DONE BOOL La fonction demandée est correctement exécutée et validée. ACTIVE BOOL TRUE si l'exécution du bloc fonction est en cours (lecture des descripteurs de variable distante et de leurs valeurs). ERROR BOOL Un nouvel état non nul est reçu. STATUS INT Fournit le code d'erreur, page 556 si le bloc fonction détecte une erreur. NOTE: La valeur du paramètre STATUS est 0 uniquement si la valeur du paramètre EXT_STATUS est 0 pour chaque accès de variable. 294 33002528.25 READ_REMOTE : lecture de variables distantes Communication Paramètre Type Commentaire EXT_STATUS ARRAY [1..14] OF INT Fournit le code d'erreur étendu, page 556 si une erreur est détectée par le bloc fonction : un état pour chaque accès de variable. L_VAR_i ANY Variable locale utilisée pour stocker la valeur lue dans une variable distante. NOTE: Le type d'une variable locale doit correspondre au type d'une variable distante (voir Contrôle des types de données ci-après). Règles d'utilisation Cette fonction prend en charge les données distantes suivantes : • Variables élémentaires • Tableaux • Instances DDT sans références (indirection de type =1) Les types de syntaxe suivants sont pris en charge : • MyVar • MyArray[2] • MyDdtArray[4].elem1 NOTE: L'index Array doit être une valeur immédiate. NOTE: Une variable distante est adressée par son nom ou son nom de chemin. Par exemple, MyVar[2].elem1. Le bloc fonction de communication READ_REMOTE lit d'abord la définition, l'adresse et le type des variables distantes ; il lit ensuite les variables elles-mêmes. Cette règle s'applique également aux modifications en ligne des données du serveur d'automate, par exemple la suppression d'une variable ou d'une instance de bloc fonction. La fonction Dictionnaire de données doit être activée à la fois par un automate client et par un automate serveur. Le bloc fonction de communication READ_REMOTE doit être invoqué et exécuté à partir de la tâche MAST, FAST, AUX0, ou AUX1. Le jeu de caractères autorisé pour une variable distante est Standard. Si un caractère étendu ou Unicode est utilisé pour une variable distante, une erreur est détectée et le message le serveur OFS affiche un message indiquant que la variable est introuvable. Si l'option Variables IHM uniquement est utilisée dans le Dictionnaire de données (Outils > Options du projet > Données intégrées de l'automate), l'attribut Variable IHM 33002528.25 295 Communication READ_REMOTE : lecture de variables distantes doit être sélectionné pour les variables échangées avec le bloc fonction READ_REMOTE. Cette opération est effectuée dans une application locale ou une application distante. NOTE: L'option Variables IHM uniquement ne doit pas nécessairement être configurée à l'identique dans les applications locale et distante. Contrôle des types de données ATTENTION FONCTIONNEMENT IMPRÉVU DE L'APPLICATION Vérifiez que le type de variable référencé par le paramètre R_VAR_x correspond au type de variable affecté au paramètre L_VAR_x. Le non-respect de ces instructions peut provoquer des blessures ou des dommages matériels. Le bloc fonction de communication READ_REMOTE lit des variables dont les types de données sont identiques. Le contrôle du type de données entre variables locales et distantes est effectué par défaut et s'applique aux types suivants : • EDT • DDT • Tableau (ARRAY) de DDT • Tableau (ARRAY) anonyme Le contrôle de type d'utilisateur s'appuie sur la somme de contrôle et sur la longueur des types. Les attributs exportés du format source défini sont vérifiés au cours du contrôle de type basé sur l'égalité des sommes de contrôle. Un contrôle minimum de cohérence basé sur la longueur des types est systématiquement effectué pour vérifier que les variables locale et distante présentent la même taille en octets. Il n'y a pas de contrôle par nom de type en raison de la différence entre les définitions utilisées par l'automate client et le serveur. Pour désactiver le contrôle de type de données, utilisez les paramètre CTRL. Seul le contrôle de type de données basé sur l'égalité des sommes de contrôle de type peut être désactivé via le paramètre CTRL. 296 33002528.25 READ_REMOTE : lecture de variables distantes Communication NOTE: Les types de données STRING et STRING[n] sont considérés identiques même si la longueur de chaîne est différente. Seuls les caractères correspondant à la longueur minimum des variables locale et distante sont échangés. La troncature de chaîne concerne uniquement les variables de type chaîne (STRING ou STRING[n]). Cette règle ne s'applique pas aux variables de type chaîne situées à l'intérieur des DDT. NOTE: Les gammes d'UC Premium et Quantum ne présentent pas le même schéma d'alignement mémoire que les gammes M580 et M340. Les variables de type DDT ou tableau peuvent ne pas s'échanger correctement, en indiquant le code 16#1309 (nonconcordance de longueur) dans le champ EXT_STATUS correspondant. Pour éviter un échange de données incorrect, vous devez modifier le type DDT dans Premium ou Quantum. Pour plus d'informations, reportez-vous au chapitre DDT : Règles de mappage. Control Expert peut indiquer que l'alignement semble différent lors de la compilation. Pour activer cette option, modifiez la propriété La compatibilité du mappage DDT génère dans Paramètres du projet. Comportement du mode de redondance d'UC En mode de redondance d'UC, READ_REMOTE s'exécute de la même manière que les autres blocs fonction de communication. La règle de programmation décrite dans Bloc fonction de communication asynchrone (voir Modicon M580 - Redondance d'UC - Guide de planification du système pour architectures courantes) doit être suivie. Lors d'un basculement, l'adresse IP de l'automate cible est basculée dans l'automate serveur tandis que la requête en cours est relancée en mode de redondance. La communication avec le bloc fonction READ_REMOTE est ainsi restaurée et se poursuit normalement. NOTE: La définition d'une variable distante est communiquée à l'automate redondant en même temps que l'état interne du bloc fonction de communication READ_REMOTE. Simulateur d'automate Le bloc fonction de communication READ_REMOTE peut être utilisé avec le simulateur d'automate de requêtes de communication en cours. Voir EcoStruxure™ Control Expert Simulateur d'automate pour plus d’informations. Limites Cette fonction ne prend pas en charge les données suivantes mappées sur le type de données ANY : • Instances IODDT 33002528.25 297 Communication READ_REMOTE : lecture de variables distantes • Instances de DDT d'équipement contenant des types EBOOL • Instances de DDT comprenant une référence (indirection de type =1) • Tableaux de types EBOOL, EFB et DFB NOTE: Le comportement est identique pour le paramètre ANY. Autres limites : • Le nombre maximum de variables est 14 • La taille de la requête ne doit pas dépasser 1 Ko. Autrement dit : • 298 ◦ La taille totale des données échangées doit être inférieure à 1 Ko ◦ La somme de toutes les chaînes décrites dans tous les chemins de variable doit être inférieure à 1010 octets ◦ Si la taille de la requête est supérieure à 1 Ko, une erreur d'état est générée Le temps de réponse dépend du temps de cycle de l'automate et il est limité à la valeur de timeout indiquée dans le premier mot du paramètre CTRL. 33002528.25 READ_SDO : objet de données du service de lecture Communication READ_SDO : objet de données du service de lecture Contenu de ce chapitre READ_SDO : lecture de l'objet de données du service.............. 299 Objet de ce chapitre Ce chapitre décrit la fonction de communication READ_SDO. READ_SDO : lecture de l'objet de données du service Description de la fonction Le bloc fonction READ_SDO effectue une lecture (échange explicite) sur l'équipement (SDO) à partir de l'application automate. Ce bloc fonction permet d'accéder au code d'annulation lorsque la commande SDO échoue (uniquement si le bus de terrain est en mode RUN et uniquement vers les équipements configurés). 33002528.25 299 Communication READ_SDO : objet de données du service de lecture Représentation en FBD Représentation : 300 33002528.25 READ_SDO : objet de données du service de lecture Communication Représentation en LD Représentation en IL Représentation : CAL READ_SDO_Instance (ENABLE := EnableREAD_SDO, ABORT := AbortREAD_ SDO, ADDR := DataStructureAddress, NODE := NodeNumber, INDEX := SDOIndex, SUBINDEX := SDOSubIndex, OFFSET := FirstSDO, NB_IN := DataNumberIn, DONE => ReadSDOSuccessful, ACTIVE => ReadSDOActive, ERROR => ReadSDOFaulty, STATUS => ErrorCode, SDOABORTCODE => AbortCode, NB_OUT => DataNumberOut, DATA => SDODataToRead) Représentation en ST Représentation : READ_SDO_Instance (ENABLE := EnableREAD_SDO, ABORT := AbortREAD_SDO, ADDR := DataStructureAddress, NODE := NodeNumber, INDEX := SDOIndex, SUBINDEX := SDOSubIndex, OFFSET := FirstSDO, NB_IN := DataNumberIn, DONE => ReadSDOSuccessful, ACTIVE => ReadSDOActive, ERROR => ReadSDOFaulty, 33002528.25 301 Communication READ_SDO : objet de données du service de lecture STATUS => ErrorCode, SDOABORTCODE => AbortCode, NB_OUT => DataNumberOut, DATA => SDODataToRead) Description des paramètres Le tableau suivant décrit les paramètres d’entrée : Paramètre d'entrée Type de données Description ENABLE BOOL ON : l'opération est lancée. ABORT BOOL ON : l'opération en cours est annulée. ADDR ANY_ARRAY_INT Tableau contenant l'adresse de l'entité de destination de l'opération d'écriture, résultat de la fonction ADDMX. NODE BYTE Octet utilisé pour sélectionner un équipement esclave NMT particulier sur le réseau CANopen (16#01 à 16#7F). INDEX INT Deux octets utilisés pour accéder à un objet dans un équipement serveur de SDO CANopen. SUBINDEX BYTE Octet utilisé pour accéder à un sous-objet dans un équipement serveur de SDO CANopen. OFFSET INT Deux octets indiquant l'offset de début dans l'objet sélectionné. Ce paramètre peut être non nul lors des transferts de SDO segmentés. NOTE: non utilisé en cas d'adressage d'un module EtherNet/IP (adresse avec suffixe CIP). NB_IN INT Deux octets indiquant le nombre souhaité de valeurs à lire (en octets). NOTE: • Si ce paramètre est réglé sur 0, le nombre de données à lire correspond à la taille de la variable associée au paramètre de sortie DATA. • En cas d'utilisation avec le module BMECXM0100, ce paramètre d'entrée est égal à 0, quelle que soit la valeur définie. Le tableau suivant décrit le paramètre de sortie : 302 Paramètre de sortie Type de données Description DONE BOOL ON : l'opération a abouti. ACTIVE BOOL ON : l'opération est en cours. ERROR BOOL ON : l'opération est annulée sans avoir abouti. STATUS WORD Fournit le code d'erreur, page 556 si le bloc fonction détecte une erreur. 33002528.25 READ_SDO : objet de données du service de lecture Communication Paramètre de sortie Type de données Description SDOABORTCODE DWORD Code d'annulation de SDO, page 579 si STATUS = 16#4007. NB_OUT INT Taille des données (en BYTES) renvoyées dans le paramètre de sortie DATA. DATA ANY_ARRAY_BYTE Lit les données. 33002528.25 303 Communication READ_VAR : Lecture de variables READ_VAR : Lecture de variables Contenu de ce chapitre Description ............................................................................ 304 Ecran de saisie assistée ......................................................... 311 Exemple d'utilisation sur un bus Uni-Telway ............................. 314 Exemple de lecture de bits...................................................... 316 Exemple d'utilisation dans un réseau....................................... 317 Exemple de lecture de mots via la liaison série des processeurs Modicon M340.................................................... 320 Exemple de vérification d'exécution......................................... 323 Introduction Ce chapitre décrit la fonction de communication READ_VAR. Description Description fonctionnelle La fonction READ_VAR permet de lire la valeur d'un ou de plusieurs objets langage : • Bits internes • Mots internes Assurez-vous que les objets à lire sont consécutifs. Ils peuvent se trouver dans une UC distante ou un équipement connecté à une voie de communication. Sur les UC Modicon M340 et M580, la fonction READ_VAR peut lire jusqu'à 2 000 bits consécutifs dans un équipement distant. Pour les automates Premium, la fonction READ_VAR peut lire jusqu'à 1 000 bits consécutifs dans un équipement distant, quels que soient l'équipement et le protocole utilisés (UniTelway ou Modbus/Jbus). NOTE: Pour les automates Premium uniquement, la lecture de plus de 1 000 bits nécessite le recours à fonction SEND_REQ. 304 33002528.25 READ_VAR : Lecture de variables Communication AVERTISSEMENT INCOMPATIBILITE DES DONNEES ECHANGEES Les alignements des structures de données ne sont pas identiques pour les modules Premium/Quantum et M340/M580. Il est donc nécessaire de vérifier la compatibilité des données échangées. Voir DDT : Règles de mappage (voir ™EcoStruxure Control Expert Langages de programmation et structure - Manuel de référence) pour les règles d'alignement. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Les paramètres supplémentaires EN et ENO peuvent être configurés. Représentation en FBD Représentation : 33002528.25 305 Communication READ_VAR : Lecture de variables Représentation en LD Représentation : Représentation en IL Représentation : LD Address READ_VAR Object_Type, First_Object, Object_Number, Management_ Param, Receiving_Array Représentation en ST Représentation : READ_VAR(Address, Object_Type, First_Object, Object_Number, Management_Param, Receiving_Array); Description des paramètres Le tableau suivant décrit les paramètres d’entrée : 306 33002528.25 READ_VAR : Lecture de variables Communication Paramètre Type Commentaire ADR ARRAY [0..5] OF INT pour Premium Instructions spécifiques par plate-forme matérielle : • ARRAY [0..7] OF INT pour Modicon M340 et M580 Premium : ◦ L'adresse de la voie (en mode caractères) de réception du message est indiquée par la fonction ADDR, page 88. ◦ Adresse de l’entité destinataire de l’échange. Les adresses suivantes sont interdites : • {Réseau.Station}APP, • {Réseau.Station}APP.num, • • Modicon M340 : ◦ L'adresse de la voie (en mode caractères) de réception du message est indiquée par la fonction ADDM, page 73. ◦ La syntaxe de l'adresse est du type suivant : ADDM ('r.m.c.nœud'). Modicon M580 : ◦ OBJ STRING Adresse de l'entité cible de l'opération de lecture, résultat de la fonction ADDMX, page 80. Type des objets à lire pour l'automate Premium : • ’%M’: bits internes • ’%MW’: mots internes • ’%S’: bits système • ’%SW’: mots système • ’%I’: bits d'entrée • ’%IW’ : mots d'entrée Type des objets à lire pour les UC Modicon M340 et M580 : • ’%M’: bits internes • ’%MW’ : mots internes • ’%I’ : bits d'entrée • ’%IW’ : mots d'entrée NUM DINT Index du premier objet à lire. NB INT Nombre d'objets à lire. Le tableau suivant décrit les paramètres d’entrée/sortie : 33002528.25 307 Communication READ_VAR : Lecture de variables Paramètre Type Commentaire GEST ARRAY [0..3] OF INT Table de gestion de l'échange composée des mots suivants : • Mot de rang 1 : mot géré par le système et composé de 2 octets : ◦ octet de poids fort : numéro d'échange, ◦ octet de poids faible : bit d'activité (rang 0) et bit d'annulation (rang 1) NOTE: Le bit d'annulation n'est disponible que pour les automates Modicon M340 et M580. • Mot de rang 2 : mot géré par le système et composé de 2 octets : ◦ octet de poids fort : compte rendu d'opération ◦ octet de poids faible : compte rendu de communication • Mot de rang 3 : mot géré par l'utilisateur et qui définit le temps de réponse maximum en utilisant une base de temps de 100 ms. • Mot de rang 4 : mot géré par le système et qui définit la longueur de l'échange. Pour plus d'informations, consultez la section Structure des paramètres de gestion, page 39. Le tableau suivant décrit les paramètres de sortie : Paramètre Type Commentaire RECP ARRAY [n..m] OF INT Tableau de mots contenant la valeur des objets lus. NOTE: la taille des données reçues (en octets) est automatiquement écrite par le système dans le quatrième mot du tableau de gestion. Règles d'utilisation Assurez-vous de saisir les types d'objet de manière cohérente. Indiquez les entrées tout en minuscules ou tout en majuscules. Sinon, la fonction renvoie un rapport égal à 16#06 (paramètres spécifiques incorrects). Pour les automates Micro, Premium ou Atrium recevant la fonction READ_VAR, l'accès en lecture seule aux bits internes présente les particularités suivantes : • 308 La valeur de forçage des bits est renvoyée dans la réponse. 33002528.25 READ_VAR : Lecture de variables • • Communication La lecture de 1 bit comprend par conséquent 2 octets de réponse : ◦ Le premier contient la valeur des 8 bits à partir de celui demandé. ◦ Le deuxième indique si ces bits ont été forcés. Pour lire l'un des huit derniers bits de la mémoire, il est nécessaire de lire les 8 derniers. Sinon, la fonction renvoie un rapport d'opération 16#01. Cette dernière particularité s'applique également aux automates Modicon M340 et M580. NOTE: Assurez-vous de prévoir de l'espace pour les octets indiquant le forçage dans la table de réception. Sinon, le code d'erreur détectée 16#03 est renvoyé dans le rapport. NOTE: Pour les automates Modicon M340/M580, les fonctions READ_VAR et WRITE_ VAR n'ont pas accès aux bits forcés, car le protocole Modbus ne les prend pas en charge. Transactions simultanées Le tableau ci-après fournit les capacités de chaque voie de communication pour traiter simultanément les transactions en fonction des diverses configurations sur les automates Micro et Premium Configuration Micro TSX 57 10 TSX 57 20 TSX 57 23/30/40/ 45/55, PCX 57, PMX 57 TSX 57 46/56 Port terminal du maître Uni-Telway 4 4 4 4 8 Liaison PCMCIA ou SCY du maître UniTelway 1 8 8 8 8 Port terminal de l'esclave client UniTelway 4 1 1 1 8 Liaison PCMCIA ou SCY de l'esclave client Uni-Telway 1 1 1 1 1 Port terminal de l'esclave serveur UniTelway 4 4 4 4 4 Liaison PCMCIA ou SCY de l'esclave serveur Uni-Telway 4 6 6 6 6 Port terminal Modbus 4 - - - - Liaison PCMCIA ou SCY Modbus 4 8 8 8 8 Bloc terminal en mode caractère 1 1 1 1 1 Liaison PCMCIA ou SCY en mode caractère 4 8 8 8 8 PCMCIA CANopen - 10 10 10 10 Liaison PCMCIA ou SCY Fipway 4 8 8 8 8 33002528.25 309 Communication READ_VAR : Lecture de variables Configuration Micro TSX 57 10 TSX 57 20 TSX 57 23/30/40/ 45/55, PCX 57, PMX 57 TSX 57 46/56 Modbus Plus 4 4 4 4 4 Ethernet - 16 16 16 16 Ethernet intégré - - - - 64 Capacités de chaque voie de communication à traiter simultanément des transactions selon différentes configurations sur les automates Modicon M340 : Configuration BMX P34 1000 BMX P34 2000 BMX P34 2010/ 20102 BMX P34 2020 BMX P34 2030/ 20302 CANopen intégré - - 16 - 16 Ethernet intégré - - - 16 16 Port série principal ModBus 8 16 16 16 - Nombre maximal de requêtes client par scrutation sur les UC (CPU) M580 autonomes : Configuration Ethernet Référence d'UC (BME P58 ...) 10•0 20•0 30•0 40•0 5040 6040 16 32 48 80 80 96 Nombre maximal de requêtes client par scrutation sur les UC (CPU) M580 redondantes : Configuration Ethernet Référence d'UC (BME H58 ...) 2040 4040 6040 32 80 96 Nombre maximal de requêtes traitées par scrutation sur les UC (CPU) M580 autonomes : Configuration 310 Référence d'UC (BME P58 ...) 10•0 20•0 30•0 40•0 5040 6040 UC de toute origine (1) 16 24 32 40 48 64 Ethernet intégré 8 12 16 24 (2) 32 32 33002528.25 READ_VAR : Lecture de variables Configuration Communication Référence d'UC (BME P58 ...) USB 10•0 20•0 30•0 40•0 5040 6040 4 4 4 4 4 4 1. %SW90 (mot système) permet d'ajuster le nombre de requêtes traitées par cycle. Le nombre minimum de requêtes traitées par cycle est de 2 pour réduire la gigue au niveau de l'UC. 2. Le nombre maximal de requêtes est de 16 pour l'UC M580 BME P58 40•0 avec le micrologiciel 1.20 ou version antérieure. Nombre maximal de requêtes traitées par scrutation sur les UC (CPU) M580 redondantes : Configuration Référence d'UC (BME H58 ...) 2040 4040 6040 24 40 64 Ethernet intégré 12 24 32 USB 4 4 4 UC de toute origine (1) 1. %SW90 (mot système) permet d'ajuster le nombre de requêtes traitées par cycle. Le nombre minimum de requêtes traitées par cycle est de 2 pour réduire la gigue au niveau de l'UC. NOTE: Assurez-vous que le nombre maximum de requêtes simultanées indiqué dans tous les tableaux prend en compte le nombre maximum de requêtes simultanées que chaque UC peut gérer par cycle, en tant que client et en tant que serveur (voir Modicon M580 - Manuel de référence du matériel). Ecran de saisie assistée Présentation Pour cette fonction de communication, vous pouvez avoir recours à l'écran de saisie assistée. Notez que cet écran n'est pas disponible pour les Modicon M340/M580. NOTE: les symboles de variable sont acceptés dans les différents champs de l'écran. 33002528.25 311 Communication READ_VAR : Lecture de variables Figure La capture suivante est un exemple d'écran de saisie assistée de la fonction : Adresse Pour les automates Premium, les types d'objets possibles sont les suivants : • ADDR(STRING), • ARRAY [0..5] OF INT. NOTE: si vous saisissez une valeur directement dans le champ, le bouton de saisie d'adresse assistée devient gris. Type d'objet à lire Pour les automates Premium, les choix possibles sont les suivants : • %M pour lire des bits internes. • %MW pour lire des mots internes. • %S pour lire des bits système. • %SW pour lire des mots système. • %I pour lire des bits d'entrée. • %W pour lire des bits d'entrée. NOTE: faites votre choix parmi les solutions proposées dans le menu déroulant. 312 33002528.25 READ_VAR : Lecture de variables Communication Adresse du premier objet à lire Les objets possibles sont de type DINT : • variables • constantes • valeur immédiate NOTE: lorsque vous saisissez une constante, un champ de saisie correspondant apparaît. Lorsque vous saisissez une variable, elle peut être affectée ou non. Nombre d'objets consécutifs à lire Les objets possibles sont de type INT : • variables • constantes • valeur immédiate NOTE: lorsque vous saisissez une constante, un champ de saisie correspondant apparaît. Lorsque vous saisissez une variable, elle peut être affectée ou non. Zone de réception La zone de réception est un tableau d'entiers. La taille de ce tableau dépend du nombre d'objets à lire. Le tableau d'entiers peut être affecté ou non. Compte rendu Le compte rendu est un tableau de 4 entiers. NOTE: veillez à ne pas utiliser plusieurs zones de mémoire identiques pour les tables de rapport, car la fonction de lecture de variables risque de ne pas fonctionner. 33002528.25 313 Communication READ_VAR : Lecture de variables Exemple d'utilisation sur un bus Uni-Telway Présentation L'automate maître doit lire les mots internes %MW100 à %MW109 de la station située à l'adresse 6 sur un bus Uni-Telway. Les valeurs des mots lus sont triées par rapport au mot interne %MW10. Les paramètres de gestion sont stockés par rapport à %MW40. Figure Les deux stations sont reliées par un bus Uni-Telway. 314 33002528.25 READ_VAR : Lecture de variables Communication Programmation Programmation en LD : Paramètres de la requête : Paramètres ’0.0.0.6’ Description • 0 : rack • 0 : module • 0 : voie 0 • 6 : adresse cible ’%MW’ Type d'objet (mot interne) 100 Adresse du premier objet 10 Nombre d'objets consécutifs %MW40:4 Compte rendu %MW10:10 Contenu de la réponse 33002528.25 315 Communication READ_VAR : Lecture de variables Exemple de lecture de bits Présentation Sur les automates Modicon M340, les bits forcés ne sont pas accessibles par les fonctions READ_VAR et WRITE_VAR, car le protocole Modbus ne le permet pas. Par conséquent, les instructions suivantes concernant les bits forcés ne peuvent pas être appliquées aux automates Modicon M340. Les exemples suivants illustrent la fonction de communication READ_VAR pour la lecture de bits. La table de réception contient de manière consécutive les valeurs des bits, ainsi que l'indication de forçage. Lecture de 32 bits internes Dans ST, la syntaxe de la fonction de lecture des bits internes est la suivante : READ_VAR (ADDR(‘{20.1}0.5.1.3’),‘%M’, 0, 32, %MW100:4, %MW50:4); La table de réception doit contenir 8 octets (4 mots), 4 octets pour la valeur et 4 octets pour l'indication de forçage. Valeur Forçage Mot Octet 3 Octet 2 Octet 1 Octet 0 %MW100 0000 0000 1100 1100 %MW101 1111 1111 0000 1111 %MW102 0000 0000 0101 0101 %MW103 0000 0000 0000 1111 Le forçage peut être effectué pour chaque bit %MW102 ou %MW103 défini sur 1. La valeur de forçage est celle du bit lu correspondant. Exemple : 316 Valeur des 4 premiers bits Forçage des 4 premiers bits Description (octet 0 du mot %MW100) (octet 0 du mot %MW102) 0 1 Le bit est forcé sur 0 0 0 Le bit n'est pas forcé 1 1 Le bit est forcé sur 1 1 0 Le bit n'est pas forcé 33002528.25 READ_VAR : Lecture de variables Communication Lecture de 18 bits internes Dans ST, la syntaxe de la fonction de lecture des bits internes est la suivante : READ_VAR (ADDR(‘{20.1}0.5.1.3’),‘%M’, 0, 18, %MW100:3, %MW50:4); La table de réception doit contenir 3 mots (ou 6 octets). Pour obtenir la valeur de 18 bits, 3 octets plus 3 octets supplémentaires sont nécessaires pour contenir la valeur de forçage de 18 bits. Exemple d'utilisation dans un réseau Présentation La station 2 du réseau 20 doit lire un tableau de 5 mots %MW0 à %MW4 de l'esclave UniTelway, adresse réseau 20, station 1, module de communication TSX SCM 2116 à l'emplacement 5, voie 1 dans le module de communication, adresse de serveur Ad0 = 3. 33002528.25 317 Communication READ_VAR : Lecture de variables Figure Les deux stations sont connectées via un réseau Fipway. 318 33002528.25 READ_VAR : Lecture de variables Communication Programmation Programmation en LD : Paramètres de la requête : Paramètres ADDR(‘{20.1}0.5.1.3’) Description • {20.1} : réseau 20, station 1 • 0 : rack • 5 : module • 1 : voie 1 • 3 : lecture de l'adresse esclave cible ‘%MW’ Type d'objet (mot interne) 0 Adresse du premier objet 5 Nombre d'objets consécutifs %MW50:4 Table de gestion %MW20:5 Contenu de la réponse 33002528.25 319 Communication READ_VAR : Lecture de variables Exemple de lecture de mots via la liaison série des processeurs Modicon M340 Présentation Cet exemple utilise deux processeurs Modicon M340 qui communiquent via une liaison série Modbus. L'automate maître Modbus doit lire les mots internes %MW100 à %MW109 de l'automate esclave Modbus. Description de l'exemple Les valeurs des mots lus sont triées par rapport au mot interne %MW10. L'exemple ci-après utilise des variables non localisées et illustre la réception de données dans une table de 10 mots non localisée nommée Tab_recp (déclarée comme ARRAY [0..9] OF INT). Les paramètres de gestion se trouvent dans un tableau de 4 entiers nommé Management_Parameter (déclaré comme ARRAY [0..3] OF INT). Dans cet exemple, le numéro de l'esclave Modbus est 7, de sorte que le paramètre ADDM d'entrée est ‘0.0.0.7’ : 320 • 0 : numéro du rack du processeur égal à 0 • 0 : numéro d'emplacement du processeur dans le rack égal à 0 (le numéro d'emplacement d'un processeur Modicon M340 est toujours 0) • 0 : numéro de voie égal à 0 (la liaison série d'un processeur Modicon M340 est toujours la voie 0) • 7 : le numéro d'esclave configuré est 7 33002528.25 READ_VAR : Lecture de variables Communication Figure Les deux processeurs Modicon M340 sont connectés via une liaison Modbus : 33002528.25 321 Communication READ_VAR : Lecture de variables Programmation Programmation en LD : Les paramètres de requête sont les suivants : Paramètres ADDM(‘0.0.0.7’) 322 Description • 0 : numéro du rack du processeur esclave • 0 : numéro d'emplacement du processeur esclave • 0 : numéro de voie (numéro de port série) • 7 : numéro d'esclave configuré ’%MW’ Type d'objet (mot interne) 100 Adresse du premier objet à lire 10 Nombre d'objets consécutifs à lire Tab_recp Contenu de la réponse Management_Parameter Table de gestion 33002528.25 READ_VAR : Lecture de variables Communication Exemple de vérification d'exécution Présentation L'exemple ci-après illustre la fonction READ_VAR avec la vérification des paramètres de gestion. Programmation de la fonction Programmation en ST : IF NOT %M21 AND %I0.1.2 THEN %MW210:4 := 0; %MW212 := 50; READ_VAR(ADDR('0.3.1.7'),'%MW',20,1,%MW210:4,%MW1701:1); SET %M21; END_IF; • le bit d'entrée %I0.1.2 contrôle la fonction, • le bit interne %M21 permet de tester l'activité de la fonction • %MW210:4 := 0; définit la table de gestion sur la valeur 0 • MW212 := 50; initialise la valeur timeout sur 5 secondes NOTE: La syntaxe READ_VAR(ADDM('0.3.1.7'),'%MW',20,1,%MW210:4,% MW1701:1); doit être utilisée pour les automates Modicon M340, car la fonction ADDR n'est pas compatible avec ces automates. Programmation de la vérification de l'échange Programmation en ST : IF %M21 AND NOT %M210.0 THEN INC %MW214; IF %MW211 = 0 THEN INC %MW215; ELSE SET %Q0.2.2; INC %MW216; %MW217 := %MW211; END_IF; END_IF; • %MW214 compte le nombre d'échanges, 33002528.25 323 Communication 324 READ_VAR : Lecture de variables • %MW215 compte le nombre d'échanges corrects, • %MW216 compte le nombre d'échanges sources d'erreurs, • %MW217 stocke le message d'erreur, • %Q0.2.2 indique l'échec d'un échange. 33002528.25 SEND_EMAIL : envoi d'un message électronique Communication SEND_EMAIL : envoi d'un message électronique Contenu de ce chapitre Envoi de messages électroniques ........................................... 325 Objet de ce chapitre Ce chapitre décrit le bloc Send_Email. Envoi de messages électroniques Description de la fonction La fonction SEND_EMAIL permet d'envoyer un message électronique avec un automate Modicon M340. Le service SEND_EMAIL est limité au port Ethernet intégré et aux modules BMX NOC 0401. Il n'est pas pris en charge par les modules BMX NOE. NOTE: Pour que le service SEND_EMAIL fonctionne correctement, l'adresse IP du serveur SMTP et les destinations utilisables des messages doivent d'abord être configurées dans le logiciel Control Expert. Les paramètres supplémentaires EN et ENO peuvent être configurés. 33002528.25 325 Communication SEND_EMAIL : envoi d'un message électronique Représentation en FBD Représentation : Représentation en LD Représentation : Représentation en IL CAL SEND_EMAIL (ADR := Channel_Address, HEAD_KEY := Header_Number, SUBJ_STR := Str_Email_Subject, BODY_STR := Str_Email_Body, GEST := Management_Param); 326 33002528.25 SEND_EMAIL : envoi d'un message électronique Communication Représentation en ST SEND_EMAIL (ADR := Channel_Address, HEAD_KEY := Header_Number, SUBJ_STR := Str_Email_Subject, BODY_STR := Str_Email_Body, GEST := Management_Param); Description des paramètres Le tableau suivant décrit les paramètres d’entrée : Paramètre Type Description Channel_Address ARRAY [0..7] OF INT Adresse ou résultat de la fonction ADDM. Utilise la fonction élémentaire ADDM pour composer ce champ. Fonction ADDM, page 73 Pour envoyer un message électronique via le port Ethernet d'une UC, spécifiez ADDM(‘0.0.3’). Pour envoyer un message électronique via un module BMX NOC configuré dans le rack 0, à l'emplacement 4 et sur la voie 0, spécifiez ADDM(‘0.4.0’). Header_Number INT Correspond aux adresses de messagerie gérées avec le logiciel Control Expert (seules les valeurs 1, 2 et 3 sont acceptées). Str_Email_Subject STRING Représente la partie dynamique de l'objet qui est ajoutée à la fin de la chaîne d'objet statique. Str_Email_Body STRING Représente le corps du message électronique. Le tableau suivant décrit les paramètres d’entrée/sortie : Paramètre Type Commentaire Management_Param ARRAY [0..3] OF INT Tableau de gestion des échanges, page 39. Tableau de 4 mots utilisé pour contrôler les paramètres d'exécution. Le paramètre de longueur (4e mot du tableau de gestion) est un paramètre de sortie. Ce mot est écrit par le système et indique la longueur totale du message électronique (en-tête + corps). La longueur totale maximale est de 1024 caractères. 33002528.25 327 Communication SEND_EMAIL : envoi d'un message électronique Règles d'envoi de messages électroniques (Send Email) Après l'exécution de la fonction élémentaire SEND_EMAIL, le bit d'activité est sur 1 jusqu'à ce que le message électronique soit envoyé. Cependant, le message ne fait l'objet d'aucun accusé de réception. Si un timeout est programmé (3e mot de gestion <> 0), le message électronique est annulé s'il n'a pas été envoyé pendant la période programmée. Dans ce cas, le deuxième mot de gestion reçoit une réponse négative : Echange interrompu en cas de timeout (0x01). Caractéristiques d'exécution : le système Modicon M340 peut gérer quatre requêtes d'envoi simultanées, émanant de quatre fonctions élémentaires. Si une cinquième fonction élémentaire tente d'envoyer un message, elle reçoit un message d'erreur Pas de ressources système processeur (0x0B), jusqu'à ce que l'une des ressources soit libérée. Exemple de service d'envoi de message électronique IF (default_id = 0) and FE(default_state) THEN (* POMPE OK *) SEND_EMAIL(ADDM('0.0.3'), 1, 'Pompe n°3 OK', ' ' , Management_ Param); ELSEIF RE(default_state) THEN (* POMPE DEFECTUEUSE *) str_default := INT_TO_STRING(default_id); str_Email_Body := CONCAT_STR(' Default = ', str_default); SEND_EMAIL(ADDM('0.0.3'), 1, 'Pompe n°3 défectueuse', str_Email_ Body, Management_Param); END_IF; 328 33002528.25 SEND_REQ : Envoi de requêtes Communication SEND_REQ : Envoi de requêtes Contenu de ce chapitre Description ............................................................................ 329 Liste de requêtes UNI-TE ....................................................... 333 Ecran de saisie assistée ......................................................... 339 Exemple d'envoi d'une requête UNI-TE ................................... 341 Modification des paramètres IP avec SEND_REQ (exemple).............................................................................. 343 Utilisation de la fonction SEND_REQ ...................................... 344 Objet de ce chapitre Ce chapitre décrit la fonction SEND_REQ. Description Description de la fonction La fonction SEND_REQ permet de coder et d'envoyer toutes les requêtes UNI-TE et Modbus/ Jbus, et de recevoir les réponses associées. Le codage des requêtes UNI-TE est détaillé dans le manuel de référence : Manuel utilisateur des automates Premium et Atrium avec les modules réseau Ethernet Unity Pro. Le codage des requêtes Modbus/Jbus est détaillé dans le manuel TSX DG MDB. Les requêtes Modbus communes à tous les équipements Schneider sont présentées dans le manuel Architecture et services de communication (voir Architectures et services de communication, Manuel de référence). NOTE: cette fonction ne permettait pas d'envoyer des requêtes Modbus/Jbus via un module ETY Premium. Les paramètres supplémentaires EN et ENO peuvent être configurés. 33002528.25 329 Communication SEND_REQ : Envoi de requêtes Représentation en FBD Représentation en LD Représentation en IL Adresse LD SEND_REQ Request_Code, Data_to_Send, Management_Param, Received_ Data Représentation en ST SEND_REQ(Address, Request_Code, Data_to_Send, Management_Param, Received_Data); 330 33002528.25 SEND_REQ : Envoi de requêtes Communication Description des paramètres Le tableau suivant décrit les paramètres d'entrée : Paramètre Type Commentaire Adresse ARRAY [0... 5] OF INT Adresse de l’entité destinataire de l’échange. Le type de l'adresse dépend de la requête envoyée. Il est donc possible, par exemple, de diffuser la requête RUN (ALL, 0 pour le module TSX SCY 11601), mais il est impossible d'envoyer une requête d'identification à plusieurs équipements simultanément. Request_Code INT Requête à envoyer à l'équipement cible, également appelé serveur. Les requêtes peuvent être de type UNITE, page 333 ou Modbus. Data_to_Send ARRAY [n... m] OF INT Tableau d'entiers à envoyer à l'équipement cible de la requête. Ce tableau dépend de la requête envoyée. Sa longueur minimale doit être de 1 élément, même si la requête utilisée ne nécessite pas l'envoi de données (par exemple, une requête d'identification). Remarque : il est impératif que la longueur des données à envoyer (en octets) soit affectée au quatrième mot du tableau de gestion avant de lancer la fonction, pour que celle-ci puisse s'exécuter correctement. Le tableau suivant décrit le paramètre d'entrée/sortie : Paramètre Type Commentaire Management_Param ARRAY [0... 3] OF INT Tableau de gestion des échanges, page 39 Le tableau suivant décrit les paramètres de sortie : 33002528.25 331 Communication SEND_REQ : Envoi de requêtes Paramètre Type Commentaire Received_Data ARRAY [n... m] OF INT Tableau d'entiers contenant les données renvoyées par l'équipement serveur destinataire de la requête. Bien que certaines requêtes ne nécessitent pas une réponse (comme une requête Run), il est néanmoins obligatoire de réserver un tableau d'au moins un entier chaque fois que la fonction SEND_REQ est utilisée. Remarque : le système écrit automatiquement la taille des données reçues, dans le quatrième mot du tableau de gestion, page 45. Remarque : dans certains cas (comme la lecture de tableaux de mots), il est nécessaire de reséquencer les objets reçus à l'aide de la fonction ROR1_ARB (voir EcoStruxure™ Control Expert, Obsolète, Bibliothèque de blocs) (décalage d'un octet dans un tableau). Transactions simultanées Le tableau ci-après fournit les capacités de chaque voie de communication pour traiter simultanément les transactions en fonction des diverses configurations sur les automates Micro et Premium (SEND_REQ n'est pas disponible pour des automates Modicon M340/ M580 et Modicon Quantum.) Configuration Micro TSX 57 10 TSX 57 20 TSX 57 23/30/40/ 45/55, PCX 57, PMX 57 TSX 57 46/56 Port terminal du maître Uni-Telway 4 4 4 4 8 Liaison PCMCIA ou SCY du maître UniTelway 1 8 8 8 8 Port terminal de l'esclave client UniTelway 4 1 1 1 8 Liaison PCMCIA ou SCY de l'esclave client Uni-Telway 1 1 1 1 1 Port terminal de l'esclave serveur UniTelway 4 4 4 4 4 Liaison PCMCIA ou SCY de l'esclave serveur Uni-Telway 4 6 6 6 6 Port terminal Modbus 4 - - - - Liaison PCMCIA ou SCY Modbus 4 8 8 8 8 Bloc terminal en mode caractère 1 1 1 1 1 Liaison PCMCIA ou SCY en mode caractère 4 8 8 8 8 332 33002528.25 SEND_REQ : Envoi de requêtes Communication Configuration Micro TSX 57 10 TSX 57 20 TSX 57 23/30/40/ 45/55, PCX 57, PMX 57 TSX 57 46/56 PCMCIA CANopen - 10 10 10 10 Liaison PCMCIA ou SCY Fipway 4 8 8 8 8 Modbus Plus 4 4 4 4 4 Ethernet - 16 16 16 16 Ethernet intégré - - - - 64 Liste de requêtes UNI-TE Présentation Le protocole UNI-TE est utilisé pour : • identifier et diagnostiquer tous les équipements disposant d'un serveur UNI-TE ; • fournir un ensemble de services donnant l'accès en lecture/écriture aux données de type ; • télécharger les données d'un équipement à un autre ; • protéger un serveur contre les connexions concurrentes en période critique. Ces différents services sont disponibles grâce à la fonction SEND_REQ, avec le codage de la requête UNI-TE à envoyer. NOTE: pour obtenir des informations détaillées et la liste des requêtes reconnues par chaque équipement, reportez-vous au manuel de référence TSX DR NET. Les tableaux suivants fournissent une liste non exhaustive des requêtes reconnues par les équipements Premium. Requêtes d'utilisation générale Ces requêtes sont utilisées pour identifier et diagnostiquer tous les types d'équipement disposant d'un serveur UNI-TE. 33002528.25 333 Communication SEND_REQ : Envoi de requêtes Nom de requête Code de requête Code de compte rendu Commentaire IDENTIFICATION 16#0F 16#3F Fournit des informations sur: • la gamme de produits, • le type d'application spécifique, • le type de produit, • la référence catalogue. READ_CPU 16#4F 16#7F Réalise un diagnostic système sur n'importe quel équipement. PROTOCOL_VERSION 16#30 16#60 Permet d'adapter la version du protocole entre deux équipements communicants. MIRROR 16#FA 16#FB Teste le routage correct des données entre deux équipements communicants. Modification dynamique des paramètres IP Modification des paramètres IP Nom de requête Code de requête Commentaire REQUEST CODE 16#37 Fonction de codage d'une requête. CHANGE IP PARAMETERS 16#13 Modifie la sous-fonction des paramètres IP. Pour garantir que le module ETY est prêt à fonctionner, laissez l'automate fonctionner (en mode Run) pendant 15 secondes après le dernier arrêt avant de lancer la fonction SEND_ REQ. Après l'émission de la commande CHANGE IP PARAMETERS par l'utilisateur et l'acceptation des nouveaux paramètres par le module ETY, ce dernier est réinitialisé et lance les opérations en fonction des nouveaux paramètres. NOTE: Les clients FDR qui utilisent le module ETY comme serveur doivent être redémarrés après toute modification de l'adresse IP du module. Faute de quoi ils ne pourraient pas mettre à jour leurs fichiers de paramètres sur le serveur FDR (le module ETY). NOTE: Les mots constantes contiennent les paramètres de configuration d'origine et non ceux ayant été mis à jour après modification de l'adresse IP. 334 33002528.25 SEND_REQ : Envoi de requêtes Communication NOTE: Vous pouvez consulter la nouvelle configuration (paramètres IP, masque de sous-réseau et adresse de la passerelle) sur l'Control Expertécran de mise au point de ETY (voir Premium et Atrium sous EcoStruxure™ Control Expert, Modules réseau Ethernet, Manuel utilisateur). Vous pouvez également voir la nouvelle adresse IP affectée dans la page Web de statistique du module Ethernet (voir Premium et Atrium sous EcoStruxure™ Control Expert, Modules réseau Ethernet, Manuel utilisateur). Mais gardez à l'esprit que l'adresse IP, le masque de sous-réseau et l'adresse de passerelle indiqués correspondent à l'ancienne configuration. Utilisation des paramètres en cas de modification de l'adresse IP Ce tableau est basé sur un exemple utilisant l'adresse IP 139.158.10.7, le masque de sousréseau 255.255.248.0 et l'adresse de passerelle 139.158.8.1. Paramètre Type Valeur Commentaire ADDRESS array [0...5] of INT ADDR ('rack.slot.channel.SYS') Exemple : ADDR (0.x.0.SYS’) x = emplacement dans lequel le module ETY est installé. REQUEST CODE INT 16#37 Data_to_Send array [0...8] of INT Octet 1 : sous-fonction (13h) Octet de poids fort Octet 2 : sous-fonction (96h) Octet de poids faible Octet 3 : 0 La valeur est ignorée. Octet 4 : 0 La valeur est ignorée. Octet 5 : adresse IP 2 (158) 1-239 (octet de poids fort) Octet 6 : adresse IP 1 (139) 0-255 (octet de poids faible) Octet 7 : adresse IP 4 (7) 0-255 (octet de poids fort) Octet 8 : adresse IP 3 (10) 0-255 (octet de poids faible) Octet 9 : masque de sous-réseau 2 (255) 255 Octet 10 : masque de sous-réseau 1 (255) 0-255 Octet 11 : masque de sous-réseau 4 (0) 0-255 Octet 12 : masque de sous-réseau 3 (248) 0-255 Octet 13 : passerelle 2 (158) 1-239 (l'adresse de la passerelle doit se trouver sur le même sous-réseau que l'adresse IP.) octet 14 : passerelle 1 (139) 0-255 octet 15 : passerelle 4 (1) 0-255 33002528.25 335 Communication Paramètre Manage_Param SEND_REQ : Envoi de requêtes Type Valeur Commentaire octet 16 : passerelle 3 (8) 0-255 numéro du mot Octet de poids fort Octet de poids faible 1 compte rendu d'activité 00 2 compte rendu d'opération (voir remarque) compte rendu de communication (voir remarque) 3 temporisation (ms) 4 longueur : 18 (INT) NOTE: le tableau suivant fournit des informations détaillées sur les codes d'adresse IP (corrects et incorrects). Reportez-vous à l'exemple de la section Modification des paramètres IP avec SEND_REQ, page 343. Modification des codes d'adresse IP Rapport d'opération Rapport de communication Signification 00 (hex) (SEND_REQ) a modifié correctement l'adresse IP. 01 (hex) FF (hex) valeur de code de requête incorrecte (par exemple, différente de 16#37) 00 (hex) 03 (hex) SEND_REQ envoyée à l'adresse IP du module ETY au lieu d'être envoyée sur l'embase 00 (hex) 07 (hex) mappage d'adresse vers le module ETY incorrect 16 (hex) FF (hex) adresse IP incorrecte 17 (hex) FF (hex) sous-réseau incorrect 18 (hex) FF (hex) adresse de passerelle incorrecte 19 (hex) FF (hex) adresse réseau incorrecte 1A (hex) FF (hex) adresse IP du module ETY déjà réglée pour envoyer une requête (SEND_REQ) FD (hex) 00 (hex) (SEND_REQ) n'a pas réussi à modifier l'adresse IP. code correct FE (hex) codes d'erreur 336 33002528.25 SEND_REQ : Envoi de requêtes Communication Utilisation des paramètres de commande de réinitialisation de module L'opération de réinitialisation de module force le module Premium ETY et le module de communication ETY PORT à amorcer un cycle de réinitialisation de leur environnement de travail. Pour programmer un bloc fonction SEND_REQ qui exécute cette commande de réinitialisation, utilisez le code fonction 37 et le code sous-fonction 10. Paramètre Type Valeur Commentaire ADDRESS array [0...5] of INT ADDR ('rack.slot.channel.SYS') Exemple : ADDR (0.x.0.SYS’) x = emplacement dans lequel le module ETY est installé. REQUEST CODE INT 16#37 Data_to_send array [0...1] of INT Octet 1 : sous-fonction (10h) Octet de poids fort Octet 2 : sous-fonction (96h) Octet de poids faible Octets 3, 4 : 0 Réservé Numéro du mot Octet de poids fort Octet de poids faible 1 compte rendu d'activité 00 2 compte rendu d'opération (voir remarque) compte rendu de communication (voir remarque) 3 temporisation (ms) 4 longueur : 4 (INT) (dans cet exemple) Manage_Param NOTE: le tableau suivant fournit des informations détaillées sur les codes de réinitialisation de module (corrects et incorrects). Codes de commande de réinitialisation de module Rapport d'opération Rapport de communication Signification 00 (hex) SEND_REQ a correctement réinitialisé le module 01 (hex) FF (hex) valeur de code de requête incorrecte (par exemple, différente de 16#37) 00 (hex) 07 (hex) mappage d'adresse vers le module ETY incorrect FD (hex) 00 (hex) SEND_REQ n'a pas réinitialisé le module code correct FE (hex) codes d'erreur 33002528.25 337 Communication SEND_REQ : Envoi de requêtes Accès aux objets Ces requêtes fournissent un ensemble de services qui permettent l'accès en lecture/écriture aux données internes de type bit et mot, aux données système de type bit et mot, aux données de virgule flottante, aux données constantes et aux données SFC. Nom de requête Code de requête Code de compte rendu Commentaire READ_OBJECT 16#36 16#66 Permet de lire un ou plusieurs objets consécutifs du même type. WRITE_OBJECT 16#37 16#FE Permet d'écrire un ou plusieurs objets consécutifs du même type. READ_INTERNAL_BIT 16#00 16#30 Permet de lire la valeur d'un bit interne. WRITE_INTERNAL_BIT 16#10 16#FE Permet d'écrire la valeur d'un bit interne. READ_INTERNAL_WORD 16#04 16#34 Permet de lire la valeur d'un mot interne. WRITE_INTERNAL_WORD 16#14 16#FE Permet d'écrire la valeur d'un mot interne. Gestion des modes de marche Ces requêtes fournissent un ensemble de services servant à gérer les modes de marche d'un processeur. Nom de requête Code de requête Code de compte rendu Commentaire RUN 16#24 16#FE Permet de lancer l'exécution des tâches d'un processeur. STOP 16#25 16#FE Permet d'arrêter l'exécution des tâches d'un processeur. INIT 16#33 16#63 Permet de déclencher un redémarrage à chaud ou à froid. Gestion des réservations Ces requêtes fournissent un mécanisme de réservation servant à protéger un serveur contre des connexions concurrentes en période critique. 338 33002528.25 SEND_REQ : Envoi de requêtes Communication Nom de requête Code de requête Code de compte rendu Commentaire RESERVE 16#1D 16#FE Permet à un client de réserver tout ou partie des fonctions d'un serveur. RELEASE 16# 1E 16#FE Permet à un client de libérer le serveur réservé. I_AM_ALIVE 16#2D 16#FE Permet de maintenir la réservation. NOTE: Pour réserver l'automate, mettez %SW110 à 1 et utilisez la fonction SEND_REQ avec le code de requête 16#1D. If NOT Management_Table[0].0 then (*reservation 1D*) Management_Table[2]:=4; (* time out *) SEND_REQ (ADR :=ADDR('sys'), CODE := 16#001D, EMIS := Emis_table, GEST := Management_Table, RECP => Receive_buffer); END_IF; Avec les variables créées dans l'éditeur de données comme suit : • Management_Table: ARRAY [0..3] OF INT • Emis_table: ARRAY [0..0] OF INT • Receive_buffer: ARRAY [0..0] OF INT NOTE: créez les variables sans valeur à l'intérieur. Seule la valeur du timeout doit être définie dans Management_Table[2]. Ecran de saisie assistée Présentation Pour cette fonction de communication, vous pouvez avoir recours à l'écran de saisie assistée. NOTE: les symboles de variable sont acceptés dans les différents champs de l'écran. 33002528.25 339 Communication SEND_REQ : Envoi de requêtes Illustration La capture suivante est un exemple d'écran de saisie assistée de la fonction : Adresse Pour les automates Premium, les types d'objets possibles sont les suivants : • ADDR(STRING), • ARRAY [0..5] OF INT. NOTE: si vous saisissez une valeur directement dans le champ, le bouton de saisie d'adresse assistée devient gris. Code de requête Les objets possibles sont de type INT : • Variables • Constantes • Valeur immédiate NOTE: lorsque vous saisissez une constante, un champ de saisie correspondant apparaît. Si vous saisissez une variable, elle peut être affectée ou non. 340 33002528.25 SEND_REQ : Envoi de requêtes Communication Données à envoyer Les données à envoyer sont stockées sous la forme d'un tableau d'entiers. Ce tableau peut être affecté ou non. Zone de réception La zone de réception est un tableau d'entiers. Celui-ci peut être affecté ou non et sa taille dépend du code de requête utilisé. Rapport Le rapport est un tableau de 4 entiers. NOTE: veillez à ne pas utiliser plusieurs zones de mémoire identiques pour les tables de rapport, car la fonction de lecture de variables risque de ne pas fonctionner. Exemple d'envoi d'une requête UNI-TE Présentation La station 2 du réseau 20 doit envoyer une requête d'identification à l'équipement portant l'adresse Ad0=3 sur le bus Uni-Telway de la station 1 du même réseau. La requête d'identification porte le code décimal 15 (ou 16#0F). La table de gestion se trouve dans %MW10:4. 33002528.25 341 Communication SEND_REQ : Envoi de requêtes Figure Les deux stations sont connectées via un réseau Fipway : Programmation Programmation en ST : IF RE(%I0.3.2) AND NOT %MW10.0 THEN SEND_REQ(ADDR(’{20.1}0.5.1.3’),15,%MW0:1, %MW10:4,%MW100:24); END_IF; Paramètres de la requête : Paramètres ADDR(‘{20.1}0.5.1.3’) 15 342 Description • {20.1} : réseau 20, station 1 • 0 : rack • 5 : module • 1 : voie 1 • 3 : adresse cible Requête 15 (ou 16#0F si le codage est hexadécimal) 33002528.25 SEND_REQ : Envoi de requêtes Communication Paramètres Description %MW0:1 Données envoyées (par exemple : aucune donnée à envoyer) %MW10:4 Table de gestion %MW100:24 Contenu de la réponse (réception de 24 mots) NOTE: A chaque lancement de la fonction, initialisez le paramètre de longueur (dans l'exemple :%MW13 = 0). Modification des paramètres IP avec SEND_REQ (exemple) Illustration Le graphique ci-dessous vous indique comment régler les paramètres IP du module ETY dans l'emplacement 2 avec le bloc SEND_REQ : Remarque : • ADR: indique la position du module ETY dans l'emplacement 2. • CODE: indique la valeur de REQUEST_CODE. 33002528.25 343 Communication • • SEND_REQ : Envoi de requêtes EMIS : contient les paramètres IP dans Data_to_Send : ◦ Adresse (139.158.10.7) ◦ Masque de sous-réseau (255.255.248.0) ◦ Passerelle (139.158.8.1) GEST : indique Management_Param (paramètres de gestion). Vous devez attribuer une durée au troisième mot de Management_Param. Le quatrième mot doit avoir la valeur INT 18. • RECP : Ce paramètre requiert une valeur INT minimale de 1, même si aucun message de réponse n'est renvoyé, comme dans le cas d'une requête de modification IP. Utilisation de la fonction SEND_REQ Présentation La fonction SEND_REQ permet de coder et d'envoyer toutes les requêtes UNI-TE et Modbus/ Jbus et de recevoir les réponses associées. Dans certains cas (comme la lecture de tableaux de mots), il est nécessaire de reséquencer les objets reçus à l'aide de la fonction ROR1_ARB (décalage d'un octet dans un tableau). Exemple Objets à lire : 16#0201 16#0403 16#0605 16#0807 16#0A09 Table de réception après l'exécution d'un SEND_REQ (lecture d'objet) : %MW100=16#0107 %MW101=16#0302 %MW102=16#0504 344 33002528.25 SEND_REQ : Envoi de requêtes Communication %MW103=16#0706 %MW104=16#0908 %MW105=16#000A Table de réception après un ROR1_ARB(%MW100:6) : %MW100=16#0201 %MW101=16#0403 %MW102=16#0605 %MW103=16#0807 %MW104=16#0A09 %MW105=16#0700 33002528.25 345 Communication SEND_TLG : Envoi de télégrammes SEND_TLG : Envoi de télégrammes Contenu de ce chapitre Description ............................................................................ 346 Exemple d'envoi d'un télégramme ........................................... 349 Objet de ce chapitre Ce chapitre décrit la fonction SEND_TLG. Description Description de la fonction La fonction SEND_TLG permet d'envoyer des données de type télégramme à une application distante. Les données à envoyer doivent avoir une longueur maximum de 16 octets. Contrairement aux autres fonctions de communication, cette fonction est traitée immédiatement (synchrone) : il n'y a donc aucun bit d'activité ni paramètre de timeout. Par conséquent, la table d'entiers affectée aux paramètres de gestion n'utilise que deux mots au lieu de quatre (le nombre d'échanges et de timeouts n'est pas requis). AVERTISSEMENT FONCTION NON OPERATIONNELLE - CONFIGURATION NON VALIDE Utilisez la fonction SEND_TLG sur un réseau Fipway uniquement après avoir installé une carte TSX FPP 20 : • sur la voie 1 du processeur, • pour les stations 0 à 15. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Les paramètres supplémentaires EN et ENO peuvent être configurés. 346 33002528.25 SEND_TLG : Envoi de télégrammes Communication Représentation en FBD Représentation: Représentation en LD Représentation: Représentation en IL Représentation: Adresse LD SEND_TLG Data_to_Send, Management_Param Représentation en ST Représentation: SEND_TLG(Address, Data_to_Send, Management_Param); 33002528.25 347 Communication SEND_TLG : Envoi de télégrammes Description des paramètres Le tableau suivant décrit les paramètres d'entrée : Paramètre Type Commentaire ADR ARRAY [0.. 5] OF INT Adresse de l’entité destinataire de l’échange. Seules les adresses {Réseau.Station}APP ou {Réseau.Station} APP.num sont autorisées. EMIS ARRAY [n.. m] OF INT Table d'entiers à envoyer à l'équipement destinataire de la requête. Elle doit avoir une longueur maximum de 8 entiers (16 octets). Remarque : il est primordial que le nombre d'octets à envoyer soit placé dans le second mot de la table de gestion avant de lancer l'échange. Le tableau suivant décrit le paramètre d'entrée/sortie : Paramètre Type Commentaire GEST ARRAY [0 ... 1] OF INT Table de mots utilisée pour gérer les échanges. La table comporte deux mots : le mot de compte rendu et le mot de longueur des données à envoyer. Le compte rendu comporte : • le compte rendu d'opération (octet de poids fort du premier mot) ; • le compte rendu de communication (octet de poids faible du premier mot). Le compte rendu d'opération prend l’une des valeurs suivantes : 348 • 16#00: échange correcte, • 16#03: format d’adresse incorrecte, • 16#04: adresse cible incorrecte, • 16#05: paramètres de gestion incorrects (longueur, par exemple) • 16#06: paramètres spécifiques incorrects, • 16#07: module en défaut, • 16#0A : taille insuffisante du buffer d’émission, • 16#0B : aucune ressource système : le nombre d'EF de communication simultanées dépasse le nombre maximum autorisé par le processeur, • 16#0F : service de télégramme non configuré. 33002528.25 SEND_TLG : Envoi de télégrammes Communication Exemple d'envoi d'un télégramme Présentation Supposons que vous vouliez envoyer un télégramme de 8 mots depuis la station 1 vers la station distante 3 sur le réseau Fipway 20. %MW190:8 contiendra les mots à envoyer et %MW200:2 inclura la table de gestion de l'échange. Figure Les deux stations sont connectées via un réseau Fipway. Programmation Programmation en ST : IF RE(%I0.3.10) THEN SEND_TLG(ADDR(’{20.3}APP’), %MW190:8, %MW200:2); END_IF; Paramètres de la requête : Paramètres ADDR(‘{20.3}APP’) Description • {20.2} : réseau 20, station 3 • APP : application %MW190:8 Contenu du télégramme à envoyer %MW200:2 Table de gestion 33002528.25 349 Communication SEND_TLG : Envoi de télégrammes NOTE: Le mot %MW 201 doit être initialisé sur 16 (8 mots) avant l'envoi de la requête. Pour exécuter cette fonction de manière synchrone, il est nécessaire de tester le compte-rendu de l'opération immédiatement après la ligne de programme activant l'exécution de la fonction. 350 33002528.25 SYMAX_IP_ADDR : Adresse IP SY/MAX Communication SYMAX_IP_ADDR : Adresse IP SY/MAX Contenu de ce chapitre Description ............................................................................ 351 Description détaillée............................................................... 353 Présentation Ce chapitre décrit le bloc SYMAX_IP_ADDR. Description Description de la fonction Ce bloc fonction permet d'indiquer l'adresse IP SY/MAX pour les blocs fonction REAG_REG, CREAD_REG, WRITE_REG et CWRITE_REG. Cette adresse est transférée sous la forme d'une structure de données. EN et ENO peuvent être configurés comme paramètres supplémentaires. NOTE: Lorsque vous programmez le bloc fonction SYMAX_IP_ADDR, il vous faut connaître le réseau que vous utilisez. Représentation en FBD Représentation : 33002528.25 351 Communication SYMAX_IP_ADDR : Adresse IP SY/MAX Représentation en LD Représentation : Représentation en IL Représentation : CAL SYMAX_IP_ADDR_Instance (DROP_NO:=MappingIndex, SLOT_ID:=NOEModuleSlot, DESTDROP:=DestinationDropNumber, TERMINAT:=Terminator, ADDRFLD=>DataStructureSYMAX_IP) Représentation en ST Représentation : SYMAX_IP_ADDR_Instance (DROP_NO:=MappingIndex, SLOT_ID:=NOEModuleSlot, DESTDROP:=DestinationDropNumber, TERMINAT:=Terminator, ADDRFLD=>DataStructureSYMAX_IP) ; Description des paramètres Description des paramètres d'entrée : 352 33002528.25 SYMAX_IP_ADDR : Adresse IP SY/MAX Communication Paramètres Type de données Description DROP_NR BYTE Index de mappage MBP sur Ethernet Transporter (MET). Slot_ID BYTE Emplacement du module NOE DESTDROP WORD Numéro de station cible (ou FF hex) TERMINAT WORD Terminaison (FF hex) Description des paramètres de sortie : Paramètres Type de données Description ADDRFLD WordArr5 Structure de données pour la transmission de l'adresse IP SY/ MAX Description détaillée Description de l'élément WordArr5 Description des éléments pour WordArr5 : Elément Type de données Description WordArr5[1] WORD Octet de poids fort : Numéro d'emplacement du module NOE Octet de poids faible : Index de mappage MBP sur Ethernet Transporter (MET) WordArr5[2] WORD Numéro de station cible (ou FF hex) WordArr5[3] WORD Terminaison (FF hex) WordArr5[4] WORD Réservé WordArr5[5] WORD Réservé 33002528.25 353 Communication SYMAX_IP_ADDR : Adresse IP SY/MAX DROP_NR L'entrée DROP_NR indique l'index de mappage MET (MBP to EtherNet Transporter) : lorsque le MET est égal à 6, la valeur est la suivante : Slot_ID Lorsqu'un module NOE est interrogé en tant que noeud cible, la valeur de l'entrée SLOT_ID représente l'emplacement physique du module NOE : lorsque le NOE est enfiché à l'emplacement 7 du rack, la valeur est la suivante : ADDRFLD Lorsqu'un module NOE enfiché dans le rack d'un automate Quantum est interrogé, la valeur de l'octet de poids fort représente l'emplacement physique du NOE et l'octet de poids faible représente l'index de mappage MBP-Ethernet (MET) : lorsque le NOE est enfiché à l'emplacement 7 du rack et que l'index de mappage MET vaut 6, le premier élément de la structure de données se présente comme suit : Octet de poids fort Emplacements 1 à 16 Octet de poids faible Index de mappage MBP sur Ethernet Transporter (MET) 354 33002528.25 TCP_IP_ADDR : Adresse TCP/IP Communication TCP_IP_ADDR : Adresse TCP/IP Contenu de ce chapitre Description ............................................................................ 355 Description détaillée............................................................... 358 Présentation Ce chapitre décrit le bloc TCP_IP_ADDR. Description Description de la fonction Ce bloc fonction permet de saisir l'adresse TCP/ IP des blocs fonction READ_REG, CREAD_ REG, WRITE_REG et CWRITE_REG. Cette adresse est transférée sous la forme d'une structure de données. EN et ENO peuvent être configurés comme paramètres supplémentaires. NOTE: pour programmer le bloc fonction TCP_IP_ADDR, vous devez bien connaître votre réseau. Une description complète du routage TCP/IP est fournie dans le document Quantum sous EcoStruxure™ Control Expert - TCP/IP Configuration, Manuel utilisateur. 33002528.25 355 Communication TCP_IP_ADDR : Adresse TCP/IP Représentation en FBD Représentation : Représentation en LD Représentation : 356 33002528.25 TCP_IP_ADDR : Adresse TCP/IP Communication Représentation en IL Représentation : CAL TCP_IP_ADDR_Instance (MAP_IDX:=MapIndex, SLOT_ID:=NOEModuleSlot, IP_B4:=Byte4OfIPAddress, IP_B3:=Byte3OfIPAddress, IP_B2:=Byte2OfIPAddress, IP_B1:=Byte1OfIPAddress, ADDRFLD=>DataStructureTCP_IPAddress) Représentation en ST Représentation : TCP_IP_ADDR_Instance (MAP_IDX:=MapIndex, SLOT_ID:=NOEModuleSlot, IP_B4:=Byte4OfIPAddress, IP_B3:=Byte3OfIPAddress, IP_B2:=Byte2OfIPAddress, IP_B1:=Byte1OfIPAddress, ADDRFLD=>DataStructureTCP_IPAddress) ; Description des paramètres Description des paramètres d'entrée : Paramètres Type de données Description MAP_IDX BYTE Index de mappage Index de mappage MBP sur Ethernet Transporter (MET). Slot_ID BYTE ID de l'emplacement Emplacement du module NOE IP_B4 BYTE Octet 4 (octet de poids fort) de l'adresse IP cible 32 bits IP_B3 BYTE Octet 3 de l'adresse IP cible 32 bits IP_B2 BYTE Octet 2 de l'adresse IP cible 32 bits IP_B1 BYTE Octet 1 (octet de poids faible) de l'adresse IP cible 32 bits NOTE: pour le paramètre Slot_ID : en cas d'utilisation d'un module à UC Ethernet intégrée comme le module 140 CPU 651 •0, l'ID d'emplacement doit être 254 (FE hex), quel que soit l'emplacement de l'UC. Description des paramètres de sortie : 33002528.25 357 Communication TCP_IP_ADDR : Adresse TCP/IP Paramètres Type de données Description ADDRFLD WordArr5 Structure de données utilisée pour transférer l'adresse TCP/IP Description détaillée Description de l'élément WordArr5 Description des éléments pour WordArr5 : Elément Type de données Description WordArr5[1] WORD Octet de poids fort : Emplacement du module NOE Octet de poids faible : Index de mappage MBP sur Ethernet Transporter (MET) WordArr5[2] WORD Octet 4 de l'adresse IP cible 32 bits WordArr5[3] WORD Octet 3 de l'adresse IP cible 32 bits WordArr5[4] WORD Octet 2 de l'adresse IP cible 32 bits WordArr5[5] WORD Octet 1 de l'adresse IP cible 32 bits MAP_IDX L'index de mappage MBP sur Ethernet Transporter (MET) est fourni à l'entrée Map_Idx+ : si l'idex MET est 6, la valeur apparaît comme suit : 358 33002528.25 TCP_IP_ADDR : Adresse TCP/IP Communication Slot_ID Si un module NOE du rack d'un automate Quantum est désigné comme cible, la valeur à l'entrée SLOT_ID représente l'emplacement physique du module. Par exemple, si le module NOE est branché sur l'emplacement 7 du rack, la valeur apparaît comme suit : NOTE: Lorsque vous utilisez un module d'UC Ethernet intégré comme le module 140 CPU 651 x0, l'ID d'emplacement doit être 254 (FE hex) quel que soit l'emplacement de l'UC. ADDRFLD Lorsqu'un module NOE enfiché dans le rack d'un automate Quantum est interrogé, la valeur de l'octet de poids fort représente l'emplacement physique du NOE et l'octet de poids faible représente l'index de mappage MBP-Ethernet (MET) : lorsque le NOE est enfiché à l'emplacement 7 du rack et que l'index de mappage MET vaut 6, le premier élément de la structure de données se présente comme suit : Octet de poids fort Emplacements 1 à 16 Octet de poids faible Index de mappage MBP sur Ethernet Transporter (MET) 33002528.25 359 Communication UNITE_SERVER : Serveur immédiat UNITE_SERVER : Serveur immédiat Contenu de ce chapitre Description ............................................................................ 360 Exemple de serveur immédiat................................................. 364 Objet de ce chapitre Ce chapitre décrit la fonction de communication UNITE_SERVER. Description Description de la fonction La fonction UNITE_SERVER permet de traiter les requêtes UNI-TE immédiatement à partir du programme d'application. Cette fonction peut être activée dans la tâche MAST ou FAST. NOTE: Une seule fonction UNITE_SERVER à la fois peut être activée par l'application. NOTE: La fonction UNITE_SERVER permet de traiter des requêtes à partir d'une liaison Modbus (carte PCMCIA TSX SCP 114 dans un module TSX SCY 21601 configuré en tant qu'esclave Modbus avec serveur immédiat (voir Premium et Atrium sous EcoStruxure™ Control Expert, Liaison série asynchrone, Manuel utilisateur)). Les paramètres supplémentaires EN et ENO peuvent être configurés. 360 33002528.25 UNITE_SERVER : Serveur immédiat Communication Principe d'un échange Le diagramme suivant illustre les échanges effectués lors de l'utilisation de la fonction de communication UNITE_SERVER. Représentation en FBD Représentation : 33002528.25 361 Communication UNITE_SERVER : Serveur immédiat Représentation en LD Représentation : Représentation en IL Représentation : LD Management_Param UNITE_SERVER Address, Received_Codes Représentation en ST Représentation : UNITE_SERVER(Management_Param, Address, Received_Codes); Description des paramètres Le tableau suivant décrit les paramètres d’entrée/sortie : 362 33002528.25 UNITE_SERVER : Serveur immédiat Communication Paramètre Type Commentaire Management_Param ARRAY [0.. 1] OF INT Table de mots utilisée pour gérer l'échange. Cette table est composée de 2 mots : le premier mot contient le numéro d'échange et le bit d'activité et le second mot contient le compte rendu. Le compte rendu comporte : • le compte rendu d'opération (octet de poids fort), • le compte rendu de communication (octet de poids faible). Le compte rendu d'opération prend l'une des valeurs suivantes : • 16#00 : échange correct, • 16#01 : arrêt sur timeout, la réponse n'a pas pu être émise en moins de 2 secondes, • 16#02 : arrêt à la demande de l'utilisateur (STOP, % S0, INIT, redémarrage à chaud ou à froid), • 16#03 : format d'adresse inconnu, • 16#05 : paramètres de gestion incorrects, • 16#07 : problème d'envoi vers la destination, • 16#11 : aucune requête reçue, • 16#12 : fonction UNITE_SERVER déjà appelée par une autre tâche, • 16#FF : message refusé. Remarque : Lorsqu'un message est refusé (code 16#FF), le compte rendu d'opération peut prendre la valeur 16#14 (serveur arrêté). Le tableau suivant décrit les paramètres de sortie : Paramètre Type Commentaire Address ARRAY [0... 2] OF INT Adresse de l’entité destinataire de l’échange. Cette adresse correspond à la voie associée à l'émetteur de la requête. Received_Codes INT A la fin de l'échange, ce mot comporte : 33002528.25 • le code de la requête reçue (octet de poids faible), • le code de la réponse renvoyée (octet de poids fort). 363 Communication UNITE_SERVER : Serveur immédiat Exemple de serveur immédiat Présentation Cet exemple présente l'implémentation d'une fonction UNITE_SERVER en tant que serveur immédiat pour une fonction de communication READ_VAR. La liaison Modbus concernée est connectée à la carte PCMCIA d'un module TSX SCY 21601 situé sur l'emplacement 2 du rack de base. Programmation Programmation en ST : IF NOT %MW100:X0 THEN UNITE_SERVER(%MW100:2, %MW110:3, %MW10); END_IF; Paramètres de la requête : Paramètres Description %MW100:2 Table de gestion %MW110:3 Exemple : le serveur immédiat est SCP114 configuré en tant qu'esclave 49 dans un module SCY21601 (emplacement 4, rack 0). • Mot 1 : 16#FE00 correspond au rack ; • Mot 2 : 16#0405 correspond à l'emplacement ; • Mot 3 : 16#0095 correspond à la voie. Pour plus d'informations, voir modes d'adressage X-WAY (voir Pilotes de communication, Manuel d'installation). %MW10 364 Réponse : • Octet de poids faible : 16#03, code reçu de la fonction UNITE de n mots lus. • Octet de poids fort : 16#03, code réponse de la fonction UNITE de n mots lus. 33002528.25 WRITE_ASYN : Ecriture asynchone de données Communication WRITE_ASYN : Ecriture asynchone de données Contenu de ce chapitre Description ............................................................................ 365 Objet de ce chapitre Ce chapitre décrit la fonction WRITE_ASYN. Description Description de la fonction La fonction WRITE_ASYN permet d’écrire 1 kilo-octet de données par le canal de messagerie asynchrone de modules TSX ETY en mode TCP/IP. Les données accessibles en écriture sont les suivantes : • Bits internes • Mots internes L’écriture asynchrone ne peut s’effectuer qu’entre deux stations d’un même segment de réseau Ethernet TCP/IP. La fonction WRITE_ASYN est émise à la fin de la tâche MAST seulement si celle-ci est configurée en mode périodique. Il est possible d’activer 8 fonctions simultanément. La taille des buffers d'émission et de réception est exprimée en mots. Elle est de 512 mots soit 1024 octets. NOTE: La fonction serveur asynchrone supporte les protocoles UNI-TE V1 ou V2.0. La fonction WRITE_ASYN utilise le protocole UNI-TE V2.0. Les paramètres supplémentaires EN et ENO peuvent être configurés. 33002528.25 365 Communication WRITE_ASYN : Ecriture asynchone de données Principe d'un échange La figure suivante illustre les échanges entre deux stations pour une fonction WRITE_ASYN : 366 33002528.25 WRITE_ASYN : Ecriture asynchone de données Communication Représentation en FBD Représentation : Représentation en LD Représentation : Représentation en IL Représentation : LD Address 33002528.25 367 Communication WRITE_ASYN : Ecriture asynchone de données WRITE_ASYN Object_Type, First_Object, Object_Number, Data_to_Write, Management_Param Représentation en ST Représentation : WRITE_ASYN(Address, Object_Type, First_Object, Object_Number, Data_ to_Write, Management_Param); Description des paramètres Le tableau suivant décrit les paramètres d’entrée : Paramètre Type Commentaire Address ARRAY [0... 5] OF INT Adresse de l’entité destinataire de l’échange. Les adresses sont de la forme ADDR(’{Network. Station}SYS. Object_Type STRING Type des objets à écrire : • %M : bits internes, • %MW : mots internes, • %S : bits système, • %SW : mots système. First_Object DINT Indice du premier objet à écrire dans l’équipement destinataire. Object_Number INT Nombre d’objets à écrire. Data_to_Write ARRAY [n... m] OF INT Tableau de mots contenant la valeur des objets à écrire. Le tableau suivant décrit les paramètres d’entrée/sortie : 368 33002528.25 WRITE_ASYN : Ecriture asynchone de données Communication Paramètre Type Commentaire Management_Param ARRAY [0.. 3] OF INT Table de gestion de l’échange, page 39. Le compte rendu d'opération prend l’une des valeurs suivantes : • 16#00 : échange correct, • 16#01 : arrêt sur timeout, la réponse n'a pas pu être émise en moins de 2 secondes, • 16#02 : arrêt à la demande de l'utilisateur (STOP, S0, INIT, redémarrage à chaud ou à froid), • 16#03 : format d’adresse incorrect, • 16#05 : paramètres de gestion incorrects, • 16#07 : destination manquante, • 16#09 : taille du tampon de réception insuffisante, • 16#10 : taille du tampon d'émission insuffisante, • 16#11 : absence de ressource système (déjà 8 fonctions actives), • 16#19 : numéro d'échange incorrect, • 16#FF : message refusé. Remarque : n'oubliez pas de programmer une valeur de Timeout pour arrêter un échange en cours lorsque la réponse ne revient pas à l'émetteur. 33002528.25 369 WRITE_GDATA : Ecriture de Global Data Modbus Plus Communication WRITE_GDATA : Ecriture de Global Data Modbus Plus Contenu de ce chapitre Description ............................................................................ 370 Objet de ce chapitre Ce chapitre décrit la fonction de communication WRITE_GDATA. Description Description de la fonction La fonction WRITE_GDATA permet d’écrire les données partagées, appelées aussi Global Data, sur un réseau Modbus Plus. Les Global Data sont partagées entre 64 stations maximum d’un même réseau Modbus Plus. Chaque station peut écrire jusqu’à 32 entiers qui sont utilisables par toutes les stations du réseau. Réciproquement, chaque station peut lire les 32 (maximum) entiers de toutes les autres stations du réseau. Les paramètres supplémentaires EN et ENO peuvent être configurés. Représentation en FBD Représentation : 370 33002528.25 WRITE_GDATA : Ecriture de Global Data Modbus Plus Communication Représentation en LD Représentation : Représentation en IL Représentation : LD Address WRITE_GDATA Data_to_Write, Management_Param Représentation en ST Représentation : WRITE_GDATA(Address, Data_to_Write, Management_Param); Description des paramètres Le tableau suivant décrit les paramètres d’entrée : 33002528.25 371 WRITE_GDATA : Ecriture de Global Data Modbus Plus Communication Paramètre Type Commentaire Address ARRAY [0... 5] OF INT Adresse de la carte PCMCIA qui connecte le Premium au réseau Modbus Plus. La valeur de cette adresse est ADDR(’0.0.1.SYS’). Remarque : les données sont écrites vers la carte PCMCIA qui se charge ensuite de les partager. Data_to_Write ARRAY [n... m] OF INT Tableau de mots contenant la valeur des objets à écrire. La taille de ce tableau doit toujours être de 32 entiers de 16 bits, taille maximum des Global Data sur un réseau Modbus Plus. Le tableau suivant décrit les paramètres d’entrée/sortie : Paramètre Type Commentaire Management_Param ARRAY [0.. 3] OF INT Table de gestion de l’échange, page 39. Il n’est pas nécessaire d’initialiser le paramètre de longueur avant de lancer l’échange. 372 33002528.25 WRITE_REG : Ecriture de registre Communication WRITE_REG : Ecriture de registre Contenu de ce chapitre Description ............................................................................ 373 Types de données dérivés ...................................................... 376 Mode de fonctionnement ........................................................ 378 Description des paramètres .................................................... 379 Présentation Ce chapitre décrit le bloc WRITE_REG. Description Description de la fonction Lors d'un front montant sur l'entrée REQ, ce bloc fonction écrit le contenu d'une zone de registre de l'automate dans une zone de registre à partir d'une zone de registre d'un équipement connecté par Modbus Plus, Ethernet TCP/IP ou Ethernet SY/MAX. Les paramètres supplémentaires EN et ENO peuvent être paramétrés. Les blocs fonction CREAD_REG, CWRITE_REG, READ_REG, WRITE_REG et MBP_MSTR utilisent un chemin de transaction de données et requièrent plusieurs cycles pour effectuer une opération. Le nombre de chemins de transaction disponibles par module et par cycle MAST dépend du port de communication utilisé : • Les modules à port intégré Modbus Plus ou NOM prennent en charge jusqu'à 4 blocs simultanément. • Le port intégré Ethernet TCP/IP prend en charge jusqu'à 4 blocs simultanément. • Les modules TCP/IP Ethernet NOE, NOC et 140 CRP 312 00 prennent en charge jusqu'à 16 blocs simultanément. D'autres blocs fonction de communication peuvent être programmés sur le même port de communication. Toutefois, le bloc de communication qui dépasse le nombre maximum sur ce port n'est traité qu'après la mise à disposition d'un des chemins de transaction. Le bloc suivant sur le port devient alors actif et commence à utiliser un chemin disponible. 33002528.25 373 Communication WRITE_REG : Ecriture de registre NOTE: lorsque vous programmez une fonction WRITE_REG, vous devez connaître les procédures de routage utilisées par votre réseau. Les structures de routage Modbus Plus sont décrites en détail dans le manuel des architectures de communication (voir Architectures et services de communication, Manuel de référence) et le document Réseau Modbus Plus, Guide de planification et planification (référence 31003525). Si le routage Ethernet TCP/IP ou SY/MAX est mis en œuvre (voir Quantum sous EcoStruxure™Control Expert, TCP/IP Configuration, Manuel utilisateur), vous devez utiliser des routeurs IP Ethernet standard. NOTE: il est possible d'utiliser plusieurs copies de ce bloc fonction dans le programme. Il n'est cependant pas possible de procéder à une instanciation multiple de ces copies. Représentation en FBD Représentation : 374 33002528.25 WRITE_REG : Ecriture de registre Communication Représentation en LD Représentation : Représentation en IL Représentation : CAL WRITE_REG_Instance (REQ:=StartWriteOnce, SLAVEREG: =OffsetAddress, NO_REG:=NumberOfRegisters, REG_WRIT: =SourceDataArea, ADDRFLD:=DataStructureForTransfer, DONE= >SetAfterWritingData, ERROR=>SetInCaseOfError, STATUS=>ErrorCode) Représentation en ST Représentation : WRITE_REG_Instance (REQ:=StartWriteOnce, SLAVEREG:=OffsetAddress, NO_REG:=NumberOfRegisters, REG_WRIT:=SourceDataArea, ADDRFLD: =DataStructureForTransfer, DONE=>SetAfterWritingData, ERROR= >SetInCaseOfError, STATUS=>ErrorCode) ; 33002528.25 375 Communication WRITE_REG : Ecriture de registre Description des paramètres Description des paramètres d'entrée : Paramètre Type de données Signification REQ BOOL Lors d'un front montant sur l'entrée REQ, ce bloc fonction écrit le contenu d'une zone de registre de l'automate dans une zone de registre d'un équipement connecté par Modbus Plus, Ethernet TCP/IP ou Ethernet SY/MAX. SLAVEREG DINT Adresse du premier registre %MW de l'esclave dans lequel écrire les données. NO_REG INT Nombre d'adresses à écrire depuis l'esclave. REG_WRIT ANY Champ de données source (Une structure de données doit être déclarée en tant que variable affectée pour le fichier source.) ADDRFLD WordArr5 Structure de données transférant l'adresse Modbus Plus, l'adresse TCP/IP ou l'adresse SY/MAX-IP Description des paramètres de sortie : Paramètre Type de données Signification DONE BOOL Mis à 1 pendant un cycle après l'écriture des données. ERROR BOOL Mis à 1 pendant un cycle si une erreur apparaît. STATUS WORD Si une erreur se produit lors de l'exécution de la fonction, un code d'erreur, page 556 apparaît pendant un cycle au niveau de cette sortie. Erreur d'exécution Pour obtenir la liste de l'ensemble des valeurs et codes d'erreur de bloc, consultez le tableau des codes d'erreur, page 553. Types de données dérivés Description de WordArr5 sur Modbus Plus Description de WordArr5 sur Modbus Plus : 376 33002528.25 WRITE_REG : Ecriture de registre Communication Elément Type de données Description WordArr5[1] WORD Octet de poids faible : Registre 1 de routage, sert à déterminer l'adresse de l'abonné cible (l'une des cinq adresses de l'itinéraire de routage) lors d'une transmission par réseau. Le dernier octet différent de zéro de l'itinéraire de routage est l'abonné cible. Octet de poids fort : Adresse de l'abonné source. • Position de l'emplacement du module lors de l'utilisation du port Modbus Plus sur le module NOM. • Si vous utilisez le port Modbus Plus de l'UC, cet octet doit être réglé sur 0 (pour tous les emplacements de l'UC). WordArr5[2] WORD Registre 2 de routage WordArr5[3] WORD Registre 3 de routage WordArr5[4] WORD Registre 4 de routage WordArr5[5] WORD Registre 5 de routage Description de WordArr5 sur Ethernet TCP/IP Description de WordArr5 sur Ethernet TCP/IP : Elément Type de données Description WordArr5[1] WORD Octet de poids fort : Emplacement du module NOE Octet de poids faible : Index de mappage MBP sur Ethernet Transporter (MET) WordArr5[2] WORD Octet 4 (octet de poids fort) de l'adresse IP cible 32 bits WordArr5[3] WORD Octet 3 de l'adresse IP cible 32 bits WordArr5[4] WORD Octet 2 de l'adresse IP cible 32 bits WordArr5[5] WORD Octet 1 (octet de poids faible) de l'adresse IP cible 32 bits 33002528.25 377 Communication WRITE_REG : Ecriture de registre Description de WordArr5 sur Ethernet SY/MAX Description de WordArr5 sur Ethernet SY/MAX : Elément Type de données Description WordArr5[1] WORD Octet de poids fort : Emplacement du module NOE Octet de poids faible : Index de mappage MBP sur Ethernet Transporter (MET) WordArr5[2] WORD Numéro de station cible (ou mettre FF en hexadécimal) WordArr5[3] WORD Terminaison (ou mettre FF en hexadécimal) WordArr5[4] WORD Réservé WordArr5[5] WORD Réservé Mode de fonctionnement Mode de fonctionnement du bloc WRITE_REG Un grand nombre de blocs fonction WRITE_REG peut être programmé, mais seules quatre opérations d'écriture peuvent être actives en même temps. Dans ce cas, il n'est pas important que celles-ci soient déclenchées par ce bloc fonction ou par d'autres (MBP_MSTR, CWRITE_REG). Tous les blocs fonction utilisent la même session de transaction de données et nécessitent plusieurs cycles de programme pour réaliser un travail. Si plusieurs blocs fonction WRITE_REG sont utilisés dans une application, ils doivent se différencier entre eux au moins par les paramètres NO_REG ou REG_WRIT. NOTE: Une communication TCP/IP entre un automate Quantum (NOE 211 00) et un automate Momentum (toutes les UC TCP/IP et tous les modules d'E/S TCP/IP) n'est possible que si une seule tâche de lecture ou d'écriture est effectuée dans chaque cycle. Si plusieurs tâches sont envoyées par cycle d'automate, la communication s'arrête sans générer de message d'erreur dans le registre d'état du bloc fonction. Les signaux d'état DONE et ERROR signalent l'état du bloc fonction au programme utilisateur. L'information complète de routage est contenue dans la structure de données WordArr5 de l'entrée ADDRFLD. Le type du bloc fonction lié à cette entrée est défini par le réseau utilisé. Veuillez utiliser : 378 33002528.25 WRITE_REG : Ecriture de registre • Modbus Plus pour le bloc fonction ModbusP_ADDR, page 209 • Ethernet TCP/IP pour le bloc fonction TCP_IP_ADDR, page 355 • Ethernet SY/MAX pour le bloc fonction SYMAX_IP_ADDR, page 351 Communication NOTE: Vous pouvez également utiliser la structure de données WordArr5 avec des constantes. Description des paramètres REQ Un front montant déclenche la transaction d'écriture. Le paramètre peut être entré en tant qu'adresse, variable localisée, variable non localisée ou littéral. SLAVEREG Début de la zone dans l'esclave adressé vers lequel les données source sont écrites. La zone source réside toujours dans la zone d'adresse %MW. NOTE: Pour les esclaves d'un automate non-Control Expert : La zone de destination réside toujours dans la zone de registre 4x. SLAVEREG attend l'adresse cible comme décalage dans la zone 4x. Le "4" de début doit être omis (par exemple, 59 (contenu des variables ou valeur du littéral) = 40059). Le paramètre peut être entré en tant qu'adresse, variable localisée, variable non localisée ou littéral. NO_REG Nombre d'adresses à écrire vers le processeur esclave (1 ... 100). Le paramètre peut être entré en tant qu'adresse, variable localisée, variable non localisée ou littéral. 33002528.25 379 Communication WRITE_REG : Ecriture de registre REG_WRIT Un ARRAY de la même taille que la transmission planifiée doit faire l'objet d'un accord (≥ NO_ REG) pour ce paramètre. Le nom de ce tableau est défini comme paramètre. Si le tableau défini est trop petit, seule la quantité de données présente dans le tableau est transmise. Le paramètre doit être défini en tant que variable localisée. DONE La transition vers l'état ON pour un programme signifie que les données ont été transférées. Le paramètre peut être entré en tant qu'adresse, variable localisée ou variable non localisée. ERROR La transition vers l'état ON pour un cycle de programme indique la détection d'une nouvelle erreur. Le paramètre peut être entré en tant qu'adresse, variable localisée ou variable non localisée. STATUS Si une erreur se produit lors de l'exécution de la fonction, un code d'erreur, page 556 apparaît pendant un cycle au niveau de cette sortie. Le paramètre peut être entré en tant qu'adresse, variable localisée ou variable non localisée. 380 33002528.25 WRITE_REG_QX : écriture de registre sur le bus EIO Communication WRITE_REG_QX : écriture de registre sur le bus EIO Contenu de ce chapitre Description ............................................................................ 381 Introduction Ce chapitre décrit la fonction WRITE_REG_QX. Description Description de la fonction La fonction WRITE_REG_QX permet d'écrire dans les registres d'un esclave Modbus connecté à un module de communication Modicon M340 Modbus (BMX NOM) situé dans une station EIO. lorsque vous programmez une fonction WRITE_REG_QX, vous devez connaître les procédures de routage utilisées par votre réseau. NOTE: il est possible d'utiliser plusieurs copies de ce bloc fonction dans le programme. Mais l'instanciation multiple de ces copies n'est pas possible. Les paramètres supplémentaires EN et ENO peuvent être configurés. 33002528.25 381 Communication WRITE_REG_QX : écriture de registre sur le bus EIO Représentation en FBD Représentation : 382 33002528.25 WRITE_REG_QX : écriture de registre sur le bus EIO Communication Représentation en LD Représentation : Représentation en IL Représentation : CAL WRITE_REG_QX_Instance (ENABLE:=WriteRegQxEnable, ABORT: =WriteRegQxAbort, ADDR:=ModuleAddress, NO_REG:=NbRegistersToWrite, REG_WRITE:=WriteData, SLAVEREG:=SlaveAddress, IEC:=IndexAdjust, DONE= >WriteRegQxSuccessfull, ACTIVE=>WriteRegQxActive, ERROR= >WriteRegQxFaulty, STATUS=>ErrorCode) Représentation en ST Représentation : WRITE_REG_QX_Instance (ENABLE:=WriteRegQxEnable, ABORT: =WriteRegQxAbort, ADDR:=ModuleAddress, NO_REG:=NbRegistersToWrite, REG_WRITE:=WriteData, SLAVEREG:=SlaveAddress, IEC:=IndexAdjust, DONE= 33002528.25 383 Communication WRITE_REG_QX : écriture de registre sur le bus EIO >WriteRegQxSuccessfull, ACTIVE=>WriteRegQxActive, ERROR= >WriteRegQxFaulty, STATUS=>ErrorCode) Description des paramètres Description des paramètres d'entrée : Paramètre Type de données Signification ENABLE BOOL Réglé sur 1 pour écrire les registres. ABORT BOOL Réglé sur 1 pour abandonner l'opération en cours. ADDR ANY_ARRAY_INT Tableau contenant l'adresse de l'esclave Modbus, c'est-à-dire le résultat de la fonction ADDMX, page 80. NO_REG INT Nombre de registres à écrire dans l'esclave Modbus. REG_WRITE ANY_ARRAY_WORD Champ de données source (Une structure de données doit être déclarée en tant que variable localisée pour le fichier source.) SLAVEREG DINT Adresse d'offset du premier registre %MW à écrire dans l'esclave Modbus. IEC INT Réglage d'index appliqué au paramètre SLAVEREG. Le paramètre IEC peut prendre deux valeurs : • 0: %MWx • 1: %MWx+1 La valeur par défaut du paramètre IEC est 0 pour une cible Modicon M340. Description des paramètres de sortie : 384 Paramètre Type de données Signification DONE BOOL Réglé sur 1 lorsque l'exécution de la fonction a abouti. ACTIVE BOOL Réglé sur 1 lorsque l'exécution de la fonction est en cours. ERROR BOOL Réglé sur 1 si une erreur est détectée par le bloc fonction. STATUS WORD Fournit le code d'erreur, page 556 si une erreur est détectée par le bloc fonction. 33002528.25 WRITE_REMOTE : écriture de variables distantes Communication WRITE_REMOTE : écriture de variables distantes Contenu de ce chapitre Description ............................................................................ 385 Introduction Cette section décrit le bloc fonction de communication WRITE_REMOTE. Description Description fonctionnelle La fonction WRITE_REMOTE est utilisée pour écrire la valeur de variables distantes qui sont ensuite échangées entre applications d'automate. Lorsque la valeur d'entrée EN est TRUE : • Le bloc fonction de communication WRITE_REMOTE permet d'échanger des valeurs de variable entre automates. Les variables localisées et non localisées peuvent être écrites. • Il est possible d'écrire tout type de variable distante nommée (localisée ou non localisée) sur la base du nom de la variable. • Le nombre de broches liées à la sélection des variables est fixe et ne peut pas être modifié par l'utilisateur : 14 broches pour spécifier des variables locales et 14 broches pour spécifier des variables distantes. Il n'est pas nécessaire de connecter toutes les broches d'entrée et de sortie. NOTE: Les noms de variable distante indiqués dans le paramètre R_VAR_x peuvent être modifiés au moment de l'exécution. Cela entraîne une relance du processus de vérification entre les automates local et distant. Les paramètres supplémentaires EN et ENO peuvent être configurés. Limites liées au micrologiciel des UC Le bloc WRITE_REMOTE est pris en charge par : 33002528.25 385 Communication WRITE_REMOTE : écriture de variables distantes • UC M580 avec système d'exploitation de version 3.20 ou ultérieure • UC M340 avec système d'exploitation de version 3.30 ou ultérieure Pour permettre la vérification de type via une comparaison de sommes de contrôle (voir Contrôle des types de données, page 390), l'UC distante doit utiliser la version minimale de micrologiciel suivante : • UC M580 avec système d'exploitation de version 3.20 ou ultérieure • UC M340 avec système d'exploitation de version 3.30 ou ultérieure NOTE: Il est possible d'échanger des variables avec une UC M580 ou M340 distante disposant d'un micrologiciel antérieur ou avec une autre UC prenant en charge la fonction Dictionnaire de données en désactivant la vérification de type basée sur la comparaison de somme de contrôle à l'aide du paramètre CTRL, page 388. Représentation en FBD Représentation : 386 33002528.25 WRITE_REMOTE : écriture de variables distantes Communication Représentation en LD Représentation : Représentation en IL Représentation : CAL WRITE_REMOTE_Instance CTRL:=WriteRemote_Control, ENABLE: =WriteRemote_Enable, ADDR:=Address, ABORT:=WriteRemote_Abort, R_VAR_ 1:=RemoteVariable_1, ..., R_VAR_14:=RemoteVariable_14, L_VAR_1= >LocalVariable_1, ..., L_VAR_14=>LocalVariable_14, DONE=>WriteRemote_ Done, ACTIVE=>WriteRemote_Active, ERROR=>WriteRemote_ExecutionError, STATUS=>ErrorCode, EXT_STATUS=>ExtendedErrorCode) Représentation en ST Représentation : CAL WRITE_REMOTE_Instance (CTRL:=WriteRemote_Control, ENABLE: =WriteRemote_Enable, ADDR:=Address, ABORT:=WriteRemote_Abort, R_VAR_ 1:=RemoteVariable_1, ..., R_VAR_14:=RemoteVariable_14, L_VAR_1= >LocalVariable_1, ..., L_VAR_14=>LocalVariable_14, DONE=>WriteRemote_ Done, ACTIVE=>WriteRemote_Active, ERROR=>WriteRemote_ExecutionError, STATUS=>ErrorCode, EXT_STATUS=>ExtendedErrorCode); 33002528.25 387 Communication WRITE_REMOTE : écriture de variables distantes Description des paramètres Le tableau suivant décrit les paramètres d’entrée : Paramètre Type Commentaire CTRL ARRAY_INT [0..3] Paramètre d'entrée Control : • INT [0] : TIMEOUT définissant le temps d'attente maximum jusqu'à la fin d'exécution de la fonction WRITE_REMOTE (en millisecondes) • INT [1] : défini sur 1 si la version de micrologiciel de l'UC distante est antérieure à V3.30 pour M340 ou à V3.2 pour M580 NOTE: La vérification de type via la somme de contrôle du type n'est pas effectuée dans le cas de INT [1]. Cette vérification s'appuie uniquement sur la longueur du type (par exemple, les types des variables locale et distante sont considérés comme cohérents s'ils ont la même taille en octets). ENABLE BOOL La fonction est exécutée lorsque ce paramètre est ON. ABORT BOOL La fonction n'est pas exécutée (abandon) lorsque ce paramètre est ON. ADDR ANY_ARRAY_INT Tableau contenant l'adresse de l'automate, résultat de : • la fonction ADDM pour M340 ; • la fonction ADDMX pour M580 R_VAR_i STRING Identification (nom symbolique) d'une variable distante. L_VAR_i ANY Variable locale utilisée pour écrire la valeur sur l'équipement distant. NOTE: Le type d'une variable locale doit correspondre au type d'une variable distante (voir Contrôle des types de données ci-après). Le tableau suivant décrit les paramètres de sortie : 388 Paramètre Type Commentaire DONE BOOL La fonction demandée est correctement exécutée et validée. ACTIVE BOOL TRUE si l'exécution du bloc fonction est en cours (écriture des descripteurs de variable distante et de leurs valeurs). ERROR BOOL Un nouvel état non nul est reçu. 33002528.25 WRITE_REMOTE : écriture de variables distantes Communication Paramètre Type Commentaire STATUS INT Fournit le code d'erreur, page 556 si le bloc fonction détecte une erreur. NOTE: La valeur du paramètre STATUS est 0 uniquement si la valeur du paramètre EXT_STATUS est 0 pour chaque accès de variable. EXT_STATUS ARRAY [1..14] OF INT Fournit le code d'erreur étendu, page 556 si une erreur est détectée par le bloc fonction : un état pour chaque accès de variable. Règles d'utilisation Cette fonction prend en charge les données distantes suivantes : • Variables élémentaires • Tableaux • Instances DDT sans références (indirection de type =1) Les types de syntaxe suivants sont pris en charge : • MyVar • MyArray[2] • MyDdtArray[4].elem1 NOTE: L'index Array doit être une valeur immédiate. NOTE: Une variable distante est adressée par son nom ou son nom de chemin. Par exemple, MyVar[2].elem1. Le bloc fonction de communication WRITE_REMOTE écrit d'abord la définition, l'adresse et le type des variables distantes ; il écrit ensuite les variables elles-mêmes. Cette règle s'applique également aux modifications en ligne des données du serveur d'automate, par exemple la suppression d'une variable ou d'une instance de bloc fonction. La fonction Dictionnaire de données doit être activée à la fois par un automate client et par un automate serveur. Le bloc fonction de communication WRITE_REMOTE doit être invoqué et exécuté à partir de la tâche MAST, FAST, AUX0, ou AUX1. Le jeu de caractères autorisé pour une variable distante est Standard. Si un caractère étendu ou Unicode est utilisé pour une variable distante, une erreur est détectée et le message le serveur OFS affiche un message indiquant que la variable est introuvable. Si l'option Variables IHM uniquement est utilisée dans le Dictionnaire de données (Outils > Options du projet > Données intégrées de l'automate), l'attribut Variable IHM 33002528.25 389 Communication WRITE_REMOTE : écriture de variables distantes doit être sélectionné pour les variables échangées avec le bloc fonction WRITE_REMOTE. Cette opération est effectuée dans une application locale ou une application distante. NOTE: L'option Variables IHM uniquement ne doit pas nécessairement être configurée à l'identique dans les applications locale et distante. Contrôle des types de données ATTENTION FONCTIONNEMENT IMPRÉVU DE L'APPLICATION Vérifiez que le type de variable référencé par le paramètre R_VAR_x correspond au type de variable affecté au paramètre L_VAR_x. Le non-respect de ces instructions peut provoquer des blessures ou des dommages matériels. Le bloc fonction de communication WRITE_REMOTE écrit des variables dont les types de données sont identiques. Le contrôle du type de données entre variables locales et distantes est effectué par défaut et s'applique aux types suivants : • EDT • DDT • Tableau (ARRAY) de DDT • Tableau (ARRAY) anonyme Le contrôle de type d'utilisateur s'appuie sur la somme de contrôle et sur la longueur des types. Les attributs exportés du format source défini sont vérifiés au cours du contrôle de type basé sur l'égalité des sommes de contrôle. Un contrôle minimum de cohérence basé sur la longueur des types est systématiquement effectué pour vérifier que les variables locale et distante présentent la même taille en octets. Il n'y a pas de contrôle par nom de type en raison de la différence entre les définitions utilisées par l'automate client et le serveur. Pour désactiver le contrôle de type de données, utilisez les paramètre CTRL. Seul le contrôle de type de données basé sur l'égalité des sommes de contrôle de type peut être désactivé via le paramètre CTRL. 390 33002528.25 WRITE_REMOTE : écriture de variables distantes Communication NOTE: Les types de données STRING et STRING[n] sont considérés identiques même si la longueur de chaîne est différente. Seuls les caractères correspondant à la longueur minimum des variables locale et distante sont échangés. La troncature de chaîne concerne uniquement les variables de type chaîne (STRING ou STRING[n]). Cette règle ne s'applique pas aux variables de type chaîne situées à l'intérieur des DDT. NOTE: Les gammes d'UC Premium et Quantum ne présentent pas le même schéma d'alignement mémoire que les gammes M580 et M340. Les variables de type DDT ou tableau peuvent ne pas s'échanger correctement, en indiquant le code 16#1309 (nonconcordance de longueur) dans le champ EXT_STATUS correspondant. Pour éviter un échange de données incorrect, vous devez modifier le type DDT dans Premium ou Quantum. Pour plus d'informations, reportez-vous au chapitre DDT : Règles de mappage. Control Expert peut indiquer que l'alignement semble différent lors de la compilation. Pour activer cette option, modifiez la propriété La compatibilité du mappage DDT génère dans Paramètres du projet. Comportement du mode de redondance d'UC En mode de redondance d'UC, WRITE_REMOTE s'exécute de la même manière que les autres blocs fonction de communication. La règle de programmation décrite dans Bloc fonction de communication asynchrone (voir Modicon M580 - Redondance d'UC - Guide de planification du système pour architectures courantes) doit être suivie. Lors d'un basculement, l'adresse IP de l'automate cible est basculée dans l'automate serveur tandis que la requête en cours est relancée en mode de redondance. La communication avec le bloc fonction WRITE_REMOTE est ainsi restaurée et se poursuit normalement. NOTE: La définition d'une variable distante est communiquée à l'automate redondant en même temps que l'état interne du bloc fonction de communication WRITE_REMOTE. Simulateur d'automate Le bloc fonction de communication WRITE_REMOTE peut être utilisé avec le simulateur d'automate de requêtes de communication en cours. Voir EcoStruxure™ Control Expert Simulateur d'automate pour plus d’informations. Limites Cette fonction ne prend pas en charge les données suivantes mappées sur le type de données ANY : • Instances IODDT 33002528.25 391 Communication WRITE_REMOTE : écriture de variables distantes • Instances de DDT d'équipement contenant des types EBOOL • Instances de DDT comprenant une référence (indirection de type =1) • Tableaux de types EBOOL, EFB et DFB NOTE: Le comportement est identique pour le paramètre ANY. Autres limites : • Le nombre maximum de variables est 14 • La taille de la requête ne doit pas dépasser 1 Ko. Autrement dit : • 392 ◦ La taille totale des données échangées doit être inférieure à 1 Ko ◦ La somme de toutes les chaînes décrites dans tous les chemins de variable doit être inférieure à 1010 octets ◦ Si la taille de la requête est supérieure à 1 Ko, une erreur d'état est générée Le temps de réponse dépend du temps de cycle de l'automate et il est limité à la valeur de timeout indiquée dans le premier mot du paramètre CTRL. 33002528.25 WRITE_SDO : objet de données du service d'écriture Communication WRITE_SDO : objet de données du service d'écriture Contenu de ce chapitre WRITE_SDO : écriture de l'objet de données du service .................................................................................. 393 Objet de ce chapitre Ce chapitre décrit la fonction de communication WRITE_SDO. WRITE_SDO : écriture de l'objet de données du service Description de la fonction Le bloc fonction WRITE_SDO effectue une écriture (échanges explicites) sur l'équipement (SDO) à partir de l'application automate. Ce bloc fonction permet d'accéder au code d'annulation lorsque la commande SDO échoue (uniquement si le bus de terrain est en mode RUN et uniquement vers les équipements configurés). 33002528.25 393 Communication WRITE_SDO : objet de données du service d'écriture Représentation en FBD Représentation : 394 33002528.25 WRITE_SDO : objet de données du service d'écriture Communication Représentation en LD Représentation en IL Représentation : CAL WRITE_SDO_Instance (ENABLE := EnableWRITE_SDO, ABORT := AbortWRITE_ SDO, ADDR := DataStructureAddress, NODE := NodeNumber, INDEX := SDOIndex, SUBINDEX := SDOSubIndex, OFFSET := FirstSDO, NB_IN := DataNumberIn, DATA_IN := SDODataToWrite, DONE => WriteSDOSuccessful, ACTIVE => WriteSDOActive, ERROR => WriteSDOFaulty, STATUS => ErrorCode, SDOABORTCODE => AbortCode) Représentation en ST Représentation : WRITE_SDO_Instance (ENABLE := EnableWRITE_SDO, ABORT := AbortWRITE_SDO, ADDR := DataStructureAddress, NODE := NodeNumber, INDEX := SDOIndex, 33002528.25 395 Communication WRITE_SDO : objet de données du service d'écriture SUBINDEX := SDOSubIndex, OFFSET := FirstSDO, NB_IN := DataNumberIn, DATA_IN := SDODataToWrite, DONE => WriteSDOSuccessful, ACTIVE => WriteSDOActive, ERROR => WriteSDOFaulty, STATUS => ErrorCode, SDOABORTCODE => AbortCode) Description des paramètres Le tableau suivant décrit les paramètres d’entrée : Paramètre d'entrée Type de données Description ENABLE BOOL ON : l'opération est lancée. ABORT BOOL ON : l'opération en cours est annulée. ADDR ANY_ARRAY_INT Tableau contenant l'adresse de l'entité de destination de l'opération d'écriture, résultat de la fonction ADDMX. NODE BYTE Octet utilisé pour sélectionner un équipement esclave NMT particulier sur le réseau CANopen (16#01 à 16#7F). INDEX INT Deux octets utilisés pour accéder à un objet dans un équipement serveur de SDO CANopen. SUBINDEX BYTE Octet utilisé pour accéder à un sous-objet dans un équipement serveur de SDO CANopen. OFFSET INT Deux octets indiquant l'offset de début dans l'objet sélectionné. Ce paramètre peut être non nul lors des transferts de SDO segmentés. NOTE: non utilisé en cas d'adressage d'un module EtherNet/IP (adresse avec suffixe CIP). NB_IN INT Deux octets indiquant le nombre souhaité de valeurs à écrire (en octets). DATA_IN ANY_ARRAY_BYTE Données à écrire. Le tableau suivant décrit le paramètre de sortie : 396 Paramètre de sortie Type de données Description DONE BOOL ON : l'opération a abouti. ACTIVE BOOL ON : l'opération est en cours. ERROR BOOL ON : l'opération est annulée sans avoir abouti. 33002528.25 WRITE_SDO : objet de données du service d'écriture Communication Paramètre de sortie Type de données Description STATUS WORD Fournit le code d'erreur, page 556 si le bloc fonction détecte une erreur. SDOABORTCODE DWORD Code d'annulation de SDO, page 579 si STATUS = 16#4007. 33002528.25 397 Communication WRITE_VAR : Ecriture de variables WRITE_VAR : Ecriture de variables Contenu de ce chapitre Description ............................................................................ 398 Ecran de saisie assistée ......................................................... 404 Exemple d'écriture de mots sur un réseau................................ 407 Exemple d'écriture de mots via la liaison série des processeurs Modicon M340.................................................... 409 Exemple de vérification d'exécution......................................... 411 Objet de ce chapitre Ce chapitre décrit la fonction de communication WRITE_VAR. Description Description fonctionnelle La fonction WRITE_VAR permet d'écrire un ou plusieurs objets langage du même type : • bits internes • mots internes Assurez-vous que les objets à écrire sont consécutifs. Ils peuvent se trouver dans une UC distante ou un équipement connecté à une voie de communication. AVERTISSEMENT INCOMPATIBILITE DES DONNEES ECHANGEES Les alignements des structures de données ne sont pas identiques pour les modules Premium/Quantum et M340/M580. Il est donc nécessaire de vérifier la compatibilité des données échangées. Voir DDT : Règles de mappage (voir ™EcoStruxure Control Expert Langages de programmation et structure - Manuel de référence) pour plus d'informations sur les règles d'alignement. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Les paramètres supplémentaires EN et ENO peuvent être configurés. 398 33002528.25 WRITE_VAR : Ecriture de variables Communication Représentation en FBD Représentation : Représentation en LD Représentation : Représentation en IL Représentation : LD Address 33002528.25 399 Communication WRITE_VAR : Ecriture de variables WRITE_VAR Object_Type, First_Object, Object_Number, Data_to_Write, Management_Param Représentation en ST Représentation : WRITE_VAR(Address, Object_Type, First_Object, Object_Number, Data_ to_Write, Management_Param); Description des paramètres Le tableau suivant décrit les paramètres d’entrée : Paramètre Type Commentaire ADR ARRAY [0..5] OF INT pour Premium Instructions spécifiques par plate-forme matérielle : • ARRAY [0..7] OF INT pour Modicon M340 et M580 Premium : ◦ L'adresse de la voie (mode caractères) de réception du message est indiquée par la fonction ADDR. ◦ Adresse de l’entité destinataire de l’échange. Les adresses suivantes sont interdites : • {Réseau.Station}APP, • {Réseau.Station}APP.num, • adresses de diffusion (ALL, 0 pour le module TSX SCY 11601). • • Modicon M340 : ◦ L'adresse de la voie (mode caractères) de réception du message est indiquée par la fonction ADDM. ◦ La syntaxe de l'adresse est du type suivant : ADDM ('r.m.c.nœud'). Modicon M580 : ◦ TYP STRING Adresse de l'entité cible de l'opération d'écriture, résultat de la fonction ADDMX. Type des objets à écrire pour les automates Premium : • %M : bits internes, • %MW : mots internes, • %S : bits système, • %SW : mots système. Type des objets à écrire pour les automates Modicon M340 et M580 : • 400 %M : bits internes, 33002528.25 WRITE_VAR : Ecriture de variables Paramètre Type Communication Commentaire • %MW : mots internes. NUM DINT Indice du premier objet à écrire dans l’équipement destinataire. NB INT Nombre d’objets à écrire. EMIS ARRAY [n..m] OF INT Tableau de mots contenant la valeur des objets à écrire. Le tableau suivant décrit les paramètres d’entrée/sortie : Paramètre Type Commentaire GEST ARRAY [0...3] OF INT Table de gestion de l'échange composée des mots suivants : • Mot de rang 1 : mot géré par le système et composé de 2 octets : ◦ octet de poids fort : numéro d'échange, ◦ octet de poids faible : bit d'activité (rang 0) et bit d'annulation (rang 1) NOTE: le bit d'annulation n'est disponible que pour les automates Modicon M340 et M580. • Mot de rang 2 : mot géré par le système et composé de 2 octets : ◦ octet de poids fort : compte rendu d'opération ◦ octet de poids faible : compte rendu de communication • Mot de rang 3 : mot géré par l'utilisateur et qui définit le temps de réponse maximum en utilisant une base de temps de 100 ms. • Mot de rang 4 : mot géré par le système et qui définit la longueur de l'échange. Pour plus d'informations, consultez la section Structure des paramètres de gestion, page 39. NOTE: assurez-vous que le paramètre de longueur n'est pas initialisé avant d'exécuter la fonction. NOTE: L'Ethernet intégré à l'UC Premium sur les TSX P574xxx, TSX P575xxx et TSX P576xxx utilisés en tant que client permet uniquement d'écrire 100 mots au lieu de 123 mots pour d'autres modules Ethernet et UC Premium avec port ETY. 33002528.25 401 Communication WRITE_VAR : Ecriture de variables Transactions simultanées Le tableau ci-après fournit les capacités de chaque voie de communication pour traiter simultanément les transactions en fonction des diverses configurations sur les automates Micro et Premium Configuration Micro TSX 57 10 TSX 57 20 TSX 57 23/30/40/ 45/55, PCX 57, PMX 57 TSX 57 46/56 Port terminal du maître Uni-Telway 4 4 4 4 8 Liaison PCMCIA ou SCY du maître UniTelway 1 8 8 8 8 Port terminal de l'esclave client UniTelway 4 1 1 1 8 Liaison PCMCIA ou SCY de l'esclave client Uni-Telway 1 1 1 1 1 Port terminal de l'esclave serveur UniTelway 4 4 4 4 4 Liaison PCMCIA ou SCY de l'esclave serveur Uni-Telway 4 6 6 6 6 Port terminal Modbus 4 - - - - Liaison PCMCIA ou SCY Modbus 4 8 8 8 8 Bloc terminal en mode caractère 1 1 1 1 1 Liaison PCMCIA ou SCY en mode caractère 4 8 8 8 8 PCMCIA CANopen - 10 10 10 10 Liaison PCMCIA ou SCY Fipway 4 8 8 8 8 Modbus Plus 4 4 4 4 4 Ethernet - 16 16 16 16 Ethernet intégré - - - - 64 Le tableau suivant indique les capacités de chaque voie de communication à traiter simultanément les transactions en fonction des diverses configurations sur les automates Modicon MC80. 402 Configuration BMKC80•03•• CANopen intégré 16 Ethernet intégré 16 Port série principal ModBus 8 33002528.25 WRITE_VAR : Ecriture de variables Communication Le tableau ci-après indique les capacités de chaque voie de communication à traiter simultanément les transactions en fonction des diverses configurations sur les automates Modicon M340. Configuration BMX P34 1000 BMX P34 2000 BMX P34 2010/ 20102 BMX P34 2020 BMX P34 2030/ 20302 CANopen intégré - - 16 - 16 Ethernet intégré - - - 16 16 Port série principal ModBus 8 16 16 16 - Nombre maximal de requêtes client par scrutation sur les CPU Modicon M580 : Configuration Ethernet Référence d'UC (BME P58 ...) 10•0 20•0 30•0 40•0 5040 6040 16 32 48 80 80 96 Nombre maximal de requêtes client par scrutation sur les UC (CPU) Modicon M580 redondantes : Configuration Ethernet Référence d'UC (BME H58 ...) 2040 4040 6040 32 80 96 Nombre maximal de requêtes traitées par scrutation sur les CPU Modicon M580 : Configuration Référence d'UC (BME P58 ...) 10•0 20•0 30•0 40•0 5040 6040 UC de toute origine (1) 16 24 32 40 48 64 Ethernet intégré 8 12 16 24 (2) 32 32 USB 4 4 4 4 4 4 1. %SW90 (mot système) permet d'ajuster le nombre de requêtes traitées par cycle. Le nombre minimum de requêtes traitées par cycle est de 2 pour réduire la gigue au niveau de l'UC. 2. Le nombre maximal de requêtes est de 16 pour l'UC M580 BME P58 40•0 avec le micrologiciel 1.20 ou version antérieure. Nombre maximal de requêtes traitées par scrutation sur les UC (CPU) Modicon M580 redondantes : 33002528.25 403 Communication Configuration WRITE_VAR : Ecriture de variables Référence d'UC (BME H58 ...) 2040 4040 6040 UC de toute origine (1) 24 40 64 Ethernet intégré 12 24 32 USB 4 4 4 1. %SW90 (mot système) permet d'ajuster le nombre de requêtes traitées par cycle. Le nombre minimum de requêtes traitées par cycle est de 2 pour réduire la gigue au niveau de l'UC. NOTE: Assurez-vous que le nombre maximum de requêtes simultanées indiqué dans tous les tableaux prend en compte le nombre maximum de requêtes simultanées que chaque UC peut gérer par cycle, en tant que client et en tant que serveur (voir Modicon M580 - Manuel de référence du matériel). Ecran de saisie assistée Présentation Pour cette fonction de communication, vous pouvez avoir recours à l'écran de saisie assistée. Notez que cet écran n'est pas disponible pour les Modicon M340/M580. NOTE: les symboles de variable sont acceptés dans les différents champs de l'écran. 404 33002528.25 WRITE_VAR : Ecriture de variables Communication Figure La capture suivante est un exemple d'écran de saisie assistée de la fonction : Adresse Pour les automates Premium, les types d'objets possibles sont les suivants : • ADDR(STRING), • ARRAY [0..5] OF INT. NOTE: si vous saisissez une valeur directement dans le champ, le bouton de saisie d'adresse assistée devient gris. Type d'objet à écrire Pour les automates Premium, les choix possibles sont les suivants : • %M pour écrire des bits internes. • %MW pour écrire des mots internes. • %S pour écrire des bits système. • %SW pour écrire des mots système. NOTE: faites votre choix parmi les solutions proposées dans le menu déroulant. 33002528.25 405 Communication WRITE_VAR : Ecriture de variables Adresse du premier objet à écrire Les objets possibles sont de type DINT : • variables • constantes • valeur immédiate NOTE: lorsque vous saisissez une constante, un champ de saisie correspondant apparaît. Lorsque vous saisissez une variable, elle peut être affectée ou non. En revanche, les objets à écrire sont des variables affectées obligatoires. Nombre d'objets consécutifs à écrire Les objets possibles de type INT sont les suivants : • variables • constantes • valeur immédiate NOTE: lorsque vous saisissez une constante, un champ de saisie correspondant apparaît. Lorsque vous saisissez une variable, elle peut être affectée ou non. Données à écrire La zone des données à écrire est un tableau d'entiers. La taille de ce tableau dépend du nombre d'objets à écrire. Le tableau d'entiers peut être affecté ou non. Compte rendu Le compte rendu est un tableau de 4 entiers. NOTE: veillez à ne pas utiliser plusieurs zones de mémoire identiques pour les tables de rapport, car la fonction de lecture de variables risque de ne pas fonctionner. 406 33002528.25 WRITE_VAR : Ecriture de variables Communication Exemple d'écriture de mots sur un réseau Présentation Jusqu'à présent, les exemples ont été écrits en utilisant l'adressage direct (utilisation de % MWi), mais il est également possible de créer les mêmes exemples à l'aide de variables non localisées. L'exemple ci-après utilise des variables non localisées et illustre l'écriture d'un tableau de 50 mots nommé Tab_1 (déclaré comme ARRAY [0..49] OF INT) dans l'esclave Uni-Telway, avec l'adresse suivante : • Réseau 20 • Station 1 • Module SCM2116 dans un TSX 87 à l'emplacement 5 du rack de base • Voie 1 • Adresse serveur de l'esclave Ad0 = 3. Les valeurs à écrire se trouvent dans la variable Tab_1 de l'expéditeur. Les paramètres de gestion se trouvent dans un tableau de 4 entiers nommé Management_ Parameter (déclaré comme ARRAY [0..3] OF INT). 33002528.25 407 Communication WRITE_VAR : Ecriture de variables Figure Les deux stations sont connectées via un réseau Fipway. Programmation Programmation en ST : IF RE(%I0.3.1) AND NOT Management_Parameter[0].0 THEN WRITE_VAR(ADDR(’{20.1}0.5.1.3’),’%MW’,0,50,Tab_1,Management_ Parameter); END_IF; Paramètres de la requête : 408 33002528.25 WRITE_VAR : Ecriture de variables Paramètres ADDR(‘{20.1}5.1.3’) Communication Description • {20.1} : réseau 20, station 1 • 0 : rack • 5 : module • 1 : voie 1 • 3 : adresse cible ’%MW’ Type d'objet (mot interne) 0 Adresse du premier objet à écrire 50 Nombre d'objets consécutifs à écrire Tab_1 Données à écrire Management_Parameter Table de gestion Exemple d'écriture de mots via la liaison série des processeurs Modicon M340 Présentation Cet exemple utilise deux processeurs Modicon M340 qui communiquent via une liaison série Modbus. Description de l'exemple L'exemple ci-après utilise des variables non localisées et illustre l'écriture d'une table de 50 mots non localisée nommée Tab_1 (déclarée comme ARRAY [0..49] OF INT) dans l'esclave Modbus. Les paramètres de gestion se trouvent dans un tableau de 4 entiers nommé Management_Parameter (déclaré comme ARRAY [0..3] OF INT). Dans cet exemple, le numéro de l'esclave Modbus est 7, de sorte que le paramètre ADDM d'entrée est ‘0.0.0.7’ : • 0 : numéro du rack du processeur égal à 0 • 0 : numéro d'emplacement du processeur dans le rack égal à 0 (le numéro d'emplacement d'un processeur Modicon M340 est toujours 0) • 0 : numéro de voie égal à 0 (la liaison série d'un processeur Modicon M 340 est toujours la voie 0) • 7 : le numéro d'esclave configuré est 7 33002528.25 409 Communication WRITE_VAR : Ecriture de variables Les valeurs à écrire se trouvent dans la variable Tab_1 de l'expéditeur. Figure Les deux processeurs Modicon M340 sont connectés via une liaison Modbus : Programmation Programmation en ST : IF RE(%I0.3.1) AND NOT Management_Parameter[0].0 THEN WRITE_VAR(ADDM(’0.0.0.7’),’%MW’,0,50,Tab_1,Management_ Parameter); END_IF; Les paramètres de requête sont les suivants : Paramètres ADDM(‘0.0.0.7’) ’%MW’ 410 Description • 0 : numéro du rack du processeur esclave • 0 : numéro d'emplacement du processeur esclave • 0 : numéro de voie (numéro de port série) • 7 : numéro d'esclave configuré Type d'objet (mot interne) 33002528.25 WRITE_VAR : Ecriture de variables Communication Paramètres Description 0 Adresse du premier objet à écrire 50 Nombre d'objets consécutifs à écrire Tab_1 Données à écrire Management_Parameter Table de gestion Exemple de vérification d'exécution Présentation L'exemple ci-après illustre la fonction WRITE_VAR avec la vérification des paramètres de gestion. Programmation de la fonction Programmation en ST : IF NOT %M20 AND %I0.1.2 THEN %MW200:4:= 0; INC %MW1700 %MW202:= 50; WRITE_VAR(ADDR('0.3.1.7'),'%MW',20,1,%MW1700:1,%MW200:4); SET %M20; END_IF; • le bit d'entrée %I0.1.2 contrôle la fonction, • le bit interne %M20 permet de tester l'activité de la fonction, • %MW200:4:= 0; définit la table de gestion sur la valeur 0, • INC %MW1700; incrémente le mot %MW1700, • MW202:= 50; initialise la valeur timeout sur 5 secondes. NOTE: La syntaxe WRITE_VAR(ADDM('0.3.1.7'),'%MW',20,1,%MW1700:4,% MW200:4); doit être utilisée pour les automates Modicon M340, car la fonction ADDR n'est pas compatible avec ces automates. 33002528.25 411 Communication WRITE_VAR : Ecriture de variables Programmation de la vérification de l'échange Programmation en ST : IF %M20 AND NOT %M200.0 THEN INC %MW204; IF %MW201 = 0 THEN INC %MW205; ELSE SET %Q0.2.2; INC %MW206; %MW207 := %MW201; END_IF; END_IF; 412 • %MW204 compte le nombre d'échanges, • %MW205 compte le nombre d'échanges corrects, • %MW206 compte le nombre d'échanges sources d'erreurs, • %MW207 stocke le message d'erreur, • %Q0.2.2 indique l'échec d'un échange. 33002528.25 XMIT: Transmit Communication XMIT: Transmit Contenu de ce chapitre Description sommaire ............................................................ 413 Représentation ...................................................................... 414 Description des paramètres .................................................... 417 Description de la structure des données de XMIT_SET............. 420 Description de la structure des données de XMIT_CFG ............ 420 Exemple d'application ............................................................ 427 Introduction Ce chapitre décrit le bloc XMIT. Il ne diffère du bloc XXMIT que dans l'interface. Pour une description fonctionnelle, consultez la section relative au bloc XXMIT. Description sommaire Description de la fonction Le bloc fonction XMIT (émission) envoie des messages Modbus depuis un automate maître vers plusieurs automates esclaves, ou des chaînes de caractères ASCII depuis le port Modbus 1 ou 2 d'un automate esclave vers des imprimantes et des terminaux ASCII. XMIT envoie ces messages via des modems à numérotation automatique, des modems radio ou une connexion directe. En mode de communication, le bloc XMIT exécute des fonctions d'entrée ASCII générales, y compris au format ASCII simple et ASCII terminé. Vous pouvez importer des données ASCII ou binaires dans votre automate et les convertir en diverses données binaires ou ASCII pour les envoyer à des équipements DCE (Data Communication Equipment) en fonction des besoins de votre application. NOTE: Le bloc XMIT diffère du bloc XXMIT uniquement dans l'interface. Par conséquent, pour obtenir les descriptions fonctionnelles, reportez-vous à XXMIT, page 434. EN et ENO peuvent être configurés comme paramètres supplémentaires. 33002528.25 413 Communication XMIT: Transmit Diagnostics Le bloc intègre un diagnostic qui vérifie qu'aucun autre bloc XMIT n'est actif dans l'automate sur le même port. Dans ce bloc, une table de contrôle permet de contrôler la liaison de communication entre l'automate et les équipements DCE connectés au port Modbus 1 ou 2 de l'automate. Le bloc n'active PAS le voyant du port en cas d'émission de données. Bloc XMIT avec plusieurs maîtres Modbus Modbus est un protocole « maître/esclave » conçu pour un seul maître interrogeant plusieurs esclaves. Par conséquent, si vous utilisez le bloc XMIT dans un réseau comprenant plusieurs maîtres, vous êtes responsable de la résolution des conflits et de l'élimination des collisions. La programmation par schémas à contacts vous aidera à résoudre facilement ces problèmes. Restrictions Le bloc contrôle les ports Modbus 1 et 2 des UC Momentum. Il ne peut être utilisé qu'avec le « stripped exec ». Il fonctionne comme son équivalent LL984, mais sans les fonctions de conversion, de copie et de comparaison de chaînes ASCII, et sans les fonctions d'état de port. Représentation Représentation en FBD 414 33002528.25 XMIT: Transmit Communication Représentation en LD Représentation en IL CAL XMIT_instance(START:=Start_param, ABORT:=Abort_param, MSG_OUT: =MsgOut_param, SET:=Set_param, PORT:=Port_param, MSG_IN=>MsgIn_ param, CFG=>Configuration_param, OP_ACT=>Active_param, NO_SUC= >Error_param, EXT=>Status_param) Représentation en ST XMIT_instance (START:=Start_param, ABORT:=Abort_param, MSG_OUT: =MsgOut_param, SET:=Set_param, PORT:=Port_param, MSG_IN=>MsgIn_ param, CFG=>Configuration_param, OP_ACT=>Active_param, NO_SUC= >Error_param, EXT=>Status_param); Description des paramètres Description du paramètre de bloc Paramètres Type de données Signification SET XMIT_SET Structure de données de la configuration de XMIT MSG_OUT (1) ANY Tampon des messages sortants (dans la plage 4x) PORT BYTE Port (0 ou 1) 33002528.25 415 Communication XMIT: Transmit Paramètres Type de données Signification START BOOL 1: lance l'opération de XMIT. ABORT BOOL 1: abandonne l'opération XMIT en cours. MSG_IN (1) ANY Tampon des messages entrants (dans la plage 4x) CFG XMIT_SET Structure de données avec tous les composants de la configuration de XMIT, notamment les variables définies automatiquement et inutilisées. Uniquement à des fins d'affichage. Doit être compris dans la plage 4x. OP_ACT BOOL 1: opération XMIT en cours. NO_SUC BOOL 1: opération ayant échoué. OP_SUC BOOL 1: opération ayant abouti. EXT (2) INT Affiche un code d'erreur généré par XMIT (1) Aucune vérification du mappage dans les quatre registres. Les données ne sont peut-être pas localisées. (2) Réservé à un autre usage avec la redondance d'UC Momentum Structure de données de XMIT_SET 416 Elément Type de données Composant correspondant dans le XMIT LL984 BaudRate WORD Registre 4x+3 (débit de données) DataBits BYTE Registre 4x+4 (bits de données) Parity BYTE Registre 4x+5 (parité) StopBits BYTE Registre 4x+6 (bits d'arrêt) CommandWord WORD Registre 4x+8 (mot de commande) MessageLen WORD Registre 4x+10 (longueur du message) ; en cas de réception ASCII terminée, ce composant est configuré automatiquement. RespTimeOut WORD Registre 4x+11 (timeout de réponse (ms)) RetryLimit WORD Registre 4x+12 (nombre maximum de nouvelles tentatives) XmStartDelay WORD Registre 4x+13 (début du retard de transmission (ms)) XmEndDelay WORD Registre 4x+14 (fin du retard de transmission (ms)) 33002528.25 XMIT: Transmit Communication Structure de données de XMIT_CFG Elément Type de données Composant correspondant dans le XMIT LL984 FaultStatus WORD Registre 4x+1 (état de défaut) UserAvail_1 WORD Registre 4x+2 (disponible pour l'utilisateur) BaudRate WORD Registre 4x+3 (débit de données) DataBits WORD Registre 4x+4 (bits de données) Parity WORD Registre 4x+5 (parité) StopBits WORD Registre 4x+6 (bits d'arrêt) UserAvail_2 WORD Registre 4x+7 (disponible pour l'utilisateur) CommandWord WORD Registre 4x+8 (mot de commande) MessagePtr WORD Registre 4x+9 (pointeur du message) MessageLen WORD Registre 4x+10 (longueur du message) RespTimeOut WORD Registre 4x+11 (timeout de réponse (ms)) RetryLimit WORD Registre 4x+12 (nombre maximum de nouvelles tentatives) XmStartDelay WORD Registre 4x+13 (début du retard de transmission (ms)) XmEndDelay WORD Registre 4x+14 (fin du retard de transmission (ms)) CurrentRetry WORD Registre 4x+15 (nouvelle tentative en cours) Description des paramètres MSG_OUT MSG_OUT contient les données du message à transférer, par exemple des caractères ASCII pour un transfert ASCII, la définition des caractères de fin pour une entrée ASCII terminée ou des modèles Modbus pour des messages du maître Modbus. Le type de données à attribuer au paramètre doit être un tableau de type WORD. Ce tableau doit être affecté à une plage de registres 4x. La longueur du champ doit être égale à celle du champ MSG_IN. Si le champ est affecté à la plage des variables non localisées, un message d'erreur d'exécution est généré. 33002528.25 417 Communication XMIT: Transmit SET SET contient la configuration du bloc fonction XMIT, au format de la structure de données XMIT_SET. Ce paramètre peut être affecté à une variable non localisée. Les composants de la structure de données ont la même fonction que ceux de la configuration LL984 de XMIT. La seule différence réside dans le fait que les variables sont configurées automatiquement par le système et que les variables inutilisées ne s'affichent pas dans cette structure de données. Cela signifie qu'une configuration complète requiert la définition de tous les composants de cette structure de données. PORT PORT spécifie l'interface de communication. Les seules valeurs autorisées sont « 0 » et « 1 ». NOTE: si vous utilisez des blocs EF XMIT, L9_XMIT ou XXMIT sur les deux ports série de l'UC 171 CBU 78090 Momentum, créez une instance de bloc EF pour chaque port. Ne modifiez pas le numéro des ports de façon dynamique. Définissez ce numéro comme valeur initiale de chaque instance, car le bloc ne stocke qu'une configuration de port. START Le signal 1 lors de la phase START déclenche l'opération XMIT. Il doit être appliqué jusqu'à ce que l'opération soit terminée ou qu'une erreur survienne. ABORT Le signal 1 met fin à l'opération XMIT en cours et écrit le code d'abandon « 121 » dans le composant « FaultStatus » de la structure de données XMIT_CFG au niveau de la sortie CFG. MSG_IN MSG_IN contient les données du message entant, par exemple l'entrée ASCII terminée ou les réponses à une commande de maître Modbus préalablement envoyée par le bloc fonction XMIT. Le type de données à attribuer à ce paramètre est un tableau de type WORD. Ce tableau doit être affecté à une plage de registres 4x. La longueur du champ doit 418 33002528.25 XMIT: Transmit Communication être égale à celle du champ MSG_OUT. Si le champ est affecté à la plage des variables non localisées, un message d'erreur d'exécution est généré. CFG CFG contient une copie de la configuration du bloc fonction XMIT, définie dans SET sous la forme d'une structure de données XMIT_CFG. Elle comprend des variables définies automatiquement et des variables inutilisées. Les composants de la structure de données ont la même fonction que ceux de la configuration LL984 de XMIT. Cette structure doit être affectée à une plage de registres 4x. Si elle est affectée à la plage des variables non localisées, un message d'erreur d'exécution est généré. CFG permet de vérifier la configuration appliquée. OP_ACT Le signal 1 indique qu'une opération XMIT est en cours. NO_SUC Le signal 1 indique qu'une erreur est survenue ou que l'opération XMIT en cours est terminée. OP_SUC Le signal 1 indique que l'opération XMIT a réussi. EXT Affiche un code d'erreur (sauf en mode redondance d'UC). 33002528.25 419 Communication XMIT: Transmit Description de la structure des données de XMIT_ SET XMIT_SET Cette structure de données contient la configuration propre au fonctionnement du bloc XMIT. Cette variable peut être stockée en mémoire non affectée. Les éléments qui la composent ont la même signification que les éléments correspondants de la structure XMIT_CFG, page 420. XMIT_SET permet de configurer le bloc XMIT. Les valeurs de cette structure de données sont transmises à XMIT_CFG. NOTE: XMIT_SET ne contient pas d'élément MessagePtr. Celui-ci est automatiquement calqué sur l'adresse du tableau MSG_IN et placé dans XMIT_CFG. Description de la structure des données de XMIT_ CFG Présentation Cette structure de données contient les données de configuration utilisées par le bloc XMIT. N'écrivez pas directement dans ce tableau, car le contenu est automatiquement généré ou copié depuis XMIT_SET. Voici une description détaillée de chacun des (16) registres de la table de contrôle des communications de XMIT. XMIT_CFG.Revision (lecture seule) Affiche le numéro de révision courant du bloc XMIT. Ce numéro est chargé automatiquement par le bloc en lieu et place de tout autre numéro mémorisé dans ce registre. XMIT_CFG.FaultStatus (lecture seule) Ce champ affiche un code d'erreur généré par le bloc XMIT. Le tableau ci-dessous présente une liste complète. 420 33002528.25 XMIT: Transmit Communication Code d'erreur Description du défaut 1 Exception Modbus - Fonction incorrecte 2 Exception Modbus - Adresse de données incorrecte 3 Exception Modbus - Valeur de données incorrecte 4 Exception Modbus - Erreur abonné esclave 5 Exception Modbus - Confirmation 6 Exception Modbus - Abonné esclave occupé 7 Exception Modbus - Confirmation négative 8 Exception Modbus - Erreur de parité mémoire 9 ... 99 Réservé 100 La zone de données de l'automate esclave ne peut être égale à 0 101 La zone de données de l'automate maître ne peut être égale à 0 102 Bit de sortie (0x) non configuré 103 Registre de maintien (4x) non configuré 104 La longueur des données ne peut être égale à 0 105 Le pointeur vers la table de messages ne peut être égal à 0 106 Le pointeur vers la table de messages est hors des limites des registres de maintien (4x) configurés 107 Timeout de transmission de message (erreur générée lorsque l'émetteur-récepteur asynchrone universel ne parvient pas à terminer une transmission en 10 secondes maximum ; elle contourne le compteur de répétition et active la sortie d'erreur à la première erreur). 108 Erreur non définie 109 Le modem signale ERREUR 110 Le modem a renvoyé le message PAS DE PORTEUSE 111 Le modem a renvoyé le message PAS DE TONALITE 112 Le modem a renvoyé le message OCCUPE 113 Total de contrôle LRC non valide renvoyé par l'automate esclave 114 Total de contrôle CRC non valide renvoyé par l'automate esclave 115 Code de fonction Modbus non valide 116 Timeout pour le message de réponse Modbus 117 Timeout de réponse Modem 118 XMIT n'a pas obtenu d'accès au port de communication de l'automate (port 1 ou 2) 33002528.25 421 Communication XMIT: Transmit Code d'erreur Description du défaut 119 XMIT ne peut libérer le récepteur de port de l'automate 120 XMIT n'a pas pu activer l'émetteur-récepteur asynchrone universel de l'automate 121 L'utilisateur a envoyé une commande d'abandon 122 Inutilisé 123 Inutilisé 124 Etat interne non défini 125 Mode de diffusion non autorisé avec ce code de fonction Modbus 126 Le périphérique DCE n'a pas activé le signal CTS 127 Configuration non valide (débit de données, bits de données, parité ou bits d'arrêt) 128 Réponse inattendue reçue de l'esclave Modbus 129 Paramétrage du mot de commande non valide 130 Mot de commande modifié en cours d'activité 131 Nombre de caractères non valide 132 Bloc de registre non valide 133 Erreur de débordement de l'entrée FIFO ASCII 134 Nombre de caractères de début ou de fin non valide XMIT_CFG.UserAvail_1 Le bloc XMIT n'utilise pas ce registre. Il peut cependant être utilisé comme pointeur dans la logique utilisateur. XMIT_CFG.DataBits Le bloc XMIT prend en charge les bits de données suivants : 7 et 8. Pour configurer une taille de bit de données, entrez un nombre décimal dans cet élément. Les messages Modbus peuvent être envoyés en mode ASCII (7 ou 8 bits de données) ou RTU (8 bits de données). Si vous entrez un bit de données incorrect, le bloc signale une configuration incorrecte (code d'erreur 127) dans l'élément XMIT_CFG.FaultStatus. Pour plus d'informations sur les formats des messages Modbus, reportez-vous au document Modicon Modbus Protocol Reference Guide (www.modbus.org). 422 33002528.25 XMIT: Transmit Communication XMIT_CFG.Parity Le bloc XMIT prend en charge la parité suivante : aucune, impaire et paire. Entrez l'un des nombres décimaux suivants : 0 = aucune parité, 1 = parité impaire ou 2 = parité paire. Si vous entrez une parité incorrecte, le bloc affiche une erreur de configuration incorrecte (code d'erreur 127) dans l'élément XMIT_CFG.FaultStatus. XMIT_CFG.StopBits Le bloc XMIT prend en charge un ou deux bits d'arrêt. Entrez l'un des nombres décimaux suivants : 1 = un bit d'arrêt ou 2 = deux bits d'arrêt. Si vous entrez un bit d'arrêt incorrect, le bloc affiche une erreur de configuration incorrecte (code d'erreur 127) dans l'élément XMIT_ CFG.FaultStatus. XMIT_CFG.UserAvail_2 Le bloc XMIT n'utilise pas cet élément. Il peut cependant être utilisé comme pointeur dans la logique utilisateur. XMIT_CFG.CommandWord Le bloc XMIT interprète chaque bit du mot de commande comme fonction à exécuter. Si les bits 7 et 8 sont actifs simultanément, si plusieurs bits parmi les bits 13, 14, 15 ou 16 sont actifs simultanément ou si le bit 7 n'est pas actif alors que l'un des bits 13, 14, 15 ou 16 l'est, le système génère l'erreur 129. D'autres restrictions sont applicables. Pour plus de détails, reportez-vous à la section Fonctions de communication du bloc XXMIT, page 450. La définition de chaque bit est présentée dans le tableau ci-dessous. Bit Définition Bit 1 (bit de poids fort) Réservé Bit 2 Validation du contrôle modem RTS/CTS Réglé sur 1 lorsqu'un équipement DCE connecté à l'automate nécessite une reconnaissance matérielle à l'aide du contrôle RTS/CTS. Ce bit peut être utilisé avec les valeurs contenues dans XMIT_CFG.XmStartDelay et XMIT_CFG.XmEndDelay. Le retard du début de la transmission garde le signal RTS activé pendant (X mS) avant que le bloc XMIT envoie le message via le port de l'automate. De même, le retard de fin de transmission garde le signal RTS activé pendant (X ms) après l'envoi d'un message par le bloc XMIT via le port de l'automate. Après l'expiration du retard de fin de transmission, le bloc XMIT désactive le signal RTS. 33002528.25 423 Communication 424 XMIT: Transmit Bit Définition Bit 3 Validation du mode RS485 Réglé sur 1 lorsque le port sélectionné doit fonctionner en mode RS485. Sinon, il est réglé sur 0, valeur correspondant au mode RS232. Bit 4 Réservé Bit 5 Entrée ASCII terminée Réglé sur 1 pour supprimer et ignorer tous les caractères du tampon FIFO jusqu'à ce que la chaîne de départ soit trouvée. Ensuite, les caractères de début et les caractères suivants sont écrits dans le tableau MSG_IN jusqu'à ce que la séquence de fin soit trouvée. La chaîne de fin est également écrite dans le tableau MSG_IN. Pour plus de détails, reportez-vous à la section Fonction d'entrée ASCII terminée, page 452. Bit 6 Entrée ASCII simple Réglé sur 1 pour supprimer les caractères ASCII du tampon FIFO en vue de l'écriture dans le tableau MSG_IN. Le pointeur de message (XMIT_CFG.MessagePtr) adopte automatiquement l'adresse de registre spécifiée pour le tableau MSG_IN. Pour plus de détails, reportez-vous à la section Fonction d'entrée ASCII simple, page 454. Bit 7 Validation des messages sous forme de chaînes ASCII Réglé sur 1 lorsque vous souhaitez envoyer des messages ASCII à partir de l'automate. Le bloc XMIT envoie des chaînes ASCII d'une longueur maximale de 1024 caractères. Programmez le message ASCII dans le tableau MSG_OUT. Deux caractères sont autorisés par registre. N'utilisez que le bit 7 OU le bit 8 ; n'essayez pas d'utiliser les deux. Pour plus de détails, reportez-vous à la section Messages sous forme de chaînes ASCII, page 455. Bit 8 Validation des messages Modbus Réglé sur 1 lorsque vous souhaitez envoyer des messages Modbus à partir de l'automate. Les messages Modbus peuvent être envoyés au format RTU ou ASCII. Avec 8 bits de données, le bloc XMIT utilise le format Modbus RTU. Avec 7 bits de données, il utilise le format Modbus ASCII. N'utilisez que le bit 7 OU le bit 8 ; n'essayez pas d'utiliser les deux. Bit 9 Validation du tampon FIFO de réception ASCII Réglé sur 1 pour permettre au bloc XMIT de prendre le contrôle du port sélectionné (1 ou 2) de l'automate. Le bloc commence à recevoir des caractères ASCII dans un tampon FIFO circulaire vide de 512 octets. Pour plus de détails, reportez-vous à la section Tampon FIFO de réception ASCII, page 464. Bit 10 Validation du caractère de retour arrière Réglé sur 1 pour autoriser le traitement spécial du caractère ASCII de retour arrière (BS, 8 hex). Lors de l'utilisation d'une entrée ASCII simple (bit 6) ou terminée (bit 5), chaque caractère de retour arrière est supprimé du tampon FIFO et peut ne PAS être stocké dans le tableau MSG_IN. Pour plus de détails, reportez-vous à la section Validation du caractère de retour arrière, page 465. Bit 11 Validation du contrôle de flux RTS/CTS Réglé sur 1 pour autoriser le contrôle de flux matériel en duplex intégral à l'aide des signaux de synchronisation RTS et CTS pour les messages ASCII. Le contrôle de flux RTS/CTS fonctionne en mode d'entrée et en mode de sortie. Pour plus de détails, reportez-vous à la section Validation du contrôle de flux RTS/CTS, page 465. 33002528.25 XMIT: Transmit Communication Bit Définition Bit 12 Validation du contrôle de flux Xon/Xoff Réglé sur 1 pour permettre un contrôle de flux logiciel en duplex intégral, à l'aide des caractères ASCII Xon (DC1, 11 Hex) et Xoff (DC3, 13 Hex). Le contrôle de flux Xon/Xoff fonctionne en mode d'entrée et en mode de sortie. Pour plus de détails, reportez-vous à la section Validation du contrôle de flux Xon/Xoff, page 467. Bit 13 Modem à numérotation par impulsion Réglé sur 1 lorsque vous utilisez un modem à numérotation automatique compatible Hayes et que vous souhaitez composer un numéro de téléphone en utilisant la numérotation par impulsion. Programmez le numéro de téléphone dans le tableau MSG_IN. La longueur du message doit être définie dans XMIT_SET.MessageLen. Les numéros composés par impulsion sont envoyés au modem, automatiquement précédés d'ATDP et suivis d'un retour chariot <CR> et d'un retour à la ligne <LF>. Le message de numérotation étant une chaîne ASCII, le bit 7 doit être à 1 avant l'envoi du numéro à composer. Bit 14 Raccrochage du modem Réglé sur 1 lorsque vous utilisez un modem à numérotation automatique compatible Hayes et que vous souhaitez raccrocher le modem. Vous devez utiliser les schémas à contacts pour mettre ce bit à 1. Le message de raccrochage étant une chaîne ASCII, le bit 7 doit être à 1 avant l'envoi du message. Les messages de raccrochage sont envoyés au modem, automatiquement précédés de +++AT et suivis d'un retour chariot <CR> et d'un retour à la ligne <LF>. Le bloc XMIT recherche une réponse de déconnexion correcte de la part du modem avant d'ACTIVER le signal de sortie OP_SUC qui indique que l'exécution a réussi. Bit 15 Modem à numérotation à tonalité Réglé sur 1 lorsque vous utilisez un modem à numérotation automatique compatible Hayes et que vous souhaitez composer un numéro de téléphone au clavier. Le message de numérotation doit être placé dans le tableau MSG_OUT et la longueur du message dans XMIT_SET.MessageLen. Les numéros composés par tonalité sont envoyés au modem, automatiquement précédés d'ATDT et suivis d'un retour chariot <CR> et d'un retour à la ligne <LF>. Le message de numérotation étant une chaîne ASCII, le bit 7 doit être à 1 avant l'envoi du numéro à composer. Bit 16 Initialisation du modem Réglé sur 1 lorsque vous utilisez un modem à numérotation automatique compatible Hayes et que vous souhaitez initialiser le modem. Programmez le message d'initialisation dans le tableau MSG_OUT et la longueur du message dans XMIT_ SET.MessageLen. Tous les messages sont envoyés au modem, automatiquement précédés de AT et suivis d'un retour chariot <CR> et d'un retour à la ligne <LF>. Le message d'initialisation étant une chaîne ASCII, le bit 7 doit être à 1 avant l'envoi du message. 33002528.25 425 Communication XMIT: Transmit XMIT_CFG.MessagePtr Ce pointeur est géré automatiquement par le bloc XMIT. Il pointe vers le début de la table du message, c'est-à-dire le tableau MSG_IN, page 418 ou le tableau MSG_OUT, page 417 selon la fonction XMIT choisie. Chaque élément du tableau (registre 4x) contient jusqu'à deux caractères ASCII. Chaque chaîne ASCII peut comporter 1 024 caractères au maximum. Par exemple, pour envoyer 10 messages ASCII à partir de l'automate, vous devez transférer les 10 caractères ASCII dans le tableau MSG_OUT successivement après chaque opération réussie du bloc XMIT. XMIT_CFG.MessageLen Indiquez la longueur du message actuel. Lorsque le bloc XMIT envoie des messages Modbus pour les codes de fonction 01, 02, 03, 04, 05, 06, 08, 15 et 16, la longueur du message est automatiquement définie sur cinq. Lorsqu'il reçoit une entrée au format ASCII terminé, la longueur du message doit être définie sur cinq ou une erreur survient. Lorsque le bloc XMIT envoie des messages Modbus pour les codes de fonction 20 et 21, la longueur du message est automatiquement définie sur six. Lorsqu'il envoie des messages ASCII, leur longueur peut être comprise entre 1 et 1024 caractères ASCII. XMIT_CFG.RespTimeOut Indiquez la valeur du délai en millisecondes (ms) correspondant au temps d'attente du bloc XMIT avant la réception d'une réponse correcte de la part d'un équipement esclave (automate, modem, etc.). De plus, la durée s'applique aux transmissions ASCII et aux commandes de contrôle de flux. Lorsque la réponse n'est pas entièrement structurée dans le délai imparti, le bloc XMIT génère une erreur. Les valeurs correctes sont comprises entre 0 et 65 535 ms. Le timeout débute après l'envoi du dernier caractère du message. XMIT_CFG.RetryLimit Entrez le nombre de tentatives d'envoi d'un message effectuées par le bloc XMIT avant la réception d'une réponse correcte d'un équipement esclave (automate, modem, etc.). Lorsque la réponse n'est pas entièrement structurée dans le délai imparti, le bloc XMIT génère une erreur et un code d'erreur. Les valeurs correctes sont comprises entre 0 et 65 535 tentatives. Ce champ est utilisé conjointement avec le timeout de réponse (4x+11). 426 33002528.25 XMIT: Transmit Communication XMIT_CFG.StartDelay Lorsque le contrôle RTS/CTS est activé, saisissez en millisecondes (ms) le délai d'attente du bloc XMIT entre la réception du message CTS et la transmission d'un message par le port n°1 de l'automate. De plus, vous pouvez utiliser ce registre même lorsque le contrôle RTC/CTS n'est PAS activé. Dans ce cas, la durée saisie détermine le temps d'attente du bloc XMIT avant l'envoi d'un message à partir du port n°1 de l'automate. Vous pouvez l'utiliser comme un temporisateur avant message. Les valeurs correctes sont comprises entre 0 et 65 535 ms. XMIT_CFG.XmEndDelay Lorsque le contrôle RTS/CTS est activé, indiquez en millisecondes (ms) le délai pendant lequel le bloc XMIT garde le signal RTS activé après l'envoi du message à partir du port de l'automate. Une fois ce délai écoulé, le bloc XMIT désactive le signal RTS. Vous pouvez également utiliser ce registre lorsque le contrôle RTS/CTS n'est PAS activé. Dans ce cas, la durée saisie détermine le temps d'attente du bloc XMIT après l'envoi d'un message à partir du port n°1 de l'automate. Vous pouvez l'utiliser comme un temporisateur après message. Les valeurs correctes sont comprises entre 0 et 65 535 ms. XMIT_CFG.XmCurrentRetry La valeur affichée indique le nombre courant de tentatives effectuées par le bloc XMIT. Ce registre est en lecture seule. Exemple d'application Description Le programme ci-dessous est une petite application de démonstration, qui permet de basculer facilement entre les quatre fonctions principales du bloc XMIT : • Sortie de message ASCII (0) • Entrée ASCII simple (1) • Entrée ASCII terminée (2) • Maître Modbus (3) 33002528.25 427 Communication XMIT: Transmit Pour sélectionner la fonction, entrez le numéro approprié dans la variable ModeSelection. Un signal montant sur X_Trigger active le bloc XMIT en réglant la variable Start sur 1. Start reste à 1 jusqu'à l'exécution de la fonction ou l'apparition d'une erreur. Section CEI Sélection des données de configuration Bloc fonction XMIT 428 33002528.25 XMIT: Transmit Communication Maintient Start activé jusqu'à la fin de l'exécution de la commande ou l'apparition d'une erreur Déclaration de variables Les tableaux suivants montrent les variables utilisées dans cet exemple. Tableau de variables Nom de variable Type de données Start BOOL Doit rester activée jusqu'à la fin de l'exécution du bloc XMIT. Abort BOOL Abandonne l'opération XMIT. opActive BOOL Indique l'état du bloc XMIT. opError BOOL Indique l'état du bloc XMIT. opDone BOOL Indique l'état du bloc XMIT. Port BYTE Sélectionnez le port 1 ou 2. DirectMessageOut WordArr256 400257 Données de configuration réelles ou données à transmettre. DirectXmitSet XMIT_SET 400513 Données de configuration réelles. DirectMessageIn WordArr256 400001 Données reçues par les fonctions d'entrée ASCII. DirectXmitConfig XMIT_CFG 400523 Données de configuration réelles. 33002528.25 Adresse Description 429 Communication XMIT: Transmit Nom de variable Type de données Adresse Description X_Trigger BOOL Déclenche la fonction XMIT. ModeSelection UINT Sélectionnez la fonction demandée (0 à 3). Message AsciiOut WordArr256 Message à transmettre par la sortie ASCII. MessageSimpleAsciiIn WordArr256 (Aucun contenu requis) MessageTermAsciiIn WordArr256 Données de configuration pour l'entrée ASCII terminée. MessageModbus WordArr256 Données de configuration pour Modbus. XmitSetForAsciiOut XMIT_SET Données de configuration pour la sortie ASCII. XmitSetForSimpleAsciiIn XMIT_SET Données de configuration pour l'entrée ASCII simple. XmitSetForTermAsciiIn XMIT_SET Données de configuration pour l'entrée ASCII terminée. XmitSetForModbus XMIT_SET Données de configuration pour Modbus. Valeurs initiales Ci-dessous sont indiquées les valeurs initiales des différents tableaux utilisés : Contenu de la structure de données XmitSetForAaciiOut 430 Adresse Commentaire Nom de l'élément Type de données BaudRate WORD 9600 DataBits BYTE 8 Parity BYTE 2 StopBits BYTE 1 CommandWord WORD 512 Bit 7 défini MessageLen WORD 16 Transmet les 16 premiers caractères du tableau MessageAsciiOut. RespTimeOut WORD 100 RetryLimit WORD 100 XmStartDelay WORD 100 XmEndDelay WORD 100 33002528.25 XMIT: Transmit Communication Contenu de la structure de données XmitSetForSimpleAsciiIn Nom de l'élément Type de données Adresse Commentaire BaudRate WORD 9600 DataBits BYTE 8 Parity BYTE 2 StopBits BYTE 1 CommandWord WORD 1152 Bits 6 et 9 définis. MessageLen WORD 16 opDone réglé sur 1 après réception des 16 caractères. RespTimeOut WORD 100 RetryLimit WORD 100 XmStartDelay WORD 100 XmEndDelay WORD 100 Contenu de la structure de données XmitSetForTermAsciiIn Nom de l'élément Type de données Adresse Commentaire BaudRate WORD 9600 DataBits BYTE 8 Parity BYTE 2 StopBits BYTE 1 CommandWord WORD 2176 Bits 5 et 9 définis. MessageLen WORD 5 L'élément DirectXmitSet.MessageLen est automatiquement réglé sur 5, quelle que soit la valeur de cette entrée. RespTimeOut WORD 100 RetryLimit WORD 100 XmStartDelay WORD 100 XmEndDelay WORD 100 Contenu de la structure de données XmitSetForModbus 33002528.25 431 Communication XMIT: Transmit Nom de l'élément Type de données Adresse Commentaire BaudRate WORD 9600 DataBits BYTE 8 Parity BYTE 2 StopBits BYTE 1 CommandWord WORD 256 Bit 8 défini MessageLen WORD 5 Pour les codes fonction 01 à 06, 15 et 16. RespTimeOut WORD 1000 RetryLimit WORD 10 XmStartDelay WORD 100 XmEndDelay WORD 100 Mode RTU Contenu de la structure de données MessageAsciiOut Nom de l'élément Type de données Adresse Commentaire MessageAsciiOut[2] WORD 17220 'CD' à transmettre MessageAsciiOut[3] WORD 17734 'EF' MessageAsciiOut[4] WORD 18248 'GH' MessageAsciiOut[5] WORD 18762 'IJ' MessageAsciiOut[6] WORD 19276 'KL' MessageAsciiOut[7] WORD 19790 'MN' MessageAsciiOut[8] WORD 20304 'OP' MessageAsciiOut[...] WORD ... Contenu de la structure de données MessageTermAsciiIn Nom de l'élément Type de données Adresse Commentaire MessageAsciiOut[1] WORD 258 0x0102 1 caractère de début et 2 caractères de fin MessageAsciiOut[2] WORD 9216 0x2400 Premier caractère de début '$' MessageAsciiOut[3] WORD 3338 0x0D0A Caractères de fin [CR][LF] Contenu de la structure de données MessageModbus 432 33002528.25 XMIT: Transmit Communication Nom de l'élément Type de données Adresse Commentaire MessageAsciiOut[1] WORD 3 Lecture de plusieurs registres de maintien (4x) MessageAsciiOut[2] WORD 32 Lecture de 32 registres MessageAsciiOut[3] WORD 10 Adresse Modbus de l'automate esclave MessageAsciiOut[4] WORD 101 Début par le registre 40101 MessageAsciiOut[5] WORD 701 Destination des données : registre 40701 33002528.25 433 Communication XXMIT : Transmission XXMIT : Transmission Contenu de ce chapitre Introduction au bloc XXMIT..................................................... 434 Fonctions XXMIT ................................................................... 435 Règles de programmation du bloc XXMIT ................................ 480 Références techniques XXMIT................................................ 482 Informations sur le câblage ..................................................... 491 Présentation Ce chapitre décrit le bloc XXMIT. Introduction au bloc XXMIT Vue générale Cette section décrit brièvement le bloc fonction XXMIT. Fonctionnalités du bloc XXMIT Vue d'ensemble des fonctions Le bloc fonction XXMIT permet d'utiliser le port série des automates pour communiquer sous le contrôle du programme d'application. Les types de communication suivants sont pris en charge : 434 • maître Modbus ; • entrée/sortie ASCII simple ; • entrée ASCII avec un ou deux caractères de fin ; • communication par modem. 33002528.25 XXMIT : Transmission Communication Description fonctionnelle Le bloc fonction XXMIT envoie des messages Modbus depuis un automate maître vers plusieurs automates esclaves ou des chaînes de caractères ASCII depuis le port numéro 1 d'automates esclaves Modbus vers des imprimantes et des terminaux ASCII. XXMIT envoie ces messages via des modems à numérotation automatique ou des modems radio. Dans le cas de messages ASCII, aucun contrôle (de type CRC ou somme de contrôle) ne vérifie la validité des données reçues. ATTENTION DONNEES NON VALIDES Vérifiez la validité des données reçues en cas de messages ASCII. Le non-respect de ces instructions peut provoquer des blessures ou des dommages matériels. NOTE: Pour éviter de recevoir des données non valides en raison de perturbations électriques, il est recommandé d'utiliser des messages Modbus contenant un mécanisme de contrôle de redondance cyclique (CRC). Fonctions XXMIT Vue d'ensemble Cette section décrit XXMIT. Description sommaire Description fonctionnelle Le bloc fonction XXMIT envoie des messages Modbus depuis un automate maître vers plusieurs automates esclaves ou des chaînes de caractères ASCII depuis le port numéro 1 d'automates esclaves Modbus vers des imprimantes et des terminaux ASCII. XXMIT envoie ces messages à l'aide de modems à numérotation automatique, de modems radio ou via des connexions directes. 33002528.25 435 Communication XXMIT : Transmission NOTE: Le bloc fonction XXMIT peut être utilisé uniquement dans une tâche MAST. Un code d'erreur (127) apparaît immédiatement si le bloc est activé dans les tâches FAST / AUX ou EVENT (Control Expert n'effectue aucun contrôle lors de la compilation). NOTE: EN et ENO ne doivent PAS être utilisés avec le bloc XXMIT, car ils risquent de figer les paramètres de sortie. NOTE: La communication Modbus via des modems radio avec les automates Quantum n'est possible que si le bloc fonction XXMIT est configuré en tant que maître Modbus. NOTE: Veillez à ce que deux maîtres (sur le même bus) n'envoient pas des requêtes simultanément : elles seraient perdues et chaque compte rendu aurait un résultat incorrect qui pourrait être 16#0100 (impossible de traiter la requête) ou 16#ODFF (absence de l'esclave). Logiciels et matériel requis Logiciel XXMITnécessite les logiciels suivants : PLC Système d'exploitation Unity Pro1/Control Expert Quantum 2.3 ou version ultérieure 2.3 ou version ultérieure Momentum 1.0 ou version ultérieure 8.0 ou version ultérieure 1 Unity Pro est l'ancien nom de Control Expert pour la version 13.1 ou antérieure. Consultez la section Disponibilité des blocs sur les différences plates-formes matérielles, page 30 pour obtenir la liste des matériels pris en charge par le bloc fonction XXMIT. 436 33002528.25 XXMIT : Transmission Communication Représentation Représentation en FBD Représentation : 33002528.25 437 Communication XXMIT : Transmission Représentation en LD Représentation : Représentation en IL Représentation : CAL XXMIT_instance(Start:=Start_param, Command:=Command_param, MsgOut:=MsgOut_param, MsgLen:=Msglen_param, Port:=Port_param, Baudrate:=Baudrate_param, Databits:=Databits_param, Stopbits: =Stopbits_param, Parity:=Parity_param, RespTout:=RespTout_param, RetryLmt:=RetryLmt_param, StartDly:=StartDly_param, EndDly:=EndDly_ param, Error=>Error_param, MsgIn=>MsgIn_param, RecCount=>RecCount_ param, Status=>Status_param, Retry=>Retry_param) Représentation en ST Représentation : XXMIT_instance (Start:=Start_param, Command:=Command_param, MsgOut: =MsgOut_param, MsgLen:=Msglen_param, Port:=Port_param, Baudrate: 438 33002528.25 XXMIT : Transmission Communication =Baudrate_param, Databits:=Databits_param, Stopbits:=Stopbits_ param, Parity:=Parity_param, RespTout:=RespTout_param, RetryLmt: =RetryLmt_param, StartDly:=StartDly_param, EndDly:=EndDly_param, Error=>Error_param, MsgIn=>MsgIn_param, RecCount=>RecCount_param, Status=>Status_param, Retry=>Retry_param); Description des paramètres Description du paramètre de bloc Paramètres Type de données Signification Start BOOL La valeur 1 lance l'opération XXMIT., page 440 Command WORD Indique la commande à exécuter., page 440 MsgOut ANY Message à envoyer., page 442 MsgLen INT Longueur du message de sortie., page 443 Port BYTE Sélection de l'interface de communication, page 443 Baudrate INT Débit en bauds., page 443 Databits BYTE Bits de données., page 444 Stopbits BYTE Bits d'arrêt., page 444 Parity BYTE Parité., page 444 RespTout INT Délai d'attente avant réception d'une réponse valide., page 444 RetryLmt INT Nombre de tentatives jusqu'à réception d'une réponse valide., page 444 StartDly INT Délai d'attente avant émission du message., page 445 EndDly INT Délai d'attente après émission du message., page 445 Active BOOL La valeur 1 indique qu'une opération XXMIT est en cours., page 445 Done BOOL La valeur 1 indique que l'opération XXMIT a réussi., page 446 Error BOOL La valeur 1 indique qu'une erreur est survenue ou que l'opération XXMIT en cours est terminée., page 446 Msgln ANY Message entrant., page 446 RecCount INT Affiche le nombre de caractères reçus., page 446 Status INT Affiche le code d'erreur généré par le bloc XXMIT., page 446 Retry INT Indique le nombre de tentatives en cours effectuées par le bloc XXMIT., page 449 33002528.25 439 Communication XXMIT : Transmission Description détaillée des paramètres Start La valeur 1 du signal Start déclenche l'opération XXMIT. La valeur 1 doit être appliquée jusqu'à ce que l'opération aboutisse ou qu'une erreur intervienne. NOTE: Les paramètres d'entrée du bloc XXMIT doivent être initialisés avant le réglage de l'entrée START Ils ne doivent pas être modifiés lorsque le bloc fonction est en cours d'exécution. Command Le bloc XXMIT interprète chaque bit du mot de commande comme une fonction à exécuter. Si les bits 9 et 8 sont activés simultanément ou si plusieurs bits parmi les bits 3, 2, 1 ou 0 sont activés simultanément ou si le bit 9 n'est pas activé alors que l'un des bits 3, 2, 1 ou 0 l'est, le système génère l'erreur 129. Pour plus d'informations, consultez la section Fonctions de communication du bloc XXMIT, page 450. La définition de chaque bit est indiquée dans le tableau ci-dessous. Structure du mot de commande Définition des bits de mot XXMIT Command Bit Définition Bit 15 (MSB, bit de poids fort) Avec les processeurs Momentum, une fois le bloc XMIT, page 413, XXMIT, page 434 ou L9_XMIT (voir EcoStruxure™ Control Expert, UnityLL984, Bibliothèque de blocs) actif, le port série ne repasse pas en mode esclave. Ce bit de commande a été créé pour rétablir la configuration initiale du port série Momentum. Le réglage sur 1 active la configuration du port telle qu'elle était dans l'application. Le bit DONE est mis à 1 lorsque l'action est terminée. 440 Bit 14 Activation du contrôle modem RTS/ CTS Réglé sur 1 lorsqu'un équipement DCE connecté à l'automate nécessite une reconnaissance matérielle à l'aide du contrôle RTS/CTS. Ce bit peut être utilisé conjointement avec les valeurs contenues dans StartDly et EndDly. Le délai de début de transmission garde le signal RTS activé pendant la durée StartDly (ms) avant l'envoi d'un message par XXMIT via le port de l'automate. De même, le délai de fin de transmission garde le signal RTS activé pendant la durée EndDly (ms) après l'envoi d'un message par XXMIT via le port de l'automate. Après l'expiration du délai de fin de transmission, le bloc XXMIT désactive le signal RTS. Bit 13 Activation du mode RS485 Réglé sur 1 lorsque le port sélectionné doit fonctionner en mode RS485. Sinon, il est réglé sur 0, valeur correspondant au mode RS232. 33002528.25 XXMIT : Transmission Bit Communication Définition En cas d'utilisation du port Modbus en mode RS485 avec la messagerie Modbus, veillez à utiliser exactement les mêmes paramètres (débit en bauds, bits de données, bits d'arrêt, parité) pour le bloc fonction XXMIT que pour ce port. Bit 12 Inversion de mot ASCII Réglé sur 1 pour l'utilisation avec les commandes de communication ASCII_IN, ASCII_OUT etTERM_ASCII_IN pour modifier l'ordre des octets du tableau MSGIN dans le format Concept. Lorsqu'il n'est pas défini (0), ces commandes conservent le format d'octets MSGIN actuel. Bit 11 Entrée ASCII terminée Réglé sur 1 pour supprimer et ignorer tous les caractères du tampon FIFO jusqu'à ce que la chaîne de départ soit trouvée. Ensuite, les caractères de départ et les caractères suivants sont écrits dans MsgIn jusqu'à ce que la séquence de fin soit trouvée. La chaîne de fin est également écrite dans MsgIn. Pour plus d'informations, consultez la section Fonction d'entrée ASCII terminée, page 452. Bit 10 Entrée ASCII simple Réglé sur 1 pour supprimer les caractères ASCII du tampon FIFO pour l'écriture dans le tableau MsgIn. Pour plus d'informations, consultez la section Fonction d'entrée ASCII simple, page 454. Bit 9 Activation des messages sous forme de chaînes ASCII Réglé sur 1 lorsque vous souhaitez envoyer des messages ASCII à partir de l'automate. XXMIT envoie des chaînes ASCII d'une longueur maximale de 1024 caractères. Programmez le message ASCII dans MsgOut. Utilisez le bit 9 OU le bit 8, mais n'utilisez pas les deux. Bit 8 Activation des messages Modbus Réglé sur 1 si vous souhaitez envoyer des messages Modbus à partir de l'automate. Les messages Modbus peuvent être envoyés au format RTU ou ASCII. Avec 8 bits de données, XXMIT utilise le format Modbus RTU. Avec 7 bits de données, XXMIT utilise le format Modbus ASCII. Utilisez le bit 9 OU le bit 8, mais n'utilisez pas les deux. Bit 7 Activation du tampon FIFO de réception ASCII Réglé sur 1 pour permettre au bloc fonction XXMIT de prendre le contrôle du port sélectionné (1) de l'automate. Le bloc commence à recevoir des caractères ASCII dans un tampon FIFO circulaire vide de 512 octets. Reportez-vous à Tampon FIFO de réception ASCII, page 464 pour plus d'informations. Bit 6 Activation du caractère de retour arrière Défini sur 1 pour permettre le traitement particulier du caractère de retour arrière ASCII (BS, 8 hex) lors de l'utilisation d'une entrée ASCII simple (bit 10) ou d'une entrée ASCII terminée (bit 11). Si le bit 6 est défini, aucun caractère de retour arrière n'est stocké dans MsgIn. Pour plus d'informations, consultez la section Validation du caractère de retour arrière, page 465. Bit 5 Activation du contrôle de flux RTS/CTS Défini sur 1 pour autoriser le contrôle de flux matériel en duplex intégral à l'aide des signaux de synchronisation RTS et CTS pour les messages ASCII. Le contrôle de flux RTS/CTS fonctionne en mode d'entrée et en mode de sortie. Reportez-vous à Validation du contrôle de flux RTS/CTS, page 465 pour plus d'informations. Bit 4 Activation du contrôle de flux Xon/Xoff Défini sur 1 pour permettre un contrôle de flux logiciel en duplex intégral, à l'aide des caractères ASCII Xon (DC1, 11 hex) et Xoff (DC3, 13 hex). Le contrôle de flux Xon/Xoff fonctionne en mode d'entrée et en mode de sortie. Reportez-vous à Validation du contrôle de flux Xon/Xoff, page 467 pour plus d'informations. Bit 3 Modem à numérotation par impulsion Défini sur 1 si vous utilisez un modem à numérotation automatique compatible Hayes et souhaitez composer un numéro de téléphone en utilisant la numérotation par impulsion. Programmez le numéro de téléphone dans MsgOut. La longueur du message doit être définie dans MsgLen. Les numéros composés par impulsion sont envoyés au modem, automatiquement précédés d'ATDT et suivis d'un retour chariot <CR> et d'un retour à la ligne <LF>. Le message de numérotation étant une chaîne ASCII, le bit 9 doit être activé avant l'envoi du numéro à composer. 33002528.25 441 Communication XXMIT : Transmission Bit Définition Bit 2 Raccrochage du modem Défini sur 1 si vous utilisez un modem à numérotation automatique compatible Hayes et souhaitez raccrocher le modem. Vous devez utiliser le programme utilisateur pour activer ce bit. Le message de raccrochage étant une chaîne ASCII, le bit 9 doit être activé avant l'envoi du message. Les messages de raccrochage sont envoyés au modem, automatiquement précédés de +++AT et suivis d'un retour chariot <CR> et d'un retour à la ligne <LF>. XXMIT recherche une réponse de déconnexion correcte de la part du modem avant d'activer (ON) le signal de sortie Done qui indique que l'exécution a réussi. Bit 1 Modem à numérotation à tonalité Défini sur 1 si vous utilisez un modem à numérotation automatique compatible Hayes et souhaitez composer un numéro de téléphone au clavier. Programmez le numéro de téléphone dans MsgOut. La longueur du message doit être définie dans MsgLen. Les numéros composés par tonalité sont envoyés au modem, automatiquement précédés d'ATDT et suivis d'un retour chariot <CR> et d'un retour à la ligne <LF>. Le message de numérotation étant une chaîne ASCII, le bit 9 doit être activé avant l'envoi du numéro à composer. Bit 0 Initialisation du modem Défini sur 1 si vous utilisez un modem à numérotation automatique compatible Hayes et souhaitez initialiser le modem. Programmez le message d'initialisation dans MsgOut et la longueur du message dans MsgLen. Tous les messages sont envoyés au modem, automatiquement précédés de AT et suivis d'un retour chariot <CR> et d'un retour à la ligne <LF>. Le message d'initialisation étant une chaîne ASCII, le bit 9 doit être activé avant l'envoi du message. NOTE: Par rapport au mot Concept XXMIT Command, la numération des bits du mot Control Expert Command a été modifiée : Conversion du mot Command Si l'application doit être convertie de Concept à Control Expert, la nouvelle numérotation des bits doit être prise en compte lorsque l'accès au mot Command s'effectue par bits. Cette règle ne s'applique PAS lorsque vous accédez au mot de communication à l'aide de mots. MsgOut MsgOut contient les données du message à transférer, par exemple des caractères ASCII pour un transfert ASCII, la définition des caractères de fin pour une entrée ASCII terminée ou des modèles Modbus pour des messages du maître Modbus. Le type de données à affecter au paramètre doit respecter les exigences de la fonction à exécuter. Dans le cas d'une opération Modbus, le type de données de MsgOut et MsgIn doit être identique 442 33002528.25 XXMIT : Transmission Communication NOTE: Pour tous les types de communication (maître Modbus, entrée/sortie ASCII), les paramètres MsgOut et MsgIn doivent être affectés à une variable. Les deux variables peuvent être soit un tableau de mots, soit un tableau d'octets. Les autres types génèrent des résultats imprévisibles. NOTE: Pour les messages Modbus, MsgOut doit être un champ de mots. La taille minimale du tableau est WordArr9 MsgLen Vous devez entrer la longueur du message en cours selon la fonction XXMIT sélectionnée. Le tableau suivant présente les fonctions Modbus et ASCII : Fonction XXMIT Sous-fonction Longueur du message Messagerie Modbus 01, 02, 03, 04, 05, 06, 08, 15, 16 5 Entrée ASCII terminée 5 Entrée ASCII simple 1 ... 1024 Messages sous forme de chaînes ASCII 1 ... 1024. La longueur sélectionnée doit correspondre à la taille du tableau affecté à MsgOut. Dans le cas contraire, le système génère l'erreur 129. NOTE: Pour les codes fonction Modbus, la valeur de MsgLenpeut être supérieure à cinq mots, mais seuls les cinq premiers mots du tableau de définition Modbus seront pris en compte lors de l'exécution. Port Le Port définit l'interface de communication. Les valeurs autorisées sont 0 ou 1. Baudrate XXMIT prend en charge les débits de données suivants : 50, 75, 110, 134, 150, 300, 600, 1200, 1800, 2000, 2400, 3600, 4800, 7200, 9600, 19200. Pour configurer un débit de données, entrez le nombre décimal correspondant dans ce champ. Si vous entrez un débit de données incorrect, le bloc signale une configuration incorrecte (code d'erreur 127) dans l'élément Status du bloc XXMIT 33002528.25 443 Communication XXMIT : Transmission Databits XXMIT prend en charge les bits de données suivants : 7 et 8. Pour configurer une taille de bit de données, entrez un nombre décimal dans cet élément. Les messages Modbus peuvent être envoyés en mode ASCII ou RTU. Le mode ASCII nécessite 7 bits de données, tandis que le mode RTU en nécessite 8. Lorsque vous envoyez un message en caractères ASCII, vous pouvez utiliser 7 ou 8 bits de données. Si vous entrez un bit de données incorrect, le bloc signale une configuration incorrecte (code d'erreur 127) dans l'élément Status du bloc XXMIT. Pour plus d'informations sur les formats des messages Modbus, consultez le document Modicon Modbus Protocol Reference Guide (www.modbus.org). Stopbits XXMIT prend en charge un ou deux bits d'arrêt. Entrez une valeur décimale : 1 (un bit d'arrêt) ou 2 (deux bits d'arrêt). Si vous entrez un bit d'arrêt incorrect, le bloc signale une configuration incorrecte (code d'erreur 127) dans l'élément Status du bloc XXMIT. Parity XXMIT prend en charge la parité suivante : aucune, impaire et paire. Entrez une valeur décimale : 0 (aucune parité), 1 (parité impaire) ou 2 (parité paire). Si vous entrez un bit de parité incorrect, le bloc signale une configuration incorrecte (code d'erreur 127) dans l'élément Status du bloc XXMIT. RespTout Entrez la valeur en millisecondes (ms) du délai d'attente du bloc XXMIT pour la réception d'une réponse valide d'un équipement esclave (automate, modem, etc.). De plus, ce délai s'applique aux transmissions ASCII et aux opérations de contrôle de flux. Si le message de la réponse n'est pas entièrement structuré dans le délai défini, le bloc XXMIT génère un défaut. La plage valide est comprise entre 0 et 32 767 ms. La temporisation débute après l'envoi du dernier caractère du message. RetryLmt Entrez le nombre de tentatives d'envoi d'un message par le bloc XXMIT pour obtenir une réponse valide d'un équipement esclave (automate, modem, etc.). Si le message de la réponse n'est pas entièrement structuré dans le délai défini, le bloc XXMIT génère un défaut et un code de défaut. La plage valide est comprise entre 0 et 32 767 tentatives. Ce champ est utilisé conjointement avec RespTout. 444 33002528.25 XXMIT : Transmission Communication StartDly Lorsque le contrôle RTS/CTS est activé, entrez la valeur en millisecondes (ms) du délai d'attente du bloc XXMIT pour la réception d'un signal CTS avant l'envoi d'un message à partir du port de l'automate. Vous pouvez également utiliser ce registre lorsque le contrôle RTS/CTS n'est PAS activé. Dans ce cas, la durée définie détermine le temps d'attente du bloc XXMIT avant qu'il envoie un message à partir du port de l'automate. Vous pouvez l'utiliser comme temporisateur avant message. La plage valide est comprise entre 0 et 32 767 ms. EndDly Lorsque le contrôle RTS/CTS est activé, indiquez la valeur en millisecondes (ms) du délai durant lequel le bloc XXMIT garde le signal RTS activé après l'envoi du message à partir du port de l'automate. Une fois ce délai écoulé, le bloc XXMIT expire. Vous pouvez également utiliser ce registre lorsque le contrôle RTS/CTS n'est PAS activé. Dans ce cas, la durée définie détermine le temps d'attente du bloc XXMIT avant qu'il envoie un message à partir du port de l'automate. Vous pouvez l'utiliser comme un temporisateur après message. La plage valide est comprise entre 0 et 32 767 ms. NOTE: Sur la communication RS 485, le signal de transmission est maintenu à 1 tout au long du délai EndDly. Sur les connexions à 2 fils, tout caractère provenant du partenaire est perdu. Par conséquent, si cette fonction n'est pas nécessaire, réglez EndDly sur 0 ms. Active La valeur 1 indique qu'une opération XXMIT est en cours. 33002528.25 445 Communication XXMIT : Transmission Done La valeur 1 indique que l'opération XXMIT a été exécutée. Error La valeur 1 indique qu'une erreur s'est produite ou que l'opération XXMIT en cours est terminée. MsgIn MsgIn contient les données du message entrant pour une entrée ASCII terminée ou une entrée ASCII simple. Dans le cas d'une opération Modbus, le type de données doit être identique au type du champ MsgOut. RecCount Cet élément affiche le nombre de caractères reçus. NOTE: Si le nombre de caractères reçus est trop élevé et qu'aucun caractère de fin n'a été détecté, une erreur est générée dans le paramètre Status (131) et le paramètre RecCount prend la valeur -1.MsgLen Status Cet élément affiche un code d'erreur généré par le bloc XXMIT. Le tableau ci-dessous contient la liste complète. Etat d'erreur 446 Code d'erreur Description du défaut 1 Exception Modbus - Fonction non autorisée 2 Exception Modbus - Adresse de données non autorisée 3 Exception Modbus - Valeur de données non autorisée 4 Exception Modbus - Défaillance équipement esclave 5 Exception Modbus - Acquittement 33002528.25 XXMIT : Transmission Communication Code d'erreur Description du défaut 6 Exception Modbus - Equipement esclave occupé 7 Exception Modbus - Acquittement négatif 8 Exception Modbus - Erreur de parité mémoire 9 ... 99 Réservé 100 La zone de données de l'automate esclave ne peut être égale à 0 101 La zone de données de l'automate maître ne peut être égale à 0 102 Bit (%M) non configuré 103 Mot mémoire (%MW) de l'automate maître non configuré 104 La longueur des données ne peut être égale à 0 105, 106 Réservé 107 Expiration du délai de transmission de message (erreur générée lorsque l'émetteur-récepteur asynchrone universel ne parvient pas à terminer une transmission dans un délai de 10 secondes ; cette erreur contourne le compteur de répétition et active la sortie d'erreur à la première erreur ; voir la section Informations supplémentaires sur l'erreur 107 ci-dessous). 108 Erreur non définie 109 Le modem a signalé une ERREUR 110 Le modem a renvoyé le message PAS DE PORTEUSE 111 Le modem a renvoyé le message PAS DE TONALITE 112 Le modem a renvoyé le message OCCUPE 113 Somme de contrôle LRC de l'automate esclave non valide (voir la remarque 1 ci-dessous.) 114 Somme de contrôle CRC de l'automate esclave non valide (voir la remarque 1 ci-dessous.) 115 Code de fonction Modbus non valide 116 Expiration du délai du message de réponse Modbus (voir la remarque 2 ci-dessous.) 117 Expiration du délai de réponse Modem 118 XXMIT n'a pas obtenu d'accès au port de communication numéro 1 de l'automate 119 XXMIT n'a pas pu activer le récepteur du port de l'automate 120 XXMIT n'a pas pu activer l'émetteur-récepteur asynchrone universel de l'automate 121 Réservé 122 Port non valide 123 Réservé 124 Etat interne non défini 33002528.25 447 Communication XXMIT : Transmission Code d'erreur Description du défaut 125 Mode de diffusion non autorisé avec ce code de fonction Modbus 126 Le périphérique DCE n'a pas activé le signal CTS 127 • Configuration incorrecte (bits de données, vitesse, parité ou bits d'arrêt). • Exécution dans une tâche autre que MAST. • Code fonction Modbus non autorisé. • Adresse esclave supérieure à 247. • Longueur de données supérieure aux limites indiquées dans ce document. • Numéro de port différent de 1. • Valeurs RespTout, StartDly, EndDly, RecCount, MsgLen, RetryLmt inférieures à 0. 128 Réponse inattendue de la part de l'esclave Modbus (voir remarque 1 ci-dessous.) 129 Paramétrage du mot de commande non autorisé 130 Mot de commande modifié en étant actif 131 Nombre de caractères non valide 132 Réservé 133 Erreur de débordement de l'entrée FIFO ASCII 134 Nombre de caractères de début ou de fin non valide 135...149 Réservé 150 Port configuré déjà utilisé par une autre instance du bloc XXMIT ou port configuré non pris en charge sur cet automate 151 MsgOut est inférieur à 12 octets alors que la fonction Messages Modbus maître est sélectionnée. Inclut également une valeur du paramètre MsgLen inférieure à 5. 152 La variable connectée à MsgOut est inférieure à la valeur du paramètre MsgLen, alors que la fonction Messages sous forme de chaînes ASCII est sélectionnée. 153 La variable connectée à MsgIn est inférieure à la valeur du paramètre MsgLen, alors que la fonction Entrée ASCII terminée ou Entrée ASCII simple est sélectionnée. 154 Le bit Start de XXMIT est réglé sur 1 dans un automate Quantum à redondance d'UC, qui n'est pas en mode Primaire. NOTE: 1) Ce code d'erreur apparaît en cas de réponse trop rapide de l'esclave Modbus. Si l'esclave Modbus utilisé est un automate Modicon, vérifiez la configuration de son port Modbus. 2) Pour le bloc fonction XXMIT en mode maître Modbus, si l'erreur 116 persiste après une configuration correcte à l'aide du clavier ou de modifications en ligne, régénérez l'application et transférez-la à l'automate. 448 33002528.25 XXMIT : Transmission Communication Informations supplémentaires sur l'erreur 107 L'erreur 107 apparaît en cas d'incohérence détectée dans la configuration du bloc XXMIT. Si le port interne du bloc XXMIT est configuré en mode RS232 et que le mot de commande est en mode RS485 (#2100), le mode de communication doit être modifié. Le tableau ci-dessous montre comment modifier le mode de communication si l'erreur 107 apparaît : Etape Action 1 Connecter le PC à Control Expert 2 Mettre l'automate en mode STOP 3 Modifier les paramètres du port Modbus (RS232 ou RS 485) 4 Modifier le mot de commande en fonction du mode requis 5 Régénérer l'application 6 Télécharger l'application 7 Mettre l'automate en mode RUN NOTE: veuillez noter que : • le basculement entre le mode RS232 et le mode RS485 prend 3 secondes lorsque les paramètres du port interne et les mots de commande correspondent. Pendant ce délai de 3 secondes, le code d'erreur 126 (DCE non activé, uniquement pour le mode RS232) apparaît ; • le basculement entre le mode RS485 et le mode RS232 est immédiat car il s'agit de la configuration par défaut. Retry La valeur affichée ici indique le nombre de tentatives effectuées par le bloc XXMIT. Cet élément est en lecture seule. Cette sortie est mise à jour une seule fois lorsque l'opération est terminée. Pour Modicon Quantum, la sortie Retry est mise à jour à chaque nouvelle tentative. Pour Modicon Momentum, la sortie Retry est mise à jour une fois l'opération terminée (avec succès ou en échec). 33002528.25 449 Communication XXMIT : Transmission Fonctions de communication du bloc XXMIT Mot de commande du bloc XXMIT Le bloc XXMIT exécute les six fonctions illustrées ci-dessous. Pour chaque fonction, certains bits du mot de commande doivent être activés. Bits du mot de commande Fonctions du mot de commande en fonction des bits Fonction Bits du mot de commande qui doivent être définis sur 1 Bits qui DOIVENT être définis sur 0 Entrée ASCII terminée (bit 11=1) Voir remarque ci-dessous. 14,7,6,5,4 10,9,8,3,2,1,0 Entrée ASCII simple (bit 10=1) Voir remarque ci-dessous. 14, 7, 6, 5, 4 11, 9, 8, 3, 2, 1, 0 Sortie ASCII simple (bit 9=1) 14, 7, 6, 5, 4 11, 10, 8, 3, 2, 1, 0 Sortie modem (bit 9=1) 14, 3, 2, 1, 0 11, 10, 8, 7, 6, 5, 4 (et un SEUL des bits 3, 2, 1 ou 0 est défini sur 1, tandis que les trois autres bits doivent être définis sur 0) Sortie des messages du maître Modbus (bit 8=1) 14 11, 10, 9, 7, 6, 5, 4, 3, 2, 1, 0 NOTE: Lorsque vous utilisez l'une de ces fonctions, vous DEVEZ régler le bit 7 (Validation du tampon FIFO de réception ASCII) sur 1. Le bit 15 (MSB) et les bits 13 et 12 sont réservés. (Voir le tableau relatif au Command, page 440.) Fonctions ASCII du bloc XXMIT Présentation Le bloc XXMIT prend en charge les fonctions de communication ASCII suivantes : 450 • Entrée ASCII terminée • Entrée ASCII simple • Messages sous forme de chaînes ASCII 33002528.25 XXMIT : Transmission Communication Configuration du port Modbus La fonction XXMIT est configurée à travers son bloc fonction. Le bloc fonction initialise le port Modbus 1 chaque fois qu'il est actif, avec les paramètres définis. Les paramètres XXMIT peuvent être affichés sur l'écran LCD de l'automate. NOTE: les paramètres définis sur l'écran de configuration de l'UC ou au moyen de l'écran LCD de l'automate n'ont aucun effet sur les valeurs de transmission en mode maître. Exemple de configuration du bloc fonction XXMIT : Exemple d'écran de configuration d'UC avec un ensemble de valeurs différent : 33002528.25 451 Communication XXMIT : Transmission Exemples de paramètres sur l'écran LCD de l'automate : Les trois graphiques ci-dessus présentent des valeurs différentes pour la fonction XXMIT. Indépendamment des éléments définis ou affichés sur l'écran de configuration de l'UC ou sur l'écran LCD, les valeurs réelles utilisées pour la transmission sont celles du bloc fonction XXMIT : • Débit : 2400 • Parité : Paire • Bits de données : 7 • Bits d'arrêt : 2 Fonction d'entrée ASCII terminée Lorsque le bit 11 (Entrée ASCII terminée) du mot de commande est à 1, le tableau MsgOut doit contenir le tableau de définition d'entrée ASCII. En fonction du type de données sélectionné pour MsgOut, la longueur du tableau de définition d'entrée ASCII terminée est de trois mots ou six octets. Le tableau de définition d'entrée ASCII terminée est présenté cidessous. Tableau de définition d'entrée ASCII terminée (type de données WordArray) Mot Octet de poids fort Octet de poids faible MsgOut[1] Nombre de caractères de départ (contenu autorisé = 0, 1, 2) Nombre de caractères de fin (contenu autorisé = 1, 2) MsgOut[2] Premier caractère de départ Deuxième caractère de départ MsgOut[3] Premier caractère de fin Deuxième caractère de fin Tableau de définition d'entrée ASCII terminée (type de données ByteArray) 452 Octet Fonction MsgOut[1] Longueur de la chaîne de départ (0, 1 ou 2) MsgOut[2] Longueur de la chaîne de fin (1 ou 2) MsgOut[3] Premier caractère de départ MsgOut[4] Deuxième caractère de départ MsgOut[5] Premier caractère de fin MsgOut[6] Deuxième caractère de fin 33002528.25 XXMIT : Transmission Communication Au cours du processus, RecCount contient le cumul des caractères écrits dans le tableau MsgIn. Après réception de la chaîne de fin, la sortie Done du bloc XXMIT passe à 1 et RecCount contient la longueur totale de la chaîne reçue, y compris les chaînes de départ et de fin. A ce stade, le bloc XXMIT contrôle toujours le port et continue d'enregistrer les caractères récemment reçus dans le tampon FIFO de réception ASCII, car le bit 7 (Validation du tampon FIFO de réception ASCII) du mot de commande est à 1. A l'aide du programme, vous pouvez mettre le bit Entrée ASCII simple à 0 avant le prochain cycle, tout en laissant le bit Validation du tampon FIFO de réception ASCII à 1. MsgIn n'est donc PAS écrasé par les données FIFO plus récentes, toujours collectées. A l'aide du programme, vous pouvez mettre à 0 le bit 7 (Validation du tampon FIFO de réception ASCII) et le bit 11 (Entrée ASCII terminée) pour redonner le contrôle du port à l'automate. Lorsque le tableau MsgIn contient trop de caractères et qu'AUCUN caractère de fin n'a été détecté, ou que le tableau MsgIn est en dehors de la plage autorisée pour l'automate configuré, une erreur est générée dans Status et le paramètre RecCount n'est pas significatif. La limite de caractères est le nombre le plus petit entre 1024 et deux fois la taille du tableau MsgIn. Exemple d'entrée ASCII terminée Supposons que le bloc XXMIT est activé avec les bits 7 et 11 du mot de commande définis. Validez le tampon FIFO ASCII et l'entrée ASCII terminée. Le port reçoit la chaîne ASCII suivante : "AMScrlf$weight = 1245 GRAMScrlf$wei". Reportez-vous au tableau de définition d'entrée ASCII présentant le contenu indiqué par ( ) utilisé dans cet exemple. Tableau de définition d'entrée ASCII terminée (contenu pour le type de données ByteArray) Octet Contenu MsgOut[1] Nombre de caractères de départ (0x01) MsgOut[2] Nombre de caractères de fin (0x02) MsgOut[3] Premier caractère de départ ("$") MsgOut[4] Deuxième caractère de départ (inutilisé) MsgOut[5] Premier caractère de fin ("cr") MsgOut[6] Deuxième caractère de fin ("lf") Exemple de tableau de définition d'entrée ASCII terminée (contenu pour le type de données WordArray) 33002528.25 453 Communication XXMIT : Transmission Mot Octet de poids fort Octet de poids faible MsgOut[1] Nombre de caractères de départ (0x01) Nombre de caractères de fin (0x02) MsgOut[2] Premier caractère de départ ("$") Deuxième caractère de départ (inutilisé) MsgOut[3] Premier caractère de fin ("cr") Deuxième caractère de fin ("lf") Le bloc XXMIT s'ACTIVE, puis supprime les cinq premiers caractères du tampon FIFO ("AMScrlf"), car ils ne correspondent pas au premier caractère de départ ("$"). Au cours du cycle logique, après réception de "$", le bloc XXMIT reste ACTIF et copie le "$" et les caractères suivants dans le tableau MsgIn, en mettant à jour RecCount avec le décompte effectué jusque-là, au fur et à mesure de l'entrée des caractères. Après réception du dernier caractère de fin, la sortie Done est activée et MsgLen contient la longueur totale, égale à 22 caractères (0x0016). Le tableau MsgIn comporte : "$weight = 1245 GRAMScrlf" pour le type de données ByteArray (ou : "$w", "ei", "gh", "t", "=", "12", "45", "G", "RA", "MS", "crlf" pour le type de données WordArray). Au cours du cycle où la sortie Done est activée, les caractères déjà reçus du message suivant ("$wei"), arrivés après la chaîne de fin, restent dans le tampon FIFO d'entrée ASCII. Le programme peut ainsi désactiver l'entrée ASCII terminée avant l'exécution du cycle suivant du bloc XXMIT pour ce port, en gardant les caractères dans le tampon FIFO jusqu'à ce que l'automate ait terminé le traitement du message courant, ce qui peut prendre plusieurs cycles. Fonction d'entrée ASCII simple Tous les caractères entrants sont placés dans le tableau MsgIn. Si MsgIn est réglé sur ByteArray (recommandé), les caractères entrants sont simplement stockés ainsi : le premier caractère dans le premier élément de tableau, le deuxième caractère dans le deuxième, etc. Si MsgIn est réglé sur WordArray, deux caractères sont stockés dans chaque élément. Le premier caractère est stocké dans l'octet de poids faible du premier élément. Le deuxième caractère est stocké dans l'octet de poids fort du premier élément. Le troisième caractère est stocké dans l'octet de poids fort du deuxième élément, etc. La variable de longueur du message (MsgLen) contient la longueur du message (1 à 1 024 caractères). NOTE: lorsque le bit 10 (Entrée ASCII simple) et le bit 7 (Tampon FIFO de réception ASCII) restent à 1, de nouveaux caractères sont constamment transférés du tampon FIFO vers le même tableau MsgIn ; ils écrasent donc constamment les caractères précédents qui y étaient stockés. 454 33002528.25 XXMIT : Transmission Communication Messages sous forme de chaînes ASCII Lorsque le bit 9 (Messages sous forme de chaînes) du mot de commande est à 1, le tableau MsgOut doit contenir les informations ASCII à transmettre. La longueur du message MsgLen doit être définie en fonction de la longueur du message à transmettre. Comme indiqué dans la section Description détaillée des paramètres, page 440, MsgOut peut être de n'importe quel type de données. Pour les messages sous forme de chaînes ASCII, le type de données ByteArray reflète mieux la nature des chaînes : le premier octet contient le premier caractère, et ainsi de suite (pour plus d'informations, voir Envoi ASCII simple, page 473). Passage du mode d'émission au mode de réception Si votre application exige la réception d'une réponse d'un autre équipement à la suite de l'émission d'un message (requête-réponse), vous aurez besoin du bloc XXMIT pour passer du mode d'émission au mode de réception et ainsi pouvoir lire la réponse fournie par votre partenaire de communication. Le passage d'un bloc XXMIT du mode émission au mode réception peut se faire au plus tôt au cours du cycle qui suit l'opération d'émission. Il incombe à l'utilisateur de s'assurer que la réponse intervient au moins un cycle après la demande de l'automate afin d'éviter l'échec de la communication. Le délai de transmission de votre partenaire de communication est particulièrement important en cas de cycles longs pour le demandeur et de partenaires rapides. 33002528.25 455 Communication XXMIT : Transmission Considérations relatives au délai du partenaire : Le schéma ci-dessus (qui n'est pas à l'échelle) permet d'estimer l'influence des trois facteurs de temps (cycle du demandeur, durée de transmission et cycle du partenaire) sur le délai requis pour le partenaire. Les cycles du demandeur et du partenaire étant asynchrones, celui du partenaire ne doit pas être pris en compte. La durée de transmission dépend de la longueur du télégramme envoyé et du débit en bauds. L'envoi d'un message de 18 caractères à 9600 bauds prend 14 ms. Le cycle du demandeur est sans nul doute le facteur temps le plus important. Par conséquent, même si le délai minimum du partenaire peut être inférieur à la durée du cycle du demandeur, il est recommandé d'utiliser celle-ci comme délai minimal du partenaire en vue de garantir une communication efficace. Fonctions de modem du bloc XXMIT Présentation Le bloc XXMIT vous permet de communiquer avec un modem compatible Hayes à l'aide des fonctions répertoriées dans le tableau suivant : Fonctions de modem 456 33002528.25 XXMIT : Transmission Communication Bit dans le mot de commande Fonction Bit 3 Modem à numérotation par impulsion Bit 2 Raccrochage du modem Bit 1 Modem à numérotation à tonalité Bit 0 Initialisation du modem Modem à numérotation par impulsion Mettez le bit 3 du mot de commande à 1 lorsque vous utilisez un modem à numérotation automatique compatible Hayes et que vous souhaitez composer un numéro de téléphone en utilisant la numérotation par impulsion. Programmez le numéro de téléphone dans le tableau MsgOut. La longueur du message doit être définie dans MsgLen. Les numéros composés par impulsion sont envoyés au modem, automatiquement précédés d'ATDP et suivis d'un retour chariot <CR> et d'un retour à la ligne <LF>. Le message de composition étant une chaîne ASCII, le bit 9 doit être à 1 avant l'envoi du numéro à composer. Raccrochage du modem Mettez le bit 2 du mot de commande à 1 lorsque vous utilisez un modem à numérotation automatique compatible Hayes si vous souhaitez raccrocher le modem. Vous devez utiliser le programme pour mettre ce bit à 1. Le message de raccrochage étant une chaîne ASCII, le bit 9 doit être à 1 avant l'envoi du message. Les messages raccrochés sont envoyés au modem, automatiquement précédés de +++AT et suivis d'un retour chariot <CR> et d'un retour à la ligne <LF>. Le bloc XXMIT recherche une réponse de déconnexion correcte de la part du modem avant d'ACTIVER le signal de sortie Done qui indique que l'exécution a réussi. Modem à numérotation à tonalité Mettez le bit 1 du mot de commande à 1 lorsque vous utilisez un modem à numérotation automatique compatible Hayes et que vous souhaitez composer un numéro de téléphone en utilisant la numérotation à tonalité. Programmez le numéro de téléphone dans le tableau MsgOut. La longueur du message doit être définie dans MsgLen. Les numéros composés au clavier sont envoyés au modem, automatiquement précédés d'ATDT et suivis d'un retour chariot <CR> et d'un retour à la ligne <LF>. Le message de composition étant une chaîne ASCII, le bit 9 doit être à 1 avant l'envoi du numéro à composer. 33002528.25 457 Communication XXMIT : Transmission Initialisation du modem Mettez le bit 0 du mot de commande à 1 lorsque vous utilisez un modem à numérotation automatique compatible Hayes et que vous souhaitez initialiser le modem. Programmez le message d'initialisation dans le tableau MsgOut et la longueur du message dans MsgLen. Tous les messages sont envoyés au modem, automatiquement précédés d'AT et suivis d'un retour chariot <CR> et d'un retour à la ligne <LF>. Le message d'initialisation étant une chaîne ASCII, le bit 9 doit être à 1 avant l'envoi du message. Fonctions Modbus du bloc XXMIT Présentation Le bloc XXMIT prend en charge les codes de fonction Modbus suivants : • 01 à 06 et 15 à 16 • 08 Configuration du port Modbus La fonction XXMIT est configurée à travers son bloc fonction. Le bloc fonction initialise le port Modbus 1 chaque fois qu'il est actif, avec les paramètres définis. Les paramètres XXMIT peuvent être affichés sur l'écran LCD de l'automate. NOTE: les paramètres définis sur l'écran de configuration de l'UC ou au moyen de l'écran LCD de l'automate n'ont aucun effet sur les valeurs de transmission en mode maître. 458 33002528.25 XXMIT : Transmission Communication Exemple de configuration du bloc fonction XXMIT : Exemple d'écran de configuration d'UC avec un ensemble de valeurs différent : Exemples de paramètres sur l'écran LCD de l'automate : Les trois graphiques ci-dessus présentent des valeurs différentes pour la fonction XXMIT. Indépendamment des éléments définis ou affichés sur l'écran de configuration de l'UC ou sur l'écran LCD, les valeurs réelles utilisées pour la transmission sont celles du bloc fonction XXMIT : 33002528.25 459 Communication • Débit : 19200 • Parité : Paire • Bits de données : 8 • Bits d'arrêt : 1 XXMIT : Transmission Passage du mode d'émission au mode de réception A l'exception des messages de diffusion, toutes les fonctions Modbus nécessitent que le bloc XXMIT passe du mode d'émission au mode de réception afin de lire la réponse de l'esclave. Le bloc fonction XXMIT passe en mode de réception au cours du cycle qui suit l'opération d'émission. Il incombe à l'utilisateur de s'assurer que la réponse de l'esclave intervient au moins un cycle après celle du maître afin d'éviter l'échec de la communication. Le délai de transmission de l'esclave est particulièrement important en cas de cycles longs pour le maître et d'esclaves rapides. Considérations relatives au délai de l'esclave : La figure ci-dessus (qui n'est pas à l'échelle) permet d'estimer l'influence des trois facteurs de temps (cycle du maître, durée de transmission, cycle de l'esclave) sur le délai requis pour l'esclave. Les cycles du maître et de l'esclave étant asynchrones, la durée de cycle de l'esclave ne doit pas être prise en compte. La durée de transmission dépend du type de télégramme envoyé, du débit en bauds et du protocole utilisé. Par exemple, une demande 460 33002528.25 XXMIT : Transmission Communication de lecture standard à 9600 bauds utilisant le protocole ASCII prend 14 ms. Le cycle du maître représente sans nul doute le facteur temps le plus important. Par conséquent, même si le délai minimal de l'esclave peut être inférieur à la durée de cycle du maître, il est recommandé d'utiliser cette dernière comme délai minimal de l'esclave en vue de garantir une communication efficace. NOTE: pour les automates Quantum, vous pouvez préciser le délai dans la boîte de dialogue de configuration du port Modbus. Ce délai doit être compris entre 10 et 1000 ms, la valeur que vous indiquez étant automatiquement arrondie au multiple de 10 le plus proche. Vous devez entrer le délai requis plus 10 ms. Par exemple, pour instaurer un délai de 110 ms, entrez la valeur 120 dans ce champ. NOTE: Pour les automates Momentum 171 CBU 78090, créez une instance de bloc EF par port si vous utilisez des blocs EF XMIT, L9_XMIT ou XXMIT sur les deux ports série de l'automate. Ne modifiez pas le numéro de port de façon dynamique. Définissez ce numéro comme valeur initiale de chaque instance, car le bloc ne stocke qu'une configuration de port. Codes fonction Modbus (01 à 06, 15 et 16) Pour les messages Modbus, le tableau MsgOut doit contenir le tableau de définition Modbus. Il doit être défini comme un champ de mots. Le tableau de définition Modbus pour les codes fonction Modbus 01, 02, 03, 04, 05, 06, 15 et 16 a une longueur de cinq mots et vous devez définir MsgLen sur 5 pour que l'opération XXMIT aboutisse. Le tableau de définition Modbus est présenté ci-dessous. Codes de fonction du tableau de définition Modbus (01 à 06, 15 et 16) Contenu Description Code de fonction Modbus (MsgOut [1]) Le bloc XXMIT prend en charge les codes de fonction suivants : 01 = Lecture de plusieurs bits (%Q) 02 = Lecture de plusieurs bits TOR (%I) 03 = Lecture de plusieurs mots (%MW) 04 = Lecture de plusieurs mots d'entrée (%IW) 05 = Ecriture d'un seul bit (%Q) 06 = Ecriture d'un seul mot (%MW) 15 = Ecriture de plusieurs bits (%Q) 16 = Ecriture de plusieurs mots (%MW) Quantité (MsgOut [2]) 33002528.25 Entrez la quantité de données à écrire ou à lire dans l'automate esclave. Par exemple, entrez 100 pour lire 100 mots d'un automate esclave ou entrez 32 pour écrire 32 bits dans 461 Communication Contenu XXMIT : Transmission Description un automate esclave. Il existe une taille limite, qui dépend du modèle de l'automate. Reportez-vous à l'annexe A pour obtenir tous les détails sur les limites. Adresse de l'automate esclave (MsgOut[3]) Entrez l'adresse de l'automate Modbus esclave. La plage d'adresses Modbus est généralement comprise entre 1 et 247. Pour envoyer un message Modbus à plusieurs automates, entrez 0 comme adresse de l'automate esclave. Ce type de transmission est appelé mode diffusion. Le mode diffusion prend uniquement en charge les codes de fonction Modbus écrivant des données de l'automate maître vers des automates esclaves. Il NE prend PAS en charge les codes de fonction Modbus lisant des données des automates esclaves. Zone de données de l'automate esclave (MsgOut [4]) Pour une commande de lecture, la zone de données de l'automate esclave est la source des données. Pour une commande d'écriture, la zone de données de l'automate esclave est la destination des données. Par exemple, lorsque vous souhaitez lire des bits (%I300 à %I500) depuis un automate esclave, entrez 300 dans ce champ. Si vous voulez écrire des données d'un automate maître dans les mots (%MW100) d'un automate esclave, entrez 100 dans ce champ. Selon le type de commande Modbus (lecture ou écriture), les zones de données source et cible doivent être conformes à celles du tableau ci-dessous. Zone de données de l'automate maître (MsgOut[5]) Pour une commande de lecture, la zone de données de l'automate maître est la destination des données renvoyées par l'esclave. Pour une commande d'écriture, la zone de données de l'automate maître est la source des données. Par exemple, lorsque vous souhaitez écrire des bits (%M16 à %M32) situés dans l'automate maître vers un automate esclave, entrez 16 dans ce champ. Lorsque vous souhaitez lire des mots (%IW1 à % IW100) depuis un automate esclave et placer les données dans la zone de données de l'automate maître (%MW100 à %MW199), entrez 100 dans ce champ. Selon le type de commande Modbus (lecture ou écriture), les zones de données source et cible doivent être conformes aux définitions du tableau ci-dessous. Zones de données source et cible pour les codes de fonction (01 à 06, 15 et 16) 462 Code de fonction Zone de données de l'automate maître Zone de données de l'automate esclave 03 (Lecture de plusieurs registres 4x) %MW (cible) %MW (source) 04 (Lecture de plusieurs registres 3x) %MW (cible) %IW (source) 01 (Lecture de plusieurs registres 0x) %M (cible) %Q (source) 02 (Lecture de plusieurs registres 1x) %M (cible) %I (source) 16 (Ecriture dans plusieurs registres 4x) %MW (source) %MW (cible) 15 (Ecriture dans plusieurs registres 0x) %M (source) %Q (cible) 05 (Ecriture dans un seul registre 0x) %M (source) %Q (cible) 06 (Ecriture dans un seul registre 4x) %MW (source) %MW (cible) 33002528.25 XXMIT : Transmission Communication Lorsque vous souhaitez envoyer 20 messages Modbus à partir de l'automate, vous devez transférer 20 tableaux de définition Modbus un par un dans MsgOut après chaque exécution réussie du bloc XXMIT ou programmer 20 blocs XXMIT différents, puis les activer un par un à partir du programme utilisateur. Code de fonction Modbus (08) Pour les messages Modbus, le tableau MsgOut doit contenir le tableau de définition Modbus. Il doit être défini comme un champ de mots. Le tableau de définition Modbus pour le code fonction Modbus 08 a une longueur de cinq mots et vous devez définir MsgLen sur 5 pour que l'opération XXMIT aboutisse. Le tableau de définition Modbus est présenté cidessous. Codes de fonction du tableau de définition Modbus (08) Contenu Description Code de fonction Modbus (MsgOut[1]) Le bloc XXMIT prend en charge le code de fonction suivant : Diagnostic (MsgOut[2]) 33002528.25 08 = Diagnostic Entrez la valeur décimale du code de sous-fonction du diagnostic dans ce champ pour exécuter la fonction de diagnostic voulue. Les sous-fonctions de diagnostic suivantes sont prises en charge : Code de sousfonction Description 00 Interrogation en retour 01 Relancer l'option comm. 02 Renvoi du mot de diagnostic 03 Changement de séparateur d'entrée ASCII 04 Mode écoute seul 05 à 09 Réservé 10 Effacer compteurs 11 (et mots de diagnostic dans 384, 484) 12 Renvoi du nombre de messages de bus 13 Renvoi du nombre d'erreurs de communication de bus 14 à 15 Renvoi du nombre d'exceptions de bus 16 Non pris en charge 17 Renvoi du nombre d'esclaves ayant répondu négativement 463 Communication Contenu XXMIT : Transmission Description 18 Renvoi du nombre d'esclaves occupés 19 à 21 Renvoi du nombre de dépassements de caractères de bus Adresse de l'automate esclave (MsgOut[3]) Entrez l'adresse de l'automate Modbus esclave. La plage d'adresses Modbus est généralement comprise entre 1 et 247. Le code de fonction 8 ne prend PAS en charge le mode diffusion (adresse 0). Contenu du champ des données de fonction de diagnostic (MsgOut[4]) Vous devez saisir la valeur décimale nécessaire pour la zone de données de la sous-fonction de diagnostic particulière : Zone de données de l'automate maître (MsgOut [5]) Code de sousfonction Description 02, 04, 10, 11, 12, 13, 16, 17 et 18 Cette valeur est automatiquement réglée sur 0 dans le message Modbus envoyé à l'esclave (elle n'est pas reflétée dans le tampon MsgOut). 00, 01 et 03 Vous devez saisir une valeur dans le champ de données. Pour plus de détails, reportez-vous au document Modicon Modbus Protocol Reference Guide (www.modbus.org). Pour toutes les sous-fonctions, la zone de données de l'automate maître est la destination des données renvoyées par l'esclave. Vous devez indiquer un mot mémoire %MW marquant le début de la zone de données dans laquelle les données renvoyées sont placées. Par exemple, pour placer les données dans la zone de données de l'automate maître commençant à (%MW100), saisissez 100 dans ce champ. La sous-fonction 04 NE RENVOIE PAS de réponse. Pour plus de détails, reportez-vous au document Modicon Modbus Protocol Reference Guide (www.modbus.org). Tampon FIFO et contrôle de flux Présentation Le bloc XXMIT permet à l'utilisateur de définir l'utilisation d'un tampon FIFO de réception, du contrôle de flux et de la fonction des caractères de retour arrière reçus. Tampon FIFO de réception ASCII La mise à 0 du bit 7 du mot de commande désactive la fonction. Lorsque le tampon FIFO reçoit 512 caractères, un débordement interne se produit. Dans ce cas, tous les caractères suivants sont ignorés, toutes les opérations d'entrée ASCII (aux formats simple et terminé) sont arrêtées et le bloc renvoie une erreur jusqu'à ce que vous basculiez l'état du bit 7. Lorsque vous basculez l'état du bit 7, toutes les données du tampon FIFO sont supprimées, 464 33002528.25 XXMIT : Transmission Communication les deux bits de contrôle des entrées ASCII sont ignorés (Entrée ASCII simple [bit 10] et Entrée ASCII terminée [bit 11]) et lorsque aucun contrôle de sortie ASCII n'est sélectionné, le contrôle du port série (1) est renvoyé à l'automate. Vous devez mettre à 1 le bit 11 (Entrée ASCII terminée) ou le bit 10 (Entrée ASCII simple) pour supprimer les caractères ASCII du tampon FIFO à traiter. Un seul des trois bits suivants peut être activé à la fois : Entrée ASCII terminée (bit 11), Entrée ASCII simple (bit 10) ou Messages sous forme de chaînes ASCII (bit 9). L'opération Full duplex peut être réalisée en mettant à 1 le bit 7 (Tampon FIFO de réception ASCII) et le bit 9 (Messages sous forme de chaînes ASCII). Vous pouvez ainsi émettre une entrée ASCII simple à partir de l'automate tout en continuant à recevoir des caractères ASCII dans le tampon FIFO. Cette fonction est utile lors de l'utilisation de terminaux muets. Lorsque le bit 7 (Tampon FIFO de réception ASCII) est à 1, aucun des contrôles de sortie ASCII suivants n'est autorisé : Messages Modbus maîtres (bit 8), Modem à numérotation par impulsion (bit 3), Raccrochage du modem (bit 2), Modem à numérotation à tonalité (bit 1) et Initialisation du modem (bit 0). Validation du caractère de retour arrière Lorsqu'un caractère de retour arrière (BS) est détecté, il N'EST PAS stocké dans le tableau MsgIn. En fait, il supprime le caractère précédent et diminue donc le compteur de caractères RecCount. En revanche, lorsqu'un caractère ASCII standard est détecté, il est stocké dans le tableau MsgIn et augmente le compteur de caractères RecCount. NOTE: les caractères de retour arrière NE PEUVENT PAS supprimer de caractères d'un tableau MsgIn vide. Par conséquent, le compteur de caractères RecCount ne peut jamais être inférieur à 0. Cette fonctionnalité spéciale de caractère de retour arrière et l'écho interne activé sur le terminal sont très utiles lors de l'utilisation de terminaux muets. Un seul bloc XXMIT d'entrée ASCII terminée recherchant un « cr » est activé lorsque le bit 7 (Tampon FIFO de réception ASCII) et le bit 6 (Caractère de retour arrière) sont à 1. Aucune autre logique de programme n'est nécessaire lorsque vous entrez et éditez des caractères en utilisant la touche retour arrière à la volée. Lorsque vous tapez « cr », le bloc XXMIT active la sortie Done et les données corrigées sont toutes alignées correctement dans le tableau MsgIn. Validation du contrôle de flux RTS/CTS Les informations suivantes s'appliquent au mode de sortie. Le bloc XXMIT passe à l'état BLOQUE lorsque l'équipement récepteur indique qu'il ne peut pas traiter de caractères supplémentaires en désactivant le signal CTS. De même, le bloc XXMIT passe à l'état DEBLOQUE lorsque le signal CTS est activé et que l'équipement récepteur indique qu'il PEUT traiter des caractères supplémentaires. Lorsque l'émission est DEBLOQUEE et que le bit 9 (Sortie ASCII simple) et le bit 5 (Contrôle de flux RTS/CTS) sont à 1, les données de la sortie d'émission sont envoyées par 33002528.25 465 Communication XXMIT : Transmission paquets de 16 octets. Une fois tous les paquets envoyés, la sortie Done du bloc XXMIT est activée pour indiquer que l'opération a abouti. Si, au cours d'une émission, elle passe soudainement à BLOQUEE, seuls les caractères restants dans le paquet de sortie courant sont envoyés (16 caractères au plus) et le bloc XXMIT reste ACTIF indéfiniment. La sortie ASCII reprend l'envoi des paquets de sortie restants dès l'instant où le signal CTS est activé. Les informations suivantes s'appliquent au mode d'entrée. Le signal RTS étant un signal de sortie, il peut être utilisé indépendamment du processus d'émission de sortie ASCII pour BLOQUER ou DEBLOQUER des équipements émetteurs. Lorsque le bit 7 (Tampon FIFO de réception ASCII) est à 1, le contrôle de flux RTS/CTS fonctionne en mode d'entrée. Lorsque le bit 7 (Tampon FIFO de réception ASCII) est à 1 et qu'aucune des deux entrées ASCII n'est activée (Entrée ASCII simple [bit 10] ou Entrée ASCII terminée [bit 11]), les caractères reçus remplissent le tampon FIFO dans lequel ils sont insérés. Au même moment, le contrôle de flux RTS (bit 5) est activé, permettant ainsi à l'équipement émetteur de poursuivre ses opérations. Lorsque le tampon FIFO (512 caractères) est plus qu'aux trois-quarts plein, le bit 5 (contrôle de flux RTS) est mis à 0 pour BLOQUER l'équipement émetteur. Ce bit reste à 0 jusqu'à ce que l'entrée ASCII simple (bit 10) ou l'entrée ASCII terminée (bit 11) ait supprimé assez de caractères du tampon FIFO pour réduire le contenu de celui-ci à moins d'un quart et permettre au bit 5 (Contrôle de flux RTS) de passer à 1. NOTE: Si l'équipement récepteur bloque indéfiniment l'activation du signal CTS (ou en cas de problème de câblage qui a pour effet de désactiver le signal CTS), le bloc XXMIT ne termine jamais la transmission et l'équipement récepteur ne reçoit jamais la commande. ATTENTION VERROUILLAGE DE LA TRANSMISSION Assurez-vous que la fonction XXMIT achève toujours la transmission. Le non-respect de ces instructions peut provoquer des blessures ou des dommages matériels. Vous pouvez empêcher le blocage de la transmission : • en lançant un temporisateur au démarrage du bloc XXMIT et en avertissant le programme d'application lorsque l'heure interne du temporisateur est atteinte. • en réinitialisant le bit de démarrage du bloc XXMIT. NOTE: L'algorithme du contrôle de flux RTS/CTS est différent de celui du contrôle modem RTS/CTS. Le premier est lié au débordement du tampon de réception full duplex. Le second concerne l'accès du processus d'émission à un support d'émission partagé. Par conséquent, il est interdit de demander simultanément ces deux algorithmes RTS/CTS. 466 33002528.25 XXMIT : Transmission Communication NOTE: vous NE POUVEZ PAS sélectionner n'importe quel type de contrôle de flux RTS/ CTS (bit 5) lorsque le port est en mode RS 485 (bit 13), car ces signaux N'EXISTENT PAS en mode RS 485. Validation du contrôle de flux Xon/Xoff Les informations suivantes s'appliquent au mode de sortie. Le bloc XXMIT passe à l'état BLOQUE lors de la réception d'un caractère Xoff. De même, le bloc XXMIT passe à l'état DEBLOQUE lors de la réception d'un caractère Xon. Xon ou Xoff ne sont en aucun cas insérés dans le tampon FIFO. Lorsque l'émission est DEBLOQUEE et que le bit 9 (Sortie ASCII simple) et le bit 4 (Contrôle de flux Xon/Xoff) sont à 1, les données de la sortie d'émission sont envoyées par paquets de 16 octets. Une fois tous les paquets envoyés, la sortie Done du bloc XXMIT est activée. Si, au cours d'une émission, elle passe soudainement à l'état BLOQUEE, seuls les caractères restants dans le paquet de sortie courant sont envoyés (16 caractères au plus) et le bloc XXMIT reste ACTIF indéfiniment. Ce n'est que lors de la réception du caractère Xon suivant que la sortie ASCII reprend l'envoi de tous les paquets de sortie restants. Les informations suivantes s'appliquent au mode d'entrée. Le signal Xon/Xoff peut être utilisé pour BLOQUER ou DEBLOQUER des équipements émetteurs. Lorsque le bit 7 (Tampon FIFO de réception ASCII) est à 1, le contrôle de flux Xon/Xoff (bit 4) fonctionne en mode d'entrée. Lorsque le bit 7 (Tampon FIFO de réception ASCII) est à 1 et qu'aucune des deux entrées ASCII n'est activée (Entrée ASCII simple [bit 10] ou Entrée ASCII terminée [bit 11]), les caractères reçus remplissent le tampon FIFO dans lequel ils sont insérés. Lorsque le tampon FIFO est plus qu'aux trois-quarts plein et qu'il reçoit des caractères supplémentaires, la variable d'état du tampon FIFO est mise à 1. Elle entraîne l'envoi de caractères XOFF à partir du port série après un retard de 16 caractères BLOQUANT l'émetteur et mettant à 0 la variable d'état du tampon FIFO. Lorsque toutes les fonctions de sortie ASCII (bits 8, 3, 2, 1 et 0) sont désactivées et que le contrôle de flux Xon/Xoff (bit 4) est activé, le retard est par défaut d'un caractère. En revanche, lorsque toutes les fonctions de sortie ASCII (bits 8, 3, 2, 1 et 0) sont activées et que le contrôle de flux Xon/Xoff (bit 4) est activé, la sortie ASCII est répartie dans des paquets de 16 octets. Par conséquent, les caractères Xoff en attente N'ONT PAS BESOIN d'attendre que le temps nécessaire à l'émission de 16 caractères soit écoulé pour BLOQUER l'émetteur. Une fois que l'émetteur a interrompu l'émission, l'automate supprime finalement les caractères du tampon FIFO en utilisant le bit 10 (Entrée ASCII simple) ou le bit 11 (Entrée ASCII terminée). Lorsque le tampon FIFO est rempli à moins d'un quart, sa variable d'état est mise à 1 de façon à permettre l'envoi d'un caractère XON à partir du port série pour DEBLOQUER l'émetteur. 33002528.25 467 Communication XXMIT : Transmission NOTE: pour empêcher le verrouillage suite à la déconnexion d'un câble ou à d'autres erreurs de communication intermittentes lorsque l'émetteur est BLOQUE et qu'il n'a PAS reçu le caractère Xon correctement, nous utilisons l'algorithme suivant. Lorsque le tampon FIFO devient vide et qu'il ne reçoit aucun caractère par la suite, une chaîne régulière de caractères Xon est émise une fois toutes les 5 secondes. NOTE: Le contrôle de flux Xon/Xoff (bit 4) est différent du contrôle de flux RTS/CTS (bit 5). Le premier utilise les caractères Xon et Xoff émis pour éviter le débordement du tampon de réception en mode full duplex. Le second utilise les signaux de synchronisation du matériel dans le même but. Par conséquent, il est interdit de demander simultanément ces deux algorithmes de contrôle de flux, car le contrôle de flux/contrôle modem RTS/CTS (bit 5) implique un réseau half duplex alors que le contrôle de flux Xon/Xoff (bit 4) implique un réseau full duplex . Exemples d’application Description Le programme suivant est une courte application de démonstration avec quatre instances du bloc XXMIT illustrant les quatre fonctions principales : • Maître Modbus • Entrée ASCII simple • Sortie Message ASCII • Entrée ASCII terminée Maître Modbus L'opération suivante du maître Modbus est une requête de lecture adressée à un équipement esclave (adresse 4 par exemple) connecté au port 1 du maître : • Lecture des mots %MW1 à %MW10 de l'esclave • dans les mots locaux %MW11 à %MW20 L'esclave (adresse 4) doit être configuré avec les paramètres de port suivants : • 9 600 bauds • 8 bits de données • 1 bit d'arrêt • parité paire (2) Le maître utilise les paramètres du bloc XXMIT 468 33002528.25 XXMIT : Transmission Communication Déclaration des variables pour le maître Modbus Le tableau suivant présente les variables utilisées dans l'exemple de maître Modbus : Nom de variable Type de données Valeur initiale Commentaire DémarrMaîtreModbus BOOL MaîtreModbusActif BOOL CommandeMaîtreModbus WORD 16#0100 Bit 8 défini MaîtreModbusEffect BOOL ErreurMaîtreModbus BOOL ParamMaîtreModbus WordArr9 ParamMaîtreModbus[1] 3 Code Modbus : lecture de plusieurs mots ParamMaîtreModbus[2] 10 Nombre de mots à lire ParamMaîtreModbus[3] 4 Adresse de l'automate Modbus esclave ParamMaîtreModbus[4] 1 Mot source ParamMaîtreModbus[5] 11 Mot cible ParamMaîtreModbus[6] 0 Non utilisé ParamMaîtreModbus[7] Non utilisé ParamMaîtreModbus[8] Non utilisé ParamMaîtreModbus[9] Non utilisé EtatMaîtreModbus INT AbonnéMaîtreModbus WORD CpteurErrMaîtreModbus INT CpteurEffectMaîtreModbus INT 4 Saisie de l'adresse de l'esclave Section IEC pour maître Modbus Utilisez le programme suivant dans une section FBD : 33002528.25 469 Communication XXMIT : Transmission Affectation de l'adresse de l'abonné esclave Affectations au bloc fonction XXMIT : 470 33002528.25 XXMIT : Transmission Communication Comptage des échecs et des réussites Réception ASCII simple Reçoit toute valeur arrivant au port 1. La longueur du tampon de réception est associée à la variable LongRéceptSimple, dont la valeur initiale est égale à 10. Les caractères reçus sont stockés dans le tableau MsgIn et le nombre de caractères reçus dans RecCount. Déclaration des variables pour la réception ASCII simple Le tableau suivant présente les variables utilisées dans l'exemple de réception ASCII simple : Nom de variable Type de données DémarrRéceptSimple BOOL RéceptSimpleActive BOOL CpteurCaracRéceptSimple INT CommandeRéceptSimple WORD RéceptSimpleEffect BOOL ErrRéceptSimple BOOL LongRéceptSimple INT 33002528.25 Valeur initiale Commentaire 16#0480 Bits 7 et 10 définis. FIFO activé 10 471 Communication XXMIT : Transmission Nom de variable Type de données CpteurNouvTentRéceptSimple INT EtatRéceptSimple INT MessRéceptSimple ByteArr12 CpteurEffectRéceptSimple INT CpteurErrRéceptSimple INT Valeur initiale Commentaire Section IEC pour réception ASCII simple Utilisez le programme suivant dans une section FBD : 472 33002528.25 XXMIT : Transmission Communication Comptage des échecs et des réussites Envoi ASCII simple Envoie un message ASCII simple depuis le port 1. Le message est « Hello World!! ». Déclaration des variables pour l'envoi ASCII simple Le tableau suivant présente les variables utilisées dans l'exemple d'envoi ASCII simple : Nom de variable Type de données DémarrEnvSimple BOOL EnvSimpleActif BOOL CommandeEnvSimple WORD EnvSimpleEffect BOOL ErrEnvSimple BOOL LongEnvSimple INT MessEnvSimple ByteArr36 Valeur initiale Commentaire 16#0200 Bit 9 défini 14 Nombre de caractères à envoyer 'Hello World !!' 16#48 MessEnvSimple[1] 16#65 MessEnvSimple[2] 16#6C MessEnvSimple[3] 16#6C 33002528.25 473 Communication Nom de variable XXMIT : Transmission Type de données Valeur initiale MessEnvSimple[4] 16#6F MessEnvSimple[5] 16#20 MessEnvSimple[6] 16#57 MessEnvSimple[7] 16#6F MessEnvSimple[8] 16#72 MessEnvSimple[9] 16#6C MessEnvSimple[10] 16#64 MessEnvSimple[11] 16#20 MessEnvSimple[12] 16#21 MessEnvSimple[13] 16#21 Commentaire MessEnvSimple[14] 474 CpteurNouvTentEnvSimple INT EtatEnvSimple INT CpteurEffectEnvSimple INT CpteurErrEnvSimple INT 33002528.25 XXMIT : Transmission Communication Section IEC pour envoi ASCII simple Utilisez le programme suivant dans une section FBD : Comptage des échecs et des réussites Réception ASCII terminée Après avoir reçu les caractères de départ « AB », le bloc fonction place tous les caractères reçus dans le tampon de réception MsgIn. Le récepteur s'arrêtera à la réception des 33002528.25 475 Communication XXMIT : Transmission caractères de fin « CD ». La sortie « Done » sera alors activée pour indiquer la réussite de l'opération. La longueur maximale du tampon de réception est associée à la variable « LongRéceptTerm », dont la valeur initiale est égale à 20 dans cet exemple. Déclaration des variables pour la réception ASCII terminée Le tableau suivant présente les variables utilisées dans l'exemple de réception ASCII terminée : Nom de variable Type de données DémarrRéceptTerm BOOL RéceptTermActive BOOL CpteurCaracRéceptTerm INT CommandeRéceptTerm WORD RéceptTermEffect BOOL ErrRéceptTerm BOOL LongRéceptTerm INT MessRéceptTerm ByteArr36 CpteurNouvTentRéceptTerm INT ParamRéceptTerm ByteArr36 Valeur initiale Commentaire 16#0880 Bits 11 et 7 définis. FIFO activé 20 Caractères reçus 16#02 Longueur de la chaîne de fin (1 ou 2) 16#02 Longueur de la chaîne de départ (0, 1 ou 2) 16#41 Premier caractère de départ 16#42 Deuxième caractère de départ 16#43 Premier caractère de fin 16#44 Deuxième caractère de fin ParamRéceptTerm[1] ParamRéceptTerm[2] ParamRéceptTerm[3] ParamRéceptTerm[4] ParamRéceptTerm[5] ParamRéceptTerm[6] 476 EtatRéceptTerm INT CpteurEffectRéceptTerm INT CpteurErrRéceptTerm INT 33002528.25 XXMIT : Transmission Communication Section IEC pour réception ASCII terminée Utilisez le programme suivant dans une section FBD : Comptage des échecs et des réussites Saisie de chaînes comme valeurs initiales L'éditeur de données de Control Expert vous permet de saisir facilement des chaînes en tant que valeurs initiales dans des tableaux d'octets. 33002528.25 477 Communication XXMIT : Transmission La section suivante explique brièvement comment définir une variable « ChaîneDémo » en tant que « ByteArr36 » et comment saisir une chaîne « Mon texte! » comme valeur initiale. Ouverture de l'éditeur de données Dans le menu principal, sélectionnez : Outils -> Editeur de données. Editeur de données Déclaration du nouveau nom de chaîne Déclarez le nom de la chaîne du tableau en cliquant sur en regard du type (sélectionnez Bool dans le cas présent). Une fenêtre permettant de sélectionner le type de variable s'affiche alors. 478 33002528.25 XXMIT : Transmission Communication Définition du type d'élément 1 Définition du type d'élément Cochez la case Tableau, puis définissez le nombre d'éléments et leur type. Vous pouvez maintenant afficher et modifier les valeurs de byteArr36 étendu. Définition du type d'élément 2 33002528.25 479 Communication XXMIT : Transmission Définition de ByteArr36 Règles de programmation du bloc XXMIT Présentation Cette section décrit les règles de programmation XXMIT pour Unity Pro 2.3 ou version ultérieure. NOTE: Unity Pro est l’ancien nom de Control Expert pour les versions 13.1 et antérieures. Règles de programmation du bloc XXMIT Description des règles de programmation Plusieurs cycles d'automate peuvent être nécessaires pour envoyer une requête Modbus ou une chaîne de caractères. Les bits de démarrage (Start), d'activation (Active), de fin d'opération (Done) et d'erreur (Error) fonctionnent de la manière suivante : 480 33002528.25 XXMIT : Transmission Communication Le signal de démarrage est écrit par l'application. Les signaux Active, Done et Error sont lus par l'application. NOTE: Si le signal de démarrage reste à 1 une fois l'opération terminée, le bloc XXMIT redémarre. Cela génère plusieurs transmissions du même message Modbus ou ASCII vers l'équipement récepteur. ATTENTION EMISSIONS MULTIPLES Assurez-vous que le bloc XXMIT n'est pas relancé une fois son exécution terminée. Le non-respect de ces instructions peut provoquer des blessures ou des dommages matériels. La réinitialisation du bit de démarrage (Start) dès que le bit de fin d'opération (Done) est à 1 empêche le redémarrage du bloc XXMIT après une exécution réussie. Plusieurs blocs fonction XXMIT ne peuvent pas être activés en même temps. Si plusieurs blocs fonction XXMIT sont activés, le premier bloc scruté va fonctionner et bloquer tous les autres blocs XXMIT jusqu'à ce qu'il ait terminé. L'appel du bloc suivant va immédiatement générer le code d'erreur 150. Le bloc fonction XXMIT peut être utilisé uniquement dans une tâche MAST. Un code d'erreur (127) apparaît immédiatement si le bloc est activé dans les tâches FAST / AUX ou EVENT (Control Expert n'effectue aucun contrôle lors de la compilation). 33002528.25 481 Communication XXMIT : Transmission NOTE: Les paramètres d'entrée du bloc XXMIT doivent être initialisés pour pouvoir activer l'entrée START. Ils ne doivent pas être modifiés lorsque le bloc fonction est en cours d'exécution. Si le bit START est remis à 0 avant la fin de l'opération, le bloc fonction est arrêté (le bit Active passe à 0). Pour permettre l'exécution complète du bloc, le bit START doit rester à 1 jusqu'à la fin de l'opération ou jusqu'à l'occurrence d'une erreur. Références techniques XXMIT Vue d'ensemble Cette section décrit les références techniques relatives à XXMIT. Limites des paramètres de requête/réponse Modbus Limites des paramètres basées sur le code de fonction Les paramètres de requête/réponse sont limités selon le type de code de fonction que vous utilisez. Reportez-vous au tableau ci-dessous. Tableau des paramètres maximum de l'automate Quantum : 482 Code de fonction Description Requête Réponse 1 Lecture de plusieurs bits 2000 bits 2000 bits 2 Lecture de plusieurs bits 2000 bits 2000 bits 3 Lecture de plusieurs mots 125 mots 125 mots 4 Lecture de plusieurs mots 125 mots 125 mots 5 Ecriture d'un seul bit 1 bit 1 bit 6 Ecriture d'un seul mot 1 mot 1 mot 15 Ecriture de plusieurs bits 800 bits 800 bits 16 Ecriture de plusieurs mots 100 mots 100 mots 33002528.25 XXMIT : Transmission Communication Configuration de XXMIT à l'aide de modems à numérotation automatique compatibles Hayes (uniquement) Description Vous devez vous familiariser avec trois commandes lors de la connexion de modems à numérotation automatique à XXMIT. Ces commandes sont les suivantes : • initialisation du modem • numérotation du modem • raccrochage du modem. Avant qu'un message ASCII ou Modbus ne passe par le modem, vous devez commencer par envoyer une chaîne d'initialisation, puis une chaîne de numérotation au modem. Une fois que le modem a composé le numéro de téléphone et établi la connexion avec le modem déporté, vous pouvez envoyer un nombre illimité de messages ASCII ou Modbus par ce modem. Pour envoyer plusieurs messages, incrémentez le pointeur de message pour passer au message suivant après chaque exécution réussie de XXMIT. Lorsque tous les messages ont été envoyés, vous pouvez envoyer la chaîne de raccrochage au modem. Message d'initialisation Le message d'initialisation est un simple message ASCII ; il peut comporter un maximum de 512 caractères, sachant que 50 caractères sont souvent plus que suffisants pour initialiser un modem. Vous pouvez mettre en oeuvre n'importe quelle commande AT Hayes dans la chaîne d'initialisation. Nous recommandons les commandes suivantes lors de l'initialisation d'un modem utilisé avec XXMIT. Message d'initialisation pour un modem à numérotation automatique Message d'initialisation = AT&F&K0&Q0&D0V1Q0X0E1 AT= Réglage automatique du modem 1 &F= Reprise de la configuration usine comme configuration active 1 &K0= Désactivation du contrôle de flux local 2 &Q0= Communication en mode asynchrone 2 &D0= Ignorer l'état du signal DTR 1 V1= Affichage des codes de résultat sous forme de mots 1 33002528.25 483 Communication Message d'initialisation = XXMIT : Transmission AT&F&K0&Q0&D0V1Q0X0E1 Si V1 n'est pas utilisé ou si le modem n'est pas capable de renvoyer des réponses prolixes, le bloc XXMIT renvoie l'erreur 117 (timeout de réponse du modem). Q0= Renvoi des codes de résultat 1 X0= Renvoi des codes de résultat de la progression des appels de base : Connexion, Pas de porteuse et Sonnerie 1 E1= Echo des caractères entrés au clavier vers l'écran dans l'état de commande 1 1 Ces paramètres doivent toujours faire partie de la chaîne d'initialisation pour que XXMIT fonctionne correctement. 2 Ces paramètres doivent faire partie de la chaîne d'initialisation pour que XXMIT transmette correctement un message à un modem déporté. Ne modifiez ou n'utilisez ces paramètres que si vous êtes un utilisateur de modem expérimenté. NOTE: Si certains fabricants de modems garantissent une compatibilité totale avec Hayes, il peut exister de légères différences. Par conséquent, nous recommandons de n'utiliser que les commandes ayant les mêmes définitions que celles indiquées cidessus. Le message d'initialisation doit toujours commencer par une commande AT standard Hayes. Le bloc XXMIT ajoute automatiquement AT au début des messages de commande du modem et les fait suivre des caractères retour chariot (0x0D) et retour à la ligne (0x0A) puisque ces caractères sont nécessaires pour tous les messages de contrôle du modem. Il n'est pas nécessaire que les autres messages ASCII (sans contrôle) finissent par un retour chariot et un retour à la ligne. Exemple de message d'initialisation typique envoyé par le bloc XXMIT au modem. Message Longueur (AT)&F&K0&Q0&D0V1X0Q0 (<CR><LF>) 1 17 caractères 1 Les caractères entre parenthèses sont automatiquement envoyés. Par exemple, le message d'initialisation peut également être utilisé pour régler les registres S du modem. Message Longueur (AT)S0=1 (<CR><LF>) 1 4 caractères 1 Les caractères entre parenthèses sont automatiquement envoyés. Pour que XXMIT envoie un message d'initialisation au modem, les bits 9 et 0 du mot de commande doivent être à 1. Lorsque le bit 0 est à 1, les bits 1 et 2 doivent être à 0, sinon le bloc XXMIT ne peut pas exécuter l'opération correctement. Pour que le message soit 484 33002528.25 XXMIT : Transmission Communication effectivement envoyé, l'entrée Start de XXMIT doit s'ACTIVER et rester ACTIVE jusqu'à ce que l'opération soit terminée ou qu'une erreur survienne. Lorsque XXMIT détermine que le message a bien été envoyé au modem, il ACTIVE la sortie Done. Lorsqu'une erreur survient, la sortie Error s'ACTIVE. La sortie Active est ACTIVE pendant l'envoi du message au modem. NOTE: Pour limiter la programmation par schémas à contacts, vous pouvez initialiser le modem avec des paramètres via un programme de terminal et ne pas utiliser XXMIT. Une fois dans la mémoire du modem, les paramètres peuvent être sauvegardés dans la mémoire non volatile à l'aide d'une commande AT, habituellement &W. Message de composition Le message de composition est utilisé pour envoyer un numéro de téléphone au modem. Seules les commandes AT liées à la composition d'un numéro doivent être incluses dans le message. Vous trouverez ci-dessous des exemples de messages de composition typiques utilisés avec le bloc XXMIT. Exemple de composition d'un numéro de téléphone à l'aide de la numérotation à tonalité. Message Longueur (AT)DT)6800326 (<CR><LF>)1 7 caractères 1 Les caractères entre parenthèses sont automatiquement envoyés. Exemple de composition d'un numéro de téléphone à l'aide de la numérotation par impulsion. Message Longueur (AT)DP)6800326 (<CR><LF>)1 7 caractères 1 Les caractères entre parenthèses sont automatiquement envoyés. Exemple de composition d'un numéro de téléphone à l'aide de la numérotation à tonalité, attente de la tonalité avant la composition du numéro, puis pause avant la composition du reste du numéro. Message Longueur (AT)DT)W,6800326 (<CR><LF>)1 9 caractères 1 Les caractères entre parenthèses sont automatiquement envoyés. Pour que le bloc XXMIT envoie un message de numérotation à tonalité au modem, les bits 9 et 1 du mot de commande doivent être à 1. Lorsque le bit 1 est à 1, les bits 0 et 2 doivent être à 0, sinon le bloc XXMIT ne peut pas exécuter l'opération correctement. Pour que le 33002528.25 485 Communication XXMIT : Transmission message soit effectivement envoyé, l'entrée Start de XXMIT doit s'ACTIVER et rester ACTIVE jusqu'à ce que l'opération soit terminée ou qu'une erreur survienne. Lorsque XXMIT détermine que le message a bien été envoyé au modem, il ACTIVE la sortie Done. Lorsqu'une erreur survient, la sortie Error s'ACTIVE. La sortie Active est ACTIVE pendant l'envoi du message au modem. NOTE: L'établissement de la connexion entre un modem local et un modem déporté demandant beaucoup de temps, la valeur du timeout dans RespTout doit être assez longue lors de l'envoi d'un message de composition à un modem. Par exemple, réglez le timeout sur 30 000 ms lors de l'envoi d'un message de composition. Lorsque la valeur du timeout est trop faible, XXMIT émet un timeout de message. Vous devrez peut-être essayer plusieurs réglages avant de trouver la valeur optimale. Message de raccrochage Le message de raccrochage est utilisé pour raccrocher le modem. Seules les commandes AT liées au raccrochage du modem doivent être utilisées dans ce message. Vous trouverez ci-dessous un exemple de message de raccrochage typique. Exemple de message de raccrochage du modem. Message Longueur (+++AT)H0 (<CR><LF>)1 2 caractères 1 Les caractères entre parenthèses sont automatiquement envoyés. Lorsque le message de raccrochage est envoyé à un modem déjà connecté à un modem déporté, XXMIT doit d'abord régler le modem local en mode de commande en envoyant une séquence d'échappement +++ au modem. XXMIT suppose que +++ règle le modem en mode de commande. Certains fabricants de modems permettent au propriétaire de modifier cette séquence d'échappement par défaut. Pour que XXMIT fonctionne correctement, le modem doit être réglé de manière à accepter la séquence d'échappement +++. Pour que le bloc XXMIT envoie un message de raccrochage au modem, les bits 9 et 2 du mot de commande doivent être à 1. Lorsque le bit 2 est à 1, les bits 0 et 1 doivent être à 0, sinon le bloc XXMIT ne peut pas exécuter l'opération correctement. Pour que le message soit effectivement envoyé, l'entrée Start de XXMIT doit s'ACTIVER et rester ACTIVE jusqu'à ce que l'opération soit terminée ou qu'une erreur survienne. Lorsque XXMIT détermine que le message a bien été envoyé au modem, il ACTIVE la sortie Done. Lorsqu'une erreur survient, la sortie Error s'ACTIVE. La sortie Done est ACTIVE pendant l'envoi du message au modem. 486 33002528.25 XXMIT : Transmission Communication NOTE: Expert : Le raccrochage d'un modem local demandant beaucoup de temps après réception de la commande de raccrochage, la valeur du timeout dans RespTout doit être assez longue lors de l'envoi d'un message de composition à un modem. Par exemple, réglez le timeout sur 30 000 ms lors de l'envoi d'un message de composition. Lorsque la valeur du timeout est trop faible, XXMIT émet un timeout de message. Vous devrez peut-être essayer plusieurs réglages avant de trouver la valeur optimale. Exemple d'application Hayes Description Le programme suivant est une petite application de démonstration qui envoie le message "Hello World" via un modem compatible Hayes (Com One, Deskline 56K). Pour lancer l'application, la variable "stage" (étape) doit être réglée à 1 dans une table d'animation Control Expert. Types de données des variables start_xxmit_block BOOL command WORD msgout ARRAY[0.40] OF BYTE Msg_Size INT xmit_DONE BOOL xmit_ERROR BOOL xmit_ACTIVE BOOL xxmit_RESPTOUT INT xxmit_STARTDLY INT xxmit_ENDDLY INT xmit_STATUS_mem INT counter INT stage WORD 33002528.25 487 Communication XXMIT : Transmission Section IEC pour XXMIT Utilisez le programme suivant dans une section FBD : Section IEC pour les commandes du modem Effectuez la programmation suivante dans une section ST : (* %S6 sert à générer un retard de 2 secondes *) %m6 := %s6; if xxmit_STATUS_Mem = 0 then if not(xxmit_STATUS = 0) then xxmit _STATUS_Mem := xxmit_STATUS; end_if; end_if; (* Si erreur XXMIT, le bloc fonction est arrêté *) if xmit_ERROR=1 then stage := 0; counter := 0; start_xxmit_block:=0; end_if; if stage = 1 then (* Message d'initialisation*) xxmit_STATUS_Mem := 0; counter := 0; xxmit_ENDDLY := 700; xxmit_STARTDLY := 600; xxmit_RESPTOUT := 700; (* Initialisation du mot de commande *) command:=2#0000001000000001; msgout[0] := 16#26;(*&->26*) msgout[1] := 16#46;(*F->46*) msgout[2] := 16#26;(*&->26*) 488 33002528.25 XXMIT : Transmission Communication msgout[3] := 16#4B;(*K->46*) msgout[4] := 16#30;(*0->30*) msgout[5] := 16#26;(*&->26*) msgout[6] := 16#44;(*D->44*) msgout[7] := 16#30;(*0->30*) msgout[8] := 16#56;(*V->56*) msgout[9] := 16#31;(*1->31*) msgout[10] := 16#51;(*Q->51*) msgout[11] := 16#30;(*0->30*) msgout[12] := 16#58;(*X->58*) msgout[13] := 16#30;(*0->30*) msgout[14] := 16#45;(*E->45*) msgout[15] := 16#31;(*1->31*) Msg_Size := 16; start_xxmit_block:=1; stage := 2; end_if; if stage = 3 then (* Message de numérotation *) xxmit_STARTDLY := 100; xxmit_ENDDLY := 100; xxmit_RESPTOUT := 32000; (* Initialisation du mot de commande *) command:=2#0000001000000010; (* Numéro d'extension *) msgout[0] := 16#32;(*2*) msgout[1] := 16#35;(*5*) msgout[2] := 16#37;(*7*) msgout[3] := 16#34;(*4*) start_xxmit_block:=1; Msg_Size := 4; stage := 4; end_if; if (stage = 5)then if RE(%m6) then counter := counter + 1; end_if; (* Retard de deux secondes *) if stage = 5 and counter = 2 then counter := 0; stage := 7; end_if; end_if; if stage = 7 then (* Message ASCII à envoyer *) xxmit_STARTDLY := 300; xxmit_ENDDLY := 400; xxmit_RESPTOUT := 32000; (* Initialisation du mot de commande *) command:2=#0100001000000000; 33002528.25 489 Communication XXMIT : Transmission msgout[0] := 16#48; (*H*) msgout[1] := 16#65; (*e*) msgout[2] := 16#6C; (*l*) msgout[3] := 16#6C; (*l*) msgout[4] := 16#6F; (*o*) msgout[5] := 16#20; (* *) msgout[6] := 16#57; (*W*) msgout[7] := 16#6F; (*o*) msgout[8] := 16#72; (*r*) msgout[9] := 16#6C; (*l*) msgout[10] := 16#64; (*d*) msgout[11] := 16#20; (* *) msgout[12] := 16#21; (*!*) msgout[13] := 16#21; (*!*) Msg_Size := 14; start_xxmit_block:=1; stage := 8; end_if; if stage = 100 then (* Message de raccrochage *) command:=2#0000001000000100; xxmit_STARTDLY := 300; xxmit_ENDDLY := 400; xxmit_RESPTOUT := 500; msgout[0] := 16#48;(* *) msgout[1] := 16#30;(*CR*) Msg_Size := 2; start_xxmit_block:=1; end_if; (* Changement d'état après chaque opération XXMIT *) if xmit_DONE = 1 then start_xxmit_block:=0; if stage = 2 then stage := 3; end_if; if stage = 4 then ounter := 0; stage := 5; end_if; if stage = 8 then stage := 99; end_if; if stage = 99 then stage :=100; end_if; end_if; 490 33002528.25 XXMIT : Transmission Communication Informations sur le câblage Vue d'ensemble Cette section décrit les câbles et le brochage des composants matériels utilisés avec XXMIT. Brochage des câbles Brochage des câbles d'interface Vous devez installer un câble d'interface entre l'automate et le modem ou l'imprimante. Ce câble doit être branché sur le port pris en charge par l'automate et sur le port RS232 du modem ou de l'imprimante, ou directement sur le port Modbus d'un autre automate. Le bloc XXMIT prenant en charge de nombreux modems et imprimantes, le brochage risque de varier. Certains brochages sont indiqués ci-dessous. 9 broches (RS-232) vers 25 broches (modem) sans contrôle RTS/ CTS Reportez-vous à la figure pour obtenir une vue de face des connecteurs. Reportez-vous au tableau de brochage des connecteurs. 33002528.25 491 Communication XXMIT : Transmission Brochage des connecteurs Connecteur 9 broches Connecteur type SUB-D 25 broches Nom du signal Broche Broche connectée à ... Broche Nom du signal RXD 2 Oui 3 RXD TXD 3 Oui 2 TXD RTS 7 (pontage) 4 (pontage) RTS CTS 8 (pontage) 5 (pontage) CTS DSR 4 (pontage) 6 (pontage) DSR DTR 6 (pontage) 20 (pontage) DTR GND 5 7 GND Oui 9 broches (RS-232) vers 25 broches (modem) avec contrôle RTS/ CTS Reportez-vous à la figure pour obtenir une vue de face des connecteurs. Reportez-vous au tableau de brochage des connecteurs. 492 33002528.25 XXMIT : Transmission Communication Brochage des connecteurs Connecteur 9 broches Connecteur type SUB-D 25 broches Nom du signal Broche Broche connectée à ... Broche Nom du signal RXD 2 Oui 3 RXD TXD 3 Oui 2 TXD RTS 7 Oui 4 RTS CTS 8 Oui 5 CTS DSR 4 (pontage) 6 (pontage) DSR DTR 6 (pontage) 20 (pontage) DTR GND 5 7 GND Oui 9 broches vers 9 broches (Null Modem) Reportez-vous à la figure pour obtenir une vue de face des connecteurs. Reportez-vous au tableau de brochage des connecteurs. Brochage des connecteurs Connecteur 9 broches Connecteur 9 broches Nom du signal Broche Broche connectée à ... Broche Nom du signal RXD 2 Oui 3 TXD TXD 3 Oui 2 RXD RTS 7 (pontage) 7 (pontage) RTS CTS 8 (pontage) 8 (pontage) CTS 33002528.25 493 Communication XXMIT : Transmission Brochage des connecteurs Connecteur 9 broches Connecteur 9 broches Nom du signal Broche DSR Broche connectée à ... Broche Nom du signal 4 (pontage) 4 (pontage) DSR DTR 6 (pontage) 6 (pontage) DTR GND 5 5 GND Oui 9 broches vers 9 broches (Modem) Reportez-vous à la figure pour obtenir une vue de face des connecteurs. Reportez-vous au tableau de brochage des connecteurs. Brochage des connecteurs Connecteur 9 broches 494 Connecteur 9 broches Nom du signal Broche Broche connectée à ... Broche Nom du signal TXD 2 Oui 2 TXD RXD 3 Oui 3 RXD RTS 7 Oui 7 RTS CTS 8 Oui 8 CTS DSR 4 (pontage) 4 (pontage) DSR DTR 6 (pontage) 6 (pontage) DTR GND 5 5 GND Oui 33002528.25 XXMIT : Transmission Communication 9 broches vers 25 broches (Null Modem) Reportez-vous à la figure pour obtenir une vue de face des connecteurs. Reportez-vous au tableau de brochage des connecteurs. Brochage des connecteurs Connecteur 9 broches Connecteur type SUB-D 25 broches Nom du signal Broche Broche connectée à ... Broche Nom du signal RXD 2 Oui 2 TXD TXD 3 Oui 3 RXD RTS 7 (pontage) 4 (pontage) RTS CTS 8 (pontage) 5 (pontage) CTS DSR 4 (pontage) 6 (pontage) DSR DTR 6 (pontage) 20 (pontage) DTR GND 5 7 GND 33002528.25 Oui 495 Communication XXMIT : Transmission RJ45-(8x8) vers 25 broches (Null Modem) 110XCA20401 Reportez-vous à la figure pour obtenir une vue de face des connecteurs. Reportez-vous au tableau de brochage des connecteurs. Brochage des connecteurs Connecteur RJ45 Connecteur type SUB-D 25 broches Nom du signal Broche Broche connectée à ... Broche Nom du signal RXD 4 Oui 2 TXD TXD 3 Oui 3 RXD RTS 6 (pontage) 4 (pontage) RTS CTS 7 (pontage) 5 (pontage) CTS GND 5 Oui 7 GND DSR 2 Oui 6 DSR 20 DTR 1 Masse du châssis Masse du châssis 8 Oui N.C.(*) 1 Non (*) 5 VCC fourni par le contrôleur. Ne pas connecter 496 33002528.25 XXMIT : Transmission Communication AVERTISSEMENT FONCTIONNEMENT IMPREVU DE L'EQUIPEMENT Ne connectez pas de fils à des bornes inutilisées et/ou portant la mention NC (non connecté). Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. RJ45-(8x8) vers 9 broches (Null Modem) 110XCA20301 Reportez-vous à la figure pour obtenir une vue de face des connecteurs. Reportez-vous au tableau de brochage des connecteurs. Brochage des connecteurs Connecteur RJ45 Connecteur type SUB-D 9 broches Nom du signal Broche Broche connectée à ... Broche Nom du signal RXD 4 Oui 3 TXD TXD 3 Oui 2 RXD RTS 6 (pontage) 7 (pontage) RTS CTS 7 (pontage) 8 (pontage) CTS GND 5 Oui 5 GND DSR 2 Oui 4 DTR 6 DSR Masse du châssis 8 Oui N.C.(*) 1 Non Cas du connecteur (*) 5 VCC fournie par le contrôleur. Ne pas connecter 33002528.25 497 Communication XXMIT : Transmission AVERTISSEMENT FONCTIONNEMENT IMPREVU DE L'EQUIPEMENT Ne connectez pas de fils à des bornes inutilisées et/ou portant la mention NC (non connecté). Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. RJ45-(8x8) vers 25 broches (Modem) 110XCA20401 Reportez-vous à la figure pour obtenir une vue de face des connecteurs. Reportez-vous au tableau de brochage des connecteurs. Brochage des connecteurs Connecteur RJ45 498 Connecteur type SUB-D 25 broches Nom du signal Broche Broche connectée à ... Broche Nom du signal RXD 4 Oui 3 RXD TXD 3 Oui 2 TXD RTS 6 (pontage) 4 (pontage) RTS CTS 7 (pontage) 5 (pontage) CTS GND 5 7 GND Oui 33002528.25 XXMIT : Transmission Communication Brochage des connecteurs Connecteur RJ45 Connecteur type SUB-D 25 broches Nom du signal Broche Broche connectée à ... Broche Nom du signal DSR 2 Oui 6 DSR 20 DTR 1 Masse du châssis Masse du châssis 8 Oui N.C.(*) 1 Non (*) 5 VCC fourni par le contrôleur. Ne pas connecter AVERTISSEMENT FONCTIONNEMENT IMPREVU DE L'EQUIPEMENT Ne connectez pas de fils à des bornes inutilisées et/ou portant la mention NC (non connecté). Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. RJ45-(8x8) vers 25 broches (Modem) 110XCA20401 Reportez-vous à la figure pour obtenir une vue de face des connecteurs. Reportez-vous au tableau de brochage des connecteurs. 33002528.25 499 Communication XXMIT : Transmission Brochage des connecteurs Connecteur RJ45 Connecteur type SUB-D 25 broches Nom du signal Broche Broche connectée à ... Broche Nom du signal RXD 4 Oui 3 RXD TXD 3 Oui 2 TXD RTS 6 Oui 4 RTS CTS 7 Oui 5 CTS GND 5 Oui 7 GND 6 (pontage) DSR 20 (pontage) DTR 1 Masse du châssis Masse du châssis 8 Oui N.C.(*) 1 Non (*) 5 VCC fourni par le contrôleur. Ne pas connecter AVERTISSEMENT FONCTIONNEMENT IMPREVU DE L'EQUIPEMENT Ne connectez pas de fils à des bornes inutilisées et/ou portant la mention NC (non connecté). Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. RJ45-(8x8) vers RJ45-(8x8) (Modem) Reportez-vous à la figure pour obtenir une vue de face des connecteurs. Reportez-vous au tableau de brochage des connecteurs. 500 33002528.25 XXMIT : Transmission Communication Brochage des connecteurs Connecteur RJ45 Connecteur RJ45 Nom du signal Broche Broche connectée à ... Broche Nom du signal RXD 4 Oui 4 RXD TXD 3 Oui 3 TXD RTS 6 Oui 6 RTS CTS 7 Oui 7 CTS GND 5 Oui 5 GND DSR 2 Oui 2 DSR Masse du châssis 8 Oui 8 Masse du châssis N.C.(*) 1 Non (*) 5 VCC fourni par le contrôleur. Ne pas connecter AVERTISSEMENT FONCTIONNEMENT IMPREVU DE L'EQUIPEMENT Ne connectez pas de fils à des bornes inutilisées et/ou portant la mention NC (non connecté). Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. 9 broches vers RJ45-(8x8) (Modem) 110XCA20301 Reportez-vous à la figure pour obtenir une vue de face des connecteurs. Reportez-vous au tableau de brochage des connecteurs. 33002528.25 501 Communication XXMIT : Transmission Brochage des connecteurs Connecteur RJ45 Connecteur 9 broches Nom du signal Broche Broche connectée à ... Broche Nom du signal RXD 4 Oui 2 RXD TXD 3 Oui 3 TXD RTS 6 (pontage) 7 (pontage) RTS CTS 7 (pontage) 8 (pontage) CTS GND 5 Oui 5 GND DSR 2 Oui 6 DSR 4 DTR Masse du châssis 8 Oui N.C.(*) 1 Non Cas du connecteur (*) 5 VCC fourni par le contrôleur. Ne pas connecter AVERTISSEMENT FONCTIONNEMENT IMPREVU DE L'EQUIPEMENT Ne connectez pas de fils à des bornes inutilisées et/ou portant la mention NC (non connecté). Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. 9 broches vers RJ45-(8x8) (Modem) 110XCA20301 Reportez-vous à la figure pour obtenir une vue de face des connecteurs. Reportez-vous au tableau de brochage des connecteurs. 502 33002528.25 XXMIT : Transmission Communication Brochage des connecteurs Connecteur RJ45 Connecteur 9 broches Nom du signal Broche Broche connectée à ... Broche Nom du signal RXD 4 Oui 2 RXD TXD 3 Oui 3 TXD RTS 6 Oui 7 RTS CTS 7 Oui 8 CTS GND 5 Oui 5 GND 6 (pontage) DSR 4 (pontage) DTR Masse du châssis 8 Oui N.C.(*) 1 Non Cas du connecteur (*) 5 VCC fourni par le contrôleur. Ne pas connecter AVERTISSEMENT FONCTIONNEMENT IMPREVU DE L'EQUIPEMENT Ne connectez pas de fils à des bornes inutilisées et/ou portant la mention NC (non connecté). Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Connecteur RS 422/RS 485 de processeur avancé RJ 45 Reportez-vous à la figure pour obtenir une vue de face des connecteurs. Tableau de brochage du connecteur RS 422/RS 485 Quantum avancé RJ 45 33002528.25 503 Communication XXMIT : Transmission Broche Signal RS-422 Signal RS-485 1 RX - D- 2 RX + D+ 3 TX + 4 Nc Nc 5 GND GND 6 TX - 7 Nc Nc 8 PE facultatif PE facultatif NOTE: pour le protocole RS-485, les broches 1 et 6 doivent être court-circuitées, ainsi que les broches 2 et 3. Kits d'adaptateur de câble Kits d'adaptateur de câble pour RJ45 Il est recommandé d'acheter des kits d'adaptateur de câble pour vos raccordements RJ45 (8x8). Le tableau suivant répertorie les kits disponibles. Kits d'adaptateur de câble disponibles 504 Description Référence RJ45-(8x8) vers 25 broches (mâle) 110XCA20401 RJ45-(8x8) vers 9 broches (mâle) 110XCA20301 RJ45-(8x8) vers 9 broches (femelle) 110XCA20302 RJ45-(8x8) vers 25 broches (femelle) 110XCA20402 33002528.25 XXMIT : Transmission Communication Kits d'adaptateur DB/RJ45 Connexion des câbles - Exemple 1 Pour des terminaux standard à vitesse faible ou utilisant un contrôle de flux logiciel, utilisez une connexion simple à 3 broches. RJ45 à DB9 33002528.25 505 Communication XXMIT : Transmission Automate Quantum Connecteur du modem RJ45 DB9 RJ45-3 TXD RXD DB25-2 RJ45-4 RXD TXD DB-25-3 RJ45-5 GND GND DB25-5 Connexion des câbles - Exemple 2 RJ45 à DB25 506 Automate Quantum Connecteur du modem RJ45 DB25 RJ45-3 TXD RXD DB25-3 RJ45-4 RXD TXD DB-25-2 RJ45-5 GND GND DB25-7 33002528.25 XXMIT : Transmission 33002528.25 Communication 507 Communication Client OPC UA Contenu de cette partie UA_Connect.......................................................................... 509 UA_ConnectionGetStatus ...................................................... 512 UA_Disconnect...................................................................... 515 UA_NamespaceGetIndexList.................................................. 517 UA_NodeGetHandleList ......................................................... 519 UA_NodeReleaseHandleList .................................................. 522 UA_ReadList ......................................................................... 524 UA_WriteList ......................................................................... 526 UA_SubscriptionCreate.......................................................... 529 UA_SubscriptionDelete .......................................................... 531 UA_MonitoredItemAddList...................................................... 533 UA_MonitoredItemOperList .................................................... 536 UA_SubscriptionProcessed .................................................... 539 UA_MonitoredItemRmvList..................................................... 541 Types de données dérivés OPC UA ........................................ 543 Présentation Cette section décrit les fonctions et blocs fonction élémentaires de la famille OPC UA Client. 508 33002528.25 UA_Connect Communication UA_Connect Contenu de ce chapitre Description ............................................................................ 509 Description Ce chapitre décrit le bloc fonction UA_Connect. Description Description fonctionnelle Le bloc fonction UA_Connect permet de créer une connexion de transport pour une session OPC-UA. La connexion est interrompue par l'appel de UA_Disconnect après l'établissement de la connexion. La sortie DWORD CONNECTIONHDL doit être fournie comme entrée à d'autres blocs. Elle identifie la connexion client au ServerEndPointUrl donné. NOTE: Une UC M580 peut prendre en charge : • Jusqu'à 64 connexions en parallèle en utilisant UA_Connect. • Pour chaque connexion, la lecture de 256 noeuds de type simple et l'écriture de 128 noeuds de type simple. Chaque client OPC UA peut accéder au serveur UA ciblé uniquement via les ports Ethernet intégrés des UC ou via le port externe du module BMENUA0100. 33002528.25 509 Communication UA_Connect Représentation en FBD Description des paramètres Paramètres d’entrée : ATTENTION FONCTIONNEMENT IMPRÉVU DE L'APPLICATION N'utilisez pas un paramètre d'adresse incorrect pour "SERVERENDPOINTURL". Par exemple, ne définissez pas un paramètre d'adresse qui ne correspond pas à l'équipement cible. Le non-respect de ces instructions peut provoquer des blessures ou des dommages matériels. 510 Nom Type Commentaire EXECUTE BOOL La connexion est lancée sur un front montant. SERVERENDPOINTURL string[255] URL SESSIONCONNECTINFO DDT UASessionConnectInfo, page 543 Spécifie les informations de connexion requises pour créer une session OPC UA TIMEOUT TIME Délai maximum pour établir la connexion. 33002528.25 UA_Connect Communication Paramètres de sortie : Nom Type Commentaire DONE BOOL Signale qu'une connexion a été établie avec succès. BUSY BOOL Le FB n'a pas terminé et de nouvelles valeurs de sortie sont attendues. ERROR BOOL Signale qu'une erreur s'est produite dans le FB. ERRORID DWORD Code d'erreur, page 580. CONNECTIONHDL DWORD Le descripteur de connexion est valide jusqu'à l'appel de UA_Disconnect. Erreur d'exécution Reportez-vous à l'annexe pour consulter la liste des codes d'erreur détectée, page 580 OPC UA. 33002528.25 511 Communication UA_ConnectionGetStatus UA_ConnectionGetStatus Contenu de ce chapitre Description ............................................................................ 512 UAConnectionStatus.............................................................. 514 UAServerState ...................................................................... 514 Description Ce chapitre décrit le bloc fonction UA_ConnectionGetStatus. Description Description fonctionnelle Le bloc fonction UA_ ConnectionGetStatus permet d'obtenir l'état d'une connexion spécifiée. Il fournit également l'état du serveur et le niveau de service Représentation en FBD 512 33002528.25 UA_ConnectionGetStatus Communication Description des paramètres Paramètres d’entrée : Nom Type Commentaire EXECUTE BOOL La connexion est fermée sur un front montant. CONNECTIONHDL DWORD Descripteur de la connexion à fermer. TIMEOUT TIME Délai maximum de fermeture de la connexion. Paramètres de sortie : Nom Type Commentaire DONE BOOL Le FB a terminé sa tâche avec succès. BUSY BOOL Le FB n'a pas terminé et de nouvelles valeurs de sortie sont attendues. ERROR BOOL Signale qu'une erreur s'est produite dans le FB. ERRORID DWORD Code d'erreur, page 580. CONNECTIONSTATUS UINT Voir UAConnectionStatus, page 514. Les sorties ServerState et ServerLevel ne sont valides que si ConnectionStatus a pour valeur UAConnectionStatus_ Connected SERVERSTATE UINT Reportez-vous à UAServerState, page 514. L'état du serveur est UAServerState_UNKOWN si ConnectionStatus n'a pas la valeur UAConnectionStatus_Connected SERVERLEVEL BYTE ServiceLevel décrit la capacité du serveur à fournir ses données au client. La plage de valeurs va de 0 à 255, où 0 indique le pire et 255 le meilleur. Il s'agit de fournir aux clients des informations sur la disponibilité des serveurs redondants. Cette valeur dépend du serveur. Erreur d'exécution Reportez-vous à l'annexe pour consulter la liste des codes d'erreur détectée, page 580 OPC UA. 33002528.25 513 Communication UA_ConnectionGetStatus UAConnectionStatus Valeur Description 0 Le client UA est connecté au serveur UA. 1 Une erreur a été détectée dans la connexion du client UA au serveur UA. 2 Le client UA a été déconnecté du serveur UA UAServerState 514 Valeur Description 0 Le serveur est opérationnel. 1 Le serveur n'est pas opérationnel. 2 Le serveur est en cours d'exécution mais aucune information de configuration n'est chargée et donc aucun transfert de données n'est exécuté. 3 Le serveur a été suspendu provisoirement et il n'envoie ni reçoit aucune donnée. 4 Le serveur est arrêté ou en cours d'arrêt. 5 Le serveur est en mode test. 6 Le serveur fonctionne correctement mais ne parvient pas à accéder aux données de ses sources de données. 7 Cet état est utilisé uniquement pour indiquer que le serveur OPC UA ne reçoit aucune information sur l'état des serveurs sous-jacents. 33002528.25 UA_Disconnect Communication UA_Disconnect Contenu de ce chapitre Description ............................................................................ 515 Description Ce chapitre décrit le bloc fonction UA_Disconnect. Description Description fonctionnelle Le bloc fonction UA_Disconnect permet de fermer une connexion de transport d'une session OPC UA. Représentation en FBD 33002528.25 515 Communication UA_Disconnect Description des paramètres Paramètres d’entrée : Nom Type Commentaire EXECUTE BOOL La connexion est fermée sur un front montant. CONNECTIONHDL DWORD Descripteur de la connexion à fermer. TIMEOUT TIME Délai maximum de fermeture de la connexion. Paramètres de sortie : Nom Type Commentaire DONE BOOL Le FB a terminé sa tâche. BUSY BOOL Le FB n'a pas terminé et de nouvelles valeurs de sortie sont attendues. ERROR BOOL Signale qu'une erreur s'est produite dans le FB. ERRORID DWORD Code d'erreur, page 580. Erreur d'exécution Reportez-vous à l'annexe pour consulter la liste des codes d'erreur détectée, page 580 OPC UA. 516 33002528.25 UA_NamespaceGetIndexList Communication UA_NamespaceGetIndexList Contenu de ce chapitre Description ............................................................................ 517 Description Ce chapitre décrit le bloc fonction UA_NamespaceGetIndexList. Description Description fonctionnelle Le bloc fonction UA_NamespaceGetIndexList permet d'obtenir du serveur les index d'espace de noms de nombreux URI d'espace de noms. Ce bloc lit la variable OPCUA Namespace sur le serveur. Ensuite, il recherche les chaînes URI d'espace de noms fournies en entrée du tableau d'espaces de noms et renvoie leurs index. Représentation en FBD UA_NamespaceGetIndexList EXECUTE DONE CONNECTIONHDL BUSY NAMESPACEURISCOUNT ERROR NAMESPACEURIS ERRORID TIMEOUT ERRORIDS NAMESPACEINDEXES 33002528.25 517 Communication UA_NamespaceGetIndexList Description des paramètres Paramètres d’entrée : Nom Type Commentaire EXECUTE BOOL Le FB effectue sa tâche lors d'un front montant sur cette entrée. CONNECTIONHDL DWORD Descripteur de connexion. NAMESPACEURISCOUNT UINT Nombre d'URI d'espace de noms dans le tableau de NamespaceURIs. NAMESPACEURIS ASNamespaceURIs Tableau de types STRING contenant les URI d'espace de noms. TIMEOUT TIME Temps de réponse maximum. Paramètres de sortie : Nom Type Commentaire DONE BOOL Le FB a terminé sa tâche avec succès. BUSY BOOL Le FB n'a pas terminé et de nouvelles valeurs de sortie sont attendues. ERROR BOOL Signale qu'une erreur s'est produite dans le FB. ERRORID DWORD Code d'erreur, page 580. ERRORIDS ADWErrorIDs Codes d'erreur. NAMESPACEINDEXES AUINamespaceIndexes Index d'espace de noms. Erreur d'exécution Reportez-vous à l'annexe pour consulter la liste des codes d'erreur détectée OPC UA, page 580. 518 33002528.25 UA_NodeGetHandleList Communication UA_NodeGetHandleList Contenu de ce chapitre Description ............................................................................ 519 Description Ce chapitre décrit le bloc fonction UA_NodeGetHandleList. Description Description fonctionnelle Le bloc fonction UA_NodeGetHandleList permet d'obtenir des descripteurs de noeud pour plusieurs noeuds. En transmettant à l'entrée NODEIDS un tableau [ 0 .. 31 ] d'éléments de structure NodeIds, ce bloc renvoie un tableau [ 0 .. 31 ] de NodeHdls. Il traduit les NodeIDs en NodeHdls afin d'optimiser la charge utile des requêtes OPC UA du client vers le serveur. Les demandes de NodeIDs du client sont enregistrées par le serveur qui revient aux NodeHdls correspondants pour les futures demandes. Représentation en FBD 33002528.25 519 Communication UA_NodeGetHandleList Description des paramètres Paramètres d’entrée : Nom Type Commentaire EXECUTE BOOL Le FB effectue sa tâche lors d'un front montant sur cette entrée. CONNECTIONHDL DWORD Descripteur de connexion. NODEIDCOUNT UINT Nombre d'éléments dans un tableau de NodeIDs. NODEIDS AUANodeID Tableau de UANodeID, page 547 TIMEOUT TIME Temps de réponse. Paramètres de sortie : Nom Type Commentaire DONE BOOL Le FB a terminé sa tâche avec succès. BUSY BOOL Le FB n'a pas terminé et de nouvelles valeurs de sortie sont attendues. ERROR BOOL Signale qu'une erreur s'est produite dans le FB. Défini sur true si ERRORID ou l'un au moins des NodeErrorIDs indique une erreur. ERRORID DWORD Code d'erreur, page 580. NODEERRORIDS ANY_ARRAY_DWORD Tableau de NodeErrorIDs. (DWORD) NODEHDLS ANY_ARRAY_DWORD Tableau de descripteurs de noeud. (DWORD) NOTE: UA_NodeGetHandleList utilise le service des noeuds de registres internes géré côté serveur pour une session : "Enregistre un ou plusieurs noeuds en vue d'une utilisation répétée au cours d'une session." Comme les noeuds sont identiques, il n'y a aucune vérification que ces noeuds ont déjà été enregistrés. Les descripteurs sont donc incrémentés. Il incombe au client de veiller à éviter de créer un nouvel enregistrement sur les noeuds déjà enregistrés. Les applications d'automate qui utilisent des EFB client OPCUA peuvent utiliser l'EFB ReleaseHandle afin de libérer l'enregistrement des noeuds dans le serveur. Pour limiter la taille de la variable d'application qui est remplie pour la broche NODEIDS, le nombre maximal de descripteurs de noeud est de 32. Si vous avez besoin de plus de 32 descripteurs de noeud pour une utilisation ultérieure de UA_ReadList, UA_WriteList, UA_MonitoredAddItem (jusqu'à 251 variables), vous devez itérer l'appel de UA_NodeGetHandleList avec les ID de noeud requis et concaténer le tableau de descripteurs de la sortie pour remplir le tableau de descripteurs des autres blocs. 520 33002528.25 UA_NodeGetHandleList Communication Erreur d'exécution Reportez-vous à l'annexe pour consulter la liste des codes d'erreur détectée OPC UA, page 580. 33002528.25 521 Communication UA_NodeReleaseHandleList UA_NodeReleaseHandleList Contenu de ce chapitre Description ............................................................................ 522 Description Ce chapitre décrit le bloc fonction UA_NodeReleaseHandleList. Description Description fonctionnelle Le bloc fonction UA_NodeReleaseHandleList est utilisé pour libérer plusieurs descripteurs de noeud. L'appel de UA_NodeReleaseHandleList invalide NodeHdls. Représentation en FBD 522 33002528.25 UA_NodeReleaseHandleList Communication Description des paramètres Paramètres d’entrée : Nom Type Commentaire EXECUTE BOOL Le FB effectue sa tâche lors d'un front montant sur cette entrée. CONNECTIONHDL DWORD Descripteur de connexion NODEHDLCOUNT UINT Nombre de noeuds dans le tableau NodeHdls NODEHDLS ANY_ARRAY_DWORD Tableau des descripteurs de noeud à libérer. TIMEOUT TIME Temps de réponse. Paramètres de sortie : Nom Type Commentaire DONE BOOL Le FB a terminé sa tâche avec succès. BUSY BOOL Le FB n'a pas terminé et de nouvelles valeurs de sortie sont attendues. ERROR BOOL Signale qu'une erreur s'est produite dans le FB. Défini sur true si ErrorID ou l'un au moins des NodeErrorIDs indique une erreur. ERRORID DWORD Code d'erreur, page 580. NODEERRORIDS ANY_ARRAY_DWORD Tableau de types DWORD. Contient un code d'erreur pour chaque élément valide du tableau NodeHdls. Erreur d'exécution Reportez-vous à l'annexe pour consulter la liste des codes d'erreur détectée OPC UA, page 580. 33002528.25 523 Communication UA_ReadList UA_ReadList Contenu de ce chapitre Description ............................................................................ 524 Description Ce chapitre décrit le bloc fonction UA_ReadList. Description Description fonctionnelle Le bloc fonction UA_ReadList permet lire les valeurs de plusieurs nœuds à l'aide d'une liste de descripteurs de nœuds. Les valeurs du noeud sont renvoyées dans VARIABLES. Représentation en FBD 524 33002528.25 UA_ReadList Communication Description des paramètres Paramètres d’entrée : Nom Type Commentaire EXECUTE BOOL Le FB effectue sa tâche lors d'un front montant sur cette entrée. CONNECTIONHDL DWORD Descripteur de connexion. NODEHDLCOUNT UINT Nombre d'éléments valides dans le tableau à lire. NODEHDLS ANY_ARRAY_DWORD Tableau de descripteurs de noeud. NODEADDINFOS AUANodeAdditionalInfo Tableau de types UANodeAdditionalInfo TIMEOUT TIME Temps de réponse. Paramètres de sortie : Nom Type Commentaire DONE BOOL Le FB a terminé sa tâche avec succès. BUSY BOOL Le FB n'a pas terminé et de nouvelles valeurs de sortie sont attendues. ERROR BOOL Signale qu'une erreur s'est produite dans le FB. Défini sur true si ErrorID ou l'un des NodeErrorIDs indique une erreur. ERRORID DWORD Code d'erreur, page 580. NODEERRORIDS ANY_ARRAY_DWORD Tableau de types DWORD. Contient un code d'erreur pour chaque élément valide du tableau Variables. TIMESTAMPS ASTTimeStamp, page 551 Contient un horodatage pour chaque élément valide du tableau Variables. (Type DT Date & Time, millisecondes) Paramètres d'entrée/sortie : Nom Type Commentaire VARIABLES ASTVariable, page 549 Tableau des valeurs des variables. Erreur d'exécution Reportez-vous à l'annexe pour consulter la liste des codes d'erreur détectée OPC UA, page 580. 33002528.25 525 Communication UA_WriteList UA_WriteList Contenu de ce chapitre Description ............................................................................ 526 Description Ce chapitre décrit le bloc fonction UA_WriteList. Description Description fonctionnelle Le bloc fonction UA_WriteList permet d'écrire les valeurs de plusieurs nœuds à l'aide d'une liste de descripteurs de nœuds. Représentation en FBD 526 33002528.25 UA_WriteList Communication Description des paramètres Paramètres d’entrée : Nom Type Commentaire EXECUTE BOOL Le FB effectue sa tâche lors d'un front montant sur cette entrée. CONNECTIONHDL DWORD Descripteur de connexion NODEHDLCOUNT UINT Nombre d'éléments valides dans le tableau à écrire NODEHDLS ANY_ARRAY_DWORD Tableau de descripteurs de noeud NODEADDINFOS AUANodeAdditionalInfo Tableau de types UANodeAdditionalInfo TIMEOUT TIME Temps de réponse Nom Type Commentaire DONE BOOL Le FB a terminé sa tâche avec succès BUSY BOOL Le FB n'a pas terminé et de nouvelles valeurs de sortie sont attendues. ERROR BOOL Signale qu'une erreur s'est produite dans le FB. Défini sur true si ErrorID ou l'un des NodeErrorIDs indique une erreur. ERRORID DWORD Code d'erreur, page 580. NODEERRORIDS ANY_ARRAY_DWORD Tableau de types DWORD. Contient un code d'erreur pour chaque élément valide du tableau Variables. Nom Type Commentaire VARIABLES ASTVariable, page 549 Tableau des valeurs des variables Paramètres de sortie : Paramètres d'entrée/sortie : 33002528.25 527 Communication UA_WriteList Erreur d'exécution Reportez-vous à l'annexe pour consulter la liste des codes d'erreur détectée OPC UA, page 580. 528 33002528.25 UA_SubscriptionCreate Communication UA_SubscriptionCreate Contenu de ce chapitre Description ............................................................................ 529 Description Ce chapitre décrit le bloc fonction UA_SubscriptionCreate. Description Description fonctionnelle Le bloc fonction UA_SubscriptionCreate permet de créer une souscription. La souscription concerne une liste de variables. Le bloc fonction fournit un rappel lorsqu'une valeur de variable est modifiée. L'intervalle de publication est défini dans ce bloc fonction. Représentation en FBD 33002528.25 529 Communication UA_SubscriptionCreate Description des paramètres Paramètres d’entrée : Nom Type Commentaire EXECUTE BOOL Le FB effectue sa tâche lors d'un front montant sur cette entrée. CONNECTIONHDL DWORD Descripteur de connexion PUBLISHINGENABLE BOOL Activer la publication. PRIORITY BYTE Priorité de la souscription située sur le serveur par rapport aux autres souscriptions créées par ce client. Voir OPC UA Partie 4 Chapitre 51322 Paramètres (Tableau 86) TIMEOUT TIME Temps de réponse maximum Paramètres de sortie : Nom Type Commentaire DONE BOOL Le FB a terminé sa tâche avec succès BUSY BOOL Le FB n'a pas terminé et de nouvelles valeurs de sortie sont attendues. ERROR BOOL Signale qu'une erreur s'est produite dans le FB. Défini sur true si ErrorID ou l'un des NodeErrorIDs indique une erreur. ERRORID DWORD Code d'erreur, page 580. SUBSCRIPTIONHDL DWORD Descripteur de souscription Paramètres d'entrée/sortie : Nom Type Commentaire PUBLISHINGINTERVAL TIME Intervalle de publication (peut être modifié par l'intervalle de publication révisé du serveur). Erreur d'exécution Reportez-vous à l'annexe pour consulter la liste des codes d'erreur détectée OPC UA, page 580. 530 33002528.25 UA_SubscriptionDelete Communication UA_SubscriptionDelete Contenu de ce chapitre Description ............................................................................ 531 Description Ce chapitre décrit le bloc fonction UA_SubscriptionDelete. Description Description fonctionnelle Le bloc fonction UA_SubscriptionDelete permet de supprimer une souscription. Représentation en FBD 33002528.25 531 Communication UA_SubscriptionDelete Description des paramètres Paramètres d’entrée : Nom Type Commentaire EXECUTE BOOL Le FB effectue sa tâche lors d'un front montant sur cette entrée. CONNECTIONHDL DWORD Descripteur de connexion TIMEOUT TIME Temps de réponse maximum Paramètres de sortie : Nom Type Commentaire DONE BOOL Le FB a terminé sa tâche avec succès BUSY BOOL Le FB n'a pas terminé et de nouvelles valeurs de sortie sont attendues. ERROR BOOL Signale qu'une erreur s'est produite dans le FB. Défini sur true si ErrorID ou l'un des NodeErrorIDs indique une erreur. ERRORID DWORD Code d'erreur, page 580. Erreur d'exécution Reportez-vous à l'annexe pour consulter la liste des codes d'erreur détectée OPC UA, page 580. 532 33002528.25 UA_MonitoredItemAddList Communication UA_MonitoredItemAddList Contenu de ce chapitre Description ............................................................................ 533 Description Ce chapitre décrit le bloc fonction UA_MonitoredItemAddList. Description Description fonctionnelle Le bloc fonction UA_MonitoredItemAddList permet d'ajouter plusieurs descripteurs de noeud à une souscription. Il peut définir les variables faisant l'objet d'une souscription et le moment où une valeur de variable sera actualisée conformément à la logique IEC. Vous ne pouvez appeler ce bloc qu'une fois pour une même souscription. Représentation en FBD 33002528.25 533 Communication UA_MonitoredItemAddList Description des paramètres Paramètres d’entrée : Nom Type Commentaire EXECUTE BOOL Le FB effectue sa tâche lors d'un front montant sur cette entrée. SUBSCRIPTIONHDL DWORD Descripteur de souscription NODEHDLCOUNT UINT Nombre d'éléments valides dans le tableau à supprimer. NODEHDLS ANY_ARRAY_DWORD Tableau de descripteurs de noeuds surveillés SYNCMODE UINT • 0 = UAMSync_Unknown, valeur par défaut qui produit un code d'erreur. Doit être défini sur l'une des options suivantes • 1 = UAMS_ControllerSync • 2 = UAMS_FwSync A propos du concept général de SyncMode, voir Mode de surveillance, page 65 NODEADDINFOS AUANodeAdditionalInfo Tableau de types UANodeAdditionalInfo TIMEOUT TIME Temps de réponse maximum Nom Type Commentaire DONE BOOL Le FB a terminé sa tâche avec succès BUSY BOOL Le FB n'a pas terminé et de nouvelles valeurs de sortie sont attendues. ERROR BOOL Signale qu'une erreur s'est produite dans le FB. Défini sur true si ErrorID ou l'un au moins des NodeErrorIDs indique une erreur. ERRORID DWORD Code d'erreur, page 580 Paramètres de sortie : 534 33002528.25 UA_MonitoredItemAddList Communication Paramètres de sortie : (Suite) Nom Type Commentaire NODEERRORIDS ANY_ARRAY_DWORD Tableau de types DWORD. Contient un code d'erreur pour chaque élément valide du tableau NOEHDLS. MONITOREDITEMHDLS ANY_ARRAY_DWORD Tableau de descripteurs d'éléments surveillés. Nom Type Commentaire VARIABLES AUAMonitoredVariables Tableau de UAMonitoredVariables, page 547 MONITORINGPARAMETERS AUAMonitoringParameter Tableau de UAMonitoringParameter, page 548 VALUESCHANGED ANY_ARRAY_BOOL Indique que les valeurs de l'élément surveillé ont été modifiées. MINLOSTVALUECOUNT ANY_ARRAY_UINT Compte les valeurs perdues minimales si la taille de la file d'attente est > 1 Paramètres d'entrée/sortie : Erreur d'exécution Reportez-vous à l'annexe pour consulter la liste des codes d'erreur détectée, page 580 OPC UA. 33002528.25 535 Communication UA_MonitoredItemOperList UA_MonitoredItemOperList Contenu de ce chapitre Description ............................................................................ 536 Description Ce chapitre décrit le bloc fonction UA_MonitoredItemOperList. Description Description fonctionnelle Le bloc fonction UA_MonitoredItemOperList met à jour les valeurs d'une liste de variables. Il met également à jour les informations correspondantes dans les listes associées (par exemple, ValuesChanged, TimeStamps et NodeQualityIDs) du programme de contrôle. Ce bloc fonction peut être utilisé pour contrôler le moment où la variable sera actualisée dans l'application. Représentation en FBD UA_MonitoredItemOperList EXECUTE DONE SUBSCRIPTIONHDL BUSY MONITOREDITEMHDLCOUNT ERROR MONITOREDITEMHDLS ERRORID NODEERRORIDS PUBLISHED 536 33002528.25 UA_MonitoredItemOperList Communication Description des paramètres Paramètres d’entrée : Nom Type Commentaire EXECUTE BOOL Le FB effectue sa tâche lors d'un front montant sur cette entrée. SUBSCRIPTIONHDL DWORD Descripteur de souscription MONITOREDHDLCOUNT UINT Nombre d'éléments valides dans le tableau à actualiser. MONITOREDHDLS ANY_ARRAY_DWORD Tableau de descripteurs de noeuds surveillés Nom Type Commentaire DONE BOOL Le FB a terminé sa tâche avec succès BUSY BOOL Le FB n'a pas terminé et de nouvelles valeurs de sortie sont attendues. ERROR BOOL Signale qu'une erreur s'est produite dans le FB. Défini sur true si ErrorID ou l'un au moins des NodeErrorIDs indique une erreur. ERRORID DWORD Code d'erreur, page 580 NODEERRORIDS ANY_ARRAY_DWORD Tableau de types DWORD. Contient un code d'erreur pour chaque élément valide du tableau MonitoredItemHdls. PUBLISHED BOOL Indique que les variables ont été publiées depuis le dernier appel. Au moins un élément du tableau ValuesChanged est vrai. Paramètres de sortie : Ce bloc fonction est utilisé lorsque le système sous-jacent ne met pas automatiquement à jour les valeurs des variables. Après une exécution réussie, les valeurs des variables et les information correspondantes dans les listes associées (par exemple, ValuesChanged, TimeStamps et NodeQualityIDs) devraient normalement avoir été mises à jour. 33002528.25 537 Communication UA_MonitoredItemOperList Erreur d'exécution Reportez-vous à l'annexe pour consulter la liste des codes d'erreur détectée, page 580 OPC UA. 538 33002528.25 UA_SubscriptionProcessed Communication UA_SubscriptionProcessed Contenu de ce chapitre Description ............................................................................ 539 Description Ce chapitre décrit le bloc fonction UA_SubscriptionProcessed. Description Description fonctionnelle Le bloc fonction UA_SubscriptionProcessed peut éventuellement être appelé pour vérifier si des éléments surveillés ont été publiés. L'utilisation de ce bloc fonction dépend du système sous-jacent. Représentation en FBD UA_SubscriptionProcessed EXECUTE SUBSCRIPTIONHDL TIMEOUT 33002528.25 DONE BUSY ERROR ERRORID PUBLISHED 539 Communication UA_SubscriptionProcessed Description des paramètres Paramètres d’entrée : Nom Type Commentaire EXECUTE BOOL Activation continuelle de l'EF tant que l'entrée EXECUTE est true. SUBSCRIPTIONHDL DWORD Descripteur de souscription TIMEOUT TIME Temps de réponse maximum Nom Type Commentaire DONE BOOL Le FB a terminé sa tâche avec succès BUSY BOOL Le FB n'a pas terminé et de nouvelles valeurs de sortie sont attendues. Paramètres de sortie : NOTE: Ce paramètre peut être généré même lorsque le bloc est exécuté en continu. ERROR BOOL Signale qu'une erreur s'est produite dans le FB. Défini sur true si ErrorID ou l'un des NodeErrorIDs indique une erreur. ERRORID DWORD Code d'erreur, page 580. PUBLISHED BOOL Indique que les variables ont été publiées depuis le dernier appel. Au moins un élément du tableau ValuesChanged est vrai. Utilisez ce bloc fonction lorsque le système sous-jacent publie automatiquement les valeurs des variables. Il est recommandé de ne pas utiliser ce bloc fonction conjointement avec le bloc fonction UA_MonitoredItemOperateList. Erreur d'exécution Reportez-vous à l'annexe pour consulter la liste des codes d'erreur détectée OPC UA, page 580. 540 33002528.25 UA_MonitoredItemRmvList Communication UA_MonitoredItemRmvList Contenu de ce chapitre Description ............................................................................ 541 Description Ce chapitre décrit le bloc fonction UA_MonitoredItemRmvList. Description Description fonctionnelle Le bloc fonction UA_MonitoredItemRmvList permet de supprimer plusieurs noeuds d'une souscription à l'aide d'une liste de descripteurs de noeud. Représentation en FBD 33002528.25 541 Communication UA_MonitoredItemRmvList Description des paramètres Paramètres d’entrée : Nom Type Commentaire EXECUTE BOOL Le FB effectue sa tâche lors d'un front montant sur cette entrée. SUBSCRIPTIONHDL DWORD Descripteur de souscription MONITOREDITEMHDLCOUNT UINT Nombre d'éléments valides dans le tableau à supprimer. MONITOREDITEMHDLS ANY_ARRAY_ DWORD Tableau de descripteurs de noeuds surveillés TIMEOUT TIME Temps de réponse maximum Paramètres de sortie : Nom Type Commentaire DONE BOOL Le FB a terminé sa tâche avec succès BUSY BOOL Le FB n'a pas terminé et de nouvelles valeurs de sortie sont attendues. ERROR BOOL Signale qu'une erreur s'est produite dans le FB. Défini sur true si ErrorID ou l'un des NodeErrorIDs indique une erreur. ERRORID DWORD Code d'erreur, page 580. NODEERRORIDS ANY_ARRAY_ DWORD Tableau de types DWORD. Contient un code d'erreur pour chaque élément valide du tableau NOEHDLS. Erreur d'exécution Reportez-vous à l'annexe pour consulter la liste des codes d'erreur détectée, page 580 OPC UA. 542 33002528.25 Types de données dérivés OPC UA Communication Types de données dérivés OPC UA Contenu de ce chapitre UASessionConnectInfo .......................................................... 543 AUANodeAdditionalInfo.......................................................... 545 UANodeAdditionalInfo............................................................ 545 UAAttributeID ........................................................................ 545 UAIndexRange ...................................................................... 546 AUANodeID .......................................................................... 547 UANodeID............................................................................. 547 AUAMonitoredVariables ......................................................... 547 UAMonitoredVariables ........................................................... 547 AUAMonitoringParameter....................................................... 548 UAMonitoringParameter ......................................................... 548 ASTVariable .......................................................................... 549 STVariable ............................................................................ 549 ASNamespaceURIs ............................................................... 551 ASTTimeStamp ..................................................................... 551 STTimeStamp ....................................................................... 551 Ce chapitre décrit les types de données dérivés (DDT) du client OPC UA qui sont pris en charge. UASessionConnectInfo La structure UASessionConnectInfo fournit les informations de connexion requises pour créer une session OPC UA. Nom Nom du type Commentaire SessionName string[255] Définit le nom de la session attribuée par le client. La chaîne peut être vide. Le nom est indiqué dans les informations de diagnostic du serveur. En cas de chaîne vide, le serveur génère un nom de session. ApplicationName string[255] Définit le nom lisible de l'application client OPC UA. La chaîne peut être vide. SecurityMsgMode UINT Non pris en charge, la valeur est ignorée. SecurityPolicy UINT Non pris en charge, la valeur est ignorée. CertificateStore string[255] Non pris en charge, la valeur est ignorée. ClientCertificateName string[255] Non pris en charge, la valeur est ignorée. 33002528.25 543 Communication Types de données dérivés OPC UA Nom Nom du type Commentaire ServerUri string[255] Définit l'URI du serveur. La chaîne peut être vide. CheckServerCertificate BOOL Non pris en charge, la valeur est ignorée. TransportProfile UINT UATransportProfile. Profil de transport. Seule la valeur UATP_ UATcp (c'est-à-dire 1) est prise en charge. UserIdentityToken UAUserIdentityToken UAUserIdentityToken. Données d'authentification utilisateur. VendorSpecificParameter UAConnectSpecificParameter Le fournisseur peut définir des paramètres spécifiques. SessionTimeout TIME Définit la durée de vie de la session en l'absence de connexion. MonitorConnection TIME Définit l'intervalle de vérification de la connexion. Si la valeur est 0, aucune vérification n'est effectuée. LocaleIDs ARRAY[1..5] OF string[6] Identifiant de langue et de pays/région. Format : <langue><pays/région>. Exemple : fr-FR. La chaîne peut être vide. La structure UAUserIdentiyToken est définie ainsi : Nom Nom du type Commentaire UAUserIdentityTokenType UINT Définit le jeton d'identité pour authentifier un utilisateur lors de la création de la session. 0 pour une connexion anonyme, 1 pour une connexion avec nom d'utilisateur. TokenParam1 string[255] Pour une connexion de type anonyme (TokenType = 0), ce paramètre n'a pas à être évalué. Pour une connexion nominale (TokenType = 1), il contient le nom d'utilisateur. TokenParam2 string[255] Pour une connexion de type anonyme (TokenType = 0), ce paramètre n'a pas à être évalué. Pour une connexion avec nom d'utilisateur (TokenType = 1), il contient le mot de passe. La structure UAConnectSpecificParameter est définie ainsi : Nom Nom du type Commentaire OPCUARequestTimeOut TIME Temporisation de toutes les requêtes OPCUA envoyées par la connexion actuelle. Si 0 en interne, la valeur par défaut est 30 s. Réservé ARRAY[0..31] OF WORD Pour une extension ultérieure de ce paramètre spécifique. L'utilisation de OPCUARequestTimeOut dépend du comportement du serveur OPC UA concerné. Si le serveur est configuré pour prendre un long temps de réponse dans certains cas, par exemple lorsque le module BMENUA0100 effectue une synchronisation de modifications en ligne, l'utilisateur peut prolonger le délai. 544 33002528.25 Types de données dérivés OPC UA Communication AUANodeAdditionalInfo AUANodeAdditionalInfo est un tableau [ 0 .. 255] d'éléments de structure UANodeAdditionalInfo, page 545. UANodeAdditionalInfo UANodeAdditionalInfo permet de fournir des informations supplémentaires sur le noeud. Il est défini ainsi : Nom Nom du type Commentaire AttributeID UINT UAAttributeID. Sélectionne l'attribut auquel accéder. IndexRangeCount UINT Compteur de la plage d'index valide spécifiée. IndexRange AUAIndexRange ARRAY OF UAIndexRange Les 2 derniers éléments sont utiles uniquement pour les tableaux serveur. UAAttributeID L'énumération UAAttributeID spécifie les attributs OPC d'un noeud. Nom Valeur Description UAAI_NodeID 1 Identificateur approuvé pour le noeud. UAAI_NodeClass 2 Classe du noeud. UAAI_BrowseName 3 Nom non localisé du nœud. UAAI_DisplayName 4 Nom localisé du nœud. UAAI_Description 5 Description localisée du noeud. UAAI_WriteMask 6 Indique quels attributs peuvent être écrits. UAAI_UserWriteMask 7 Indique quels attributs peuvent être écrits manuellement. UAAI_IsAbstract 8 Indique qu'un type de noeud ne peut pas être instancié. UAAI_Symmetric 9 Indique que les références directes et inverses ont la même signification. UAAI_InverseName 10 Nom de navigation pour référence inverse. 33002528.25 545 Communication Types de données dérivés OPC UA Nom Valeur Description UAAI_ ContainsNoLoops 11 Indique si les références suivantes d'une vue ne causent pas une boucle. UAAI_EventNotifier 12 Indique que le noeud peut être utilisé pour la souscription à des événements. UAAI_Value 13 Valeur d'une variable. UAAI_DataType 14 ID de noeud du type de données de la valeur de variable. UAAI_ValueRank 15 Nombre de dimensions dans la valeur. UAAI_ ArrayDimensions 16 Longueur de chaque dimension d'une valeur de tableau. UAAI_AccessLevel 17 Indique comment accéder à une variable. UAAI_ UserAccessLevel 18 Indique comment accéder à une variable en tenant compte des droits d'accès de l'utilisateur. UAAI_ MinimumSamplingInterval 19 Indique la vitesse à laquelle le serveur peut échantillonner la valeur pour les modifications [ms]. UAAI_Historizing 20 Indique si le serveur collecte activement les données de la variable. UAAI_Executable 21 Indique si la méthode peut être appelée. UAAI_UserExecutable 22 Indique si la méthode peut être appelée manuellement. UAIndexRange La structure UAIndexRange est utilisée pour fournir des informations sur la plage d'index d'une dimension d'une variable publiée par le serveur OPC UA. Nom Type de données Description StartIndex UINT Index de début. EndIndex UINT Index de fin. Pour chaque dimension : 1. StartIndex et EndIndex doivent être attribués. 2. La valeur de StartIndex doit être inférieure à la valeur de EndIndex. 3. Pour accéder à tous les éléments d'une dimension, vous devez affecter StartIndex et EndIndex en fonction du nombre total d'éléments de la dimension. 546 33002528.25 Types de données dérivés OPC UA Communication 4. Vous pouvez sélectionner un seul élément dans une dimension en spécifiant la même valeur pour StartIndex et EndIndex. AUANodeID AUANodeID est un tableau [ 0 .. 31] d'éléments de structure UANodeID, page 547. UANodeID UANodeID est une structure définie ainsi : Nom Nom du type Commentaire NamespaceIndex UINT Espace nom du serveur OPC UA. (En fait, index d'espace de nom du serveur OPC UA obtenu à partir de l'index GetNameSpace (donné par le noeud NamespaceArray 2255 du serveur OPCUA)) Identifier string[255] Identifiant. Un identifiant vide n'est pas autorisé. IdentifierType UINT UAIdentifierType. Type d'identifiant. Les valeurs possibles sont les suivantes : • 0 : UAIT_Numeric • 1 : UAIT_String Un identifiant de type numérique est codé dans le champ Identifier sous forme de chaîne, par exemple "25" pour idNum = 25. NodeHdls est un tableau de types DWord. AUAMonitoredVariables AUAMonitoredVariables est un tableau [0 .. 250] d'éléments de structure UAMonitoredVariable, page 547. UAMonitoredVariables UAMonitoredVariables est une structure définie ainsi : 33002528.25 547 Communication Types de données dérivés OPC UA Nom Nom du type Commentaire Values ARRAY [0..2] OF STVARIABLE, page 549 Tableau de référence de la variable qui recevra la valeur. La référence doit être initialisée avec l'adresse de l'objet du type de la variable TimeStamps ARRAY [0..2] OF STTimeStamp, page 551 Tableau d'horodatage de chaque valeur NodeQualityIds ARRAY [0..2] OF DWORD Tableau de la qualité OPCUA de chaque valeur NewValuesCount UINT Nombre de valeurs (3 maxi) qui ont été mises à jour à partir de l'élément le plus faible de Values. AUAMonitoringParameter AUAMonitoringParameter est un tableau [0 .. 250] d'éléments de structure UAMonitoringParameter, page 548. UAMonitoringParameter UAMonitoringParameter est une structure définie ainsi : 548 Nom Nom du type Commentaire SamplingInterval TIME Fréquence en millisecondes à laquelle le serveur vérifie la présence de modifications dans la source de données sousjacente. QueueSize UINT Taille de la file d'attente pour l'élément surveillé. DiscardOldest BOOL Détermine la stratégie de suppression en cas de débordement de la file d'attente : TRUE : Supprimer les éléments les plus anciens de la file d'attente FALSE : Supprimer les éléments les plus récents de la file d'attente. DeadbandType UINT Ce paramètre indique si une bande morte est appliquée et, le cas échéant, quel type de bande morte : 0 UADT_None Aucun calcul de bande morte ne doit être appliqué. 1 UADT_ Absolute Bande morte absolue (voir OPC UA Partie 4, chapitre 7.16.2) 33002528.25 Types de données dérivés OPC UA Nom Communication Nom du type Commentaire 2 Deadband REAL UADT_ Percent Bande morte en pourcentage Par exemple, pourcentage (0,1 %). ASTVariable ASTVariable est un tableau [ 0 .. 250] de types STVariable, page 549. STVariable STVariable est une structure définie ainsi : Nom Nom de type Description etNodeDataType BYTE Type de variable défini par l'utilisateur. pbyBuffer REF_TO ANY Référence à la variable d'application. etNodeDataType Configurez etNodeDataType avec un type de données OPC UA intégré. Reportez-vous à la documentation de référence OPC UA en ligne : https://reference.opcfoundation.org/v104/Core/docs/Part6/5.1.2/ Les types de variable OPC suivants correspondent aux types de données IEC 61131-3 : Type Valeur Description UATypeNull 0 - UATypeBool 1 BOOL UATypeSByte 2 UATypeByte 3 BYTE UATypeInt16 4 INT UATypeUInt16 5 UINT 33002528.25 549 Communication Types de données dérivés OPC UA Type Valeur Description UATypeInt32 6 DINT UATypeUInt32 7 UDINT UATypeInt64 8 UATypeUInt64 9 UATypeFloat 10 UATypeDouble 11 UATypeString 12 STRING (dans ce cas, le code résout le raccourcissement entre la variable source et la variable cible) UATypeDateTime 13 DT REAL NOTE: Le format DT dépend du serveur. Par exemple, certains serveurs peuvent renvoyer : • UATypeUInt64 avec le codage interne DT de la norme IEC 1131 dans Control Expert (codage BCD). Généralement service BMENUA0100 ou serveur OFS UA. • Valeur littérale de chaîne de date et heure IEC 1131. Généralement dans OFS UA. Ce format est activé dans la configuration. Vous devez vous reporter à la documentation du serveur pour déterminer le format de date et heure utilisé. ATTENTION FONCTIONNEMENT IMPRÉVU DE L'APPLICATION Vérifiez que le type des variables sélectionnées pour les variables locales (paramètre VARIABLES pour UA_ReadList, UA_WriteList, UA_MonitoredItemAddList) est cohérent avec le type des variables distantes correspondantes dans le serveur OPC UA. Le non-respect de ces instructions peut provoquer des blessures ou des dommages matériels. REF_TO ANY Les valeurs des variables sont fournies directement via un type ANY : REF_TO ANY. REF_TO ANY est un nouveau type défini dans Control Expert. Il permet de définir une référence sur n'importe quel type de variable. Par exemple, il peut être utilisé comme type de variable ou comme élément de DDT. 550 33002528.25 Types de données dérivés OPC UA Communication L'initialisation de la référence (c'est-à-dire la variable à laquelle elle se réfère) ne peut s'effectuer que par une valeur initiale dans l'éditeur de données. Pour simplifier la génération du code, la syntaxe suivante n'est pas autorisée : (par ex. VAR_REF : REF_TO ANY) dans ST VAR_REF = REF (Var_ANY_TYPE). Un bloc fonction considère REF_TO ANY comme un tampon de type BYTE et connaît la taille du tampon pour ne pas écraser ou surlire la variable. ASNamespaceURIs ASNamespaceURIs est un tableau [0 .. 19] d'éléments de type string[255]. Chaque chaîne peut contenir un URI d'espace de noms. ASTTimeStamp ASTTimeStamp est un tableau [0 .. 250] d'éléments STTimeStamp, page 551. STTimeStamp STTimeStampis est une structure définie ainsi : Nom Nom de type Description DTTimeStamp DT Valeur de date et heure au format IEC "DT" Millisecondes UINT Valeur en millisecondes de l'horodatage 33002528.25 551 Communication Annexes Contenu de cette partie Valeurs et codes d'erreur des EFB .......................................... 553 Présentation Cette section contient les annexes. 552 33002528.25 Valeurs et codes d'erreur des EFB Communication Valeurs et codes d'erreur des EFB Contenu de ce chapitre Tableau des codes d'erreur de la bibliothèque de communication ...................................................................... 553 Erreurs courantes relatives aux valeurs à virgule flottante................................................................................. 555 Codes d'erreur des EFB avec paramètre STATUS.................... 556 Détails des codes d'erreur STATUS 11ss, 12ss, 13ss et 1mss..................................................................................... 559 Détail des codes d'erreur STATUS 31ss à 37ss ........................ 562 Détails des codes d'erreur Ethernet TCP/IP des EFB5mss .............................................................................. 570 Détails des codes d'erreur Modbus Plus des EFB 6mss ............ 573 Codes d'erreur SY/MAX dans les EFB Quantum ...................... 574 Codes d'erreur détectée EtherNet/IP ....................................... 576 Code d'abandon SDO CANopen ............................................. 579 Codes d'erreur détectée OPC UA............................................ 580 Introduction Les tableaux suivants répertorient les valeurs et les codes d'erreur créés pour les EFB de la bibliothèque. Tableau des codes d'erreur de la bibliothèque de communication Introduction En cas d'erreur, les FFB de la bibliothèque Communication génèrent un code d'erreur dans le paramètre STATUS, page 556 (pour les EFB avec un paramètre de sortie STATUS), décrivent l'erreur en question dans le buffer de diagnostic (si le diagnostic système est activé) et écrivent un code d'erreur dans %SW125 (voir EcoStruxure™ Control Expert, Bits et mots système, Manuel de référence). Le tableau suivant répertorie les différents codes d'erreur. 33002528.25 553 Communication Valeurs et codes d'erreur des EFB Extended Tableau des codes et valeurs d'erreur générés pour les EFB du type Booléen étendu. Code d'erreur Etat ENO en erreur Valeur d'erreur (format décimal) Valeur d'erreur (format hexadécimal) Description de l'erreur E_EFB_MSTR_ERROR F -30191 16#8A11 Erreur de communication MSTR E_EFB_NOT_STATE_RAM_4X F -30531 16#88BD Variable non affectée à la zone %MW (4x) E_EFB_MSTR_ERROR F -30191 16#8A11 Erreur de communication MSTR E_EFB_OUT_OF_RANGE F -30192 16#8A10 Erreur interne : l'EFB a détecté une violation ; par exemple, l'écriture dépasse les limites %MW (4x). E_EFB_NOT_STATE_RAM_4X F -30531 16#88BD Variable non affectée à la zone %MW (4x) W_WARN_OUT_OF_RANGE F 30110 16#759E Paramètre hors limites E_EFB_NOT_STATE_RAM_4X F -30531 16#88BD Variable non affectée à la zone %MW (4x) E_EFB_MSTR_ERROR F -30191 16#8A11 Erreur de communication MSTR W_WARN_OUT_OF_RANGE F 30110 16#759E Paramètre hors limites E_EFB_NOT_STATE_RAM_4X F -30531 16#88BD Variable non affectée à la zone %MW (4x) E_EFB_MSTR_ERROR F -30191 16#8A11 Erreur de communication MSTR NOTE: pour connaître la signification des codes du paramètre de sortie STATUS, reportez-vous à la section Codes d'erreur, page 556. 554 33002528.25 Valeurs et codes d'erreur des EFB Communication Erreurs courantes relatives aux valeurs à virgule flottante Introduction Le tableau suivant répertorie les codes d'erreur et les valeurs générés par des erreurs relatives aux valeurs à virgule flottante. Ces informations s'affichent dans la fenêtre Visualisation du diagnostic, tandis que les valeurs de code d'erreur sont écrites dans % SW125 (voir EcoStruxure™ Control Expert, Bits et mots système, Manuel de référence). Erreurs courantes relatives aux valeurs à virgule flottante Tableau des erreurs courantes relatives aux valeurs à virgule flottante Codes d'erreur Valeur d'erreur (format décimal) Valeur d'erreur (format hexadécimal) Description de l'erreur FP_ERROR -30150 16#8A3A Valeur de base (n'apparaît pas comme une valeur d'erreur) E_FP_STATUS_FAILED_IE -30151 16#8A39 Opération sur valeur à virgule flottante interdite E_FP_STATUS_FAILED_DE -30152 16#8A38 L'opérande n'est pas un nombre de type REAL valide E_FP_STATUS_FAILED_ZE -30154 16#8A36 Division par zéro interdite E_FP_STATUS_FAILED_ZE_IE -30155 16#8A35 Opération sur valeur à virgule flottante/Division par zéro interdite E_FP_STATUS_FAILED_OE -30158 16#8A32 Dépassement sur valeur à virgule flottante E_FP_STATUS_FAILED_OE_IE -30159 16#8A31 Opération sur valeur à virgule flottante/ Dépassement interdit E_FP_STATUS_FAILED_OE_ZE -30162 16#8A2E Dépassement sur valeur à virgule flottante/ Division par zéro E_FP_STATUS_FAILED_OE_ZE_IE -30163 16#8A2D Opération sur valeur à virgule flottante/ Dépassement/Division par zéro interdit E_FP_NOT_COMPARABLE -30166 16#8A2A Erreur interne 33002528.25 555 Communication Valeurs et codes d'erreur des EFB Codes d'erreur des EFB avec paramètre STATUS Forme du code d'erreur de fonction Les codes d'erreur des paramètres STATUS se présentent sous la forme Mmss, où : • M correspond au code supérieur ; • m correspond au code inférieur, • ss correspond à un sous-code. Codes d'erreur courants Description des codes d'erreur hexadécimaux : 556 Code d'erreur hex. Description 1001 Abandon par l'utilisateur. 1002 Abandon consécutif à un démarrage à chaud. 11ss Codes d'erreur propres aux blocs fonction de communication, page 559. 12ss Codes d'erreur propres aux blocs fonction de communication, page 560. 13ss Codes d'erreur propres aux blocs fonction de communication, page 560. 1mss Codes d'erreur propres aux blocs fonction de communication, page 560. 2001 Un type d'opération non pris en charge a été spécifié dans le bloc de commande. 2002 Un ou plusieurs paramètres de bloc de commande ont été modifiés pendant que l'élément MSTR était actif (cela ne s'applique qu'aux opérations qui nécessitent plusieurs cycles d'exécution). Les paramètres du bloc de commande ne peuvent être modifiés que dans les composants MSTR inactifs. 2003 Valeur incorrecte dans le champ de longueur du bloc de commande. 2004 Valeur incorrecte dans le champ d'offset du bloc de commande. 2005 Valeur incorrecte dans les champs de longueur et d'offset du bloc de commande. 2006 Champ de données non autorisé sur l'esclave. 2007 Champ de réseau non autorisé sur l'esclave. 2008 Chemin de routage réseau non autorisé sur l'esclave. 2009 Chemins de routage équivalent à leur propre adresse. 200A Tentative d'obtention de plus de mots Global Data que ceux qui sont disponibles. 33002528.25 Valeurs et codes d'erreur des EFB Communication Code d'erreur hex. Description 200B Conflit de diffusion d'E/S sur écriture/lecture de données globales. 200C Motif incorrect de la requête de changement d'adresse. 200D Adresse incorrecte de la requête de changement d'adresse. 200E Le bloc de commande ou le tampon de données n'est pas affecté, ou des éléments du bloc de contrôle ou du tampon de données sont hors de la plage %MW (4x). 200F Espace de réponse trop petit dans le tampon de données. 2010 Longueur du tampon de commande incorrecte. 2011 Paramètre incorrect. 2012 Erreur de syntaxe dans la chaîne « rack.emplacement.voie ». 2013 Module manquant, non détecté ou non configuré. 2015 Aucune donnée sur la voie (voie hors limites). 2016 Annulation en cas de timeout. 2017 Contexte de tâche incorrecte. 2018 Erreur de service du système de sécurité Ethernet. 2019 Données de réponse incorrectes (les données reçues ne correspondent pas à la réponse attendue). 201A Somme de contrôle incorrecte de la réponse. 201B Problème de compatibilité (par exemple, version EF ou DDT incompatible avec la version du micrologiciel). 30ss Réponse exceptionnelle de l'esclave Modbus avec code d'exception ss, page 558 spécifique. 31ss Réponse exceptionnelle de l'esclave Modbus à une erreur de protocole Control Expert avec code d'erreur ss spécifique, page 562. 32ss Acquittement exceptionnel par l'esclave Modbus d'une erreur de requête d'E/S du protocole Control Expert avec code d'erreur ss spécifique, page 564. 33ss Rapport UNI-TE. 34ss Rapport de communication générique, page 564 (correspond au champ Rapport de communication des paramètres de gestion des EF Premium/M340). 35ss Rapport d'opération générique en cas d'échange correct, page 565 (correspond au champ Rapport d'opération des paramètres de gestion des EF Premium/M340 lorsque Rapport de communication = 16#00). 36ss Rapport d'opération générique en cas de message refusé, page 565 (correspond au champ Rapport d'opération des paramètres de gestion des EF Premium/M340 lorsque Rapport de communication = 16#FF). 37ss Code d'état général CIP., page 567 33002528.25 557 Communication Valeurs et codes d'erreur des EFB Code d'erreur hex. Description 4001 Réponse incohérente de l'esclave Modbus. 4002 Réponse Modbus Umas incohérente. 4003 Réponse UNI-TE incohérente (dépend du module). 4004 Requête de lecture des mots d'état refusée par la voie du module. 4005 Paramètres de commande refusés par la voie du module. 4006 Paramètres de réglage refusés par le module. 4007 Code d'abandon SDO (4 octets) pouvant figurer dans le champ de données si celui-ci est disponible. 5mss Codes d'erreur Ethernet TCP/IP, page 570. 6mss Erreur de chemin de routage Modbus Plus, page 573. Le sous-champ m indique l'emplacement de l'erreur (0 pour le nœud local, 2 pour le deuxième équipement du chemin, etc.). 7mss Codes d'erreur SY/MAX, page 574. 8mss Codes d'erreur détectée EtherNet/IP, page 576. F001 Nœud cible erroné indiqué pour l'opération MSTR. Option S985 référencée absente ou en mode de réinitialisation. F002 Composant partiellement initialisé. Codes de fonction d'exception Modbus (30ss) Ce tableau indique la valeur hexadécimale ss dans les codes d'erreur 30ss : 558 Code d'erreur hex. Description 3001 L'esclave ne prend pas en charge l'opération demandée. 3002 Les registres d'esclave demandés n'existent pas. 3003 Une valeur de données non autorisée a été demandée. 3004 Erreur irrécupérable détectée dans l'esclave. 3005 L'esclave a accepté une commande de programme longue. 3006 La fonction ne peut pas être exécutée actuellement : une commande longue est en cours d'exécution. 3007 L'esclave a rejeté une commande de programme longue. 33002528.25 Valeurs et codes d'erreur des EFB Communication Code d'erreur hex. Description 300A Passerelle incapable d'allouer un chemin de communication interne. 300B Aucune réponse de l'équipement cible. 30FF Exception Modbus étendue. Données supplémentaires disponibles dans le champ de données (s'il est fourni) : • Longueur de l'exception : représente la longueur de la réponse d'exception étendue, à l'exception de ces 2 octets. • Données de l'exception : informations sur l'erreur correspondant au code fonction concerné. La valeur ss correspond au code d'exception Modbus renvoyé par l'équipement esclave Modbus en cas d'erreur (deuxième octet du PDU d'exception Modbus) : • code fonction exception = code fonction requête + 0x80 : 1 octet • code exception : 1 octet (renvoyé sous la forme ss dans le code d'erreur 16#30ss) Détails des codes d'erreur STATUS 11ss, 12ss, 13ss et 1mss Codes d'erreur générale (11ss) Ce tableau indique la valeur hexadécimale ss dans les codes d'erreur 11ss : Code d'erreur hex. Description 1100 Erreur générique 1101 Nombre de variables incorrect 1102 Taille du paramètre EXT_STATUS incorrecte 1103 Taille du paramètre CTRL incorrecte 1109 Non-concordance de longueur 110A Non-concordance de type 110B Erreur d'écriture dans un équipement distant 110E Aucune variable correcte pour générer une requête en vue d'obtenir les données 1110 Taille de variable supérieure à la taille de requête (1024 octets) 1111 Erreur de longueur de chaîne (chaîne cible < chaîne source) 33002528.25 559 Communication Valeurs et codes d'erreur des EFB Codes d'erreur STATUS des variables locales (12ss) Ce tableau indique la valeur hexadécimale ss dans les codes d'erreur 12ss : Code d'erreur hex. Description 1200 Erreur générique concernant les variables locales 1205 Erreur lors de l'extraction de l'adresse physique d'une variable locale 1206 Erreur lors de l'extraction de la somme de contrôle de type d'une variable locale 1207 Erreur lors de l'extraction du descripteur d'une variable locale Codes d'erreur STATUS des variables distantes (13ss) Ce tableau indique la valeur hexadécimale ss dans les codes d'erreur 13ss : Code d'erreur hex. Description 1300 Erreur générique concernant les variables distantes 1304 Aucune variable locale associée 1306 Erreur lors de l'extraction de la somme de contrôle de type d'une variable distante 1307 Erreur lors de l'extraction du descripteur d'une variable distante 130C Erreur d'écriture dans un équipement distant 130F Taille incorrecte (excessive) de la requête visant à obtenir des informations sur une variable distante Codes d'erreur STATUS des variables locales (m=2) ou distantes (m=3) (1mss) Ce tableau indique la valeur hexadécimale mss dans les codes d'erreur 1mss : 560 Code d'erreur hex. Description 1m81 Erreur lors de l'accès aux blocs mémoire du dictionnaire 1m82 La variable ou le champ est introuvable dans le dictionnaire 1m83 Erreur dans la syntaxe du chemin de variable 33002528.25 Valeurs et codes d'erreur des EFB Communication Code d'erreur hex. Description 1m84 Le chemin de variable n'est pas un tableau 1m85 Tableau hors limites 1m86 La variable de tableau a trop d'indices 1m87 Les dimensions du tableau dépassent les limites prises en charge 1m88 Type incompatible détecté 1m89 Valeur d'ID de type incorrecte 1m8A Le bit extrait n'est pas pris en charge par le type de variable 1m8B Le rang du bit extrait n'est pas valide 1m8C Clé d'attribut inconnue dans le dictionnaire 1m8D Bloc de type d'espace de nom incorrect 1m8E Le tableau de somme de contrôle de type trié par ID de type ne figure pas dans l'application 1mC0 Erreur générique du dictionnaire de données 1mC1 Pas de dictionnaire de données dans l'application 1mC2 Le dictionnaire de données est occupé ou inaccessible (l'utilisateur doit réessayer) 1mC3 Dictionnaire de données différent de celui de la dernière requête 1mC4 Le dictionnaire de données est réservé 1mC5 La variable ou le champ est introuvable dans le dictionnaire 1mC6 Erreur de syntaxe dans le chemin de variable 1mC7 Le type de variable n'est pas un tableau 1mC8 Tableau hors limites 1mC9 La variable de tableau a trop d'indices 1mCA Les dimensions du tableau dépassent les limites prises en charge 1mCB Type incompatible détecté 1mCC Valeur d'ID de type incorrecte 1mCD Le bit extrait n'est pas pris en charge par le type de variable 1mCE Le rang du bit extrait n'est pas valide 1mCF Clé d'attribut inconnue dans le dictionnaire 1mD0 Erreur lors de l'accès aux blocs mémoire du dictionnaire 1mD1 Erreur de taille de table de hachage dans le dictionnaire de données préchargé (taille différente) 33002528.25 561 Communication Valeurs et codes d'erreur des EFB Code d'erreur hex. Description 1mD2 Valeur d'ID d'événement incorrecte 1mD3 Bloc de type d'espace de nom incorrect 1mD4 Type introuvable dans le dictionnaire 1mD5 Type non identique 1mD6 Le type présenté dans la table triée ne figure pas dans l'application 1mD7 Le tableau de sommes de contrôle de type trié par ID de type ne figure pas dans l'application Détail des codes d'erreur STATUS 31ss à 37ss Codes d'erreur propres au protocole Control Expert (31ss) Ce tableau indique la valeur hexadécimale ss dans les codes d'erreur 31ss : 562 Code d'erreur hexadécimal Description 3100 Erreur générique de protocole Control Expert. 3180 Erreur de communication générique. 3181 Automate réservé par quelqu'un d'autre. 3182 Vous devez réserver l'automate. 3183 Requête ou sous-code inconnu(e). 3184 Objet inconnu (ex. : %Z non implémenté). 3185 Génération de la réponse impossible 3186 La requête comprend des paramètres non valides (par exemple : mal structurée, trop de paramètres ou commande Csa erronée). 3187 Séquence incorrecte (par exemple, EndDownload avant BeginDownload). 3188 Taille de la réponse supérieure à celle du tampon disponible. 3189 Module non configuré (adresse potentiellement incorrecte). 318 A Action non autorisée sur cet objet. 33002528.25 Valeurs et codes d'erreur des EFB Communication Code d'erreur hexadécimal Description 318B Etat occupé : l'opération précédente est toujours en cours, toutes les ressources internes sont occupées pour la requête d'E/S ou le chargement en parallèle est trop lourd, etc. 3190 Erreur générique : une erreur s'est produite dans l'application. 3191 Violation d'accès : écriture dans un bloc ou une variable en lecture seule, tentative de téléchargement alors que la mémoire est protégée, etc. 3192 Objet inaccessible car en cours d'utilisation. 3193 Dépassement des limites : hors de la plage %MW, trop de points d'arrêt, pile d'appels trop importante, etc. 3194 Longueur incorrecte. 3195 Référence à une ressource ou une tâche inexistante, adresse de variable absente de la zone de données du DFB, etc. 3196 Objet ou ressource déjà défini(e). Par exemple : tentative de démarrage d'un élément déjà démarré, ID de point d'arrêt déjà utilisé, etc. 3197 Données incohérentes ou dans un état non autorisé. Par exemple : données incorrectes ou valeur erronée lors de l'écriture d'un objet. 3198 Objet existant, mais non initialisé. 3199 Voie hors limites dans une requête d'E/S. 319 A Requête non encore implémentée. 31A0 Application incompatible, cible ou plate-forme incorrecte. 31A1 Echec de la vérification de signature 31A2 Configuration de la mémoire PCMCIA incorrecte. 31B0 Automate dans un mode incorrect : téléchargement avec automate en mode RUN ou débogage avec automate en mode NOCONF, tentative de contournement d'une tâche, absence de point d'arrêt, chargement annulé par un téléchargement ou une modification en ligne, etc. 31B1 Impossible de modifier le mode : une E/S force l'automate à s'arrêter. 31B2 Timeout interne. 31B3 Délai du chien de garde écoulé. 31C0 Code du rapport générique du dictionnaire de données 31FF Erreur générale non définie 33002528.25 563 Communication Valeurs et codes d'erreur des EFB Acquittement d'erreurs de requête d'E/S pour le protocole Control Expert (32ss) Ce tableau indique la valeur hexadécimale ss dans les codes d'erreur 32ss : Code d'erreur hexadécimal Description 3202 Erreur lors de l'échange. 3207 Autre échange explicite en cours. 3209 Opération impossible. 320A Données refusées par le bloc d'E/S. 320B Ecriture non autorisée. 320C Nombre maximum d'échanges. 3284 Objet inconnu. 3286 Tampon de lecture non valide. 328A Action inconnue ou non valide. 328B Tous les tampons sont utilisés. 3293 Objet hors limites. 3297 Valeur d'objet interdite (opérations d'écriture uniquement). 3299 Voie hors plage. Rapport de communication générique (34ss) Ce tableau indique la valeur hexadécimale ss dans les codes d'erreur 34ss : 564 Code d'erreur hexadécimal Description 3401 Echange interrompu suite à un timeout 3402 Echange arrêté à la demande de l'utilisateur (CANCEL). 3403 Format d'adresse incorrect. 3404 Adresse de destination incorrecte 3405 Format du paramètre de gestion incorrect. 33002528.25 Valeurs et codes d'erreur des EFB Code d'erreur hexadécimal Description 3406 Paramètres spécifiques incorrects. 3407 Erreur détectée lors de l'envoi vers la destination. 3409 Réservé. 340 A Taille du tampon de réception insuffisante. 340B Processeur sans ressources système. 340C Numéro d'échange incorrect. 340D Télégramme non reçu. 340E Longueur incorrecte. 340F Service de télégramme non configuré. 3410 Module réseau manquant. 3411 Requête manquante. 3412 Serveur d'application déjà actif. 3413 Numéro de transaction UNI-TE V2 incorrect. Communication La valeur ss correspond au code de rapport de communication, page 42 renvoyé par les fonctions élémentaires de communication sur les plates-formes Premium/Atrium/Mxxx. Rapport d'opération générique (35ss et 36ss) Cet octet de rapport est propre à chaque fonction et indique le résultat de l'opération sur l'application distante. Rapport d'opération générique lorsque l'échange correct est codé sous la forme 16#35ss. Si l'équipement distant refuse le message, le rapport a la forme 16#36ss. Ce tableau indique la valeur hexadécimale ss dans les codes d'erreur 35ss : Code d'erreur hexadécimal Description 3501 Requête non traitée. 3502 Réponse incorrecte. 33002528.25 565 Communication Valeurs et codes d'erreur des EFB La valeur ss dans les codes 35ss correspond au champ du rapport d'opération des paramètres de gestion des fonctions élémentaires Premium/M340 lorsque Rapport de communication, page 43 = 16#00. Ce tableau indique la valeur hexadécimale ss dans les codes d'erreur 36ss : Code d'erreur hexadécimal Description 3601 Pas de ressources vers le processeur. 3602 Pas de ressources de ligne. 3603 Aucun équipement ou équipement sans ressource. 3604 Erreur de ligne. 3605 Erreur de longueur. 3606 Voie de communication défectueuse. 3607 Erreur d'adressage. 3608 Erreur d'application. 360B Absence de ressource système. 360C Fonction de communication non active. 360D Destination manquante. 360F Problème de routage intrastation ou voie non configurée. 3611 Format d'adresse non pris en charge. 3612 Aucune ressource cible. 3614 Connexion non opérationnelle (exemple : TCP/IP Ethernet). 3615 Aucune ressource sur la voie locale. 3616 Accès non autorisé (exemple : TCP/IP Ethernet). 3617 Configuration incohérente du réseau (exemple : TCP/IP Ethernet). 3618 Connexion temporairement indisponible. 3621 Serveur d'application arrêté. 3630 Erreur d'émission. La valeur ss dans les codes 36ss correspond au champ du rapport d'opération des paramètres de gestion des fonctions élémentaires Premium/M340 lorsque Rapport de communication, page 43 = 16#FF. 566 33002528.25 Valeurs et codes d'erreur des EFB Communication Code d'état général CIP (37ss) Le tableau ci-dessous répertorie les codes d'état que vous pouvez rencontrer dans le champ de code d'état général d'un message de réponse à une erreur CIP détectée : Code d'état général (hexadécimal) Nom de l'état Description de l'état 3701 Echec de la connexion Echec d'un service lié à la connexion dans le chemin de connexion. 3702 Ressource indisponible Les ressources nécessaires pour que l'objet exécute le service demandé n'étaient pas disponibles. 3703 Valeur de paramètre incorrecte Reportez-vous au code d'état 0x20, la valeur à utiliser dans ce cas de figure. 3704 Erreur de segment de chemin Le nœud de traitement n'a pas compris l'identifiant du segment de chemin ou la syntaxe du segment. Le traitement du chemin est interrompu lorsqu'une erreur de segment de chemin est détectée. 3705 Destination du chemin inconnue Le chemin fait référence à une classe d'objets, une instance ou un élément de structure inconnu ou absent du nœud de traitement. Le traitement du chemin est interrompu lorsqu'une erreur de destination de chemin inconnue est détectée. 3706 Transfert partiel Seule une partie des données attendues a été transférée. 3707 Connexion perdue La connexion de messagerie a été perdue. 3708 Service non pris en charge Le service demandé n'a pas été mis en œuvre ou défini pour cette instance/classe d'objets. 3709 Valeur d'attribut incorrecte Attribut incorrect détecté. 370A Erreur de liste d'attributs Un attribut dans la réponse Get_Attribute_List ou Set_ Attribute_List a un état non nul. 370B Déjà en mode/état demandé L'objet est déjà dans le mode/l'état demandé par le service. 370C Conflit d'état d'objet L'objet ne peut pas exécuter le service demandé dans son mode/ état actuel. 370D Objet déjà existant L'instance demandée de l'objet à créer existe déjà. 370E Attribut non configurable Une requête de modification d'un attribut non modifiable a été reçue. 370F Violation de privilège Une vérification de droit d'accès/privilège a échoué. 3710 Conflit d'état d'équipement Le mode/l'état de l'équipement interdit l'exécution du service demandé. 3711 Données de la réponse trop volumineuses Les données à transmettre dans le tampon de réponse sont trop volumineuses pour la taille allouée au tampon. 3712 Fragmentation d'une valeur primitive Le service a spécifié une opération qui va fragmenter une valeur de données primitive (soit la moitié d'un type de données REAL). 33002528.25 567 Communication Valeurs et codes d'erreur des EFB Code d'état général (hexadécimal) Nom de l'état Description de l'état 3713 Données insuffisantes Le service n'a pas fourni suffisamment de données pour effectuer l'opération spécifiée. 3714 Attribut non pris en charge L'attribut spécifié dans la requête n'est pas pris en charge. 3715 Trop de données Le service a fourni plus de données que prévu. 3716 Objet inexistant L'objet spécifié n'existe pas dans l'équipement. 3717 Séquence de fragmentation du service inactive La séquence de fragmentation de ce service est désactivée pour ces données. 3718 Attributs non stockés Les attributs de cet objet n'ont pas été enregistrés avant le service demandé. 3719 Echec de l'opération de stockage Suite à une tentative infructueuse, les attributs de cet objet n'ont pas été enregistrés. 371A Echec du routage, paquet de requête trop volumineux La requête du service était trop volumineuse pour être transmise sur un réseau à l'emplacement cible. L'équipement de routage a dû annuler l'exécution du service. 371B Echec du routage, paquet de réponse trop volumineux Le paquet de réponse du service était trop volumineux pour être transmis sur un réseau à l'emplacement cible. L'équipement de routage a dû abandonner l'exécution du service. 371C Liste d'attributs manquante La liste d'attributs fournie par le service ne contenait pas un attribut requis par ce même service pour effectuer l'opération demandée. 371D Liste de valeurs d'attribut incorrecte Le service renvoie la liste d'attributs contenant des informations d'état qui sont incorrectes pour ces attributs. 371E Erreur de service intégré Un service intégré a généré une erreur détectée. 371F Erreur propre à un fournisseur Une erreur propre à un fournisseur a été détectée. Le champ de code supplémentaire de la réponse définit l'erreur rencontrée. Utilisez ce code d'erreur général quand aucun de ceux figurant dans ce tableau ou dans une définition de classe d'objets ne correspond à l'erreur détectée. 3720 Paramètre incorrect Un paramètre associé à la requête était incorrect. Ce code est utilisé lorsqu'un paramètre ne répond pas aux critères de cette spécification et/ou aux critères définis dans une spécification d'objet d'application. 3721 Valeur à écriture unique ou support déjà gravé Le système a détecté une tentative d'écriture sur un support non réinscriptible (par exemple, disque WORM, PROM) déjà gravé ou une tentative de modification d'une valeur non modifiable. 3722 Réponse incorrecte reçue Une réponse incorrecte est reçue (par exemple, le code du service de réponse ne correspond pas au code du service de requête ou le message de réponse est plus court que la taille minimale attendue). Ce code d'état peut être utilisé pour d'autres causes de réponse incorrecte. 568 33002528.25 Valeurs et codes d'erreur des EFB Communication Code d'état général (hexadécimal) Nom de l'état Description de l'état 3723 Saturation du tampon Le message reçu dépasse la capacité du tampon de réception. Le message a été entièrement rejeté. 3724 Erreur de format du message Le serveur ne prend pas en charge le format du message reçu. 3725 Clé défectueuse dans le chemin Le segment de clé défini comme premier segment du chemin ne correspond pas au module cible. L'état de l'objet indique la partie défectueuse du contrôle de la clé. 3726 Taille de chemin incorrecte La taille du chemin envoyé avec la requête de service est trop petite pour acheminer la requête à un objet ou comprenait trop de données de routage. 3727 Attribut inattendu dans la liste La tentative de configuration concernait un attribut non modifiable pour l'instant. 3728 ID de membre incorrect L'ID de membre spécifié dans la requête n'existe pas dans la classe, l'instance ou l'attribut spécifié. 3729 Membre non configurable Une requête de modification d'un membre non modifiable a été reçue. 372A Serveur de groupe 2 uniquement – Erreur générale Ce code d'erreur détectée n'est signalé que par des serveurs DeviceNet de groupe 2 dotés d'au maximum 4 Ko d'espace de code, et uniquement à la place d'un service non pris en charge ou d'un attribut non pris en charge ou non configurable. 372B Erreur Modbus inconnue Un convertisseur CIP/Modbus a reçu un code d'exception Modbus. 372C Attribut inaccessible Une requête de lecture d'un attribut non lisible a été reçue. 372D à 37CF – Réservé par CIP pour les futures extensions. 37D0 à 37FF Réservé pour les erreurs de classe d'objets et de service Cette plage de codes d'erreur détectée permet d'indiquer des erreurs détectées correspondant à des classes d'objets. Ne l'utilisez que si aucun des codes d'erreur figurant dans ce tableau ne correspond exactement à l'erreur détectée. NOTE: Extrait autorisé de The CIP Networks Library, Volume 1, Common Industrial Protocol (CIP™), Edition 3.6, avril 2009. 33002528.25 569 Communication Valeurs et codes d'erreur des EFB Détails des codes d'erreur Ethernet TCP/IP des EFB5mss Codes d'erreur de réseau Ethernet TCP/IP (5mss) NOTE: Les erreurs Ethernet sont gérées par les modules Ethernet ou le coprocesseur Ethernet, à l'exception du code d'erreur 5050 (hex). 570 Code d'erreur hexadécimal Signification 5001 Réponse incohérente du réseau 5004 Appel système interrompu 5005 Erreur d'E/S 5006 Adresse inexistante 5009 Descripteur de socket incorrect 500C Mémoire insuffisante 500D Autorisation refusée 5011 Entrée existante 5016 Argument incorrect 5017 Espace insuffisant dans la table interne 5020 Connexion perdue 5023 Opération bloquée et socket non bloquant 5024 Socket non bloquant et impossible de fermer la connexion 5025 Socket non bloquant et échec d'une précédente tentative de connexion 5026 Opération socket sur un non-socket 5027 Adresse cible non valide 5028 Message trop long 5029 Type de protocole incorrect pour le socket 502A Protocole non disponible 502B Protocole non pris en charge 502C Type de socket non pris en charge 502D Opération non prise en charge sur un socket 502E Famille de protocoles non prise en charge 33002528.25 Valeurs et codes d'erreur des EFB Communication Code d'erreur hexadécimal Signification 502F Famille d'adresses non prise en charge 5030 Adresse déjà utilisée 5031 Adresse non disponible 5032 Réseau hors service 5033 Réseau inaccessible 5034 Connexion réseau perdue lors de la réinitialisation 5035 Connexion abandonnée par l'homologue 5036 Connexion réinitialisée par l'homologue 5037 Mémoire tampon interne requise, mais impossible à affecter 5038 Socket déjà connecté 5039 Socket non connecté 503A Emission impossible après l'arrêt du socket 503B Trop de références : liaison impossible 503C Expiration de la connexion (voir remarque ci-dessous) 503D Connexion refusée 5040 Hôte hors service 5041 Hôte cible inaccessible depuis ce nœud 5042 Répertoire non vide 5046 « -1 » renvoyé par NI_INIT 5047 MTU non valide 5048 Longueur matérielle non valide 5049 Chemin indiqué introuvable 504A Collision dans l'appel de sélection : ces conditions ont déjà été sélectionnées par une autre tâche 504B ID de tâche incorrect 5050 Aucune ressource réseau 5051 Erreur de longueur 5052 Erreur d'adressage 5053 Erreur d'application 5054 Client incapable de traiter la requête 33002528.25 571 Communication Valeurs et codes d'erreur des EFB Code d'erreur hexadécimal Signification 5055 Aucune ressource réseau 5056 Connexion TCP non opérationnelle 5057 Configuration incohérente 51ss Codes d'erreur du service SMTP, page 572 53ss Codes d'erreur du service client Modbus, page 573 NOTE: • Code d'erreur 5055 (hex) pouvant survenir avant un code d'erreur 503C (hex). • Aucun équipement distant n'a priorité sur un timeout. Codes d'erreur du service SMTP (51ss) Codes d'erreur hexadécimaux du service SMTP : 572 Code d'erreur hexadécimal Signification 5100 Erreur interne 5101 Composant SMTP non opérationnel 5102 En-tête de message non configuré 5103 Valeur non valide dans l'en-tête de message 5104 Connexion au serveur SMTP impossible 5105 Erreur lors de la transmission du corps du message électronique au serveur SMTP 5106 Erreur lors de la fermeture de la connexion SMTP au serveur 5107 Echec de la requête SMTP HELO 5108 Echec de la requête SMTP MAIL. Authentification potentiellement requise par le serveur SMTP 5109 Echec de la requête SMTP RCPT 510A Aucun destinataire accepté par le serveur SMTP 510B Echec de la requête SMTP DATA 510C Longueur incorrecte de la requête d'envoi de message électronique 510D Echec d'authentification 510E Réception d'une requête de réinitialisation de composant pendant une connexion ouverte 33002528.25 Valeurs et codes d'erreur des EFB Communication Codes d'erreur du service client Modbus (53ss) Codes d'erreur hexadécimaux du service client Modbus : Code d'erreur hexadécimal Signification 5300 Inutilisé (réservé pour un usage ultérieur) 5301 Aucune ressource disponible pour le composant 5302 Adresse IP fournie inappropriée Par exemple : 0.0.0.0, adresse de diffusion, adresse de multidiffusion, etc. 5303 Délai de la transaction expiré. Requête acceptée par le serveur distant, mais aucune réponse fournie dans les 2 minutes 5304 Connexions actuellement toutes utilisées 5305 Accès refusé 5306 Réseau inaccessible 5307 Hôte arrêté 5308 Connexion réseau perdue lors de la réinitialisation 5309 Réseau arrêté 530A Connexion refusée 530B Connexion expirée 530C En-tête MBAP erroné Détails des codes d'erreur Modbus Plus des EFB 6mss Codes d'erreur propres à Modbus Plus (6mss) NOTE: le champ m du code d'erreur 6mss est un index (dans les informations de routage) qui précise l'endroit où une erreur a été détectée. m = 0 signifie que l'erreur a été détectée sur le nœud local, m = 2 signifie que l'erreur a été détectée sur le deuxième équipement du chemin, etc. 33002528.25 573 Communication Valeurs et codes d'erreur des EFB Code d'erreur hexadécimal Description 6m01 Pas de réception de réponse. 6m02 Accès au programme refusé. 6m03 Nœud hors service et incapable de communiquer. 6m04 Réponse reçue inhabituelle. 6m05 Chemin de données du nœud du routeur occupé. 6m06 Esclave hors service. 6m07 Adresse cible incorrecte. 6m08 Type de nœud non autorisé dans le chemin de routage. 6m10 L'esclave a rejeté la commande. 6m20 L'esclave a perdu une transaction active. 6m40 Chemin de sortie maître non attendu reçu. 6m80 Réponse reçue non attendue. F001 Nœud cible erroné indiqué pour l'opération MSTR. Codes d'erreur SY/MAX dans les EFB Quantum Codes d'erreur propres à SY/MAX Si vous utilisez Ethernet SY/MAX, trois types d'erreur supplémentaires peuvent apparaître dans le registre CONTROL[1] du bloc de commande. Ces codes d'erreur ont la signification suivante : • 71xx : erreurs détectées par l'équipement distant SY/MAX • 72xx : erreurs détectées par le serveur • 73xx : erreurs détectées par le compilateur Quantum Codes d'erreur hexadécimaux propres à SY/MAX Les codes d'erreur hexadécimaux spécifiques à SY/MAX sont décrits ci-après : 574 33002528.25 Valeurs et codes d'erreur des EFB Communication Code d'erreur hexadécimal Description 7101 Code opérande non valide détecté par l'équipement distant SY/MAX 7103 Adresse non valide détectée par l'équipement distant SY/MAX 7109 Essai d'écriture d'un registre protégé en écriture détecté par l'équipement distant SY/MAX F710 Débordement récepteur détecté par l'équipement distant SY/MAX 7110 Longueur non valide détectée par l'équipement distant SY/MAX 7111 Equipement distant non actif, pas de liaison (se produit lorsque toutes les tentatives et temporisations ont été épuisées), détecté par l'équipement distant SY/MAX 7113 Paramètre non valide détecté par l'équipement distant SY/MAX dans une opération de lecture 711D Itinéraire non valide détecté par l'équipement distant SY/MAX 7149 Paramètre non valide détecté par l'équipement distant SY/MAX dans une opération d'écriture 714B Numéro de station non valide détecté par l'équipement distant SY/MAX 7101 Code opérande non valide détecté par le serveur SY/MAX 7203 Adresse non valide détectée par le serveur SY/MAX 7209 Essai d'écriture dans un registre protégé en écriture détecté par le serveur SY/MAX F720 Débordement récepteur détecté par le serveur SY/MAX 7210 Longueur non valide détectée par le serveur SY/MAX 7211 Equipement distant non actif, pas de liaison (se produit lorsque toutes les tentatives et temporisations ont été épuisées), détecté par le serveur SY/MAX 7213 Paramètre non valide détecté par le serveur SY/MAX dans une opération de lecture 721D Itinéraire non valide détecté par le serveur SY/MAX 7249 Paramètre non valide détecté par le serveur SY/MAX dans une opération d'écriture 724B Numéro de station non valide détecté par le serveur SY/MAX 7301 Code opérande non valide dans une requête de bloc MSTR en provenance du compilateur Quantum 7303 Etat du module QSE Lecture/Ecriture (adresse de routage 200 hors limites) 7309 Essai d'écriture dans un registre protégé en écriture, lorsqu'une écriture d'état est en cours d'exécution (Routage 200) 33002528.25 575 Communication Valeurs et codes d'erreur des EFB Code d'erreur hexadécimal Description 731D Itinéraire non valide détecté par le compilateur Quantum. Itinéraires valides : 734B • dest_drop, 0xFF • 200, dest_drop, 0xFF • 100+drop, dest_drop, 0xFF • Toutes les autres valeurs de routage entraînent une erreur. L'une des erreurs suivantes est survenue : • Absence de configuration de table CTE. • Aucune entrée de table CTE n'a été créée pour le numéro d'emplacement du module QSE. • Aucune station valide n'a été précisée. • Le module QSE n'a pas été réinitialisé après la création de la table CTE. Remarque : après écriture et configuration de la table CTE et son chargement dans le module QSE, vous devez réinitialiser le module QSE pour que les modifications prennent effet. • Lors de l'utilisation d'une instruction MSTR, aucun emplacement ni station valide n'a été indiqué(e). Codes d'erreur détectée EtherNet/IP Codes d'erreur détectée EtherNet/IP Les codes hexadécimaux d'erreur détectée EtherNet/IP sont les suivants : Code d'erreur détectée (hex) Description 800D Timeout sur la requête de message explicite 8012 Equipement incorrect 8015 Soit : 8018 576 • pas de ressources pour traiter le message, ou • Evénement interne : pas de tampon disponible, pas de liaison disponible, envoi à la tâche TCP impossible. Soit : • un autre message explicite est en cours pour cet équipement, ou • une session de connexion ou d'encapsulation TCP est en cours. 33002528.25 Valeurs et codes d'erreur des EFB Code d'erreur détectée (hex) Description 8030 Timeout sur la requête Forward_Open Communication Remarque : les événements 81xx ci-après sont des codes d'erreur détectée de réponse Forward_Open, générés sur la cible distante et reçus par le biais de la connexion CIP. 8100 Connexion utilisée ou Forward_Open en double 8103 Classe de transport et déclenchement de combinaison non pris en charge 8106 Conflit de propriété 8107 Connexion cible introuvable 8108 Paramètre de connexion réseau incorrect 8109 Taille de connexion incorrecte 8110 Cible de connexion non configurée 8111 Intervalle de trame demandé (RPI) non pris en charge 8113 Hors connexion 8114 ID du vendeur ou code produit différent 8115 Type de produit non concordant 8116 Révision non concordante 8117 Chemin d'application créé ou utilisé incorrect 8118 Chemin d'application de configuration incorrect ou incohérent 8119 Connexion Non-Listen Only non ouverte 811A Objet cible hors connexion 811B Intervalle de trame demandé (RPI) plus petit que la durée d'inhibition de production 8123 Connexion expirée 8124 Expiration de la requête non connectée 8125 Erreur détectée de paramètre dans une requête et un service non connectés 8126 Message trop grand pour le service unconnected_send 8127 Acquittement non connecté sans réponse 8131 Pas de mémoire tampon disponible 8132 Bande passante réseau non disponible pour les données 8133 Aucun filtre d'ID de connexion consommée disponible 8134 Non configuré pour l'envoi de données prioritaires programmées 33002528.25 577 Communication Valeurs et codes d'erreur des EFB Code d'erreur détectée (hex) Description 8135 Signature de programmation non concordante 8136 Validation de la signature de programmation impossible 8141 Port non disponible 8142 Adresse de liaison non valide 8145 Segment invalide dans le chemin de connexion 8146 Erreur détectée dans le chemin de connexion du service Forward_Close 8147 Planification non spécifiée 8148 Adresse de liaison vers soi-même non valide 8149 Ressources secondaires non disponibles 814A Connexion de rack déjà établie 814B Connexion de module déjà établie 814C Divers 814D Connexion redondante différente 814E Plus aucune ressource consommatrice de liaison configurable par l'utilisateur : le nombre configuré de ressources pour une application productrice a atteint la limite 814F Plus aucune ressource consommatrice de liaison configurable par l'utilisateur : aucun consommateur configuré utilisable par une application productrice 8160 Propre au fournisseur 8170 Aucune donnée d'application cible disponible 8171 Aucune donnée d'application source disponible 8173 Non configuré pour la multidiffusion hors du sous-réseau 81A0 Erreur détectée dans l'affectation des données 81B0 Erreur détectée d'état d'objet facultatif 81C0 Erreur détectée d'état d'équipement facultatif Remarque : toutes les erreurs détectées #82xx sont des erreurs détectées de réponse de session de registre. 578 8200 Ressources insuffisantes de l'équipement cible 8208 En-tête d'encapsulation du message non reconnu par l'équipement cible 820F Erreur détectée réservée ou inconnue de la cible 33002528.25 Valeurs et codes d'erreur des EFB Communication Code d'abandon SDO CANopen Présentation Le code d'abandon SDO est utilisé en cas d'échec de la commande SDO. Code d'abandon SDO Valeur du code d'abandon SDO (hexadécimale) Paramètre 0503 0000 Bit de basculement non alterné 0504 0000 Expiration du timeout du protocole SDO 0504 0001 Indicateur de commande client/serveur non valide ou inconnu 0504 0002 Taille de bloc non valide (mode bloc seulement) 0504 0003 Numéro de séquence non valide (mode bloc seulement) 0504 0004 Erreur de CRC (mode bloc seulement) 0504 0005 Mémoire insuffisante 0601 0000 Accès non autorisé à un objet 0601 0001 Tentative de lecture d'un objet en écriture seule 0601 0002 Tentative d'écriture d'un objet en lecture seule 0602 0002 Objet non présent dans le dictionnaire d'objets 0604 0041 Objet impossible à mapper au PDO 0604 0042 Dépassement de la longueur des PDO dû au nombre et à la longueur des objets à mapper 0604 0043 Incompatibilité des paramètres généraux 0604 0047 Incompatibilité interne dans l'équipement 0606 0000 Echec de l'accès en raison d'une erreur de matériel 0607 0010 Discordance du type de données ou de la longueur du paramètre de service 0607 0012 Discordance du type de données, longueur du paramètre de service trop élevée 0607 0013 Discordance du type de données, longueur du paramètre de service trop faible 0609 0011 Sous-index inexistant 0609 0030 Plage de valeurs du paramètre dépassée (pour l'accès en écriture seulement) 33002528.25 579 Communication Valeurs et codes d'erreur des EFB Valeur du code d'abandon SDO (hexadécimale) Paramètre 0609 0031 Valeur de paramètre écrite trop élevée 0609 0032 Valeur de paramètre écrite trop faible 0609 0036 Valeur maximale inférieure à la valeur minimale 0800 0000 Erreur générale 0800 0020 Données impossibles à transférer ou à stocker dans l'application 0800 0021 Données impossibles à transférer ou à stocker dans l'application à cause d'une commande locale 0800 0022 Données impossibles à transférer ou à stocker dans l'application à cause de l'état actuel de l'équipement 0800 0023 La génération dynamique du dictionnaire d'objets ne peut pas aboutir ou aucun dictionnaire d'objets n'est présent (par exemple, le dictionnaire d'objets est généré à partir d'un fichier non valide). Codes d'erreur détectée OPC UA Structure des codes d'erreur détectée OPC UA Les codes d'erreur détectée OPC UA ont une longueur de 4 octets et sont de type DWORD. NOTE: Le bit 29 du code d'erreur détectée sur 4 octets est utilisé pour faire la distinction entre les codes définis par : 580 • OPC Foundation • PLCopen ou Schneider Electric Champ Rang du bit Description Gravité 30:31 Indique si le code de l'erreur détectée représente un succès, un insuccès ou une incertitude, comme suit : 00 Succès L'opération a réussi. Les résultats associés peuvent être utilisés. 01 Incertitude L'opération n'a pas réussi. Les résultats associés ne peuvent pas être utilisés. 10 Insuccès L'opération a partiellement réussi. Les résultats associés risquent d'être inutiles pour certains objectifs. 33002528.25 Valeurs et codes d'erreur des EFB Champ Type d'erreur Rang du bit 29 Communication Description 11 Réservé Réservé pour une utilisation ultérieure. Il est recommandé aux clients de traiter un code d'erreur détectée de cette gravité comme un insuccès (10). 0 Indique un code d'erreur détectée défini par OPC Foundation. Pour obtenir une description, reportez-vous à la spécification OPC UA sur : https://reference.opcfoundation.org/v104/Core/docs/Part6/A.2/ 1 Type d'erreur 2 28 Indique un code d'erreur détectée propre à PLCopen ou au fournisseur, signalé par le bit 28. Ce bit ne peut être évalué que si le bit 29 = 1. 0 Erreur détectée PLCopen, page 581. 1 Erreur détectée spécifique à Schneider Electric, page 583. Codes d'erreur détectée PLCOpen Catégorie : Généralités Code d'erreur détectée (bits 0 à 27) Description 16#A000_0001 Erreur interne permanente. 16#A000_0002 Erreur temporaire. Le FB peut tenter à nouveau d'atteindre FW. Catégorie : Connexion Code d'erreur détectée (bits 0 à 27) Description 16#A000_0100 La connexion n'a pas pu être établie. 16#A000_0101 Le nom d'hôte demandé est introuvable. 16#A000_0102 La connexion a déjà été établie. 16#A000_0103 La connexion a échoué en raison de la configuration de la sécurité. 16#A000_0104 Connexion suspendue. 16#A000_0105 La valeur fournie pour ConnectionHdl est inconnue. 33002528.25 581 Communication Valeurs et codes d'erreur des EFB Catégorie : Espace de noms Code d'erreur détectée (bits 0 à 27) Description 16#A000_0200 Aucun espace de noms nommé ainsi n'a été trouvé sur le serveur. Catégorie : Nœud Code d'erreur détectée (bits 0 à 27) Description 16#A000_0300 La variable de l'automate cible est trop courte pour les données récupérées. 16#A000_0301 Type non valide ou non pris en charge. 16#A000_0302 La valeur fournie pour NodeHdl est inconnue. 16#A000_0303 La valeur fournie pour MethodHdl est inconnue. 16#A000_0304 La lecture a échoué pour une raison inconnue. 16#A000_0305 L'écriture a échoué pour une raison inconnue. 16#A000_0306 L'appel de méthode a échoué pour une raison inconnue. 16#A000_0307 La conversion de paramètre d'entrée de l'appel de méthode a échoué. 16#A000_0308 La conversion de paramètre de sortie de l'appel de méthode a échoué. ATTENTION : Cela signifie que MethodCall a été exécuté avec succès mais que les valeurs renvoyées n'ont pas pu être converties. Catégorie : Attribut Code d'erreur détectée (bits 0 à 27) Description 16#A000_0400 Utilisé dans UA_NodeGetInformation pour les éléments qui ne figurent pas dans cette classe de noeuds. 16#A000_0401 Utilisé dans UA_NodeGetInformation pour les éléments qui devraient être présents mais sont absents. Catégorie : Surveillance 582 Code d'erreur détectée (bits 0 à 27) Description 16#A000_0500 La valeur fournie pour SubscriptionHdl est inconnue. 16#A000_0501 La valeur fournie pour MonitoredItemHdl est inconnue. 16#A000_0502 Synchronisation de contrôleur et synchronisation de micrologiciel mélangées dans la même liste 16#A000_0503 Mode de synchronisation non valide. 33002528.25 Valeurs et codes d'erreur des EFB Communication Codes d'erreur détectée propres à Schneider Electric Code d'erreur détectée (bits 0 à 27) Description 16#B0000001 Une erreur interne du client a été détectée. 16#B0000003 La valeur de NodeHdlCount n'est pas valide. Plage valide : 1 à MAX_ ELEMENTS_NODELIST. 16#B0000004 La valeur spécifiée pour ServerEndpointUrl ne doit pas être une chaîne nulle. 16#B0000006 La valeur de NodeIdCount n'est pas valide. Plage valide : 1 à MAX_ ELEMENTS_NODELIST. 16#B0000007 Réponse du serveur OPC UA non valide ou incorrecte. 16#B0000011 La valeur de TransportProfile n’est pas prise en charge. 16#B0000012 La valeur de SessionTimeout n’est pas prise en charge. Plage valide : 30 s...1 j 16#B0000013 La valeur de MonitorConnection n’est pas prise en charge. Plage valide : 500 ms...10 min 16#B0000014 La valeur de UAUserIdentityTokenType n’est pas prise en charge. 16#B0000016 La valeur de IndexRangeCount n’est pas prise en charge. Plage valide : 0...3 16#B0000017 La valeur de StartIndex ne doit pas être supérieure à la valeur de EndIndex. 16#B0000018 La valeur de IdentifierType n’est pas prise en charge. 16#B0000019 La valeur spécifiée pour Identifier ne doit pas être une chaîne nulle. 16#B0000103 La valeur spécifiée pour BufferSize est trop petite. 16#B0000021 Les dimensions du type de données du noeud spécifiées ne correspondent pas aux dimensions du noeud sur le serveur OPC UA. 16#B0000022 La valeur de BufferAddress ne doit pas être 0. 16#B0000024 La taille des données définies ne correspond pas à la taille des données du noeud cible sur le serveur. 16#B0000025 La valeur spécifiée pour UserIdentityTokenParam n'est pas valide. Avec UserIdentityTokenType = UAUITT_Username, aucun des ST_ UserIdentyTokenParams ne peut être une chaîne nulle. 16#B0000026 La valeur spécifiée pour InvalidSecurityPolicy n'est pas valide. 16#B0000027 La valeur spécifiée pour InvalidSecurityMsgMode n'est pas valide. 16#B0000028 La valeur spécifiée pour AttributeID n'est pas prise en charge. 16#B0000029 La valeur de NamespaceUrisCount n'est pas valide. Plage valide : 1... MAX_ELEMENTS_NAMESPACES 33002528.25 583 Communication 584 Valeurs et codes d'erreur des EFB Code d'erreur détectée (bits 0 à 27) Description 16#B0000030 La valeur de NamespaceUri ne doit pas être une chaîne nulle. 16#B0000099 Le délai a expiré lors de l'attente d'une réponse du client (composant micrologiciel). 16#B0000100 Le délai a expiré lors de l'attente d'une réponse du serveur OPC UA. 16#B0000102 Le type de données spécifié pour le noeud ne correspond pas au type de données du noeud sur le serveur OPC UA. 16#B0000103 La valeur spécifiée pour BufferSize est trop petite. 16#B0000104 Le contrôleur ne fournit pas assez de mémoire pour traiter les données reçues. 16#B0000105 Après la détection d'une modification en ligne, le client OPC UA a été réinitialisé et l'exécution du bloc fonction a été annulée. 16#B0000106 Descripteurs de noeud déjà récupérés pour cette session. Libérez les descripteurs de noeud récupérés avant d'en obtenir d'autres. 16#B0000107 La taille du type spécifiée par le client par etNodeDataType ne correspond pas à la taille de la valeur 16#B0000108 Les données sont scalaires mais leur type n'est pas pris en charge 16#B0000500 La valeur de MonitoredItemHdlCount n'est pas valide. Plage valide : 1... MAX_ELEMENTS_MONITORLIST 16#B0000501 Nombre maximal de souscriptions atteint pour l'UC M580. 16#B0000502 Descripteurs de noeud déjà récupérés pour cette session. Libérez les descripteurs de noeud récupérés avant d'en obtenir d'autres. 16#B0000503 Le gestionnaire d'événements système n'a pas été créé. 16#B0000504 Le gestionnaire d'événements spécifique à la souscription n'a pas été créé. 16#B0000505 Taille des données (y compris toutes les dimensions) trop grande. 16#B0000506 Les descripteurs d'éléments surveillés fournis ne correspondent pas à ceux figurant dans la souscription 16#B0000508 Opération abandonnée - voir le code d'erreur dans la table nodeerrorId 16#B0000509 Nombre maximal de connexions atteint pour l'UC M580. 16#B0000511 Nombre maximal de services simultanés atteint, c'est-à-dire le nombre d'EFB pouvant être exécutés en parallèle dans l'état Busy. 33002528.25 Valeurs et codes d'erreur des EFB Communication Autres codes d'erreur détectée propres à Schneider Electric NOTE: Les codes suivants indiquent qu'une erreur a été détectée, mais ils n'interrompent pas l'exécution du bloc fonction. Code d'erreur détectée (bits 0 à 27) Description 16#70000001 Exécution partielle - voir le code d'erreur dans la table nodeerrorId 16#70000002 La longueur du tableau de destination est trop petite par rapport à la source 33002528.25 585 Communication Glossaire A ADDM_TYPE: Ce type prédéfini est utilisé comme une sortie de la fonction ADDM. C'est un tableau ARRAY [0..8] OF Int. Vous pouvez le trouver dans la bibliothèque, dans la même famille que les EF qui l'utilisent. ADDR_TYPE: Ce type prédéfini est utilisé comme une sortie de la fonction ADDR. C'est un tableau ARRAY [0..5] OF Int. Vous pouvez le trouver dans la bibliothèque, dans la même famille que les EF qui l'utilisent. 33002528.25 587 Communication ANY: Une hiérarchie existe entre les différents types de données. Dans les DFB, il est parfois possible de déclarer les variables pouvant contenir plusieurs types de valeurs. On utilise alors les types ANY_xxx. La figure suivante décrit cette structure hiérarchisée : ARRAY: Un ARRAY est un tableau d'éléments de même type. La syntaxe est la suivante : ARRAY [<limites>] OF <Type> Exemple : ARRAY [1..2] OF BOOL est un tableau à une dimension composé de deux éléments de type BOOL. ARRAY [1..10, 1..20] OF INT est un tableau à deux dimensions composé de 10 x 20 éléments de type INT. 588 33002528.25 Communication B BOOL: BOOL est l'abréviation du type booléen. Il s'agit du type de données de base en informatique. Une variable de type BOOL peut avoir l'une des deux valeurs suivantes : 0 (FALSE) ou 1 (TRUE). Un bit extrait d'un mot est de type BOOL, par exemple :%MW10.4 BYTE: 8 bits constituent un octet (BYTE). La saisie d'un BYTE s'effectue soit en mode binaire, soit en base 8. Le type BYTE est codé dans un format 8 bits qui, au format hexadécimal, s'étend de 16#00 à 16#FF. D DINT: DINT est l'abréviation du format Double INTeger (entier double codé sur 32 bits). Les limites supérieure/inférieure sont les suivantes : - (2 puissance 31) à (2 puissance 31) 1. Exemple : -2147483648, 2147483647, 16#FFFFFFFF. E EFB: EFB est l'acronyme de « Elementary Function Block » (bloc fonction élémentaire). Il s'agit d'un bloc utilisé dans un programme, qui exécute une fonction logique prédéterminée. Les EFB possèdent des états et des paramètres internes. Même si les entrées sont identiques, les valeurs des sorties peuvent différer. Par exemple, un compteur possède une sortie qui indique que la valeur de présélection est atteinte. Cette sortie est réglée sur 1 lorsque la valeur en cours est égale à la valeur de présélection. 33002528.25 589 Communication EN: EN correspond à ENable (activer) ; il s'agit d'une entrée de bloc facultative. Quand l'entrée EN est activée, une sortie ENO est automatiquement définie. Si EN = 0, le bloc n'est pas activé, son programme interne n'est pas exécuté et ENO est réglé sur 0. Si EN = 1, le programme interne du bloc est exécuté et ENO est réglé sur 1. Si une erreur survient, ENO reprend la valeur 0. Si l'entrée EN n'est pas connectée, elle est automatiquement réglée sur 1. ENO: ENO signifie Error NOtification (notification d'erreur). C'est la sortie associée à l'entrée facultative EN. Si ENO est réglé sur 0 (car EN = 0 ou en cas d'erreur d'exécution) : • les sorties du bloc fonction restent dans l'état qui était le leur lors du dernier cycle de scrutation exécuté correctement ; • la ou les sorties de la fonction, ainsi que les procédures, sont réglées sur 0. F Fonction: Voir EF. I INT: INT est l'abréviation du format single INTeger (entier simple codé sur 16 bits). Les limites supérieure/inférieure sont les suivantes : - (2 puissance 15) à (2 puissance 15) 1. Exemple : -32768, 32767, 2#1111110001001001, 16#9FA4. S STRING: Une variable de type STRING est une chaîne de caractères ASCII. La longueur maximale d'une chaîne est de 65 534 caractères. 590 33002528.25 Communication V Variable localisée: Variable dont la position dans la mémoire de l'automate peut être connue. Par exemple, la variable Pression_eau est associée à %MW102. Pression_eau est dite affectée. W WORD: Le type WORD est codé dans un format 16 bits et sert à effectuer des traitements sur des chaînes de bits. Le tableau ci-dessous donne les limites inférieure/supérieure des bases qui peuvent être utilisées : Base Limite inférieure Limite supérieure Hexadécimale 16#0 16#FFFF Octale 8#0 8#177777 Binaire 2#0 2#1111111111111111 Exemples de représentation Données Représentation dans l'une des bases 0000000011010011 16#D3 1010101010101010 8#125252 0000000011010011 2#11010011 33002528.25 591 Communication Index A ADDM .......................................................73 ADDM_TYPE ...................................... 73, 80 ADDMX.....................................................80 ADDR .......................................................88 ADDR_TYPE.............................................88 B bloc fonction ETH_PORT_CTRL ............................... 126 C CANCEL ...................................................91 CLOSE_TCP_CNX ....................................95 codes d'erreur.......................................... 553 11ss..................................................... 559 12ss .................................................... 559 13ss .................................................... 559 1mss.................................................... 559 CREAD_REG....................................... 556 CWRITE_REG ..................................... 556 EXCH_QX............................................ 556 GET_TS_EVT_M.................................. 556 GET_TS_EVT_Q.................................. 556 INPUT_CHAR_QX................................ 556 PRINT_CHAR_QX................................ 556 PWS_CMD .......................................... 556 PWS_DIAG .......................................... 556 READ_PARAM_MX .............................. 556 READ_REG ......................................... 556 READ_REG_QX................................... 556 READ_REMOTE .................................. 556 READ_SDO ......................................... 556 READ_STS_MX ................................... 556 READ_STS_QX ................................... 556 RESTORE_PARAM_MX ....................... 556 SAVE_PARAM_MX............................... 556 WRITE_PARAM_MX ............................ 556 WRITE_REG........................................ 556 WRITE_REG_QX ................................. 556 592 WRITE_REMOTE................................. 556 WRITE_SDO........................................ 556 communication - instructions ADDM....................................................73 ADDR ....................................................88 CLOSE_TCP_CNX.................................95 CREAD_REG.........................................99 CWRITE_REG ..................................... 106 ETH_PORT_CTRL ............................... 126 EthPort_Control_MX ............................. 131 MBP_MSTR ......................................... 160 ModbusP_ADDR .................................. 209 OUT_IN_MBUS.................................... 222 PRINT_CHAR ...................................... 250 RCV_TLG ............................................ 264 READ_ASYN ....................................... 268 READ_DDT.......................................... 271 READ_GDATA ..................................... 276 READ_REG ......................................... 279 READ_REMOTE .................................. 291 READ_SDO ......................................... 299 READ_VAR.......................................... 304 SEND_EMAIL ...................................... 325 SEND_REQ ......................................... 329 SEND_TLG .......................................... 346 SYMAX_IP_ADDR................................ 351 TCP_IP_ADDR..................................... 355 UNITE_SERVER .................................. 360 WRITE_ASYN...................................... 365 WRITE_GDATA .................................... 370 WRITE_REG........................................ 373 WRITE_REMOTE................................. 385 WRITE_SDO........................................ 393 WRITE_VAR ........................................ 398 XXMIT ................................................. 434 communication, instruction CANCEL ................................................91 DATA_EXCH ........................................ 113 informations générales sur Premium et Atrium ..................................................47 INPUT_BYTE ....................................... 139 INPUT_CHAR ...................................... 144 OUT_IN_CHAR .................................... 214 communication, instructions ADDMX .................................................80 EXCH_QX............................................ 134 INPUT_CHAR_QX................................ 155 PRINT_CHAR_QX................................ 259 33002528.25 Communication READ_REG_QX................................... 287 WRITE_REG_QX ................................. 381 CREAD_REG ............................................99 CWRITE_REG......................................... 106 D DATA_EXCH ........................................... 113 description des paramètres....................... 417 disponibilité des instructions........................30 O OPC UA client......................................................64 mode de surveillance ..............................65 OUT_IN_CHAR ....................................... 214 OUT_IN_MBUS ....................................... 222 P PRINT_CHAR.......................................... 250 PRINT_CHAR_QX ................................... 259 E ETH_PORT_CTRL................................... 126 EthPort_Control_MX ................................ 131 EXCH_QX ............................................... 134 exécution asynchrone ETH_PORT_CTRL ............................... 126 exécution synchrone ETH_PORT_CTRL ............................... 126 G gestion des chaînes - instructions PRINT_CHAR ...................................... 250 gestion des chaînes, instruction INPUT_CHAR ...................................... 144 OUT_IN_CHAR .................................... 214 I INPUT_BYTE .......................................... 139 INPUT_CHAR.......................................... 144 INPUT_CHAR_QX ................................... 155 instructions disponibilité ............................................30 M MBP_MSTR ............................................ 160 ModbusP_ADDR ..................................... 209 R RCV_TLG ............................................... 264 READ_ASYN........................................... 268 READ_DDT ............................................. 271 READ_GDATA......................................... 276 READ_REG............................................. 279 READ_REG_QX ...................................... 287 READ_REMOTE ..................................... 291 READ_SDO............................................. 299 READ_VAR ............................................. 304 S sécurité ETH_PORT_CTRL ............................... 126 SEND_EMAIL.......................................... 325 SEND_REQ............................................. 329 SEND_TLG ............................................. 346 services FTP/TFTP activation/désactivation ..................122, 196 services HTTP activation/désactivation ..................122, 196 structure de données XMIT_CFG........................................... 420 XMIT_SET ........................................... 420 SYMAX_IP_ADDR ................................... 351 T TCP_IP_ADDR ........................................ 355 type d'exécution ETH_PORT_CTRL ............................... 126 33002528.25 593 Communication U UA_Connect ............................................ 509 UA_ConnectionGetStatus......................... 512 UA_Disconnect ........................................ 515 UA_MonitoredItemAddList ........................ 533 UA_MonitoredItemOperList ...................... 536 UA_MonitoredItemRmvList ....................... 541 UA_NamespaceGetIndexList .................... 517 UA_NodeGetHandleList ........................... 519 UA_NodeReleaseHandleList .................... 522 UA_ReadList ........................................... 524 UA_SubscriptionCreate ............................ 529 UA_SubscriptionDelete ............................ 531 UA_SubscriptionProcessed ...................... 539 UA_WriteList ........................................... 526 UNITE_SERVER ..................................... 360 W WRITE_ASYN ......................................... 365 WRITE_GDATA ....................................... 370 WRITE_REG ........................................... 373 WRITE_REG_QX .................................... 381 WRITE_REMOTE .................................... 385 WRITE_SDO ........................................... 393 WRITE_VAR............................................ 398 X XMIT ....................................................... 413 XMIT_CFG .............................................. 420 XMIT_SET............................................... 420 XXMIT..................................................... 434 594 33002528.25 Schneider Electric 35 rue Joseph Monier 92500 Rueil Malmaison France + 33 (0) 1 41 29 70 00 www.se.com Les normes, spécifications et conceptions pouvant changer de temps à autre, veuillez demander la confirmation des informations figurant dans cette publication. © 2022 Schneider Electric. Tous droits réservés. 33002528.25