EtherCAT运动控制器的PLC编程(一) 直线插补

梯形图(LAD, LadderLogic ProgrammingLanguage)是PLC使用得最多的图形编程语言,被称为PLC的第一编程语言。

梯形图语言沿袭了继电器控制电路的形式,梯形图是在常用的继电器与接触器逻辑控制基础上简化了符号演变而来的,具有形象、直观、实用等特点,电气技术人员容易接受,是运用上最多的一种PLC的编程语言。

正运动技术的ZMC006CE就是一款高性价比的,支持ZBasic、ZPlC编程语言,以及可以使用正运动技术ZHMI界面编程的EtherCAT运动控制器。在正式学习直线插补之前,我们先简单了解一下这个产品。

EtherCAT运动控制器的PLC编程(一) 直线插补_第1张图片

EtherCAT运动控制器的PLC编程(一) 直线插补

一 、梯形图介绍

(一)梯形图运行逻辑

PLC梯形图执行从左侧的母线开始,从左至右,从上至下依次扫描,从第一行程序开始顺序扫描到END为一个扫描周期,然后又开始新一轮程序扫描,直到程序被停止。

PLC运行时,主要经过自检测、通讯处理、输入检测、程序执行、输出刷新这五个阶段。扫描程序之前,先执行故障检测与程序检查,发现异常停机显示出错信息,打印程序编写问题,再执行与其他设备的通信响应。

EtherCAT运动控制器的PLC编程(一) 直线插补_第2张图片

一个扫描周期包括输入检测、程序执行、输出刷新三个阶段。

1.输入检测

PLC以扫描方式顺序读入各输入端子的通断状态,并写入相应的输入状态寄存器,即刷新输入,接着转入程序执行阶段。一般来说,输入信号的宽度要大于一个扫描周期,否则可能导致信号丢失。

2.程序执行

PLC按从左至右,从上至下的顺序对每条梯形图指令进行扫描,并将相应的运算和处理结果保存在输出状态寄存器中。在程序执行的过程中,若输入信号状态发生改变,但此时状态寄存器内的输入状态没有改变,直到下一扫描开始时再读入输入信号状态。

3.输出刷新

在所有指令执行完毕后,输出状态寄存器的通断状态写入输出端子,驱动相应的输出设备。

扫描周期主要取决于程序的长短、指令的类型、CPU 执行指令的速度。扫描周期的时间可以通过特殊寄存器 D8010(扫描时间)、D8011(扫描最小时间)、D8012(扫描最大时间)来查看。

(二)梯形图混合Basic

1.PLC调用BASIC指令

PLC可以通过EXE指令或EXEP指令调用Basic标准指令。EXEP指令是EXE指令的脉冲形式,仅在驱动输入由OFF变为ON后,才调用Basic标准指令。

语法格式如下:

EtherCAT运动控制器的PLC编程(一) 直线插补_第3张图片

2.PLC调用BASIC和PLC程序

PLC使用CALL指令调用子程序。程序文件必须在同一项目文件(.ZPJ)内才可调用。

2.1 PLC调用PLC子程序

CALL调用子程序后,跳转到对应LBL行执行,执行到SRET指令处返回。

EtherCAT运动控制器的PLC编程(一) 直线插补_第4张图片

2.2 PLC调用Basic子程序

PLC调用Basic子程序时,需要在SUB函数名前加上@,调用时可根据实际情况选择是否传入参数,如右图的参数LV0。

EtherCAT运动控制器的PLC编程(一) 直线插补_第5张图片

3.BASIC调用PLC文件

程序文件必须在同一项目文件(.ZPJ)内才可调用。

3.1 Basic启动PLC任务

Basic里可使用语句“run"xxx.plc",任务编号”来启动PLC文件任务。

EtherCAT运动控制器的PLC编程(一) 直线插补_第6张图片

PLC子程序SRET子程序返回指令可以带上返回值,返回值存储在LV局部寄存器中,返回值是浮点格式,调用者通过RETURN指令获取返回值。

3.2. Basic调用PLC子程序

Basic里使用“CALL SUB_FUNC”或“RUNTASK 任务号, SUB_FUNC”来调用PLC子程序LBL。

