Schneider Electric EcoStruxure™ Control Expert - Communication, Bibliothèque de blocs Mode d'emploi

Ajouter à Mes manuels
596 Des pages
Schneider Electric EcoStruxure™ Control Expert - Communication, Bibliothèque de blocs Mode d'emploi | Fixfr
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

Manuels associés