适配 Modbus-RTU 设备
该案例展示如何在 AI Agent 中使用
dobot-plus技能适配 Modbus RTU 通讯协议的末端工具。下文以三款常见设备为例:OnRobot VG10(真空夹爪)、大寰 AG-95(电动夹爪)、大寰 PGE-50(驱控一体电爪)。相比手动编写 Lua、HTTP API 和 UI 页面,Skill 可根据设备协议文档自动生成插件脚手架,开发者只需准备Requirements.md并在 IDE 中调用/dobot-plus即可。
示例流程
环境搭建
开发前请确认本地环境满足以下要求。更详细的系统与工具说明见 开发环境。
| 依赖 | 版本 / 说明 |
|---|---|
| Node.js | v20 及以上 |
| IDE | 支持 Agent Skills(如 Cursor) |
| @dobot-plus/cli | 全局安装,提供 dpt 命令 |
| @dobot-plus/skill | 全局安装,提供 /dobot-plus 技能 |
安装命令:
npm install -g @dobot-plus/cli @dobot-plus/skill@latest
安装完成后可通过以下命令验证:
node -v # 应输出 v20.x 及以上
dpt -v # 确认 CLI 可用
Skill 安装后会自动部署到 ~/.agents/skills/dobot-plus,并在 IDE 设置中启用 Agent Skills 后即可使用。
编写 doc.md(通用要求)
Skill 不会自动创建或修改 Requirements.md,需要开发者在项目根目录手动编写完整的设备协议文档。
文档必须包含
| 类别 | 说明 |
|---|---|
| 通信协议 | 协议类型、波特率、数据位、校验位、停止位 |
| 从站地址 | Modbus RTU 的 slaveID(不同连接方式分别列出) |
| 寄存器映射 | 十进制 + 十六进制地址、名称、读/写权限 |
| 位域 / 取值范围 | 高低字节、bit 含义、枚举值、单位与范围 |
| 功能语义 | 每个可对外暴露的原子操作(读 / 写 / 控制) |
推荐章节结构
- 设备概述
- 通信协议(含 Modbus RTU 参数与设备地址)
- 寄存器总览
- 寄存器详细说明(位域、枚举值、单位与范围)
- 操作流程
- 版本信息与安全注意事项
文档中功能拆分应尽可能的原子化,即每个功能只做一件事。
使用 AI 辅助生成
若手头有厂商 PDF 手册,可将协议内容交给通用 AI 模型整理为 Requirements.md,再人工复核后写入项目根目录。将对应设备的提示语复制到 ChatGPT、Cursor 等 AI 工具,并附上手册 PDF 的文本。
AI 提示词可以参考如下内容:
你 是一名工业设备协议文档整理助手。请根据我提供的设备手册内容,生成一份符合以下要求的 Requirements.md 设备文档。
## 输出要求
1. 输出为 Markdown,只基于我提供的资料整理,不要臆造寄存器地址、位域或参数
2. 不确定的信息标注「待确认」,不要猜测
3. 寄存器名、模式名保留英文原文
## 文档必须包含
1. 设备概述
2. 通信协议:Modbus RTU 参数(波特率、数据位、校验位、停止位)及设备地址(slaveID)
3. 寄存器总览表:地址(十进制 + 十六进制)、名称、读/写权限
4. 每个关键寄存器的详细说明:位域/字节组成、枚举值与寄存器值对照、单位与范围
5. 典型操作流程
6. 版本信息与安全注意事项
## 功能拆分规则
- 每个功能只做一件事,涉及命名采用 camelCase 的「动词 + 名词」,如 SetSpeed、GetVacuum、GripChannelA
- 禁止合并:SetSpeedAndAcceleration、ControlGripper 等应拆成多个原子功能
## 位域与写入示例
若寄存器由多个字段组成,必须说明各 bit/字节含义,并给出组合写入示例(如 0x0114 = 高 8 位 0x01 模式 + 低 8 位 0x14 参数)。
---
以下是需要整理的设备资料:(如果多个型号设备公用一些列通讯协议,请注明需要适配的设备型号)
[粘贴 PDF 文本 / OCR 内容 / 手册章节]
例如,使用 deepseek 时,将设备手册拖拽进入对话框,并将提示词输入:

复制出AI生成的内容,作为需求文档 Requirements.md

