E aí, galera! Tudo certo? Nesta postagem, vamos fazer uma introdução ao protocolo Modbus. A ideia é apresentar uma visão geral, destacando suas vantagens, explicando a arquitetura cliente-servidor utilizada, os principais tipos de Modbus, a estrutura dos dados e as funções mais comuns. Então fica ligado!
O que é o protocolo Modbus?
O protocolo Modbus foi criado em 1979 pela empresa Modicon, que hoje pertence à Schneider Electric. Na época, o objetivo era permitir que os equipamentos fabricados pela própria empresa pudessem trocar dados entre si.
Hoje, o padrão é mantido e padronizado pela Modbus Organization, que garante a certificação e evolução do protocolo.
Vantagens do Modbus
O protocolo Modbus foi desenvolvido desde o início com foco em aplicações industriais. Ele possui:
- Formato de mensagem simples, facilitando a implementação;
- Padrão aberto, ou seja, sem custos de licenciamento;
- Grande disponibilidade de materiais de apoio, como tutoriais, bibliotecas e exemplos práticos;
- Compatibilidade com diversos microcontroladores, como Arduino e outros;
- Independência de meio físico, permitindo seu uso sobre diferentes interfaces (RS-232, RS-485, Ethernet, etc.);
- Facilidade de configuração, após o entendimento das funções, tipos de dados e estrutura do protocolo.
Arquitetura Cliente-Servidor
Um dos principais conceitos do Modbus é a arquitetura cliente-servidor (anteriormente chamada de mestre-escravo). Qualquer equipamento que deseje trocar dados na rede atua como cliente, sendo o responsável por fazer requisições a um servidor, que é o dispositivo que responde a essas requisições.
Por exemplo, um CLP (Controlador Lógico Programável) pode atuar como cliente, fazendo requisições a um inversor de frequência (servidor). O servidor, então, responde às requisições, confirmando ou não os comandos enviados. Um exemplo de uma rede RS-485 com um cliente (CLP) e vários servidores (Inversores de Frequência) é apresentado na Figura 1.

Exemplos de clientes e servidores
- Clientes: computadores rodando sistemas supervisórios, CLPs enviando comandos, IHMs acessando dados de controladores.
- Servidores: inversores, sensores, atuadores, módulos de entrada e saída, entre outros.
O Modbus no Modelo ISO/OSI
O Modbus é considerado um protocolo da camada de aplicação no modelo OSI. Isso significa que ele define as funções e comandos de alto nível usados para a comunicação entre dispositivos.
Abaixo dessa camada, o Modbus pode ser implementado em diferentes meios físicos. Quando utilizado com interfaces seriais como RS-232 ou RS-485, o protocolo opera com um modelo de mestre-escravo. Já em redes como Ethernet ou Wi-Fi, o acesso ao meio segue regras como CSMA/CD (acesso múltiplo com detecção de colisão). A Figura 2 apresenta as camadas, conforme especificado na norma.

Tipos de Modbus
Existem três principais versões do protocolo Modbus, cada uma com características específicas:
Modbus TCP
É utilizado em redes Ethernet (IEEE 802.3) e Wi-Fi (IEEE 802.11). Nesta versão, o protocolo roda sobre TCP/IP, usando a porta 502 como padrão de comunicação.
Por exemplo, um CLP pode ser configurado com um endereço IP e conectado a um switch que distribui o tráfego para diversos dispositivos servidores, como módulos de entrada/saída. O cliente envia suas requisições na forma de pacotes TCP para a porta 502 dos servidores. A Figura 3 apresenta uma topologia com um CLP (cliente) e alguns módulos (servidores) ligados através de um switch.

