Vous êtes sur la page 1sur 562

EcoStruxure™ Control Expert

33002528 12/2018

EcoStruxure™
Control Expert
Communication
Bibliothèque de blocs
(Traduction du document original anglais)

12/2018
33002528.21

www.schneider-electric.com
Le présent document comprend des descriptions générales et/ou des caractéristiques techniques
des produits mentionnés. Il ne peut pas être utilisé pour définir ou déterminer l'adéquation ou la
fiabilité de ces produits pour des applications utilisateur spécifiques. Il incombe à chaque utilisateur
ou intégrateur de réaliser l'analyse de risques complète et appropriée, l'évaluation et le test des
produits pour ce qui est de l'application à utiliser et de l'exécution de cette application. Ni la société
Schneider Electric ni aucune de ses sociétés affiliées ou filiales ne peuvent être tenues pour
responsables de la mauvaise utilisation des informations contenues dans le présent document. Si
vous avez des suggestions, des améliorations ou des corrections à apporter à cette publication,
veuillez nous en informer.
Vous acceptez de ne pas reproduire, excepté pour votre propre usage à titre non commercial, tout
ou partie de ce document et sur quelque support que ce soit sans l'accord écrit de Schneider
Electric. Vous acceptez également de ne pas créer de liens hypertextes vers ce document ou son
contenu. Schneider Electric ne concède aucun droit ni licence pour l'utilisation personnelle et non
commerciale du document ou de son contenu, sinon une licence non exclusive pour une
consultation « en l'état », à vos propres risques. Tous les autres droits sont réservés.
Toutes les réglementations locales, régionales et nationales pertinentes doivent être respectées
lors de l'installation et de l'utilisation de ce produit. Pour des raisons de sécurité et afin de garantir
la conformité aux données système documentées, seul le fabricant est habilité à effectuer des
réparations sur les composants.
Lorsque des équipements sont utilisés pour des applications présentant des exigences techniques
de sécurité, suivez les instructions appropriées.
La non-utilisation du logiciel Schneider Electric ou d'un logiciel approuvé avec nos produits
matériels peut entraîner des blessures, des dommages ou un fonctionnement incorrect.
Le non-respect de cette consigne peut entraîner des lésions corporelles ou des dommages
matériels.
© 2018 Schneider Electric. Tous droits réservés.

2 33002528 12/2018
Table des matières

Consignes de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . 11
A propos de ce manuel. . . . . . . . . . . . . . . . . . . . . . . . . . 15
Partie I Informations générales . . . . . . . . . . . . . . . . . . . . . . . 19
Chapitre 1 Types de module et leur utilisation . . . . . . . . . . . . . . . . . 21
Types de bloc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Structure d'un FFB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
EN et ENO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Chapitre 2 Disponibilité des blocs sur les différentes plates-formes
matérielles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Disponibilité des blocs sur différentes plateformes matérielles . . . . . . 31
Chapitre 3 Fonctionnement des EF de communication . . . . . . . . . . 35
3.1 Structure et gestion des fonctions de communication . . . . . . . . . . . . . 36
Gestion des fonctions de communication . . . . . . . . . . . . . . . . . . . . . . 37
Structure des fonctions de communication . . . . . . . . . . . . . . . . . . . . . 40
Adresse cible . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Structure des paramètres de gestion . . . . . . . . . . . . . . . . . . . . . . . . . 42
Paramètres de gestion : rapports de communication et d'opération . . 45
Paramètres de gestion : longueur et timeout. . . . . . . . . . . . . . . . . . . . 48
3.2 Informations générales sur les fonctions de communication Premium
et Atrium . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Règles d'utilisation des fonctions de communication des automates
Premium et Atrium . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Fonctions de communication sur les automates Premium et Atrium. . 52
Fonction de serveur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.3 Informations générales sur les fonctions de communication Quantum 56
Règles d'utilisation des fonctions de communication des automates
Quantum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Fonctions de communication sur les automates Quantum . . . . . . . . . 60
3.4 Informations générales sur les fonctions de communication M340 . . . 63
Fonctions de communication sur les automates M340 . . . . . . . . . . . . 63
3.5 Informations générales sur les fonctions de communication M580 . . . 65
Règles d'utilisation des fonctions de communication des UC M580 . . 66
Fonctions de communication sur les automates M580 . . . . . . . . . . . . 68
3.6 Informations générales sur les fonctions de communication
Momentum. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Fonctions de communication sur les automates Momentum . . . . . . . 70

33002528 12/2018 3
Partie II Etendu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Chapitre 4 ADDM : Conversion d'adresses . . . . . . . . . . . . . . . . . . . . 73
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Chapitre 5 ADDMX : conversion d'adresses . . . . . . . . . . . . . . . . . . . 79
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Chapitre 6 ADDR : conversion d'adresse . . . . . . . . . . . . . . . . . . . . . 87
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Chapitre 7 CANCEL : arrêt d'un échange en cours . . . . . . . . . . . . . . 89
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Exemple d'annulation d'un échange . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Chapitre 8 CLOSE_TCP_CNX : Fermeture de connexions TCP . . . . 93
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Chapitre 9 CREAD_REG : Lecture de registres en continu . . . . . . . 97
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Types de données dérivés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Mode de fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Description des paramètres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Chapitre 10 CWRITE_REG : Ecriture de registres en continu . . . . . . . 105
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Types de données dérivés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Mode de fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Description des paramètres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Chapitre 11 DATA_EXCH : échange de données entre applications . 113
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Ecran de saisie assistée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Exemple d'utilisation d'un réseau Fipway . . . . . . . . . . . . . . . . . . . . . . 121
Exemple d'activation/désactivation du service HTTP ou FTP/TFTP . . 123
Chapitre 12 ETH_PORT_CTRL : activation ou désactivation d'un
protocole. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
ETH_PORT_CTRL: : exécution d'une commande de sécurité dans une
application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Chapitre 13 EthPort_Control_MX : activation ou désactivation d'un
protocole. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
EthPort_Control_MX : activation ou désactivation d'un protocole . 133
Chapitre 14 EXCH_QX : échange de données entre des applications
sur le bus EIO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

4 33002528 12/2018
Chapitre 15 INPUT_BYTE : réception de chaînes de caractères. . . . 143
Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Chapitre 16 INPUT_CHAR : réception de chaînes de caractères . . . 149
Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Ecran de saisie assistée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Exemple de lecture de chaînes de caractères via un réseau Fipway . 157
Exemple de lecture de chaînes de caractères via une liaison série de
processeurs Modicon M340 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Chapitre 17 INPUT_CHAR_QX : réception de chaînes de caractères
sur le bus EIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Chapitre 18 MBP_MSTR : Maître Modbus Plus . . . . . . . . . . . . . . . . . 167
Description du bloc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Codes de fonction des opérations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Structures du bloc de commande de réseau . . . . . . . . . . . . . . . . . . . . 173
Lecture de données. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
Ecriture de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
Extraction de statistiques locales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Suppression de statistiques locales . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Ecriture de données globales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Lecture de données globales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
Lire statistiques distantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
Effacer statistiques distantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Validité de Peer Cop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Réinitialisation du module optionnel . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Lecture de la CTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
Ecriture de la CTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Envoi de messages électroniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
Envoi d'une requête Modbus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Requête de clôture d'une connexion . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Lecture/écriture de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
Activation et désactivation des services HTTP ou FTP/TFTP . . . . . . . 203
Etat d'intégrité des communications Peer Cop . . . . . . . . . . . . . . . . . . 205
Statistiques du réseau Modbus Plus . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Statistiques de réseau Ethernet TCP/IP . . . . . . . . . . . . . . . . . . . . . . . 212
Chapitre 19 ModbusP_ADDR : Adresse Modbus Plus. . . . . . . . . . . . 215
Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
Description détaillée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219

33002528 12/2018 5
Chapitre 20 OUT_IN_CHAR : envoi/réception de chaînes de
caractères. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Ecran de saisie assistée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
Exemple d'envoi/réception d'une chaîne de caractères. . . . . . . . . . . . 227
Chapitre 21 OUT_IN_MBUS : Fonction de communication Modbus . . 229
21.1 Présentation générale du bloc de communication OUT_IN_MBUS . . . 230
Description de la fonction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
Exemple d'utilisation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
Fonctionnalités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
21.2 Description du bloc de communication OUT_IN_MBUS . . . . . . . . . . . . 235
Représentations et paramètres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
Le paramètre MbusCmd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
Le paramètre RetryLmt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
Le paramètre DataBits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
Le paramètre RespTout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
Le paramètre MasterDataArea. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
Le paramètre Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
21.3 Mise en oeuvre du bloc de communication OUT_IN_MBUS . . . . . . . . . 246
Configuration de la liaison série . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Marche à suivre pour la programmation . . . . . . . . . . . . . . . . . . . . . . . 250
Utilisation d’un modem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
21.4 Exemple d’utilisation du bloc de communication OUT_IN_MBUS . . . . . 254
Description de l’exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
Structure de la programmation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
Déclaration des variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
Programmation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
Chapitre 22 PRINT_CHAR : Envoi de chaînes de caractères . . . . . . . 267
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
Ecran de saisie assistée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
Exemple d'envoi de chaînes de caractères via un réseau Fipway. . . . 274
Exemple d'envoi de chaînes de caractères via une liaison série de
processeurs Modicon M340 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
Chapitre 23 PRINT_CHAR_QX : envoi de chaînes de caractères sur
le bus EIO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279

6 33002528 12/2018
Chapitre 24 RCV_TLG : Réception de télégrammes . . . . . . . . . . . . . 283
Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
Exemple de réception d'un télégramme . . . . . . . . . . . . . . . . . . . . . . . 287
Chapitre 25 READ_ASYN : Lecture asynchrone de données . . . . . . 289
Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
Chapitre 26 READ_GDATA : Lecture de Global Data Modbus Plus . 293
Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
Chapitre 27 READ_REG : Lecture de registre . . . . . . . . . . . . . . . . . . 295
Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
Types de données dérivés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
Mode de fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
Description des paramètres. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
Chapitre 28 READ_REG_QX : lecture de registre sur le bus EIO . . . 305
Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Chapitre 29 READ_SDO : objet de données du service de lecture . . 309
READ_SDO : lecture de l'objet de données du service. . . . . . . . . . . . 309
Chapitre 30 READ_VAR : Lecture de variables . . . . . . . . . . . . . . . . . 313
Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
Ecran de saisie assistée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
Exemple d'utilisation sur un bus Uni-Telway . . . . . . . . . . . . . . . . . . . . 323
Exemple de lecture de bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
Exemple d'utilisation dans un réseau . . . . . . . . . . . . . . . . . . . . . . . . . 327
Exemple de lecture de mots via la liaison série des processeurs
Modicon M340 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
Exemple de vérification d'exécution . . . . . . . . . . . . . . . . . . . . . . . . . . 332
Chapitre 31 SEND_EMAIL : envoi d'un message électronique . . . . . 335
Envoi de messages électroniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
Chapitre 32 SEND_REQ : Envoi de requêtes . . . . . . . . . . . . . . . . . . 339
Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
Liste de requêtes UNI-TE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
Ecran de saisie assistée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
Exemple d'envoi d'une requête UNI-TE . . . . . . . . . . . . . . . . . . . . . . . 353
Modification des paramètres IP avec SEND_REQ (exemple) . . . . . . . 355
Utilisation de la fonction SEND_REQ . . . . . . . . . . . . . . . . . . . . . . . . . 356
Chapitre 33 SEND_TLG : Envoi de télégrammes . . . . . . . . . . . . . . . 357
Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
Exemple d'envoi d'un télégramme. . . . . . . . . . . . . . . . . . . . . . . . . . . . 361

33002528 12/2018 7
Chapitre 34 SYMAX_IP_ADDR : Adresse IP SY/MAX. . . . . . . . . . . . . 363
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
Description détaillée. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
Chapitre 35 TCP_IP_ADDR : Adresse TCP/IP . . . . . . . . . . . . . . . . . . 369
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
Description détaillée. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
Chapitre 36 UNITE_SERVER : Serveur immédiat . . . . . . . . . . . . . . . . 375
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
Exemple de serveur immédiat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
Chapitre 37 WRITE_ASYN : Ecriture asynchone de données. . . . . . . 381
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
Chapitre 38 WRITE_GDATA : Ecriture de Global Data Modbus Plus . 387
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
Chapitre 39 WRITE_REG : Ecriture de registre . . . . . . . . . . . . . . . . . . 389
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
Types de données dérivés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
Mode de fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395
Description des paramètres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
Chapitre 40 WRITE_REG_QX : écriture de registre sur le bus EIO. . . 399
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
Chapitre 41 WRITE_SDO : objet de données du service d'écriture. . . 403
WRITE_SDO : écriture de l'objet de données du service. . . . . . . . . . . 403
Chapitre 42 WRITE_VAR : Ecriture de variables . . . . . . . . . . . . . . . . . 407
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
Ecran de saisie assistée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
Exemple d'écriture de mots sur un réseau. . . . . . . . . . . . . . . . . . . . . . 416
Exemple d'écriture de mots via la liaison série des processeurs
Modicon M340 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
Exemple de vérification d'exécution . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
Chapitre 43 XMIT: Transmit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
Description sommaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
Représentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
Description des paramètres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
Description de la structure des données de XMIT_SET . . . . . . . . . . . 430
Description de la structure des données de XMIT_CFG . . . . . . . . . . . 431
Exemple d'application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438

8 33002528 12/2018
Chapitre 44 XXMIT : Transmission . . . . . . . . . . . . . . . . . . . . . . . . . . 445
44.1 Introduction au bloc XXMIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446
Fonctionnalités du bloc XXMIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446
44.2 Fonctions XXMIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
Description sommaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448
Représentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
Description détaillée des paramètres . . . . . . . . . . . . . . . . . . . . . . . . . 452
Fonctions de communication du bloc XXMIT . . . . . . . . . . . . . . . . . . . 462
Fonctions ASCII du bloc XXMIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
Fonctions de modem du bloc XXMIT . . . . . . . . . . . . . . . . . . . . . . . . . 469
Fonctions Modbus du bloc XXMIT. . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
Tampon FIFO et contrôle de flux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
Exemples d’application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482
44.3 Règles de programmation du bloc XXMIT. . . . . . . . . . . . . . . . . . . . . . 493
Règles de programmation du bloc XXMIT. . . . . . . . . . . . . . . . . . . . . . 493
44.4 Références techniques XXMIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
Limites des paramètres de requête/réponse Modbus . . . . . . . . . . . . . 496
Configuration de XXMIT à l'aide de modems à numérotation
automatique compatibles Hayes (uniquement) . . . . . . . . . . . . . . . . . . 497
Exemple d'application Hayes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501
44.5 Informations sur le câblage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506
Brochage des câbles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507
Kits d'adaptateur de câble . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520
Annexes ......................................... 525
Annexe A Valeurs et codes d'erreur des EFB . . . . . . . . . . . . . . . . . 527
Tableau des codes d'erreur de la bibliothèque de communication . . . 528
Erreurs courantes relatives aux valeurs à virgule flottante . . . . . . . . . 529
Codes d'erreur des EFB avec le paramètre STATUS . . . . . . . . . . . . . 530
Détail des codes d'erreur STATUS 31ss à 37ss . . . . . . . . . . . . . . . . . 533
Détails des codes d'erreur Ethernet TCP/IP des EFB5mss . . . . . . . . 540
Détails des codes d'erreur Modbus Plus des EFB 6mss. . . . . . . . . . . 544
Codes d'erreur SY/MAX dans les EFB Quantum . . . . . . . . . . . . . . . . 545
Codes d'erreur détectée EtherNet/IP. . . . . . . . . . . . . . . . . . . . . . . . . . 547
Code d'abandon SDO CANopen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550
Glossaire ......................................... 553
Index ......................................... 559

33002528 12/2018 9
10 33002528 12/2018
Consignes de sécurité

Informations importantes

AVIS
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.

33002528 12/2018 11
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 fonction-
nement. 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.
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.

12 33002528 12/2018
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 fonction-
nement 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.

DEMARRAGE 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.
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 recomman-
dations 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.

33002528 12/2018 13
FONCTIONNEMENT ET REGLAGES
Les précautions suivantes sont extraites du document NEMA Standards Publication ICS 7.1-1995
(la version anglaise prévaut) :
 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 fonction-
nement 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.

14 33002528 12/2018
A propos de ce manuel

Présentation

Objectif du document
Ce document décrit les fonctions et blocs fonction de la bibliothèque de communication.

Champ d'application
Cette documentation est applicable à EcoStruxure™ Control Expert 14.0 ou version ultérieure.

Documents à consulter

Titre du document Numéro de référence


EcoStruxure™ Control Expert - Langages de programmation et structure - 35006144 (anglais),
Manuel de référence 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)