生成后请人工核对:
- slaveID 是否与实际连接方式一致
- 寄存器地址、读/写权限是否与原厂手册一致
- 位域说明是否足以推导 Modbus 写入值(如 Grip 模式 + 真空度百分比)
- 功能是否已拆分为原子操作
- 通讯参数是否与现场实际设备参数一致
确认无误后,将文件保存为项目根目录的 Requirements.md,再在 IDE Agent 会话中调用 /dobot-plus。

设备案例
以下三款设备均通过 Modbus RTU(RS485)通讯。请先 dpt create 创建插件项 目,再按规则生成 Requirements.md。
OnRobot VG10
OnRobot 真空夹爪
创建项目示例:
使用 @dobot-plus/cli 初始化一个空的 Dobot+ 插件项目:
dpt create
按提示填写插件信息,例如:
$ dpt create
? Please input plugin name: OnrobotVG10
? Please input plugin description: OnRobot VG10 vacuum gripper plugin
? Please input plugin version: 1-0-0-test
? Please input device IP: 192.168.5.1
创建成功后进入项目目录:
cd OnrobotVG10
VG10 Requirements.md 完整示例
# VG10 / VGC10 开发手册
## 1. 设备概述
VG10/VGC10 是 OnRobot 的真空夹持器系列。本文档基于 Connectivity Guide v1.23.0,描述其底层 Modbus 通信接口。
> **注意:** 此接口为保密信息,仅供有经验的集成用户使用。不当使用可能导致设备损坏并失去保修。OnRobot 不提供进一步支持。
## 2. 通信协议
VG10/VGC10 支持 **Modbus RTU** 协议,物理层使用 RS485。
### 2.1 Modbus RTU 设置
| 设置项 | 值 |
| ---------- | -------------------- |
| 波特率 | 1000000 bit/s |
| 起始位 | 1 |
| 数据位 | 8 |
| 校验位 | Even |
| 停止位 | 1 |
| CRC 校验 | 16 bit (Modbus 默认) |
| CRC 多项式 | 0xA001 (Modbus 默认) |
### 2.2 设备地址
| 连接方式 | 设备地址 |
| -------------------------------- | --------- |
| 通过 Quick Changer | 65 (0x41) |
| 通过 HEX-E/H QC | 65 (0x41) |
| 通过 Dual Quick Changer(主侧1) | 66 (0x42) |
| 通过 Dual Quick Changer(副侧2) | 67 (0x43) |
## 3. 产品识别
可以通过公共寄存器确认当前连接的是 VG10/VGC10:
| 地址 | 寄存器名称 | VG10/VGC10 对应值 |
| ------------ | ---------- | ------------------------ |
| 1536 (0x600) | 产品代码 | VG10: 0x10 / VGC10: 0x11 |
## 4. 支持的 Modbus 功能码
| 功能码 | 名称 | 用途 |
| --------- | --------------- | -------------------------------- |
| 3 (0x03) | 读保持寄存器 | 读取单个或多个连续寄存器 |
| 6 (0x06) | 写单个寄存器 | 设置 单个寄存器的值 |
| 16 (0x10) | 写多个寄存器 | 设置多个连续寄存器的值 |
| 23 (0x17) | 读/写多个寄存器 | 同时读取和设置寄存器(先写后读) |
## 5. 寄存器 映射
### 5.1 寄存器总览
| 地址 | 寄存器名称 | 访问权限 |
| ------------ | ----------------------- | ------------ |
| 0 (0x0000) | Channel A Control | Read + Write |
| 1 (0x0001) | Channel B Control | Read + Write |
| 2 (0x0002) | Current Limit | Read + Write |
| 258 (0x0102) | Channel A Actual Vacuum | Read only |
| 259 (0x0103) | Channel B Actual Vacuum | Read only |
### 5.2 公共寄存器
以下寄存器适用于所有 OnRobot 设备:
| 地址 | 内容 |
| ------------- | ------------------------------------------ |
| 0x600 | 产品代码(VG10: 0x10, VGC10: 0x11) |
| 0x604 | 固件版本(高8位主版本,低8位次版本) |
| 0x605 | 固件构建号 |
| 0x609 - 0x618 | 序列号(32字节,每寄存器含2个 ASCII 字符) |
---
## 6. 寄存器详细说明
### 6.1 Channel A Control (0x0000) - 读写
控制通道 A 的真空操作。
**寄存器值组成:**
- 低位字节(Bit 0-7):控制模式
- 高位字节(Bit 8-15):目标真空度(仅在 Grip 模式下使用)
**控制模式:**
| 寄存器值 | 名称 | 说明 |
| ---------- | ------- | ---------------------------------- |
| 0 (0x0000) | Release | 释放工件,如另一通道无需求则停止泵 |
| 1 (0x0001) | Grip | 建立并维持真空 |
| 2 (0x0002) | Idle | 空闲模式,不释放也不抓取,功耗稍低 |
**目标真空度设置示例:**
| 目标真空度 | 寄存器值 |
| ---------- | ------------ |
| 释放 | 0 (0x0000) |
| 20% | 276 (0x0114) |
| 40% | 296 (0x0128) |
| 75% | 331 (0x014B) |
| 空闲 | 512 (0x0200) |
> **注意:** 目标真空度不应超过 80%。
---
### 6.2 Channel B Control (0x0001) - 读写
控制通道 B 的真空操作。功能与 Channel A Control 完全相同,请参考上节。
---
### 6.3 Current Limit (0x0002) - 读写
设置和读取电流限制。
| 参数 | 值 |
| ---------- | ---------- |
| 单位 | mA(毫安) |
| 默认值 | 500 mA |
| 最大允许值 | 1000 mA |
> **警告:** 切勿将该值设置超过 1000 mA。
---
### 6.4 Channel A Actual Vacuum (0x0102) - 只读
读取通道 A 当前实际真空度。
| 参数 | 说明 |
| ---- | -------------------------------------------------------------- |
| 单位 | 1/1000 相对真空度 |
| 注意 | 与设定值(百分比)精度单位不同,此处为千分之一,以提供更高精度 |
---
### 6.5 Channel B Actual Vacuum (0x0103) - 只读
读取通道 B 当前实际真空度。
参数规格与 Channel A Actual Vacuum 相同。
---
## 7. 操作流程
### 7.1 基本控制流程
1. **配置电流限制(可选)**
- 向寄存器 0x0002 写入电流限制值(mA)
2. **设置并启动真空抓取**
- 向寄存器 0x0000(通道 A)或 0x0001(通道 B)写入带目标真空度的 Grip 命令
- 例如:`0x0114` = 20% 真空度抓取,**其中01高8位表示模式;14低8位表示参数**
3. **监控实际真空度**
- 读取寄存器 0x0102(通道 A)或 0x0103(通道 B)
- 获取实际真空度(千分之一单位)
4. **释放工件**
- 向相应通道控制寄存器写入 `0x0000`
5. **空闲状态**
- 向相应通道控制寄存器写入 `0x0200`
### 7.2 双通道使用
VG10/VGC10 的两个通道可独立控制:
- 通道 A 由寄存器 0x0000 控制
- 通道 B 由寄存器 0x0001 控制
- 一个通道释放时,若另一通道仍需要真空,泵会继续运行
---
## 8. 版本信息
| 项目 | 内容 |
| -------------------------- | -------------------------- |
| 基于文档版本 | Connectivity Guide v1.23.0 |
| 适用设备 | VG10, VGC10 |
| 最低固件版本(115200 bps) | v2.0.3 |
| 通信协议 | Modbus RTU (RS485) |
---
## 9. 安全注意事项
- 目标真空度切勿超过 80%
- 电流限制切勿超过 1000 mA
- 仅在有充分集成经验的情况下使用此接口
- 使用前请务必阅读设备的操作说明
- 不当使用可能导致设备损坏并使保修失效
生成后重点检查:
Requirements.md中从站地址是否与实际设备从站 ID 一致- 寄存器映射是否与开发者手册中一致
DH AG-95
大寰电动夹爪
创建项目示例:
dpt create
# 插件名:DhAG95
# 描述:DH-Robotics AG-95 electric gripper plugin
cd DhAG95
AG-95 Requirements.md 完整示例
# AG系列电爪 Modbus-RTU 功能文档
## 一、通讯参数
| 参数 | 默认值 |
| --------- | ---------- |
| Modbus ID | 2 |
| 波特率 | 115200 |
| 数据位 | 8 |
| 停止位 | 1 |
| 校验位 | 无 |
| 协议 | Modbus-RTU |
---
## 二、寄存器地址速查表
### 控制寄存器(可写)
| 功能 | 地址 | 取值范围 | 说明 |
| -------- | ------ | ----------- | ------------------------- |
| 初始化 | 0x0100 | 0x01 / 0xA5 | 单向初始化 / 完全初始化 |
| 力值 | 0x0101 | 20-100 | 夹持力百分比 |
| 目标位置 | 0x0103 | 0-1000 | 千分比,0=张开,1000=闭合 |
### 状态寄存器(只读)
| 功能 | 地址 | 返回值 | 说明 |
| ---------- | ------ | ------- | -------------------------------- |
| 初始化状态 | 0x0200 | 0/1/2 | 0=未初始化,1=成功,2=进行中 |
| 夹持状态 | 0x0201 | 0/1/2/3 | 0=运动中,1=到位,2=夹住,3=掉落 |
| 实时位置 | 0x0202 | 0-1000 | 当前实际位置 |
---
## 三、功能指令示例
> 以下示例中 Modbus ID 均为 2(地址码为 01)
### 1. 初始化夹爪
#### 完全初始化(闭合再张开,标定行程)
```plaintext
发送:02 06 01 00 00 A5 48 4D
返回:02 06 01 00 00 A5 48 4D
```
#### 单向初始化(根据初始化方向寄存器执行)
```plaintext
发送:02 06 01 00 00 01 49 F6
返回:02 06 01 00 00 01 49 F6
```
> 初始化时间 0.5~3 秒,完成前不可控制
---
### 2. 设置力值
```plaintext
# 设置力值为 50%
发送:02 06 01 01 00 32 59 FD
返回:02 06 01 01 00 32 59 FD
```
| 力值(%) | 16进制数据 |
| ------- | ---------- |
| 20 | 00 14 |
| 50 | 00 32 |
| 100 | 00 64 |
---
### 3. 夹取物体(设置目标位置)
```plaintext
# 夹取到 500 位置(千分比)
发送:02 06 01 03 01 F4 78 21
返回:02 06 01 03 01 F4 78 21
```
| 位置 | 16进制数据 |
| ------------ | ---------- |
| 0(张开) | 00 00 |
| 500(半闭) | 01 F4 |
| 1000(闭合) | 03 E8 |
---
### 4. 释放物体(张开到 0 位置)
```plaintext
发送:02 06 01 03 00 00 79 F6
返回:02 06 01 03 00 00 79 F6
```
---
### 5. 读取夹持状态
```plaintext
发送:02 03 02 01 00 01 D4 72
返回:02 03 02 00 02 23 98
```
| 返回值 | 状态 |
| ------ | ---------------------- |
| 00 00 | 运动中 |
| 00 01 | 到达位置(未夹到物体) |
| 00 02 | 夹住物体 |
| 00 03 | 物体掉落 |
---
### 6. 读取实时位置
```plaintext
发送:02 03 02 02 00 01 24 72
返回:02 03 02 03 E8 B8 FA
```
> 03 E8(16进制)= 1000(十进制)
---
### 7. 读取初始化状态
```plaintext
发送:02 03 02 00 00 01 85 B2
返回:02 03 02 00 01 B8 44
```
| 返回值 | 状态 |
| ------ | ---------- |
| 00 00 | 未初始化 |
| 00 01 | 初始化成功 |
| 00 02 | 初始化中 |
---
## 四、组合操作流程
### 夹取物体完整流程
```plaintext
1. 初始化(如果未初始化)
发送:02 06 01 00 00 A5 48 4D
2. 设置力值(如50%)
发送:02 06 01 01 00 32 59 FD
3. 设置目标位置(如500)
发送:02 06 01 03 01 F4 78 21
4. 读取状态确认夹住
发送:02 03 02 01 00 01 D4 72
→ 返回 00 02 表示夹住物体
```
### 释放物体完整流程
```plaintext
1. 设置目标位置为 0
发送:02 06 01 03 00 00 79 F6
2. 读取状态确认到位
发送:02 03 02 01 00 01 D4 72
→ 返回 00 01 表示到位(未夹到物体)
```
---
## 五、指示灯状态
| 状态 | 指示灯 |
| ---------- | ----------------- |
| 未初始化 | 红灯闪烁 |
| 初始化完成 | 蓝灯常亮 |
| 夹住物体 | 绿灯常亮 |
| 物体掉落 | 绿灯闪烁 |
| 收到命令 | 紫灯闪烁(蓝+红) |
---
## 六、注意事项
1. **必须先初始化**,否则夹爪不响应控制指令
2. 初始化完成后,**蓝灯常亮**才可控制
3. 修改参数后需向 `0x0300` 写入 `0x01` 保存到 Flash
4. 更换指尖后必须执行 `0xA5` 完全初始化
5. IO 模式和 Modbus 模式互斥,不可同时使用
6. 指令均为 **16进制**,CRC校验码需正确计算
---
## 七、CRC校验计算
参数选择:
- CRC-16
- 多项式:MODBUS (0x8005)
- 初始值:0xFFFF
- 异或值:0x0000
- 输入/输出反转:是
DH PGE-50
大寰驱控一体工业夹爪
创建项目示例:
dpt create
# 插件名:DhPGE50
# 描述:DH-Robotics PGE-50 electric gripper plugin
cd DhPGE50
PGE-50 Requirements.md 完整示例
# PGE系列驱控一体式电爪 - 软件开发文档
## 概述
PGE系列为工业型平行电爪,支持**Modbus-RTU(RS485)** 和 **IO模式** 控制。可控制夹爪的**位置、力值、速度**,并支持状态反馈。
---
## 一、通信规格(RS485 Modbus-RTU)
| 参数 | 默认值 |
|------|--------|
| 设备ID | 1 |
| 波特率 | 115200 |
| 数据位 | 8 |
| 停止位 | 1 |
| 校验位 | 无 |
> 支持功能码:`03`(读寄存器)、`06`(写单个寄存器) 、`04`、`10`
---
## 二、寄存器地址表
### 2.1 基础控制地址表(读写)
| 功能 | 地址(16进制) | 说明 | 取值范围 |
|------|----------------|------|-----------|
| 初始化夹爪 | 0x0100 | 写入 0x01:回零;0xA5:完全标定 | 只写 |
| 力值 | 0x0101 | 夹持力(百分比) | 20–100(0x14–0x64) |
| 位置 | 0x0103 | 目标位置(千分比) | 0–1000(0x000–0x3E8) |
| 速度 | 0x0104 | 运行速度(百分比) | 1–100(0x01–0x64) |
### 2.2 状态反馈地址表(只读)
| 功能 | 地址(16进制) | 返回值说明 |
|------|----------------|--------------|
| 初始化状态 | 0x0200 | 0:未初始化;1:成功;2:初始化中 |
| 夹持状态 | 0x0201 | 0:运动中;1:到位未夹物;2:夹住物体;3:物体掉 落 |
| 实时位置 | 0x0202 | 当前实际位置(千分比) |
### 2.3 参数配置地址表(读写)
| 功能 | 地址(16进制) | 说明 |
|------|----------------|------|
| 写入保存 | 0x0300 | 写入 1:保存参数到Flash |
| 初始化方向 | 0x0301 | 0:张开;1:闭合 |
| 设备ID | 0x0302 | 1–247 |
| 波特率 | 0x0303 | 0:115200;1:57600;2:38400;3:19200;4:9600;5:4800 |
| 停止位 | 0x0304 | 0:1位;1:2位 |
| 校验位 | 0x0305 | 0:无;1:奇校验;2:偶校验 |
| 自动初始化 | 0x0504 | 0:不上电初始化;1:上电自动初始化 |
---
## 三、指令示例
### 3.1 初始化夹爪
```text
发送:01 06 01 00 00 01 49 F6
返回:01 06 01 00 00 01 49 F6
```
### 3.2 设置力值为30%
```text
发送:01 06 01 01 00 1E 59 FE
返回:01 06 01 01 00 1E 59 FE
```
### 3.3 设置位置为500‰(50%行程)
```text
发送:01 06 01 03 01 F4 78 21
返回:01 06 01 03 01 F4 78 21
```
### 3.4 设置速度为50%
```text
发送:01 06 01 04 00 32 48 22
返回:01 06 01 04 00 32 48 22
```
### 3.5 读取夹持状态
```text
发送:01 03 02 01 00 01 D4 72
返回:01 03 02 00 02 39 85 (02表示已夹住物体)
```
### 3.6 保存所有配置参数
```text
发送:01 06 03 00 00 01 48 4E
返回:01 06 03 00 00 01 48 4E
```
---
## 四、IO模式控制说明
### 4.1 输入引脚定义(NPN,0V有效)
| INPUT1 | INPUT2 | 动作 |
|--------|--------|------|
| 高阻(0) | 高阻(0) | 第1组参数 |
| 0V(1) | 高阻(0) | 第2组参数 |
| 高阻(0) | 0V(1) | 第3组参数 |
| 0V(1) | 0V(1) | 第4组参数 |
### 4.2 输出引脚 反馈(NPN)
| OUTPUT1 | OUTPUT2 | 状态 |
|---------|---------|------|
| 高阻 | 高阻 | 运动中 |
| 0V | 高阻 | 到位未夹物 |
| 高阻 | 0V | 夹住物体 |
| 0V | 0V | 物体掉落 |
---
## 五、开发注意事项
- 控制前必须先**初始化夹爪**(写入0x01或0xA5)
- 初始化或参数修改后,建议执行**写入保存(0x0300)**
- IO模式和485模式可同时存在,但**控制冲突时遵循“先发先响应”**
- 初始化过程中(约0.5~3秒)**不要发送控制指令**
- 修改ID、波特率等参数后需**重启夹爪生效**
---
## 六、调试建议
- 使用官方调试软件或任意串口工具(如Modbus Poll)
- 硬件连接:24V、GND、485A、485B
- 推荐使用USB转485模块进行PC调试
Agent 技能使用
1. 在 IDE 中调用 Skill
打开插件项目,在 IDE Chat 中使用斜杠指令:
/dobot-plus