如下图,Basic程序执行到CALL语句后跳转到PLC程序的LBL子程序执行,执行完子程序SRET返回参数LV1保存在RETURN中。

EtherCAT运动控制器的PLC编程(一) 直线插补_第7张图片

二 、插补功能介绍

(一)插补原理

直线插补方式中,两点间的插补沿着直线的点群来逼近。首先假设在实际轮廓起始点处沿X方向走一小段(给一个脉冲当量轴走一段固定距离),发现终点在实际轮廓的上方,则下一条线段沿Y方向走一小段,此时如果线段终点还在实际轮廓下方,则继续沿Y方向走一小段,直到在实际轮廓上方以后,再向X方向走一小段,依此类推,直到到达轮廓终点为止。实际轮廓是由一段段的折线拼接而成,虽然是折线,但每一段插补线段在精度允许范围内非常小,那么此段折线还是可以近似看做一条直线段,这就是直线插补。

假设轴需要在在XY平面上从点(X0,Y0)运动到点(X1,Y1),其直线插补的加工过程如下图所示。

EtherCAT运动控制器的PLC编程(一) 直线插补_第8张图片

给轴发送一个脉冲运动的距离由电机的特性决定,不同的轴单个脉冲运动距离有所不同。

(二)梯形图插补指令介绍

在正运动梯形图编程中,有两种形式的插补指令其分别为Zbasic形式和PLC形式。

EtherCAT运动控制器的PLC编程(一) 直线插补_第9张图片

1.Zbasic插补指令介绍

MOVE – 直线运动

EtherCAT运动控制器的PLC编程(一) 直线插补_第10张图片

2.PLC形式插补指令介绍

         MOVE

        

         指令说明:

           MOVE指令为直线插补相对运动指令。

         操作数:

           S1:T,C,D,K,H,Z,V,LV,DT,@

           S2:T,C,D,K,H,Z,V,LV,DT,@

           ……

           S8:T,C,D,K,H,Z,V,LV,DT,@

         操作数若使用字寄存器,寄存器中的数值需用浮点指令赋值。

         编程示例:

          

EtherCAT运动控制器的PLC编程(一) 直线插补_第11张图片

三 、梯形图直线插补示例

(一)梯形图混合Zbasic例程

EtherCAT运动控制器的PLC编程(一) 直线插补_第12张图片

EtherCAT运动控制器的PLC编程(一) 直线插补_第13张图片

EtherCAT运动控制器的PLC编程(一) 直线插补_第14张图片

EtherCAT运动控制器的PLC编程(一) 直线插补_第15张图片
EtherCAT运动控制器的PLC编程(一) 直线插补_第16张图片

      ld m8002

      exe @Axis_Init

      ldp m0

      EXE @RelativeMove

      end

      lbl @Axis_Init

      ld m8000

      EXE @BASE(0,1)

      EXE @UNITS = 100,100

      EXE @ACCEL = 1000,1000

      EXE @DECEL = 1000,1000

      EXE @SPEED = 100,100

      EXE @DPOS = 0,0

      EXE @MPOS = 0,0

      sret

      LBL @RelativeMove

      ld m8000

      EXE @BASE(0,1)

      exe @Trigger

      exe @MOVE(300,400)

      sret

梯形图对应语句表

         Axis_Init

        

         WHILE 1

        

             IF SCAN_EVENT(MODBUS_BIT(0)) > 0 THEN

                    Axis_Move

              ENDIF

         WEND

        

         END

        

         GLOBAL SUB Axis_Init()

             BASE(0,1)  

             UNITS= 100,100

             ACCEL = 1000,1000

             DECEL = 1000,1000

             SPEED = 100,100

             DPOS = 0,0

             MPOS = 0,0

         ENDSUB

        

         GLOBAL SUB Axis_Move()

              BASE(0,1)

              TRIGGER

              MOVE(300,400)

         ENDSUB

与该梯形图直线插补程序等价的Zbasic形式程序

本次,正运动技术EtherCAT运动控制器的PLC编程(一) 直线插补,就分享到这里。

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

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

EtherCAT运动控制器的PLC编程(一) 直线插补_第17张图片

你可能感兴趣的:(运动控制卡,EtherCAT运动控制器)