33002528 12/2018 15
Titre du document Numéro de référence
Premium et Atrium sous EcoStruxure™ Control Expert - Liaison série 35006178 (anglais),
asynchrone - Manuel utilisateur 35006179 (français),
35006180 (allemand),
35013959 (italien),
35006181 (espagnol),
35013960 (chinois)
Premium et Atrium sous EcoStruxure™ Control Expert - Modules réseau 35006192 (anglais),
Ethernet - Manuel utilisateur 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)
EcoStruxure™ Control Expert - Système - Bibliothèque de blocs 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)

16 33002528 12/2018
Titre du document Numéro de référence
Quantum EIO - Modules d'E/S distantes - Guide d'installation et de S1A48978 (anglais),
configuration S1A48981 (français),
S1A48982 (allemand),
S1A48983 (italien),
S1A48984 (espagnol),
S1A48985 (chinois)
Quantum sous EcoStruxure™ Control Expert - Modules de communication 31008209 (anglais),
EtherNet/IP 140 NOC 771 00 - Manuel utilisateur 31008210 (français)
Quantum sous EcoStruxure™ Control Expert - Configuration TCP/IP - 33002467 (anglais),
Manuel utilisateur 33002468 (français),
33002469 (allemand),
31008078 (italien),
33002470 (espagnol),
31007110 (chinois)
Quantum sous EcoStruxure™ Control Expert - Modules réseau Ethernet - 33002479 (anglais),
Manuel utilisateur 33002480 (français),
33002481 (allemand),
31007213 (italien),
33002482 (espagnol),
31007112 (chinois)
Modicon M580 - BMENOC0301/11 - Module de communication Ethernet - HRB62665 (anglais),
Guide d'installation et de configuration 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 d'E/S distantes - Guide d’installation et de EIO0000001584 (anglais),
configuration EIO0000001585 (français),
EIO0000001586 (allemand),
EIO0000001587 (italien),
EIO0000001588 (espagnol),
EIO0000001589 (chinois),

Vous pouvez télécharger ces publications ainsi que d'autres informations techniques sur notre site
Web : www.schneider-electric.com/en/download.

33002528 12/2018 17
18 33002528 12/2018
EcoStruxure™ Control Expert
Informations générales
33002528 12/2018

Partie I
Informations générales

Informations générales

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.

Contenu de cette partie


Cette partie contient les chapitres suivants :
Chapitre Titre du chapitre Page
1 Types de module et leur utilisation 21
2 Disponibilité des blocs sur les différentes plates-formes matérielles 31
3 Fonctionnement des EF de communication 35

33002528 12/2018 19
Informations générales

20 33002528 12/2018
EcoStruxure™ Control Expert
Types de module et leur utilisation
33002528 12/2018

Chapitre 1
Types de module et leur utilisation

Types de module et leur utilisation

Vue d'ensemble
Ce chapitre décrit les différents types de module et leur utilisation.

Contenu de ce chapitre
Ce chapitre contient les sujets suivants :
Sujet Page
Types de bloc 22
Structure d'un FFB 24
EN et ENO 27

33002528 12/2018 21
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 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 les versions 13.1 et antérieures.

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'un
bloc 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'un 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 un EF est désactivé 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.

22 33002528 12/2018
Types de module et leur utilisation

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.

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 les versions 13.1 et antérieures.

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'un
bloc 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'un 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 un EF est désactivé 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.

33002528 12/2018 23
Types de module et leur utilisation

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.
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.

24 33002528 12/2018
Types de module et leur utilisation

Appel formel d'un bloc fonction dans le langage de programmation ST :

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).

33002528 12/2018 25
Types de module et leur utilisation

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.

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.

26 33002528 12/2018
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 attribuée à la broche EN à l'appel du FFB, l'algorithme défini par ce dernier
est exécuté (comme lorsque EN a la valeur « 1 »). Reportez-vous à la section Maintenir les liens
de sortie sur les EF désactivés (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) :
 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 12/2018 27
Types de module et leur utilisation

 Fonctions/procédures
NOTE : Unity Pro est l’ancien nom de Control Expert pour les versions 13.1 et antérieures.

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'un bloc 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'un 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 un EF est désactivé 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 33002528 12/2018
Types de module et leur utilisation

 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 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 s'écouler, étant donné qu'il est calculé à l'aide d'une horloge
système et qu'il est, par conséquent, 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.

33002528 12/2018 29
Types de module et leur utilisation

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.

30 33002528 12/2018
EcoStruxure™ Control Expert
Disponibilité des blocs
33002528 12/2018

Chapitre 2
Disponibilité des blocs sur les différentes plates-formes matérielles

Disponibilité des blocs sur les différentes plates-formes


matérielles

Disponibilité des blocs sur différentes plateformes matérielles

Présentation
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.

Extension
Disponibilité des blocs :

Nom du bloc Type de bloc Premium Quantum M340 M580 Momentum


ADDM EF - - + + -
ADDMX EF - +(1) - + -
ADDR EF + - - - -
CANCEL Procédure + - + + -
CLOSE_TCP_CNX Procédure +
CREAD_REG EFB - + - - -
CWRITE_REG EFB - + - - -
+ Oui
- Non
(1) Vous ne pouvez utiliser que ces EFB sur 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érations pris en charge : 1 = écriture de données, 2 = lecture de données, 23 = lecture / écriture de
données.
(3) La plate-forme Momentum prend en charge la même implémentation que la plate-forme 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 12/2018 31
Disponibilité des blocs

Nom du bloc Type de bloc Premium Quantum M340 M580 Momentum


DATA_EXCH Procédure + - + + -
ETH_PORT_CTRL EFB + - + + -
EthPort_Control_MX EF - - - + -
EXCH_QX EFB - +(1) - - -
INPUT_BYTE Procédure + - + + -
INPUT_CHAR Procédure + - + + -
INPUT_CHAR_QX EFB - + (1) - - -
MBP_MSTR EFB - + - +(4) +(2)
MODBUSP_ADDR EFB - + - - -
OUT_IN_CHAR Procédure + - - - -
OUT_IN_MBUS DFB + - - - -
PRINT_CHAR Procédure + - + + -
PRINT_CHAR_QX EFB - +(1) - - -
RCV_TLG Procédure + - - - -
READ_ASYN Procédure + - - - -
READ_GDATA Procédure + - - - -
READ_REG EFB - + - - -
READ_REG_QX EFB - +(1) - - -
READ_SDO Procédure - - - + -
READ_VAR Procédure + - + + -
SEND_REQ Procédure + - - - -
SEND_EMAIL Procédure - - + - -
SEND_TLG Procédure + - - - -
SYMAX_IP_ADDR EFB - + - - -
TCP_IP_ADDR EFB - + - - -
+ Oui
- Non
(1) Vous ne pouvez utiliser que ces EFB sur 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érations pris en charge : 1 = écriture de données, 2 = lecture de données, 23 = lecture / écriture de
données.
(3) La plate-forme Momentum prend en charge la même implémentation que la plate-forme 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.

32 33002528 12/2018
Disponibilité des blocs

Nom du bloc Type de bloc Premium Quantum M340 M580 Momentum


UNITE_SERVER Procédure + - - - -
WRITE_ASYN Procédure + - - - -
WRITE_GDATA Procédure + - - - -
WRITE_REG EFB - + - - -
WRITE_REG_QX EFB - +(1) - - -
WRITE_VAR Procédure + - + + -
XMIT EFB - - - - +
XXMIT EFB - + - - +(3)
+ Oui
- Non
(1) Vous ne pouvez utiliser que ces EFB sur 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érations pris en charge : 1 = écriture de données, 2 = lecture de données, 23 = lecture / écriture de
données.
(3) La plate-forme Momentum prend en charge la même implémentation que la plate-forme 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 12/2018 33
Disponibilité des blocs

34 33002528 12/2018
EcoStruxure™ Control Expert
Fonctionnement des EF de communication
33002528 12/2018

Chapitre 3
Fonctionnement des EF de communication

Fonctionnement des EF de communication

Objet de ce chapitre
Ce chapitre décrit le fonctionnement et la gestion des fonctions de communication.

Contenu de ce chapitre
Ce chapitre contient les sous-chapitres suivants :
Sous-chapitre Sujet Page
3.1 Structure et gestion des fonctions de communication 36
3.2 Informations générales sur les fonctions de communication Premium et Atrium 50
3.3 Informations générales sur les fonctions de communication Quantum 56
3.4 Informations générales sur les fonctions de communication M340 63
3.5 Informations générales sur les fonctions de communication M580 65
3.6 Informations générales sur les fonctions de communication Momentum 70

33002528 12/2018 35
Fonctionnement des EF de communication

Sous-chapitre 3.1
Structure et 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.

Contenu de ce sous-chapitre
Ce sous-chapitre contient les sujets suivants :
Sujet Page
Gestion des fonctions de communication 37
Structure des fonctions de communication 40
Adresse cible 41
Structure des paramètres de gestion 42
Paramètres de gestion : rapports de communication et d'opération 45
Paramètres de gestion : longueur et timeout 48

36 33002528 12/2018
Fonctionnement des EF de communication

Gestion des fonctions de communication

Présentation
Les fonctions de communication permettent à un équipement de communiquer avec un autre
équipement.
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 :
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é (voir page 43) 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.

33002528 12/2018 37
Fonctionnement des EF de communication

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 :
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 :
 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 (voir page 67).
 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.

38 33002528 12/2018
Fonctionnement des EF de communication

Début d'une nouvelle communication : 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

Le paramètre ENABLE est écrit par l'application. Les paramètres ACTIVE, DONE et ERROR sont lus
par l'application.

33002528 12/2018 39
Fonctionnement des EF de communication

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 :

Entité Description
Fonction Type de fonction de communication.
Adresse cible Adresse du destinataire de l'échange.
Paramètres Dépendent du type de fonction de communication. Une description est fournie pour
spécifiques chaque fonction de communication.
Paramètres de Communs à toutes les fonctions de communication asynchrones. Ils sont constitués :
gestion  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.

40 33002528 12/2018
Fonctionnement des EF de 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');

33002528 12/2018 41
Fonctionnement des EF de communication

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 :
 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.

Structure
Le tableau suivant décrit la structure des données de la table de gestion des fonctions de
communication :

Ordre du mot Octet de poids fort Octet de poids faible


Données gérées 1 Numéro d'échange Bit d'activité (voir page 43) : rang 0
par le système Bit d'annulation (voir page 43) : rang 1
Bit d'acquittement immédiat
(voir page 44) : rang 2
2 Compte rendu Compte rendu de communication
d'opération (voir page 45)
(voir page 46)
Données gérées 3 Timeout (voir page 49)
par l'utilisateur
4 Longueur (voir page 48)

42 33002528 12/2018
Fonctionnement des EF de communication

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 (voir page 90).
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.
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.

33002528 12/2018 43
Fonctionnement des EF de communication

Bit d'acquittement immédiat


Réservé à l'EF INPUT_CHAR (voir page 150), 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 (voir page 90)).

44 33002528 12/2018
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.
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
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

33002528 12/2018 45
Fonctionnement des EF de communication

Valeur Rapport de communication (octet de poids faible)


16#12 Serveur d'application déjà actif
16#13 Numéro de transaction UNI-TE V2 incorrect
16#FF Message refusé
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é
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 En cas de réponse positive à certaines requêtes
requête + 16#30
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

46 33002528 12/2018
Fonctionnement des EF de communication

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 UNI-TE
(voir page 344).
 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 :

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
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

Légende :
(*) Code uniquement pris en charge par les cartes PCMCIA : TSX FPP20 et TSX FPP10

33002528 12/2018 47
Fonctionnement des EF de communication

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é.

48 33002528 12/2018
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 :
 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 12/2018 49
Fonctionnement des EF de communication

Sous-chapitre 3.2
Informations générales sur les fonctions de communication Premium et Atrium

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.

Contenu de ce sous-chapitre
Ce sous-chapitre contient les sujets suivants :
Sujet Page
Règles d'utilisation des fonctions de communication des automates Premium et Atrium 51
Fonctions de communication sur les automates Premium et Atrium 52
Fonction de serveur 54

50 33002528 12/2018
Fonctionnement des EF de communication

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 (voir page 313), sont écrits en langage ST.

33002528 12/2018 51
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 :

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.
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.

52 33002528 12/2018
Fonctionnement des EF de communication

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é (voir page 43) et les mots de
compte rendu (voir page 45) 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.

33002528 12/2018 53
Fonctionnement des EF de communication

Fonction de serveur

Présentation
La fonction de serveur peut servir à répondre aux requêtes émanant d'équipements clients.
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 :

54 33002528 12/2018
Fonctionnement des EF de communication

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.
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.

33002528 12/2018 55
Fonctionnement des EF de communication

Sous-chapitre 3.3
Informations générales sur les fonctions de communication Quantum

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.

Contenu de ce sous-chapitre
Ce sous-chapitre contient les sujets suivants :
Sujet Page
Règles d'utilisation des fonctions de communication des automates Quantum 57
Fonctions de communication sur les automates Quantum 60

56 33002528 12/2018
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.

33002528 12/2018 57
Fonctionnement des EF de communication

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).
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.

58 33002528 12/2018
Fonctionnement des EF de communication

Description de la séquence de communication :

Etape 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 :
 en ayant abouti (DONE réglé sur 1),
 ou en ayant échoué (ERROR réglé sur 1).

3 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).

33002528 12/2018 59
Fonctionnement des EF de communication

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.

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/IP-
Ethernet ou SY/MAX-Ethernet.
READ_REG (1) Lire une zone de registre à partir d'un esclave adressé via Modbus Plus, TCP/IP-Ethernet
ou SY/MAX-Ethernet.
WRITE_REG (1) Ecrire une zone de registre dans un esclave adressé via Modbus Plus, TCP/IP-Ethernet 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.

60 33002528 12/2018
Fonctionnement des EF de 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/IP-
Ethernet 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.
READ_REG (1) Lire une zone de registre à partir d'un esclave adressé via Modbus Plus, TCP/IP-
Ethernet 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/IP-
Ethernet 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)).

33002528 12/2018 61
Fonctionnement des EF de communication

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 :

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.

62 33002528 12/2018
Fonctionnement des EF de communication

Sous-chapitre 3.4
Informations générales sur les fonctions de communication M340

Informations générales sur les fonctions de communication


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 (voir page 37).

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.

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)).

33002528 12/2018 63
Fonctionnement des EF de communication

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 (voir page 43) des paramètres de gestion permet
également d'annuler une fonction de communication asynchrone.

64 33002528 12/2018
Fonctionnement des EF de communication

Sous-chapitre 3.5
Informations générales sur les fonctions de communication M580

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.

Contenu de ce sous-chapitre
Ce sous-chapitre contient les sujets suivants :
Sujet Page
Règles d'utilisation des fonctions de communication des UC M580 66
Fonctions de communication sur les automates M580 68

33002528 12/2018 65
Fonctionnement des EF de 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 (voir page 38).

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.

66 33002528 12/2018
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_en-
able_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.

33002528 12/2018 67
Fonctionnement des EF de 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.
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é.

68 33002528 12/2018
Fonctionnement des EF de communication

Nom Rôle

RESTORE_PARAM_MX (2) (3) Restaurer les mots de paramètre d'un module d'E/S Modicon X80 connecté sur
un rack local en effectuant un échange explicite.

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 (voir page 43) des paramètres de gestion permet
également d'annuler une fonction de communication asynchrone.

NOTE :
 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 12/2018 69
Fonctionnement des EF de communication

Sous-chapitre 3.6
Informations générales sur les fonctions de communication Momentum

Informations générales sur les fonctions de communication


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 (voir page 36).

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/IP-Ethernet.
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.

70 33002528 12/2018
EcoStruxure™ Control Expert
Etendu
33002528 12/2018

Partie II
Etendu

Etendu

Objet de cette partie


Cette section décrit les fonctions et blocs fonction élémentaires de la famille Etendu.

Contenu de cette partie


