Modbus 报文在线解析、调试
Modbus 报文解析器 - 功能全解析
立即体验 →https://utools-kit.com/ 开始解析

引言
在工业自动化领域,Modbus 协议作为最广泛使用的通信协议之一,连接着成千上万的设备。但在实际调试和开发过程中,我们经常面临这样的困扰:
-
如何快速验证设备返回的数据是否正确?
-
如何理解这串看似杂乱无章的十六进制数字?
-
如何将原始数据转换成有意义的工程值?
-
Modbus 报文解析器,它能够帮助工程师们轻松应对这些挑战。
核心功能:全方位的协议支持
1. Modbus RTU 解析 - 串口通信的得力助手
Modbus RTU 是工业现场最常用的串口通信协议。我们的解析器提供了完整的 RTU 协议支持:
关键特性:
- ✓ 自动识别设备地址和功能码
- ✓ CRC-16 Modbus 校验算法验证
- ✓ 支持读保持寄存器(0x03)和读输入寄存器(0x04)
- ✓ 自动剥离 CRC 字节,聚焦数据本身
实战示例:
输入:01 03 04 00 64 00 32 3A 39
解析结果:
- 设备地址:0x01
- 功能码:0x03(读保持寄存器)
- 数据长度:4 字节
- 寄存器值:0x0064, 0x0032(十进制 100, 50)
- CRC 校验:✓ 通过
当 CRC 校验失败时,解析器会立即用红色警告提示,帮助你快速定位通信问题。
2. Modbus TCP 解析 - 以太网通信的专家
随着工业互联网的发展,Modbus TCP 越来越普及。解析器完整支持 MBAP(Modbus Application Protocol)报文头解析:
核心能力:
- ✓ 解析事务标识符(Transaction ID)- 追踪请求响应配对
- ✓ 验证协议标识符(Protocol ID)- 确保是标准 Modbus 协议
- ✓ 提取报文长度字段 - 验证数据完整性
- ✓ 识别单元标识符(Unit ID)- 多设备场景下的地址管理
实战示例:
输入:00 01 00 00 00 06 01 03 00 00 00 02
解析结果:
- 事务 ID:0x0001
- 协议 ID:0x0000 ✓(标准 Modbus)
- 报文长度:6 字节
- 单元 ID:0x01
- 功能码:0x03
- 起始地址:0x0000
- 寄存器数量:2
3. 多种数据类型转换 - 一次解析,多种视角
这是解析器最强大的功能之一。同一组寄存器数据,可以用不同的数据类型和字节序来解读,满足各种设备和应用场景的需求。
支持的数据类型:
16位整数:
int16_AB/int16_BA- 有符号整数(大端/小端)uint16_AB/uint16_BA- 无符号整数(大端/小端)
32位整数:
int32_ABCD- 大端序(最常用)int32_CDAB- 小端序(交换字)int32_BADC- 中大端序(交换字节)int32_DCBA- 中小端序(完全反转)- 对应的无符号版本:
uint32_*
浮点数(IEEE 754):
float_ABCD/float_CDAB/float_BADC/float_DCBA- 支持所有四种字节序
实用场景:
原始数据:0x0064 0x0032
- uint16_AB:100, 50
- int32_ABCD:6553650
- float_ABCD:9.183409e-41
同样的数据,不同的解读方式!
你可以通过列切换功能,只显示你关心的数据类型,让表格更简洁清晰。
4. 位级编辑与注释 - 精确到每一位
对于数字量或状态寄存器,每一位都可能代表不同的含义。位编辑器让你可以为每一位添加注释:
功能亮点:
- ✓ 16位二进制可视化展示(每8位一行,清晰易读)
- ✓ 为每个位添加 0值/1值的文字说明
- ✓ 点击二进制列即可快速打开编辑器
- ✓ 支持复选框批量选择需要编辑的位
- ✓ 注释随导出一起保存到 CSV,便于团队协作
实战示例:
寄存器值:0x0003(二进制:0000000000000011)
Bit 0: 0="停止" / 1="运行" ✓
Bit 1: 0="正常" / 1="报警" ✓
Bit 2-15: 未使用
导出格式:[{"1":["停止","运行"]},{"0":["正常","报警"]}]
编辑后,二进制列会显示绿色 ✓ 标记,一眼识别已添加注释的寄存器。
高级功能:从数据到意义的桥梁
1. 代码解析映射 - 让数字说话
很多设备会返回代码值,比如设备状态码、错误代码等。代码解析器让你可以建立数值到文字的映射关系:
使用方法:
- 双击十六进制值打开编辑器
- 添加多组"数值-代码"映射
- 自动保存并显示蓝色 ✓ 标记
- 导出时以 JSON 格式保存
示例:
寄存器值:0x0064
映射关系:
100 → "温度正常"
200 → "温度过高"
300 → "温度过低"
显示结果:100 → 温度正常
2. 参数标签与系数 - 工程值自动换算
这是我最喜欢的功能!你可以为每个寄存器设置参数名称和转换系数:
典型应用:
温度传感器(0.1°C 精度):
参数名称:inlet_temp
系数:0.1
原始值:235 → 显示值:23.5°C
电流传感器(mA 转 A):
参数名称:motor_current
系数:0.001
原始值:1500 → 显示值:1.5A
压力变送器(Pa 转 kPa):
参数名称:tank_pressure
系数:0.001
原始值:125000 → 显示值:125kPa
系数支持小数,修改后所有数值列实时更新,立竿见影!默认情况下,参数名称会自动设置为 addr0、addr1 等,你也可以自定义成更有意义的名称。
3. CSV 导出 - 数据分析的起点
一键导出,完整保留所有信息:
导出内容:
- ✓ 地址、参数名称、系数
- ✓ 十六进制、二进制原始数据
- ✓ 所有选中的数据类型列
- ✓ 位注释(JSON 格式)
- ✓ 代码映射(JSON 格式)
- ✓ UTF-8 with BOM 编码,Excel 完美支持中文
导出的 CSV 文件可以直接在 Excel 中打开,进行进一步的数据分析、绘图、生成报告等。
灵活的输入格式 - 你怎么方便怎么来
工程师们从不同工具复制数据时,格式千差万别。我们的解析器都能自动识别:
支持格式:
空格分隔: 01 03 04 00 64 00 32 3A 39
逗号分隔: 01,03,04,00,64,00,32,3A,39
0x 前缀: 0x01 0x03 0x04 0x00 0x64
连续字符串: 010304006400323A39
混合格式: 01 03,04 0x00 64
不需要任何预处理,直接粘贴,立即解析!
适用场景
1. 工业设备调试
场景: 现场调试一台新安装的 PLC,需要验证通信是否正常。
工作流程:
- 使用串口调试工具捕获 RTU 报文
- 复制到解析器,立即看到 CRC 是否正确
- 查看寄存器值是否符合预期
- 发现问题时,使用位编辑器详细分析状态位
2. 协议学习
场景: 团队新人需要快速掌握 Modbus 协议。
学习路径:
- 输入标准的示例报文,观察解析结果
- 修改报文中的各个字段,看解析结果如何变化
- 理解 CRC 校验、字节序、数据类型等概念
- 通过实践加深理解,比看文档快十倍
3. 数据分析
场景: 需要分析一周内某设备的运行数据。
工作流程:
- 从 SCADA 系统导出原始 Modbus 数据
- 批量粘贴到解析器(支持连续解析多条报文)
- 设置参数名称和系数,转换为工程值
- 导出 CSV,在 Excel 中绘制趋势图
- 生成分析报告
4. 问题排查
场景: 设备偶尔通信失败,需要找出原因。
排查步骤:
- 捕获失败时的报文
- 解析器立即显示 CRC 校验失败或协议 ID 错误
- 与正常报文对比,找出差异
- 定位是设备问题还是通信线路问题
技术亮点 - 性能与体验并重
前端架构
- 纯 JavaScript 实现,无需安装,打开即用
- 响应式设计,PC 和移动设备都能完美显示
- Vite 驱动的开发环境,热更新极速
解析引擎
- CRC-16 Modbus 标准算法(多项式 0xA001)
- IEEE 754 浮点数精确转换
- 支持四种字节序的高效算法
- 大数据量优化,可处理数百个寄存器
用户体验
- 实时状态反馈(成功/失败/异常)
- 醒目的视觉标记(✓ 标记、颜色徽章)
- 一键操作(解析、清空、导出、复制)
- 本地存储,语言偏好自动保存
开始使用 - 三步上手
- 打开工具: 访问 Modbus 报文解析器(无需安装)
- 输入数据: 粘贴你的十六进制报文
- 查看结果: 立即获得完整的解析信息
就这么简单!
总结
Modbus 报文解析器不仅是一个解析工具,更是工业自动化工程师的智能助手。它将:
- 复杂的协议解析变得简单直观
- 原始数据转化为有意义的信息
- 繁琐的手工计算变成自动化的工程值转换
无论你是现场调试工程师、协议开发者、还是数据分析师,这个工具都能显著提升你的工作效率。

浙公网安备 33010602011771号