PLCopen运动控制功能块
PLCopen组织努力实现这个标准化。PLCopen组织成立于1992年,在开发、安装、维护中按照IEC61131编程环境通过不同平台协调工业控制市场。现在的主题包括运动控制、安全功能、XML数据交换和评价标准。PLCopen也持续促进这种标准在世界上的使用和培训,因为世界范围内的接受对它的开放的、独立的目标非常重要。为了创建标准运动控制规范,一套可重复使用的独立于硬件的控制组件已基于IEC61131功能块定义。根据这个标准,能重复使用应用软件。甚至多平台也是可能的。同时,也降低了培训和支持成本。实施新的开发更容易,从而带来更短的上市时间。在定义他们的运动控制功能块时,PLCopen特定任务要实现下列目标:
·容易编程、安装和维护的简单设计;
·创建多个功能块的效率;
·遵守著名的IEC 61131语言标准的一致协议;
·允许硬件独立实施的广泛的适应性;
·这些功能块和将来扩展的柔性;
·大多数运动控制应用的足够覆盖率。用允许单轴运动和同步多轴运动的一套基本的功能块实现这些目标。状态机在机器的顺序中描述单轴的行为。
0:Power_off(Disabled):轴未上电使能,或未使能,需执行MC_Power 指令
2:Stopping;——————– 等待停机操作完成
3:Standstill;——————- 轴已停止运行,脱离同步
4:Discrete_Motion;——— 轴处于离散运行状态
5:Continuous_Motion;—– 轴处于连续运行中
6:Synchronized_Motion;— 轴处于同步运行中
7:Homing;———————- 轴处于回零运行中,等待归零操作执行完成
图中的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 指令的使用逻辑和顺序,才能编写出稳定可靠的应用程序。
MC_Halt
在MC_MoveVelocity模式下,用MC_Halt停止其轴,当前轴的状态由
ContinuousMotion(当前转速)—》DiscreteMotion(速度不为0)—》Standstill(速度为0)。
MC_Stop
在MC_MoveVelocity模式下,用MC_Stop停止其轴,当前轴的状态由
ContinuousMotion—》Stopping—》StandStill(速度为0)
MC_Reset
当轴出错时,执行MC_Reset可清除轴错误,但不会掉使能。
执行复位功能块,也有可能报错;
当轴报错且错误代码为34时,很有可能是MC_Stop的Execute一直为TRUE,此错误不需要用MC_Reset命令清除。当取消MC_Stop的输入端Execute为FALSE后,就可以执行其他功能块。
MC_Power
在bRegulatorOn为TRUE且bDriveStart为TRUE时,给Enable一个上升沿,MC_Power的输出Status就为TRUE。上使能成功之后,即使修改输入端Enable为FALSE,其输出端Status仍然为TRUE。
MC_MoveVelocity
每次要更新轴的设定速度时,需要给MC_MoveVelocity输入端的Execute一个上升沿,设定的速度值才会被更新到轴状态中。
MC_GearIn
同MC_MoveVelocity,每次更新电子齿轮比并发挥作用,需要给MC_GearIn输入端Execute一个上升沿,电子齿轮比才会起作用。
MC_GearOut
脱离齿合后,轴以脱离时的速度继续转动。
{{item.nickname}}
{{key+1}}楼{{item.content}}
{{item2.nickname}}
{{item2.content}}