Cette partie contient les chapitres suivants :
Chapitre Titre du chapitre Page
4 ADDM : Conversion d'adresses 73
5 ADDMX : conversion d'adresses 79
6 ADDR : conversion d'adresse 87
7 CANCEL : arrêt d'un échange en cours 89
8 CLOSE_TCP_CNX : Fermeture de connexions TCP 93
9 CREAD_REG : Lecture de registres en continu 97
10 CWRITE_REG : Ecriture de registres en continu 105
11 DATA_EXCH : échange de données entre applications 113
12 ETH_PORT_CTRL : activation ou désactivation d'un protocole 127
13 EthPort_Control_MX : activation ou désactivation d'un protocole 133
14 EXCH_QX : échange de données entre des applications sur le bus EIO 137
15 INPUT_BYTE : réception de chaînes de caractères 143
16 INPUT_CHAR : réception de chaînes de caractères 149
17 INPUT_CHAR_QX : réception de chaînes de caractères sur le bus EIO 161
18 MBP_MSTR : Maître Modbus Plus 167
19 ModbusP_ADDR : Adresse Modbus Plus 215
20 OUT_IN_CHAR : envoi/réception de chaînes de caractères 221
21 OUT_IN_MBUS : Fonction de communication Modbus 229
22 PRINT_CHAR : Envoi de chaînes de caractères 267
23 PRINT_CHAR_QX : envoi de chaînes de caractères sur le bus EIO 279
24 RCV_TLG : Réception de télégrammes 283
25 READ_ASYN : Lecture asynchrone de données 289
26 READ_GDATA : Lecture de Global Data Modbus Plus 293
27 READ_REG : Lecture de registre 295
28 READ_REG_QX : lecture de registre sur le bus EIO 305

33002528 12/2018 71
Etendu

Chapitre Titre du chapitre Page


29 READ_SDO : objet de données du service de lecture 309
30 READ_VAR : Lecture de variables 313
31 SEND_EMAIL : envoi d'un message électronique 335
32 SEND_REQ : Envoi de requêtes 339
33 SEND_TLG : Envoi de télégrammes 357
34 SYMAX_IP_ADDR : Adresse IP SY/MAX 363
35 TCP_IP_ADDR : Adresse TCP/IP 369
36 UNITE_SERVER : Serveur immédiat 375
37 WRITE_ASYN : Ecriture asynchone de données 381
38 WRITE_GDATA : Ecriture de Global Data Modbus Plus 387
39 WRITE_REG : Ecriture de registre 389
40 WRITE_REG_QX : écriture de registre sur le bus EIO 399
41 WRITE_SDO : objet de données du service d'écriture 403
42 WRITE_VAR : Ecriture de variables 407
43 XMIT: Transmit 423
44 XXMIT : Transmission 445

72 33002528 12/2018
EcoStruxure™ Control Expert
ADDM
33002528 12/2018

Chapitre 4
ADDM : Conversion d'adresses

ADDM : Conversion d'adresses

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

Représentation en LD

Représentation en IL
LD Addr_String
ADDM
ST Addr_Array

Représentation en ST
Addr_Array := ADDM(Addr_String);

33002528 12/2018 73
ADDM

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 :

Port de sortie utilisé localement Equipement cible Service à joindre au niveau de


pour joindre l'équipement cible : l'équipement cible :
 r.m.c  SYS
 Lien réseau  {adresse_hôte}  MBS
 nœud  SMTP
NOTE : dans le premier cas, le  TCP.MBS
 {adresse_hôte}nœud
numéro de la voie c est facultatif.  CON.CIP
 UNC.CIP

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.

74 33002528 12/2018
ADDM

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
'{hostAddr}SYS' plus proche de l'UC.
'{hostAddr}TCP.MBS' Exemple : ADDM('{192.168.2.3}TCP.MBS').
'Netlink{hostAddr}' Permet d'accéder à l'hôte (hostAddr) via le réseau Ethernet
'Netlink{hostAddr}SYS' (Netlink) défini dans le navigateur de projet de Control Expert, sous
'Netlink{hostAddr}TCP.MBS' Communication → Réseaux.
Exemple : ADDM('Ethernet_1{192.168.2.3}SYS').
'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
'r.m.c{hostAddr}SYS' voie du module Ethernet.
'r.m.c{hostAddr}TCP.MBS' Exemple : ADDM('0.0.3{192.168.2.3}').
'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' Permet d'accéder à un équipement via un réseau Ethernet/IP. Le
'r.m.c{hostAddr}UNC.CIP' 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' Permet d'accéder au système d'une voie Modbus ou d'envoyer des
'r.m.c.SYS' données via une liaison en mode caractère.
NOTE : c= 0 ou 1.
Exemple : ADDM('1.5.0.SYS').
'r.m.c.e' Permet d'accéder au serveur de l'équipement esclave sur liaison
'r.m.c.e.MBS' 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 Permet d'accéder au serveur e de l'esclave CANopen.
CANopen intégré : '0.0.2.e'
NOTE : e=1 à 127.
Exemple : ADDM('10.0.2.67').

33002528 12/2018 75
ADDM

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 ADDM('0.3.0{192.168.100.10}')
liaison Ethernet NOE ADDM('Ethernet_1{192.168.100.10}')
Equipement Modbus n° 4 derrière une passerelle ADDM('0.3.0{192.168.100.18}4')
Ethernet dont l'adresse est 192.168.100.18 sur une ADDM('Ethernet_1{192.168.100.18}4')
liaison Ethernet NOE

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.

ATTENTION
FONCTIONNEMENT 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.

76 33002528 12/2018
ADDM

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
Tableau de 8 entiers utilisable par plusieurs fonctions de communication comme
paramètre d'entrée.

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 :

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é.

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.

33002528 12/2018 77
ADDM

78 33002528 12/2018
EcoStruxure™ Control Expert
ADDMX
33002528 12/2018

Chapitre 5
ADDMX : conversion d'adresses

ADDMX : conversion d'adresses

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 :
 READ_STS_MX
 WRITE_CMD_MX
 READ_PARAM_MX
 RESTORE_PARAM_MX
 SAVE_PARAM_MX
 WRITE_PARAM_MX
 INPUT_CHAR
 PRINT_CHAR
 READ_VAR
 WRITE_VAR
 INPUT_BYTE
 DATA_EXCH
 SEND_EMAIL

Les paramètres supplémentaires EN et ENO peuvent être configurés.

33002528 12/2018 79
ADDMX

Représentation en FBD

Représentation en LD

Représentation en IL
ADDMX (
IN := InputADDMX
)
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 Chaîne conforme à la syntaxe des adresses d'équipement Control Expert,
caractères 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.

80 33002528 12/2018
ADDMX

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).
{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.
\\ 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 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.
MBS Elément facultatif permettant d'adresser un serveur Modbus si le module NOM n'est pas un
maître Modbus.

33002528 12/2018 81
ADDMX

Exemples de station Quantum :

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 ADDMX('1.4.1{192.168.100.31}\\0.3.1.15')
sur la station n° 5

82 33002528 12/2018
ADDMX

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 ADDMX('0.0.3{192.168.100.31}\\0.1.1.15')
dans la station 5

33002528 12/2018 83
ADDMX

Le tableau suivant décrit le paramètre de sortie :

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.

84 33002528 12/2018
ADDMX

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 :
 0 : protocole Modbus
 2 : protocole utilisateur
 3 : SMTP

AddrLen 1 octet 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
L'utilisation de paramètres réservés relève de la responsabilité de l'utilisateur et peut provoquer
des dysfonctionnements.
Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des
dommages matériels.

ATTENTION
FONCTIONNEMENT 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.

33002528 12/2018 85
ADDMX

86 33002528 12/2018
EcoStruxure™ Control Expert
ADDR
33002528 12/2018

Chapitre 6
ADDR : conversion d'adresse

ADDR : conversion d'adresse

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 :

Représentation en LD
Représentation :

Représentation en IL
Représentation :
LD Addr_String
ADDR
ST Addr_Array

33002528 12/2018 87
ADDR

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 :

Paramètre Type Commentaire


OUT ADDR_TYPE Tableau composé de 6 entiers représentant l'adresse
ou Addr_String.
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.

88 33002528 12/2018
EcoStruxure™ Control Expert
CANCEL
33002528 12/2018

Chapitre 7
CANCEL : arrêt d'un échange en cours

CANCEL : arrêt d'un échange en cours

Objet de ce chapitre
Ce chapitre décrit la fonction CANCEL.

Contenu de ce chapitre
Ce chapitre contient les sujets suivants :
Sujet Page
Description 90
Exemple d'annulation d'un échange 92

33002528 12/2018 89
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.
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éinitiali-
sation 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 :

90 33002528 12/2018
CANCEL

Représentation en LD
Représentation :

Représentation en IL
Représentation :
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.

33002528 12/2018 91
CANCEL

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.

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 :

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.

92 33002528 12/2018
EcoStruxure™ Control Expert
CLOSE_TCP_CNX
33002528 12/2018

Chapitre 8
CLOSE_TCP_CNX : Fermeture de connexions TCP

CLOSE_TCP_CNX : Fermeture de connexions TCP

Description

Description fonctionnelle
Utilisez le bloc fonction élémentaire CLOSE_TCP_CNX pour fermer les connexions TPC ouvertes.

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.

33002528 12/2018 93
CLOSE_TCP_CNX

Paramètres d'entrée et de sortie :

Paramètre Type de Description


données
GEST ARRAY [0..3] Table de gestion de l'échange composée des mots suivants :
OF INT  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, reportez-vous à la
description de la structure des paramètres de gestion (voir page 42).)
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 (voir page 530).

Paramètres de sortie :

Paramètre Type de Description


données
CNX_STATUS word Ce mot fournit l'état détaillé du service après son exécution :
 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]).

94 33002528 12/2018
CLOSE_TCP_CNX

Utilisation de l'EFB
Pour utiliser le bloc fonction élémentaire CLOSE_TCP_CNX :

Etape 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 12/2018 95
CLOSE_TCP_CNX

96 33002528 12/2018
EcoStruxure™ Control Expert
CREAD_REG
33002528 12/2018

Chapitre 9
CREAD_REG : Lecture de registres en continu

CREAD_REG : Lecture de registres en continu

Présentation
Ce chapitre décrit le bloc CREAD_REG.

Contenu de ce chapitre
Ce chapitre contient les sujets suivants :
Sujet Page
Description 98
Types de données dérivés 101
Mode de fonctionnement 103
Description des paramètres 104

33002528 12/2018 97
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.
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 :

98 33002528 12/2018
CREAD_REG

Représentation en LD
Représentation :

Représentation en IL
Représentation :
CAL CREAD_REG_Instance (SLAVEREG:=OffsetAddress, NO_REG:=NumberOfReg
isters, ADDRFLD:=DataStructure, REG_READ=>RegisterToRead, STATUS=>Er
rorCode)

Représentation en ST
Représentation :
CREAD_REG_Instance (SLAVEREG:=OffsetAddress, NO_REG:=NumberOfRegiste
rs, ADDRFLD:=DataStructure, REG_READ=>RegisterToRead, STATUS=>ErrorC
ode) ;

33002528 12/2018 99
CREAD_REG

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 (voir page 530) 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 (voir page 528)

100 33002528 12/2018


CREAD_REG

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
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 12/2018 101


CREAD_REG

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é

102 33002528 12/2018


CREAD_REG

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.
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.

33002528 12/2018 103


CREAD_REG

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.

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 (voir page 530) 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.

104 33002528 12/2018


EcoStruxure™ Control Expert
CWRITE_REG
33002528 12/2018

Chapitre 10
CWRITE_REG : Ecriture de registres en continu

CWRITE_REG : Ecriture de registres en continu

Présentation
Ce chapitre décrit le bloc CWRITE_REG.

Contenu de ce chapitre
Ce chapitre contient les sujets suivants :
Sujet Page
Description 106
Types de données dérivés 109
Mode de fonctionnement 111
Description des paramètres 112

33002528 12/2018 105


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.
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 :

106 33002528 12/2018


CWRITE_REG

Représentation en LD
Représentation :

Représentation en IL
Représentation :
CAL CWRITE_REG_Instance (SLAVEREG:=OffsetAddress, NO_REG:=NumberOfRe
gisters, REG_WRIT:=SourceDataArea, ADDRFLD:=DataStructure, STATUS=>E
rrorCode)

Représentation en ST
Représentation :
CWRITE_REG_Instance ( SLAVEREG:=OffsetAddress, NO_REG:=NumberOfRegis
ters, REG_WRIT:=SourceDataArea, ADDRFLD:=DataStructure, STATUS=>Erro
rCode) ;

33002528 12/2018 107


CWRITE_REG

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 :

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 (voir page 530) 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 (voir page 528)

108 33002528 12/2018


CWRITE_REG

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 :

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

33002528 12/2018 109


CWRITE_REG

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é

110 33002528 12/2018


CWRITE_REG

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) 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.

33002528 12/2018 111


CWRITE_REG

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.

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 (voir page 530) 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 12/2018


EcoStruxure™ Control Expert
DATA_EXCH
33002528 12/2018

Chapitre 11
DATA_EXCH : échange de données entre applications

DATA_EXCH : échange de données entre applications

Objet de ce chapitre
Ce chapitre décrit la fonction DATA_EXCH.

Contenu de ce chapitre
Ce chapitre contient les sujets suivants :
Sujet Page
Description 114
Ecran de saisie assistée 119
Exemple d'utilisation d'un réseau Fipway 121
Exemple d'activation/désactivation du service HTTP ou FTP/TFTP 123

33002528 12/2018 113


DATA_EXCH

Description

Description de la fonction
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.

Représentation en FBD
Représentation :

114 33002528 12/2018


DATA_EXCH

Représentation en LD
Représentation :

Représentation en IL
Représentation :
LD Address
DATA_EXCH Action, Data_to_Send, Management_Param,
Received_Data

Représentation en ST
Représentation :
DATA_EXCH(Address, Action, Data_to_Send, Management_Param,
Received_Data);

33002528 12/2018 115


DATA_EXCH

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 Adresse de l’entité destinataire de l’échange. Si le paramètre
Premium Action est de type émission/réception, les adresses de diffusion
ARRAY [0..7] OF INT pour sont interdites.
Modicon M340 et M580 Pour l'UC Premium :
 Utilisez la fonction ADDR (voir page 87).

Pour l'UC Modicon M340 :


 Utilisez la fonction ADDM (voir 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 :
 Adresse de l'entité cible de l'opération d'échange, résultat de
la fonction ADDMX (voir page 79).
TYP INT 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 :


 1 : émission suivie d'une mise en attente pour la réception.
EMIS ARRAY [n…m] OF INT 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.

116 33002528 12/2018


DATA_EXCH

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. Cette méthode permet
d'annuler la fonction de communication sans utiliser la fonction
élémentaire CANCEL (voir page 89).
 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 (voir page 42).

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 (voir page 48).
NOTE : même si l'action est une simple émission, assurez-vous que
la 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 est utilisable 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.

33002528 12/2018 117


DATA_EXCH

Le tableau ci-après indique la longueur pour tous les ports de communication :

Port Longueur
Ethernet (NOE ou port intégré) 1 Ko
Modbus 256 octets

La longueur du message à envoyer ou à recevoir est indiquée dans le quatrième mot du tableau
de gestion (voir page 48).
Le bloc de conversion ADDM permet d'indiquer la destination de la requête.
Consultez la fonction ADDM (voir page 73).
NOTE : indiquez le mot-clé TCP.MBS lorsque la fonction élémentaire DATA_EXCH est utilisée pour
les commandes Modbus par Ethernet.
Les autres entités Ethernet ne sont pas prises en charge. La fonction élémentaire DATA_EXCH ne
gère pas directement une connexion sur 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 : écrire 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 *)
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 *)

118 33002528 12/2018


DATA_EXCH

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 :

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.

33002528 12/2018 119


DATA_EXCH

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.

120 33002528 12/2018


DATA_EXCH

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);
END_IF;

33002528 12/2018 121


DATA_EXCH

Paramètres de la requête :

Paramètres Description
ADDR('{20.2}APP')  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 Description
ADDR('{20.1}APP')  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.

122 33002528 12/2018


DATA_EXCH

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 (voir page 114) 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 (voir page 127) 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 (voir page 127).

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é.

Variable Type Description


Address ARRAY [0..5] of INT pour Premium Adresse de l’entité destinataire de l’échange. Si le
ARRAY [0..7] of INT pour M340 paramètre Action est de type émission/réception, les
adresses de diffusion sont interdites.
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.

33002528 12/2018 123


DATA_EXCH

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 Description Valeur (hexa)


