Você está na página 1de 11

8/21/2018 Protocolo Modbus: fundamentos e aplicações - Embarcados


Protocolo Modbus: Fundamentos e Aplicações
Por Carlos Márcio Freitas - 07/04/2014


ÍNDICE DE CONTEÚDO [MOSTRAR]

Este post faz parte da série Protocolo Modbus. Leia também os outros posts da série:

Protocolo Modbus: Fundamentos e Aplicações


Protocolo Modbus: Exemplos e Simuladores

O protocolo Modbus  é uma estrutura de mensagem aberta desenvolvida pela


Modicon  na década de 70, utilizada para comunicação entre  dispositivos mestre-
escravo / cliente-servidor. A Modicon foi posteriormente adquirida pela Schneider e os
direitos sobre o protocolo foram liberados pela Organização Modbus. Muitos
equipamentos industriais utilizam o Modbus como protocolo de comunicação, e
graças às suas características, este protocolo também tem sido utilizado em uma
vasta gama de aplicações como:

Instrumentos e equipamentos de laboratório;


Automação residencial;
Automação de navios.

Sobre o Protocolo Modbus


 
https://www.embarcados.com.br/protocolo-modbus/ 1/11
8/21/2018 Protocolo Modbus: fundamentos e aplicações - Embarcados

O Modbus é um dos protocolos mais utilizados em automação industrial, graças à


sua simplicidade e facilidade de implementação, podendo ser utilizado em diversos
padrões de meio físico, como:

RS-232;
RS-485;
Ethernet TCP/IP (MODBUS TCP).

A velocidade de comunicação varia em cada um desses padrões, bem como o


comprimento máximo da rede e o número máximo de dispositivos conectados.

O padrão RS-232 (Recommendad Standart-232) ou EIA-232 (Electronic Industries


Alliance-232) é utilizado apenas em comunicações do tipo ponto a ponto, ou seja, só
admite dois dispositivos na rede, que no caso do protocolo Modbus representa o
mestre e 1 escravo. A velocidade máxima desse padrão está em torno de 115Kbps,
mas em alguns casos podem ser encontradas taxas um pouco maiores, a distância
máxima entre os dispositivos da rede está em torno de 30m.

O padrão RS-485 (Recommendad Standart-485) ou EIA-485 (Electronic Industries


Alliance-485) é muito utilizado na indústria e sem dúvida é um dos padrões mais
utilizados pelo protocolo Modbus. Esse padrão permite trabalhar com taxas de
comunicação que podem chegar a 12Mbps e  em alguns casos até 50Mbps, vale
lembrar que quanto maior o comprimento da rede menor será a velocidade de
comunicação, a distância máxima da rede está em torno de 1200m, e o número
máximo de dispositivos no barramento da rede é de 32.

Figura 1 - RS485 para protocolo Modbus

 
O padrão Ethernet no protocolo Modbus possui algumas variações, podendo chegar a
100Mbps ou até 10Gbps. A distância máxima pode variar de 100m até próximo de

https://www.embarcados.com.br/protocolo-modbus/ 2/11
8/21/2018 Protocolo Modbus: fundamentos e aplicações - Embarcados

200m dependendo do tipo de cabo utilizado e das condições de instalação do


mesmo. 

Figura 2 - Uso do padrão Ethernet no


Protocolo Modbus

Em alguns casos é possível utilizar redes em fibra ótica, fato que permite alcançar
distâncias maiores e melhores taxas de comunicação, bem como utilizar
comunicação wireless.

Em uma próxima oportunidade irei abordar o assunto de padrões físicos com mais
detalhes. É importante não confundir protocolo de comunicação com padrões físicos.
Alguns protocolos possuem seu padrão físico definido como é o caso da rede ASI e
da rede CAN, sendo que nesses casos o padrão físico é definido junto ao protocolo e
não é possível alterá-lo. 

Na figura abaixo vemos um exemplo de rede com o protocolo Modbus, com   um


gateway fazendo a conexão entre os dois tipos de Modbus, o serial em RS-485 e o
TCP/IP em ethernet. No mercado ainda existe a opção do gateway Modbus wireless.
O mestre da rede, que nesse caso é um CLP (Controlador Lógico Programável) envia e
recebe dados dos escravos, que são posteriormente um inversor de frequência, uma
IHM (Interface Homem Máquina), um controlador de temperatura e uma interface de
I/O remota Modbus.

https://www.embarcados.com.br/protocolo-modbus/ 3/11
8/21/2018 Protocolo Modbus: fundamentos e aplicações - Embarcados

Figura 3 - Exemplo de rede com o protocolo Modbus

A estação mestre inicia a comunicação solicitando que os escravos enviem seus


