# 协议更新记录 ## V1.6 更新 ### 寄存器映射 - 新增 `0xD003` 运动速度寄存器,数量为 `1`,数据类型为 `ushort`,通信方向为“视觉→控制器”,用于在运动中更改移动速度。 - 原预留扩展寄存器区间由 `0xD003 ~ 0xD009`、数量 `7` 调整为 `0xD004 ~ 0xD009`、数量 `6`。 - 新增 `0xD10A ~ 0xD117` 6轴物理位姿寄存器块,数量为 `14`,通信方向为“控制器→视觉”。 ### 数据格式 - 6轴物理位姿由 `uint32` 时间戳和6个 `float` 组成,排布顺序为 `TS→X→Y→Z→A→B→C`。 - 物理位置使用基坐标系,XYZ单位为 `mm`,ABC单位为度,时间戳单位为 `ms`。 - 运动速度的单位、取值范围和缩放方式在 V1.6 文档中未定义,实现前需与控制器侧确认。 ## V1.4 更新(2026-06-22) ### 寄存器映射 - 新增 `0xD002` 可用缓存数量寄存器,数量为 `1`,数据类型为 `ushort`,通信方向为“控制器→视觉”。 - 可用缓存数量用于反馈控制器当前可用缓存数量;当数量为 `0` 时,控制器不再接收目标位姿。 - 写入 `0xD020` 目标示教位姿前,必须确保 `0xD002` 可用缓存数量大于 `0`。 - 原预留扩展寄存器区间由 `0xD002 ~ 0xD009`、数量 `8` 调整为 `0xD003 ~ 0xD009`、数量 `7`。 ## V1.3 更新(2026-06-18) ### 模式命令字 - 第 4.1 节模式命令字取值范围由 `0~5` 调整为 `0~4`。 - 模式 `0` 由“待机复位模式”调整为“手动示教模式”。 - 模式 `0` 的主辅角色由“空闲态”调整为“控制器完全主导”。 - 模式 `0` 的核心功能调整为“视觉仅监控状态,不下发任何控制指令”,适用场景调整为“上电初始”。 - 在线全轴跟踪模式表中的轮询周期由 `20ms` 调整为 `50ms`。 - 模式定义表删除模式 `5`“紧急停止模式”;但 V1.3 原文地址映射表仍描述模式命令字取值范围 `0~5`,常用指令帧示例也仍保留 `0xD000=0`“进入待机复位模式”和 `0xD000=5`“紧急停止”,`docs/proto.md` 已按原文保留这些内容。 ### 设备状态字 - 状态 `0` 由“待机就绪 / 0(待机复位)”调整为“空闲 / 任意模式”。 - 状态 `6` 的对应模式由 `5(急停)` 调整为“任意模式”。 - 状态 `6` 的说明删除“仅可切换至待机模式”,保留为“紧急停止指令已执行,控制器锁定所有运动”。 ### 各模式通信行为 - 第 8.1 节由“待机复位模式(0)”调整为“手动示教模式(0)”。 - 模式 `0` 下视觉设备行为由“只读取状态字与当前位姿,不下发目标位姿、不下发纠偏量”调整为“只读取工作模式和状态字段,坐标无需读取”。 - 删除独立的第 8.6 节“紧急停止模式(5)”,改为在第 8.5 节后以“注意”形式描述急停触发后的通信行为。 ### 状态机规则 - 删除“任意模式可随时切换至 0 待机、5 急停”。 - 删除“急停 5 只能退回 0 待机,不能直接进入运行模式”。 - “标定完成自动回待机”调整为“标定完成自动回空闲状态”。 - “示教完成可切待机、在线跟踪、批量复现”调整为“示教完成可切空闲、在线跟踪、批量复现”。 - 状态机规则序号由 6 条调整为 4 条。 ### 代码适配要点 - 普通模式切换按第 4.1 节限定为 `0~4`,急停值 `5` 仅作为专用急停写入命令保留。 - 手动示教模式下轮询只读取模式命令字和设备状态字,不读取当前位姿寄存器。 - 在线全轴跟踪模式和轨迹批量复现模式均允许由上层纠偏策略写入 6 轴纠偏量。 ## V1.2 更新(2026-05-25) ### 寄存器映射 - 当前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 原文“标定完成自动回待机”。