Data_to_Send[0]  Octet de poids fort = 16#00 16#005A
 Octet de poids faible = code de requête (16#5A)

Data_to_Send[1]  Octet de poids fort = 16#01 16#016E


 Octet de poids faible = code de sous-requête (16#6E)

Data_to_Send[2]  Octet de poids faible = commande de service Ethernet (16#xx) sur 16#00xx sur
M340/M580. 16#00 sur Premium M340/M580
 Octet de poids fort = commande de service Ethernet (16#xx) sur 16#xx00 sur
Premium. 16#00 sur M340/M580 Premium
Les valeurs de commande du service Ethernet peuvent être :
 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

Data_to_Send[3]  Octet de poids fort = réservé (16#00) 16#0000


 Octet de poids faible = réservé (16#00)

124 33002528 12/2018


DATA_EXCH

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 Description Valeur (hexa)


Management_Param[0]  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

Management_Param[1]  Octet de poids fort = Rapport d'opération (voir page 46), -


spécifié par le système
 Octet de poids faible = Rapport de communication
(voir page 45), spécifié par le système
Management_Param[2] le timeout peut prendre n'importe quelle valeur. La base du timeout 16#0064
étant de 100 ms, dans cet exemple, le timeout est réglé sur
10 secondes.
Management_Param[3]  Octet de poids fort = longueur (16#00) 16#0008
 Octet de poids faible = longueur (16#08)

NOTE : la longueur doit être réglée sur une valeur de 8 octets.

33002528 12/2018 125


DATA_EXCH

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 (voir page 128) de
l'EFB ETH_PORT_CTRL (voir page 127).
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é.

126 33002528 12/2018


EcoStruxure™ Control Expert
ETH_PORT_CTRL
33002528 12/2018

Chapitre 12
ETH_PORT_CTRL : activation ou désactivation d'un protocole

ETH_PORT_CTRL : activation ou désactivation d'un protocole

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.

Représentation en FBD
Représentation :

Représentation en LD
Représentation :

33002528 12/2018 127


ETH_PORT_CTRL

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
=> 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
(voir page 79), ADDMX ou ADDM (voir page 73). Exemple :
 ADDM('0.0.10') pour une CPU M580
 ADDM('0.3.0') pour un module BMENOC0301/11 à l'emplacement 3
du rack principal
ETH_SCE WORD 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).

128 33002528 12/2018


ETH_PORT_CTRL

Le tableau suivant décrit les paramètres de sortie :

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.
STATUS WORD Code fournissant l'identification de l'erreur détectée (voir page 530).
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)

33002528 12/2018 129


ETH_PORT_CTRL

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*
 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

130 33002528 12/2018


ETH_PORT_CTRL

Utilisation de l'EFB ETH_PORT_CTRL


Pour utiliser l'EFB ETH_PORT_CTRL, procédez comme suit :

Etape 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 12/2018 131


ETH_PORT_CTRL

132 33002528 12/2018


EcoStruxure™ Control Expert
EthPort_Control_MX
33002528 12/2018

Chapitre 13
EthPort_Control_MX : activation ou désactivation d'un protocole

EthPort_Control_MX : activation ou désactivation d'un


protocole

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.

Représentation en FBD
Représentation :

33002528 12/2018 133


EthPort_Control_MX

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);

134 33002528 12/2018


EthPort_Control_MX

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
(voir page 73) ou ADDMX (voir page 79).
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 :
 3 : format d'adresse incorrect
 -1 : paramètres non valides
 0 : réussite

33002528 12/2018 135


EthPort_Control_MX

136 33002528 12/2018


EcoStruxure™ Control Expert
EXCH_QX
33002528 12/2018

Chapitre 14
EXCH_QX : échange de données entre des applications sur le bus EIO

EXCH_QX : échange de données entre des applications sur le


bus EIO

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.

33002528 12/2018 137


EXCH_QX

Représentation en FBD
Représentation :

Représentation en LD
Représentation :

138 33002528 12/2018


EXCH_QX

Représentation en IL
Représentation :
CAL EXCH_QX_Instance (ENABLE:=ExchQxEnable, ABORT:=ExchQxAbort,
ADDR:=ModuleAddress, SEND_BYTE:=NbBytesToSend, SEND_BUFFER:=ExchQxData-
Source, 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:=ExchQxData-
Source, 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 (voir page 79).
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 :

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 (voir page 530) 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.)

33002528 12/2018 139


EXCH_QX

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 *)
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. *)

140 33002528 12/2018


EXCH_QX

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*)

33002528 12/2018 141


EXCH_QX

142 33002528 12/2018


EcoStruxure™ Control Expert
INPUT_BYTE
33002528 12/2018

Chapitre 15
INPUT_BYTE : réception de chaînes de caractères

INPUT_BYTE : réception de chaînes de caractères

Description

Description de la fonction
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 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 Modicon M340 et M580 CPU, cette fonction permet de recevoir jusqu'à 1024 octets.
Deux possibilités s'offrent à vous :
 Lire plusieurs octets : aucune condition n'est à configurer.
 Lire un message : une condition d'arrêt doit être définie dans l'écran de configuration

Les paramètres supplémentaires EN et ENO peuvent être configurés.

Représentation en FBD
Représentation :

33002528 12/2018 143


INPUT_BYTE

Représentation en LD
Représentation :

Représentation en IL
Représentation :
LD Address
INPUT_BYTE Raz, Buffer_Length, Management_Param, Received_Data

Représentation en ST
Représentation :
INPUT_BYTE(Address, Raz, Buffer_Length, Management_Param, Received_Data
);

144 33002528 12/2018


INPUT_BYTE

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 Pour l'automate Premium :
Premium  L'adresse de la voie (en mode caractères) de réception du
ARRAY [0..7] OF INT pour message est indiquée par la fonction ADDR (voir page 87).
Modicon M340 et M580  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 (voir page 73).
 La syntaxe de l'adresse est du 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 l'UC (CPU) Modicon M580 :
 Adresse de l'entité cible de l'opération d'entrée, résultat de la
fonction ADDMX (voir page 79).
RAZ INT 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 : la valeur doit être égale à 1 pour les


communications au niveau du port terminal des automates
Premium.
REMARQUE : sur les automates Modicon M340 et M580 CPU,
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 : 0 est la seule valeur autorisée pour les


communications au niveau du port terminal des automates
Premium. Le caractère de fin de message par défaut est un retour
chariot (CR).

33002528 12/2018 145


INPUT_BYTE

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 (voir page 42).

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 de la table de gestion.

146 33002528 12/2018


INPUT_BYTE

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
et 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.
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 UC (CPU) Modicon M340 et M580, 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 12/2018 147


INPUT_BYTE

148 33002528 12/2018


EcoStruxure™ Control Expert
INPUT_CHAR
33002528 12/2018

Chapitre 16
INPUT_CHAR : réception de chaînes de caractères

INPUT_CHAR : réception de chaînes de caractères

Objet de ce chapitre
Ce chapitre décrit la fonction INPUT_CHAR.

Contenu de ce chapitre
Ce chapitre contient les sujets suivants :
Sujet Page
Description 150
Ecran de saisie assistée 155
Exemple de lecture de chaînes de caractères via un réseau Fipway 157
Exemple de lecture de chaînes de caractères via une liaison série de processeurs 159
Modicon M340

33002528 12/2018 149


INPUT_CHAR

Description

Description de la fonction
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.
Sur 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 plusieurs caractères : aucune condition n'est à configurer.
 Lire un message : une condition d'arrêt doit être définie dans l'écran de configuration

Les paramètres supplémentaires EN et ENO peuvent être configurés.

Représentation en FBD
Représentation :

150 33002528 12/2018


INPUT_CHAR

Représentation en LD
Représentation :

Représentation en IL
Représentation :
LD Address
INPUT_CHAR Raz, String_Length, Management_Param, Received_Data

Représentation en ST
Représentation :
INPUT_CHAR(Address, Raz, String_Length, Management_Param, Received_Data
);

33002528 12/2018 151


INPUT_CHAR

Description des paramètres


Le tableau suivant décrit les paramètres d’entrée :

Paramètre Type Commentaire


ADR ARRAY [0..5] OF Pour l'automate Premium :
INT for Premium  L'adresse de la voie (en mode caractères) de réception du
ARRAY [0..7] OF message est indiquée par la fonction ADDR (voir page 87).
INT for Modicon M340  Seules les adresses se terminant par SYS sont valides (par
and M580 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 (voir 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 :
 Adresse de l'entité cible de l'opération d'entrée, résultat de la
fonction ADDMX (voir page 79).
RAZ INT 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 : la valeur doit être égale à 1 pour les communications


au niveau du port terminal des automates Premium.
REMARQUE : sur les automates 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 : 0 est la seule valeur autorisée pour les


communications au niveau du port terminal des automates Premium.
Le caractère de fin de message par défaut est un retour chariot (CR).

152 33002528 12/2018


INPUT_CHAR

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), 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 (voir page 42).

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
de la table 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 traitement de la fonction.
Le système reçoit la chaîne de manière cohérente sur plusieurs fragments.
33002528 12/2018 153
INPUT_CHAR

Sur les 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 : lorsque vous utilisez l'EF INPUT_CHAR 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 tampon est de 1 024. Lorsqu'il 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 tampon de l'anneau est presque plein, l'UC réinitialise son signal RTS pour
interrompre l'envoi des caractères.

AVERTISSEMENT
PERTE DE DONNEES
En mode de gestion RTS/CTS, le nombre maximum de caractères pouvant être envoyés par
l'équipement distant dans une chaîne est de 1 000 (caractère de fin inclus). Si une chaîne de plus
de 1 000 caractères est émise (par exemple 1 013), le RTS ne permettra de recevoir que les
1 000 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).
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 1 000 caractères (1 013 par exemple),
vous devez envoyer deux chaînes, la première envoyant les 1 000 premiers caractères et la
seconde les 13 caractères restants par exemple.

154 33002528 12/2018


INPUT_CHAR

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é.

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.

33002528 12/2018 155


INPUT_CHAR

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.

156 33002528 12/2018


INPUT_CHAR

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.

33002528 12/2018 157


INPUT_CHAR

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 :

Paramètres Description
ADDR(‘{20.5}0.0.0.SYS’)  {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

158 33002528 12/2018


INPUT_CHAR

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.

Figure
Un automate Modicon M340 est relié à un terminal de saisie/d'affichage de données TM8501 :

33002528 12/2018 159


INPUT_CHAR

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 Description
ADDM('0.0.0')  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

160 33002528 12/2018


EcoStruxure™ Control Expert
INPUT_CHAR_QX
33002528 12/2018

Chapitre 17
INPUT_CHAR_QX : réception de chaînes de caractères sur le bus EIO

INPUT_CHAR_QX : réception de chaînes de caractères sur le


bus EIO

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 12/2018 161


INPUT_CHAR_QX

Représentation en FBD
Représentation :

Représentation en LD
Représentation :

162 33002528 12/2018


INPUT_CHAR_QX

Représentation en IL
Représentation :
CAL INPUT_CHAR_QX_Instance (ENABLE:=InputCharEnable,
ABORT:=InputCharAbort, ADDR:=ModuleAddress, RESET_BUF:=ResetInput-
Buffer, 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=>InputChar-
Active, ERROR=>InputCharFaulty, STATUS=>ErrorCode,
REC_LEN=>NbCharReceived, REC_BUF=>ReceivedBuffer)

33002528 12/2018 163


INPUT_CHAR_QX

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 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 (voir page 79).
RESET_BUF BOOL Ce paramètre permet de réinitialiser la mémoire de réception :
 0: aucune réinitialisation de la mémoire
 1: réinitialisation de la mémoire
INPUT_LEN INT 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 :

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 (voir page 530) si une erreur est détectée par le
bloc fonction.
REC_LEN INT Nombre de caractères reçus.
REC_BUF ANY Caractères reçus.

164 33002528 12/2018


INPUT_CHAR_QX

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.

AVERTISSEMENT
PERTES DE DONNEES
Lors de l'utilisation de la gestion RTS/CTS, le nombre maximum de caractères dans une chaîne
autorisés pour l'émission par l'équipement distant s'élève à 1 000 (caractère de fin inclus). 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.
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 12/2018 165


INPUT_CHAR_QX

166 33002528 12/2018


EcoStruxure™ Control Expert
MBP_MSTR
33002528 12/2018

Chapitre 18
MBP_MSTR : Maître Modbus Plus

MBP_MSTR : Maître Modbus Plus

Présentation
Ce chapitre décrit le bloc MBP_MSTR.

Contenu de ce chapitre
Ce chapitre contient les sujets suivants :
Sujet Page
Description du bloc 168
Codes de fonction des opérations 172
Structures du bloc de commande de réseau 173
Lecture de données 176
Ecriture de données 178
Extraction de statistiques locales 180
Suppression de statistiques locales 181
Ecriture de données globales 182
Lecture de données globales 183
Lire statistiques distantes 184
Effacer statistiques distantes 186
Validité de Peer Cop 187
Réinitialisation du module optionnel 188
Lecture de la CTE 189
Ecriture de la CTE 191
Envoi de messages électroniques 193
Envoi d'une requête Modbus 195
Requête de clôture d'une connexion 200
Lecture/écriture de données 201
Activation et désactivation des services HTTP ou FTP/TFTP 203
Etat d'intégrité des communications Peer Cop 205
Statistiques du réseau Modbus Plus 207
Statistiques de réseau Ethernet TCP/IP 212

33002528 12/2018 167


MBP_MSTR

Description du bloc

Description de la fonction
Vous pouvez sélectionner l'une des 14 opérations de communication réseau disponibles
(voir page 172) à l'aide du bloc fonction MBP_MSTR.
Le bloc MBP_MSTR est pris en charge sur diverses plates-formes matérielles (voir page 31).
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.

168 33002528 12/2018


MBP_MSTR

Exemple :
 Vous pouvez envoyer MBP_MSTR.Enable:=(HSBY_NOEPLCMSTR_ON) AND (%SW61.1) AND
NOT (%SW61.0).
ou
 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.
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

33002528 12/2018 169


MBP_MSTR

Représentation en LD

Paramètres d'entrée

Paramètre Type de Description


données
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 (voir page 172) est abandonnée.

170 33002528 12/2018


MBP_MSTR

Paramètres de sortie

Paramètre Type de Description


données
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.
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 (voir page 172). 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é (voir page 173).
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 (voir page 530) 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 (voir page 528).

33002528 12/2018 171


MBP_MSTR

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 Opération Modbus TCP/IP SY/MAX CIP


fonction Plus Ethernet Ethernet Ethernet
1 Ecriture de données X X X -
2 Lecture de données X X X -
3 Extraction de statistiques locales X X - -
4 Suppression de statistiques locales X X - -
5 Ecriture de données globales, Peer Cop (voir page 182) X - - -
6 Lecture de données globales, Peer Cop (voir page 183) X - - -
7 Obtention de statistiques distantes X X - -
8 Suppression de statistiques distantes (voir page 186) X X - -
9 Etat de validité de Peer Cop (voir page 187) 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 (voir page 193) - X - -
14 Message explicite CIP (voir Quantum sous - - - X
EcoStruxure™ Control Expert, Module de
communication EtherNet/IP 140 NOC 771 00, Manuel
utilisateur)
15 Envoi d'une requête Modbus (voir page 195) - X - -
16 Requête de clôture d'une connexion (voir page 200) - X - -
17 Modification de l'adresse Modbus Plus (voir Quantum X - - -
sous EcoStruxure™ Control Expert, Modules réseau
Ethernet, Manuel utilisateur)
23 Lecture/écriture de données (voir page 201) - X - -
65520 (déc) Activation/désactivation de HTTP ou FTP/TFTP - X - -
FFF0 (hex)

où :
 X signifie Oui
 - signifie Non

172 33002528 12/2018


MBP_MSTR

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] 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.
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)

33002528 12/2018 173


MBP_MSTR

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
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).

174 33002528 12/2018


MBP_MSTR

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).
COMMANDE[6] Numéro de station cible (ou réglé sur FF hex)
COMMANDE[7] Terminaison (réglée sur FF hex)

33002528 12/2018 175


MBP_MSTR

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 (voir page 172).
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 (voir page 173).
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.
COMMANDE[9] Le dernier octet du chemin de routage qui n'est pas réglé sur 0 est le nœud cible.

176 33002528 12/2018


MBP_MSTR

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
 Octet de poids fort : emplacement du module adaptateur réseau
 Octet de poids faible : index de mappage MET (MBP on Ethernet Transporter)

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]

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 :
 Octet de poids fort : emplacement du module adaptateur réseau
 Octet de poids faible : numéro de station cible

COMMANDE[6] Terminaison : FF hexadécimal


...
COMMANDE[9]

33002528 12/2018 177


MBP_MSTR

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 (voir page 172).
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 (voir page 173).
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.
COMMANDE[9] Le dernier octet du chemin de routage qui n'est pas réglé sur 0 est le nœud cible.

178 33002528 12/2018


MBP_MSTR

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 :
 Octet de poids fort : emplacement du module adaptateur réseau
 Octet de poids faible : index de mappage MET (MBP on Ethernet transporter)

COMMANDE[6] 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 :
 Octet de poids fort : emplacement du module adaptateur réseau
 Octet de poids faible : numéro de station cible

COMMANDE[6] Terminaison : FF hexadécimal


...
COMMANDE[9]

33002528 12/2018 179


MBP_MSTR

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 (voir page 172).

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 (voir page 212).

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).
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]

180 33002528 12/2018


MBP_MSTR

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 (voir page 172).

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 (voir page 212).

Utilisation du bloc de commande pour Modbus Plus

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] 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]

33002528 12/2018 181


MBP_MSTR

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
(voir page 183).
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 (voir page 172).

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.

