You are on page 1of 23

27/10/2022 CHAPITRE 2 :

MODBUS

OBJECTIF

- Vous aidez à définir de manière simple le


protocole Modbus

- A connaitre les variations du protocole Modbus

- A décortiquer facilement les trames modbus

DR. ATHMANI Samir


ECOLE NATIONALE SUPERIEUR …
Table des matières :
Liste des figures : ........................................................................................................................... 2
Liste des Tableaux ......................................................................................................................... 2
1 INTRODUCTION ............................................................................................................................... 3
2 Principe générale du protocole Modbus ......................................................................................... 4
3 Implémentation sur liaison série ..................................................................................................... 4
3.1 LES SUPPORTS PHYSIQUES DE TRANSMISSION DU PROTOCOLE MODUBS ............................ 6
3.1.1 Le RS232 .......................................................................................................................... 6
3.1.2 Le RS422 .......................................................................................................................... 7
3.1.3 RS485 ............................................................................................................................... 7
3.2 Principe du protocole MODBUS maître/esclave. .................................................................... 8
3.3 Description de la trame MODBUS ........................................................................................... 8
3.4 Les deux modes de transmission série .................................................................................... 9
3.4.1 Mode RTU (Remote Terminal Unit) ............................................................................... 10
3.4.2 Mode ASCII (American Standard Code for Information Interchange) .......................... 12
3.5 Déroulement d’une communication maître/esclave ............................................................ 13
3.5.1 Analyse du comportement du maître ........................................................................... 13
3.5.2 Analyse du comportement de l’esclave ........................................................................ 14
3.5.3 Diagramme temporelle d’une communication maître/esclave .................................... 15
4 Implémentation sur Ethernet TCP/IP ............................................................................................ 15
4.1 MODBUS TCP/IP et modèle ISO ............................................................................................ 17
4.2 La trames MODBUS TCP/IP ................................................................................................... 17
5 Fonction MODBUS ......................................................................................................................... 19
6 Versions de protocole ................................................................................................................... 20
7 Limitations ..................................................................................................................................... 21

HNS re2sd Spécialité : IRIIA Cours RLI


1
Liste des Figure et Tableaux

Liste des figures :

Figure 1 : Modbus et modèle ISO ............................................................................................................ 5


Figure 2 : Le RS232 .................................................................................................................................. 6
Figure 3 : Le RS422 .................................................................................................................................. 7
Figure 4 : Le RS485 .................................................................................................................................. 7
Figure 5 : Trame MODBUS....................................................................................................................... 8
Figure 6 : Trame MODBUS série .............................................................................................................. 9
Figure 7 : Trame MODBUS RTU ............................................................................................................. 10
Figure 8 : Structure d’un Octet en mode RTU ...................................................................................... 10
Figure 9 : Syntaxe de l’envoie d’une Trame en Mode RTU ................................................................... 11
Figure 10 : Trame en Mode ASCII .......................................................................................................... 12
Figure 11 : Structure d’un Octet en Mode ASCII ................................................................................... 12
Figure 12 : Syntaxe de l’envoie d’une Trame en Mode ASCII................................................................ 13
Figure 13 : Déroulement d’une communication maître ....................................................................... 13
Figure 14 : Déroulement d’une communication esclave ...................................................................... 14
Figure 15 : Diagramme temporelle d’une communication maître/esclave .......................................... 15
Figure 16 : Architecture MODBUS TCP/IP ............................................................................................ 16
Figure 17 : Client Serveur MODBUS ...................................................................................................... 17
Figure 18 : trames Modbus PDU et trames Ethernet ............................................................................ 17
Figure 19 : Trame MODBUS TCP/IP ADU ............................................................................................... 18

Liste des Tableaux

Tableau 1 : Description des champs de l’en-tête MBAP ....................................................................... 18


Tableau 2 : Liste des fonctions MODBUS .............................................................................................. 20

HNS re2sd Spécialité : IRIIA Cours RLI


2
CHAPITRE 2 : Le Protocole MODBUS

1 INTRODUCTION