Modbus RTU e ASCII via RS-485
As versões RTU (Remote Terminal Unit) e ASCII do Modbus são utilizadas em redes seriais, especialmente sobre o padrão RS-485 e RS-232. Neste caso, a comunicação segue o modelo mestre-escravo, onde apenas o mestre pode iniciar as requisições, e os escravos apenas respondem.
Cada escravo deve possuir um endereço configurado manualmente, muitas vezes por meio de chaves (DIP switches), IHM ou via software. As velocidades de comunicação típicas vão de 9.600 até 115.200 bps, sendo possível conectar até 32 dispositivos sem repetidores, com distâncias de até 1.200 metros e taxas de até 100 kbps. Na Figura 1 pode-se ver que cada inversor (servidor) tem o seu endereço de escravo.
Modbus RTU e ASCII via RS-232
O RS-232 é uma interface ponto-a-ponto, suportando apenas a comunicação entre um mestre e um único escravo. Ainda assim, o Modbus RTU e ASCII também podem ser utilizados nesse tipo de conexão, geralmente em painéis industriais entre CLPs e IHMs, onde a distância de comunicação é curta.
Como funciona a troca de dados entre cliente e servidor?
A comunicação sempre parte do cliente, que envia uma requisição ao servidor, solicitando a leitura ou escrita de alguma variável. As variáveis representam posições de memória, entradas (sensores, botões, etc.) e saídas (relés, bobinas, chaves).
O servidor pode responder de três formas:
- Resposta normal: aceita e executa o comando, retornando os dados esperados.
- Resposta de exceção: o comando não foi aceito devido a erro (endereço inválido, função não implementada, etc.).
- Sem resposta: pode ocorrer por erro de rede (ruído, CRC inválido, endereço inexistente ou mensagem broadcast — que não deve gerar resposta).
O servidor, ao receber a requisição, realiza uma verificação de integridade (checagem de erro) e, se válida, executa a função solicitada.
PDU x ADU no Modbus
A estrutura de mensagens do Modbus é apresentada na Figura 4 e é dividida em duas partes:
- PDU (Protocol Data Unit): contém o código da função e os dados da requisição ou resposta.
- ADU (Application Data Unit): adiciona elementos como endereçamento, identificador de transação e verificação de erro (CRC ou checksum), dependendo da versão do Modbus utilizada (RTU, ASCII ou TCP).

Tipos de Dados no Modbus
O Modbus trabalha com dois tipos principais de variáveis:
1. Acesso por bit
- Entradas discretas (Discrete Inputs): representam entradas digitais, como sensores de presença ou botões. São apenas de leitura.
- Coils (Bobinas): representam saídas digitais, como relés ou LEDs. Permitem leitura e escrita.
2. Acesso por palavra (Word de 16 bits)
- Input Registers: são registradores de entradas analógica, geralmente lidos a partir de conversores AD.
- Holding Registers: registradores de leitura e escrita, usados para configurar parâmetros, armazenar valores de temporizadores, contadores, variáveis de controle, entre outros.
Funções Modbus
O protocolo define códigos de função padronizados, usados para acessar os dados. Alguns exemplos:
Acesso por bit:
01 (Read Coils)
– Lê o estado das saídas digitais02 (Read Discrete Inputs)
– Lê o estado das entradas digitais05 (Write Single Coil)
– Escreve o estado de uma saída digital15 (Write Multiple Coils)
– Escreve o estado de várias saídas digitais
Acesso por 16 bits:
03 (Read Holding Registers)
– Lê os registradores holding04 (Read Input Registers)
– Lê os registradores de entrada06 (Write Single Register)
– Escreve em um registrador holding16 (Write Multiple Registers)
– Escreve em múltiplos registradores holding
Além disso, o Modbus define funções para diagnóstico, configuração e outras operações específicas. As funções e suas descrições detalhadas, com exemplos, são apresentadas em [1].
É importante lembrar que cada servidor pode implementar apenas parte dessas funções, conforme definido pelo fabricante. Por isso, é essencial consultar o manual do equipamento para saber quais códigos de função estão disponíveis. Caso você envie uma função não suportada, o servidor responderá com uma resposta de exceção.
Conclusão
Esses são os conceitos básicos que servem de base para o entendimento do protocolo Modbus e suas diferentes versões: RTU, ASCII e TCP. Com esse conhecimento, você poderá se aprofundar em aplicações práticas, desenvolver projetos de automação industrial e configurar dispositivos com segurança.
Acesse mais conteúdos aqui do blog relacionados ao Modbus
- Playlist sobre o protocolo Modbus no meu canal do YouTube Vídeos relacionados ao protocolo Modbus, desde as especificações até a aplicação prática com diferentes equipamentos.
- Escravo Modbus RTU desenvolvido com Arduino Uno/Mega
- Redes RS-485: características, aplicações e visão geral
- Meu curso de Redes RS-485 no Udemy
Nos próximos conteúdos, vamos explorar exemplos práticos com Arduino, CLPs, IHMs e softwares de testes, para você ver tudo isso funcionando na prática!
Curtiu o conteúdo? Compartilhe com colegas e fique ligado nos próximos posts!
Aula no YouTube
Esta postagem está disponível em vídeo no meu canal do YouTube.
Referências Bibliográficas
[1] Modbus-IDA. MODBUS APPLICATION PROTOCOL SPECIFICATION
V1.1b. Disponível em: <https://www.modbus.org/docs/Modbus_Application_Protocol_V1_1b.pdf>. Acesso em: 25 mar. 2025.
[2] AMCI adds Modbus TCP to its stepper indexer/drives. Disponível em: <https://www.automation.com/en-us/products/product12/amci-adds-modbus-tcp-to-its-stepper-indexerdrives>. Acesso em: 25 mar. 2025.