RLI4
RLI4
RLI4
2 CI GE/GM/GI
4éme Partie
RESEAUX DE COMMUNICATION
INDUSTRIELS Modbus
2019/2020
Présentation MODBUS
• MODBUS est un protocole de communication Développé par MODICON en 1979 fonctionnant sur
le mode Client/Serveur et permettant une communication entre un Client (Maitre) et un ou
plusieurs Serveurs (esclave).
• Chaque esclave possède une adresse qui sert d'identifiant dans le bus. De très nombreux
appareils sont disponibles avec le protocole Modbus.
• Il est un standard en milieu industriel.
• Certains appareils (compteur, variateur de vitesse...) sont uniquement esclaves, d'autre
(automate, PC...) peuvent être maître ou esclave.
• Le maître peut venir interroger les différents esclaves grâce à leur adresse et différentes fonctions
(lecture, écriture...).
• Le maître a la possibilité de connaître les informations de chaque esclave et/ou de les piloter.
• Les informations disponibles à la lecture ou à l'écriture sont disponibles dans la documentation
des appareils.
1
05/07/2020
Caractéristiques du MODBUS
• Le protocole MODBUS ne définit que la structure des messages et
leur mode d’échange.
• On peut utiliser n’importe quel support de transmission RS 232, RS
422 ou RS 485, mais la liaison RS 485 est la plus répandue car elle
autorise le «multipoints».
Caractéristiques du MODBUS
• Un des plus utilisés dans la communication entre automates
industriels
• s’adapte au nouvelle technologie: intègre TCP/IP
• permet une communication sur différents supports entre différents
équipements
2
05/07/2020
Trame MODBUS
• Un protocole consiste en la définition de trames d’échange.
• 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.
Trame MODBUS
• Le protocole MODBUS utilise des trames dont le début et la fin sont standards.
L'adresse est placée en début de trame.
• Mode de communication : half-duplex. (2 fils ou 4 fils)
• Le maître parle à un esclave et attend sa réponse,
• Le maître parle à l'ensemble des esclaves, sans attente de réponse (diffusion
générale).
Il ne peut y avoir sur la ligne qu'un seul équipement en train d'émettre. Aucun
esclave ne peut envoyer un message sans une demande préalable du maître. Le
dialogue entre les esclaves est impossible.
3
05/07/2020
Trame MODBUS
• Echange maître vers 1 esclave : le maître envoie une demande et attend une
réponse.
• Echange Maître vers toutes les stations esclaves : le maître diffuse un message à
tous les esclaves présents sur le réseau, ceux-ci exécutent l’ordre du message
sans émettre une réponse.
Trame MODBUS
Tout échange contient deux trames :
1. une demande du maître
2. et une réponse de l'esclave
Code CRC
Adresse data
fonction Ou LRC
4
05/07/2020
Contrôle d ’erreur
MAITRE Esclave
MODBUS série
• 2 modes de transmission
• RTU (Remote Terminal Unit) Unité terminale distante.
• les octets sont transmis directement sans conversion ASCII.
• Le numéro d'esclave par exemple "01" sera envoyé tel que (00000001)
5
05/07/2020
MODBUS série
11
Mode RTU
• Trame MODBUS
12
6
05/07/2020
Transmission RTU
13
Transmission RTU
• La trame ne comporte ni octet d’en-tête de message, ni octets de fin
de message.
CRC16 : Mot utilisé pour détecter les erreurs de transmission (cyclical redundancy check) ou test de
redondance cyclique.
La détection de fin de trame est réalisée sur un silence supérieur ou égal à 3 octets.
14
7
05/07/2020
elles se caractérisent par un code fonction sur 01 Lecture de n bits de sortie consécutifs
équipements ne supportent pas tous les codes 03 Lecture de n mots de sortie consécutifs
Mode ASCII
Chaque champ composant une trame est codé avec 2 caractères ASCII
(2 fois 8 bits).
LRC : C’est la somme en hexadécimal modulo 256 du contenu de la trame hors délimiteurs,
complémentée à 2 et transmise en ASCII.
16
8
05/07/2020
Calcul du LRC
• Le calcul pratique du LRC se fait par :
• S = (n°esclave + fonction + data) mod 256
• S=~S
• S=S+1
• Le contrôle de validité se fait par : (n°esclave + fonction + data + LRC reçu) = 0x00
• Exemple:
• esclave 0x01
• fonction 0x05 éciture bit n°1
• MSB adresse 0x00
• LSB adresse 0x01
• MSB data 0xFF valeur d'écriture
• LSB data 0x00
• LRC 0xFA
17
18
9
05/07/2020
Request :
1 byte 1 byte 2 bytes 2 bytes 2 bytes
Slave Function First word Number of
CRC16
Address code = 03 address words to read
Response :
1 byte 1 byte 1 bytes 2 bytes 2 bytes 2 bytes
Slave Function Number of Value of the Value of the
CRC16
Address code = 03 bytes read first word last word
20
10
05/07/2020
• Trame émise par le maître pour lire des mots du registre 450 au registre 456 : 04 03 01 C2 00 07 5A C8
• Adresse esclave : 04
• Code fonction 03 = lecture registre
• N° du registre de début de lecture : MSB : 01 et LSB : C2 (450)10=(01C2)16
• Nombre de registre de lecture : MSB : 00 et LSB : 07
• CRC : 5A C8
11