Le protocole MODBUS a été créé en 1979 par Modicon (Télémécanique, Schneider


Automation). 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.IL existe des
versions avec des modifications mineures ou adaptées à d'autres environnements (comme
par exemple JBUS ou MODBUS II). Ce protocole a rencontré beaucoup de succès depuis sa
création du fait de sa facilité de mise en œuvre , de sa bonne fiabilité et sa flexibilité. 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. Le protocole Modbus permet la communication entre plusieurs équipements
connectés sur un même réseau, par exemple un système qui mesure la température et
l'humidité d’un four peut communiquer ses résultats à un ordinateur de traitement via
Modbus.

Historique :
- 1979 : Création de MODBUS par MODICON (Modular Digital Controller).
- 1994 : Modicon fusionne avec Schneider (Telemecanique / April / Square D).
- 2003 : Transfert de compétences Schneider à MODBUS-IDA.
- 2004 : Pré-Standard international IEC62030.
- 2004 : MODBUS/TCP leader mondial (840000 nœuds).
- 2005 : MODBUS adopté en tant que standard chinois.
Domaines d’utilisation :
− Manufacturier, Infrastructures, Énergie, Bâtiment.
Applications :
− Échanges automate périphérie décentralisée.
− Échanges supervision automate.

HNS re2sd Spécialité : IRIIA Cours RLI


3
CHAPITRE 2 : Le Protocole MODBUS

2 Principe générale du protocole Modbus

Le bus Modbus répond aux architectures Maître/Esclave. Le bus est composé d’une
station Maître et de stations esclaves. Seule la station Maître peut être à l’initiative de
l’échange (la communication directe entre stations Esclaves n’est pas réalisable). Le maître
envoie une demande ou question à un esclave et attend sa réponse (figure 3a) ou diffuse un
message ou question à tous les esclaves présents sur le réseau, Les requêtes de diffusion
générale n’attendent pas de réponses en retour (figure 3b). Deux esclaves ne peuvent
dialoguer ensemble. Chaque demande du maître ou réponse d'esclave est un ensemble
d'octets appelé trame ou message. Le protocole Modbus définit donc la structure des
messages et leur mode d’échange du maître vers l’esclave. Un seul équipement peut émettre
sur la ligne à tout moment. Le maître gère l'échange et seul lui peut prendre l'initiative. Il
interroge chacun des esclaves successivement. Aucun esclave ne peut envoyer de message à
moins qu'il ne soit invité à le faire. Le maître répète la question lorsqu'un échange est incorrect
et déclare l'esclave interrogé absent si aucune réponse n’est reçue dans un délai donné. Si un
esclave ne comprend pas un message, il envoie une réponse d'exception au maître. Le maître
peut réitérer ou non la requête.

Le protocole Modbus peut être implémenté :

✓ Sur une liaison série asynchrone (Le MODBUS-RTU, MODBUS-ASCII) : Les


implémentations du protocole basées sur la transmission sérielle de type RS-
232, RS-422 ou RS-485 ou TTY (boucle de courant), avec des débits et sur des
distances variables ;

✓ Via TCP/IP sur Ethernet : Avec l’arrivé de l’Ethernet TCP/IP, le protocole a été
implémenté sur ce réseau sous le nom MODBUS TCP;

✓ Via Modbus Plus : Modbus Plus est un réseau à passage de jetons à 1 Mb/s,
pouvant transporter les trames Modbus et d'autres services propres à ce
réseau.

3 Implémentation sur liaison série

Le réseau de terrain Modbus possède une configuration multipoints, principalement à base de


la liaison série asynchrone de la norme RS485. Sa topologie est donc en Bus et utilise la connectique
RS485 comme support physique de transmission.

HNS re2sd Spécialité : IRIIA Cours RLI 4


CHAPITRE 2 : Le Protocole MODBUS

Pour relier les différents éléments communicants du Bus(EC1, EC2,…, ECn), la norme RS485
utilise une ligne différentielle ligne A et ligne B en produisant deux signaux complémentaires sur les
deux lignes. Cette technique permet d’immuniser la ligne de transmission contre les parasites ou bruits
industriels et d’augmenter la longueur maximale de la ligne estimée à 1200m.

