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

2.4 KiB
Raw Permalink Blame History

钢筋焊缝定位系统 TCP/IP 文本通信协议

1. 连接参数

参数 说明
角色 视觉系统作为 TCP Server机械臂或 PLC 作为 TCP Client
默认端口 7800可在网络配置界面修改
编码 UTF-8 文本
行结束符 \r\n(接收端兼容单独 \n

2. 触发检测

请求格式:

W{Camera}_X_Y_Z_A_B_C\r\n

示例:

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. 检测结果

成功且检测到焊缝时:

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 条焊缝):

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 客户端。