182 33002528 12/2018


MBP_MSTR

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 (voir page 182).
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 (voir page 172).

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.

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.

33002528 12/2018 183


MBP_MSTR

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 (voir page 172).

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.

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]

184 33002528 12/2018


MBP_MSTR

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]

33002528 12/2018 185


MBP_MSTR

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
(voir page 172).

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 (voir page 212).

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.
COMMANDE[9] 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] 8 = suppression de statistiques distantes
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] 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]

186 33002528 12/2018


MBP_MSTR

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 (voir page 172).
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

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)
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.

33002528 12/2018 187


MBP_MSTR

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
(voir page 172).

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 (voir page 212) 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 (voir page 174)
COMMANDE[6] Aucune signification
...
COMMANDE[9]

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 (voir page 175)
COMMANDE[6] Aucune signification
...
COMMANDE[9]

188 33002528 12/2018


MBP_MSTR

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 (voir page 170) 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
(voir page 172).

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.

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]

33002528 12/2018 189


MBP_MSTR

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]

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 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
Masque réseau inférieur DATABUF[5] Mot de poids fort
DATABUF[6] Mot de poids faible
Passerelle 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

190 33002528 12/2018


MBP_MSTR

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 (voir page 172).

Implémentation réseau
L'opération d'écriture de la CTE peut être réalisée sur des réseaux Ethernet TCP/IP
(voir page 212) et Ethernet SY/MAX.

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]

33002528 12/2018 191


MBP_MSTR

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]

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 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
Masque réseau DATABUF[5] Mot de poids fort
inférieur
DATABUF[6] Mot de poids faible
Passerelle 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

192 33002528 12/2018


MBP_MSTR

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 :
 le nom de l'expéditeur,
 Liste des destinataires
 Objet

Pour programmer un bloc MBP_MSTR afin qu'il envoie un message électronique, utilisez le code
fonction 13 (voir page 172).

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 (voir page 542)
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 12/2018 193


MBP_MSTR

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
DATABUF 119 électronique. Les caractères restants (2 * N -2 - n) font partie du corps du
message, N étant le nombre de mots transférés.

194 33002528 12/2018


MBP_MSTR

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 (voir page 168) :
 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 (voir page 195) et Tampon de données (voir page 196)).
 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)

33002528 12/2018 195


MBP_MSTR

Mot Description
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 :

DATABUF PDU de la requête Modbus :


La longueur du tampon de La longueur de la réponse de données est définie dans le mot CONTROL[10].
données est définie dans le PDU de la réponse Modbus :
mot CONTROL[3]. 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.

196 33002528 12/2018


MBP_MSTR

Requête Modbus
Le format de la PDU de la requête Modbus est le suivant :

Offset d'octet Champ Type de Description


données
1 Code fonction BYTE Code fonction Modbus
2 Données de la Zone BYTE Ce champ dépend du code fonction et contient des
requête 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 :

Offset d'octet Champ Type de Description


données
1 Code fonction BYTE Code fonction Modbus
2 Données de la Zone BYTE Ce champ dépend du code fonction et contient des
réponse 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 Description


données
1 Code fonction BYTE Code fonction Modbus + 80 (hexadécimal)
2 Code d'exception BYTE Ce champ est défini dans la Spécification du protocole
code 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.

33002528 12/2018 197


MBP_MSTR

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

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

198 33002528 12/2018


MBP_MSTR

Le codage des données dans le tampon de données est le suivant :

Champ Valeur Description


(hexadécimale)
Requête 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
DATABUF[5] 0000 Valeur de type Null
Réponse 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

33002528 12/2018 199


MBP_MSTR

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 (voir page 168):
 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 (voir page 171) CONTROL et DATABUF identifient l'opération.
 EN et ENO peuvent être configurés comme paramètres supplémentaires.

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 (voir page 530) (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)

200 33002528 12/2018


MBP_MSTR

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 (voir page 172).
L'opération combinée de lecture/écriture peut être utilisée uniquement avec ces modèles :
 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 12/2018 201


MBP_MSTR

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.

202 33002528 12/2018


MBP_MSTR

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 (voir page 212).

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] Définir ce registre sur 1
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

33002528 12/2018 203


MBP_MSTR

Registre Signification
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 Action tentée à l'aide de Résultat


Control Expert MSTR avec le code
opération 65520
(décimal)
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
 Une nouvelle application est téléchargée et le service
est désactivé par configuration
Activer MSTR renvoie le code d'erreur 0x4001 (même état).
Aucun changement effectué

204 33002528 12/2018


MBP_MSTR

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 (voir page 172).

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 Index des Relation entre les bits des abonnés du réseau
mots
Réception globale 0

Envoi direct 4

33002528 12/2018 205


MBP_MSTR

Type d'état Index des Relation entre les bits des abonnés du réseau
mots
Réception directe 8

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.

206 33002528 12/2018


MBP_MSTR

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 (voir page 181) ou de
suppression des statistiques distantes (voir page 186), seuls les mots 13 à 22 de la table des
statistiques sont supprimés.

Mot Bits Description


00 ID du type de nœud
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é
01 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 Adresse réseau de cette station

33002528 12/2018 207


MBP_MSTR

Mot Bits Description


03 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
10 Etat de la requête de réponse
04 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
05 Compteur de transferts du jeton (s'incrémente chaque fois que la station reçoit le jeton)
06 Temps de cycle du jeton en ms
07 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
08 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
09 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
10 BAS
HAUT Commande de requête de transfert bitmap - interrogation données esclaves/esclaves
11 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
12 BAS Etat de connexion bitmap du programme maître
HAUT Fermeture de session bitmap du programme esclave
13 BAS Compteur d'erreurs de retard de prétransfert
HAUT Compteur d'erreurs de débordement du tampon de réception DMA

208 33002528 12/2018


MBP_MSTR

Mot Bits Description


14 BAS Commande de répétition du compteur de réceptions
HAUT Compteur d'erreurs de taille de bloc de données
15 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 :
BAS Erreur de bloc de données sur le câble A
HAUT Erreur de bloc de données sur le câble B
16 BAS Compteur d'erreurs CRC du destinataire
HAUT Compteur d'erreurs de longueur de paquet incorrecte
17 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
18 BAS Compteur d'erreurs de longueur de paquet interne incorrecte
HAUT Compteur d'erreurs de code fonction MAC incorrect
19 BAS Compteur de nouvelles tentatives de communication
HAUT Compteur d'erreurs d'échec de communication
20 BAS Compteur de réceptions de paquets correctes
HAUT Compteur d'erreurs d'absence de réponse
21 BAS Compteur d'erreurs de réception de réponse inattendue
HAUT Compteur d'erreurs de chemin inattendu
22 BAS Compteur d'erreurs de réponse inattendue
HAUT Compteur d'erreurs de transaction ignorée
23 BAS Table des stations actives bitmap, nœuds 1 à 8
HAUT Table des stations actives bitmap, nœuds 9 à 16
24 BAS Table des stations actives bitmap, nœuds 17 à 24
HAUT Table des stations actives bitmap, nœuds 25 à 32
25 BAS Table des stations actives bitmap, nœuds 33 à 40
HAUT Table des stations actives bitmap, nœuds 41 à 48
26 BAS Table des stations actives bitmap, nœuds 49 à 56
HAUT Table des stations actives bitmap, nœuds 57 à 64
27 BAS Table des stations à jeton bitmap, nœuds 1 à 8
HAUT Table des stations à jeton bitmap, nœuds 9 à 16
28 BAS Table des stations à jeton bitmap, nœuds 17 à 24
HAUT Table des stations à jeton bitmap, nœuds 25 à 32

33002528 12/2018 209


MBP_MSTR

Mot Bits Description


29 BAS Table des stations à jeton bitmap, nœuds 33 à 40
HAUT Table des stations à jeton bitmap, nœuds 41 à 48
30 BAS Table des stations à jeton bitmap, nœuds 49 à 56
HAUT Table des stations à jeton bitmap, nœuds 57 à 64
31 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
32 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
33 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
34 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
35 BAS Tampon de réception bitmap utilisé, tampons 1 à 8
HAUT Tampon de réception bitmap utilisé, tampons 9 à 16
36 BAS Tampon de réception bitmap utilisé, tampons 17 à 24
HAUT Tampon de réception bitmap utilisé, tampons 25 à 32
37 BAS Tampon de réception bitmap utilisé, tampons 33 à 40
HAUT Compteur des commandes traitées activées pour l'administration de la station
38 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
39 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
40 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
41 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
42 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
43 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
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
45 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

210 33002528 12/2018


MBP_MSTR

Mot Bits Description


46 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
47 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
48 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
49 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
50 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
51 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
52 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
53 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

33002528 12/2018 211


MBP_MSTR

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 00 00 00
s'affiche comme suit : 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
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 36 89 71
CA 89 71) est représentée ainsi : 37 C6 CA

212 33002528 12/2018


MBP_MSTR

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 :
 140 NOE 771 x1, version 3.5
 140 NOE 771 x0, versions 1.02 et 2.0
 140 CPU 651 x0

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é)

33002528 12/2018 213


MBP_MSTR

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é)
10 NOE 771 10
11 NOE 771 01
12 NOE 771 11
13 ... 15 (réservé)

214 33002528 12/2018


EcoStruxure™ Control Expert
MODBUSP_ADDR
33002528 12/2018

Chapitre 19
ModbusP_ADDR : Adresse Modbus Plus

ModbusP_ADDR : Adresse Modbus Plus

Présentation
Ce chapitre décrit le bloc ModbusP_ADDR.

Contenu de ce chapitre
Ce chapitre contient les sujets suivants :
Sujet Page
Description 216
Description détaillée 219

33002528 12/2018 215


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.

Représentation en FBD
Représentation :

216 33002528 12/2018


MODBUSP_ADDR

Représentation en LD
Représentation :

Représentation en IL
Représentation :
CAL ModbusP_ADDR_Instance (SLOT_ID:=NOMModuleSlot, ROUTING1:=BYTE_va
riable1, ROUTING2:=BYTE_variable2, ROUTING3:=BYTE_variable3, ROUTING
4:=BYTE_variable4, ROUTING5:=BYTE_variable5, ADDRFLD=>DataStructu
reModbusPlusAddress)

Représentation en ST
Représentation :
ModbusP_ADDR_Instance (SLOT_ID:=NOMModuleSlot, ROUTING1:=BYTE_variab
le1, ROUTING2:=BYTE_variable2, ROUTING3:=BYTE_variable3, ROUTING4:=B
YTE_variable4, ROUTING5:=BYTE_variable5, ADDRFLD=>DataStructureMo
dbusPlusAddress) ;

33002528 12/2018 217


MODBUSP_ADDR

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

218 33002528 12/2018


MODBUSP_ADDR

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 :

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.

33002528 12/2018 219


MODBUSP_ADDR

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))

220 33002528 12/2018


EcoStruxure™ Control Expert
OUT_IN_CHAR
33002528 12/2018

Chapitre 20
OUT_IN_CHAR : envoi/réception de chaînes de caractères

OUT_IN_CHAR : envoi/réception de chaînes de caractères

Objet de ce chapitre
Ce chapitre décrit la fonction de communication OUT_IN_CHAR.

Contenu de ce chapitre
Ce chapitre contient les sujets suivants :
Sujet Page
Description 222
Ecran de saisie assistée 225
Exemple d'envoi/réception d'une chaîne de caractères 227

33002528 12/2018 221


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.

Représentation en FBD
Représentation :

222 33002528 12/2018


OUT_IN_CHAR

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

Représentation en ST
Représentation :
OUT_IN_CHAR(Address, Mode, Data_to_Send, Management_Param, Received_Dat
a);

33002528 12/2018 223


OUT_IN_CHAR

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 :
 1 : émission suivie du mode réception
 2 : émission d’un message
 3 : mise en réception de message
Data_to_Send STRING 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 (voir page 42)

Le tableau suivant décrit les paramètres de sortie :

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).

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.

224 33002528 12/2018


OUT_IN_CHAR

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 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é.

33002528 12/2018 225


OUT_IN_CHAR

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.
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.

226 33002528 12/2018


OUT_IN_CHAR

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.

Figure
Les deux stations sont connectées via un réseau Fipway.

33002528 12/2018 227


OUT_IN_CHAR

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 Description
ADDR(‘{20.5}0.0.0.SYS’)  {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
%MW170:4 Table de gestion
Str_2 Variable de type STRING devant contenir le message reçu

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).

228 33002528 12/2018


EcoStruxure™ Control Expert
OUT_IN_MBUS
33002528 12/2018

Chapitre 21
OUT_IN_MBUS : Fonction de communication Modbus

OUT_IN_MBUS : Fonction de communication Modbus

Objet du chapitre
Ce chapitre décrit la fonction de communication OUT_IN MBUS.

Contenu de ce chapitre
Ce chapitre contient les sous-chapitres suivants :
Sous-chapitre Sujet Page
21.1 Présentation générale du bloc de communication OUT_IN_MBUS 230
21.2 Description du bloc de communication OUT_IN_MBUS 235
21.3 Mise en oeuvre du bloc de communication OUT_IN_MBUS 246
21.4 Exemple d’utilisation du bloc de communication OUT_IN_MBUS 254

33002528 12/2018 229


OUT_IN_MBUS

Sous-chapitre 21.1
Présentation générale du bloc 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.

Contenu de ce sous-chapitre
Ce sous-chapitre contient les sujets suivants :
Sujet Page
Description de la fonction 231
Exemple d'utilisation 232
Fonctionnalités 234

230 33002528 12/2018


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.
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.

33002528 12/2018 231


OUT_IN_MBUS

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.
L'illustration ci-après présente le mode nominal (de superviseur à esclave).

232 33002528 12/2018


OUT_IN_MBUS

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).
L'illustration ci-après présente le mode d'exception (émulation maître à esclave) :

33002528 12/2018 233


OUT_IN_MBUS

Fonctionnalités

Présentation
La fonction OUT_IN_MBUS prend en charge :
 Les codes Modbus 1, 2, 3, 4, 5, 6, 15, 16 (voir page 239),
 Les modes ASCII et RTU (voir page 242),
 L'adressage complet (voir page 239).
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).

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.

234 33002528 12/2018


OUT_IN_MBUS

Sous-chapitre 21.2
Description du bloc de communication OUT_IN_MBUS

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.

Contenu de ce sous-chapitre
Ce sous-chapitre contient les sujets suivants :
Sujet Page
Représentations et paramètres 236
Le paramètre MbusCmd 239
Le paramètre RetryLmt 241
Le paramètre DataBits 242
Le paramètre RespTout 243
Le paramètre MasterDataArea 244
Le paramètre Status 245

33002528 12/2018 235


OUT_IN_MBUS

Représentations et paramètres

Représentation en FBD
Représentation :

Représentation en LD
Représentation :

236 33002528 12/2018


OUT_IN_MBUS

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 :

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 (voir page 239) du tableau Modbus
RETRYLMT INT Nombre de tentatives (voir page 241) d'envoi d'un
message effectuées par le bloc
DATABITS BOOL Messages (voir page 242) Modbus à envoyer en mode
ASCII (DATABITS =0) ou en mode RTU (DATABITS=1).
RESPTOUT INT Délai d'attente (voir page 243) 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 (voir page 244) 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.

33002528 12/2018 237


OUT_IN_MBUS

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 (voir page 245) généré par
le bloc.

238 33002528 12/2018


OUT_IN_MBUS

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é ci-dessous :

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 Le bloc OUT_IN_MBUS prend en charge les codes de fonction suivants :
Modbus  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.
MbusCmd[3] Zone de données Pour une commande de lecture, la zone de données de l'automate esclave est la
de l'automate source des données. Pour une commande d'écriture, la zone de données de
esclave 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
(voir page 240).

33002528 12/2018 239


OUT_IN_MBUS

Contenu Description Description


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 (voir page 240). 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 Zone de données pour


équipement standard Modbus 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)
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

240 33002528 12/2018


OUT_IN_MBUS

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.

33002528 12/2018 241


OUT_IN_MBUS

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.

242 33002528 12/2018


OUT_IN_MBUS

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.

33002528 12/2018 243


OUT_IN_MBUS

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 :
 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.

244 33002528 12/2018


OUT_IN_MBUS

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.

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
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

33002528 12/2018 245


OUT_IN_MBUS

Sous-chapitre 21.3
Mise en oeuvre du bloc de communication OUT_IN_MBUS

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.

Contenu de ce sous-chapitre
Ce sous-chapitre contient les sujets suivants :
Sujet Page
Configuration de la liaison série 247
Marche à suivre pour la programmation 250
Utilisation d’un modem 252

246 33002528 12/2018


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
 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.

33002528 12/2018 247


OUT_IN_MBUS

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 (voir page 242) 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).