Le câble de la ligne doit être bouchonné en ses deux extrémités par une résistance de
terminaison Rt(120). Elle boucle la ligne sur son impédance caractéristique et minimise le bruit pour
une meilleure transmission.

Dans cette section on s’intéresse à l’implémentation des couches 1 et 2 du modèle OSI dans le
cas d’une liaison série sur paire différentielle. L’interface RS485 à une paire différentielle (TIA/EIA-485)
est la plus couramment utilisée. L’interface RS232 (TIA/EIA-232-E) peut également être utilisée mais
doit être réservée à de courtes liaisons point à point. Le protocole MODBUS sur une liaison série est
un protocole de type « maître / esclave ».

Figure 1 : Modbus et modèle ISO

La couche application MODBUS spécifie une communication de type « client/serveur ». La


couche de liaison définie un protocole spécifique à la liaison série pour les échanges de requêtes
MODBUS entre un « maître » et un ou plusieurs « esclaves ». Dans ces conditions, le rôle de « client »
est assuré par le « maître » et les différents « esclaves » jouent alors le rôle de « serveurs ». La topologie
retenue est une topologie en bus. Le maître et les différents esclaves sont donc connectés sur le même
média.

HNS re2sd Spécialité : IRIIA Cours RLI 5


CHAPITRE 2 : Le Protocole MODBUS

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

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.

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

Figure 2 : Le RS232

HNS re2sd Spécialité : IRIIA Cours RLI 6


CHAPITRE 2 : Le Protocole MODBUS

3.1.2 Le RS422

Il est full duplex et est utilisé sur les ordinateurs Apple, sa vitesse de transmission peut aller
jusqu'à 10 Mbits/s. Les signaux sont envoyés sur 2 fils afin d'augmenter la fréquence de transmission.
Il peut supporter jusqu'à 10 récepteurs par ligne (on dit alors qu’il est multidrop ou multi-points).

Figure 3 : Le RS422

3.1.3 RS485

Les médias de type RS485 sont souvent en half duplex c’est-à-dire la transmission s’effectue
via 2 fils

Ils permettent de faire communiquer jusqu'à 32 périphériques sur la même ligne de données
et sur une distance pouvant aller jusqu'à 1200 m sans répéteurs.

A noter que l’on peut obtenir du full duplex en utilisant 4 fils de transmission au lieu de 2.Cela
permet d’avoir un débit de transmission plus rapide.

Chaque périphérique esclave peut aussi communiquer avec les 32 autres périphériques. Les
protocoles de communication RS422 et RS485 sont multidrop c'est à dire plusieurs périphériques
peuvent communiquer sur la même ligne de données. Le RS485 a comme avantages d’être immunisé
contre les bruits ou parasites.

Figure 4 : Le RS485

HNS re2sd Spécialité : IRIIA Cours RLI 7


CHAPITRE 2 : Le Protocole MODBUS

3.2 Principe du protocole MODBUS maître/esclave.

Les points principaux du protocole d’échange sont les suivants :

▪ Un seul maître communique à la fois sur le bus et un ou plusieurs esclaves (247 max)
l’écoutent,
▪ Une communication sur le bus est toujours à l’initiative du maître,
▪ Les esclaves (les serveurs) ne transmettent jamais de données sans avoir reçue une
requête du maître (le client),
▪ Les esclaves ne communiquent jamais entre eux,
▪ Le maître n’initie qu’une requête à la fois. Pas de nouvelle requête tant qu’il n’y a pas
de réponses de l’esclave.

Le maître a deux méthodes pour établir la communication et émettre une requête : Le mode
« DIFFUSION » (BROADCAST) :

▪ envoie d’une requête (request) à l’ensemble des esclaves. Une requête en mode
diffusion est forcement en écriture et aucune réponse n’est attendue. L’adresse «
0x00 » est réservée pour ce mode de communication.
▪ Le mode « INDIVIDUEL » (UNICAST) : le maître s’adresse à un seul esclave. Après
traitement de la requête, celui-ci renvoie une réponse (reply) au maître. Un esclave
doit avoir une adresse unique (comprise entre 1 et 247).

Les règles d’adressage sont les suivantes :

