97 lines
2.5 KiB
Markdown
97 lines
2.5 KiB
Markdown
# WeldSeam TCP 报文格式
|
||
|
||
## 1. 通信参数
|
||
|
||
| 项目 | 值 |
|
||
|---|---|
|
||
| 角色 | 视觉控制器为服务端,主控软件为客户端 |
|
||
| 默认端口 | `7800`,可在参数页面修改 |
|
||
| 编码 | UTF-8 文本 |
|
||
| 字段分隔符 | `_` |
|
||
| 报文结束符 | `\r\n` |
|
||
|
||
接收端必须按 `\r\n` 组帧,不能假定一次 TCP 接收对应一条完整报文。
|
||
|
||
## 2. 扫描与计算时序
|
||
|
||
```text
|
||
主控软件 WeldSeam视觉控制器
|
||
|---- START_SCAN\r\n ----------------->|
|
||
|<--- START_ACK\r\n -------------------|
|
||
| 收到确认后移动相机,视觉持续动态采集 |
|
||
|---- STOP_SCAN\r\n ------------------>|
|
||
|<--- STOP_ACK\r\n --------------------|
|
||
| | 自动计算
|
||
|<--- RESULT_OK_N_X1_Y1_Z1_...\r\n --|
|
||
```
|
||
|
||
视觉只负责采集和检测,不负责相机或机械臂运动控制。未收到 `START_ACK` 前,主控不得开始移动相机。
|
||
|
||
## 3. 请求与应答
|
||
|
||
### 3.1 开始动态扫描
|
||
|
||
```text
|
||
START_SCAN\r\n
|
||
START_ACK\r\n
|
||
```
|
||
|
||
`START_ACK` 表示 VzNLSDK 非摆动动态采集已经启动。
|
||
|
||
### 3.2 停止扫描并自动计算
|
||
|
||
```text
|
||
STOP_SCAN\r\n
|
||
STOP_ACK\r\n
|
||
```
|
||
|
||
`STOP_ACK` 只表示采集已停止且计算任务已受理。计算结果随后由视觉控制器主动发送。
|
||
|
||
### 3.3 成功结果
|
||
|
||
```text
|
||
RESULT_OK_PointNum_X1_Y1_Z1_X2_Y2_Z2_..._Xn_Yn_Zn\r\n
|
||
```
|
||
|
||
示例:
|
||
|
||
```text
|
||
RESULT_OK_3_12.500_20.000_301.250_512.000_20.400_300.900_1012.750_21.100_300.500\r\n
|
||
```
|
||
|
||
- `PointNum` 必须等于后续 XYZ 点数量。
|
||
- 坐标单位为 mm,默认保留 3 位小数。
|
||
- 点序固定为焊接行进方向:首点、中间参考点、末点。
|
||
- 相邻路径点组成一段直线。
|
||
|
||
### 3.4 无有效结果
|
||
|
||
```text
|
||
RESULT_NG\r\n
|
||
```
|
||
|
||
## 4. 错误报文
|
||
|
||
```text
|
||
ERROR_错误码\r\n
|
||
```
|
||
|
||
| 报文 | 含义 |
|
||
|---|---|
|
||
| `ERROR_UNKNOWN_COMMAND` | 命令无法识别 |
|
||
| `ERROR_INVALID_FORMAT` | 命令格式错误 |
|
||
| `ERROR_BUSY` | 正在扫描或计算 |
|
||
| `ERROR_NOT_READY` | 相机未就绪,或当前状态不允许该命令 |
|
||
| `ERROR_INTERNAL_ERROR` | 停止采集等内部操作失败 |
|
||
|
||
## 5. 状态约束
|
||
|
||
```text
|
||
Ready --START_SCAN--> Scanning --STOP_SCAN--> Calculating --RESULT--> Ready
|
||
```
|
||
|
||
- `Scanning` 或 `Calculating` 状态收到 `START_SCAN`,返回 `ERROR_BUSY`。
|
||
- 非 `Scanning` 状态收到 `STOP_SCAN`,返回 `ERROR_NOT_READY`;计算期间返回 `ERROR_BUSY`。
|
||
- 扫描期间 TCP 断开,本次扫描立即取消并清空缓存;重新连接后必须从扫描起点重新开始。
|
||
|