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

80 lines
2.4 KiB
Markdown
Raw Normal View History

2026-07-20 11:52:35 +08:00
# 钢筋焊缝定位系统 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 客户端。