Modbus sur liaison série
A. Les principes de fonctionnement
B. Les 2 modes de transmission : Modbus
RTU et Modbus ASCII
C. Les 3 couches physiques standardisées
Modbus
1
A. Principes de fonctionnement
• Le modèle OSI permet de
décomposer les fonctionnalités
des réseaux en 7 sous ensembles
homogènes et ordonnées.
• Le protocole application Modbus
se situe au niveau de la couche 7
• les couches 3 à 6 ne sont pas
utilisées
• On trouve au niveau de la couche
liaison les notions de "Maître-
Esclave" , et de mode de
transmission RTU ou ASCII
• 3 types de couches physiques
sont standardisées : RS485 2 fils
ou 4 fils premettant un
fonctionnement en multi-points
et RS232 ne fonctionnant qu'en
point à point
2
A. Principes de fonctionnement
• Un réseau Modbus ne
comporte qu'un seul
équipement maître, et de 1
à 247 esclaves maximum
• La communication ne peut
être initialisée que par
l'équipement maître
• Un esclave transmet ses
données par l'intermédiaire
d'une réponse à une
requête du maître.
• Le protocole Modbus
liaison série ne permet pas
la communication directe
entre esclaves. Il est
cependant possible
d'échanger des données
d'esclave à esclave
indirectement par
l'intermédiaire du
programme application de
l'équipement maître.
3
A. Principes de fonctionnement
• On distingue à l'intérieur
d'une trame Modbus liaison
série:
• le PDU ‘’Protocol Data
Unit" correspondant au
protocole application
Modbus situé au niveau de
la couche 7 du modèle OSI.
Ce PDU comprend en
entête :
• Un "Code fonction" codé
entre 1 et 127 qui indique
au destinataire l'action à
réaliser, suivi d'un champ
"Data" correspondant à un
complément
d'informations. La structure
du champ "Data" dépend
du "Code fonction" utilisé.
• Ce PDU est encadré en
début de trame par un
champ "Adresse" codé
entre 0 et 247 et identifiant
le destinataire du message.
4
A. Principes de fonctionnement
• On distingue 2 modes
d'adressage :
• L'adressage Unicast pour
lequel le champ adresse
peut prendre une valeur
comprise entre 1 et 247
• Et le mode Broadcast qui
permet d'envoyer un
message d'écriture à
l'ensemble des esclaves
en utilisant la valeur
spécifique 0
• Le PDU est suivi en fin de
trame d'un champ de
controle "CRC" ou "LRC"
permettant de vérifier la
validité de l'ensemble de
la trame.
5
A. Principes de fonctionnement
• Détaillons tout d'abord le
principe de fonctionnement
avec un adressage en mode
Unicast.
• Lors de l'émission d'une
requête, l'équipement
maître insère dans le champ
adresse la valeur
correspondant à l'adresse
de l'équipement
destinataire. Cette valeur
doit être comprise entre 1
et 247.
• Dans cet exemple l'adresse
de l'équipement
destinataire est égale à 5
• Lors de l'émission de sa
réponse, l'équipement
esclave insère dans le
champ adresse sa propre
adresse pour indiquer que
cette réponse provient bien
du bon équipement.
6
A. Principes de fonctionnement
• Détaillons maintenant le
principe de
fonctionnement avec un
adressage en mode
Broadcast.
• Lors de l'émission d'une
requête, l'équipement
maître insère dans le
champ adresse la valeur
spécifique 0
correspondant à
l'ensemble des
équipements du réseau.
• En mode "Broadcast" les
esclaves ne transmettent
pas de réponse.
• Ce mode n'est utilisé que
pour les fonctions
d'écriture
7
A. Principes de fonctionnement
• Ce diagramme détaille les
différents timing entrant en
jeu lors d'un échange en
adressage Unicast entre
l'équipement maître et
l'esclave adresse 1.
• Le maître émet une requête
à destination de l'esclave
d’adresse 1, et attend une
réponse durant un temps
égal au time-out fixé lors
de la phase de
configuration.
• Cette valeur de time-out
doit être supérieure au
temps de réponse de
l'esclave le plus lent.
• Si la requête est
correctement reçue par
l'esclave concerné, il traite
la requête, et transmet sa
réponse
• Le maître analyse et traite
la réponse , puis transmet la
requête suivante si
demandée. 8
A. Principes de fonctionnement
• Ce diagramme détaille les
différents timing entrant en
jeu lors d'un échange en
adressage Broadcast
• Le maître émet une requête
à destination de l'ensemble
des esclaves adresse 0, et
attend une réponse durant
un temps égal au time-out
fixé lors de la phase de
configuration.
• Cette valeur de time-out
doit être supérieure au
temps de réponse de
l'esclave le plus lent.
• Chaque esclave qui reçoit
correctement la requête
effectue le traitement
approprié
• Le maître peut émettre la
requête suivante à
expiration du délai de time-
out 9
A. Principes de fonctionnement
• Ce dernier diagramme
détaille les différents timing
entrant en jeu lors d'une
erreur de transmission
• Le maître émet une requête
à destination de l'esclave
d’adresse 1, et attend une
réponse durant un temps
égal au time-out fixé lors
de la phase de
configuration.
• L'esclave s'il détecte une
erreur de transmission ne
transmet pas de réponse
• Lorsque le time-out du
maître arrive à expiration,
le maître réémet la même
requête si la fonction
"Retry" a été configurée
lors de la configuration ou
transmet l'information pas
de réponse à l'application,
puis transmet la requête
suivante si demandé
10
B. Modbus RTU et Modbus ASCII
• Modbus définit 2 modes • RTU: Remote Terminal Unit (Unité Terminale Distante)
de transmission : Modbus • ASCII: American Standard Code for Information
RTU et Modbus ASCII. Le
choix de ces modes influe Interchange
sur :
• Le contenu et le format de
chaque caractère
• Ainsi que sur son
encapsulage : début et fin
de la trame
• Le mode de transmission
et les paramètres du port
série doivent être
configurés à l'identique
sur tous les produits
• Tout équipement Modbus
doit supporter le mode
RTU
• Alors que mode de ASCII
est optionnel
11
B. Modbus RTU et Modbus ASCII
• Lorsqu'on utilise le mode
de transmission RTU,
chaque information est
codée sur un octet
comprenant 2 digits hexa-
décimaux
• Si on souhaite par
exemple transmettre le
code fonction Read
Device Identification égal
à 43 en décimal, on
transmettra la valeur
hexa-décimal
correspondante soit 2B
• En 2 digits de 4 bits : soit 2
(0010) et B (1011).
12
B. Modbus RTU et Modbus ASCII
• En mode RTU les
caractères sont
formatés sur 11 bits
• Si le contrôle de parité
est validé, les 8 bits de
données sont précédés
par 1 bit de start et
suivi d'un bit de parité
et 1 bit de stop.
• Sans contrôle de parité
les 8 bits de données
sont précédés par 1 bit
de start et suivi de 2
bits de stop.
13
B. Modbus RTU et Modbus ASCII
• Si on considère le code
fonction Read Device
Identification égal à 2B en
hexa-décimal, ce code
comprend 4 bits
positionnés 1
• Si un contrôle de parité
paire est configuré, le bit de
parité sera positionné à 0 ,
pour conserver un nombre
pair de bits à 1
• Si un contrôle de parité
impaire est configuré, le bit
de parité sera positionné à
1, pour obtenir un nombre
impair de bits à 1
• Sans contrôle de parité, le
code fonction Read Device
Identification égal à 2B en
hexa-décimal est suivi de 2
bits de stop positionnés à 1 14
B. Modbus RTU et Modbus ASCII
• En mode RTU, une trame
comprend 256 octets au
maximum.
• Le Code Fonction est codé
sur 1 octet
• La taille du champ Data
dépend du Code Fonction
et contient de 0 à 252
octets
• Le champ adresse est codé
sur 1 octet
• Le champ CRC sur 2 octets
• Cette trame doit être
séparée des autres trames
par un intervalle de silence
d'au moins 3,5 caractères.
• Une trame doit être
transmise en flux continu.
• Si un intervalle de silence
de plus d'un caractère et
demi est détecté entre 2
caractères , la trame est
considérée comme
incomplète et rejetée.
15
B. Modbus RTU et Modbus ASCII
• Lorsqu'on utilise le mode
de transmission ASCII
• Chaque information est
codée sur 2 caractères
ASCII comprenant chacun
7 bits
• Si on souhaite par
exemple transmettre le
code fonction Read
Device Identification égal
à 43 en décimal, soit la
valeur 2B en hexa-décimal
• On transmettra les 2
codes ASCII
correspondant au chiffre
2 et à la lettre B, soit les
valeurs hexa-décimales 32
(0110010) et 42
(1000010).
16
B. Modbus RTU et Modbus ASCII
• En mode ASCII les
caractères sont formatés
sur 10 bits
• Si le contrôle de parité est
validé, les 7 bits de
données sont précédés
par 1 bit de start et suivi
d'un bit de parité et 1 bit
de stop.
• Sans contrôle de parité les
7 bits de données sont
précédés par 1 bit de start
et suivi de 2 bits de stop.
17
B. Modbus RTU et Modbus ASCII
• Avec contrôle de parité, le
codage du caractère 2 en
ASCII comprend 3 bits
égaux à 1
• Si un contrôle de parité
paire est configuré, le bit
de parité sera positionné
à 1, pour obtenir un
nombre pair de bits à 1
• Si un contrôle de parité
impaire est configuré, le
bit de parité sera
positionné à 0, pour
conserver un nombre
impair de bits à 1
• Sans contrôle de parité, le
codage en ASCII du
caractère 2 soit 32 en
hexa-décimal est suivi de
2 bits de stop positionnés
à1
18
B. Modbus RTU et Modbus ASCII
• En mode ASCII, une trame
comprend 513 caractères au
maximum.
• Le Code Fonction est codé sur 2
caractères
• La taille du champ Data dépend
du Code Fonction et contient
de 0 à 2 fois 252 caractères
• Le champ adresse est codé sur
2 caractères
• Le champ LRC sur 2 caractères
• Cette trame est encadrée en
entête du caractère ASCII "2
points" (: = 3A) et en fin de
trame des caractères ASCII
"Carriage Return" (CR = 0D) et
"Line Feed« (LF = 0A).
• En ce qui concerne les
contraintes de temps, un
intervalle de silence de 1 à 5
secondes est toléré entre 2
caractères d'une même trame
• Il n'y a pas de contrainte de
temps entre les différentes
trames.
19
B. Modbus RTU et Modbus ASCII
• Deux types de contrôle sont effectués de
façon transparente pour l'utilisateur coté
maître et coté esclave, ceci afin de vérifier la
validité des informations transmises.
• Le contrôle de parité est effectué au niveau de
chaque caractère. Il consiste à ajouter un bit
de parité à la suite de chaque caractère de
façon à ce que le total de bits positionné à 1
soit pair ou impair, ce choix étant déterminé
lors de la phase de configuration. La valeur de
ce bit est recalculé par l'équipement récepteur
et comparé au bit de parité transmis. En cas
d'incohérence, le message n'est pas pris en
compte.
• Le contrôle de trame est effectué au niveau de
chaque message, Il consiste à ajouter en fin de
message un champ de contrôle calculé et
reflétant le contenu des informations qui
précèdent. La valeur de ce champ est • LRC : C’est la somme en hexadécimal
recalculée par l'équipement récepteur et modulo 256 du contenu de la trame
comparée au champ transmis. En cas hors délimiteurs, complémentée à 2
d'incohérence, le message est refusé.
• En mode RTU on utilise un calcul de type CRC
et transmise en ASCII.
• En mode ASCII le calcul se fait par LRC 20
B. Modbus RTU et Modbus ASCII
• En cas de détection d'erreur de
transmission , on distingue le cas
où l'esclave détecte une erreur
dans une requête transmise par le
maître du cas où le maître détecte
une erreur dans une réponse
transmise par un esclave
• Dans le premier cas , l'esclave ne
prend pas en compte la requête et
ne fournit pas de réponse
• Après écoulement du délai de
time-out, le maître réémet
éventuellement la requête
(fonction Retry configurée) ou
transmet l'information de défaut à
l'application.
• Dans le cas où le maître détecte
une erreur, il ne traite pas la
réponse ,
• Réémet éventuellement la
requête (fonction Retry) ou
transmet l'information de défaut à
l'application.
21
C. Les 3 couches physiques standardisées Modbus
• 3 interfaces électriques sont
standardisées Modbus
• L'implémentation de la RS485, 2
fils est obligatoire , elle permet
une connexion aussi bien en
multi-points qu'en point à point.
• L'implémentation de la RS485, 4
fils est optionnelle, elle est
utilisée pour intégrer
l'équipement dans une
installation 4 fils pré-existante
sans modification du câblage
• L'implémentation RS232 est
optionnelle, elle est utilisée
pour une connexion en point à
point sur une courte distance :
raccordement d'un outil de
configuration par exemple
• L'implémentation des vitesses
de transmission 9600 et 19 200
bps sont obligatoires, les autres
vitesses sont optionnelles.
22
C. Les 3 couches physiques standardisées Modbus
• Une installation Modbus
RS485 2 fils standardée a une
topologie de type bus et est
constituée d'une paire de fils
équilibrés pour la
transmission des données et
d'un fil "Commun" servant de
référence de potentiel.
• Les 2 extrémités du bus
doivent être rebouclées par
l'intermédiaire de
terminaisons de ligne
constituées d'une résistance
de 120 ohms et d'une
capacité de 1 nF.
• Des résistances de
polarisation comprises entre
450 et 650 ohms, (650 étant
la valeur recommandée)
doivent être implémentées à
un seul emplacement du bus.
23
C. Les 3 couches physiques standardisées Modbus
• En général, ces résistances
sont implémentées dans le
maître ou à proximité du
maître par l'intermédiaire
d'un tap
• Le raccordement du
"Commun" à la terre doit se
faire en un seul point,
généralement au niveau du
maître.
• Les esclaves ne doivent pas
intégrer de résistance de
polarisation
• Le nombre d'équipement
maximum est de 32 (maître
inclus) sans répéteur
• La longueur maximum du
tronçon principal est de 1000
mètres à 19200 bits/s avec
une longueur maximum de
dérivation de 40 mètres.
24
C. Les 3 couches physiques standardisées Modbus
• Une installation Modbus RS485
4 fils standardée a une
topologie de type bus et est
constituée de 2 paire de fils
équilibrés: une pour la
transmission des données du
maître , l'autre pour la
transmission des esclaves, un fil
"Commun" sert de référence
de potentiel.
• Les 2 extrémités de chaque
paire doivent être rebouclées
par l'intermédiaire de
terminaisons de ligne
constituées d'une résistance de
120 ohms et d'une capacité de
1 nF.
• Des résistances de polarisation
comprises entre 450 et 650
ohms, (650 étant la valeur
recommandée) doivent être
implémentées sur chaque paire
en un seul emplacement du
25
bus.
C. Les 3 couches physiques standardisées Modbus
• En général, ces résistances sont
implémentées dans le maître
ou à proximité du maître par
l'intermédiaire d'un tap
• Le raccordement du "Commun"
à la terre doit se faire en un
seul point, généralement au
niveau du maître.
• Les esclaves ne doivent pas
intégrer de résistance de
polarisation
• Le nombre d'équipement
maximum est de 32 (maître
inclus) sans répéteur
• La longueur maximum du
tronçon principal est de 1000
mètres à 19 200 bits/s avec une
longueur maximum de
dérivation de 40 mètres.
26
C. Les 3 couches physiques standardisées Modbus
• Concernant la compatibilité
de câblage entre Modbus 2
fils et 4 fils
• Il est possible de connecter
des équipements Modbus 2
fils sur une installation 4
fils, moyennant une
adaptation du câblage de
l'installation
• La connection
d'équipements 4 fils sur
une installation 2 fils est
également réalisable par
adaptation du câblage de
l'équipement.
27
C. Les 3 couches physiques standardisées Modbus
• La connexion d'un équipement
2 fils sur une installation 4 fils
nécessite une adaptation de
l'installation. Cette adaptation
se déroule en 4 étapes
• Etape 1 : déconnexion des
terminaisons de lignes à une
des 2 extrémités du bus
• Etape 2 : suppression d'une des
2 paires de résistance de
polarisation
• Etape 3 : rebouclage des 2
paires du coté de l'extrémité
sans terminaison
• Etape 4 : connexion de
l'équipement Modbus 2 fils
• Attention à ce que la longueur
totale du nouveau bus 2 fils
doit être inférieure à 1000
mètres
28
C. Les 3 couches physiques standardisées Modbus
• La connexion d'un équipement 4 fils sur une installation 2 fils est possible en adaptant le câblage de
l'équipement.
• Il faut dans un premier temps reboucler les 2 fils d'émission sur les 2 fils de réception
• Puis connecter l'équipement sur l'installation 2 fils
29
Fonctions Modbus
• MODBUS offre 19
fonctions
différentes. Elles
se caractérisent
par un code
fonction sur un
octet (en
hexadécimal).
Tous les
équipements ne
supportent pas
tous les codes
fonction.
30
Exemple d’échange entre un maître et un esclave
31
Algorithme de calcul du
CRC16
32
1er Exemple:
33
2nd Exemple:
34
3ème Exemple:
35