Escolar Documentos
Profissional Documentos
Cultura Documentos
Nota de Aplicação
Introdução
O Protocolo Modbus
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:
RS-232;
RS-485;
Ethernet TCP/IP (MODBUS TCP).
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 200m dependendo do
tipo de cabo utilizado e das condições de instalação do mesmo.
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.
É 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 utilizando 0 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.
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.
Interface Solution Provider
Nota de Aplicação
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.
Modos de transmissão
Na especificação do protocolo Modbus 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
CLPs e inversores de frequência que utilizam o modo RTU por padrão.
Interface Solution Provider
Nota de Aplicação
O mestre não possui endereço, somente os escravos devem possuir endereço definido.
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.
Código da Descrição
funçã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 erro internos.
11 Modbus: Obter o contador de eventos.
12 Modbus: 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 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.
Interface Solution Provider
Nota de Aplicação
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.
1 bit de início
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.
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.
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.
Em uma rede padrão Modbus, podemos ter um Master e até 247 Slaves, sendo que cada um
recebe um endereço de 1 a 247. Por este endereçamento, o Master pode escrever as
informações nos escravos.
Os dados são enviados em uma série de uns e zeros (1’s e 0’s) chamado bits, onde cada bit é
enviado como um voltagem onde os 0’s são voltagens positivas e os 1’s voltagens negativas. Os
bits são enviados muito rapidamente e uma transmissão típica pode atingir a velocidade de 9600
baud (bits por segundo).
Interface Solution Provider
Nota de Aplicação
Baseando-se na tabela, podemo dizer que cada bloco de 8 bits (chamado byte) pode ser
representado por 256 caracteres que variam de 00 a FF.
Endereço em ASCII
O padrão ASCII (American Standard Code for Information Interchange) é uma combinação de 8
Bits formando 1 Byte que juntos representam cada caractere em uma combinação de 256 ASCII
caracteres, incluindo letras e números de um teclado. Veja na tabela abaixo alguns dos
caracteres ASCII e a correlação com as representações binárias, decimal e hexadecimal:
1 0000 0001 01 “
34 0010 0010 22 #
35 0010 0011 23 $
36 0010 0100 24 %
47 0010 1111 2F /
48 0011 0000 30 0
49 0011 0001 31 1
Interface Solution Provider
Nota de Aplicação
56 0011 1000 38 8
57 0011 1001 39 9
58 0011 1010 3A :
64 0100 0000 40 @
65 0100 0001 41 A
66 0100 0010 42 B
89 0101 1001 59 Y
90 0101 1010 5A Z
91 0101 1011 5B [
95 0101 1111 5F _
96 0110 0000 60 `
97 0110 0001 61 a
Registros de
Read-
30001-39999 0000 to 270E Entradas
Only
Analógicas
Read- Registros de
40001-49999 0000 to 270E
Write Saídas Analógicas
Os números de bobinas e registros podem ser pensados como nomes de locais, uma vez que
eles não aparecem nas mensagens reais e sim os endereços de dados. Por exemplo, o primeiro
registro de saída analógica, número 40001 tem o endereço de dados 0000, sendo que a
diferença entre estes dois valores se chama offset. Veja que cada tabela possui um offset
diferente (1, 10001, 30001 e 40001).
Assim que o dispositivo com o endereço 17 receber a mensagem do Master, ele responderá com
a seguinte mensagem:
O registro 40108 pode ainda ser combinado com o 40109 para formar um dos 32-bit tipos de
dados abaixo:
Já o Modbus ASCII demarca o início de cada mensagem com o caractere “:” (hex 3A) e o final
de cada mensagem é terminado com os caracteres de retorno e alimentação de linha (hex 0D e
0A) permitindo o espaço entre bytes seja variável tornando adequado para transmissões em
alguns modens.
A variação dos bytes de dados em Modbus RTU pode ser qualquer caractere de 00 a FF. Por
outro lado a variação de bytes de dados em ASCII representa apenas os 16 caracteres
hexadecimais.
11 03 00 6B 00 03
Interface Solution Provider
Nota de Aplicação
: 11 03 00 6B 00 03 7E CR LF
Cada caractere é então tratado como um caractere ASCII e substituído com suas respectivas
representações hexadecimais, ficando da seguinte forma:
Neste caso, veja que o tamanho da requisição em RTU possui o tamanho de 8 bytes (80 bits).