Professional Documents
Culture Documents
Le protocole de communication Modbus de Gould Modicon (actuellement division de Schneider Electric/Tlmcanique, 1er constructeur mondial d automates! est un rseau de t"pe ma#tre$esclave tr%s rpandu au point qu&il n&e'iste quasiment aucun constructeur de s"st%mes de pilota(e d&automatismes qui ne propose de coupla(e Modbus) *ans la pratique, Modbus permet d&interconnecter des matriels aussi htro(%nes que des +utomates ,ro(rammables -ndustriels (+,-!, des variateurs de vitesse pour moteurs, des capteurs, des terminau' d&atelier intelli(ents, des calculateurs) .e protocole est caractris par une /orme et un contenu de messa(es simples et universels ainsi que la possibilit de s&utiliser sur une liaison srie aussi rpandue que la RS010.) Modbus est donc un outil pda(o(ique de tout premier plan pour qui s&intresse au niveau trame)
I Le principe de Modbus
a) Architecture du rseau Modbus Le rseau Modbus est un rseau compos d un seul Ma#tre et d Esclaves, qui communiquent par une liaison srie as"nchrone2
COMMUNICATION SERIE
ESCLAVES MAITRE
Le support lectrique de la liaison srie suit une des deu' normes courantes) La liaison t"pe RS010 (3104,$104!, la seule disponible sur ,., n est utilisable que dans le cas d un rseau avec un seul esclave) .ette liaison sera utilise pour l initiation au /onctionnement du rseau)
Rseau Modbus
*ans le cas d un rseau rel, la liaison est bidirectionnelle sous la norme RS678 (9$84 di//rentiel, disponible sur Mac! ) ,our envo"er un messa(e sur la li(ne, le Ma#tre :prend la parole:(en activant le si(nal :RTS: du port srie!, c est ; dire impose le niveau lo(ique sur la liaison avec un driver 1 tats, uniquement pendant l envoi de son messa(e) Les esclaves re<oivent le messa(e, et mettent une rponse en prenant la li(ne ; leur tour) Etant donn qu il ne peut " avoir qu un esclave qui rponde ; un messa(e, il n " pas de collision sur le rseau Modbus, sau/ en cas d erreur de paramtra(e)
La liaison di//rentielle comprend 1 /ils 2 le si(nal 3 , le si(nal $ et la masse) Elle permet des transmissions peu sensibles au' ra"onnements lectroma(ntiques, sur une distance pouvant atteindre plusieurs centaines de m%tres) b) Dialogue Matre-Escla e et tra!es Le dialo(ue sur un rseau M=*>5S est tou?ours ; l&initiative du ma#tre) .e dernier proc%de en posant une question (ou en donnant un ordre! ; un esclave particulier qui en retour lui /ournit la rponse ; la question (ou la con/irmation de la bonne e'cution de l&ordre!) Les trames question et rponse sont envo"es sous la /orme de cha#nes de caract%res, lesquelles reprennent l&adresse de l&esclave, un numro de code /onction et le paramtra(e de cette derni%re) *ans une trame Modbus +S.--, chaque octet est reprsent sous la /orme des codes +S.-des caract%res qui le reprsentent) ,ar e'emple, l&octet 99999119 soit 9'60 sera transmis sous la /orme de la cha#ne @60& correspondant au' codes des chi//res 6 et 0) *&une mani%re (nrale, une trame (/i(ure 0! est la concatnation des lments suivants 2 EntAte 2 : +dresse de l&esclave (9'91))9'B7! 2 01..F8, Cumro de la /onction (9'91))9'9D! 201..06, *onnes) Contenu et taille variable suivant la fonction) =ctet de vri/ication de la trame ou LR.7 (9'99))9'BB! calcul depuis les valeurs adresse de l&esclave, numro de /onction et champs de donnes 2 00..FF) 5n dlimiteur de /in constitu des caract%res .arrier Return (9'9*! et Line Beed (9'9+!) *ans l&e'emple ci$dessous, le ma#tre demande ; l&esclave 96 de mettre sa sortie d&adresse 9 ; l&tat lo(ique E 1 F
Entte " carac ) Adresse Esclave # caract$ *+ Code Fonction # caract$ *, Donnes N%# caract$ ****((** LRC # caract$ (Dlimiteur Retour Chariot CR &i'e (eed &(
Rseau Modbus
S6
S1
S0
S1
! 3 4
'()
'(4 '(!
! 3
'(
!
v6
!
v1
v0
v1
r v
&C ATMEL
4 3
"#$
Gnd
Co''ecteurs ) '(! * t+,e de liaison srie -RS 3 C * !. / RS40) * .31 '( * modi2ication adresse esclave -!. 1 '(3 * alimentation 3V 4 '(4 * ,rise rseau RS40) -5Vcc * !/ 6 5a 7 * / 6 .a 7 * 3/ '() * ,rise communication RS 3 C
E'tres ) E!/ E / E3/ E49 -actives : l;tat <as19 Utilisation possible par les poussoirs 1 4 -attention/ l=adressa8e des entres est de # : 31 Sorties ) S!/ S / S3/ S4 -actives : l;tat <as1 -attention/ l=adressa8e des sorties est de # : 31 2isualisatio' des sorties ) v!/ v / v3/ v4 -allumes : l;tat <as1 2isualisatio' de l3acti it ) R$ * rou8e/ T$ * vert -s=allume lors de l=envoi de la r,onse1 MA4#5# ) conversion des si8nau$ RS 3 -R$ * !3/ T$ * !41 > TTL -R$ * ! / T$ * !!1 6C ATME& ) c?ur de l;esclave Reset ) initialisation du module Adresse escla e ) "@$ -autocollant sur la ,latine1
-ls poss%dent une :intelli(ence: locale qui o//re de nombreuses /onctionnalits supplmentaires2
suppression
des rebonds d entre dtection de /ronts compta(e de /ronts))) .es modules peuvent chan(er des donnes du t"pe >it ou du t"pe Mot 1Dbits (protocole de base Modbus!)
5STL $ Master +SE M0 $ S"st%mes d -n/ormation pour l -ndustrie
MA% 3
RESET
E6
E1
E0
E1
8nd * 41
Rseau Modbus
Registres i'ter'es ) 7 re(istres (9'9999))9'999N! 9'9999 2 dtection d&un /ront montant sur les entres 9'9991 2 dtection d&un /ront descendant sur les entres 9'9990 2 compta(e entre 1 sur /ront montant 9'9991 2 compta(e entre 0 sur /ront montant 9'9996 2 compta(e entre 1 sur /ront montant 9'9998 2 compta(e entre 6 sur /ront montant 9'999D 2 temporisation anti$chevauchement questions/rponses (ms! 9'999N 2 adressa(e de l&esclave (/onction inoprante sur la version actuelle du microcontrGleur!
Rseau Modbus
R/o'se de l3escla e )
Cha!/s de Do''es Aom<re d;octets Buit ,remiCres entres '># caract$ = # caract$ '>" Buit entres suivantes '>"? = # caract$ '>@ # caract$ =
R/o'se de l3escla e )
Cha!/s de Do''es Adresse de la sortie @ctet de ,oids 2ort # caract$ @ctet de ,oids 2ai<le # caract$ Etat A " B ) ((** Etat A * B )**** @ctet de ,oids 2ort # caract$ @ctet de ,oids 2ai<le # caract$
R/o'se de l3escla e )
Cha!/s de Do''es Aom<re N de re8istresD # caract$ !er re8istre 2ort>2ai<le + caract$ eme re8istre 2ort>2ai<le + caract$ = + caract$
Rseau Modbus
R/o'se de l3escla e )
Cha!/s de Do''es Adresse du registre @ctet de ,oids 2ort # caract$ @ctet de ,oids 2ai<le # caract$ Do''e "? bits @ctet de ,oids 2ort # caract$ @ctet de ,oids 2ai<le # caract$
Annexe 2 - alcul du L!
Le LR. est l autocontrGle de la consistance du messa(e) 5ne erreur de transmission conduit ; une incohrence du messa(e (lobal) Le LR. est calcul sur la valeur des octets du messa(e , hors le dlimiteur de dbut 2 et ceu' de /in (.RLB! ) . est le complment ; 0 de la somme 7 bits (ou modulo 08D! des valeurs (nLesclave, /onction, data! ) Le calcul pratique du LR. se /ait par 2
S 4 -nEesclave 5 2onction 5 data1 F )G S4HS S4S5!
E'emple2
esclave 2onction MSJ adresse LSJ adresse MSJ data LSJ data LRC Total #$#! #$#) #$## #$#! #$FF #$## #$FA #$ ## soit #$## modulo )G citure <it nE! valeur d=criture
Rseau Modbus
Rseau Modbus
int SioRTS - int C@M$/ =C= or =R= or =R=1 int SioR$Clear - int C@M$ 1 int SioR$_ue - int C@M$1 int SioStatus - int C@M$ /unsi8ned StatusRMas^1 int SioT$Clear - int C@M$1
Le premier param%tre des /onctions est tou?ours le numro de port utilis (.=M1 ou .=M0! */initions utiles
Kde2ine C@M! # Kde2ine C@M ! Kde2ine XSCRAo(arit+ # Kde2ine XSCRTMoSto,Jits Kde2ine XSCRXordLen8tN0 0 Kde2ine XSCRJaud3G## ) Kde2ine XSCRJaud!3 ## G