GrabBag/App/StatorWorkpiecePosition/Doc/工件定位ModbusTCP协议.md
2026-08-04 14:23:07 +08:00

91 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 锥形工件定位 / 转子钢芯定位 Modbus TCP 客户对接协议
## 1. 通信参数
| 项目 | 说明 |
|---|---|
| 协议 | Modbus TCP |
| 视觉设备角色 | Server / 从设备 |
| 客户设备角色 | Client / 主设备 |
| 连接端口 | 现场标准端口 `502` |
| 寄存器地址 | 本文档使用 0-based 地址 |
| 数据区 | Holding Register |
| 浮点格式 | 32 位 IEEE754占 2 个 16 位寄存器 |
| 默认浮点字顺序 | 高字在前,低字在后,即 `ABCD` |
## 2. 支持的功能码
| 功能码 | 名称 | 用途 |
|---|---|---|
| `0x03` | Read Holding Registers | 读取状态和检测结果 |
| `0x06` | Write Single Register | 写入触发命令 |
| `0x10` | Write Multiple Registers | 写入触发命令 |
## 3. 寄存器表
| 地址 | 名称 | 数据类型 | 客户操作 | 说明 |
|---:|---|---|---|---|
| `0` | Trigger | uint16 | 写 | 触发检测命令 |
| `1` | Status | uint16 | 读 | 检测状态 |
| `2` | ResultStart | - | 读 | 工件检测结果起始地址 |
## 4. 触发命令
客户向 `Trigger` 寄存器写入:
| 写入值 | 命令 |
|---:|---|
| `1` | 工件检测 |
| `2` | 料框检测 |
## 5. 状态寄存器
客户读取 `Status` 寄存器:
| 状态值 | 说明 |
|---:|---|
| `0` | 正在检测 |
| `1` | 检测完成 |
| `2` | 检测失败 |
工件检测完成且 `Status=1` 后,客户读取工件检测结果寄存器。
料框检测只通过 `Status` 返回完成或失败,不提供料框几何结果寄存器。
## 6. 工件检测结果
当前 Modbus TCP 返回第一个工件结果。
结果从地址 `2` 开始,共 14 个寄存器:
| 地址 | 寄存器数 | 数据类型 | 字段 | 说明 |
|---:|---:|---|---|---|
| `2` | 1 | uint16 | `workpieceType` | 工件类型 |
| `3` | 1 | uint16 | reserved | 保留 |
| `4-5` | 2 | float | `X` | X 坐标,单位 mm |
| `6-7` | 2 | float | `Y` | Y 坐标,单位 mm |
| `8-9` | 2 | float | `Z` | Z 坐标,单位 mm |
| `10-11` | 2 | float | `A` | 姿态第 1 项,单位 deg |
| `12-13` | 2 | float | `B` | 姿态第 2 项,单位 deg |
| `14-15` | 2 | float | `C` | 姿态第 3 项,单位 deg |
## 7. 姿态字段顺序
默认姿态字段含义:
| 字段 | 默认含义 |
|---|---|
| `A` | Roll |
| `B` | Pitch |
| `C` | Yaw |
如现场约定了其他姿态顺序,以项目交付时确认的协议参数为准。
## 8. 典型交互流程
1. 客户设备连接视觉设备 Modbus TCP 端口。
2. 客户设备向地址 `0` 写入 `1`,触发工件检测。
3. 客户设备轮询地址 `1`
4. 当地址 `1` 读取为 `1` 时,读取地址 `2-15` 获取工件结果。
5. 当地址 `1` 读取为 `2` 时,本次检测失败,不读取结果。