Vous êtes sur la page 1sur 6

Protocole MODBUS

Le protocole MODBUS consiste en la dfinition de trames dchange.


MAITRE
question
ESCLAVE A

rponse
ESCLAVE B

ESCLAVE C

Le matre envoie une demande et attend une rponse.


Deux esclaves ne peuvent dialoguer ensemble.
Le dialogue matre esclave peut tre schmatis sous une forme successive de liaisons
point point.

Principe des changes MODBUS


Adressage
MODBUS

Programme utilisateur
Table
dmission

Bits dentre
question

Table
de rception

Esclave A

Bits de sortie

rponse

Mots dentre

Mots de sortie

Protocole MODBUS

Pascal DEREUMAUX

novembre 2004

1/6

Adressage
Les abonns du bus sont identifis par des adresses attribues par lutilisateur.
Ladresse de chaque abonn est indpendante de son emplacement physique.
Les adresses vont de 1 64 et ne doivent pas obligatoirement tre attribues de manire
squentielle.
Deux abonns ne peuvent avoir la mme adresse.

Echange matre vers 1 esclave


Le matre interroge un esclave de numro unique sur le rseau et attend de la part de cet
esclave une rponse.
Matre

Question
Rponse

Esclave A

Esclave B

Esclave C

Echange Matre vers tous les esclaves


Le matre diffuse un message tous les esclaves prsents sur le rseau, ceux-ci excutent
lordre du message sans mettre une rponse.
Matre

Question

Esclave A

Protocole MODBUS

Pascal DEREUMAUX

Esclave B

novembre 2004

Esclave C

2/6

Trame dchange question/rponse

La question
Elle contient un code fonction indiquant lesclave adress quel type daction est demand.
Les donnes contiennent des informations complmentaires dont lesclave a besoin pour
excuter cette fonction.
Le champ octets de contrle permet lesclave de sassurer de lintgralit du contenu de la
question.
N
desclave
1 octet

Code fonction

Mot de contrle

1 octet

Information spcifique
concernant la demande
n octets

Code fonction

Donnes reues

Mot de contrle

2 octets

La rponse
N
desclave
1 octet

1 octet

n octets

2 octets

Si une erreur apparat, le code fonction est modifi pour indiquer que la rponse est une
rponse derreur.
Les donnes contiennent alors un code (code dexception) permettant de connatre le type
derreur.
Le champ de contrle permet au matre de confirmer que le message est valide.
N
desclave
1 octet

Protocole MODBUS

Code fonction
1 octet

Code
dexception
1 octet

Pascal DEREUMAUX

Mot de
contrle
2 octets

novembre 2004

3/6

Format gnral dune trame


Deux types de codage peuvent tre utiliss pour communiquer sur un rseau Modbus.
Tous les quipements prsents sur le rseau doivent tre configurs selon le mme type.
Type ASCII : chaque octet composant une trame est cod avec 2 caractres ASCII
(2 fois 8 bits).
START
1 caractre

Adresse
Fonction
Donnes
2 caractres 2 caractres n caractres

LRC
2 caractres

END
2 caractres
CR LF
LRC : Cest la somme en hexadcimal modulo 256 du contenu de la trame hors dlimiteurs,
complmente 2 et transmise en ASCII.
Type RTU (Unit terminale distante) : chaque octet composant une trame est cod sur 2
caractres hexadcimaux (2 fois 4 bits).
START
Silence

Adresse
1 octet

Fonction
1 octet

Donnes
n octets

CRC
2 octets

END
Silence

La taille maximale des donnes est de 256 octets.


