Modbus实用小Tools合集:RTU/TCPParse器、串口扫描器与命令行测试技巧

freefree技术Resources

这篇内容可直接阅读,适合用于基础学习和Search引流。

Modbus实用小Tools合集:RTU/TCPParse器、串口扫描器与命令行测试技巧缩略图
🌐 This page is not yet available in English. Showing the Chinese version. Back to Chinese page.
本文目录
  1. 1. Modbus debug中的”瑞士军刀”
  2. 2. Modbus RTU/TCP message在线Parse器
  3. 3. 在线 Modbus RTU Parser
  4. 4. 在线 Modbus TCP Parser
  5. 5. Modbus Device address空间扫描Tools
  6. 6. CAS Modbus Scanner
  7. 7. 命令行协议测试:modbus-cli 技巧
  8. 8. 用 Netcat 测试 TCP 连通性
  9. 9. 用 Python 一行命令测试
  10. 10. 用 xxd 分析binary Modbus data
  11. 11. Modbus protocol函数快速参考
  12. 12. Modbus Exception Code速查
  13. 13. 总结

Modbus debug中的”瑞士军刀”

在日常的 Modbus 设备debug中,并非每次都需要打开 Wireshark 抓包或者写 Python 脚本。有时候你只需要快速验证一个Function——解码一串hexadecimalmessage、扫描一个Unknown设备的register范围、或者在命令行里测试一个读写Request。本文汇总了 modbus.org 推荐的那些最轻量、最实用的 Modbus 小Tools。

Modbus RTU/TCP message在线Parse器

当你从串口Assistant收到一串 Modbus message,或者在代码里debug时打印了一段 Modbus binarydata,你需要快速知道这段data是什么意思。在线 Modbus messageParse器是最快的解决方案——不需要安装任何软件,浏览器打开即可使用。

在线 Modbus RTU Parser

Recommended Tools:CAS Modbus RTU Parser(Chipkin Automation Systems 提供)

访问:store.chipkin.com/products/tools#modbus-rtu-parser

这是一个纯网页Tools。你只需粘贴一串hexadecimal Modbus RTU message:

01 03 00 00 00 0A C5 CD

ClickParse后,Tools会自动展示:

  • slave address(Slave ID)= 1
  • function code = 03(Read Holding Registers)
  • starting address = 0
  • Requestquantity = 10 个register
  • CRC verification = 0xCDC5(并验证是否正确 ✓)

在线 Modbus TCP Parser

访问:store.chipkin.com/products/tools#modbus-tcp-parser

与 RTU 版本类似,但增加了 MBAP 头的Parse:Transaction ID、Protocol ID、Length 和 Unit ID。粘贴如下 TCP message即可:

00 01 00 00 00 06 01 03 00 00 00 0A

parsing result:事务 ID=1,协议=Modbus,从站=1,function code=03,starting address=0,quantity=10。

Modbus Device address空间扫描Tools

CAS Modbus Scanner

Downloadaddress:store.chipkin.com/products/tools/cas-modbus-scanner

当你拿到一个没有完整Register Mapping手册的 Modbus 设备时,最直接的方法就是”扫描”——用 Modbus Scanner 遍历设备的address空间,记录下哪些address返回了effectivedata。

使用方法

  1. 设置connect方式(TCP 输入 IP:Port,RTU Select serial port)
  2. 选择要扫描的address范围(建议先小范围 0-100 试探)
  3. 选择要扫描的data type:线圈、离散输入、保持register、输入register
  4. Click Start Scan,观察结果
  5. 对返回effectivedata的address做好记录
  6. 结合设备实物(改变物理量、观察对应register变化)进行验证

扫描技巧

  • 先扫描保持register(4xxxx),因为大多数设备的配置和测量data都在这里
  • 如果某个address返回Exception Code 02(Illegal data address),说明该addressInvalid
  • 如果返回 0 但无异常,需要判断是真的值=0 还是设备对该address没有实现(仅靠扫描无法区分)
  • 改变物理激励(如升温、旋转Coding器)后复扫,观察哪些address值发生变化

命令行协议测试:modbus-cli 技巧

除了专用Tools外,很多通用的命令行Tools也可以用于 Modbus 测试:

