PLCOpen运动控制指令MC_MoveVelocity

MC_MoveVelocity()

在这里插入图片描述

该指令控制轴以指定的速度和指定的方向持续运行,运动过程中可以使用MC_Stop指令或者MC_Halt指令停止轴的运动。

  • 使用该指令控制轴运行时,必须先使用MC_Power指令对轴进行使能
  • 使用该功能块控制轴的运动是一个加速到匀速的过程,一旦轴达到了Velocity指定的速度(加速过程已经结束),这个功能块的InVelocity输出引脚就会变为TRUE,此时功能块就已经执行完毕了,轴会一直以Velocity指定的速度一直运行,但是这个功能块不会再去监控轴的运动过程了(因为一旦轴的速度达到Velocity指定的速度,这个功能块的使命就完成了)
  • 前面说使用MC_MoveVelocity指令控制轴的运动过程是一个加速到匀速的过程,那么在加速阶段如果被其他指令打断的话,例如使用了MC_Stop指令停止了轴的运动,那么对于MC_MoveVelocity功能块来说,相当于没有执行完(因为轴没有达到Velocity指定的速度就被终止运行了),在轴没有达到Velocity指定的运行速度的过程中,MC_MoveVelocity会一直监控轴的运行(因为它得确保完成自己的使命:让轴达到Velocity指定的运行速度,但是需要程序每周期都能扫描到这个功能块),这时CommandAborted引脚就会置TRUE,标示功能块的执行过程被打断了。或者有其他错误发生的话,那么Error就会置TRUE且ErrorID会指示对应的错误代码。
    但是!如果你的程序每个周期都在扫描执行这个功能块的实例,那么即使轴已经达到了匀速的状态,如果有其他运动指令打断的话,例如MC_Halt()指令,那么功能块的Invelocity引脚也会变为FALSE状态,但是变为FALSE状态的前提是功能块的Execute是TRUE状态。
  • 此指令可以应用在已经耦合到主轴的从轴上,如果从轴的NC-parameters选项下的此项为TRUE的话,那么对从轴使用此指令可以导致从轴从主轴上解耦,解耦完后从轴就执行这个指令。
    -

Invelocity与Override的关系

Override(类型是LREAL,取值范围0.0-100.0)用来设置指令速度的比例,该值在MC_Power指令中进行设置,由于MC_Power需要在轴运行过程中一直保持为TRUE的状态,所以这个override是可以动态修改的,本周期的修改在下一个程序扫描周期生效
在这里插入图片描述
如果MC_MoveVelocity指令已经让轴运行到了指定的速度,此时MC_MoveVelocity的输出Invelocity和Busy(如果此时MC_MoveVelocity的Enable还为TRUE的话)就会为TRUE,如果此时修改了MC_Power指令中的Override值,比如修改为了50.0,那么MC_MoveVelocity指令的Invelocity和Busy就会变为FALSE,同时CommandAborted输出会变为TRUE。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值