Você está na página 1de 5

Modbus

Origem: Wikipdia, a enciclopdia livre.


Modbus um Protocolo de comunicao de dados utilizado em sistemas de automao industrial.
Criado originalmente na dcada de 19!, mais especi"icamente em 199 , pela "a#ricante de
e$uipamentos %odicon. & um dos mais antigos e at 'o(e mais utilizados protocolos em redes de
Controladores l)gicos program*veis +P,C- para a$uisio de sinais de instrumentos e comandar
actuadores. . /c'neider 0lectric +atual controladora da %odicon- trans"eriu os direitos do protocolo
para a %od#us Organization +Organizao %od#us - em 1!!2 e a utilizao livre de ta3as de
licenceamento . Por esta razo, e tam#m por se ade$uar "acilmente a diversos meios "4sicos,
utilizado em mil'ares de e$uipamentos e3istentes e uma das solu5es de rede mais #aratas a serem
utilizadas em .utomao 6ndustrial.
ndice
1 Caracter4sticas tcnicas
1 Comandos do %O789/
: %odos de transmisso
:.1 %od#us ;<9
:.1.1 =ormato do pacote ;<9
:.1 %od#us ./C66
:.1.1 =ormato do pacote ./C66
2 >aria5es
? ;e"er@ncias
A ,iga5es e3ternas
Caractersticas tcnicas
O mod#us e$uivale a uma camada de aplicao e pode utilizar o ;/B1:1, ;/B2C? ou 0t'ernet como
meios "4sicos B e$uivalentes camada de enlace +ou link- e camada "4sica do modelo. O mecanismo de
controle de acesso do tipo mestreBescravo ou ClienteB/ervidor. . estao mestre +geralmente um
P,C- envia mensagens solicitando dos escravos $ue enviem os dados lidos pela instrumentao ou
envia sinais a serem escritos nas sa4das, para o controle dos atuadores ou nos registradores. O
protocolo possui comandos para envio de dados discretos +entradas e sa4das digitais- ou numricos
+entradas e sa4das anal)gicas-.
D1E
D1E
D:E
D2E
P*gina 1 de ? %od#us F Wikipdia, a enciclopdia livre
11G!2G1!1: 'ttp:GGpt.Hikipedia.orgGHikiG%od#us
A imagem acima mostra um exemplo de rede Modbus com um mestre (PLC) e trs escravos
(mdulos de entradas e sadas, ou simplesmente E!)" Em cada ciclo de comunica#$o, o PLC l e
escreve valores em cada um dos escravos" Como o sistema de controle de acesso % do tipo mestre&
escravo, nen'um dos mdulos escravos inicia comunica#$o a n$o ser para responder (s solicita#)es
do mestre"
*asicamente, uma comunica#$o em Modbus obedece a um +rame ,ue cont%m o endere#o do escravo,
o comando a ser executado, uma ,uantidade vari-vel de dados complementares e uma veri+ica#$o de
consistncia de dados (C.C)"
Exemplo&/0 !e o PLC precisa ler as /1 primeiras entradas analgicas (do endere#o 1111 ao 1112) no
mdulo 3" Para isso % preciso utili4ar o comando de leitura de m5ltiplos registros analgicos
(comando 6)" 7 frame de comunica#$o utili4ado % mostrado abaixo (os endere#os s$o mostrados em
sistema 'exadecimal)0
endereo comando end. dos registros quant. de registros CRC
13 16 11 11 11 1A 3 caracteres
A resposta do escravo seria um +rame semel'ante composto das seguintes partes0 7 endere#o do
escravo, o n5mero do comando, os de4 valores solicitados e um veri+icador de erros (C.C)" Em caso
de erros de resposta (por exemplo um dos endere#os solicitados n$o existe) o escravo responde com
um cdigo de erro"
A resposta para a pergunta acima seria a seguinte0
Mas antes uma pe,uena recorda#$o8
Para se entender este +rame de resposta, antes precisamos saber corretamente o ,ue % um b9te"
Cada palavra tem as seguintes +ormas, & bit, & nible, & b9te e & :ord"
!egue abaixo uma tabela representa#$o de cada +ormato"
Bit Nible Byte Word
/ ; < bits ; = bits ; /> bits
Agora ,ue ?a sabemos o ,ue % b9te podemos ent$o deci+rar o +rame da rede modbus"
Exemplo&30 .eposta da pergunta citada no exemplo&/"
P-gina 3 de @ Modbus A BiCip%dia, a enciclop%dia livre
3/1<31/6 'ttp0pt":iCipedia"org:iCiModbus
RX 02 03 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (xx
xx CRC)
O primeiro byte(02) o n do escravo; O se!ndo byte(03) a "!n#$o !ti%i&ada para %eit!ra' sendo
essa !m (o%din Reister; O terceiro byte a )!antidade de endere#os )!e o *%ave(escravo) est+
enviando ao ,aster' sendo )!e a cada 2 bytes se "orma !ma -ord )!e sini"ica !ma pa%avra de 1.
bit' por isso este "rame tem 14 / 20 bytes )!e / 10 0ord o! 10 pa%avras de 1. bits )!e tem se!
rane minimo de 1322.3 ate 322.24
Com isso entendemos )!e o *%ave(5scravo) responde! 10 endere#os a ao master e todos com o va%or
&ero4
Comandos do MODBUS
Os principais comandos do ,odb!s s$o mostrados na tabe%a abaixo6
cdigo do
comando
descrio
01 78 !m n9mero vari+ve% de sa:das diitais (bobinas)
02 78 !m n9mero vari+ve% de entradas diitais
03
78 !m n9mero vari+ve% de reistros retentivos (sa:das ana%icas o!
memrias)
04 78 !m n9mero vari+ve% de reistros de entrada (entradas ana%icas)
0; <or#a !ma 9nica bobina (a%tera o estado de !ma sa:da diita%)
0. =reset de !m 9nico reistro (a%tera o estado de !ma sa:da ana%ica)
02 78 exce#>es (reistros de erro)
03 ?+rias "!n#>es de dianstico
1; <or#a !ma )!antidade vari+ve% de bobinas (sa:das diitais)
1. =reset de !ma )!antidade vari+ve% de reistros (sa:das ana%icas)
@ )!antidade de vari+veis a %er de"inida no "rame de so%icita#$o
Oito bits previamente con"i!rados4 A$o necess+rio "ornecer parBmetros de endere#amento com
este comando pois o escravo vai enviar sempre os oito bits pr con"i!rados4
=ara a%!ns comandos de dianstico' tais como rein:cio de com!nica#$o' reset do md!%o o!
sincroni&a#$o de re%io' podem ser !ti%i&ados com!nica#>es do tipo broadcast' o! seCa' destinada a
todos os escravos sim!%taneamente4
Modos de transmisso
5m redes seriais baseadas em R*143; o! R*1232 o ,odb!s pode ter dois modos de transmiss$o6
RDE e @*CFF4
Modbus RTU
1
1
1
1
2
1
1
1
2
=+ina 3 de ; ,odb!s G -iHipdia' a encic%opdia %ivre
21I04I2013 Jttp6IIpt40iHipedia4orI0iHiI,odb!s
O termo RTU, do ingls Remote Terminal Unit, refere-se ao modo de transmisso onde endereos e
valores so representados em formato binrio. Neste modo para cada byte transmitido so
codificados dois caracteres. Nmeros inteiros variando entre -!"#$% e !"#$# podem ser
representados por " bytes. O mesmo nmero precisaria de &'atro caracteres ()*++ para ser
representado ,em -e.adecimal/. O taman-o da palavra no modo RTU 0 de % bits.
Formato do pacote RTU
1ndereo do 1scravo *2digo da 3'no 4ados *R*
5 byte 5 byte 6 a "7" bytes " bytes ,*R*-5$/
Modbus ASCII
Os dados so dados codificados e transmitidos atrav0s de caracteres ()*++ - cada byte 0 transmitido
atrav0s de dois caracteres. (pesar de gerar mensagens leg8veis por pessoas este modo consome mais
rec'rsos da rede. 9or e.emplo, para transmitir o byte 6.7: este dever ser codificado em dois
caracteres ()*++; 6.!7 ,<7=/ e 6.>" ,<:=/. O taman-o da palavra no modo ()*++ 0 de # bits.
)omente so permitidos caracteres contidos nos intervalos
6-?
(-3
+ntervalo entre d'as mensagens deve ser de !,7 caracteres.
Formato do pacote ASCII
+n8cio 1ndereo 3'no 4ados @R* 3inal
A;A ,()*++
6.!(-/
"
caracteres
"
caracteres
6 a " . "7"
caracteres
"
caracteres
*RB@3 ,()*++ 6.64- B
6.6(-/
Variaes
Modbus/TCP - (&'i os dados so encaps'lados em formato binrio em frames T*9 para a
'tiliCao do meio f8sico 1t-ernet ,+111 %6".!/. D'ando o Eodb'sFT*9 0 'tiliCado, o mecanismo
de controle de acesso 0 o *)E(-*4 ,9r2prio da rede 1t-ernet/ e as estaGes 'tiliCam o modelo
cliente-servidor.
Modbus Plus - Herso &'e poss'i vrios rec'rsos adicionais de roteamento, diagn2stico,
endereamento e consistncia de dados. 1sta verso ainda 0 mantida sob dom8nio da )c-neider
1lectric e s2 pode ser implantada sob licena deste fabricante.
Refercias
5. I Eodb's OrganiCation, +nc.. Modbus FAQ (http://www.modbus.org/fa.php! ,em ingls/. 9gina
visitada em !6 de agosto de "65".
". I *ontrol4esign.com. Three "ariants #ominate $ndustrial %thernet
(http://www.controldesign.com/industr&news/'()(/(').html! ,em ingls/. 9gina visitada em 5" de
o't'bro de "65".
!. I Eodb's OrganiCation, +nc.. Modbus *rgani+ation (http://www.modbus.org/! ,em ingls/. 9gina
visitada em 6# de setembro de "65".
9gina > de 7 Eodb's J KiLip0dia, a enciclop0dia livre
"5F6>F"65! -ttp;FFpt.MiLipedia.orgFMiLiFEodb's
4. Modbus Organization, Inc.. Modbus FAQ (http://www.modbus.org/fa.php! (em ingls). Pgina
visitada em 3 de agosto de !"!.
Ligaes externas
#in$s em ingls%
&escritivo do 'rotocolo ((tt'%))***.'rotocessor.com)solutions)$e+,'rotocols)Modbus.'(')
- .ntegra da es'eci/ica01o do 'rotocolo (vers1o "."b)
((tt'%))***.modbus.org)docs)Modbus2-''lication2Protocol23"2"b.'d/)
4ite da Organiza01o Modbus , associa01o de /abricantes ((tt'%))***.modbus.org)
4ite da 4c(neider -utomation ((tt'%))***.modicon.com)&e/ault.(tm)
5omo Modbus trabal(a ((tt'%))***.sim'l+modbus.ca)6-7.(tm)
#in$s em 'ortugus%
8esumo sobre redes Modbus ((tt'%))***.automacoes.com)!9):)redes,industriais,modbus,
rtu,e,'ro/ibus.(tml)
Modbus ((tt'%))***.cerne,tec.com.br)Modbus.'d/)
Modos de ;ransmiss1o 8;< e -45II do Modbus
((tt'%))***.tede.udesc.br)tde2ar=uivos)");&>,!?,4,!;?"3?@,
"3A)Publico)aneBo2-.'d/)
4o/t*are gratuito 'ara Modbus%
4o/t*are do teste do 'rograma demostrativo de Modbus 4im'l+ Modbus
((tt'%))***.sim'l+modbus.ca)do*nload.(tm)
4o/t*are gratuito =ue simula dis'ositivos escravos % Modbus 4imulator
((tt'%))***.'lcsimulator.org))
5Cdigo /onte do 'rotocolo 'ara
((tt'%))***.'rotocessor.com)tec(su''ort)6ree2Modbus28;<24ource25ode.as')
microcontrolador PI5
ProDetos de cCdigo aberto no ((tt'%))/res(meat.net)searc()E
=FmodbusGsectionF'roDectsGHo.BFGHo.+F) 6res(meat
ProDetos de cCdigo aberto no ((tt'%))source/orge.net)searc()E*ordsFmodbus) 4ource/orge
4o/t*are 'ara simula01o e testes em Modbus ((tt'%))***.*in,tec(.com))
Modbus,Master ((tt'%))i//***.i//.$/a,Duelic(.de)I*utt$e)do$u)do$u.'('EidFD*u%modbus) em
8ub+.
Obtida de J(tt'%))'t.*i$i'edia.org)*)indeB.'('EtitleFModbusGoldidF34?KA"?4J
5ategorias% 8edes de com'utadores ;erminologia in/ormtica 8edes industriais >letrLnica
>sta 'gina /oi modi/icada 'ela Mltima vez N(s) "(:9min de !: de mar0o de !"3.
>ste teBto O dis'onibilizado nos termos da licen0a -tribui01o,Partil(a nos Mesmos ;ermos 3.
n1o -da'tada (55 PQ,4- 3.)R 'ode estar suDeito a condi0Ses adicionais. 5onsulte as
condi0Ses de uso 'ara mais detal(es.
Pgina : de : Modbus T Ui$i'Odia, a enciclo'Odia livre
!")4)!"3 (tt'%))'t.*i$i'edia.org)*i$i)Modbus