PLC编程 Gear电子齿轮 学习笔记

原文:https://blog.csdn.net/qq_44415187/article/details/132183460

2023.7.25

环境:

CodeSys V3.5 PLC

MC_Basic库 -- 遵循PLCopen规则的库

相关指令:

MC_Power、MC_Reset、MC_Stop、MC_Jog(调试用)

MC_GearIn、MC_GearOut、MC_GearInPos

功能描述:

        电子齿轮模式 能够将2轴或多轴联系起来,实现精确的同步运动,从而替代传统的机械齿轮连接。我们把被跟随的轴叫主轴,把跟随的轴叫从轴。电子齿轮模式下,1个主轴能够驱动多个从轴,从轴可以跟随实轴/虚拟轴/编码器轴。

        传动比:主轴速度与从轴速度的比例。电子齿轮模式能够灵活的设置传动比,节省机械系统的安装时间。当主轴速度变化时,从轴会根据设定好的传动比自动改变速度。电子齿轮模式也能够在运动过程中修改传动比。

        离合区:当改变传动比时,Acceleration/ Deceleration/ Jerk三个参数决定了离合区,适当设置参数可实现平滑变速,如图所示,阴影区域为离合区。

使用电子齿轮,有以下几点注意:

        1.通过MC_GearIn指令,使主从轴按照一定的速率比进行运动;功能块执行时,主轴以当前运动指定的实际速度运动,从轴则以主轴的速度作参考,按照设定的参数值与主轴联动,最后速度值与主轴成比率,以这个速度匀速运动,同时InGear输出。

        2.主从轴的速率比,可以在运行中多次调用MC_GearIn进行动态修改。需要注意的是,对于实际连接的主轴,其实际速度是以当前相邻两个实际位置换算得来的,所以会出现主轴虽然未使用任何运动控制指令运转,但由于主轴系统震荡或者机械等外力导致的轴有所变化,此时耦合的从轴也会根据设定的速率运动。

        3.要取消联动,必须使用MC_GearOut 指令。需要注意的是,如果在运动过程中取消了联动,即使主轴停止了从轴也不会停止运动,从轴会以分离时的速度一直运动。直到从轴使用MC_Stop指令停止或者有其他指令接管轴。

        4.在功能块运行的同时,如果控制同一轴的其它指令启动运行,此时该指令运行会被终止,CommandAborted置位。

        5.该功能块使从轴运动于Synchronized_Motion状态。

下图是轴的状态图,状态变换示意图:

步骤:

1、搭建基础功能
2、使用电子齿轮功能块

电子齿轮功能块主要有

        MC_GearIn、MC_GearOut两个,MC_GearIn是让主从轴进入电子齿轮的关系,GearOut则是退出电子齿轮关系。

MC_GearIn

  
  
  1. GearIn(
  2. Master:= pAxis1^,
  3. Slave:= pAxis2^,
  4. Execute:= bGearInExe,
  5. ContinuousUpdate:= TRUE,
  6. RatioNumerator:= lrRatioNumerator,
  7. RatioDenominator:= lrRatioDenominator,
  8. MasterValueSource:= MasterValueSource,
  9. Acceleration:= 1000,
  10. Deceleration:= 1000,
  11. Jerk:= ,
  12. BufferMode:= ,
  13. InGear=> bGearInInGear,
  14. Busy=> bGearInInBusy,
  15. Active=> bGearInInAct,
  16. CommandAborted=> ,
  17. Error=> bGearInInErr,
  18. ErrorId=> );

 

        电子齿轮模式能够将2轴或多轴联系起来,实现精确的同步运动,从而替代传统的机械齿轮连接。我们把被跟随的轴叫主轴,把跟随的轴叫从轴。电子齿轮模式下,1个主轴能够驱动多个从轴,从轴可以跟随实轴/虚拟轴/编码器轴。

MC_GearOut

  
  
  1. GearOut(
  2. Slave:= pAxis2^,
  3. Execute:= bGearOutExe,
  4. Done=> bGearOutDone,
  5. Busy=> bGearOutBusy,
  6. Error=> bGearOutErr,
  7. ErrorId=> );

        通过MC_GearOut指令,停止主从轴的速度关联,主从轴关联解除后,Done输出。如果没有其他运动控制指令接管从轴,从轴将按照分离时的速度匀速运行。

3、操作

        GearIn设置齿轮比分子和分母,设置为跟随主轴设置值模式(跟随主轴规划值)。从轴上使能后,执行GearIn,InGear、Busy、Active这三个输出信号为True,即说明功能正常。

4、效果

        执行第3步操作后,就可以对主轴进行运动规划,而从轴就会自动按照设定的齿轮比同步运动了。

GearOut

        停止主从轴的速度关联,主从轴关联解除后,Done输出。如果没有其他运动控制指令接管从轴,从轴将按照分离时的速度匀速运行。

5、扩展
GearIn改为跟随主轴的实际值

        MC_GearIn功能块,参数MasterValueSource设置为mcActualValue,从轴就对主轴的实际速度进行齿轮比的同步。这样实际现象较明显的是,即使主轴没上使能,用手转动主轴,从轴也会按照齿轮比跟随主轴运动。

