GrabBag/App/RodWeldSeam/Doc/钢筋焊缝定位系统TCPIP通信协议.md

80 lines
2.4 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.

# 钢筋焊缝定位系统 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 客户端。