• 用******户 使用了工具 Base64编解码
  • 开******发 使用了工具 MD5加密
  • 工******程 使用了工具 时间戳转换
  • 程******序 使用了工具 JSON格式化
  • 设******计 使用了工具 图片压缩
  • 产******品 使用了工具 URL编解码
  • 测******试 使用了工具 正则表达式
  • 运******维 使用了工具 密码生成器

在线Modbus-TCP报文解析器

编程开发
在线解析Modbus TCP通信协议报文,支持MBAP头部解析,主站→从站、从站→主站双向解析,详细解读事务标识、协议标识、单元标识、功能码、数据域
开发工具ModbusTCP工业协议报文解析MBAP
Modbus TCP 协议解析 支持 8 种功能码 MBAP 头部解析
快捷样例
读保持寄存器主站请求读取单元1地址0x006B开始的2个寄存器
写单个寄存器主站请求向单元1地址0x0001写入值0x0003
读响应(正常)从站单元1响应读取的2个寄存器数据
错误响应从站单元1返回错误码0x02(非法数据地址)
报文输入
支持空格、0x前缀,自动过滤非法字符
常用功能码参考
0x01
读线圈寄存器
取得一组逻辑线圈的当前状态(ON/OFF)
数据类型:位
0x02
读离散输入寄存器
取得一组开关输入的当前状态(ON/OFF)
数据类型:位
0x03
读保持寄存器
在一个或多个保持寄存器中取得当前的二进制值
数据类型:整型、浮点型、字符型
0x04
读输入寄存器
在一个或多个输入寄存器中取得当前的二进制值
数据类型:整型、浮点型
0x05
写单个线圈寄存器
强置一个逻辑线圈的通断状态
数据类型:位
0x06
写单个保持寄存器
把具体二进制值装入一个保持寄存器
数据类型:整型、浮点型、字符型
0x15
写多个线圈寄存器
强置一串连续逻辑线圈的通断
数据类型:位
0x16
写多个保持寄存器
把具体的二进制值装入一串连续的保持寄存器
数据类型:整型、浮点型、字符型
工具说明

📖 Modbus TCP 报文结构

字段长度描述
事务标识2 字节Modbus请求/响应事务处理的标识
协议标识符2 字节0 = Modbus协议
长度2 字节长度之后的字节总数
单元标识1 字节串行链路或其它总线的从站识别
功能码1 字节主机要求从机执行的操作类型
数据可变(N字节)命令的具体参数,格式取决于功能码

📝 使用说明

输入报文
在输入框中粘贴或输入Modbus TCP十六进制报文
选择方向
选择报文方向:主站→从站(请求)或从站→主站(响应)
自动解析
系统自动解析MBAP头部和PDU数据单元
4
查看详情
查看事务标识、协议标识、单元标识、功能码和数据域详情

⚠️ 注意事项

❓ 常见问题

Q1: Modbus TCP和Modbus RTU有什么区别?

Modbus TCP基于以太网(TCP/IP),使用MBAP头部(7字节),无CRC校验;Modbus RTU基于串口通信,无MBAP头部,有CRC校验。TCP版本更适合现代工业以太网环境。

Q2: 什么是MBAP头部?

MBAP(Modbus Application Protocol)头部是Modbus TCP特有的7字节头部,包括:事务标识符(2字节)、协议标识符(2字节,固定为0)、长度(2字节)、单元标识符(1字节)。

Q3: 事务标识符有什么作用?

事务标识符用于标识一次Modbus事务,主站发送请求时设置一个唯一值,从站响应时回传相同的值,用于匹配请求和响应,特别是在并发通信场景。

Q4: 单元标识符和RTU的地址有什么区别?

单元标识符(1字节)相当于RTU中的从站地址,范围0-255。0表示广播地址,1-247为正常从站地址,248-255保留。

Q5: 为什么没有CRC校验?

Modbus TCP基于TCP协议,TCP本身已经提供了可靠的错误检测机制(校验和、确认、重传等),因此Modbus TCP不需要额外的CRC校验。

💡 使用场景

场景说明
工业以太网调试解析基于TCP/IP的Modbus通信报文,排查网络通信故障
PLC编程开发开发和调试支持Modbus TCP的PLC程序
SCADA系统集成调试SCADA系统与现场设备的Modbus TCP通信
物联网网关开发开发Modbus TCP到MQTT/HTTP等协议的转换网关
教学培训学习Modbus TCP协议结构和MBAP头部格式