Está en la página 1de 6

1/6/2014 Modbus Wikipdia, a enciclopdia livre

http://pt.wikipedia.org/wiki/Modbus 1/6
Modbus
Origem: Wikipdia, a enciclopdia livre.
Modbus um Protocolo de comunicao de dados utilizado em sistemas de automao industrial. Criado
originalmente na dcada de 1970, mais especificamente em 1979 , pela fabricante de equipamentos Modicon.
um dos mais antigos e at hoje mais utilizados protocolos em redes de Controladores lgicos programveis
(PLC) para aquisio de sinais de instrumentos e comandar actuadores. A Schneider Electric (atual
controladora da Modicon) transferiu os direitos do protocolo para a Modbus Organization (Organizao
Modbus ) em 2004 e a utilizao livre de taxas de licenceamento . Por esta razo, e tambm por se
adequar facilmente a diversos meios fsicos, utilizado em milhares de equipamentos existentes e uma das
solues de rede mais baratas a serem utilizadas em Automao Industrial.
ndice
1 Caractersticas tcnicas
2 Modelo de comunicao
3 Acesso ao meio
4 Frames
5 Comandos do MODBUS
6 Modbus serial
6.1 Modbus RTU
6.1.1 Formato do pacote RTU
6.2 Modbus ASCII
6.2.1 Formato do pacote ASCII
7 Modbus TCP
8 Modbus Plus
9 Referncias
10 Ligaes externas
Caractersticas tcnicas
O modbus equivale a uma camada de aplicao e pode utilizar o RS-232, RS-485 ou Ethernet como meios
fsicos - equivalentes camada de enlace (ou link) e camada fsica do modelo. O protocolo possui comandos
para envio de dados discretos (entradas e sadas digitais) ou numricos (entradas e sadas analgicas).
Modelo de comunicao
O protocolo Modbus especifica que o modelo de comunicao do tipo mestre-escravo (ou cliente-servidor).
Assim, um escravo no deve iniciar nenhum tipo de comunicao no meio fsico enquanto no tiver sido
requisitado pelo mestre. Por exemplo, a estao mestre (geralmente um PLC) envia mensagens solicitando dos
escravos que enviem os dados lidos pela instrumentao ou envia sinais a serem escritos nas sadas, para o
1
2
3 4
1/6/2014 Modbus Wikipdia, a enciclopdia livre
http://pt.wikipedia.org/wiki/Modbus 2/6
controle dos atuadores ou nos registradores. A imagem abaixo mostra um exemplo de rede Modbus com um
mestre (PLC) e trs escravos (mdulos de entradas e sadas, ou simplesmente E/S). Em cada ciclo de
comunicao, o PLC l e escreve valores em cada um dos escravos.
Acesso ao meio
No entanto, ainda possvel haver colises durante o acesso ao meio compartilhado, e o protocolo no
especfico em como solucion-las. Como ilustrao de um problema possvel, suponha que, em uma dada
aplicao do protocolo Modbus sobre um barramento RS-485, o mestre requisita seus escravos em sequncia.
Suponha tambm que o mestre, aps um tempo especfico, passa a requisitar o escravo seguinte, tendo
recebido ou no uma resposta do escravo anterior. Nesse caso, se o primeiro escravo demora mais tempo para
responder do que o tempo que o mestre espera, pode acontecer de o primeiro escravo responder bem no
perodo em que o mestre resolveu fazer a requisio ao escravo seguinte, ou no perodo em que o segundo
escravo j tinha iniciado sua resposta havendo coliso no meio. No h nada especificado no protocolo para
resolver esse tipo de problema. Cabe inteiramente aplicao atravs de hardware ou software -
implementar de forma correta o acesso ao meio, os parmetros de time-out etc.
Frames
Basicamente, uma comunicao em Modbus obedece a um frame que contm o endereo do escravo, o
comando a ser executado, uma quantidade varivel de dados complementares e uma verificao de
consistncia de dados (CRC).
Exemplo-1: Se o PLC precisa ler as 10 primeiras entradas analgicas (do endereo 0000 ao 0009) no mdulo
2. Para isso preciso utilizar o comando de leitura de mltiplos registros analgicos (comando 3). O frame de
comunicao utilizado mostrado abaixo (os endereos so mostrados em sistema hexadecimal):
endereo comando end. dos registros quant. de registros CRC
02 03 00 00 00 0A 2 caracteres
A resposta do escravo seria um frame semelhante composto das seguintes partes: O endereo do escravo, o
nmero do comando, os dez valores solicitados e um verificador de erros (CRC). Em caso de erros de
resposta (por exemplo um dos endereos solicitados no existe) o escravo responde com um cdigo de erro.
A resposta para a pergunta acima seria a seguinte:
Mas antes uma pequena recordao!
1/6/2014 Modbus Wikipdia, a enciclopdia livre
http://pt.wikipedia.org/wiki/Modbus 3/6
Para se entender este frame de resposta, antes precisamos saber corretamente o que um byte.
Cada palavra tem as seguintes formas, - bit, - nible, - byte e - word.
Segue abaixo uma tabela representao de cada formato.
Bit Nible Byte Word
1 = 4 bits = 8 bits = 16 bits
Agora que ja sabemos o que byte podemos ento decifrar o frame da rede modbus.
Exemplo-2: Reposta da pergunta citada no exemplo-1.
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 segundo byte(03) a funo utilizada para leitura, sendo essa um
Holding Register; O terceiro byte a quantidade de endereos que o Slave(escravo) est enviando ao Master,
sendo que a cada 2 bytes se forma uma Word que significa uma palavra de 16 bit, por isso este frame tem 14 =
20 bytes que = 10 word ou 10 palavras de 16 bits que tem seu range minimo de -32768 ate 32767.
Com isso entendemos que o Slave(Escravo) respondeu 10 endereos a ao master e todos com o valor zero.
Comandos do MODBUS
Os principais comandos do Modbus so mostrados na tabela abaixo:
cdigo do comando descrio
0x01 L um nmero varivel de sadas digitais (bobinas)
0x02 L um nmero varivel de entradas digitais
0x03 L um nmero varivel de registros retentivos (sadas analgicas ou memrias)
0x04 L um nmero varivel de registros de entrada (entradas analgicas)
0x05 Fora uma nica bobina (altera o estado de uma sada digital)
0x06 Preset de um nico registro (altera o estado de uma sada analgica)
0x07 L excees (registros de erro)
0x08 Vrias funes de diagnstico
0x0F Fora uma quantidade varivel de bobinas (sadas digitais)
0x10 Preset de uma quantidade varivel de registros (sadas analgicas)
A quantidade de variveis a ler definida no frame de solicitao
Oito bits previamente configurados. No necessrio fornecer parmetros de endereamento com este
comando pois o escravo vai enviar sempre os oito bits pr configurados.
Para alguns comandos de diagnstico, tais como reincio de comunicao, reset do mdulo ou sincronizao de
relgio, podem ser utilizados comunicaes do tipo broadcast, ou seja, destinada a todos os escravos
simultaneamente.
1
1
1
1
2
1
1
1
2
1/6/2014 Modbus Wikipdia, a enciclopdia livre
http://pt.wikipedia.org/wiki/Modbus 4/6
Modbus serial
Em redes seriais baseadas em RS-485 ou RS-232 o Modbus pode ter dois modos de transmisso: RTU e
ASCII.
Modbus RTU
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 -32768 e 32767 podem ser representados por 2 bytes. O mesmo nmero
precisaria de quatro caracteres ASCII para ser representado (em hexadecimal). O tamanho da palavra no
modo RTU de 8 bits.
Formato do pacote RTU
Endereo do Escravo Cdigo da Funo Dados CRC
1 byte 1 byte 0 a 252 bytes 2 bytes (CRC-16)
Modbus ASCII
Os dados so dados codificados e transmitidos atravs de caracteres ASCII - cada byte transmitido atravs
de dois caracteres. Apesar de gerar mensagens legveis por pessoas este modo consome mais recursos da
rede. Por exemplo, para transmitir o byte 0x5B este dever ser codificado em dois caracteres ASCII: 0x35
(5) e 0x42 (B). O tamanho da palavra no modo ASCII de 7 bits. Somente so permitidos caracteres
contidos nos intervalos
0-9
A-F
Intervalo entre duas mensagens deve ser de 3,5 caracteres.
Formato do pacote ASCII
Incio Endereo Funo Dados LRC Final
":" (ASCII
0x3Ah)
2
caracteres
2
caracteres
0 a 2 x 252
caracteres
2
caracteres
CR+LF (ASCII 0x0Dh +
0x0Ah)
Modbus TCP
Aqui os dados so encapsulados em formato binrio em frames TCP para a utilizao do meio fsico Ethernet
(IEEE 802.3). Quando o Modbus/TCP utilizado, o mecanismo de controle de acesso o CSMA-CD
(Prprio da rede Ethernet) e as estaes utilizam o modelo cliente-servidor.
Retrocompatibilidade e Conversores
Suponha que um PLC precisa trocar dados usando o protocolo Modbus-TCP com dispositivos antigos, que
no suportam esse protocolo, e esto conectados em um barramento RS-485. Nesse caso, existem no
mercado conversores Modbus-TCP<->Modbus Serial RS-232/485. Esses dispositivos diferem de um
1/6/2014 Modbus Wikipdia, a enciclopdia livre
http://pt.wikipedia.org/wiki/Modbus 5/6
conversor puramente fsico, que somente converteria os sinais eltricos de um protocolo fsico para outro. Eles,
em vez disso, implementam os protocolos TCP e IP, alm de implementar tambm o protocolo Modbus.
Isso necessrio, pois preciso haver uma conexo TCP entre o conversor e o PLC, j que essa conexo no
pode existir diretamente com os equipamentos antigos. O conversor precisa, portanto, implementar o protocolo
TCP e aceitar conexes atravs de sockets etc. Caso contrrio, a comunicao no seria possvel.
Alm disso, o conversor precisar tirar os dados Modbus que esto dentro do pacote IP, que por sua vez
est dentro do quadro Ethernet para enviar ao escravo correto no barramento RS-485.
H tambm conversores com vrias sadas seriais. Nesse caso, possvel separar os escravos em vrios
barramentos distintos, cada um em uma porta. No primeiro barramento, podem ser colocados os escravos
cujos endereos vo de 1 ao 10; no segundo, de 11 a 20, e por a em diante isso s um exemplo.
Nessa configurao, o conversor precisaria ler o pacote Modbus, interpret-lo ao ponto de saber qual o
endereo do escravo de destino, para ento envi-lo porta de sada correta.
Modbus Plus
Verso que possui vrios recursos adicionais de roteamento, diagnstico, endereamento e consistncia de
dados. Esta verso ainda mantida sob domnio da Schneider Electric e s pode ser implantada sob licena
deste fabricante.
Referncias
1. Modbus Organization, Inc.. Modbus FAQ (http://www.modbus.org/faq.php) (em ingls). Pgina visitada em
30 de agosto de 2012.
2. ControlDesign.com. Three Variants Dominate Industrial Ethernet
(http://www.controldesign.com/industrynews/2010/021.html) (em ingls). Pgina visitada em 12 de outubro de
2012.
3. Modbus Organization, Inc.. Modbus Organization (http://www.modbus.org/) (em ingls). Pgina visitada em
07 de setembro de 2012.
4. Modbus Organization, Inc.. Modbus FAQ (http://www.modbus.org/faq.php) (em ingls). Pgina visitada em
30 de agosto de 2012.
Ligaes externas
Links em ingls:
Descritivo do protocolo (http://www.protocessor.com/solutions/key-protocols/Modbus.php)
A ntegra da especificao do protocolo (verso 1.1b)
(http://www.modbus.org/docs/Modbus_Application_Protocol_V1_1b.pdf)
Site da Organizao Modbus - associao de fabricantes (http://www.modbus.org)
Site da Schneider Automation (http://www.modicon.com/Default.htm)
Como Modbus trabalha (http://www.simplymodbus.ca/FAQ.htm)
Links em portugus:
Resumo sobre redes Modbus (http://www.automacoes.com/2009/05/redes-industriais-modbus-rtu-e-
profibus.html)
Modbus (http://www.cerne-tec.com.br/Modbus.pdf)
1/6/2014 Modbus Wikipdia, a enciclopdia livre
http://pt.wikipedia.org/wiki/Modbus 6/6
Modos de Transmisso RTU e ASCII do Modbus (http://www.tede.udesc.br/tde_arquivos/1/TDE-
2006-04-20T061306Z-138/Publico/anexo_A.pdf)
Software gratuito para Modbus:
Software do teste do programa demostrativo de Modbus Simply Modbus
(http://www.simplymodbus.ca/download.htm)
Software gratuito que simula dispositivos escravos : Modbus Simulator (http://www.plcsimulator.org/)
Cdigo fonte do protocolo para
(http://www.protocessor.com/techsupport/Free_Modbus_RTU_Source_Code.asp) microcontrolador
PIC
Projetos de cdigo aberto no (http://freshmeat.net/search/?
q=modbus&section=projects&Go.x=0&Go.y=0) Freshmeat
Projetos de cdigo aberto no (http://sourceforge.net/search/?words=modbus) Sourceforge
Software para simulao e testes em Modbus (http://www.win-tech.com/)
Modbus-Master (http://iffwww.iff.kfa-juelich.de/~wuttke/doku/doku.php?id=jwu:modbus) em Ruby.
Obtida de "http://pt.wikipedia.org/w/index.php?title=Modbus&oldid=38434306"
Categorias: Redes de computadores Terminologia informtica Redes industriais Eletrnica
Esta pgina foi modificada pela ltima vez (s) 02h23min de 18 de maro de 2014.
Este texto disponibilizado nos termos da licena Creative Commons - Atribuio - CompartilhaIgual
3.0 No Adaptada (CC BY-SA 3.0); pode estar sujeito a condies adicionais. Para mais detalhes,
consulte as Condies de Uso.