mcpField
M
modbus-debug

modbus-debug

github.com/leokemp223Development1.0k565 installsUpdated 10w ago
Repository

About modbus-debug

A debugging skill for device developers verifying Modbus RTU/TCP slave communication in embedded systems. It can read and write registers, scan slave addresses, and monitor register changes.

Key features

  1. 01Read and write Modbus registers
  2. 02Scan bus slave addresses
  3. 03Monitor register value changes
  4. 04Support RTU and TCP modes
  5. 05Distinguish connection and protocol errors

Use cases

  1. 01Verify an RTU serial slave connection
  2. 02Check whether a TCP device responds
  3. 03Read or change device registers
  4. 04Observe register state over time

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/leokemp223/embed-ai-tool --skill modbus-debug

After installing, type/modbus-debugin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

agents/
openai.yaml
references/
usage.md
scripts/
modbus_tool.py

Details

From the project README

Modbus 调试

适用场景

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

必要输入

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

依赖

  • pymodbus(pip install pymodbus)
  • pyserial(RTU 模式需要)

执行步骤

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

Comments

Markdown supported