学习随笔#6 功能块MC_ExtSetPointGenFeed的用法

在之前的学习随笔中,我介绍了功能块FB_CTRL_SERVO_MOTOR_OUT的用法,但是很遗憾,我没有找到向电机输出脉冲信号bOutBitPos和bOutBitNeg的途径。因为在通过NC模块控制电机时需要使用轴变量Axis_Ref但我暂时没有找到上述功能块与电机输入之间的某个中继模块。在找到其他输出途径之前,这条路暂时走不通。

注:在液压库中有一个功能块MC_AxUtiStandardInit_BkPlcMc,其中似乎有脉冲输出的关键字,今后可以在Tc_Mc或Tc_Mc2中寻找类似功能块,但不要再对液压库中的块做过多探究,液压轴的变量Axis_Ref_BkPlcMc与电磁伺服轴变量Axis_Ref不同,不能链接到NC模块中。

其实在TwinCAT的Tc_Mc和Tc_Mc2中就包含能够实现我们要求的功能块:MC_ExtSetPointGenFeed。它是一个外部设定值的输入模块,可以通过它让轴走我们自行设计的速度曲线。它长这个样子:
功能块
在设置输入时,我们只需要将时间的位置函数输入即可,如一个五次多项式: S = 0.1152 ∗ t 5 − 1.44 ∗ t 4 + 4.8 ∗ t 3 S=0.1152 * t ^ 5 - 1.44 * t ^ 4 + 4.8 * t ^ 3 S=0.1152t51.44t4+4.8t3,
值得注意的是,当输入的目标位置确定后,速度和加速度都随之确定,此时再输入其他速度加速度对位移没有影响,可输入空变量或0或任意数字。此功能块严格按时间变化。另外,direction输入端有三个输入选项:-1、0、1。其中0代表 stand still,即静止不动,此时无论position是否有输入,电机均保持静止。-1与1在infosys的描述中分别代表电机的反、正方向,但在实际应用中我并未发现它们的不同,电机均跟随我输入的目标曲线运动,与direction的输入值无关。
在上述输入下,轴的位移、加速度、速度如下图:在这里插入图片描述同时,在使用此功能块时,要先启动MC_ExtSetPointGenEnable,这是允许轴接收外部设定值的功能块。MC_ExtSetPointGenDisable是关闭接收外部设定值功能的功能块。
虽然在仿真中我们看到的曲线非常平滑,但在实际应用中电机可能仍存在颤动现象,这可能是由于NC周期太长造成的,可将NC周期调为1ms或更小,但不要小于plc周期。

  • 7
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值