248 33002528 12/2018


OUT_IN_MBUS

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 (voir page 242) 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 :
 nombre de tentatives (voir page 241)
 délai de réponse (voir page 243)

33002528 12/2018 249


OUT_IN_MBUS

Marche à suivre pour la programmation

Marche à suivre
Le tableau ci-dessous présente la marche à suivre pour programmer le bloc OUT_IN_MBUS :

Etape Action détails


1 Préparation du port  Si le port série n’est pas configuré en mode caractères, changez le
de communication. mode Modbus du port en mode caractères en envoyant sur le port
série la commande WRITE_CMD (voir page 251),
 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 (voir page 252),
 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
(voir page 252).
2 Initialisation des Initialisez les paramètres d’entrées du bloc DFB. Il n’est pas utile de
paramètres. répéter cette opération à chaque cycle automate.
3 Appel du bloc  OUT_IN_MBUS doit être appelé à chaque cycle automate jusqu’à ce
OUT_IN_MBUS. 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).
4 Réinitialisation du  Dans le cas d’une transmission modem, envoyez la commande
port de HAYES pour envoyer un message de déconnexion au modem
communication. (voir page 252) 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 (voir page 251).

250 33002528 12/2018


OUT_IN_MBUS

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 :

Etape Action
1 Testez si aucune commande n’est en attente.
 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.
2 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 (voir page 254) qui suit, nous utilisons l’interface IODDT correspondante pour
communiquer avec le canal du port série de communication.

33002528 12/2018 251


OUT_IN_MBUS

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.
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.

252 33002528 12/2018


OUT_IN_MBUS

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 (voir page 245) 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 (voir page 245) 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 12/2018 253


OUT_IN_MBUS

Sous-chapitre 21.4
Exemple d’utilisation du bloc de communication OUT_IN_MBUS

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.

Contenu de ce sous-chapitre
Ce sous-chapitre contient les sujets suivants :
Sujet Page
Description de l’exemple 255
Structure de la programmation 256
Déclaration des variables 258
Programmation 259

254 33002528 12/2018


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.
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.

33002528 12/2018 255


OUT_IN_MBUS

Structure de la programmation

Commentaires d’étapes
Le tableau ci-dessous récapitule les étapes de programmation de l’exemple :

Numéro Description de l’étape


d’é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.
 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.
15 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  Appel du bloc OUT_IN_MBUS.
 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.

45 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.

256 33002528 12/2018


OUT_IN_MBUS

Numéro Description de l’étape


d’étape
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.
 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.
65 Retour à l’étape 0 (l’état initial de la fonction) et bit Start_4 à 0.

33002528 12/2018 257


OUT_IN_MBUS

Déclaration des variables

Présentation
Le tableau ci-dessous recense le détail des variables utilisées :

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
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

258 33002528 12/2018


OUT_IN_MBUS

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:
(* 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;

33002528 12/2018 259


OUT_IN_MBUS

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 (* M
ode 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 *)

260 33002528 12/2018


OUT_IN_MBUS

MngtInput_4[4] := 0; (* Nombre d'octets à envoyer *)


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 *)

33002528 12/2018 261


OUT_IN_MBUS

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,
%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;

262 33002528 12/2018


OUT_IN_MBUS

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 *)

33002528 12/2018 263


OUT_IN_MBUS

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 *)
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 (* M
ode 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;

264 33002528 12/2018


OUT_IN_MBUS

65:
(* Fin *)
Start_4 := 0; (* Autoriser nouvelle demande *)
Step_4 := 0; (* Atteindre état d'attente *)

END_CASE;

33002528 12/2018 265


OUT_IN_MBUS

266 33002528 12/2018


EcoStruxure™ Control Expert
PRINT_CHAR
33002528 12/2018

Chapitre 22
PRINT_CHAR : Envoi de chaînes de caractères

PRINT_CHAR : Envoi de chaînes de caractères

Objet de ce chapitre
Ce chapitre décrit la fonction PRINT_CHAR.

Contenu de ce chapitre
Ce chapitre contient les sujets suivants :
Sujet Page
Description 268
Ecran de saisie assistée 273
Exemple d'envoi de chaînes de caractères via un réseau Fipway 274
Exemple d'envoi de chaînes de caractères via une liaison série de processeurs Modicon M340 276

33002528 12/2018 267


PRINT_CHAR

Description

Description de la fonction
Sur les automates Premium, la fonction PRINT_CHAR sert à envoyer une chaîne de caractères de
4 Ko maximum (120 octets sur le port terminal) sur une liaison en mode caractère.
Sur les M580 Modicon M340 et CPU, la fonction PRINT_CHAR permet d'envoyer une chaîne de
caractères de 1 024 octets au 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 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 comme :
$R = CR (retour chariot), $L = LF (retour à la ligne), $N = CR+LF.
Les paramètres supplémentaires EN et ENO peuvent être configurés.

AVERTISSEMENT
COMPORTEMENT INATTENDU 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 :

268 33002528 12/2018


PRINT_CHAR

Représentation en LD
Représentation :

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);

33002528 12/2018 269


PRINT_CHAR

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 Les instructions suivantes ne sont correctes que pour l'automate
Premium Premium :
ARRAY [0..7] OF INT pour  L'adresse de la voie en mode caractère, qui reçoit le message,
Modicon M340 et M580 est indiquée par la fonction ADDR (voir page 87).
 Seules les adresses se terminant par SYS sont valides (par
exemple, port terminal du processeur 0.0.0.SYS).
Les instructions suivantes ne s'appliquent qu'à l'automate
Modicon M340 :
 L'adresse de la voie en mode caractère, qui reçoit le message,
est indiquée par la fonction ADDM (voir 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 :
 Adresse de l'entité cible de l'opération d'écriture, résultat de la
fonction ADDMX (voir page 79).
EMIS STRING 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 en
l'absence de données à envoyer.

270 33002528 12/2018


PRINT_CHAR

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 : pour la fonction PRINT_CHAR, le 4e mot de gestion
(longueur à envoyer) ne doit pas être écrit lorsque le bit d'activité
est à 1 (c'est-à-dire pendant l'exécution de la fonction
élémentaire). 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 (voir page 42).

33002528 12/2018 271


PRINT_CHAR

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 IMPRESSIONS EN COURS$L$R, la longueur des données à
transmettre est de 22 octets.
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 Modicon M340 et M580 CPU, 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 (ZERO), vous
devez :
 utiliser des STRING localisées,
 initialiser le dernier mot de la table 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 ZERO rencontré. Si vous l’initialisez avec une valeur, la longueur de la chaîne de
caractères envoyée sera égale à cette valeur.

272 33002528 12/2018


PRINT_CHAR

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.

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 12/2018 273


PRINT_CHAR

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.

274 33002528 12/2018


PRINT_CHAR

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 :

Paramètres Description
ADDR('{20.3}0.2.0.SYS')  {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.

33002528 12/2018 275


PRINT_CHAR

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.

Figure
Un automate Modicon M340 est relié à un terminal de saisie/d'affichage de données TM8501 :

276 33002528 12/2018


PRINT_CHAR

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 Description
ADDM('0.0.0')  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.

33002528 12/2018 277


PRINT_CHAR

278 33002528 12/2018


EcoStruxure™ Control Expert
PRINT_CHAR_QX
33002528 12/2018

Chapitre 23
PRINT_CHAR_QX : envoi de chaînes de caractères sur le bus EIO

PRINT_CHAR_QX : envoi de chaînes de caractères sur le bus


EIO

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.
 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 12/2018 279


PRINT_CHAR_QX

Représentation en FBD
Représentation :

Représentation en LD
Représentation :

280 33002528 12/2018


PRINT_CHAR_QX

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=>PrintChar-
Active, 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=>PrintChar-
Faulty, STATUS=>ErrorCode);

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 (voir page 79).
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 (voir page 530) si une erreur est
détectée par le bloc fonction.

33002528 12/2018 281


PRINT_CHAR_QX

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.
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.

282 33002528 12/2018


EcoStruxure™ Control Expert
RCV_TLG
33002528 12/2018

Chapitre 24
RCV_TLG : Réception de télégrammes

RCV_TLG : Réception de télégrammes

Objet de ce chapitre
Ce chapitre décrit la fonction RCV_TLG.

Contenu de ce chapitre
Ce chapitre contient les sujets suivants :
Sujet Page
Description 284
Exemple de réception d'un télégramme 287

33002528 12/2018 283


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 :

Représentation en LD
Représentation :

284 33002528 12/2018


RCV_TLG

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 :

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é

33002528 12/2018 285


RCV_TLG

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.
 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.
Received_Data ARRAY [n... m] OF INT Tampon de réception. Tableau d'entiers contenant les
données reçues.
Il peut contenir jusqu'à 8 entiers (16 octets).

286 33002528 12/2018


RCV_TLG

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.

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 12/2018 287


RCV_TLG

288 33002528 12/2018


EcoStruxure™ Control Expert
READ_ASYN
33002528 12/2018

Chapitre 25
READ_ASYN : Lecture asynchrone de données

READ_ASYN : Lecture asynchrone de données

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 (voir page 382).
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.

Représentation en FBD
Représentation :

33002528 12/2018 289


READ_ASYN

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

Représentation en ST
Représentation :
READ_ASYN(Address, Object_Type, First_Object, Object_Number,
Management_Param, Receiving_Array);

290 33002528 12/2018


READ_ASYN

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 (voir page 42)

Le tableau suivant décrit les paramètres de sortie :

Paramètre Type Commentaire


Receiving_Array ARRAY [n... m] OF INT Tableau de mots contenant la valeur des objets lus.

33002528 12/2018 291


READ_ASYN

292 33002528 12/2018


EcoStruxure™ Control Expert
READ_GDATA
33002528 12/2018

Chapitre 26
READ_GDATA : Lecture de Global Data Modbus Plus

READ_GDATA : Lecture de Global Data Modbus Plus

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 :

Représentation en LD
Représentation :

33002528 12/2018 293


READ_GDATA

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.

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 (voir page 42).
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 :

Paramètre Type Commentaire


Receiving_Array ARRAY [n... m] OF INT Tableau de mots contenant la valeur des objets lus.

294 33002528 12/2018


EcoStruxure™ Control Expert
READ_REG :
33002528 12/2018

Chapitre 27
READ_REG : Lecture de registre

READ_REG : Lecture de registre

Présentation
Ce chapitre décrit le bloc READ_REG.

Contenu de ce chapitre
Ce chapitre contient les sujets suivants :
Sujet Page
Description 296
Types de données dérivés 299
Mode de fonctionnement 301
Description des paramètres 302

33002528 12/2018 295


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.
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 :

296 33002528 12/2018


READ_REG :

Représentation en LD
Représentation :

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) ;

33002528 12/2018 297


READ_REG :

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
STATUS WORD, Si une erreur se produit lors de l'exécution de la fonction, un code
d'erreur (voir page 530) 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 (voir page 528)..

298 33002528 12/2018


READ_REG :

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 :

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

33002528 12/2018 299


READ_REG :

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é

300 33002528 12/2018


READ_REG :

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.

33002528 12/2018 301


READ_REG :

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.
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.

302 33002528 12/2018


READ_REG :

STATUS
Si une erreur se produit lors de l'exécution de la fonction, un code d'erreur (voir page 530) 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 12/2018 303


READ_REG :

304 33002528 12/2018


EcoStruxure™ Control Expert
READ_REG_QX
33002528 12/2018

Chapitre 28
READ_REG_QX : lecture de registre sur le bus EIO

READ_REG_QX : lecture de registre sur le bus EIO

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 (voir page 15).
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.
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 12/2018 305


READ_REG_QX

Représentation en FBD
Représentation :

Représentation en LD
Représentation :

306 33002528 12/2018


READ_REG_QX

Représentation en IL
Représentation :
CAL READ_REG_QX_Instance (ENABLE:=ReadRegQxEnable, ABORT:=ReadRegQ-
xAbort, 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)

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 (voir page 79).
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.

33002528 12/2018 307


READ_REG_QX

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 (voir page 530) 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.)

308 33002528 12/2018


EcoStruxure™ Control Expert
READ_SDO
33002528 12/2018

Chapitre 29
READ_SDO : objet de données du service de lecture

READ_SDO : objet de données du service de lecture

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).

Représentation en FBD
Représentation :

33002528 12/2018 309


READ_SDO

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, STATUS => ErrorCode, SDOABORTCODE => AbortCode,
NB_OUT => DataNumberOut, DATA => SDODataToRead)

310 33002528 12/2018


READ_SDO

Description des paramètres


Le tableau suivant décrit les paramètres d’entrée :

Paramètre Type de données Description


d'entrée
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 :

Paramètre de Type de données Description


sortie
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 (voir page 530) si le bloc fonction détecte
une erreur.
SDOABORTCODE DWORD Code d'annulation de SDO (voir page 550) 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 12/2018 311


READ_SDO

312 33002528 12/2018


EcoStruxure™ Control Expert
READ_VAR
33002528 12/2018

Chapitre 30
READ_VAR : Lecture de variables

READ_VAR : Lecture de variables

Objet de ce chapitre
Ce chapitre décrit la fonction de communication READ_VAR.

Contenu de ce chapitre
Ce chapitre contient les sujets suivants :
Sujet Page
Description 314
Ecran de saisie assistée 321
Exemple d'utilisation sur un bus Uni-Telway 323
Exemple de lecture de bits 325
Exemple d'utilisation dans un réseau 327
Exemple de lecture de mots via la liaison série des processeurs Modicon M340 329
Exemple de vérification d'exécution 332

33002528 12/2018 313


READ_VAR

Description

Description de la fonction
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.
Sur 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 (Uni-Telway ou
Modbus/Jbus).
NOTE : pour les automates Premium uniquement, la lecture de plus de 1 000 bits nécessite le
recours à fonction SEND_REQ.

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. Pour plus d'informations sur les règles d'alignement, consultez la page DDT : règles
d'affectation (voir EcoStruxure™ Control Expert, Langages de programmation et structure,
Manuel de référence).
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 :

314 33002528 12/2018


READ_VAR

Représentation en LD
Représentation :

Représentation en IL
Représentation :
LD Address
READ_VAR Object_Type, First_Object, Object_Number, Management_Param, Re
ceiving_Array

Représentation en ST
Représentation :
READ_VAR(Address, Object_Type, First_Object, Object_Number, Management_
Param, Receiving_Array);

33002528 12/2018 315


READ_VAR

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 Instructions spécifiques par plate-forme matérielle :
Premium  Premium :
ARRAY [0..7] OF INT pour  L'adresse de la voie (en mode caractères) de réception du
Modicon M340 et M580 message est indiquée par la fonction ADDR (voir page 87).
 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 (voir page 73).
 La syntaxe de l'adresse est du type suivant : ADDM
('r.m.c.nœud').
 Modicon M580 :
 Adresse de l'entité cible de l'opération de lecture, résultat de
la fonction ADDMX (voir page 79).
OBJ STRING 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 Indice du premier objet à lire.
NB INT Nombre d'objets à lire.

316 33002528 12/2018


READ_VAR

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 (voir page 42).

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.

33002528 12/2018 317


READ_VAR

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 :
 La valeur de forçage des bits est renvoyée dans la réponse.
 La lecture d'un bit comprend par conséquent deux octets de réponse :
 Le premier contient la valeur des huit 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 huit 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 : sur 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.

318 33002528 12/2018


READ_VAR

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 TSX 57 46/56


23/30/40/45/55,
PCX 57, PMX 57
Port terminal du maître Uni-Telway 4 4 4 4 8
Liaison PCMCIA ou SCY du maître Uni- 1 8 8 8 8
Telway
Port terminal de l'esclave client Uni-Telway 4 1 1 1 8
Liaison PCMCIA ou SCY de l'esclave client 1 1 1 1 1
Uni-Telway
Port terminal de l'esclave serveur Uni-Telway 4 4 4 4 4
Liaison PCMCIA ou SCY de l'esclave serveur 4 6 6 6 6
Uni-Telway
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

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 BMX P34 2020 BMX P34 2030/
2010/20102 20302
CANopen intégré - - 16 - 16
Ethernet intégré - - - 16 16
Port série du maître ModBus 8 16 16 16 -

33002528 12/2018 319


READ_VAR

Nombre maximal de requêtes client par scrutation sur les UC (CPU) M580 autonomes :

Configuration Référence de l'UC (BME P58 …)


10•0 20•0 30•0 40•0 5040 6040
Ethernet 16 32 48 80 80 96

Nombre maximal de requêtes client par scrutation sur les UC (CPU) M580 redondantes :

Configuration Référence de l'UC (BME H58 …)


2040 4040 6040
Ethernet 32 80 96

Nombre maximal de requêtes traitées par scrutation sur les UC (CPU) M580 autonomes :

