PLC编程 CAM电子凸轮 学习笔记

原文地址:https://blog.csdn.net/qq_44415187/article/details/132182757
感谢作者:
Pnceon

2023.07.21

环境:

CodeSys V3.5 PLC

MC_Basic库 – 遵循PLCOpen标准的库

相关指令:

MC_CamIn
MC_CamOut
MC_CamTableSelect

步骤:
1、建立基础功能块:

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

MC_CamTableSelect、MC_CamIn、MC_CamOut

2、新建cam表

“设备(Device)” - “PLC逻辑” - “应用(Application)” - “右键” - “添加对象” - “Cam表”
在这里插入图片描述

3、打开cam表,编辑数据

右键刚才新建的cam表,进入 “属性”,可以设置一些参数,这里改一下,主轴结束位置改为720。(也可以不改,可以用默认值)
在这里插入图片描述
在这里插入图片描述

双击打开刚刚新建好的cam表,进入cam编辑界面。cam表主要有4个子页面:cam、cam表、挺杆、挺杆表。我们进入“cam”页面。

在“cam”页面,可见主轴位置范围变为 0 - 720,默认为 0 - 360。

在这里插入图片描述

cam表 页面,可以直接对主从轴位置关系进行数据编辑,可以添加、减少对应点,对应图标效果,可以在“cam”页面看到。

在这里插入图片描述

现在让主从轴做这个运动:主轴走720°(两圈),从轴在此期间,做往返一圈运动。

在这里插入图片描述

4、使用功能块编程:

主要用到3个功能块:

MC_CamTableSelect

MC_CamIn

MC_CamOut

        MC_CamTableSelect是选择cam表,返回一个cam表ID。MC_CamIn是使主从轴进入cam模式。MC_CamOut是让主从轴退出cam模式,其中较为明显的现象是从轴脱离跟随主轴,主轴当前的运动可以不停止或按脱离前的运动方式运动。而从轴脱离时,会以原先的运动速度继续运动,调用MC_Stop可以使其停止。

(1)MC_CamTableSelect

        使用 MC_CamTableSelect 来指定电子凸轮运行时所遵循的凸轮表。Execute 设置为 True,可执行指定或刷新凸轮表。Done 转为 True 时,CamTableID生效。当主从轴建立同步关系后,用户对 MC_CamTableSelect 参数进行修改会造成凸轮的行为变动。 修改 CamTable 变量后,凸轮行为模式会立即生效。 修改 Periodic 模式时,必须要重启功能块才能生效。
        CamTable为凸轮表的选择,Execute触发之后,如果当前凸轮表正确,Done为TRUE,CamTableID的输出关联到MC_CamIn.CamTableId进行凸轮运动。


    
    
  1. CamTableSelect(
  2. Master:= Axis1, // 主轴
  3. Slave:= Axis2, // 从轴
  4. CamTable:= Cam, // cam表
  5. Execute:= bCamTableSelectExe, // 触发
  6. Periodic:= bPeriodic, // 是否重复执行
  7. MasterAbsolute:= FALSE, // 主轴绝对模式
  8. SlaveAbsolute:= FALSE, // 从轴绝对模式
  9. Done=> bTableDone,
  10. Busy=> bTableBusy,
  11. Error=> bTableErr,
  12. ErrorId=> ,
  13. CamTableId=> );

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

(2)MC_CamIn

        MC_CamIn指令使主从轴按照给定的凸轮表运动。在执行的过程中,主轴以当前的速度运动,从轴则按照当前执行的凸轮表参数进行运动;当主轴达到凸轮表中设定的位置时,从轴也达到目标位置。凸轮周期执行时,执行完最后一条记录,会直接跳转到第一条记录继续循环执行。
        在功能块运行的同时,如果控制同一轴的其它指令启动运行,此时该指令运行会被终止,CommandAborted 置位。
        执行过程中指令使轴处于Synchronized_Motion状态,执行完成之后,轴状态转换为StandStill。


    
    
  1. CamIN(
  2. Master:= Axis1,
  3. Slave:= Axis2,
  4. Execute:= bCamInExe,
  5. ContinuousUpdate:= FALSE, // 更新模式
  6. MasterValueSource:= 0,
  7. MasterOffset:= 0,
  8. SlaveOffset:= 0,
  9. MasterScaling:= 1,
  10. SlaveScaling:= 1,
  11. MasterStartDistance:= ,
  12. MasterSyncPosition:= ,
  13. VelocityDiff:= ,
  14. Acceleration:= ,
  15. Deceleration:= ,
  16. Jerk:= ,
  17. TappetHysteresis:= ,
  18. StartMode:= 0,
  19. CamTableId:= CamTableSelect.CamTableId,
  20. BufferMode:= ,
  21. InSync=> bCamInInSync,
  22. Busy=> bCamInBusy,
  23. Active=> bCamInAct,
  24. CommandAborted=> ,
  25. Error=> bCamInErr,
  26. ErrorId=> ,
  27. EndOfProfile=> );

在这里插入图片描述

在这里插入图片描述

(3)MC_CamOut

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


    
    
  1. CamOut(
  2. Slave:= Axis2,
  3. Execute:= bCamOutExe,
  4. Done=> bCamOutDone,
  5. Busy=> bCamOutBusy,
  6. Error=> bCamOutErr,
  7. ErrorId=> );