▪ Le maître n’a pas d’adresse, seuls les esclaves en ont une,


▪ L’adresse 0 est réservée au mode de diffusion,
▪ Les adresses des esclaves sont comprises entre 1 et 247 (0x01 et 0xF7),
▪ Les adresses 248 à 255 sont réservées,
▪ Les adresses doivent être uniques sur le bus (2 esclaves ne peuvent pas avoir la
même adresse).

3.3 Description de la trame MODBUS

Rappel : le protocole d’application définie le PDU constitué du code fonction, suivi des
paramètres utiles à la fonction.

Figure 5 : Trame MODBUS

HNS re2sd Spécialité : IRIIA Cours RLI 8


CHAPITRE 2 : Le Protocole MODBUS

Dans le cadre de communication série, la couche liaison vient rajouter un champ d’adresse
(Address Field) dans lequel le maître place l’adresse de l’esclave et un champ de contrôle et détection
d’erreur.

Figure 6 : Trame MODBUS série

Lorsque l’esclave répond (cas sans erreur), il replace sa propre adresse dans le champ
d’adresse et :

▪ Soit les mêmes données dans le cas d’une commande d’écriture,


▪ Soit les données demandées dans le cas d’une action de lecture.

Le champ CRC permet de détecter les erreurs de transmission. Le contenu du champ CRC (ou
LRC) est le résultat d’un calcul de redondance sur le contenu du message. La méthode de calcul utilisée,
CRC ou LRC, dépend du mode de transmission choisi, dans le même ordre RTU ou ASCII.

Le maître calcul le CRC(ou LRC) de son message et l’ajoute en fin de trame. A la réception,
l’esclave calcule le CRC (ou LRC) sur le message reçu et le compare à celui envoyé par le maître. S’il est
différent, il y a des erreurs dans la transmission des données et l’esclave renvoie une exception avec
le même protocole

3.4 Les deux modes de transmission série


Il existe 2 formats de trames des messages :

➢ Le format ASCII (American Standard Code for Information Interchange) : offre une «
souplesse » plus importante sur les timing inter-octet (jusqu’à 1 seconde) et
constitue une véritable transmission asynchrone.
➢ Le format RTU (Remote Terminal Unit) : permet pour une même vitesse de
transmission, un plus fort débit de données.

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.

On définie dans ce paragraphe la constitution des messages (nombre de bit) mis sur la liaison
physique. Tous les équipements MODBUS doivent pouvoir implémenter le mode RTU qui doit être le
mode par défaut. L’un ou l’autre des modes doit être configurable par l’utilisateur mais le mode de
transmission doit être le même sur tout les systèmes branchés sur le bus.

HNS re2sd Spécialité : IRIIA Cours RLI 9


CHAPITRE 2 : Le Protocole MODBUS

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

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.

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é. La trame du MODBUS RTU est constituée d'une suite de
caractères hexadécimaux et contient les informations suivantes :

Figure 7 : Trame MODBUS RTU

En mode RTU, la transmission d’un octet nécessite l’utilisation de 11 bits selon l’organisation
suivante :

▪ 1 bit de START
▪ 8 bits de données, le LSB est envoyé en premier,
▪ 1 bit de parité, parité paire par défaut (même si on peut configurer d’autre parité voir
aucune),
▪ 1 bit de STOP (2 dans le cas où il n’y a pas de parité).

Figure 8 : Structure d’un Octet en mode RTU

HNS re2sd Spécialité : IRIIA Cours RLI 10


CHAPITRE 2 : Le Protocole MODBUS

Chaque octet de la trame est envoyé dans l’ordre (de la gauche vers la droite) et chaque trame
est envoyée suivant la « syntaxe » suivante :

Figure 9 : Syntaxe de l’envoie d’une Trame en Mode RTU

La détection du début et de fin de trame est assurée par un silence d’au moins trois octets et
demi (3,5x11bits) entre 2 trames.

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.

Le code utilisé pour la détection d’erreur est le CRC (Cyclical Redundancy Checking)

Exemple d’échange entre un maître et un esclave :

Trame émise par le maître : 04 03 00 02 0001 25 CA