Configuration Référence de l'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. Le mot système %SW90 permet de régler 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 de l'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. Le mot système %SW90 permet de régler 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 maximal de requêtes simultanées indiqué dans tous les
tableaux prenne en compte le nombre maximal de requêtes simultanées que chaque UC peut
traiter par cycle, en tant que client et en tant que serveur (voir Modicon M580, Matériel, Manuel de
référence).

320 33002528 12/2018


READ_VAR

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.

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.

33002528 12/2018 321


READ_VAR

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.

322 33002528 12/2018


READ_VAR

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.

33002528 12/2018 323


READ_VAR

Programmation
Programmation en LD :

Paramètres de la requête :

Paramètres Description
'0.0.0.6'  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

324 33002528 12/2018


READ_VAR

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.

Mot Octet 3 Octet 2 Octet 1 Octet 0


Valeur %MW100 0000 0000 1100 1100
%MW101 1111 1111 0000 1111
Forçage %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 :

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 12/2018 325


READ_VAR

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.

326 33002528 12/2018


READ_VAR

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 Uni-Telway,
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.

Figure
Les deux stations sont connectées via un réseau Fipway.

33002528 12/2018 327


READ_VAR

Programmation
Programmation en LD :

Paramètres de la requête :

Paramètres Description
ADDR(‘{20.1}0.5.1.3’)  {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

328 33002528 12/2018


READ_VAR

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_Pa-
rameter (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 M340 est toujours la
voie 0)
 7 : le numéro d'esclave configuré est 7

33002528 12/2018 329


READ_VAR

Figure
Les deux processeurs Modicon M340 sont connectés via une liaison Modbus :

330 33002528 12/2018


READ_VAR

Programmation
Programmation en LD :

Les paramètres de requête sont les suivants :

Paramètres Description
ADDM(‘0.0.0.7’)  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 12/2018 331


READ_VAR

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.

332 33002528 12/2018


READ_VAR

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,


 %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 12/2018 333


READ_VAR

334 33002528 12/2018


EcoStruxure™ Control Expert
Send_Email
33002528 12/2018

Chapitre 31
SEND_EMAIL : envoi d'un message électronique

SEND_EMAIL : envoi d'un message électronique

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.

Représentation en FBD
Représentation :

33002528 12/2018 335


Send_Email

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);

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);

336 33002528 12/2018


Send_Email

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 (voir 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 (voir page 42).
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.

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.

33002528 12/2018 337


Send_Email

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;

338 33002528 12/2018


EcoStruxure™ Control Expert
SEND_REQ
33002528 12/2018

Chapitre 32
SEND_REQ : Envoi de requêtes

SEND_REQ : Envoi de requêtes

Objet de ce chapitre
Ce chapitre décrit la fonction SEND_REQ.

Contenu de ce chapitre
Ce chapitre contient les sujets suivants :
Sujet Page
Description 340
Liste de requêtes UNI-TE 344
Ecran de saisie assistée 351
Exemple d'envoi d'une requête UNI-TE 353
Modification des paramètres IP avec SEND_REQ (exemple) 355
Utilisation de la fonction SEND_REQ 356

33002528 12/2018 339


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.

Représentation en FBD

Représentation en LD

340 33002528 12/2018


SEND_REQ

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);

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 UNI-TE
(voir page 344) 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 (voir page 42)

33002528 12/2018 341


SEND_REQ

Le tableau suivant décrit les paramètres de sortie :

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 (voir page 48).
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).

342 33002528 12/2018


SEND_REQ

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 TSX 57 46/56


23/30/40/45/55,
PCX 57, PMX 57
Port terminal du maître Uni-Telway 4 4 4 4 8
Liaison PCMCIA ou SCY du maître Uni-Telway 1 8 8 8 8
Port terminal de l'esclave client Uni-Telway 4 1 1 1 8
Liaison PCMCIA ou SCY de l'esclave client 1 1 1 1 1
Uni-Telway
Port terminal de l'esclave serveur Uni-Telway 4 4 4 4 4
Liaison PCMCIA ou SCY de l'esclave serveur 4 6 6 6 6
Uni-Telway
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

33002528 12/2018 343


SEND_REQ

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.

Nom de requête Code de Code de Commentaire


requête compte rendu
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.

344 33002528 12/2018


SEND_REQ

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.
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 sous-ré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 Exemple : ADDR (0.x.0.SYS’) x =
('rack.slot.channel.SYS') emplacement dans lequel le module ETY est
installé.
REQUEST CODE INT 16#37

33002528 12/2018 345


SEND_REQ

Paramètre Type Valeur Commentaire


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 255
sous-réseau 2 (255)
Octet 10 : masque de 0-255
sous-réseau 1 (255)
Octet 11 : masque de 0-255
sous-réseau 4 (0)
Octet 12 : masque de 0-255
sous-réseau 3 (248)
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
octet 16 : passerelle 3 (8) 0-255
Manage_Param numéro du mot Octet de poids fort Octet de poids faible
1 compte rendu d'activité 00
2 compte rendu d'opération compte rendu de communication (voir
(voir remarque) 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


(voir page 355).

346 33002528 12/2018


SEND_REQ

Modification des codes d'adresse IP

Rapport Rapport de Signification


d'opération communication
code correct
FE (hex) 00 (hex) (SEND_REQ) a modifié correctement l'adresse IP.
codes d'erreur
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.

33002528 12/2018 347


SEND_REQ

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é
Manage_Param 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 compte rendu de
remarque) communication (voir remarque)
3 temporisation (ms)
4 longueur : 4 (INT) (dans cet exemple)
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 Signification


communication
code correct
FE (hex) 00 (hex) SEND_REQ a correctement réinitialisé le module
codes d'erreur
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

348 33002528 12/2018


SEND_REQ

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 Code de Commentaire


requête compte
rendu
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 Code de Code de Commentaire


requête requête compte
rendu
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.

33002528 12/2018 349


SEND_REQ

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.

Nom de Code de Code de Commentaire


requête requête compte
rendu
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].

350 33002528 12/2018


SEND_REQ

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.

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.

33002528 12/2018 351


SEND_REQ

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.

352 33002528 12/2018


SEND_REQ

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.

Figure
Les deux stations sont connectées via un réseau Fipway :

33002528 12/2018 353


SEND_REQ

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 Description
ADDR(‘{20.1}0.5.1.3’)  {20.1} : réseau 20, station 1
 0 : rack
 5 : module
 1 : voie 1
 3 : adresse cible

15 Requête 15 (ou 16#0F si le codage est hexadécimal)


%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).

354 33002528 12/2018


SEND_REQ

Modification des paramètres IP avec SEND_REQ (exemple)

Figure
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.
 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 minimum de 1, même lorsque aucun message de
réponse n'est renvoyé, comme dans le cas d'une requête de modification IP.

33002528 12/2018 355


SEND_REQ

Utilisation de la fonction SEND_REQ

Présentation
La fonction SEND_REQ sert à coder et à envoyer toutes les requêtes UNI-TE et Modbus/Jbus et à
recevoir les réponses correspondantes.
Dans certains cas (lors de la lecture de tables de mots, par exemple), il est nécessaire de
reséquencer les objets reçus à l'aide de la fonction ROR1_ARB (décalage d'un octet dans une
table). .

Exemple
Objets à lire :
16#0201
16#0403
16#0605
16#0807
16#0A09
Table de réception après exécution d'une fonction SEND_REQ (lecture d'objet) :
%MW100=16#0107
%MW101=16#0302
%MW102=16#0504
%MW103=16#0706
%MW104=16#0908
%MW105=16#000A
Table de réception après ROR1_ARB(%MW100:6) :
%MW100=16#0201
%MW101=16#0403
%MW102=16#0605
%MW103=16#0807
%MW104=16#0A09
%MW105=16#0700

356 33002528 12/2018


EcoStruxure™ Control Expert
SEND_TLG
33002528 12/2018

Chapitre 33
SEND_TLG : Envoi de télégrammes

SEND_TLG : Envoi de télégrammes

Objet de ce chapitre
Ce chapitre décrit la fonction SEND_TLG.

Contenu de ce chapitre
Ce chapitre contient les sujets suivants :
Sujet Page
Description 358
Exemple d'envoi d'un télégramme 361

33002528 12/2018 357


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.

Représentation en FBD
Représentation:

358 33002528 12/2018


SEND_TLG

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);

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.

33002528 12/2018 359


SEND_TLG

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 :
 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é.

360 33002528 12/2018


SEND_TLG

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 Description
ADDR(‘{20.3}APP’)  {20.2} : réseau 20, station 3
 APP : application

%MW190:8 Contenu du télégramme à envoyer


%MW200:2 Table de gestion

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.

33002528 12/2018 361


SEND_TLG

362 33002528 12/2018


EcoStruxure™ Control Expert
SYMAX_IP_ADDR
33002528 12/2018

Chapitre 34
SYMAX_IP_ADDR : Adresse IP SY/MAX

SYMAX_IP_ADDR : Adresse IP SY/MAX

Présentation
Ce chapitre décrit le bloc SYMAX_IP_ADDR.

Contenu de ce chapitre
Ce chapitre contient les sujets suivants :
Sujet Page
Description 364
Description détaillée 366

33002528 12/2018 363


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 :

Représentation en LD
Représentation :

364 33002528 12/2018


SYMAX_IP_ADDR

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 :

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

33002528 12/2018 365


SYMAX_IP_ADDR

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é

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 :

366 33002528 12/2018


SYMAX_IP_ADDR

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 12/2018 367


SYMAX_IP_ADDR

368 33002528 12/2018


EcoStruxure™ Control Expert
TCP_IP_ADDR
33002528 12/2018

Chapitre 35
TCP_IP_ADDR : Adresse TCP/IP

TCP_IP_ADDR : Adresse TCP/IP

Présentation
Ce chapitre décrit le bloc TCP_IP_ADDR.

Contenu de ce chapitre
Ce chapitre contient les sujets suivants :
Sujet Page
Description 370
Description détaillée 373

33002528 12/2018 369


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 - Configuration TCP/IP - Manuel utilisateur.

Représentation en FBD
Représentation :

370 33002528 12/2018


TCP_IP_ADDR

Représentation en LD
Représentation :

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) ;

33002528 12/2018 371


TCP_IP_ADDR

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 :

Paramètres Type de données Description


ADDRFLD WordArr5 Structure de données utilisée pour transférer l'adresse TCP/IP

372 33002528 12/2018


TCP_IP_ADDR

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 :

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.

33002528 12/2018 373


TCP_IP_ADDR

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)

374 33002528 12/2018


EcoStruxure™ Control Expert
UNITE_SERVER
33002528 12/2018

Chapitre 36
UNITE_SERVER : Serveur immédiat

UNITE_SERVER : Serveur immédiat

Objet de ce chapitre
Ce chapitre décrit la fonction de communication UNITE_SERVER.

Contenu de ce chapitre
Ce chapitre contient les sujets suivants :
Sujet Page
Description 376
Exemple de serveur immédiat 379

33002528 12/2018 375


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.

Principe d'un échange


Le diagramme suivant illustre les échanges effectués lors de l'utilisation de la fonction de
communication UNITE_SERVER.

376 33002528 12/2018


UNITE_SERVER

Représentation en FBD
Représentation :

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);

33002528 12/2018 377


UNITE_SERVER

Description des paramètres


Le tableau suivant décrit les paramètres d’entrée/sortie :

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 :
 le code de la requête reçue (octet de poids faible),
 le code de la réponse renvoyée (octet de poids fort).

378 33002528 12/2018


UNITE_SERVER

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 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 12/2018 379


UNITE_SERVER

380 33002528 12/2018


EcoStruxure™ Control Expert
WRITE_ASYN
33002528 12/2018

Chapitre 37
WRITE_ASYN : Ecriture asynchone de données

WRITE_ASYN : Ecriture asynchone de données

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 12/2018 381


WRITE_ASYN

Principe d'un échange


La figure suivante illustre les échanges entre deux stations pour une fonction WRITE_ASYN :

382 33002528 12/2018


WRITE_ASYN

Représentation en FBD
Représentation :

Représentation en LD
Représentation :

Représentation en IL
Représentation :
LD Address
WRITE_ASYN Object_Type, First_Object, Object_Number, Data_to_Write,
Management_Param

33002528 12/2018 383


WRITE_ASYN

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.

384 33002528 12/2018


WRITE_ASYN

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 (voir page 42). 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 12/2018 385


WRITE_ASYN

386 33002528 12/2018


EcoStruxure™ Control Expert
WRITE_GDATA
33002528 12/2018

Chapitre 38
WRITE_GDATA : Ecriture de Global Data Modbus Plus

WRITE_GDATA : Ecriture de Global Data Modbus Plus

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 :

Représentation en LD
Représentation :

33002528 12/2018 387


WRITE_GDATA

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 :

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 (voir page 42).
Il n’est pas nécessaire d’initialiser le paramètre de
longueur avant de lancer l’échange.

388 33002528 12/2018


EcoStruxure™ Control Expert
WRITE_REG
33002528 12/2018

Chapitre 39
WRITE_REG : Ecriture de registre

WRITE_REG : Ecriture de registre

Présentation
Ce chapitre décrit le bloc WRITE_REG.

Contenu de ce chapitre
Ce chapitre contient les sujets suivants :
Sujet Page
Description 390
Types de données dérivés 393
Mode de fonctionnement 395
Description des paramètres 396

33002528 12/2018 389


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.
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.

390 33002528 12/2018


WRITE_REG

Représentation en FBD
Représentation :

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)

33002528 12/2018 391


WRITE_REG

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) ;

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 (voir page 530) 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 (voir page 528).

392 33002528 12/2018


WRITE_REG

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 :

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 12/2018 393


WRITE_REG

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é

394 33002528 12/2018


WRITE_REG

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 :
 Modbus Plus pour le bloc fonction ModbusP_ADDR (voir page 215)
 Ethernet TCP/IP pour le bloc fonction TCP_IP_ADDR (voir page 369)
 Ethernet SY/MAX pour le bloc fonction SYMAX_IP_ADDR (voir page 363)

NOTE : Vous pouvez également utiliser la structure de données WordArr5 avec des constantes.

33002528 12/2018 395


WRITE_REG

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.

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.

396 33002528 12/2018


WRITE_REG

STATUS
Si une erreur se produit lors de l'exécution de la fonction, un code d'erreur (voir page 530) 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 12/2018 397


WRITE_REG

398 33002528 12/2018


EcoStruxure™ Control Expert
WRITE_REG_QX
33002528 12/2018

Chapitre 40
WRITE_REG_QX : écriture de registre sur le bus EIO

WRITE_REG_QX : écriture de registre sur le bus EIO

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.

Représentation en FBD
Représentation :

33002528 12/2018 399


WRITE_REG_QX

Représentation en LD
Représentation :

Représentation en IL
Représentation :
CAL WRITE_REG_QX_Instance (ENABLE:=WriteRegQxEnable, ABORT:=WriteRegQ-
xAbort, 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:=WriteRegQ-
xAbort, ADDR:=ModuleAddress, NO_REG:=NbRegistersToWrite,
REG_WRITE:=WriteData, SLAVEREG:=SlaveAddress, IEC:=IndexAdjust,
DONE=>WriteRegQxSuccessfull, ACTIVE=>WriteRegQxActive,
ERROR=>WriteRegQxFaulty, STATUS=>ErrorCode)

400 33002528 12/2018


WRITE_REG_QX

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 (voir page 79).
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 :

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 (voir page 530) si une erreur est détectée
par le bloc fonction.

33002528 12/2018 401


WRITE_REG_QX

402 33002528 12/2018


EcoStruxure™ Control Expert
WRITE_SDO
33002528 12/2018

Chapitre 41
WRITE_SDO : objet de données du service d'écriture

WRITE_SDO : objet de données du service d'écriture

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).

Représentation en FBD
Représentation :

33002528 12/2018 403


WRITE_SDO

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)

404 33002528 12/2018


WRITE_SDO

Représentation en ST
Représentation :
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)

Description des paramètres


Le tableau suivant décrit les paramètres d’entrée :

Paramètre Type de données Description


d'entrée
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.

33002528 12/2018 405


WRITE_SDO

Le tableau suivant décrit le paramètre de sortie :

Paramètre de Type de données Description


sortie
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 (voir page 530) si le bloc fonction détecte une
erreur.
SDOABORTCODE DWORD Code d'annulation de SDO (voir page 550) si STATUS = 16#4007.

406 33002528 12/2018


EcoStruxure™ Control Expert
WRITE_VAR
33002528 12/2018

Chapitre 42
WRITE_VAR : Ecriture de variables

WRITE_VAR : Ecriture de variables

Objet de ce chapitre
Ce chapitre décrit la fonction de communication WRITE_VAR.

