CoderTools

Analisador de Protocolo Modbus

Analisar, converter e depurar comunicações Modbus RTU/ASCII/TCP

Por favor, insira dados

Referência do Protocolo Modbus

Modbus é o protocolo de comunicação industrial mais utilizado, desenvolvido pela Modicon em 1979. Permite a comunicação entre dispositivos eletrônicos através de linhas seriais (RTU) ou Ethernet (TCP/IP). Esta ferramenta ajuda engenheiros a depurar e analisar comunicações Modbus sem hardware ou software especializado.

Estrutura do Frame Modbus RTU

Modbus RTU (Remote Terminal Unit) transmite dados em formato binário através de conexões seriais como RS-232 ou RS-485. Cada frame inclui um endereço escravo, código de função, dados e um checksum CRC de 16 bits para detecção de erros. O formato binário compacto torna o RTU eficiente para ambientes com largura de banda limitada.

Slave ID
1 byte
Function
1 byte
Data
N bytes
CRC-16
2 bytes

Modbus RTU Frame Structure

Estrutura do Frame Modbus TCP

Modbus TCP encapsula frames RTU dentro de pacotes TCP/IP, usando um cabeçalho MBAP (Modbus Application Protocol) de 7 bytes. Este cabeçalho contém um ID de transação para correspondência requisição-resposta, identificador de protocolo (sempre 0 para Modbus), comprimento da mensagem e ID de unidade. A comunicação TCP usa a porta 502 por padrão.

Trans ID
2 bytes
Proto ID
2 bytes
Length
2 bytes
Unit ID
1 byte
Function
1 byte
Data
N bytes

Modbus TCP Frame Structure (MBAP Header + PDU)

Códigos de Função Comuns

Códigos de função definem o tipo de operação em uma requisição Modbus. Operações de leitura (01-04) recuperam estados de bobinas ou valores de registradores, enquanto operações de escrita (05, 06, 0F, 10) modificam dados do dispositivo. Cada código de função tem requisitos específicos de formato de dados.

Código Função Tipo
0x01Ler BobinasLeitura
0x02Ler Entradas DiscretasLeitura
0x03Ler Registros de RetençãoLeitura
0x04Ler Registros de EntradaLeitura
0x05Escrever Bobina ÚnicaEscrita
0x06Escrever Registro ÚnicoEscrita
0x0FEscrever Múltiplas BobinasEscrita
0x10Escrever Múltiplos RegistrosEscrita

Ordem de Bytes no Modbus

Diferentes fabricantes de PLC usam ordens de bytes variadas para valores de 32 e 64 bits. As quatro disposições comuns são: Big Endian (ABCD) - ordem de rede padrão; Little Endian (DCBA); Mid-Big Endian (BADC); e Mid-Little Endian (CDAB). Ao ler valores incorretos, tente diferentes ordens de bytes para encontrar a interpretação correta.

Big Endian (ABCD)
A B C D
Little Endian (DCBA)
D C B A
Mid-Big Endian (BADC)
B A D C
Mid-Little Endian (CDAB)
C D A B

Algoritmo CRC-16/Modbus

Modbus RTU usa CRC-16 com polinômio 0x8005 e valor inicial 0xFFFF para detecção de erros. O CRC é calculado sobre o endereço escravo, código de função e bytes de dados, então anexado com o byte baixo primeiro. Um frame com CRC incorreto deve ser descartado pelo receptor.

Polinômio: 0x8005
Valor Inicial: 0xFFFF
Refletir Entrada: Sim
Refletir Saída: Sim

Aplicações Práticas

  • Solucionar erros de comunicação entre PLCs e sistemas SCADA analisando dados brutos de pacotes
  • Verificar valores de registradores durante comissionamento convertendo dados hex para unidades de engenharia
  • Gerar comandos de teste para validação de dispositivos sem software mestre Modbus dedicado
  • Depurar problemas de ordem de bytes ao integrar dispositivos de diferentes fabricantes

Ferramentas Relacionadas

Menu Rápido

Nenhuma ferramenta recente