Utilisation de la bibliothèque Modb_l05
Note d’application
a49150m, Français Version 1.5.0
05/09/2007
ii • General
Copyright 2001 by WAGO Kontakttechnik GmbH Tous droits réservés.
WAGO Kontakttechnik GmbH Hansastraße 27
D-32423 Minden
Phone: +49 (0) 571/8 87 – 0 Fax: +49 (0) 571/8 87 – 1 69 E-Mail: info@wago.com
Web: http://www.wago.com Technical Support
Phone: +49 (0) 571/8 87 – 5 55 Fax: +49 (0) 571/8 87 – 4 30 E-Mail: support@wago.com
WAGO Contact SA Paris Nord 2
BP 50 065
95947 Roissy-Ch.-de-Gaulle Cedex Tel. : +33 (0) 1 48 17 25 90 Fax : +33 (0) 1 48 63 25 20 E-Mail : info-fr@wago.com Web: http://www.wago.com Support technique
Tel. : +33 (0) 1 48 17 25 90 Fax : +33 (0) 1 48 17 25 92 E-Mail : support.fr@wago.com
Toutes les mesures imaginables ont été prises pour garantir l'exactitude et la complétude de la présente documentation. Comme il est impossible, malgré un travail consciencieux, d'éviter toutes les erreurs, nous recevrons avec gratitude vos remarques et suggestions.
Nous attirons votre attention sur le fait que dans ce manuel, les désignations de logiciels et de matériels et plus généralement les noms de marques des en- treprises concernées sont soumis à une protection des marchandises, à une protection des marques ou à une protection liée aux droits de brevet.
Note d’application
a49150m
Sommaire • iii
SOMMAIRE
1 Informations importantes ... 2
1.1 Bases juridiques ... 2
1.1.1 Protection des droits d’auteur... 2
1.1.2 Qualification du personnel... 2
1.1.3 Utilisation dans le cadre prévu ... 2
1.2 Domaine de validité ... 3
1.3 Symboles... 3
2 Pré requis... 4
2.1 Communication série RS232 ... 4
2.2 Communication série RS485 ... 5
3 Description de la bibliothèque ... 6
4 Gestion de flux d’une communication série ... 11
4.1 Gestion de flux pour une communication série RS232 ... 11
4.2 Gestion de flux pour une communication série RS485 ... 12
5 Projets d’exemple... 13
6 Annexes ... 14
6.1 Valeurs des paramètres d’entrée ... 14
6.2 Valeurs des paramètres d’entrée/sortie... 15
6.3 Valeurs des paramètres de sortie ... 15
7 En cas de problème ... 16
2 • Informations importantes
1 Informations importantes
Pour assurer à l'utilisateur une installation et une mise en service rapides des appareils décrits dans ce manuel, il est nécessaire de lire et de respecter scru- puleusement les informations et les explications suivantes.
1.1 Bases juridiques
1.1.1 Protection des droits d’auteur
Ce manuel, y compris toutes les illustrations qui s'y trouvent, est protégé par la législation sur les droits d'auteur. Toute autre utilisation de ce manuel s'écar- tant de la réglementation concernant les droits d'auteur est interdite. Sa repro- duction, sa traduction dans une autre langue, de même que son archivage et modification électronique et phototechnique nécessitent une autorisation ex- presse écrite de WAGO Kontakttechnik GmbH, Minden. Toute infraction fera l’objet d’une demande de dommages et intérêts.
WAGO Kontakttechnik GmbH se réserve le droit d’effectuer des modifica- tions autorisées par le progrès technique. Dans le cas d’établissement d’un brevet ou d’une protection légale des brevets, tous les droits sont réservés par WAGO Kontakttechnik GmbH. Les produits d’autres fabricants sont toujours nommés sans faire référence aux droits de propriétés industrielles.
L’existence de tels droits ne peut donc être ignorée.
1.1.2 Qualification du personnel
L'utilisation des produits telle qu'elle est décrite dans ce manuel s'adresse ex- clusivement à des personnes possédant une formation dans la programmation d'un API, à des personnes formées en électricité ou à des personnes placées sous la responsabilité de personnes formées en électricité, et qui de plus sont familiarisées avec les normes en vigueur. WAGO Kontakttechnik GmbH dé- cline toute responsabilité pour des mauvaises manipulations ou des dommages causés sur des produits WAGO ou des produits tiers, dus au non-respect des informations contenues dans ce manuel.
1.1.3 Utilisation dans le cadre prévu
Les composants sont livrés depuis l'usine pour chacun des cas d'application avec une configuration fixe, matérielle et logicielle. Les modifications ne sont permises que dans le cadre des possibilités contenues dans les manuels. Toute autre modification sur les matériels et logiciels, de même qu'une utilisation non conforme à la réglementation entraîne l'exclusion de la responsabilité de la société WAGO Kontakttechnik GmbH.
Veuillez vous adresser directement à la société WAGO Kontakttechnik GmbH pour toute demande de modification, voire de nouvelle configuration.
Note d’application
a49150m
Informations importantes • 3
1.2 Domaine de validité
Cette note d’application est basée sur des versions logicielles et matérielles spécifiques, ainsi que sur la documentation s’y référant. La validité de cette note d’application est donc limitée à l’installation décrite. De nouvelles ver- sions logicielles et matérielles pourraient donner lieu à des manipulations dif- férentes.
Veuillez respecter les descriptions détaillées dans les manuels respectifs.
1.3 Symboles
Danger
Respecter impérativement ces informations afin de préserver toute personne d’un éventuel dommage
Avertissement
Respecter impérativement ces informations afin de préserver l’appareil de tout dommage matériel
Attention
Respecter impérativement les conditions additionnelles permettant d’assurer un fonctionnement sans erreur
ESD (Electrostatic Discharge – Décharge électrostatique)
Attention aux composants sensibles aux décharges électrostatiques. Respecter les mesures de précaution pour le maniement des composants à risques.
Remarque
Procédures ou conseils pour une utilisation efficace de l’appareil et pour une optimisation logicielle
i
Informations complémentairesRenvoi à des références de littérature supplémentaires, manuels, fiches tech- niques, et pages INTERNET
4 • Pré requis
2 Pré requis
Afin de mettre en place une communication Modbus Maître à travers une borne série programmable, certains paramètres doivent être ajustés sous Wa- go-I/O-Check 2. Qu’il s’agisse d’une communication série RS232 ou RS485, il est nécessaire de modifier le paramètre Data Bytes (par défaut à 3) ainsi que le paramètre Continuous Send (par défaut à OFF).
2.1 Communication série RS232
- Positionner le paramètre Data bytes à 5. De ce fait, la borne série utilisera non plus 3 mais 5 octets pour l’établissement de la communication série.
Tout ceci dans le but de fluidifier les différents échanges.
D’autre part, la modification de ce paramètre entraîne le changement du format de sortie (par défaut en Alternative) en Standard.
- Modifier le paramètre Continuous Send à ON. Ceci est préconisé pour les équipements sensibles aux silences inter caractères afin d’éviter les er- reurs de TimeOut.
Note d’application
a49150m
Pré requis • 5
2.2 Communication série RS485
- Positionner le paramètre Data bytes à 5. De ce fait, la borne série utilisera non plus 3 mais 5 octets pour l’établissement de la communication série.
Tout ceci dans le but de fluidifier les différents échanges.
D’autre part, la modification de ce paramètre entraîne le changement du format de sortie (par défaut en Alternative) en Standard.
Attention
Dans le cas d’une communication en 2 fils, modifier le paramètre Duplex Mode à Halfduplex.
- Modifier le paramètre Continuous Send à ON. Ceci est préconisé pour les équipements sensibles aux silences inter caractères afin d’éviter les er- reurs de TimeOut.
6 • Description de la bibliothèque
3 Description de la bibliothèque
La bibliothèque Modb_l05.lib contient deux blocs fonctionnels :
- MODBUSMASTER_RTU : bloc fonctionnel qui permet de gérer une borne d’interface série en tant que maître Modbus RTU.
- MODBUSSLAVE_RTU : bloc fonctionnel qui permet de gérer une borne d’interface série en tant qu’esclave Modbus RTU.
Elle permet en outre la configuration automatique de la borne d’interface sé- rie.
MODBUSMASTER_RTU
WAGO-I/O-SYSTEM – Eléments de bibliothèque
Catégorie : Communication série Nom : MODBUSMASTER_RTU
Type : Fonction Bloc fonctionnel X Programme Nom de la bibliothèque : Modb_l05
Bibliothèques requises Mod_com
Serial_Interface_01 SerComm
Utilisable sur : Contrôleurs 750-8xx (sauf 750-812/814/815/816)
Paramètres d’entrée (VAR_INPUT)
Type de variable
Description
bCOM_PORT BYTE Numéro de port de l’interface série à utiliser. (cf annexes)
cbCOM_BAUDRATE COM_BAUDRATE Vitesse de communication.
(cf annexes) cpCOM_PARITY COM_PARITY Parité. (cf annexes) csCOM_STOPBITS COM_STOPBITS Bits de stop. (cf annexes) cbsCOM_BYTESIZE COM_BYTESIZE Bits de données. (cf annexes) cfCOM_FLOW_CONTROL COM_FLOW_
CONTROL Contrôle du flux de la communication.
(cf annexes)
TimeOut TIME Temps maximal entre l’émission de la requête et la réception de la réponse.
Attention : L’utilisation des paramètres par défaut pour les bornes configurables (par exemple BAUDRATE_TERMINAL_DEFAULT,
BYTESIZE_TERMINAL_DEFAULT…) implique que les valeurs des différentes va- riables d’entrées seront celles configurées avec le logiciel WAGO-IO-Check2.
Pour les bornes non paramétrables, l’utilisation de ces paramètres par défaut est obligatoire.
a49150m
Note d’application
Description de la bibliothèque • 7
Paramètre de sortie (VAR_OUTPUT)
Type de variable
Description
MB_Error enumMB
_ERROR Code d’erreur retourné par le bloc fonctionnel. (cf annexes)
Paramètres d’entrée/sortie (VAR_IN_OUT)
Type de
variable Description
StartFunction BOOL A TRUE, cette variable est à l’initiative de la requête Modbus. La variable est réinitialisée à FALSE lorsqu’une ré- ponse a été reçue ou lorsque le temps de TimeOut est écoulé.
Query typModbusQuery Composante de la trame d’émission.
Structure composée de:
- L’adresse de l’esclave.
- Le code fonction.
- l’adresse de début de lecture ou d’écriture.
- La quantité de données à lire ou à écrire.
- Un tableau de 125 mots contenant les données du buffer d’émission du bloc fonctionnel.
(cf annexes) Response typModbusRes-
ponse Composante de la trame de récep- tion.
Structure composée de :
- L’erreur retournée par l’esclave.
- L’adresse de l’esclave.
- Le code fonction.
- L’adresse de début de lecture ou d’écriture.
- La quantité de données à lire ou à écrire.
- Un tableau de 125 mots contenant les données du buffer de réception du bloc fonctionnel.
(cf annexes)
8 • Description de la bibliothèque
Représentation graphique :
Fonctionnalité :
Le bloc fonctionnel MODBUSMASTER_RTU permet de gérer une borne d’interface série en Modbus Maître. L’appel à ce bloc doit se faire à chaque cycle afin de garan- tir la communication.
Ce bloc fonctionnel supporte les codes fonctions suivants : 0x01 Read Coil Status (Lecture de n bits)
0x02 Read Input Status (Lecture de n bits interne) 0x03 Read Holding Registers (Lecture de n mots) 0x04 Read Input Registers (Lecture de n mots interne) 0x05 Force Single Coil (Ecriture d’un bit)
0x06 Preset Single Registers (Ecriture d’un mot)
0x0B Fetch Comm Event Ctr (Lecture compteur d’événement) 0x0F Force Multiple Coils (Ecriture de n bits)
0x10 Preset Multiple Registers (Ecriture de n mots)
Note d’application
a49150m
Description de la bibliothèque • 9
MODBUSSLAVE_RTU (Bloc fonctionnel non supporté par certains contrôleurs)
WAGO-I/O-SYSTEM – Eléments de bibliothèque
Catégorie : Communication série Nom : MODBUSSLAVE_RTU
Type : Fonction Bloc fonctionnel X Programme Nom de la bibliothèque : Modb_l05
Bibliothèques requises Mod_com
Serial_Interface_01 SerComm
Utilisable sur : Contrôleurs 750-8xx (sauf 750-812/814/815/816/841 et 758-xxx)
Paramètres d’entrée (VAR_INPUT)
Type de variable
Description
SlaveAddress BYTE Adresse de l’esclave avec lequel sera établie la communication.
TimeOut TIME Temps maximal entre l’émission de la requête et la réception de la réponse.
bCOM_PORT BYTE Numéro de port de l’interface série à utiliser. (cf annexes)
cbCOM_BAUDRATE COM_BAUDRATE Vitesse de communication.
(cf annexes) cpCOM_PARITY COM_PARITY Parité. (cf annexes) csCOM_STOPBITS COM_STOPBITS Bits de stop. (cf annexes) cbsCOM_BYTESIZE COM_BYTESIZE Bits de données. (cf annexes) cfCOM_FLOW_CONTROL COM_FLOW_
CONTROL Contrôle du flux de la communica- tion. (cf annexes)
tWATCHDOG_TIME TIME Temps maximal entre les différents messages envoyés par le maître.
xMODBUS_81X_MODE BOOL A FALSE, relecture possible de l’état des sorties à partir de l’adresse 0.
Fonction compatible avec le Code fonction 01.
Attention : L’utilisation des paramètres par défaut pour les bornes configurables (par exemple BAUDRATE_TERMINAL_DEFAULT,
BYTESIZE_TERMINAL_DEFAULT…) implique que les valeurs des différentes va- riables d’entrées seront celles configurées avec le logiciel WAGO-IO-Check2.
Pour les bornes non paramétrables, l’utilisation de ces paramètres par défaut est obligatoire.
10 • Description de la bibliothèque
Paramètre de sortie (VAR_OUTPUT)
Type de variable
Description
xWATCHDOG_OK BOOL Booléen à TRUE quand le premier message provenant du maître a été reçu.
Error BYTE Code d’erreur retourné par le bloc fonctionnel
0x00 : Pas d’erreur
0x01 : Code fonction illégal
0x02 : Adresse des données illégale 0x03 : Valeur des données illégale Représentation graphique :
Fonctionnalité :
Le bloc fonctionnel MODBUSSLAVE_RTU permet de gérer une borne d’interface série en Modbus Esclave. L’appel à ce bloc doit se faire à chaque cycle afin de ga- rantir la communication.
Ce bloc fonctionnel supporte les codes fonctions suivants : 0x01 Read Coil Status (Lecture de n bits)
0x02 Read Input Status (Lecture de n bits interne) 0x03 Read Holding Registers (Lecture de n mots) 0x04 Read Input Registers (Lecture de n mots interne) 0x05 Force Single Coil (Ecriture d’un bit)
0x06 Preset Single Registers (Ecriture d’un mot)
0x0B Fetch Comm Event Ctr (Lecture compteur d’événement) 0x0F Force Multiple Coils (Ecriture de n bits)
0x10 Preset Multiple Registers (Ecriture de n mots)
Note d’application
a49150m
Gestion de flux d’une communication série • 11
4 Gestion de flux d’une communication série
La communication série est une communication bidirectionnelle qui per- met l’échange d’informations entre deux équipements : émetteur et récepteur.
Afin de pouvoir gérer au mieux les informations nécessaires, il apparaît par- fois essentiel de réguler le flux des données émis et reçus.
Les caractéristiques de la régulation seront spécifiées soit à travers le logi- ciel Wago-I/O-Check 2 soit à travers le bloc fonctionnel ModbusMaster.
A savoir que l’appel du bloc fonctionnel avec les paramètres requis a pour incidence une reconfiguration de la borne et de ce fait une modification des paramètres sous Wago-I/O-Check 2.
4.1 Gestion de flux pour une communication série RS232
Le protocole série RS232 met à notre disposition deux possibilités afin de gérer le flux des données:
- soit une gestion de flux matériel
- soit une gestion de flux logiciel
La gestion matérielle du flux se fait grâce aux deux signaux RTS (Request To
Send) et CTS (Clear To Send).
La gestion logicielle quant a elle fait intervenir deux caractères XOFF, carac- tère de code décimal 17 et XON, caractère de code décimal 19.
Lors de l’utilisation du bloc fonctionnel, le contrôle du flux des données se fera à travers le paramètre COM_FLOW_CONTROL (cf. annexes).
Trois possibilités pour une communication série RS232 :
- NO_FLOW_CONTROL : Les données sont échangées librement sans in- tervention de signaux contrôleurs. Lorsque l’appel du bloc fonctionnel est fait avec ce paramètre, la borne série est alors reconfigurée. Le paramètre RTS/CTS, par défaut actif, est alors désactivé.
- RTS_CTS : les informations échangées sont régulées grâce aux deux si- gnaux RTS et CTS. Deux possibilités pour activer cette option. Soit en spécifiant le paramètre au bloc fonctionnel soit en activant l’option RTS/CTS sous Wago-I/O-Check 2.
- XON_XOFF : Ce contrôle de flux est de manière générale à prohiber. En effet, si les trames Modbus envoyées et reçues contiennent les deux carac- tères cités précédemment, la gestion se fera alors de manière aléatoire.
12 • Gestion de flux d’une communication série
Remarque
Lorsque les paramètres de contrôle de flux ont été spécifiés avec Wago-I/O- Check 2, il est nécessaire pour la prise en compte de ceux-ci d’utiliser au ni- veau du bloc fonctionnel le paramètre
FLOW_CONTROL_TERMINAL_DEFAULT.
4.2 Gestion de flux pour une communication série RS485
La communication série RS485 permet une transmission des données en diffé- rentiel. Il est nécessaire de spécifier pour ce type de réseau le mode (Half Du- plex ou Full Duplex) ainsi que le type de liaison (2 fils ou 4 fils) utilisé pour l’échange des informations.
En Full Duplex, les données sont envoyées simultanément dans les deux sens (émission et réception).
En Half Duplex, l’envoi des données est alterné avec la réception (mode émis-
sion ou mode réception).
Comme évoqué précédemment la régulation du flux des données se fera soit à travers le logiciel Wago-I/O-Check 2 soit à travers le bloc fonctionnel.
Deux possibilités pour une communication série RS485 :
- Half Duplex (2 fils ou 4 fils). En mode 2 fils, veiller à ne pas oublier les straps nécessaires, TxD↔RxD d’une part et /TxD↔/RxD d’autre part.
On aboutit donc à une liaison de polarité + et -.
- Full Duplex, par définition en 4 fils.
Remarque
Lorsque les paramètres de contrôle de flux ont été spécifiés avec Wago-I/O- Check 2, il est nécessaire pour la prise en compte de ceux-ci d’utiliser au ni- veau du bloc fonctionnel le paramètre
FLOW_CONTROL_TERMINAL_DEFAULT.
Note d’application
a49150m
Projets d’exemple • 13
5 Projets d’exemple
Deux projets d’exemple correspondent à l’utilisation de ces deux blocs fonctionnels : ModbusMaster_l05.pro et ModbusSlave_l05.pro.
Le projet d’exemple ModbusMaster_l05.pro a pour fonction l’exécution cyclique sur un esclave Modbus de 4 requêtes : lecture bits, écriture bits, lecture mots et écriture mots.
L’ensemble des requêtes à exécuter est stocké dans un tableau selon une structure type typModbusQuery.
Une fois le booléen Start retombé à FALSE, le programme teste le code d’erreur renvoyé par le bloc fonctionnel MODBUSMASTER_RTU. S’il n’y a pas d’erreur, les données sont correctement reçues ou émises selon la requête.
En cas d’erreur, un compteur est incrémenté et on passe à la requête qui suit.
Attention
1. Les fichiers .exp ne sont pas exploitables directement, se référer à la note d’application a47040mf qui accompagne le package.
14 • Annexes
6 Annexes
6.1 Valeurs des paramètres d’entrée
• bCOM_PORT : 0x01 pour la prise console 0x02 pour la première borne série 0x03 pour la deuxième borne série
… (possibilité d’avoir jusqu’à 64 bornes série)
• bCOM_BAUDRATE : BAUD_110
BAUD_300
BAUD_600
BAUD_1200
BAUD_2400
BAUD_4800
BAUD_9600
BAUD_12000
BAUD_14400
BAUD_19200
BAUD_28800
BAUD_38400
BAUD_57600
BAUD_62500
BAUDRATE_TERMINAL_DEFAULT
• cpCOM_PARITY : PARITY_NO PARITY_ODD
PARITY_EVEN
PARITY_TERMINAL_DEFAULT
• csCOM_STOPBITS : STOPBITS_1 STOPBITS_2
STOPBITS_TERMINAL_DEFAULT
• cbsCOM_BYTESIZE : BS_7 BS_8
BYTESIZE_TERMINAL_DEFAULT
• cfCOM_FLOW_CONTROL :
NO_FLOW_CONTROL
XON_XOFF RTS_CTS FULLDUPLEX HALFDUPLEX
FLOW_CONTROL_TERMINAL_DEFAULT
Note d’application
a49150m
Annexes • 15
6.2 Valeurs des paramètres d’entrée/sortie
• Query
TYPE typModbusQuery:
STRUCT
SlaveAddress: BYTE;
FunctionCode: BYTE;
StartAddress: UINT;
Quantity: UINT;
Data: ARRAY[0..124] OF WORD;
END_STRUCT END_TYPE
• Response
TYPE typModbusResponse:
STRUCT
Error: WORD;
SlaveAddress: BYTE;
FunctionCode: BYTE;
StartAddress: UINT;
Quantity: UINT;
Data: ARRAY[0..124] OF WORD;
END_STRUCT END_TYPE
6.3 Valeurs des paramètres de sortie
• MB_Error
TYPE enumMB_ERROR
MB_NO_ERROR
MB_NOT_SUPPORTED_FUNCTION
MB_ILLEGAL_DATA
MB_EXTENDED_SLAVE_ERROR
MB_CRC_ERROR
MB_ILLEGAL_NUMBER_OF_POINTS MB_OVERRUN
MB_TIME_OUT
END_TYPE
16 • En cas de problème
7 En cas de problème
Description Solution
Clignotement de la led I/O en rouge.
⇒
⇒
⇒
Vérifier que la station possède au moins une borne d’E/S.
Vérifier la présence de la borne finale de bus (750-600)
Se reporter au manuel du contrôleur
Clignotement de la led I/O en orange.
⇒ Contacter le support technique
Pas de réponse de l’esclave, erreur de TimeOut
⇒
⇒
⇒
⇒
⇒
⇒
Vérifier le câblage de la carte d’interface série (straps) et de la liaison avec l’esclave Modbus.
Vérifier les résistances de terminaison
Vérifier la bonne configuration de la borne série.
Cf. Chapitre 2
Vérifier que les paramètres de communication du bloc
fonctionnel sont en adéquation avec la borne série d’une part et avec l’esclave Modbus d’autre part.
Cf. chapitre 4 et 6.
Vérifier le numéro du port de communication.
Vérifier l’adresse de l’esclave Problème de
communication
Pas de réponse de l’esclave, erreur de CRC
⇒
⇒
Vérifier que l’adresse de lecture ou d’écriture correspond à une zone accessible.
Vérifier que la quantité
d’informations à lire ou à écrire est valide
Note d’application
a49150m
En cas de problème • 17
Fonctionnement automate
Après coupure du 24V, le programme ne tourne plus.
⇒
⇒
Vérifier que le programme a bien été flashé.
Vérifier que le switch, placé sous la trappe en face avant, est en position haute
WAGO Kontakttechnik GmbH Postfach 2880 • D-32385 Minden Hansastraße 27 • D-32423 Minden Phone: 05 71/8 87 – 0
Telefax: 05 71/8 87 – 1 69 E-Mail: info@wago.com
Internet: http://www.wago.com