Contenu de ce chapitre
Ce chapitre contient les sujets suivants :
Sujet Page
Description 408
Ecran de saisie assistée 414
Exemple d'écriture de mots sur un réseau 416
Exemple d'écriture de mots via la liaison série des processeurs Modicon M340 419
Exemple de vérification d'exécution 421

33002528 12/2018 407


WRITE_VAR

Description

Description de la fonction
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. Pour plus d'informations sur les règles d'alignement, consultez la page DDT : règles
d'affectation (voir EcoStruxure™ Control Expert, Langages de programmation et structure,
Manuel de référence).
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 :

408 33002528 12/2018


WRITE_VAR

Représentation en LD
Représentation :

Représentation en IL
Représentation :
LD Address
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);

33002528 12/2018 409


WRITE_VAR

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 Instructions spécifiques par plate-forme matérielle :
Premium  Premium :
ARRAY [0..7] OF INT pour  L'adresse de la voie (en mode caractères) de réception du
Modicon M340 et M580 message est indiquée par la fonction ADDR (voir page 87).
 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 (en mode caractères) de réception du
message est indiquée par la fonction ADDM (voir page 73).
 La syntaxe de l'adresse est du type suivant : ADDM
('r.m.c.nœud').
 Modicon M580 :
 Adresse de l'entité cible de l'opération d'écriture, résultat de
la fonction ADDMX (voir page 79).
TYP STRING 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 :
 %M : bits internes,
 %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.

410 33002528 12/2018


WRITE_VAR

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 (voir page 42).

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 12/2018 411


WRITE_VAR

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 TSX 57 46/56


23/30/40/45/55,
PCX 57, PMX 57
Port terminal du maître Uni-Telway 4 4 4 4 8
Liaison PCMCIA ou SCY du maître Uni-Telway 1 8 8 8 8
Port terminal de l'esclave client Uni-Telway 4 1 1 1 8
Liaison PCMCIA ou SCY de l'esclave client 1 1 1 1 1
Uni-Telway
Port terminal de l'esclave serveur Uni-Telway 4 4 4 4 4
Liaison PCMCIA ou SCY de l'esclave serveur 4 6 6 6 6
Uni-Telway
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 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
Modicon M340.

Configuration BMX P34 1000 BMX P34 2000 BMX P34 2010/ BMX P34 2020 BMX P34 2030/
20102 20302
CANopen intégré - - 16 - 16
Ethernet intégré - - - 16 16
Port série du maître 8 16 16 16 -
ModBus

412 33002528 12/2018


WRITE_VAR

Nombre maximal de requêtes client par scrutation sur les CPU Modicon M580 :

Configuration Référence de l'UC (BME P58 …)


10•0 20•0 30•0 40•0 5040 6040
Ethernet 16 32 48 80 80 96

Nombre maximal de requêtes client par scrutation sur les UC (CPU) Modicon M580 redondantes :

Configuration Référence de l'UC (BME H58 …)


2040 4040 6040
Ethernet 32 80 96

Nombre maximal de requêtes traitées par scrutation sur les CPU Modicon M580 :

Configuration Référence de l'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. Le mot système %SW90 permet de régler 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 :

Configuration Référence de l'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. Le mot système %SW90 permet de régler 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 maximal de requêtes simultanées indiqué dans tous les
tableaux prenne en compte le nombre maximal de requêtes simultanées que chaque UC peut
traiter par cycle, en tant que client et en tant que serveur (voir Modicon M580, Matériel, Manuel de
référence).

33002528 12/2018 413


WRITE_VAR

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.

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.

414 33002528 12/2018


WRITE_VAR

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.

33002528 12/2018 415


WRITE_VAR

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_Pa-
rameter (déclaré comme ARRAY [0..3] OF INT).

416 33002528 12/2018


WRITE_VAR

Figure
Les deux stations sont connectées via un réseau Fipway.

33002528 12/2018 417


WRITE_VAR

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 :

Paramètres Description
ADDR(‘{20.1}5.1.3’)  {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

418 33002528 12/2018


WRITE_VAR

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
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 :

33002528 12/2018 419


WRITE_VAR

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 Description
ADDM(‘0.0.0.7’)  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)


0 Adresse du premier objet à écrire
50 Nombre d'objets consécutifs à écrire
Tab_1 Données à écrire
Management_Parameter Table de gestion

420 33002528 12/2018


WRITE_VAR

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 12/2018 421


WRITE_VAR

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;

 %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.

422 33002528 12/2018


EcoStruxure™ Control Expert
XMIT
33002528 12/2018

Chapitre 43
XMIT: Transmit

XMIT: Transmit

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.

Contenu de ce chapitre
Ce chapitre contient les sujets suivants :
Sujet Page
Description sommaire 424
Représentation 425
Description des paramètres 428
Description de la structure des données de XMIT_SET 430
Description de la structure des données de XMIT_CFG 431
Exemple d'application 438

33002528 12/2018 423


XMIT

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 (voir page 445).
EN et ENO peuvent être configurés comme paramètres supplémentaires.

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.

424 33002528 12/2018


XMIT

Représentation

Représentation en FBD

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);

33002528 12/2018 425


XMIT

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)
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

Elément Type de Composant correspondant dans le XMIT LL984


données
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))

426 33002528 12/2018


XMIT

Structure de données de XMIT_CFG

Elément Type de Composant correspondant dans le XMIT LL984


données
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)

33002528 12/2018 427


XMIT

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é.

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.

428 33002528 12/2018


XMIT

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 ê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 12/2018 429


XMIT

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 (voir page 431).
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.

430 33002528 12/2018


XMIT

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.

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

33002528 12/2018 431


XMIT

Code d'erreur Description du défaut


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)
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.

432 33002528 12/2018


XMIT

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).

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 (voir page 462). 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 Réglé sur 1 lorsqu'un équipement DCE connecté à l'automate
RTS/CTS 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 12/2018 433


XMIT

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 (voir page 465).
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
(voir page 467).
Bit 7 Validation des messages sous Réglé sur 1 lorsque vous souhaitez envoyer des messages ASCII à
forme de chaînes 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 (voir page 467).
Bit 8 Validation des messages Réglé sur 1 lorsque vous souhaitez envoyer des messages Modbus
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églé sur 1 pour permettre au bloc XMIT de prendre le contrôle du
réception ASCII 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 (voir page 478).
Bit 10 Validation du caractère de Réglé sur 1 pour autoriser le traitement spécial du caractère ASCII
retour arrière 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 (voir page 478).

434 33002528 12/2018


XMIT

Bit Définition
Bit 11 Validation du contrôle de flux Réglé sur 1 pour autoriser le contrôle de flux matériel en duplex
RTS/CTS 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 (voir page 479).
Bit 12 Validation du contrôle de flux Réglé sur 1 pour permettre un contrôle de flux logiciel en duplex
Xon/Xoff 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 (voir page 480).
Bit 13 Modem à numérotation par Réglé sur 1 lorsque vous utilisez un modem à numérotation
impulsion 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 à Réglé sur 1 lorsque vous utilisez un modem à numérotation
tonalité 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.

33002528 12/2018 435


XMIT

Bit Définition
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.

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 (voir page 429) ou le tableau MSG_OUT (voir page 428)
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 automati-
quement 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 automati-
quement 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).

436 33002528 12/2018


XMIT

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.

33002528 12/2018 437


XMIT

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)
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

438 33002528 12/2018


XMIT

Bloc fonction XMIT

Maintient Start activé jusqu'à la fin de l'exécution de la commande ou l'apparition d'une erreur

33002528 12/2018 439


XMIT

Déclaration de variables
Les tableaux suivants montrent les variables utilisées dans cet exemple.
Tableau de variables

Nom de variable Type de Adresse Description


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.
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.

440 33002528 12/2018


XMIT

Valeurs initiales
Ci-dessous sont indiquées les valeurs initiales des différents tableaux utilisés :
Contenu de la structure de données XmitSetForAaciiOut

Nom de l'élément Type de Adresse Commentaire


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

Contenu de la structure de données XmitSetForSimpleAsciiIn

Nom de l'élément Type de Adresse Commentaire


données
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

33002528 12/2018 441


XMIT

Contenu de la structure de données XmitSetForTermAsciiIn

Nom de l'élément Type de Adresse Commentaire


données
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

Nom de l'élément Type de Adresse Commentaire


données
BaudRate WORD 9600
DataBits BYTE 8 Mode RTU
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

442 33002528 12/2018


XMIT

Contenu de la structure de données MessageAsciiOut

Nom de l'élément Type de Adresse Commentaire


données
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 Adresse Commentaire


données
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

Nom de l'élément Type de Adresse Commentaire


données
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 12/2018 443


XMIT

444 33002528 12/2018


EcoStruxure™ Control Expert
XXMIT
33002528 12/2018

Chapitre 44
XXMIT : Transmission

XXMIT : Transmission

Présentation
Ce chapitre décrit le bloc XXMIT.

Contenu de ce chapitre
Ce chapitre contient les sous-chapitres suivants :
Sous-chapitre Sujet Page
44.1 Introduction au bloc XXMIT 446
44.2 Fonctions XXMIT 447
44.3 Règles de programmation du bloc XXMIT 493
44.4 Références techniques XXMIT 495
44.5 Informations sur le câblage 506

33002528 12/2018 445


XXMIT

Sous-chapitre 44.1
Introduction au bloc XXMIT

Introduction au bloc 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 les communications
contrôlées par le programme d'application.
Les types de communication suivants sont pris en charge :
 maître Modbus ;
 entrée/sortie ASCII simple ;
 entrée ASCII avec un ou deux caractères de fin ;
 communication par modem.

Description de la fonction
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 Modbus 1 des automates
esclaves vers des imprimantes et des terminaux ASCII. XXMIT envoie ces messages via des
modems à numérotation automatique ou des modems radio.

ATTENTION
DONNEES INVALIDES
Dans le cas de messages ASCII, aucun contrôle (CRC ou somme de contrôle) ne garantit la
validité des données reçues.
Pour éviter de recevoir des données invalides en raison de perturbations électriques, il est
recommandé d'utiliser des messages Modbus contenant un mécanisme de contrôle de
redondance cyclique (CRC).
Le non-respect de ces instructions peut provoquer des blessures ou des dommages matériels.

446 33002528 12/2018


XXMIT

Sous-chapitre 44.2
Fonctions XXMIT

Fonctions XXMIT

Vue d'ensemble
Cette section décrit XXMIT.

Contenu de ce sous-chapitre
Ce sous-chapitre contient les sujets suivants :
Sujet Page
Description sommaire 448
Représentation 449
Description détaillée des paramètres 452
Fonctions de communication du bloc XXMIT 462
Fonctions ASCII du bloc XXMIT 463
Fonctions de modem du bloc XXMIT 469
Fonctions Modbus du bloc XXMIT 471
Tampon FIFO et contrôle de flux 478
Exemples d’application 482

33002528 12/2018 447


XXMIT

Description sommaire

Description de la fonction
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 Modbus 1 des automates
esclaves 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.
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 : Les paramètres 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 :

Automate Système d'exploitation Unity Pro(1)/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 les versions 13.1 et antérieures.

Consultez la section Disponibilité des blocs sur les différences plates-formes matérielles
(voir page 31) pour obtenir la liste des matériels pris en charge par le bloc fonction XXMIT.

448 33002528 12/2018


XXMIT

Représentation

Représentation en FBD
Représentation :

33002528 12/2018 449


XXMIT

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)

450 33002528 12/2018


XXMIT

Représentation en ST
Représentation :
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);

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. (voir page 452)
Command WORD Indique la commande à exécuter. (voir page 452)
MsgOut ANY Message à envoyer. (voir page 455)
MsgLen INT Longueur du message de sortie. (voir page 455)
Port BYTE Sélection de l'interface de communication (voir page 455)
Baudrate INT Débit en bauds. (voir page 455)
Databits BYTE Bits de données. (voir page 456)
Stopbits BYTE Bits d'arrêt. (voir page 456)
Parity BYTE Parité. (voir page 456)
RespTout INT Délai d'attente avant réception d'une réponse valide. (voir page 456)
RetryLmt INT Nombre de tentatives jusqu'à réception d'une réponse valide.
(voir page 456)
StartDly INT Délai d'attente avant émission du message. (voir page 457)
EndDly INT Délai d'attente après émission du message. (voir page 457)
Active BOOL La valeur 1 indique qu'une opération XXMIT est en cours. (voir page 457)
Done BOOL La valeur 1 indique que l'opération XXMIT a réussi. (voir page 457)
Error BOOL La valeur 1 indique qu'une erreur est survenue ou que l'opération XXMIT
en cours est terminée. (voir page 458)
Msgln ANY Message entrant. (voir page 458)
RecCount INT Affiche le nombre de caractères reçus. (voir page 458)
Status INT Affiche le code d'erreur généré par le bloc XXMIT. (voir page 458)
Retry INT Indique le nombre de tentatives en cours effectuées par le bloc XXMIT.
(voir page 461)

33002528 12/2018 451


XXMIT

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 462. 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 Avec les processeurs Momentum, une fois le bloc XMIT (voir page 423), XXMIT
de poids fort) (voir page 445) 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.
Bit 14 Activation Réglé sur 1 lorsqu'un équipement DCE connecté à l'automate nécessite une
du contrôle reconnaissance matérielle à l'aide du contrôle RTS/CTS. Ce bit peut être utilisé
modem RTS/CTS 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 Réglé sur 1 lorsque le port sélectionné doit fonctionner en mode RS485. Sinon, il est réglé
du mode RS485 sur 0, valeur correspondant au mode RS232.
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.

452 33002528 12/2018


XXMIT

Bit Définition
Bit 12 Inversion Réglé sur 1 pour l'utilisation avec les commandes de communication ASCII_IN,
de mot ASCII 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 Réglé sur 1 pour supprimer et ignorer tous les caractères du tampon FIFO jusqu'à ce que
ASCII terminée 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 465.
Bit 10 Entrée Réglé sur 1 pour supprimer les caractères ASCII du tampon FIFO pour l'écriture dans le
ASCII simple tableau MsgIn. Pour plus d'informations, consultez la section Fonction d'entrée ASCII
simple, page 467.
Bit 9 Activation Réglé sur 1 lorsque vous souhaitez envoyer des messages ASCII à partir de l'automate.
des messages XXMIT envoie des chaînes ASCII d'une longueur maximale de 1024 caractères.
sous forme de Programmez le message ASCII dans MsgOut. Utilisez le bit 9 OU le bit 8, mais n'utilisez
chaînes ASCII pas les deux.
Bit 8 Activation Réglé sur 1 si vous souhaitez envoyer des messages Modbus à partir de l'automate. Les
des messages messages Modbus peuvent être envoyés au format RTU ou ASCII. Avec 8 bits de
Modbus 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 Réglé sur 1 pour permettre au bloc fonction XXMIT de prendre le contrôle du port
tampon FIFO de sélectionné (1) de l'automate. Le bloc commence à recevoir des caractères ASCII dans
réception ASCII un tampon FIFO circulaire vide de 512 octets. Reportez-vous à Tampon FIFO de
réception ASCII, page 478 pour plus d'informations.
Bit 6 Activation du Défini sur 1 pour permettre le traitement particulier du caractère de retour arrière ASCII
caractère de (BS, 8 hex) lors de l'utilisation d'une entrée ASCII simple (bit 10) ou d'une entrée ASCII
retour arrière 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 478.
Bit 5 Activation du Défini sur 1 pour autoriser le contrôle de flux matériel en duplex intégral à l'aide des
contrôle de flux signaux de synchronisation RTS et CTS pour les messages ASCII. Le contrôle de flux
RTS/CTS RTS/CTS fonctionne en mode d'entrée et en mode de sortie. Reportez-vous à Validation
du contrôle de flux RTS/CTS, page 479 pour plus d'informations.
Bit 4 Activation du Défini sur 1 pour permettre un contrôle de flux logiciel en duplex intégral, à l'aide des
contrôle de flux caractères ASCII Xon (DC1, 11 hex) et Xoff (DC3, 13 hex). Le contrôle de flux Xon/Xoff
Xon/Xoff fonctionne en mode d'entrée et en mode de sortie. Reportez-vous à Validation du contrôle
de flux Xon/Xoff, page 480 pour plus d'informations.
Bit 3 Modem à Défini sur 1 si vous utilisez un modem à numérotation automatique compatible Hayes et
numérotation par souhaitez composer un numéro de téléphone en utilisant la numérotation par impulsion.
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 12/2018 453


XXMIT

Bit Définition
Bit 2 Défini sur 1 si vous utilisez un modem à numérotation automatique compatible Hayes et
Raccrochage du souhaitez raccrocher le modem. Vous devez utiliser le programme utilisateur pour activer
modem ce bit. Le message de raccrochage étant une chaîne ASCII, le bit 9 doit être activé avant