Le mode ASCII permet davoir des intervalles de plus dune seconde entre les diffrents
caractres sans que cela ne gnre derreurs, alors que le mode RTU permet un dbit plus
lev pour une mme vitesse de transmission.
Lensemble des informations contenues dans le message est exprim en hexadcimal.
Le matre sadresse lesclave dont ladresse est donne dans le champ prvu cet effet.
Le code fonction indique lesclave le type daction raliser. Exemple : lecture de registre,
code de fonction (03)HEX, criture dans un registre, code de fonction (10)HEX.
Le champ de donnes est cod sur n mots en hexadcimal de 00 FF, soit sur n octets.
Selon le code fonction, le champ de donnes contient diverses informations
complmentaires permettant lesclave de dcoder le message (voir lexemple plus bas).
Dans le cas du mode RTU, le champ contrle derreur CRC (Contrle de Redondance
Cyclique) contient une valeur code sur 16 bits.
Nota : Le contrle de parit peut dans certains cas tre supprim car dautres contrles
dchanges sont mis en uvre (cas du contrle CRC encore appel contrle par Checksum)
Lesclave renvoie sa rponse ; il place sa propre adresse dans le champ adresse afin que le
matre puisse lidentifier.
Il utilise ensuite le champ fonction pour indiquer si la rponse contient une erreur. Pour une
rponse normale, lesclave reprend le mme code fonction que celui du message envoy par
le matre, sinon il renvoie un code erreur correspondant au code original avec son MSB 1.
Le champ de donnes contient diverses informations dpendant du code fonction.
Le champ contrle derreur contient une valeur code sur 16 bits. Cette valeur est le rsultat
dun CRC (Cyclical Redundancy Check) calcul partir dun message.

Protocole MODBUS

Pascal DEREUMAUX

novembre 2004

4/6

Support de transmission
Chaque octet composant un message est transmis en mode RTU de la manire suivante :
Start

Bit 0

Start

Bit 0

Bit 1
Bit 1

Sans contrle de parit


Bit 3
Bit 4
Bit 5

Bit 2
Bit 2

Bit 6

Avec contrle de parit


Bit 3
Bit 4
Bit 5
Bit 6

Bit 7

Bit 7
Parit

Stop
Stop

Avant et aprs chaque message, il doit y avoir un silence quivalent 3,5 fois le temps de
transmission dun mot.

Message du matre

Rponse de lesclave

Dlai de 3,5 fois le temps de


transmission dun mot

Dlai de 3,5 fois le temps de


transmission dun mot

Lensemble du message doit tre transmis de manire continue. Si un silence de plus de 1,5
fois le temps de transmission dun mot intervient en cours de transmission, le destinataire du
message considrera que la prochaine information quil recevra sera ladresse du dbut dun
nouveau message.
Le protocole MODBUS ne dfinit que la structure des messages et leur mode dchange.
On peut utiliser nimporte quel support de transmission RS 232, RS 422 ou RS 485, mais la
liaison RS 485 est la plus rpandue car elle autorise le multipoints .
Exemple dchange entre un matre et un esclave
Trame mise par le matre : 04 03 00 02 0001 25 CA
- Adresse esclave : 04
- Code fonction 03 = lecture registre
- N du registre de dbut de lecture : MSB : 00 et LSB : 02
- Nombre de registre de lecture : MSB : 00 et LSB : 01
- CRC : 25 CA
Rponse de lesclave 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
Rponse de lesclave sans erreur : 04 03 02 02 58 B8 DE
- Adresse esclave : 04
- Code fonction : lecture registre : 03
- Nombre doctets donnes : 02
- Donnes du registre 0002 : MSB 02 et LSB : 58
- CRC : B8 DE
Protocole MODBUS

Pascal DEREUMAUX

novembre 2004

5/6

Services supports par MODBUS


MODBUS offre 19 fonctions diffrentes. Elles se caractrisent par un code fonction sur un
octet (en hexadcimal). Tous les quipements ne supportent pas tous les codes fonction.

Code
H01
H02
H03
H04
H05
H06
H07
H08
H09
H0A
H0B
H0C
H0D
H0E
H0F
H10
H11
H12
H13

Nature des fonctions MODBUS


Lecture de n bits de sortie conscutifs
Lecture de n bits de sortie conscutifs
Lecture de n mots de sortie conscutifs
Lecture de n mots conscutifs dentre
Ecriture de 1 bit de sortie
Ecriture de 1 mot de sortie
Lecture du statut dexception
Accs aux compteurs de diagnostic
Tlchargement, tl dchargement et mode de marche
Demande de CR de fonctionnement
Lecture du compteur dvnements
Lecture des vnements de connexion
Tlchargement, tl dchargement et mode de marche
Demande de CR de fonctionnement
Ecriture de n bits de sortie
Ecriture de n mots de sortie
Lecture didentification
Tlchargement, tl dchargement et mode de marche
Reset de lesclave aprs erreur non recouverte

Protocole MODBUS

Pascal DEREUMAUX

novembre 2004

TSX 37
*
*
*
*
*
*

*
*
*
*
*

6/6

Vous aimerez peut-être aussi