modbus-debug

当需要调试 Modbus RTU(串口)或 Modbus TCP(网络)设备通信时使用,支持寄存器读写、从站扫描和持续监控。

Skill file

Preview skill file
---
name: modbus-debug
description: 当需要调试 Modbus RTU(串口)或 Modbus TCP(网络)设备通信时使用,支持寄存器读写、从站扫描和持续监控。
---

# Modbus 调试

## 适用场景

- 嵌入式设备实现了 Modbus RTU/TCP 从站,需要验证通信是否正常。
- 需要读写保持寄存器、输入寄存器、线圈或离散输入。
- 需要扫描总线上的从站地址,确认设备是否在线。
- 需要持续监控寄存器值的变化。

## 必要输入

- RTU 模式:串口号(如 COM42)、波特率、从站地址。
- TCP 模式:主机 IP 和端口、从站地址。
- 操作类型:读/写/扫描/监控。

## 依赖

- `pymodbus`(pip install pymodbus)
- `pyserial`(RTU 模式需要)

## 执行步骤

1. 先阅读 [references/usage.md](references/usage.md),确认操作参数。
2. 探测环境:
   ```bash
   python scripts/modbus_tool.py --detect
   ```
3. 根据需求执行对应操作:
   ```bash
   # 读保持寄存器
   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
   ```

## 失败分流

- `connection-failure`:串口无法打开、网络不通。
- `slave-no-response`:从站地址无响应。
- `illegal-function`:设备不支持该功能码。
- `illegal-address`:寄存器地址越界。

## 输出约定

示例输出格式:

```
结果: ✅ 读取 10 个寄存器
  连接: RTU COM42 9600 8N1
  从站: 1

    地址 |  十进制 |  十六进制 |             二进制
  ------+---------+----------+--------------------
       0 |     100 | 0x0064   | 0000000001100100
       1 |     200 | 0x00c8   | 0000000011001000
```

## 交接关系

- 从 `build-keil` / `build-platformio` 烧录固件后,用此 skill 验证 Modbus 通信。
- 与 `serial-monitor` 互补:serial-monitor 查看串口原始输出,modbus-debug 进行协议级调试。

Source

Creator's repository · leokemp223/embed-ai-tool

View on GitHub

Security

Security checks in progress
Results will appear here once audits complete
What this skill can do
Reads your filesConnects to the internetRuns code on your machine
Checked by 3 independent security firms
Does it try to trick the AI?Not yet checkedPending · Gen Agent Trust Hub
Does it sneak in hidden code?Not yet checkedPending · Socket
Does it have known bugs?Not yet checkedPending · Snyk