CoderTools

Analizador de Protocolo Modbus

Analizar, convertir y depurar comunicaciones Modbus RTU/ASCII/TCP

Por favor ingrese datos

Referencia del Protocolo Modbus

Modbus es el protocolo de comunicación industrial más utilizado, desarrollado por Modicon en 1979. Permite la comunicación entre dispositivos electrónicos a través de líneas serie (RTU) o Ethernet (TCP/IP). Esta herramienta ayuda a los ingenieros a depurar y analizar comunicaciones Modbus sin hardware o software especializado.

Estructura de Trama Modbus RTU

Modbus RTU (Remote Terminal Unit) transmite datos en formato binario a través de conexiones serie como RS-232 o RS-485. Cada trama incluye una dirección de esclavo, código de función, datos y una suma de verificación CRC de 16 bits para detección de errores. El formato binario compacto hace que RTU sea eficiente para entornos con ancho de banda limitado.

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

Modbus RTU Frame Structure

Estructura de Trama Modbus TCP

Modbus TCP encapsula tramas RTU dentro de paquetes TCP/IP, usando un encabezado MBAP (Modbus Application Protocol) de 7 bytes. Este encabezado contiene un ID de transacción para coincidir solicitud-respuesta, identificador de protocolo (siempre 0 para Modbus), longitud del mensaje e ID de unidad. La comunicación TCP usa el puerto 502 por defecto.

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 Función Comunes

Los códigos de función definen el tipo de operación en una solicitud Modbus. Las operaciones de lectura (01-04) obtienen estados de bobinas o valores de registros, mientras que las operaciones de escritura (05, 06, 0F, 10) modifican datos del dispositivo. Cada código de función tiene requisitos específicos de formato de datos.

Código Función Tipo
0x01Leer bobinasLectura
0x02Leer entradas discretasLectura
0x03Leer registros de retenciónLectura
0x04Leer registros de entradaLectura
0x05Escribir bobina únicaEscritura
0x06Escribir registro únicoEscritura
0x0FEscribir múltiples bobinasEscritura
0x10Escribir múltiples registrosEscritura

Orden de Bytes en Modbus

Diferentes fabricantes de PLC usan órdenes de bytes variables para valores de 32 y 64 bits. Las cuatro disposiciones comunes son: Big Endian (ABCD) - orden de red estándar; Little Endian (DCBA); Mid-Big Endian (BADC); y Mid-Little Endian (CDAB). Al leer valores incorrectos, pruebe diferentes órdenes de bytes para encontrar la interpretación correcta.

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 con polinomio 0x8005 y valor inicial 0xFFFF para detección de errores. El CRC se calcula sobre la dirección del esclavo, código de función y bytes de datos, luego se agrega con el byte bajo primero. Una trama con CRC incorrecto debe ser descartada por el receptor.

Polinomio: 0x8005
Valor inicial: 0xFFFF
Reflejo entrada:
Reflejo salida:

Aplicaciones Prácticas

  • Solucionar errores de comunicación entre PLCs y sistemas SCADA analizando datos de paquetes sin procesar
  • Verificar valores de registros durante la puesta en marcha convirtiendo datos hex a unidades de ingeniería
  • Generar comandos de prueba para validación de dispositivos sin software maestro Modbus dedicado
  • Depurar problemas de orden de bytes al integrar dispositivos de diferentes fabricantes

Herramientas Relacionadas

Menú Rápido

Sin herramientas recientes