Escolar Documentos
Profissional Documentos
Cultura Documentos
Modbus
Origem: Wikipédia, a enciclopédia livre.
Características técnicas
O Modbus é um protocolo de comunicação da camada de aplicação (modelo OSI) e pode utilizar o
RS-232, RS-485 ou Ethernet como meios físicos - equivalentes camada de enlace (ou link) e
camada física do modelo. O protocolo possui comandos para envio de dados discretos (entradas e
saídas digitais) ou numéricos (entradas e saídas analógicas).
Modelo de comunicação
O protocolo Modbus especifica que o modelo de comunicação é do tipo mestre-escravo (ou
servidor-cliente). Assim, um escravo não deve iniciar nenhum tipo de comunicação no meio físico
enquanto não tiver sido requisitado pelo mestre. Por exemplo, a estação mestre (geralmente um
PLC) envia mensagens solicitando dos escravos que enviem os dados lidos pela instrumentação ou
envia sinais a serem escritos nas saídas, para o controle dos atuadores ou nos registradores. A
imagem abaixo mostra um exemplo de rede Modbus com um mestre (PLC) e três escravos
(módulos de entradas e saídas, ou simplesmente E/S). Em cada ciclo de comunicação, o PLC lê e
escreve valores em cada um dos escravos.
Acesso ao meio
https://pt.wikipedia.org/wiki/Modbus 1/6
07/11/23, 07:57 Modbus – Wikipédia, a enciclopédia livre
No entanto, ainda é possível haver colisões durante o acesso ao meio compartilhado, e o protocolo
não é específico em como solucioná-las. Como ilustração de um problema possível, suponha que,
em uma dada aplicação do protocolo Modbus sobre um barramento RS-485, o mestre requisita
seus escravos em sequência. Suponha também que o mestre, após um tempo específico, passa a
requisitar o escravo seguinte, tendo recebido ou não 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 período em que o mestre resolveu fazer a
requisição ao escravo seguinte, ou no período em que o segundo escravo já tinha iniciado sua
resposta – havendo colisão no meio. Não há nada especificado no protocolo para resolver esse tipo
de problema. Cabe inteiramente à aplicação – através de hardware ou software - implementar de
forma correta o acesso ao meio, os parâmetros de time-out etc.
Frames
Basicamente, uma comunicação em Modbus obedece a um frame que contém o endereço do
escravo, o comando a ser executado, uma quantidade variável de dados complementares e uma
verificação de consistência de dados (CRC).
Exemplo-1: Se o PLC precisa ler as 10 primeiras entradas analógicas (do endereço 0000 ao 0009)
no módulo 2. Para isso é preciso utilizar o comando de leitura de múltiplos registros analógicos
(comando 3). O frame de comunicação utilizado é mostrado abaixo (os endereços são mostrados
em sistema hexadecimal):
A resposta do escravo seria um frame semelhante composto das seguintes partes: O endereço do
escravo, o número do comando, os dez valores solicitados e um verificador de erros (CRC). Em
caso de erros de resposta (por exemplo um dos endereços solicitados não existe) o escravo
responde com um código de erro.
Para se entender este frame de resposta, antes precisamos saber corretamente o que é um byte.
Agora que ja sabemos o que é byte podemos então decifrar o frame da rede modbus.
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)
https://pt.wikipedia.org/wiki/Modbus 2/6
07/11/23, 07:57 Modbus – Wikipédia, a enciclopédia livre
O primeiro byte(02) é o nó do escravo; O segundo byte(03) é a função utilizada para leitura, sendo
essa um Holding Register; O terceiro byte é a quantidade de endereços 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 (hexadecimal) = 20 bytes que é = 10 word ou 10 palavras de 16 bits
que tem seu range mínimo de -32768 ate 32767.
Com isso entendemos que o Slave(Escravo) respondeu 10 endereços a ao master e todos com o
valor zero.
Comandos do MODBUS
Os principais comandos do Modbus são mostrados na tabela abaixo:
código do
descrição
comando
0x01 Lê um número variável1 de saídas digitais (bobinas)
0x02 Lê um número variável1 de entradas digitais
Para alguns comandos de diagnóstico, tais como reinício de comunicação, reset do módulo ou
sincronização de relógio, podem ser utilizados comunicações do tipo broadcast, ou seja, destinada
a todos os escravos simultaneamente.
Modbus serial
Em redes seriais baseadas em RS-485 ou RS-232 o Modbus pode ter dois modos de transmissão:
RTU e ASCII.
Modbus RTU
https://pt.wikipedia.org/wiki/Modbus 3/6
07/11/23, 07:57 Modbus – Wikipédia, a enciclopédia livre
O termo RTU, do inglês Remote Terminal Unit, refere-se ao modo de transmissão onde endereços
e valores são representados em formato binário. Neste modo para cada byte transmitido são
codificados dois caracteres. Números inteiros variando entre -32768 e 32767 podem ser
representados por 2 bytes. O mesmo número precisaria de quatro caracteres ASCII para ser
representado (em hexadecimal). O tamanho da palavra no modo RTU é de 8 bits.
Modbus ASCII
Os dados são dados codificados e transmitidos através de caracteres ASCII - cada byte é
transmitido através de dois caracteres. Apesar de gerar mensagens legíveis 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 são permitidos caracteres contidos nos intervalos
0-9
A-F
Modbus TCP
Aqui os dados são encapsulados em formato binário em frames TCP para a utilização do meio
físico Ethernet (IEEE 802.3). Quando o Modbus/TCP é utilizado, o mecanismo de controle de
acesso é o CSMA-CD (Próprio da rede Ethernet) e as estações utilizam o modelo cliente-servidor.
Retrocompatibilidade e Conversores
Suponha que um PLC precisa trocar dados usando o protocolo Modbus-TCP com dispositivos
antigos, que não suportam esse protocolo, e estão conectados em um barramento RS-485. Nesse
caso, existem no mercado conversores Modbus-TCP<->Modbus Serial RS-232/485. Esses
dispositivos diferem de um conversor puramente físico, que somente converteria os sinais elétricos
de um protocolo físico para outro. Eles, em vez disso, implementam os protocolos TCP e IP, além
de implementar também o protocolo Modbus.
Isso é necessário, pois é preciso haver uma conexão TCP entre o conversor e o PLC, já que essa
conexão não pode existir diretamente com os equipamentos antigos. O conversor precisa, portanto,
implementar o protocolo TCP e aceitar conexões através de sockets etc. Caso contrário, a
comunicação não seria possível.
Além disso, o conversor precisará tirar os dados Modbus – que estão dentro do pacote IP, que por
sua vez está dentro do quadro Ethernet – para enviar ao escravo correto no barramento RS-485.
https://pt.wikipedia.org/wiki/Modbus 4/6
07/11/23, 07:57 Modbus – Wikipédia, a enciclopédia livre
Há também conversores com várias saídas seriais. Nesse caso, é possível separar os escravos em
vários barramentos distintos, cada um em uma porta. No primeiro barramento, podem ser
colocados os escravos cujos endereços vão de 1 ao 10; no segundo, de 11 a 20, e por aí em diante –
isso é só um exemplo.
Nessa configuração, o conversor precisaria ler o pacote Modbus, interpretá-lo ao ponto de saber
qual é o endereço do escravo de destino, para então enviá-lo à porta de saída correta.
Modbus Plus
Versão que possui vários recursos adicionais de roteamento, diagnóstico, endereçamento e
consistência de dados. Esta versão ainda é mantida sob domínio da Schneider Electric e só pode
ser implantada sob licença deste fabricante.
Referências
1. Modbus Organization, Inc. «Modbus FAQ» (http://www.modbus.org/faq.php) (em inglês).
Consultado em 30 de agosto de 2012
2. ControlDesign.com. «Three Variants Dominate Industrial Ethernet» (http://www.controldesign.c
om/industrynews/2010/021.html) (em inglês). Consultado em 12 de outubro de 2012
3. Modbus Organization, Inc. «Modbus Organization» (http://www.modbus.org/) (em inglês).
Consultado em 7 de setembro de 2012
Ligações externas
Links em inglês:
Links em português:
Obtida de "https://pt.wikipedia.org/w/index.php?title=Modbus&oldid=64267954"
https://pt.wikipedia.org/wiki/Modbus 6/6