在这里插入图片描述

5、执行步骤

        先执行MC_CamTableSelect,CamTable参数选择在上面创建好的cam表,得到该功能块的输出CamTableId。

在这里插入图片描述

        从轴使能,执行MC_CamIn,若从轴不使能,或在错误状态,MC_CamIn执行会报错。触发信号置位后,功能块输出InSync为True、Busy为True、Active为True,且Error为False,则说明功能块执行正常,主从轴进入cam模式。

        若以上输出没有达到,或者Error为True或ErrorId有报错信息,则检查错误并清除后再执行该功能块。

在这里插入图片描述

        到此,主从轴的cam运动已经建立,主从轴的位置关系根据所选cam表进行规划。

6、效果

        主轴使用Jog运动,往正向Jog运动,从轴按照cam表进行规划。

在这里插入图片描述

        CamOut功能块如上文所述,在主从轴cam同步运动中,若执行camOut,则断开cam关系,主从轴各自保持原来的运动方式,直至运动结束或者被打断。

在这里插入图片描述

7、扩展
(1)

        在MC_CamIn确立的情况下,如果中途不打断(不断开主从的cam关系),其主从的信息会一直保存着:(在MC_CamTableSelect的主从轴均为相对模式下

        例如:1.主轴运行中,2.主轴中间停顿,主从轴位置保持不变,3.主轴继续运动,从轴也接着上一次的位置继续按照cam表运动。

在这里插入图片描述

        在 “2.主轴中间停顿” 期间,执行SetPosition,把主从轴的位置均设为0,也不影响主从轴的继续运动。

在这里插入图片描述

        若在“2.主轴中间停顿”这期间,打断cam关系,比如执行CamOut或者从轴断使能,那么下次继续运动,主从轴则重新开始同步。

在这里插入图片描述

        在主从轴的cam关系确立期间,CamIn功能块的输出InSync为True、Busy为True、Active为True,若cam关系打断,这几个输出都不会继续为True。

(2)在从轴绝对模式下:

        从轴的位置要求严格,要求起始位置必须和cam表上从轴起始位置一致,不然执行CamIn时,会报错,并自动断使能。而主轴无论位置如何都不受影响(只要从轴位置符合)。

        按上例的cam表,如现在主轴位置54,从轴位置0,执行CamIn成功。

        主轴位置54,从轴位置10,执行CamIn失败,从轴断使能。

        主轴位置0,从轴位置15,执行CamIn失败,从轴断使能。

(3)在主轴绝对模式下:

        主轴位置要求严格,若主轴在cam表的位置对不上,CamIn就会报错,并导致从轴断使能,若主轴位置偏差在范围内,也能导致CamIn执行时,从轴会瞬间抖动一下。而从轴无论位置如何都不受影响(只要主轴位置符合)。

        按上例的cam表,如现在主轴位置54,从轴位置0,执行CamIn失败,从轴断使能。

        主轴位置54,从轴位置10,执行CamIn失败,从轴断使能。

        主轴位置0,从轴位置15,执行CamIn成功。

(4)主从轴均在绝对模式下:

        主从轴的位置都要求严格,只要主从轴任一轴的位置在cam表上不对应,执行CamIn时,都会执行失败,导致从轴断使能。

                按上例的cam表,如现在主轴位置54,从轴位置0,执行CamIn失败,从轴断使能。

        主轴位置54,从轴位置10,执行CamIn失败,从轴断使能。

        主轴位置0,从轴位置15,执行CamIn失败,从轴断使能。

        主轴位置0,从轴位置0,执行CamIn成功。

</article>
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
台达PLC(可编程逻辑控制器)可以使用电子凸轮进行自动控制。电子凸轮是一种用来控制机械运动的设备,它可以通过电信号来控制工作的时序和运动方式。 首先,我们需要将电子凸轮与台达PLC进行连接。一般来说,我们可以使用输入输出模块将电子凸轮的信号输入到PLC中,然后通过PLC的输出模块将控制信号发送给电子凸轮。这样,PLC就可以通过接收和发送信号来控制电子凸轮的运动。 在PLC的程序中,我们可以使用相应的控制指令来实现电子凸轮的控制。例如,我们可以使用计时器指令来控制凸轮的运动速度和时间,使用计数器指令来控制凸轮的运动次数,以及使用逻辑控制指令来实现复杂的运动逻辑。 在设置PLC的程序时,我们需要根据实际的机械运动需求来确定凸轮的运动方式。例如,如果我们希望凸轮按照一定的速度循环运动,我们可以使用循环指令来实现。如果我们希望凸轮在特定的时间间隔内运动一定的次数,我们可以使用定时指令和计数器指令来实现。 除了基本的运动控制外,我们还可以通过PLC的输入输出模块与其他传感器、执行器等设备进行联动控制。这样,我们可以实现更复杂的凸轮运动控制,例如根据传感器的信号来判断凸轮的位置,并根据不同的位置采取相应的动作。 总之,台达PLC可以通过连接电子凸轮并设置相应的控制指令,实现对凸轮的精确控制。使用PLC可以提高生产效率和自动化水平,同时也能够灵活应对不同的生产需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值