网站首页 > 技术教程 正文
在运动控制系统中,将轴的运行状态分成若干个逻辑状态,而每个逻辑状态之间的转换,需要特定的条件、或指定的MC 运控指令来触发。这种划分策略极大地提升了系统的可控性和稳定性,在任何给定时刻,轴都只能处于单一的逻辑状态,并且状态的转换必须遵循预设的规则,从而避免了因不同MC指令的误触发导致的运行混乱。
状态机枚举变量
轴数据结构变量(Axis.nAxisState) 来指示轴的当前运行状态,该变Axis.nAxisState 为枚举型变量,共有以下8 种状态:
0:Poweroff — 轴未使能,运动之前需执行MC_Power 指令给轴使能
1:Errorstop — 轴错误状态,需执行MC_Reset给轴复位
2:Stopping — 轴停止状态
3:Standstill — 轴静止状态
4:Discrete Motion — 轴处于离散运行状态
5:Continuous Motion —– 轴处于连续运行中
6:Synchronized Motion — 轴处于同步运行中
7:Homing — 轴处于回零运行中,等待归零操作执行完成
状态机转换条件
轴状态转移图如下,详细描绘了轴在不同逻辑状态间的转换过程。在这些状态转换中,每个转换都依赖于特定的条件触发,如执行特定的MC(运动控制)指令或外部故障的发生。用户无法直接强制轴的状态,这确保了系统的安全性和稳定性。在编程时,必须严格遵守这些逻辑要求,确保按照正确的顺序和条件执行相关指令,以保证轴能够按照预期在状态转移图中顺利移动。
- 轴在静止状态(Standstill,即 Axis.nAxisState=3)时,可以通过运动功能块切换到各种运行状态;
- 在Continuous_Motion、Synchronized_Motion状态时,需通过MC_Halt才能切换到Standstill状态;
- 若伺服轴出现告警(Errorstop,即 Axis.nAxisState=1),就要先运行 MC_Reset 指令,复位轴错误;
- Homing回零状态( Axis.nAxisState=7),不能被其他运动指令打断,只能被MC_Stop打断;
如果不按照上图所示的方式使用 MC 指令来命令轴进行运动,轴将不会响应,并且将收到关于 MC 功能块的错误信息。nAxisState在程序中的应用
程序中当需要确认轴是否处于空闲状态,即可以运动且没有被其他运动指令占用时,可以判断Axis.nAxisState是否等于3(Standstill状态)Axis.nAxisState等于3表明轴当前是静止的,没有执行任何运动指令。
判断轴是否可以运动(能打断其他运动指令),可以判断Axis.nAxisState>=3且Axis.nAxisState<=6 ;
在调试过程中,监控Axis.nAxisState变量是一个很有用的方法,因为它能直观地显示轴状态机的转换,帮助判断轴是否发生报警,以及轴当前处于何种运动模式(如离散、连续、同步)。
程序中,根据Axis.nAxisState来判断轴的状态,相较于仅仅依赖MC功能块的Done信号,通常更为准确可靠。因为Axis.nAxisState提供了轴当前状态的详细信息,而Done信号可能只表示上一个MC指令是否完成,而不涉及轴的实际状态。
因此,熟悉轴状态图的转移条件,并在编程时仔细考虑MC指令的使用逻辑和顺序,是编写稳定可靠应用程序的关键。这样不仅能确保轴的正确操作,还能提高整个系统的效率和安全性。
运动控制之轴状态
http://bbs.plcjs.com/forum.php?mod=viewthread&tid=496589&fromuid=17
(出处: PLC论坛-全力打造可编程控制器专业技术论坛)
猜你喜欢
- 2024-12-20 UG高版本多轴联动开粗分享 ug12.0多轴编程教程
- 2024-12-20 复仇本田抢夺饭碗,雅马哈官宣AXIS Z摩托新配色
- 2024-12-20 沉浸式多用户跟踪解决方案 沉浸式操作
- 2024-12-20 读懂验光单 散光验光报告怎么看? 验光单的散光
- 2024-12-20 Nike ISPA 推出 The Link Axis:近乎完全可回收的可拆卸鞋款
- 2024-12-20 瑞信老将、亚太策略联席主管据悉辞职,将加入Axis Bank
- 2024-12-20 十四、FLUENT中2D Space设置 fluent设置inlet
- 2024-12-20 C# winform使用scottplot图表控件快速入门设置XY轴缩放
- 2024-12-20 FANUC报警!非常有用,点赞收藏吧 fanuc 2021报警
- 2024-12-20 3D打印机? 5AxisMaker制造机众筹亮相
你 发表评论:
欢迎- 最近发表
-
- Linux新手必看:几种方法帮你查看CPU核心数量
- linux基础命令之lscpu命令(linux中ls命令的用法)
- Linux lscpu 命令使用详解(linux常用ls命令)
- 如何查询 Linux 中 CPU 的数量?这几个命令要知道!
- 在linux上怎么查看cpu信息(linux如何查看cpu信息)
- 查看 CPU 的命令和磁盘 IO 的命令
- 如何在CentOS7上改变网卡名(centos怎么改网卡名字)
- 网工必备Linux网络管理命令(网工必备linux网络管理命令是什么)
- Linux 网络命令知多少(linux 网络 命令)
- Linux通过命令行连接wifi的方式(linux命令行连接无线网)
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)