docs: 文档更新v1.2

This commit is contained in:
2026-05-28 11:42:23 +08:00
Unverified
parent d8878bc313
commit 3991a8a2ac
2 changed files with 75 additions and 32 deletions
+37
View File
@@ -0,0 +1,37 @@
# 协议更新记录
## V1.2 更新(2026-05-25
基于 `docs/线激光视觉设备与运动控制器 Modbus RTU 通信协议_V1.2.docx` 更新 `docs/proto.md`
### 寄存器映射
- 当前6轴位姿由 `0xD00A ~ 0xD015` 调整为 `0xD00A ~ 0xD017`,寄存器数量由 12 增加到 14。
- 目标示教位姿由 `0xD016 ~ 0xD021` 调整为 `0xD020 ~ 0xD02D`,寄存器数量由 12 增加到 14。
- 6轴全量纠偏量由 `0xD022 ~ 0xD02D` 调整为 `0xD036 ~ 0xD043`,寄存器数量由 12 增加到 14。
- 复合数据块的数据类型按 V1.2 原文标记为 `uint32``float`
- 新增预留扩展区:`0xD018 ~ 0xD01F``0xD02E ~ 0xD035``0xD044 ~ 0xD04B`
- 标定参数预留区由 `0xD02E ~ 0xD04D` 调整为 `0xD04C ~ 0xD06B`
### 数据格式
- 当前位姿、目标示教位姿、6轴纠偏量的数据格式由 6 个 `float` 调整为 `uint32` 时间戳 + 6 个 `float`
- 三类6轴数据的排布顺序由 `X→Y→Z→A→B→C` 调整为 `TS→X→Y→Z→A→B→C`
- 时间戳单位为 `ms`,占用 2 个连续保持寄存器。
- 第 5 节总述删除旧版末尾补充说明“解析规则一致。”。
### 指令示例
- 读当前6轴位姿示例由读取 12 个寄存器调整为读取 14 个寄存器:`08 03 D0 0A 00 0E DC 55`
- 写6轴全量纠偏量示例调整为从 `0xD036` 写入 14 个寄存器,并增加 `ts=1000` 示例数据。
- V1.2 原文中的写6轴全量纠偏量示例帧使用从站地址 `01`,而协议核心规则仍声明从站地址固定为 `0x08``docs/proto.md` 已按 V1.2 原文保留该示例。
### 通信时序
- 在线全轴跟踪模式通信行为规范中的固定轮询周期由 `20ms` 调整为 `50ms`V1.2 原文模式表仍保留 `20ms` 描述,`docs/proto.md` 按 V1.2 原文分别保留。
- 视觉设备独立线程轮询周期由 `20ms` 调整为 `50ms`
- 单帧通信超时由 `50ms` 调整为 `150ms`
### 状态机规则
- 模式状态机第 3 条删除旧版补充说明“控制器内部处理”,调整为 V1.2 原文“标定完成自动回待机”。
+38 -32
View File
@@ -35,10 +35,13 @@
| 0xD000 | 1 | ushort | 视觉→控制器 | 模式命令字 | 控制控制器切换工作模式,取值范围0~5(详见4.1) |
| 0xD001 | 1 | ushort | 控制器→视觉 | 设备状态字 | 反馈控制器当前运行状态,取值范围0~6(详见4.2) |
| 0xD002 ~ 0xD009 | 8 | 保留 | — | 预留扩展寄存器 | 暂不使用,用于后期功能扩展(如新增参数配置) |
| 0xD00A | 12 | float | 控制器→视觉 | 当前6轴位姿 | 反馈控制器当前实际位置(X/Y/Z)和姿态(A/B/C),具体排布详见5.1 |
| 0xD016 | 12 | float | 视觉→控制器 | 目标示教位姿 | 激光扫描后下发的标准轨迹位姿(X/Y/Z/A/B/C),具体排布详见5.2 |
| 0xD022 | 12 | float | 视觉→控制器 | 6轴全量纠偏量 | 实时下发的位置偏差(ΔX/ΔY/ΔZ)和姿态偏差(ΔA/ΔB/ΔC),具体排布详见5.3 |
| 0xD02E ~ 0xD04D | 32 | float | — | 标定参数预留 | 用于存储手眼标定相关参数,后期可扩展使用 |
| 0xD00A | 14 | uint32<br>float | 控制器→视觉 | 4字节无符号整型时间戳+当前6轴位姿 | 反馈控制器当前实际位置(X/Y/Z)和姿态(A/B/C),具体排布详见5.1 |
| 0xD018 ~ 0xD01F | 8 | 保留 | — | 预留扩展寄存器 | 暂不使用,用于后期功能扩展 |
| 0xD020 | 14 | uint32<br>float | 视觉→控制器 | 4字节无符号整型时间戳+目标示教位姿 | 激光扫描后下发的标准轨迹位姿(X/Y/Z/A/B/C),具体排布详见5.2 |
| 0xD02E ~ 0xD035 | 8 | 保留 | — | 预留扩展寄存器 | 暂不使用,用于后期功能扩展 |
| 0xD036 | 14 | uint32<br>float | 视觉→控制器 | 4字节无符号整型时间戳+6轴全量纠偏量 | 实时下发的位置偏差(ΔX/ΔY/ΔZ)和姿态偏差(ΔA/ΔB/ΔC),具体排布详见5.3 |
| 0xD044 ~ 0xD04B | 8 | 保留 | — | 预留扩展寄存器 | 暂不使用,用于后期功能扩展 |
| 0xD04C ~ 0xD06B | 32 | float | — | 标定参数预留 | 用于存储手眼标定相关参数,后期可扩展使用 |
## 4. 模式命令字与设备状态字详细定义
@@ -71,46 +74,49 @@
## 5. 6轴数据(位置/姿态/纠偏)详细格式
当前位姿、目标示教位姿、6轴纠偏量均为6个32位float,排布顺序统一(X→Y→Z→A→B→C),每个float占用2个连续寄存器,大端模式存储,解析规则一致
当前位姿、目标示教位姿、6轴纠偏量数据均由1个32位uint(时间戳)与6个32位float构成,排布顺序统一(TS→X→Y→Z→A→B→C),每个uint或float占用2个连续寄存器,大端模式存储。
### 5.1 当前6轴位姿(地址:0xD00A ~ 0xD015,控制器→视觉)
### 5.1 当前6轴位姿(地址:0xD00A ~ 0xD017,控制器→视觉)
反馈控制器当前实际的位置和姿态,视觉设备读取后用于标定计算、跟踪偏差分析、状态监控。
| 寄存器地址范围 | 数据类型 | 对应物理量 | 单位 | 说明 |
| --------------- | -------- | ---------- | ----- | ----------------------------------- |
| 0xD00A ~ 0xD00B | float | X 位置 | mm | 空间X轴坐标,根据实际设备坐标系定义 |
| 0xD00C ~ 0xD00D | float | Y 位置 | mm | 空间Y轴坐标 |
| 0xD00E ~ 0xD00F | float | Z 位置 | mm | 空间Z轴坐标(垂直方向) |
| 0xD010 ~ 0xD011 | float | A 姿态角 | °(度) | 绕X轴翻滚角 |
| 0xD012 ~ 0xD013 | float | B 姿态角 | °(度) | 绕Y轴俯仰角 |
| 0xD014 ~ 0xD015 | float | C 姿态角 | °(度) | 绕Z轴偏航角 |
| 0xD00A ~ 0xD00B | uint32 | 时间戳 | ms | 指示当前数据时间 |
| 0xD00C ~ 0xD00D | float | X 位置 | mm | 空间X轴坐标,根据实际设备坐标系定义 |
| 0xD00E ~ 0xD00F | float | Y 位置 | mm | 空间Y轴坐标 |
| 0xD010 ~ 0xD011 | float | Z 位置 | mm | 空间Z轴坐标(垂直方向) |
| 0xD012 ~ 0xD013 | float | A 姿态角 | °(度) | 绕X轴翻滚角 |
| 0xD014 ~ 0xD015 | float | B 姿态角 | °(度) | 绕Y轴俯仰角 |
| 0xD016 ~ 0xD017 | float | C 姿态角 | °(度) | 绕Z轴偏航角 |
### 5.2 目标示教位姿(地址:0xD016 ~ 0xD021,视觉→控制器)
### 5.2 目标示教位姿(地址:0xD020 ~ 0xD02D,视觉→控制器)
激光扫描工件后,拟合生成的标准轨迹位姿,下发给控制器后,控制器跟随走位并保存轨迹,排布与当前位姿完全一致。
| 寄存器地址范围 | 数据类型 | 对应物理量 | 单位 | 说明 |
| --------------- | -------- | ------------ | ----- | --------------------- |
| 0xD016 ~ 0xD017 | float | X 目标位置 | mm | 示教轨迹的X轴坐标 |
| 0xD018 ~ 0xD019 | float | Y 目标位置 | mm | 示教轨迹的Y轴坐标 |
| 0xD01A ~ 0xD01B | float | Z 目标位置 | mm | 示教轨迹的Z轴坐标 |
| 0xD01C ~ 0xD01D | float | A 目标姿态角 | °(度) | 示教轨迹的绕X轴翻滚角 |
| 0xD01E ~ 0xD01F | float | B 目标姿态角 | °(度) | 示教轨迹的绕Y轴俯仰角 |
| 0xD020 ~ 0xD021 | float | C 目标姿态角 | °(度) | 示教轨迹的绕Z轴偏航角 |
| 0xD020 ~ 0xD021 | uint32 | 时间戳 | ms | 指示当前数据时间 |
| 0xD022 ~ 0xD023 | float | X 目标位置 | mm | 示教轨迹的X轴坐标 |
| 0xD024 ~ 0xD025 | float | Y 目标位置 | mm | 示教轨迹的Y轴坐标 |
| 0xD026 ~ 0xD027 | float | Z 目标位置 | mm | 示教轨迹的Z轴坐标 |
| 0xD028 ~ 0xD029 | float | A 目标姿态角 | °(度) | 示教轨迹的绕X轴翻滚角 |
| 0xD02A ~ 0xD02B | float | B 目标姿态角 | °(度) | 示教轨迹的绕Y轴俯仰角 |
| 0xD02C ~ 0xD02D | float | C 目标姿态角 | °(度) | 示教轨迹的绕Z轴偏航角 |
### 5.3 6轴全量纠偏量(地址:0xD022 ~ 0xD02D,视觉→控制器)
### 5.3 6轴全量纠偏量(地址:0xD036 ~ 0xD043,视觉→控制器)
视觉设备根据当前位姿与目标轨迹的偏差,实时计算并下发纠偏数据,控制器接收后叠加到基准轨迹,实现高精度跟踪。
| 寄存器地址范围 | 数据类型 | 对应偏差量 | 单位 | 说明 |
| --------------- | -------- | ---------- | ----- | ----------------------------------------- |
| 0xD022 ~ 0xD023 | float | ΔX 偏差 | mm | X轴方向偏差,正值=正向纠偏,负值=反向纠偏 |
| 0xD024 ~ 0xD025 | float | ΔY 偏差 | mm | Y轴方向偏差 |
| 0xD026 ~ 0xD027 | float | ΔZ 偏差 | mm | Z轴方向偏差 |
| 0xD028 ~ 0xD029 | float | ΔA 偏差 | °(度) | 绕X轴姿态偏差 |
| 0xD02A ~ 0xD02B | float | ΔB 偏差 | °(度) | 绕Y轴姿态偏差 |
| 0xD02C ~ 0xD02D | float | ΔC 偏差 | °(度) | 绕Z轴姿态偏差 |
| 0xD036 ~ 0xD037 | uint32 | 时间戳 | ms | 指示当前数据时间 |
| 0xD038 ~ 0xD039 | float | ΔX 偏差 | mm | X轴方向偏差,正值=正向纠偏,负值=反向纠偏 |
| 0xD03A ~ 0xD03B | float | ΔY 偏差 | mm | Y轴方向偏差 |
| 0xD03C ~ 0xD03D | float | ΔZ 偏差 | mm | Z轴方向偏差 |
| 0xD03E ~ 0xD03F | float | ΔA 偏差 | °(度) | 绕X轴姿态偏差 |
| 0xD040 ~ 0xD041 | float | ΔB 偏差 | °(度) | 绕Y轴姿态偏差 |
| 0xD042 ~ 0xD043 | float | ΔC 偏差 | °(度) | 绕Z轴姿态偏差 |
## 6. Modbus RTU 帧格式标准
@@ -181,8 +187,8 @@
| 写模式:进入在线全轴跟踪模式(0xD000=3) | 08 10 D0 00 00 01 02 00 03 5D CC | 数据=0x0003CRC=5D CC |
| 写模式:进入轨迹批量复现模式(0xD000=4) | 08 10 D0 00 00 01 02 00 04 1C 0E | 数据=0x0004CRC=1C 0E |
| 写模式:紧急停止(0xD000=5) | 08 10 D0 00 00 01 02 00 05 DD CE | 数据=0x0005CRC= DD CE |
| 读当前6轴位姿(起始0xD00A,读12个寄存器) | 08 03 D0 0A 00 0C 5D 94 | 读X/Y/Z/A/B/C当前位姿,CRC=5D 94 |
| 写6轴全量纠偏量(起始0xD022,写12个寄存器) | 08 10 D0 22 00 0C 18 3F 80 00 00 40 00 00 00 40 40 00 00 00 00 00 00 3F 80 00 00 40 00 00 00 3D 5C | 示例数据:ΔX=1.0、ΔY=2.0、ΔZ=3.0、ΔA=0.0、ΔB=1.0、ΔC=2.0CRC=3D 5C |
| 读当前6轴位姿(起始0xD00A,读14个寄存器) | 08 03 D0 0A 00 0E DC 55 | 读X/Y/Z/A/B/C当前位姿,CRC=DC 55 |
| 写6轴全量纠偏量(起始0xD036,写14个寄存器) | 01 10 D0 36 00 0E 1C 00 00 03 E8 3F 80 00 00 40 00 00 00 40 40 00 00 00 00 00 00 3F 80 00 00 40 00 00 00 D0 72 | 示例数据:ts=1000<br>ΔX=1.0、ΔY=2.0、ΔZ=3.0、ΔA=0.0、ΔB=1.0、ΔC=2.0CRC=D0 72 |
| 读设备状态字(单独读,起始0xD001,读1个寄存器) | 08 03 D0 01 00 01 ED 93 | 单独读取当前设备状态,CRC= ED 93 |
## 8. 各模式下通信行为规范
@@ -209,7 +215,7 @@
### 8.4 在线全轴跟踪模式(3)
视觉设备以 20ms 固定周期轮询:
视觉设备以 50ms 固定周期轮询:
读取控制器当前 6 轴位姿;
@@ -235,7 +241,7 @@
- (2)急停 5 只能退回 0 待机,不能直接进入运行模式;
- (3)标定完成自动回待机;控制器内部处理。
- (3)标定完成自动回待机;
- (4)示教完成可切待机、在线跟踪、批量复现;
@@ -245,6 +251,6 @@
## 10 通信时序与稳定性要求
- (1)视觉设备独立线程轮询周期:20ms
- (1)视觉设备独立线程轮询周期:50ms
- (2)单帧通信超时:50ms,超时重发,多次超时判定通信断开;
- (2)单帧通信超时:150ms,超时重发,多次超时判定通信断开;