3.6 KiB
3.6 KiB
轮眉测量 TCP/IP 通信协议
概述
- 协议类型: TCP/IP 文本协议
- 默认端口: 5000(可在配置文件中修改)
- 数据格式: 纯文本,UTF-8编码
- 通信模式: 客户端-服务器模式(视觉系统作为服务器)
协议格式
1. 触发检测命令(客户端 → 服务器)
start,100
格式说明:
start: 命令关键字100: 参数(当前未使用,保留用于扩展)
示例:
start,100
2. 检测结果响应(服务器 → 客户端)
成功情况(所有相机检测成功)
1,100,200;2,100,200;3,100,200;4,100,200
格式说明:
- 多个相机结果用分号
;分隔 - 每个相机结果格式:
相机ID,中心点到地面距离,轮眉到地面距离相机ID: 1-4(对应4个相机)中心点到地面距离: 整数,单位mm轮眉到地面距离: 整数,单位mm
示例:
1,150,250;2,148,252;3,151,249;4,149,251
表示:
- 相机1:中心距离150mm,轮眉距离250mm
- 相机2:中心距离148mm,轮眉距离252mm
- 相机3:中心距离151mm,轮眉距离249mm
- 相机4:中心距离149mm,轮眉距离251mm
失败情况(部分相机检测失败)
1,400;2,100,200;3,100,200;4,100,200
错误码说明:
400: 扫描/匹配失败401: 工件为空
格式说明:
- 失败的相机只返回:
相机ID,错误码 - 成功的相机返回:
相机ID,中心距离,轮眉距离
示例:
1,400;2,150,250;3,401;4,149,251
表示:
- 相机1:扫描失败(错误码400)
- 相机2:成功,中心距离150mm,轮眉距离250mm
- 相机3:工件为空(错误码401)
- 相机4:成功,中心距离149mm,轮眉距离251mm
通信流程
客户端 服务器(视觉系统)
| |
|-------- start,100 ------------------------>|
| |
| | 触发所有相机顺序检测
| | (相机1 → 相机2 → 相机3 → 相机4)
| |
|<------- 1,150,250;2,148,252;... -----------|
| |
时序说明:
- 客户端发送
start,100命令 - 服务器收到命令后,依次触发所有启用的相机进行检测
- 所有相机检测完成后,服务器发送汇总结果
- 客户端接收结果并处理
错误处理
连接错误
- 如果TCP连接断开,服务器会清除当前客户端的请求状态
- 客户端需要重新连接并发送命令
超时处理
- 建议客户端设置接收超时(推荐60秒)
- 如果超时未收到响应,可以重新发送命令
数据解析
- 客户端应验证返回数据格式
- 检查相机ID是否在1-4范围内
- 检查是否包含错误码(400/401)
配置说明
TCP服务器端口可在配置文件中修改:
<ServerList>
<Server>
<Name>TCPServer</Name>
<IP>0.0.0.0</IP>
<Port>5000</Port>
</Server>
</ServerList>
注意事项
- 数据单位:所有距离值单位为毫米(mm)
- 相机顺序:相机ID固定为1-4,对应配置文件中的相机顺序
- 检测时间:完整检测所有相机通常需要30-50秒,请设置合理的超时时间
- 并发限制:服务器同时只处理一个检测请求,多个客户端连接时按先后顺序处理
- 数据精度:返回的距离值已四舍五入为整数