正运动技术
正运动技术

协助伙伴成功,是我们的价值所在

The value of Zmotion is to bring customers more success!

首页 / 支持与服务 / 技术分享

Technical support

技术分享

EtherCAT运动控制器的PLC编程(三) 电子齿轮

  《视频教程:EtherCAT运动控制器的PLC编程(三) 电子齿轮》

  

  电子齿轮模式能够将两轴或多轴联系起来,实现精确的同步运动,从而替代传统的机械齿轮连接。

  被跟随的轴称为主轴,跟随的轴为从轴,通过将跟随轴按照某个比率连接到主轴上,从而达到主轴运动时,连接的跟随轴也跟随运动。同时连接的是脉冲个数,要考虑不同轴 UNITS 的比例。

   第一部分 电子齿轮作用

 

  1.脉冲补偿,减少上位机负担(因为目前用的发送脉冲的元件,都有脉冲发送频率的限制)。

  2.匹配电机发出的脉冲数与机械最小移动量,可将指令输入1个脉冲对应的工件(或电机)移动量设定为任意值;可实现电机的无极变速,在电机启动和停止时,可以防止失步和过冲现象,这样就能充分发挥电机的潜能。

  3.传递同步运动信息,实现坐标的联动、运动形式之间的变换(旋转-旋转,旋转-直线,直线-直线)、简化控制等。

   第二部分 电子齿轮指令说明

  1.jpg

  4.电子齿轮使用例程

            RAPIDSTOP(2)

            WAIT  IDLE(0)

            WAIT  IDLE(1)

            BASE(0,1)

            ATYPE=1,1

            UNITS=100,1000

            DPOS=0,0

            SPEED=100,100

            ACCEL=1000,1000

            DECEL=1000,1000

            TRIGGER                    '自动触发示波器

            MOVE(100)  AXIS(1)         '轴1运动100,此时轴0不动

            WAIT IDLE(1)               '上一段运动不连接

            CONNECT(0.5,1)  AXIS(0)    '轴0连接到轴1,比率为0.5

            'CONNPATH(0.5,1)  AXIS(0)  '轴0连接到轴1,比率为0.5

            MOVE(100)  AXIS(1)         '轴1运动100

            轴0运动距离:100*1000*0.5/100=500


  

  2.jpg

  

  5.指令注意事项

  CONNECT-同步运动和CONNPATH-同步运动2,同为电子齿轮连接指令,而且二者的使用语法规则相同。

  CONNECT连接的是 测量长度,主轴单轴所发的脉冲个数*连接比率=跟随轴所发的脉冲个数,即在连接比例相同的情况下,主轴单轴所发的脉冲个数与跟随轴所发的脉冲个数相等。

  CONNPATH连接的是 插补矢量长度,插补合成轴所发的脉冲个数*连接比率=跟随轴所发的脉冲个数,即在连接比例相同的情况下,主轴与其他轴合成的插补运动所发的脉冲个数与跟随轴的所发的脉冲个数相同。

  CONNPATH如果连接到单个轴,其运动的效果与CONNECT相同。

  第三部分 电子齿轮应用案例

  

  1.控制器示意图

  

  3.jpg

  

  ZMC006CE手轮接口(Encoder)示意图

  

  4.jpg


  2.手轮示意图

  5.jpg

  

 3.手轮与ZMC006CE手轮轴接线

  

  6.jpg

  

  4.手轮位置补偿——梯形图例程

 梯形图程序结构:上电后循环扫描判断辅助继电器M的状态,从而调用不同的子程序执行。辅助继电器M的状态由HMI界面控制。

  

  7.jpg

  

  手轮应用梯形图程序:

  

  8.jpg

  9.jpg

  10.jpg

  11.jpg

  12.jpg

  下方子函数与主程序无关,作用是在HMI初始化函数中启动PLC文件任务,上方PLC文件由自动运行任务号开启,若不设置PLC文件自动运行,则可调用下方程序。

  

  13.jpg

  

  手轮应用案例界面效果

  

  14.jpg

  

              

            //指定轴号

            ld m8002

            DMOV K1 D0

            DMOV K2 D2

            DMOV K3 D4

            DMOV K5 D6

            //子函数调用

            ld m8002

            CALL L1

            LDP        M200

            CALL @MoveAbsolu

            LDP        M201

            CALL L0

            //手轮控制部分

            LD        M10

            out s0

            ed

            exe @print"关闭手轮"

            call @HandWheel_Stop

            //手轮控制部分:根据旋钮来选择驱动轴与连接倍率

            STL S0

            MPS

            AND        X0

            EXE @CONNECT(modbus_long(10),modbus_long(6)) AXIS(modbus_long(0))

            MRD

            AND        X1

            EXE @CONNECT(modbus_long(10),modbus_long(6)) AXIS(modbus_long(2))

            MRD

            AND        X2

            EXE @CONNECT(modbus_long(10),modbus_long(6)) AXIS(modbus_long(4))

            MRD

            call @HandWheel_Stop

            AND        X10

            DMOV K1 D10

            MRD

            AND        X11

            DMOV K10 D10

            MPP

            AND        X12

            DMOV K100 D10

            RET

            fend

            //在不同情况下由这个子函数判断是否停止手轮功能

            lbl @HandWheel_Stop

            ldi x0

            ANI        X1

            ANI        X2

            ORP        X0

            ORP        X1

            ORP        X2

            ORI        S0

            Base d0

            exe @CANCEL(0)

            Base d2

            exe @CANCEL(0)

            base d4

            exe @CANCEL(0)

            sret

            //初始化选择轴

            lbl l1

            ld m8000

            BASE D0 D2 D4 D6 

            EXE @atype = 1,1,1,3

            EXE @UNITS = 1,1,1,1

            EXE @ACCEL = 1000,1000,1000,1000

            EXE @DECEL = 1000,1000,1000,1000

            EXE @SPEED = 100,100,100,100

            EXE @SRAMP = 0,0,0,0

            EXE @DPOS = 0,0,0,0

            EXE @MPOS = 0,0,0,0

            sret

            LBL @MoveAbsolu

            ld m8000

            base d0 d2 d4

            exe @moveabs(TABLE(0),TABLE(2),TABLE(4))

            sret

            LBL l0 

            ld m8000

            base d0 d2 

            exe @MOVECIRC(TABLE(10),TABLE(11),TABLE(12),TABLE(13),MODBUS_BIT(100))

            sret

  本次,EtherCAT运动控制器的PLC编程(三)——电子齿轮,就分享到这里。

  更多精彩内容请关注“正运动小助手”公众号,需要相关开发环境与例程代码,请咨询正运动技术销售工程师:400-089-8936。

  本文由正运动技术原创,欢迎大家转载,共同学习,一起提高中国智能制造水平。文章版权归正运动技术所有,如有转载请注明文章来源。

  

  15.jpg

邮箱留言

Copyright © 2013 正运动技术有限公司 Design by Zmotion 版权所有   粤ICP备13037187号    Powered by www.zmotion.com.cn 运动控制器-运动控制卡

在线咨询