GrabBag/App/WheelMeasure/Doc/TCP_Protocol.md
2026-03-14 10:00:15 +08:00

3.6 KiB
Raw Blame History

轮眉测量 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;... -----------|
  |                                            |

时序说明

  1. 客户端发送 start,100 命令
  2. 服务器收到命令后,依次触发所有启用的相机进行检测
  3. 所有相机检测完成后,服务器发送汇总结果
  4. 客户端接收结果并处理

错误处理

连接错误

  • 如果TCP连接断开服务器会清除当前客户端的请求状态
  • 客户端需要重新连接并发送命令

超时处理

  • 建议客户端设置接收超时推荐60秒
  • 如果超时未收到响应,可以重新发送命令

数据解析

  • 客户端应验证返回数据格式
  • 检查相机ID是否在1-4范围内
  • 检查是否包含错误码400/401

配置说明

TCP服务器端口可在配置文件中修改

<ServerList>
    <Server>
        <Name>TCPServer</Name>
        <IP>0.0.0.0</IP>
        <Port>5000</Port>
    </Server>
</ServerList>

注意事项

  1. 数据单位所有距离值单位为毫米mm
  2. 相机顺序相机ID固定为1-4对应配置文件中的相机顺序
  3. 检测时间完整检测所有相机通常需要30-50秒请设置合理的超时时间
  4. 并发限制:服务器同时只处理一个检测请求,多个客户端连接时按先后顺序处理
  5. 数据精度:返回的距离值已四舍五入为整数