dados. Os escravos, por sua vez, recebem a requisição do mestre e retornam os
dados solicitados. Os dados transmitidos podem ser discretos ou numéricos, ou seja,
é possível enviar valores numéricos como temperatura e pressão ou enviar um bit
para ligar e desligar um motor. Na figura a seguir podemos observar como é
constituído o quadro de mensagens no protocolo Modbus.

Figura 4 - Quadro de mensagens para Protocolo Modbus

Ao utilizar  o meio físico Ethernet o protocolo MODBUS opera com  o mecanismo de


controle de acesso CSMA-CD, que é próprio da rede Ethernet, com mensagens no
modelo cliente-servidor.

https://www.embarcados.com.br/protocolo-modbus/ 4/11
8/21/2018 Protocolo Modbus: fundamentos e aplicações - Embarcados

Modos de transmissão
 

Na especificação do protocolo estão definidos dois modos de transmissão:

ASCII;
RTU.

Os modos definem a forma como são transmitidos os bytes da mensagem, e como a


informação da mensagem será empacotada na mensagem e descompactada. Não é
possível utilizar os dois modos de transmissão na mesma rede.  O modo de
transmissão pode ser selecionado com outros parâmetros da porta de comunicação
serial, mas existem equipamentos que não permitem essa seleção, pois possuem
modo de transmissão fixo, como por exemplo alguns CLP's e inversores de frequência
que utilizam o modo RTU por padrão.

Endereços
 

Ao todo o protocolo Modbus possui 256 endereços onde:

0 - (Zero) é o endereço de Broadcast, quando o mestre envia uma mensagem para


o endereço zero, todos os escravos recebem a mensagem;
1 até 247 -Endereços disponíveis para os escravos;
248 até 255 Endereços reservados.

O mestre não possui endereço, somente os escravos devem possuir endereço


definido.

https://www.embarcados.com.br/protocolo-modbus/ 5/11
8/21/2018 Protocolo Modbus: fundamentos e aplicações - Embarcados

Código da Função
 

É onde o mestre especifica o tipo de serviço ou função solicitada ao escravo (leitura,


escrita, etc). No protocolo Modbus, cada função é utilizada para acessar um tipo
específico de dado.

Tabela1: funções no Protocolo Modbus 

Código da função Descrição

1   Leitura de bloco de bits do tipo coil(saída discreta).

2   Leitura de bloco de bits do tipo entradas discretas.

3   Leitura de bloco de registradores do tipo holding.

4   Leitura de bloco de registradores do tipo input.

5   Escrita em um único bit do tipo coil(saída discreta).

6   Escrita em um único registrador do tipo holding.

7   Ler o conteúdo de 8 estados de exceção.

8   Prover uma série de testes para verificação da


comunicação e erros       internos.

11   Obter o contador de eventos.

12   Obter um relatório de eventos.

15   Escrita em bloco de bits do tipo coil(saída discreta).

16   Escrita em bloco de registradores do tipo holding.

17   Ler algumas informações do dispositivo.

20   Ler informações de um arquivo.

21   Escrever informações em um arquivo.

22   Modificar o conteúdo de registradores de espera através de


https://www.embarcados.com.br/protocolo-modbus/ 6/11
8/21/2018 Protocolo Modbus: fundamentos e aplicações - Embarcados

operações   lógicas.

23   Combina ler e escrever em registradores numa única


transação.

24   Ler o conteúdo da fila FIFO de registradores.

43   Identificação do modelo do dispositivo.

Modo de transmissão ASCII


 

Quando os equipamentos são configurados para se comunicarem em uma rede


Modbus usando ASCII (American Standard Code for Information Interchange), cada
byte em uma mensagem é enviado como dois caracteres ASCII.  Apesar de gerar
mensagens legíveis pela tabela ASCII esse modo consome mais recursos da rede. A
principal vantagem dessa modalidade é   que permite que os intervalos de tempo
sejam cerca de um segundo para correr entre os caracteres sem causar erro. 

Os dispositivos monitoram constantemente a rede para o início de uma mensagem.


Quando uma mensagem é iniciada pelo mestre, todos   os dispositivos da rede
decodificam o campo de endereço para determinar qual escravo deve receber a
mensagem. O inicio de uma mensagem é reconhecido pelo caractere (:) "dois pontos".

O formato para cada byte em modo ASCII é:

 Codificação do sistema: Hexadecimal, caracteres ASCII 0-9, A-F,  um caractere


hexadecimal contido em cada caractere ASCII da mensagem;
Bits por Byte:

              1 bit de início 

              7 bits de dados, bit menos significativo primeiro 


              1 bit para paridade par / ímpar,  ou sem bit de paridade
              1 bit de parada, se a paridade é usado; 2 bits se sem paridade

https://www.embarcados.com.br/protocolo-modbus/ 7/11
8/21/2018 Protocolo Modbus: fundamentos e aplicações - Embarcados

