其他
调试 Modbus RTU/TCP 设备通信时…
需要验证 Modbus RTU(串口)或 Modbus TCP(网络)从站通信、读写寄存器/线圈、扫描从站地址或持续监控寄存器值时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 35/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 38/100 ×0.15
适用场景
调试 Modbus RTU/TCP 设备特定
解决思路
- 准备必要输入:RTU 模式准备串口号(如 COM42)、波特率、从站地址;TCP 模式准备主机 IP 和端口、从站地址;确定操作类型:读/写/扫描/监控。
- 安装依赖:pip install pymodbus;RTU 模式还需要 pyserial(pip install pyserial)。
- 先阅读 references/usage.md,确认操作参数。
- 探测环境:python scripts/modbus_tool.py --detect
- 读保持寄存器:python scripts/modbus_tool.py --port COM42 --slave 1 --read --address 0 --count 10
- 写寄存器:python scripts/modbus_tool.py --port COM42 --slave 1 --write --address 0 --values 100,200
- 扫描从站:python scripts/modbus_tool.py --port COM42 --scan --scan-range 1-10
- TCP 读取:python scripts/modbus_tool.py --tcp --host 192.168.1.100 --slave 1 --read --address 0 --count 10
- 若需持续监控寄存器值变化,按 references/usage.md 确认监控参数后执行对应监控操作。
- 失败分流:connection-failure 表示串口无法打开或网络不通;slave-no-response 表示从站地址无响应;illegal-function 表示设备不支持该功能码;illegal-address 表示寄存器地址越界。
- 按输出约定展示结果:显示结果状态(如 ✅ 读取 10 个寄存器)、连接信息(如 RTU COM42 9600 8N1)、从站地址,并以表格列出地址、十进制、十六进制和二进制。
- 与 build-keil / build-platformio 交接:烧录固件后用此技能验证 Modbus 通信;与 serial-monitor 互补,serial-monitor 查看串口原始输出,此技能进行协议级调试。
适用边界 · 注意事项
- 目标设备不是 Modbus RTU/TCP 从站,或无法提供串口/TCP 连接时。
- 无法安装 pymodbus,或 RTU 模式下缺少 pyserial 时。
- 只需要查看串口原始输出、不做协议级寄存器/线圈调试时,应使用 serial-monitor。