[汇川] 轴控状态机制Axis.nAxisState,standstill可以跳转任意状态

[复制链接]
查看109 | 回复0 | 2024-11-14 07:22:03 | 显示全部楼层 |阅读模式
>

AM600 符合PLCopen 规范,在运动控制系统中,将轴的运行状态分成若干个逻辑状态,而每个逻辑状态直接的转移,需要特定的条件、或指定的MC 运控指令。这样划分处理的好处是便于轴按运动模式分类控制,轴在一个时候只能处于一种逻辑状态,而逻辑状态的转移需要按规则进行,不会因不同MC 的误触发而带来运行的混乱。

轴数据结构变量(Axis.nAxisState) 来指示轴的当前运行状态,该变量 Axis.nAxisState 为枚举型变量,共有如下8 种可能状态:

0:Power_off(Disabled):轴未上电使能,或未使能,需执行MC_Power 指令
1:Errorstop;——————- 先执行MC_Reset/MC_Power 指令
2:Stopping;——————– 等待停机操作完成
3:Standstill;——————- 轴已停止运行,脱离同步
4:Discrete_Motion;———  轴处于离散运行状态
5:Continuous_Motion;—–  轴处于连续运行中
6:Synchronized_Motion;— 轴处于同步运行中
7:Homing;———————-轴处于回零运行中,等待归零操作执行完成

轴状态转移图如下,从一个状态转移到另一个状态,需要运行对应的条件,如运行MC 指令,或外部出现了故障,用户无法对其状态进行强制,编程时一定要按照逻辑要求,运行相关的指令:

图中的MC 功能块可以使轴状态转移到指定的状态,由图中可以看到:
◆◆ 在轴停止状态(Standstill,即 Axis.nAxisState=3)可以转移到各种运行状态;
◆◆ 可以由多种状态转移到停止状态(Standstill,即 Axis.nAxisState=3),,
◆◆ 若伺服轴出现告警(Errorstop,即 Axis.nAxisState=1),就必需先运行 MC_Reset 指令、MC_Power 指令使轴进入Standstill 状态,才能让轴再次运行;
◆◆ 若不按上述转移图方式使用 MC 指令命令轴运动,就不会使轴响应,反而得到 MC 功能块的错误告警信息;

用户程序中,有时需要根据轴的状态,启动后续的控制逻辑,此时依据Axis.nAxisState 的判断,相比于对MC 功能块的done 信号判断,更为准确可靠。熟悉上述轴状态图的转移条件,并在编程时,注意MC 指令的使用逻辑和顺序,才能编写出稳定可靠的应用程序。


我一般在编程的时候,都会有一个全局变量,用来判断各个轴是否处于standstill状态,只有standstill状态才能切换运动模式。




免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则