▪ Adresse esclave : 04
▪ Code fonction 03 = lecture registre
▪ N° du registre de début de lecture : MSB : 00 et LSB : 02
▪ Nombre de registre de lecture : MSB : 00 et LSB : 01
▪ CRC : 25 CA

Réponse de l’esclave avec erreur : 04 83 02 01 31

▪ Adresse esclave : 04
▪ Code fonction : lecture avec MSB = 1 : 83
▪ Code erreur (n° registre) : 02
▪ CRC : 01 31

Réponse de l’esclave sans erreur : 04 03 02 02 58 B8 DE

HNS re2sd Spécialité : IRIIA Cours RLI 11


CHAPITRE 2 : Le Protocole MODBUS

▪ Adresse esclave : 04
▪ Code fonction : lecture registre : 03
▪ Nombre d’octets données : 02
▪ Données du registre 0002 : MSB 02 et LSB : 58
▪ CRC : B8 DE

3.4.2 Mode ASCII (American Standard Code for Information Interchange)

Lorsque les contrôleurs sont configurés pour communiquer sur un réseau Modbus à l'aide
d'ASCII (American Standard Code for Information Interchange), chaque octet de 8 bits dans un message
est envoyé sous la forme de deux caractères ASCII. Le principal avantage de ce mode est qu'il permet
des intervalles de temps allant jusqu'à une seconde entre les caractères sans provoquer d'erreur.

Dans ce mode de transmission, un octet est codé par 2 caractères ASCII et la trame MODBUS
prend alors la forme décrite ci-dessous :

Figure 10 : Trame en Mode ASCII

En mode ASCII, la transmission d’un caractère nécessite l’utilisation de 10 bits selon l’organisation
suivante :

▪ 1 bit de START
▪ 7 bits de données, le LSB est envoyé en premier,
▪ bit de parité, parité paire par défaut (même si on peut configurer d’autre parité, voir
aucune),
▪ 1 bit de STOP (2 dans le cas où il n’y a pas de parité).

Figure 11 : Structure d’un Octet en Mode ASCII

Chaque caractère de la trame est envoyé dans l’ordre (de la gauche vers la droite) et chaque
trame est envoyée suivant la « syntaxe » suivante :

HNS re2sd Spécialité : IRIIA Cours RLI 12


CHAPITRE 2 : Le Protocole MODBUS

Figure 12 : Syntaxe de l’envoie d’une Trame en Mode ASCII

La détection du début et de fin de trame est assurée par l’émission du caractère « : » (0x3A en
hexa) comme caractère de START et de la chaîne « CR LF » (Carriage Returne 0x0D, Line Feed 0x0A) en
fin de trame.

Le code utilisé pour la détection d’erreur est le LRC (Longitudinal Redundancy Checking),

3.5 Déroulement d’une communication maître/esclave

Pour bien comprendre le déroulement d’une communication maître/esclave, on doit tout


d’abord s’intéresser au comportement du maître, de l’esclave puis

3.5.1 Analyse du comportement du maître

Figure 13 : Déroulement d’une communication maître

L’état « Idle » est l’état initial qui fait suite à la mise sous tension. Une requête ne peut être
émise qu’à partir de cet état. Une fois qu’il a émis une requête, le maître ne peut pas envoyer une
autre requête tant qu’il n’est pas revenu dans l’état initial.

HNS re2sd Spécialité : IRIIA Cours RLI 13


CHAPITRE 2 : Le Protocole MODBUS

En mode diffusion, le maître n’attend aucune réponse des esclaves. Il doit cependant attendre
un certain temps « Turnaround delay » pour permettre aux esclaves de recevoir la donnée et de l’écrire
dans leur registre ou sur leur I/O. Typiquement ce temps est de 100ms à 200ms.

En mode individuel, le maître émet une requête sur le bus et attend une réponse de l’esclave.
Il lance en parallèle un compteur qui lui permet de définir le « Time Out Response », temps maximum
(typiquement de 1s à 2s) au delà duquel le maître interprète une erreur et retente sa requête. Le
nombre de tentative est configurable au niveau du setup du maître.