Agent 会按 Skill 定义的工作流自动执行,无需逐步确认:
- 读取并解析项目根目录的
Requirements.md - 将功能拆分为原子功能项,写入
function.json - 校验
function.json格式 - 生成
httpAPI.lua、userAPI.lua、modbus.lua、积木配置、脚本配置等脚手架 - 生成
ui/Main.tsx控制页面 - 在
lua/[项目名].lua中填充函数框架,提示开发者补充业务逻辑
2. 检查生成结果
Skill 执行完成后,项目目录中会新增或更新以下关键文件:
| 文件 / 目录 | 说明 |
|---|---|
function.json | 功能定义与协议参数 |
lua/*.lua | Modbus 读写与业务逻辑 |
lua/httpAPI.lua | UI 请求的 HTTP 接口 |
lua/userAPI.lua | 积木 / 脚本编程接口 |
configs/Blocks.json | 积木编程配置 |
configs/Scripts.json | 脚本编程配置 |
ui/Main.tsx | 插件控制界面 |
.dobot/http/http.ts | 前端 HTTP 请求封装 |
3. 本地调试(可选)
开发人员需要对功能进行预验证时,可进行此步操作;若计划构建后在上位机验证,可跳过此步骤。
确认硬件连接
调试时确认 dpt.json 中的控制器 IP 与实际设备一致
{
"ip": "192.168.5.1",
"pluginPort": 22100
}
进入插件项目目录,在命令行中执行调试指令:
dpt dev
调试通过后,可根据需要调整 UI 文案、国际化资源(Resources/i18n/)以及积木 / 脚本配置。
打包构建
插件开发、调试完成后,在项目根目录执行:
dpt build
构建成功后,当前目录下会出现:
dist/— 构建后的插件源码,供开发者检查output/— 压缩后的 zip 包,文件名格式为<插件名>-<版本号>.zip,即最终导入文件
导入使用
- 打开 DobotStudio Pro,进入 Dobot+ 插件管理界面
- 若已安装同名插件,需先卸载旧版本
- 点击导入,选择
output/目录下生成的 zip 文件 - 安装完成后,在导航栏中找到插件入口,即可使用控制界面、积木编程和脚本编程功能
插件压缩包命名格式为:
<插件名>_v<主版本号>-<次要版本号>-<修复版本号>-<版本状态>.zip
导入与使用的详细截图说明见 快速入门 — 构建和使用。
案例插件 UI 截图
- Onrobot VG10

- DH AG-95

- DH PGE-50

常见问题
Skill 提示缺少 Requirements.md
请确认 Requirements.md 位于插件项目根目录,且包含完整的协议参数、寄存器地址和功能定义。Skill 不会代为创建该文件。
Modbus 通信失败
- 确认控制器 485 参数与
Requirements.md一致 - 确认 RS485 接线正常、总线地址无冲突
- 使用
dpt dev连接真机时,核对dpt.json中的 IP 地址
Agent 实现效果不理想
- 确认现场的设备通讯参数是否与手册一致
- 检查
Requirements.md中的描述是否有模糊或前后冲突 - 检查 Agent 模型能力:VS Code Copilot 建议使用 GPT-5.4 及以上;Cursor 中 Auto 模式下表现良好