NetAssist 中文文档 下载 App

Modbus 三种协议调试 RTU ASCII TCP

什么是 Modbus

Modbus 是工业自动化领域使用最广泛的通信协议之一。它定义了主站(Master)如何从站(Slave)请求数据和下发指令。Modbus 有三种常见变种:

变种传输方式典型场景
Modbus RTU串口二进制现场设备 RS485 通信
Modbus ASCII串口 ASCII 文本早期设备、调试用
Modbus TCP以太网 TCP 502 端口现代设备、PLC 网络通信

NetAssist 的内置模拟器

和 JT 808 类似,Modbus 模拟器也在左侧工具面板中。打开后可以选择要模拟的协议变种,构造标准 Modbus 指令发出。

常用功能码

功能码含义说明
01读线圈(Read Coils)读取开关量输出状态
02读离散输入(Read Discrete Inputs)读取开关量输入状态
03读保持寄存器(Read Holding Registers)读取模拟量输出值
04读输入寄存器(Read Input Registers)读取模拟量输入值
05写单个线圈控制开关量输出
06写单个寄存器设置模拟量输出
0F写多个线圈批量控制
10写多个寄存器批量设置

使用步骤

  1. RTU 模式:需要串口调试助手配合,或通过网络透传串口的设备,在 NetAssist 发送端手动构造 RTU 帧(含 CRC16)。
  2. ASCII 模式:构造 ASCII 格式指令(冒号开头、CRLF 结尾、LRC 校验)。
  3. TCP 模式:以 TCP Client 连接目标设备的 502 端口,模拟器自动构造 MBAP 头 + PDU + CRC 的完整 Modbus TCP 帧。

与自动应答配合

如果你在调试 Modbus 主站(比如 PLC),需要模拟从站来响应它的请求。可以:

  1. NetAssist 开 TCP Server 监听 502 端口。
  2. 启用自动应答规则。
  3. 用 正则匹配 提取 Modbus 功能码和寄存器地址。
  4. 根据匹配到的内容自动回复正确的 Modbus 响应帧。

CRC 校验

Modbus RTU 要求 CRC16 校验。可以用 NetAssist 的 自动附加校验位 功能,自动算出并附加 CRC16——手动算容易出错。

典型实操

场景:验证 Modbus 从站响应速度

在 NetAssist 中不断发送 01 03 00 00 00 0A(读从站 01 的 10 个保持寄存器),开启日志时间戳观察从站每次响应的延迟。配合循环发送功能,可以做长时间的稳定性测试。