合信论坛

快捷导航
查看: 7821|回复: 0

Axis.nAxisState轴状态机详解

[复制链接]

10

主题

14

帖子

170

积分

注册会员

Rank: 2

积分
170
发表于 2020-3-29 20:27:18 | 显示全部楼层 |阅读模式
本帖最后由 chenxiaochong 于 2020-3-29 20:51 编辑

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

轴数据结构AXIS_REF_SM3中,nAxisState来指示轴的当前运行状态,该变量 Axis.nAxisState 为枚举型变量,共有如下8 种可能状态:
0:Power_off(Disabled):轴未上电使能,或未使能
1:Errorstop;——————- 轴处于错误状态
2:Stopping;——————– 轴被MC_STOP指令锁定在停止模式,不能被其他指令打断
3:Standstill;——————- 轴已停止运行,脱离同步
4:Discrete_Motion;——— 轴处于离散运行状态
5:Continuous_Motion;—– 轴处于连续运行中
6:Synchronized_Motion;— 轴处于同步运行中
7:Homing;———————- 轴处于回零运行中,等待归零操作执行完成

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

图中的MC 功能块可以使轴状态转移到指定的状态,由图中可以看到:

◆◆ 在轴Standstill状态(即 Axis.nAxisState=3)可以转移到所有其他的状态;
◆◆ Continuous_Motion、Synchronized_Motion不能直接转移到Standstill,必须通过MC_HALT才能转移到Standstill(即 Axis.nAxisState=3);
◆◆ 若伺服轴出现告警(Errorstop,即 Axis.nAxisState=1),就必需先运行 MC_Reset 指令、MC_Power 指令使轴进入Standstill 状态,才能让轴再次运行;
◆◆ homing状态( Axis.nAxisState=7)不能被其他运动指令打断,只能被MC_STOP打断;
◆◆ 若不按上述转移图方式使用 MC 指令命令轴运动,就不会使轴响应,反而得到 MC 功能块的错误告警信息;

Axis.nAxisState在编程中的应用:
用户程序中,有时需要根据轴的状态,来判断轴是否准备好可以运动。
判断轴处于空闲状态(可以运动且没有其他运动指令占用),可以判断Axis.nAxisState是否等于3(Standstill状态);
判断轴是否可以运动(能打断其他运动指令),可以判断Axis.nAxisState>=3且Axis.nAxisState<=6 ;

Axis.nAxisState在调试中的应用:
在调试中通过在监视表或者Trace中监控Axis.nAxisState变量,能很直观的看出轴状态机的转换,判断轴是否报警,以及轴目前处于何种运动状态(离散、连续、同步)




您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

客服热线
400-700-4858 周一至周五:09:00 - 18:00
深圳市南山区打石一路深圳国际创新谷6栋A座9层

深圳市合信自动化技术有限公司(简称“合信技术”)成立于2003年,高新技术企业,专注于工业自动化产品的研发、生产、销售和技术服务,依靠高质量、高性能的自动化控制产品与方案为客户创造最大价值,立志于成为全球领先的工业自动化解决方案供应商。

Archiver|手机版|小黑屋|COTRUST Inc. ( 粤ICP备13051915号 )

GMT+8, 2024-4-18 13:37 , Processed in 0.071226 second(s), 23 queries .

快速回复 返回顶部 返回列表