2026-06-20 23:38:30 +08:00
|
|
|
|
# 轮胎孔定位 ModbusTCP 协议
|
|
|
|
|
|
|
|
|
|
|
|
## 1. 概述
|
|
|
|
|
|
|
2026-06-25 00:04:26 +08:00
|
|
|
|
- **协议**: Modbus TCP(保持寄存器)
|
|
|
|
|
|
- **端口**: `502`
|
|
|
|
|
|
- **模式**: 眼在手外(相机固定,无需机械臂位姿)
|
2026-06-20 23:38:30 +08:00
|
|
|
|
|
|
|
|
|
|
## 2. 寄存器定义
|
|
|
|
|
|
|
|
|
|
|
|
| 地址 | 长度 | 访问 | 说明 |
|
|
|
|
|
|
|---:|---|---|---|
|
2026-06-25 00:04:26 +08:00
|
|
|
|
| `0` | 1 | 写 | 触发检测,写入 `1` |
|
|
|
|
|
|
| `1` | 1 | 读 | 工作状态 |
|
|
|
|
|
|
| `14` | 2 | 读 | 目标点 X(float32,单位 mm) |
|
|
|
|
|
|
| `16` | 2 | 读 | 目标点 Y(float32,单位 mm) |
|
|
|
|
|
|
| `18` | 2 | 读 | 目标点 Z(float32,单位 mm) |
|
|
|
|
|
|
| `20` | 2 | 读 | 目标点姿态分量 1(float32,单位 deg) |
|
|
|
|
|
|
| `22` | 2 | 读 | 目标点姿态分量 2(float32,单位 deg) |
|
|
|
|
|
|
| `24` | 2 | 读 | 目标点姿态分量 3(float32,单位 deg) |
|
|
|
|
|
|
|
|
|
|
|
|
- 每个 `float32` 占 2 个保持寄存器(大端序,高 16 位在前)
|
|
|
|
|
|
- 多个检测结果时仅输出第一个
|
|
|
|
|
|
- 位置保留 3 位小数,姿态保留 3 位小数
|
|
|
|
|
|
|
|
|
|
|
|
## 3. 姿态输出顺序
|
|
|
|
|
|
|
|
|
|
|
|
寄存器 `20~25` 中三个姿态分量的含义由 `poseOutputOrder` 控制:
|
|
|
|
|
|
|
|
|
|
|
|
| poseOutputOrder | 顺序 |
|
|
|
|
|
|
|----------------:|------|
|
|
|
|
|
|
| `0` | RX, RY, RZ(默认) |
|
|
|
|
|
|
| `1` | RX, RZ, RY |
|
|
|
|
|
|
| `2` | RY, RX, RZ |
|
|
|
|
|
|
| `3` | RY, RZ, RX |
|
|
|
|
|
|
| `4` | RZ, RX, RY |
|
|
|
|
|
|
| `5` | RZ, RY, RX |
|
|
|
|
|
|
|
|
|
|
|
|
## 4. 工作状态
|
2026-06-20 23:38:30 +08:00
|
|
|
|
|
|
|
|
|
|
| 状态值 | 含义 |
|
|
|
|
|
|
|---:|---|
|
|
|
|
|
|
| `0` | 空闲 |
|
|
|
|
|
|
| `1` | 检测中 |
|
|
|
|
|
|
| `2` | 检测完成 |
|
2026-06-25 00:04:26 +08:00
|
|
|
|
| `3` | 异常 |
|
2026-06-20 23:38:30 +08:00
|
|
|
|
|
|
|
|
|
|
## 5. 触发流程
|
|
|
|
|
|
|
2026-06-25 00:04:26 +08:00
|
|
|
|
1. 读寄存器 `1`,确认状态为 `0`(空闲)
|
|
|
|
|
|
2. 写寄存器 `0 = 1`(触发检测)
|
|
|
|
|
|
3. 轮询寄存器 `1`
|
|
|
|
|
|
4. 状态为 `2` 时,读寄存器 `14~25` 获取目标点
|
|
|
|
|
|
5. 状态为 `3` 时,本次检测失败
|