Quand une réponse est reçue, le maître vérifie les données, lance son traitement puis se remet
dans son état initial

3.5.2 Analyse du comportement de l’esclave

Figure 14 : Déroulement d’une communication esclave

Quelques explications sur le diagramme d'état ci-dessus :

L’État "Idle" = aucune demande en attente. C'est l'état initial après la mise sous tension.

Lorsqu'une demande est reçue, l'esclave vérifie le paquet avant d'effectuer l'action demandée
dans le paquet. Différentes erreurs peuvent se produire : erreur de format dans la requête, action
invalide, … En cas d'erreur, une réponse doit être envoyée au maître.

Une fois l'action requise terminée, un message unicast nécessite qu'une réponse soit formatée
et envoyée au maître.

HNS re2sd Spécialité : IRIIA Cours RLI 14


CHAPITRE 2 : Le Protocole MODBUS

Si l'esclave détecte une erreur dans la trame reçue, aucune réponse n'est retournée au maître.

Les compteurs de diagnostic MODBUS sont définis et doivent être gérés par n'importe quel
esclave afin de fournir des informations de diagnostic. Ces compteurs peuvent être récupérés grâce à
la fonction Diagnostic MODBUS (voir Annexe A, et le protocole d'application MODBUS spécification.

3.5.3 Diagramme temporelle d’une communication maître/esclave

Figure 15 : Diagramme temporelle d’une communication maître/esclave

4 Implémentation sur Ethernet TCP/IP


Après avoir étudié le protocole MODBUS RTU, nous allons à présent voir comment on peut
utiliser ce protocole au-dessus d'un réseau TCP/IP/Ethernet. Dans la suite du document on utilisera la
dénomination MODBUS/TCP pour ce type d'utilisation du protocole.

Modbus est devenu un protocole de communication standard dans l’industrie et constitue


désormais le moyen le plus couramment disponible pour connecter des appareils électroniques
industriels. Il est largement utilisé par de nombreux fabricants dans de nombreuses industries.

Le protocole Modbus est généralement utilisé pour transmettre les signaux des appareils
d’instrumentation et de contrôle à un contrôleur logique programmable (PLC) ou à un système de
collecte de données (SCADA), par exemple un système qui mesure la température et l’humidité et
communique les résultats à un ordinateur. Modbus est souvent utilisé pour connecter un ordinateur

HNS re2sd Spécialité : IRIIA Cours RLI 15


CHAPITRE 2 : Le Protocole MODBUS

de supervision à une unité terminale distante (RTU) dans les systèmes de contrôle de supervision et
d’acquisition de données (SCADA).

Un système de communication utilisant MODBUS TCP/IP peut contenir différents types de


systèmes comme :

▪ Un client et un serveur MODBUS TCP/IP connectés sur un réseau TCP/IP,


▪ Des circuits d’interconnexion comme des ponts, des routeurs ou des passerelles qui
permettent la connexion de circuits utilisant la communication sur liaison série vue
précédemment.

Évidemment la communication Modbus TCP est basée sur l’architecture client/serveur. Pour
permettre l’établissement des connexions et l’échange de données entre équipements, le processus
serveur Modbus TCP “écoute“ sur le port TCP 502. Le fonctionnement de base est le suivant :

Le module client Modbus construit une requête sur la base des informations transmises par
l’application et attend en retour une réponse du serveur MODBUS

Un module serveur Modbus est, quant à lui, chargé de recevoir les requêtes et de mettre en
œuvre des actions (de lecture et d’écriture notamment) afin d’y répondre.

Figure 16 : Architecture MODBUS TCP/IP

Chaque équipement MODBUS/TCP qu'il soit client ou serveur sera identifié par deux
informations :

✓ Adresse IP (donc adresse Ethernet via le protocole ARP) = à définir par l'utilisateur

HNS re2sd Spécialité : IRIIA Cours RLI 16


CHAPITRE 2 : Le Protocole MODBUS

✓ Port TCP = 502 (port réservé pour les applications MODBUS

Figure 17 : Client Serveur MODBUS

4.1 MODBUS TCP/IP et modèle ISO

Le protocole Modbus TCP permet d'encapsuler des trames Modbus PDU dans des trames
Ethernet, et ainsi offrir les services Modbus ce type de réseau :

Figure 18 : trames Modbus PDU et trames Ethernet

4.2 La trames MODBUS TCP/IP

La couche application fournie le PDU qui se compose du code de la fonction à mettre en œuvre,
suivie des données utiles à la fonction.

HNS re2sd Spécialité : IRIIA Cours RLI 17


CHAPITRE 2 : Le Protocole MODBUS

C’est au niveau de la construction de l’ADU (Application Data Unit) que les différences
apparaissent. Rappelez-vous, dans le cas de la liaison série, on venait rajouter l’adresse de l’esclave en
début de trame et un contrôle d’erreur en fin de trame.

En mode TCP/IP, on utilise un « en-tête » (header) particulier appelé le MBAP header (MODBUS
Application Protocol header).

Figure 19 : Trame MODBUS TCP/IP ADU

Description des champs constituant l’en-tête MBAP :

Tableau 1 : Description des champs de l’en-tête MBAP

Toutes les trames sont envoyées via TCP/IP sur le port 502, port d’écoute par défaut.

Remarque sur l’unit identifier : ce champ est utilisé pour le routage d’un système situé sur un
sous réseau au format MODBUS. Si le serveur est connecté à un sous réseau MODBSU série ou adressé
par l’intermédiaire d’un pont ou d’une passerelle, l’« unit identifier » est nécessaire pour identifier
l’esclave connecté sur le sous réseau. Dans ce cas, l’unit identifier contient l’adresse de l’esclave.

Lorsqu’on adresse un serveur MODBUS possédant une liaison directe TCP IP, l’unit identifier
n’est plus utile, car adressé directement par l’adresse IP. Dans ce cas on place 0xFF dans l’ « unit
identifier »

HNS re2sd Spécialité : IRIIA Cours RLI 18


CHAPITRE 2 : Le Protocole MODBUS

Exemple :
La requête équivalente à cet exemple Modbus RTU : 11 03 006B 0003 7687

Dans Modbus TCP est :

0001 0000 0006 11 03 006B 0003


0001: Transaction Identifier
0000: Protocol Identifier
0006: Message Length (6 bytes to follow)
11: The Unit Identifier (17 = 11 hex)
03: The Function Code (read Analog Output Holding Registers)
006B: The Data Address of the first register requested. (40108-40001 = 107 =6B hex)
0003: The total number of registers requested. (read 3 registers 40108 to 40110)

5 Fonction MODBUS
MODBUS offre 19 fonctions différentes. Elles se caractérisent par un code fonction sur un octet
(en hexadécimal). Le protocole Modbus propose un certain nombre de fonctions qui permettent de
lire ou d'écrire des données sur le réseau Modbus.

Le protocole Modbus offre également des fonctions de diagnostic et de gestion de réseau.


Tous les équipements ne supportent pas tous les codes fonction.

HNS re2sd Spécialité : IRIIA Cours RLI 19


CHAPITRE 2 : Le Protocole MODBUS

Tableau 2 : Liste des fonctions MODBUS

6 Versions de protocole

Il existe des versions du protocole Modbus pour le port série et pour Ethernet et d'autres
protocoles qui prennent en charge la suite de protocoles Internet . Il existe de nombreuses variantes
de protocoles Modbus:

➢ Modbus RTU (Remote Terminal Unit) : Il est utilisé dans la communication série et
utilise une représentation binaire compacte des données pour la communication par
protocole. Le format RTU suit les commandes/données avec une somme de contrôle
de contrôle de redondance cyclique. Comme mécanisme de contrôle d'erreur pour
garantir la fiabilité des données. Modbus RTU est l'implémentation la plus courante
disponible pour Modbus. Un message Modbus RTU doit être transmis en continu
sans hésitation entre les caractères. Les messages Modbus sont encadrés (séparés)
par des périodes d'inactivité (silencieuses).
➢ Modbus ASCII (American Standard Code for Information Interchange) : Il est utilisé
dans la communication série et utilise des caractères ASCII pour la communication
par protocole. Le format ASCII utilise une somme de contrôle de contrôle de
redondance longitudinale . Les messages Modbus ASCII sont encadrés par deux
points (":") et un saut de ligne (CR / LF).
➢ Modbus TCP / IP ou Modbus TCP : Il s'agit d'une variante Modbus utilisée pour les
communications sur les réseaux TCP / IP , se connectant sur le port 502. Elle ne

HNS re2sd Spécialité : IRIIA Cours RLI 20


CHAPITRE 2 : Le Protocole MODBUS

nécessite pas de calcul de somme de contrôle (checksum calculation), car les couches
inférieures offrent déjà une protection de somme de contrôle.
➢ Modbus over TCP / IP ou Modbus RTU / IP : Il s'agit d'une variante Modbus qui
diffère de Modbus TCP en ce qu'une somme de contrôle est incluse dans la charge
utile comme avec Modbus RTU.
➢ Modbus sur UDP : L'utilisation de Modbus sur UDP sur les réseaux IP, élimine les
conditions requises pour TCP . [sept]
➢ Modbus Plus (Modbus +, MB + ou MBP) : Modbus Plus est propriétaire de Schneider
Electric et, contrairement aux autres variantes, il prend en charge les
communications peer-to-peer entre plusieurs maîtres. Il nécessite un coprocesseur
dédié pour gérer la rotation rapide des jetons. Il utilise une paire torsadée à 1 Mbit/s.
Un matériel spécial est requis pour connecter Modbus Plus à un ordinateur,
généralement une carte conçue pour le bus ISA (Industry Standard Architecture), PCI
(Peripheral Component Interconnect).
➢ Pemex Modbus : Il s'agit d'une extension du Modbus standard avec prise en charge
des données historiques et de flux. Il a été conçu pour la société pétrolière et gazière
Pemex pour une utilisation dans le contrôle des processus et n'a jamais été
largement adopté.
➢ Enron Modbus : Il s'agit d'une autre extension du Modbus standard développé par
Enron Corporation Les principales différences entre les deux protocoles sont la
numérotation des adresses de registre, la prise en charge des registres 32 bits et 16
bits et la capacité de transmettre des journaux d'événements et des données
historiques.

Le modèle de données et les appels de fonction sont identiques pour les 4 premières variantes
de protocoles ; seule l'encapsulation est différente. Cependant, les variantes ne sont pas
interopérables, pas plus que les formats de trame.

7 Limitations
▪ Étant donné que Modbus a été conçu à la fin des années 1970 pour communiquer avec les
contrôleurs logiques programmables, le nombre de types de données est limité à ceux compris par
les automates programmables à l'époque. Les gros objets binaires ne sont pas pris en charge.
▪ Il n'existe aucun moyen standard pour un nœud de trouver la description d'un objet de données,
par exemple, pour déterminer si une valeur de registre représente une température comprise
entre 30 et 175 degrés.
▪ Étant donné que Modbus est un protocole maître / esclave, il n'y a aucun moyen pour un appareil
de terrain de "signaler une exception" (sauf sur Ethernet TCP / IP, appelé open-mbus) - le nœud
maître doit régulièrement interroger chaque appareil de terrain et rechercher les changements
dans les données. Cela consomme de la bande passante et du temps réseau dans les applications
où la bande passante peut être coûteuse, comme sur une liaison radio à faible débit.
▪ Modbus est limité à l'adressage de 254 appareils sur une seule liaison de données, ce qui limite le
nombre d'appareils de terrain pouvant être connectés à une station maître (encore une fois,
Ethernet TCP / IP est une exception).

HNS re2sd Spécialité : IRIIA Cours RLI 21


CHAPITRE 2 : Le Protocole MODBUS

▪ Les transmissions Modbus doivent être contiguës, ce qui limite les types d'appareils de
communication à distance à ceux qui peuvent mettre en mémoire tampon les données pour éviter
les lacunes dans la transmission.
▪ Le protocole Modbus lui-même n'offre aucune sécurité contre les commandes non autorisées ou
l'interception de données.

HNS re2sd Spécialité : IRIIA Cours RLI 22

You might also like