3. 位置外部设定值发生器,位置突变产生的原因及处理方法

一、外部位置设定值发生器的工作原理

       通常TwinCAT NC 的设定位置(SetPosition)、设定速度(SetVelocity)、设定加速度(SetAcceleration)是由NC 信号发生器(即Setpoint Generator) 产生的,如下图所示:

       根据实际项目应用的需求,可以采用位置外部设定值发生器(External set value generation)取代NC 信号发生器(即Setpoint Generator)的功能,从而增加TwinCAT 轴的灵活性。

       使用外部设定值发生器需要三个步骤:启用、位置给定、停用。依次由功能块MC_Ext-SetPointGenEnableMC_ExtSetPointGenFeedMC_ExtSetPointGenDisableTc2_MC2库)实现。

二、位置突变产生的原因及处理方法

       我们在实际应用位置外部设定值发生器( External set value generation)功能的过程中,有个很重要的注意事项就是:

       位置外部设定值发生器( External set value generation)中,会自动保留上一次执行外部设定值发生器的最后一次设定值,且不会因为MC_ExtSetPointGenDisable功能块的执行而消除。

       因此,在程序执行流程中,若不进行适当处理,则当我们再次启用和执行位置外部设定值发生器功能时,就很可能会在起始执行时产生大幅度的位置(SetPos)曲线毛刺突变,如下图所示:

       针对上述位置外部设定值发生器数据“残留”而产生的异动情况,建议的处理方式是:

       可以在使用功能块MC_Ext-SetPointGenEnable启用位置外部设定值发生器功能前,先使用功能块MC_ExtSetPointGenFeed预先为位置外部设定值发生器写入一次合适的初始化给定值。这样,才能确保之后在位置外部设定值发生器的控制下,Axis轴的动作平稳正常、没有毛刺跳变。如下图所示:

2024.10.24 黄佳红 供稿