Transmission de l’information COURS SEN
Le protocole Modbus
(réf : GenIndus)
I - INTRODUCTION
Le protocole MODBUS a été créé en 1979 par Modicon (Télémécanique, Schneider Automation). Il est
aujourd'hui très utilisé dans l'industrie. Il ne définit que la structure des messages et leur mode d’échange,
car on peut utiliser n’importe quel support de transmission (RS232, RS422 ou RS485) ; la liaison RS485
est la plus répandue car elle autorise le « multipoints ». Modbus est un bus de terrain industriel.
Exemple d’utilisation d’un bus série associé au protocole Modbus :
Variation de vitesse via automate industriel.
Automate industriel de
marque Wago
Variateur de vitesse (de rotation
d’un moteur électrique)
II – CARACTERISATION DES ECHANGES
Il y a un module maître et 1 ou plusieurs modules esclave (247 max).
Les échanges sont réalisés à l’initiative du maître et comportent une demande du maître et une réponse de
l’esclave. Ces demandes sont adressées :
- soit à un esclave (identifié par son numéro) ; (2 esclaves ne peuvent dialoguer ensemble)
Lycée des Métiers Jacques Prévert Combs – la – Ville
Section de BAC PRO Systèmes électroniques numériques 1
Electronique Industrielle Embarquée
Transmission de l’information COURS SEN
- soit à tous les esclaves (diffusion) ; dans ce cas, les commandes du maître sont obligatoirement
des commandes d’écriture et il n’attend pas de réponse.
Lycée des Métiers Jacques Prévert Combs – la – Ville
Section de BAC PRO Systèmes électroniques numériques 2
Electronique Industrielle Embarquée
Transmission de l’information COURS SEN
III – DIFFERENCE DE TRAMES MODBUS
Il existe 2 formats de trames des messages : ASCII (American Standard Code for Information
Interchange) et RTU (Remote Terminal Unit).
Ces 2 formats peuvent être utilisés dans le protocole Modbus, mais sont incompatibles entre eux. Environ
95% des modules communicants sur Modbus utilisent des trames RTU.
Le format ASCII offre une « souplesse » plus importante sur les timing inter-octet (jusqu’à 1 seconde) et
constitue une véritable transmission asynchrone.
Le format RTU permet pour une même vitesse de transmission, un plus fort débit de données.
La liaison Modbus est une liaison half-duplex (à l’alternat).
IV – STRUCTURE DES TRAMES MODBUS
- trame d’échange maître esclave (question) :
Codé sur 1 octet. Code fonction sur 1 octet CRC (Code de
Adresse de chaque (24). redondance cyclique) sur
esclave (unique) et qui va Permet de sélectionner 2 octets, utilisé pour
de 1 à 255. une commande (lecture, détecter les erreurs de
écriture, bit, mot). transmission.
Si octet = 00, la demande
concerne tous les Données
esclaves. complémentaires pour
IDU = identifiant d’unité exécuter l’action
Lorsque le message est reçu par l’esclave, ce dernier lit le mot de contrôle (CRC) et accepte ou refuse le
message.
Exemple du module GenIndus pour interroger l’état des entrées E1 à E4 :
Trame envoyée par le maître : 01 02 00 00 00 04 79 C9
01 adresse de l’esclave (par défaut)
02 code fonction de lecture
00 00 1ère adresse de l’entrée TOR
donnée
00 04 nombre d’adresses à lire (4 pour 4 entrées)
79 C9 Code de vérification des erreurs (il s’agit d’un calcul polynômial).
Lycée des Métiers Jacques Prévert Combs – la – Ville
Section de BAC PRO Systèmes électroniques numériques 3
Electronique Industrielle Embarquée
Transmission de l’information COURS SEN
- trame d’échange esclave maître (réponse) :
La trame de réponse a un format similaire à la trame question.
Exemple de réponse avec le GenIndus (lecture des entrées) :
Trame reçue par le maître : 01 02 01 00 A1 88
01 adresse de l’esclave
02 code fonction
01 nombre d’octets à lire
00 état des 4 entrées (%0000 E1=E2=E3=E4 =0)
A1 88 Code de vérification de la transmission
- trame d’échange esclave maître (réponse en cas d’erreur) :
Si une erreur apparaît, l’esclave répond avec un code fonction modifié et les données contiennent un code
d’exception permettant de connaître le type d’erreur.
PF : poids fort
pf : poids faible
pf PF
Lorsque le maître émet une demande, il calcule le CRC. Lorsque l’esclave reçoit le message, il le range
en mémoire, calcule le CRC et le compare au CRC reçu.
Si le message est incorrect (CRC différents), l’esclave ne répond pas.
Si le message est correct mais que l’esclave ne peut le traiter, il renvoie une réponse d’exception.
Lycée des Métiers Jacques Prévert Combs – la – Ville
Section de BAC PRO Systèmes électroniques numériques 4
Electronique Industrielle Embarquée
Transmission de l’information COURS SEN
V – STRUCTURE GENERALE DES TRAMES MODBUS SELON LES FORMATS
- Format ASCII
Chaque octet composant une trame est codé avec 2 caractères ASCII (2x 8 bits).
Start Adresse Fonction Données CRC Stop
1 octet 2 octets 2 octets n octets 2 octets 2 octets
- Format RTU (Unité Terminal Distante)
Ce mode RTU est à temps contrôlé : les temps entre les caractères et entre les trames doivent être
respectés, sinon le protocole sera refusé.
Start Adresse Fonction Données CRC Stop
Silence 1 octet 1 octets n octets 2 octets Silence
(256 max)
En mode RTU, chaque octet composant le message est transmis avec ou sans parité, comme suit :
Start Bit0 Bit1 Bit2 Bit3 Bit4 Bit5 Bit6 Bit7 Parité Stop
L’ensemble du message doit être transmis de manière continue. Si un silence de plus de 3 fois le temps de
transmission d’un mot intervient au cours de la transmission, le destinataire du message considérera que
la prochaine information sera l’adresse du début d’un nouveau message.
Lycée des Métiers Jacques Prévert Combs – la – Ville
Section de BAC PRO Systèmes électroniques numériques 5
Electronique Industrielle Embarquée