Chapitre 2 : Le bus 485 Modbus
INTRODUCTION
Le Modbus est un protocole de communication industriel introduit par
Modicon en 1979.Il est généralement utilisé avec les automates
programmables ou les équipements de types industriels. Il est maintenant
devenu une norme "open protocol" dans le domaine de l'automatisme et de la
communication industrielle, et est le moyen le plus couramment utilisé pour
faire communiquer des équipements industriels.
Un des avantages du protocole Modbus est sa flexibilité, mais aussi sa facilité
de mise en œuvre. La plupart des appareils et dispositifs embarqués comme les
microcontrôleurs, les automates, les capteurs intelligents etc…sont équipés
d’interface Modbus et sont capables de communiquer en Modbus.
Les canaux de transmission
Un canal de transmission ou ligne de transmission est une liaison entre deux
machines. On désigne généralement le terme émetteur la machine qui envoie
les données et récepteur celle qui les reçoit.
Caractéristiques d’une transmission
Pour une transmission de donnée sur une voie de communication entre deux
machines, la communication peut s’effectuer de différentes manières. La
transmission est caractérisée par :
- Le sens des échanges
- Le mode de transmission : il s’agit du nombre de bit envoyé simultanément
- La synchronisation : il s’agit de la synchronisation entre émetteur et récepteur
Les modes de transmission
Selon le sens des échanges, on distingue 3 modes de transmission :
- Mode simplex ou unidirectionnel : il caractérise une liaison dans laquelle
les données circulent dans un seul sens,c’est-à-dire de l’émétteur vers le
récepteur.
- Mode half duplex ou bi-directionnel alterné : caractérise une liaison
dans laquelle les données circulent dans un sens ou dans l’autre mais pas
les deux en même temps. Ce type de liaison permet d’avoir une liaison
bidirectionnelle utilisant la capacité totale de la ligne.
- Mode full duplex ou duplex intégral : caractérise une liaison dans laquelle les
données circulent de façon directionnelle et simultanée. Chaque extrémité de
la ligne peut émettre et recevoir en même temps, ce qui signifie que la bande
passante est divisée par deux pour chaque sens d’émission des données si un
même support de transmission est utilisé pour les deux transmission.
Les liaisons série
Dans une liaison de type série, les données sont envoyées bit par bit sur la voie
de transmission. Toutefois, étant donné que la plupart des processeurs traitent
les informations de façon parallèle (transmission simultanée de N bits), les
données parallèle arrivant au niveau de l’émetteur et inversement au niveau
du récepteur sont transformées en série par un contrôleur de transmission
appelé UART (universal asynchronous receiver transmitter).
Transmission série asynchrone
En environnement industriel on préfère utiliser la transmission Série
asynchrone plus simple à mettre en œuvre et moins coûteuse. La ligne peut ne
comporter qu'un fil; on en utilise en général 3: émission; réception; masse.
Les éléments binaires d'informations (bits) d'un mot ou caractère sont alors
envoyés successivement les uns après les autres (sérialisation) au rythme d'un
signal d'horloge. Le récepteur effectue I ‘opération inverse: transformation
Série / parallèle à partir de son horloge ayant la même fréquence que celle de
l’émetteur. Les informations peuvent être transmises de manière irrégulière,
cependant, l’intervalle de temps entre 2 bits est fixe. Des bits de
synchronisation (Start,Stop) encadrent les informations de données.
Transmission série synchrone
Une transmission synchrone est une transmission dans laquelle, l’émetteur et
le récepteur sont cadencés à la même horloge.
LES SUPPORTS PHYSIQUES DE TRANSMISSION DU PROTOCOLE MODUBS
Les communications Modbus peuvent s’effectuer via les supports physiques
suivants :
- RS-232
- RS-485
- RS-422
- Ethernet TCP/IP (Modbus Ethernet)
LES VARIATIONS DU PROTOCOLE MODBUS
Il existe 3 variations du protocole Modbus:
- Le Modbus RTU (8bits)
- Le Modbus ASCII (7 bits)
- Le Modbus TCP/IP (ethernet)
Les communications de type modbus sont caractérisées par leur vitesse de
transmission ou baudrate qui s'exprime en bits/s. Typiquement, cette vitesse
de transmission est souvent comprise entre 9600 et 19 200 bits/s, mais on peut
avoir des vitesses supérieures.
LE MODBUS VIA LIAISON RS-232/RS-422/RS-485
La communication modbus via RS-232, RS-422 et RS-485 fonctionne en mode
maitre/esclave. Cela signifie qu’un dispositif fonctionnant comme maître va
interroger un ou plusieurs dispositifs fonctionnant comme esclave. Un dispositif
esclave ne peut donc pas fournir volontairement des informations au maître, il
doit attendre une sollicitation.
Le maître peut écrire des données dans les registres d'un périphérique esclave
ou lire les données à partir des registres de celui-ci.
Le RS232, RS422 et RS485 sont des supports physiques de transmission de
données en série. Chacune de ces interfaces a des avantages et des
inconvénients.
- Le RS232
C'est le plus connu des standards de communication série. Les ports série
RS232 sont présents sur la plupart des PCs standards. Il est de type point to
point et est composé des lignes Rx,Tx et GND.
Le RS232 permet de faire communiquer uniquement un maitre et un esclave
sur chaque ligne. Il fonctionne en full duplex et sa vitesse de communication
peut aller jusqu'à 115 kbits/s.
En RS232, la distance séparant les deux équipements ne dépasse pas
généralement 15 m. Si on n'a besoin d'ajouter plusieurs esclaves sur la même
ligne, il faudra utiliser les liaisons RS422 ou RS485 qui sont plus adéquates.
Le RS232 a comme inconvénients d’être inadapté dans les environnements où
il y’a beaucoup de bruits ou parasites (risque perturbation transmission).
-RS485 HALF-DUPLEX (2 FILS)
C'est la manière la plus répandue d'utiliser la norme RS485. Une seule paire de
fils est utilisée pour la transmission et la réception de données. Plusieurs
dispositifs sont liés sous forme de bus, comme indique la figure suivante.
Différents dispositifs RS485 utilisent différentes notations pour indiquer la
forme correcte de connexion par paire de communication différentielle. La
figure suivante montre certaine des notations utilisées.
La borne commune doit être interconnectée aux bornes correspondantes de
chaque appareil pour assurer l’équilibre de tension entre elles. Si le conducteur
commun n'est pas installé entre tous les appareils, ils doivent être
correctement mis à la terre conformément aux recommandations du fabricant
de chaque appareil du réseau. Cette exigence entraîne l'utilisation d'un
troisième fil, qui, bien que ne participant pas au processus de communication,
est essentiel pour assurer l'intégrité électrique des équipements du réseau. La
nécessité d'utiliser des résistances de terminaison dépend de la longueur totale
du bus de communication et de la vitesse de communication utilisée.
-RS485 FULL-DUPLEX (4 FILS)
Dans cette forme de connexion, deux paires de fils sont utilisées pour la
communication. Une paire de fils transporte les données transmises dans la
direction convertisseur → appareils du réseau (paire de transmission du
convertisseur) et sur l'autre paire les données sont transmises dans la direction
appareils du réseau → convertisseur (paire de réception du convertisseur).
Plusieurs appareils sont connectés sous forme de bus, comme indique la figure
suivante.
La borne commune doit être interconnectée aux bornes correspondantes de
chaque appareil pour assurer l’équilibre de tension entre elles. Si le conducteur
commun n'est pas installé entre tous les appareils, ils doivent être
correctement mis à la terre conformément aux recommandations du fabricant
de chaque appareil du réseau. Cette exigence entraîne l'utilisation d'un
cinquième fil, qui, bien que ne participant pas au processus de communication,
est essentiel pour assurer l'intégrité électrique des équipements du réseau. La
nécessité d'utiliser des résistances de terminaison dépend de la longueur totale
du bus de communication et de la vitesse de communication utilisée.
LES SPECIFICITES DU MODBUS via interface série RS-xxx
En modbus série, seul le maître est actif, les esclaves sont complètement
passifs. C'est le maître qui doit lire et écrire dans chaque esclave. Le maitre
peut communiquer avec un nombre d’esclaves allant jusqu'à 247 (cas du
modbus via RS-485 avec l’utilisation de répéteurs) sur le même réseau. Les
adresses allant de 248 à 255 sont des adressées réservées.
Le RS485 ne peut pas comporter plus de 32 périphériques sur le même nœud,
on utilise alors des répéteurs afin de pouvoir ajouter d'autres périphériques sur
la ligne.
TOPOLOGIE D’EQUIPEMENTS CONNECTES VIA LE MODBUS SERIE RS-xxx
Dans l'image ci-dessous le système Scada/HMI agit en tant que maître alors
que les automates agissent en tant que esclaves.
LES MESSAGES DE BROADCAST
Aussi appelé message de diffusion est une communication unidirectionnelle
initiée par le maitre et envoyé à tous les esclaves. Ce type de message n’obtient
pas de réponse de la part des esclaves, il est utilisé pour envoyer des
commandes communes à tous les esclaves par exemple les commandes de
configuration ou de réinitialisation.
LE MODBUS RTU (Remote Terminal Unit)
La communication Modbus RTU est de type série et se fait via les interfaces
série RS232, RS485 ou RS422.Le codage des informations s’effectue en
binaire. Le modbus RTU fait partie des protocoles industriels les plus utilisés.
Si la communication s’effectue via le RS232, il ne peut y avoir dans ce cas qu’un
seul maitre et qu’un seul esclave. Par contre si la communication s’effectue via
le RS485 ou le RS422, on peut avoir plusieurs esclaves.
NB : En modbus RTU on ne peut pas avoir plusieurs maitres. Le mode de
fonctionnement multi-maitre n’est possible qu’avec le modus TCP/IP.
L'avantage du mode RTU est que les données à transmettre prennent moins de
place donc moins de temps pendant les transmissions. En effet, on adresse plus
de données en 8 qu'en 7 bits.
La trame du MODBUS RTU est constituée d'une suite de caractères
hexadécimaux et contient les informations suivantes :
Numéro d'esclave (1 octet) (le numéro 00 est réservé aux messages de
diffusion)
Code fonction (1 octet)
Données (n octets)
CRC (2 octets)
Chaque octet composant une trame RTU est codé sur 2 caractères
hexadécimaux (2 fois 4 bits)
La taille maximale des données est de 256 octets. L’ensemble des informations
contenues dans le message est exprimé en hexadécimal.
Chaque octet composant un message est transmis en mode RTU de la manière
suivante:
Sans contrôle de la parité :
Avec contrôle de la parité :
Dans le cas d’un contrôle de parité, il vous est demandé de confirmer l’état du
contrôle : paire (even) ou impaire (odd).
Avant et après chaque message (trame), il doit y avoir un silence minimum de
3,5 fois le temps de transmission d’un caractère. L’ensemble du message doit
être transmis de manière continue.
Ainsi, l’équipement détecte le début d’un message quand il reçoit un caractère
valide (contenant son adresse ou l’adresse 00) dans un intervalle de temps d’au
moins 3,5 fois la longueur d’un caractère.
Si le débit de transmission est 9600 bits/s, on aura : 3,5 caractère ( 3,5 * 11 *
(1/9600))
Le temps maximum entre 2 caractères doit être inférieur à 1,5 fois le temps de
transmission d’un caractère. Dans le cas contraire, il y a une erreur de
transmission.
NB : 1 caractère est un format de 11 bits constitué de : 1 bit de start, 8 bits de
données et 2 bit de stop (ou 1 bit parité + 1 bit stop)
La nature des informations de la trame peut varier selon que l'on fera de la
lecture/écriture, de mots, de bits ....