16 bits Campo Erro check : Longitudinal Redundancy Check (LRC)

Intervalos de até um segundo podem decorrer entre caracteres dentro da mensagem.


 Se ocorrer um intervalo maior, o dispositivo receptor assume que ocorreu um erro. O
campo de checagem de erros é baseado no método LRC (Longitudinal Redundancy
Check).

Modo de transmissão RTU (Remote Terminal Unit)


 

No modo RTU (Remote Terminal Unit), cada mensagem de 8 bits contém dois
caracteres hexadecimais de 4 bits. A principal vantagem desse modo é que sua maior
densidade de caracteres permite um melhor processamento de dados do que o modo
ASCII para o mesmo baudrate (velocidade de comunicação). Cada  mensagem deve
ser transmitida em um fluxo contínuo de caracteres.

No modo RTU não existe um caractere específico que indique o início ou o fim de um


telegrama. A indicação de quando uma nova mensagem começa ou quando ela
termina é feita pela ausência de transmissão de dados na rede, por um tempo mínimo
de 3,5 vezes o tempo de transmissão de um byte de dados. Sendo assim, caso um
telegrama tenha iniciado após a decorrência desse tempo mínimo, os elementos da
rede irão assumir que o primeiro caractere recebido representa o início de um novo
telegrama. E da mesma forma, os elementos da rede irão assumir que o telegrama
chegou ao fim quando, recebidos os bytes do telegrama, este tempo decorra
novamente.

 
https://www.embarcados.com.br/protocolo-modbus/ 8/11
8/21/2018 Protocolo Modbus: fundamentos e aplicações - Embarcados

Se durante a transmissão de um telegrama o tempo entre os bytes for maior que este
tempo mínimo, o telegrama será considerado inválido, pois o controlador irá descartar
os bytes já recebidos e montará um novo telegrama com os bytes que estiverem
sendo transmitidos.  O tempo para transmitir uma palavra do quadro varia de 573us
para taxas de comunicação acima de 19200bits/s e 9 ms para a taxa de 1200bits/s.

O campo de checagem de erros é baseado no método CRC (Cyclical Redundancy


Checking).

MODBUS TCP
 

Modbus TCP é uma implementação do protocolo Modbus baseado em TCP/IP. Utiliza


a pilha TCP/IP para comunicação e adiciona ao quadro Modbus um cabeçalho
específico chamado MBAP  (MODBUS Application Protocol). O modelo de mensagem
Modbus TCP/IP fica da seguinte forma:  

O cabeçalho MBAP tem tamanho de 7 bytes, e é composto pelos seguintes campos:

Transaction identifier: usado para identificação da resposta para a transação (2


bytes);
Protocol identifier: 0 (zero) indica Modbus (2 bytes);

Length: contagem de todos os próximos bytes (2 bytes);

Unit identifier: utilizado para identificar o escravo remoto em uma rede Modbus
RTU (1 byte).

Modbus TCP não acrescenta ao quadro um campo de checagem de erros, entretanto


o frame ethernet já utiliza CRC-32 tornando desnecessário outro campo de
checagem. O cliente Modbus TCP deve iniciar uma conexão TCP com o servidor a fim
de enviar as requisições. A porta TCP 502 é a porta padrão para conexão com
servidores Modbus TCP.

https://www.embarcados.com.br/protocolo-modbus/ 9/11
8/21/2018 Protocolo Modbus: fundamentos e aplicações - Embarcados

O vídeo abaixo é muito interessante, e apresenta as características do protocolo


Modbus serial e TCP. Apesar de estar em inglês, o vídeo é de fácil compreensão.

No próximo artigo veremos exemplos que utilizam protocolo Modbus, além de


conhecer simuladores desse protocolo de comunicação.

Outros artigos da série


Protocolo Modbus: Exemplos e Simuladores >>

a Facebook 130 d Twitter 26 f Google+ 50 k Linkedin 116

Este post faz da série Protocolo Modbus. Leia também os outros posts da série:

u
Protocolo Modbus: Fundamentos e Aplicações
Protocolo Modbus: Exemplos e Simuladores

NEWSLETTER
Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais
e promoções.

E-mail

CADASTRAR E-MAIL

Fique tranquilo, também não gostamos de spam.

Carlos Márcio Freitas


Engenheiro eletricista trabalha a 13 anos com sistemas microprocessados para automação industrial e
eletrônica automotiva (com certificação ASE), atualmente trabalha com automação na industria de óleo
e gás.

https://www.embarcados.com.br/protocolo-modbus/ 10/11
8/21/2018 Protocolo Modbus: fundamentos e aplicações - Embarcados

Este site utiliza cookies. Ao usá-lo você concorda com nossos Termos de Uso.
Continuar
Saiba mais.

https://www.embarcados.com.br/protocolo-modbus/ 11/11