调试与排障

调试与排障

口诀:先物理层 → 再链路参数 → 再地址/FC → 最后字节序与业务缩放


1. 工具

工具 用途
pymodbus / 交互脚本 快速试读
libmodbus 例程 C 层对照
Wireshark TCP:502 解码
串口监视 / 逻辑分析 RTU 帧、CRC、间隔
厂商调试软件 对照“权威读数”

2. 分层排障

物理 / 串口

现象 检查
完全无响应 线序 A/B、接地、供电、终端电阻
偶发 CRC 错 干扰、波特率、缺少终端、星型拓扑
只错第一个字节 485 DE 方向切换过慢/过快

链路参数

现象 检查
全员超时 波特率、校验位、停止位
单个从站超时 地址冲突/地址错、设备故障

协议

现象 检查
异常 01 FC 不支持
异常 02 地址/数量越界;点号换算错
异常 03 数量或数据非法
数值离谱 字序、缩放、有符号解释

TCP

现象 检查
连不上 端口 502、防火墙、IP
连上无数据 Unit ID、设备仅支持短连接
配对错乱 Transaction ID 处理错误

3. 最小 Python 试读(示意)

1
2
3
4
5
6
from pymodbus.client import ModbusTcpClient
client = ModbusTcpClient('192.168.1.10', port=502)
assert client.connect()
rr = client.read_holding_registers(0, 10, slave=1) # API 随版本略有差异
print(rr.registers if not rr.isError() else rr)
client.close()

(以你克隆的 pymodbus 版本文档为准。)


4. 本地项目入口

目的 目录
C 库 ../开源项目/libmodbus
Python ../开源项目/pymodbus
ros2_control ../开源项目/modbus_hardware_interface
ROS2 TCP 节点 ../开源项目/ros2_modbus
ROS2 RTU ../开源项目/modbus_rtu

下一篇:09-规范与资料索引.md

文章互动

阅读 --

留言

0 条留言

正在加载留言…