伺服电机运动控制协议CiA402
伺服电机运动控制协议CiA402
- 1. CiA402协议
- 2 问题分析:运动控制命令下发,但电机不运动
- 2.1 分析原因
- 2.2 分区与基础状态含义
- (1)Power Disabled(断电未励磁大区,电机完全无法运转)
- (2)Power Enabled(上电励磁大区,正常工作核心区,你的设备日常运行区)
- (3)Fault(故障大区,硬件报错锁定)
- 2. 标准正常使能跳转路径(对应你手册三步指令)
- 3.3 总结
1. CiA402协议
关于该协议,笔者之前也没有关注。也是遇到了具体的问题,笔者查阅资料,分析可能与笔者使用伺服电机时的状态机有关。
状态机是什么东西?其实就是电机当前所处的状态。伺服电机厂家在设置电机驱动成时,要考虑电机在什么状态,定义了电机运动控制的状态,以及各个状态之间的转化,才能有有条理地控制电机。
CiA402协议中重要的一条就是关于状态机的定义。我们看下面这张图。只有在Operation Enable下,才是驱动器正常运行的状态。
状态机各状态对应说明:
以某款电机为例:
关于驱动器的启停控制指令和状态描述主要通过状态字6040h和状态字6041h来实现。
2 问题分析:运动控制命令下发,但电机不运动
笔者,遇到“运动控制命令下发,电机不运动”的情况,该情况是在频繁测试电机运动的情况下出现,也就是对电机做疲劳性测试的时候出现。且出现上述情况时,读取电机故障码,为0x00,也就是没有发生下面这些硬件故障。
2.1 分析原因
电机初始运动时,必须下发三条命令,使得电机到Operation Enable 状态。这三条初始化命令,笔者只在电机上电后,发一次。后续的所有运动控制,只下发速度,加减速,目前位置的命令。
那么,当“运动控制命令下发,电机不运动”这种情况的可能原因是,电机跳出了Operation Enable 状态,在非Operation Enable 状态下,即使给电机发目标位置的命令,电机也不运动。且此时,无硬件故障报警。
可能存在导致电机跳出Operation Enable状态的场景:
(1 )快速停止激活(Quick Stop Active) 触发原因:外接急停 /
限位开关瞬时抖动、总线误发快速停止控制字、电压波动触发驱动器软快停;
表现:驱动器不会记故障码,只是进入快停锁定态,拒绝新定位指令;协议硬性规定:只能下发
0x06(Shutdown)退出该状态,直接发启动命令无效,是你偶发停机头号诱因。 (2).状态机卡在过渡中间态 CiA402
标准合法使能链路固定:0x06(关机复位) → 0x07(上电预备) → 0x0F(运行使能)
触发原因:高频循环启停、指令下发时序错位、单次指令丢包,状态停在0x07(Switched On)过渡态,没抵达最终可运行态;
表现:参数能正常读写,但触发运动指令无响应,无任何报警;跳过 0x06 直接重复发 0x0F,协议不允许越级跳转,无法脱困。 (3)临时
IO 信号边沿触发锁定 触发原因:限位、使能 DI 口接线松动、机械振动造成通断瞬跳,瞬时触发锁定逻辑,信号很快恢复正常;
表现:信号回弹后锁定标记不会自动清除,驱动器静默拒动,全程不生成故障记录。 (4)通讯扰动带来的状态位偏移 触发原因:485 /
总线电磁干扰,控制寄存器6040h个别 bit 被异常改写,使能标志失效; 表现:表面通讯应答正常,内部运行权限丢失,无故障码,补发
0x06 可刷新修正状态位。
驱动器能不能执行运动指令,完全由当前所处状态决定,不是收到指令就会跑。
2.2 分区与基础状态含义
(1)Power Disabled(断电未励磁大区,电机完全无法运转)
Not Ready to Switch On:刚上电自检阶段,仅初始化硬件,不能读写参数、不能运动;Switch on Disabled:通讯连通、可改参数,但电机不通电励磁,所有运动命令无效;
(2)Power Enabled(上电励磁大区,正常工作核心区,你的设备日常运行区)
Ready to Switch On:参数可配置,电机未励磁;Switched on:电机预备通电、输出电压就绪,但禁止执行运动动作,只等待最终使能;Operation Enable:唯一可以正常跑定位 / 速度指令的合法运行态;Quick Stop Activ(快速停止激活):最常见非故障锁定态,电机维持励磁,但冻结所有新运动指令,不报硬件故障;
(3)Fault(故障大区,硬件报错锁定)
Fault Reaction Active:触发故障后紧急停机,电机暂保持励磁;Fault:彻底故障锁定,必须先清除故障码才能重回正常链路。
2. 标准正常使能跳转路径(对应你手册三步指令)
Switch on Disabled(0x06指令触发跳转2)→Ready to Switch On(0x07 指令触发跳转 3) →Switched on(0x0F 指令触发跳转 4) →Operation Enable(可运动)
这条递进链路不允许越级跳转:跳过前置指令直接发最终使能命令,状态机不会响应。
3.3 总结
所以,用户手册中,三条初始化命令,每次运动控制命令下发时,不能省。这是保障伺服电机能够按照状态机控制顺序,正常影响控制命令的关键。能够在电机非预期跳出Operation Enable状态时,修正电机状态,正常影响控制命令。
############################################################################################################
