模式、会话与停止行为
本参考供控制软件开发人员参考。共享控制器处理重放、远程操作和调整的会话设置;不要同时运行第二个手动设置序列。
重置选择传统模式。 Extension 配置驻留在 RAM 中,不会自动从 EEPROM 恢复。在新的开始之前,软件必须检查功能并支持协议 9.0。
传统模式
传统模式支持标准STS寄存器接口,包括电机功率、操作模式、位置和速度命令以及状态读数。现有的STS软件可以使用寄存器 0 – 86 ,而无需启用扩展。
在传统位置模式下,无需新位置命令即可启用电机电源,即使在保存的限制之外,也能保持测量位置。它不会重播旧目标或将轴移动到最近的限制。新位置命令仍受限于已保存的限制。
该扩展使用自己的运动和控制设置。不应在两种模式之间直接复制增益值,因为它们的比例不同。对标准命令的支持并不能保证所有伺服型号具有相同的物理行为。
启动和停止扩展模式
以下序列使用稍后记录的寄存器编号和命令。选择准备会议;启用电机电源启动控制。
- 找到连接的伺服器 ID 并读取每个伺服器的功能。检查
ARMC和版本9.0。重置或更改固件后重复此检查。 - 通过将传统扭矩使能寄存器 40 设置为
0来关闭电机电源。完成任何现有会话并应用任何永久旧设置。 - 写入并读回完整配置 (
0xA0),包括速度前馈设置和重力转换速率。 - 将
mode=1和新的非零会话号写入0xB8(总共 3 字节)。这样就选择了扩展模式,为下次启动做准备;电源仍然关闭。 - 将寄存器 40 设置为
1。固件检查传感器、保护状态、配置和保存的位置限制,然后捕获测量的位置作为初始保持目标。命令计数器、I 校正和重力补偿从零开始。读取0xC1并等待正确的会话、当前可用的测量、电机驱动器启用和输出准备就绪。 - 发送目标和任何重力更新。读取反馈以检查哪些命令被接受以及伺服器遵循这些命令的紧密程度。
- 伺服系统完成最后一次移动并保持目的地,直到给出新的目标。将寄存器 40 设置为
0以关闭电机电源并结束会话。要返回传统模式,请保持电源关闭并将mode=0, session=0写入0xB8。
如果启动失败,寄存器 40 返回 0 。仅其正常写入确认并不能确认启动成功:检查寄存器回读和反馈。每次启动尝试都会消耗准备好的会话。启动失败、扭矩关闭或保护关闭后,请纠正原因并使用新的会话号写入 0xB8,然后再次启用扭矩。在控制运行时重复扭矩启用可保留其目标、补偿和命令计数器。
移动或调整动力电机的命令需要准备好硬件、没有报告的故障,并且传感器读数不超过 2 ms 旧值。控制器通常每 1 ms 更新一次,接受的间隔最大为 2 ms。较长的间隙会导致电机输出被禁用。
使用扩展时,避免对操作模式寄存器 33 或运动寄存器 41 – 47 进行传统写入:它们会关闭电机电源并离开扩展模式。保存永久设置也会结束扩展控制。将寄存器 40 设置为 0 使扩展模式保持选中状态,为另一个会话设置做好准备。
如果主机命令停止到达
伺服系统完成最后接受的移动并保持该目的地。重力补偿继续接近其最后请求的值并保持在那里。不需要重复消息来保持会话活动,并且主机通信丢失本身不会改变目标或关闭电机电源。
要更改伺服系统的位置,请发送另一个目标。要释放电机,请将扭矩启用设置为零。传感器新鲜度检查、电机保护和固件看门狗在移动和保持时保持活动状态。
区分三种计时机制
| 机制 | 它检查什么 |
|---|---|
| 固件传感器新鲜度 | 可用的本地测量;供电控制命令要求读数不早于 2 ms |
| 主机检查 | 框架/反馈年龄和重力期限;违规会触发适用的清理尝试 |
| 缺少总线消息 | 本身不是清除保持或最后一个重力请求的固件超时 |
主机命令间隔不是舵机1 ms控制间隔。主机停止运行后,舵机仍能继续接受的运动。
刀具停止行为
| 工具/事件 | 预期行动 |
|---|---|
| Extension 重播:正常完成或Ctrl+C | 保留最后一个目标并动力保持;配置重力后,维护剩余运动并确认最终补偿 |
| 远程操作:正常完成或Ctrl+C | 停止发出新目标并保持动力保持;完成等待取决于是否配置了重力 |
| 调优:正常完成 | 恢复配置的基线并保留保留 |
| 调整:批处理期间按 Ctrl+C | 中断并尝试关闭扭矩 |
| 旧版重播:正常完成 | 保持最后一个姿势 |
| 旧版重播:Ctrl+C 或失败 | 尝试关闭扭矩 |
| 记录器:成功完成 | 让选定的电机不通电 |
| 关闭查看器 | 不影响硬件控制 |
| 终止进程或断开总线 | 清理可能永远不会到来;固件可以保留最后的目标和重力 |
配置重力模型并准备好电机后,共享控制器完成服务剩余运动和重力,等待 200 毫秒的休息和 30 秒的完成超时,并确认最终补偿。休息意味着空闲规划器和每个测量位置在 200 毫秒内保持在一个计数范围内;它没有建立零目标误差。
模型错误、更新被拒绝、反馈过时、所有权丢失、警报和验证温度等于或高于 60 °C 会触发尝试验证扭矩关闭。一个例外是在已建立的保持期间错过了重力截止时间,当两次最新检查确认同一会话中的静止电机健康时。运行仍然失败并显示 holdRetained: true,并且不会自动恢复。
如果没有重力模型,共享控制器不会执行最后的休息等待。命名姿势重播通常会在其配置的容差范围内等待每个目的地,但 Ctrl+C 可以中断该等待。因此,当电机继续朝最后一个目标前进时,重播或远程操作可以退出。
Ctrl+C 不是硬件紧急停止。完成和扭矩释放取决于工作通讯;安装必须提供安全的机械状态。

