GrabBag/App/ScrewPosition/Doc/螺杆定位ModbusTCP协议文档.md

2.8 KiB
Raw Blame History

螺杆/工具盘定位 ModbusTCP 协议文档

1. 概述

  • 协议: Modbus TCP
  • 服务端默认端口: 5020
  • 当前实现使用保持寄存器
  • 地址说明均为保持寄存器地址

2. 寄存器定义

地址 长度 访问 说明
0 1 触发检测,1=螺杆检测2=工具盘检测,写入后服务端会自动清零
1 1 工作状态,0=空闲1=检测中2=完成3=异常
2 2 机械臂 Xfloat32
4 2 机械臂 Yfloat32
6 2 机械臂 Zfloat32
8 2 机械臂 RXfloat32
10 2 机械臂 RYfloat32
12 2 机械臂 RZfloat32
14 2 结果 Xfloat32
16 2 结果 Yfloat32
18 2 结果 Zfloat32
20 2 结果 RXfloat32
22 2 结果 RYfloat32
24 2 结果 RZfloat32

说明:

  • 地址 2~13 为机械臂当前位姿(眼在手上模式),触发前写入
  • 地址 14~25 为检测结果输出 XYZ RX RY RZ
  • 每个 float32 占用 2 个保持寄存器,字序为高字在前、低字在后
  • 当前版本只输出首个目标位姿
  • 当没有结果或检测失败时,14~25 地址返回全 0

3. 触发方式

3.1 写入机械臂位姿

触发前,先将机械臂当前位姿写入地址 2~13

3.2 触发螺杆检测

向地址 0 写入:

1

3.3 触发工具盘检测

向地址 0 写入:

2

工具盘检测会调用 sx_getLocationPlatePose 算法,输出定位盘中心位姿。

4. 工作状态说明

状态值 含义
0 空闲,可接收下一次触发
1 检测中
2 检测完成,结果已写入地址 14~25
3 检测异常或当前请求不被支持

5. 位姿数据格式

机械臂位姿(输入,地址 2~13

字段 地址范围
X 2~3
Y 4~5
Z 6~7
RX 8~9
RY 10~11
RZ 12~13

检测结果(输出,地址 14~25

字段 地址范围
X 14~15
Y 16~17
Z 18~19
RX 20~21
RY 22~23
RZ 24~25

其中:

  • 螺杆检测输出为机械臂坐标系下的 XYZ + RX/RY/RZ
  • 工具盘检测输出为机械臂坐标系下的定位盘中心 XYZ + RX/RY/RZ(法向量转欧拉角)

6. 典型流程

  1. 读取地址 1,确认当前为 0
  2. 将机械臂当前位姿写入地址 2~13
  3. 向地址 0 写入 12
  4. 轮询地址 1
  5. 当地址 1=2 时,读取地址 14~25
  6. 当地址 1=3 时,本次检测失败