GearIn设定的加减速度

        GearIn设定的参数Acceleration、Deceleration,是用在当齿轮比改变时,从轴进行速度变换时的加减速度。而不是其他的任何加减速度。

        例如,主从轴以1/1的齿轮比进行Gear模式同步:

        1、主轴执行MoveVelocity运动,速度从0规划到20。在此期间,主轴以MoveVelocity设定的加减速度进行变化。而从轴的加减速度也按照齿轮比对主轴同步,比如这个过程主轴加速度是100,那么从轴加速度也是100。

        2、当主从轴处于同步中,这时只改变齿轮比为4/1,那么从轴就按照GearIn设置的加减速度进行变化,速度从20变化为100。用的就是GearIn设置的加减速度。

从轴运动跟随主轴的加减速

        上面说到,主轴执行MoveVelocity运动时的加减速过程中,这时齿轮比不变,那么从轴也按照该齿轮比对主轴的加减速度进行同步。如果齿轮比是2/1,当主轴在MoveVelocity的加减速度设置为100,且在加减速过程中,那么从轴的加减速就是200。如下图所示:

主轴在运行中,执行GearIn

        从轴将按照GearIn设定的加减速进行变化。

Gear同步过程中轴停止

        同步运行过程中,使用MC_Stop对轴进行停止。停止主轴,从轴也一样停止,但不会破坏Gear关系,主轴恢复运动,从轴也一样同步运动,不受影响。

        停止从轴,从轴断开与主轴的Gear关系,停止运动,主轴不受影响,继续先前的运动。下次需要Gear同步时,需要再次执行GearIn。

MC_GearInPos

        设置主从轴同步距离和齿轮比并启动电子齿轮,保证在规定的位置,主从轴达到耦合状态。说白了,GearInPos就是希望在指定的距离(位置)内完成主从轴的同步

        指定开始同步的主轴位置、从轴位置、主轴开始同步距离,并以此来完成切入电子齿轮动作。


  
  
  1. GearInPos(
  2. Master:= pAxis1^,
  3. Slave:= pAxis2^,
  4. Execute:= bGearInPosExe,
  5. RatioNumerator:= lrRatioNumerator,
  6. RatioDenominator:= lrRatioDenominator,
  7. MasterValueSource:= MasterValueSource,
  8. MasterSyncPosition:= MasterSyncEndPos,
  9. SlaveSyncPosition:= SlaveSyncDisct,
  10. MasterStartDistance:= MasterSyncDisct,
  11. BufferMode:= ,
  12. AvoidReversal:= FALSE,
  13. StartSync=> bGearInPosStartSync,
  14. InSync=> bGearInPosInSync,
  15. Busy=> bGearInPosBusy,
  16. Active=> bGearInPosAct,
  17. CommandAborted=> ,
  18. Error=> bGearInPosErr,
  19. ErrorId=> );

以下是3S的库的接口说明:

主要参数

        GearInPos和GearIn主要区别,是GearInPos增加了距离控制,GearInPos希望在指定的距离(位置)内完成主从轴的同步。二者均有齿轮比分子分母,GearInPos以特有的3个参数来控制同步:

        MasterSyncPosition -- 主轴结束位置,在这个位置之前完成同步

        MasterStartDistance -- 主轴经过的距离,在这个距离间进行同步

        SlaveSyncPosition -- 从轴结束位置,在这个位置之前完成同步

效果

可参考下面图表,是用本次程序测量出来的。

另外参考3S官方的一些说明如下:

        开始动作后,Slave(从轴)以 Master(主轴)速度乘以齿轮比得到的速度为目标速度,进行加减速动作。

        该功能块同步开始到同步结束的过程本质为同步区间内从轴跟随主轴的一个电子凸轮、此时根据主轴范围(MasterSyncPosition- MasterStartDistance,MasterSyncPosition),从轴范围(当前位置,SlaveSyncPosition),指令会根据设置齿轮比以及上述三个参数自动设计一条凸轮曲线,执行同步时从轴跟随主轴完成凸轮动作。

        注意如果主从轴工作在线性模式需保证需保证上述几个参数设置合理否则齿轮动作无法正确进行,故而建议使用该指令时主从轴工作在周期模式。

        如:主从轴线性工作模式都向正向运动,如果执行指令时主轴位置>MasterSyncPositionMasterStartDistance,或者从轴位置 > SlaveSyncPosition 则无法切入电子齿轮动作。

不同情况时序图

        下面给出了几种不同参数下的样例时序图:

        当主轴工作在周期模式(360 循环)、从轴工作在周期模式(360 循环):

        1、MasterSyncPosition=280、MasterStartDistance=50、SlaveSyncPosition=60,主轴速度为 50、AvoidReversal=FALSE

        2、MasterSyncPosition=300、MasterStartDistance=370、SlaveSyncPosition=60,主轴速度为 50、AvoidReversal=FALSE

        3、MasterSyncPosition=300、MasterStartDistance=50、SlaveSyncPosition=60,主轴速度为 50、AvoidReversal=FALSE,(从轴起始位置大于 60)

        同步完成(InSync 为 TRUE)的同时达到目标速度,此后从轴移动量 = 主轴移动量 * RatioNumerator/ RatioDenominator。

        对于 AvoidReversal:如果从轴是模态轴并且主轴速度 ( 齿轮比的倍数关系 ) 不是相对于从轴的速度关系,那么 MC_GearInPos 会尝试着避免从轴的反转。它试图通过增加 5 个从轴周期“拉伸”从轴的运动。如果这个“拉伸”无效,那么会有错误出现并且从轴错误停止。如果从轴速度关联主轴速度 ( 是齿轮比的倍数 ),那么会有错误出现,并且轴错误停止。如果从轴是线性轴模式轴,那么一个错误会产生在 Execute 输入上升沿处理时。

时序图

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值