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

Esclave A Bits dentre

question

Bits de sortie

Table de rception

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

Esclave B

Esclave C

Protocole MODBUS

Pascal DEREUMAUX

novembre 2004

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 1 octet Information spcifique concernant la demande n octets Mot de contrle 2 octets

La rponse N desclave 1 octet Code fonction 1 octet Donnes reues n octets Mot de contrle 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 Code fonction 1 octet Code dexception 1 octet Mot de contrle 2 octets

Protocole MODBUS

Pascal DEREUMAUX

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). 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 START 1 caractre Adresse Fonction Donnes 2 caractres 2 caractres n caractres LRC 2 caractres

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 Start Bit 0 Bit 0 Bit 1 Bit 1 Bit 2 Bit 2 Sans contrle de parit Bit 3 Bit 4 Bit 5 Bit 6 Bit 7 Bit 7 Parit Stop Stop

Avec contrle de parit Bit 3 Bit 4 Bit 5 Bit 6

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

TSX 37 * * * * * *

* * * * *

Protocole MODBUS

Pascal DEREUMAUX

novembre 2004

6/6