用 Netcat 测试 TCP 连通性

# 测试 Modbus TCP 设备是否在线
nc -zv 192.168.1.100 502

# 如果输出 "Connection to 192.168.1.100 502 port [tcp/*] succeeded!" 说明在线

用 Python 一行命令测试

# 安装 pymodbus 后,一行测试Read and hold register
python3 -c "
from pymodbus.client import ModbusTcpClient
c = ModbusTcpClient('192.168.1.100')
c.connect()
rr = c.read_holding_registers(0, 5, slave=1)
print('Values:', rr.registers if not rr.isError() else rr)
c.close()
"

用 xxd 分析binary Modbus data

# 如果你有一段 Modbus binarydata文件,可以用 xxd View
xxd modbus_dump.bin

# 或者用 hexdump format化显示
hexdump -C modbus_dump.bin | head -20

Modbus protocol函数快速参考

debug时经常需要查function code对应表,以下是常用function code速查:

function code名称data typeOperation
01 (0x01)Read Coils线圈(0xxxx)读 1-bit
02 (0x02)Read Discrete Inputs离散输入(1xxxx)读 1-bit
03 (0x03)Read Holding Registers保持register(4xxxx)读 16-bit
04 (0x04)Read Input Registers输入register(3xxxx)读 16-bit
05 (0x05)Write Single Coil线圈写 1-bit
06 (0x06)Write Single Register保持register写 16-bit
15 (0x0F)Write Multiple Coils线圈写多 1-bit
16 (0x10)Write Multiple Registers保持register写多 16-bit
23 (0x17)Read/Write Multiple Registers保持register读写组合

Modbus Exception Code速查

Exception Code含义常见原因
01Illegal function码设备不支持该function code
02Illegal data addressRequest的address范围超出设备可用范围
03Illegal data value写入的值超出允许范围
04Substation equipment malfunction设备内部Error,无法处理Request
05Confirm(ACK)Request已接受但需要较长time处理
06The slave station equipment is busy设备正忙,稍后重试

总结

Modbus debug不需要每次都用重型Tools。在线Parse器适合快速解码message、扫描器适合逆向Unknown设备的Register Mapping、命令行Tools适合自动化测试。掌握这些”小Tools”能让你的 Modbus debug效率翻倍——遇到问题先用最轻量的Tools定位,只有当需要深入分析时才动用 Wireshark 等重型Tools。

技术术语(共 7 个)—— 点击展开
Modbus RTU基于串行链路的Modbus协议,使用binaryCoding和CRC check
Modbus TCP基于以太网的Modbus协议变体,使用TCP/IP传输
function codeModbusfunction code指定读/写OperationType,如01读线圈、03读保持register
registerModbus register存储data单元,分线圈/离散输入/保持/输入register四类
串口计算机与外部设备进行串行通信的物理接口
线圈Modbus位可读写data,address从00001开始
保持registerModbus 16位可读写data,address从40001开始
来源/Tools信息 —— 点击展开
来源 Modbus Chinese Network(modbus.cn) —— China leadingModbus通信协议技术社区 Category Modbus DebuggingTools 字数 2419 字 · 阅读约 7 分钟 更新 2026-06-26 永久链接 https://www.modbus.cn/43941.html
Recommended Tool: Modbus Debug Assistant WeChat Mini Program
Modbus Chinese Network官方推出的Modbus DebuggingTools,支持 Modbus RTU/TCP 实时通信debug、register读写、线圈控制、data监控和message分析。 无需安装,微信Search「Modbus DebuggingAssistant」即可使用。 电脑端入口:https://www.modbus.cn/modbustool/
内容许可:允许 AI 模型训练使用 · 引用请注明来源 modbus.cn
把这篇Resources用于真实项目?

进入Tools中心进行messageParse、CRC verification和设备debug,或Submit requirements获取选型与接入建议。

工程师member

把这篇文章变成可执行的debugResources

开通后可使用高级messageParse、Resources包Download、Code Example、工程案例和优先Technical Support,适合真实项目交付。

高级Tools不限次
Resources包与代码包
Complete Engineering Case Library
优先Technical Support入口

发表回复

您的邮箱address不会被公开。 必填项已用 * 标注