80 lines
2.4 KiB
Markdown
80 lines
2.4 KiB
Markdown
|
|
# 钢筋焊缝定位系统 TCP/IP 文本通信协议
|
|||
|
|
|
|||
|
|
## 1. 连接参数
|
|||
|
|
|
|||
|
|
| 参数 | 说明 |
|
|||
|
|
|------|------|
|
|||
|
|
| 角色 | 视觉系统作为 TCP Server,机械臂或 PLC 作为 TCP Client |
|
|||
|
|
| 默认端口 | 7800,可在网络配置界面修改 |
|
|||
|
|
| 编码 | UTF-8 文本 |
|
|||
|
|
| 行结束符 | `\r\n`(接收端兼容单独 `\n`) |
|
|||
|
|
|
|||
|
|
## 2. 触发检测
|
|||
|
|
|
|||
|
|
请求格式:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
W{Camera}_X_Y_Z_A_B_C\r\n
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
示例:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
W1_100.000_200.000_300.000_0.000_90.000_180.000\r\n
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
- `W`:焊缝检测命令标识。
|
|||
|
|
- `Camera`:相机编号,从 1 开始。
|
|||
|
|
- `X/Y/Z`:拍照时机械臂当前法兰位置,单位 mm。
|
|||
|
|
- `A/B/C`:拍照时机械臂当前法兰姿态,单位度,轴顺序由网络配置 `poseOutputOrder` 决定。
|
|||
|
|
- 报文必须恰好包含 7 段。格式或数值非法时返回 `ERR\r\n`。
|
|||
|
|
- 系统正在检测、相机不可用或触发失败时返回 `BUSY\r\n`。
|
|||
|
|
- 命令被接受时不单独返回 ACK,检测完成后返回结果报文。
|
|||
|
|
|
|||
|
|
### 2.1 姿态字段顺序
|
|||
|
|
|
|||
|
|
| `poseOutputOrder` | A | B | C |
|
|||
|
|
|-------------------|---|---|---|
|
|||
|
|
| 0 | RX | RY | RZ |
|
|||
|
|
| 1 | RX | RZ | RY |
|
|||
|
|
| 2 | RY | RX | RZ |
|
|||
|
|
| 3 | RY | RZ | RX |
|
|||
|
|
| 4 | RZ | RX | RY |
|
|||
|
|
| 5 | RZ | RY | RX |
|
|||
|
|
|
|||
|
|
## 3. 检测结果
|
|||
|
|
|
|||
|
|
成功且检测到焊缝时:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
PointNum_WeldType_CX_CY_CZ_SX_SY_SZ_EX_EY_EZ_A_B_C[_WeldType_CX_..._C]\r\n
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
- `PointNum`:本次焊缝总数。
|
|||
|
|
- 每条焊缝包含 13 个字段:焊缝类型、中心点 XYZ、起点 XYZ、终点 XYZ、姿态 ABC。
|
|||
|
|
- 多条焊缝按同一 13 字段块连续追加,返回数量与 `PointNum` 一致。
|
|||
|
|
- 所有浮点数保留 3 位小数。
|
|||
|
|
- TCP 为文本协议,不使用 Modbus 的 `byteOrder` 配置。
|
|||
|
|
- 检测失败或结果为空时返回 `0\r\n`。
|
|||
|
|
|
|||
|
|
示例(1 条焊缝):
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
1_2_10.000_20.000_30.000_5.000_20.000_30.000_15.000_20.000_30.000_0.000_90.000_180.000\r\n
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
焊缝类型:
|
|||
|
|
|
|||
|
|
| 值 | 含义 |
|
|||
|
|
|----|------|
|
|||
|
|
| 0 | 未知 |
|
|||
|
|
| 1 | 点焊 |
|
|||
|
|
| 2 | 焊缝 |
|
|||
|
|
| 3 | 焊缝间隙 |
|
|||
|
|
|
|||
|
|
## 4. 手眼转换说明
|
|||
|
|
|
|||
|
|
- 眼在手上:`T_base_camera = T_base_flange × T_flange_camera`。触发报文中的机械臂当前位姿参与本次检测的中心、起点、终点、方向和姿态转换。
|
|||
|
|
- 眼在手外:标定矩阵直接表示相机到机器人基座的变换,触发报文仍保留六轴位姿字段,但不参与结果计算。
|
|||
|
|
- 检测结果会广播给当前连接到服务端的所有 TCP 客户端。
|