正运动技术
正运动技术
EN

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

The value of Zmotion is to bring customers more success!

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

Technical support

技术分享

经济型EtherCAT运动控制器(八):轴参数与运动指令

一.XPLC006E功能简介

XPLC006E是正运动运动控制器推出的一款多轴经济型EtherCAT总线运动控制器,XPLC系列运动控制器可应用于各种需要脱机或联机运行的场合。

1.jpg


XPLC006E自带6个电机轴,最多12轴运动控制(含虚拟轴数),支持12轴直线插补、电子凸轮、电子齿轮、同步跟随、虚拟轴设置等功能。

XPLC006E支持多任务同时运行,同时可以在PC上直接仿真运行,编程方式多种可选,支持ZDevelop软件的Basic/PLC梯形图/HMI组态和常用上位机软件编程。

XPLC006E只支持EtherCAT总线轴,不支持脉冲轴和编码器轴。采用EtherCAT总线与驱动器通讯,1ms的刷新周期。

XPLC006E支持PLC、Basic、HMI组态三种编程方式。PC上位机API编程支持C#、C++、LabVIEW、VB、matlab、Qt、Linux、.Net、iMAC、Python、 ROS等接口。

2.png

→此款产品有XPLC004E、XPLC006E、XPLC008E三个不同轴数的型号可选。




二.XPLC864E功能简介

XPLC864E在XPLC006E的功能基础上做了升级(即上节介绍的XPLC006E的功能都支持),部分资源空间优于XPLC006E,使用方法基本一致,不同之处在于XPLC864E,硬件支持32点输入、32点输出、2个ADC、2个DAC,支持脉冲轴和总线轴混合使用,总实轴轴数为8,除了带EtherCAT接口之外,输出口硬件上可配置为8个轴的脉冲方向信号输出,另带两路编码器输入,可由输入口配置。

XPLC864E支持PLCBasicHMI组态三种编程方式。PC上位机API编程支持C#、C++、LabVIEW、VB、matlab、Qt、Linux、.Net、iMAC、Python、 ROS等接口。

3.jpg

4.png

XPLC系列经济型EtherCAT总线运动控制器支持多种编程方式,支持使用正运动技术自主研发的ZDevelop开发环境的Basic语言和PLC梯形图,上一节讲解了控制器的运动缓冲,本节内容主要讲解控制器的轴参数与运动指令说明。



三.轴参数

控制轴的运动除了要发送运动指令之外(运动指令),显然我们还需要指定轴的运动的速度,确定轴运动的快慢,速度参数我们也可以把他叫做轴参数,轴参数是轴运动所必须的参数,常用的轴参数有速度、加速度、减速度、脉冲当量、轴类型等,以上轴参数作用各不相同,参见下文的说明。

1.BASE--轴选择/轴组选择

BASE指令用于选择相应的轴号进行参数设置和运行控制,每一个过程有其自己的BASE基本轴组,每个程序都能单独赋值。

在设置轴参数或者运行轴的时候,都要在最开始的地方,用BASE指令选择相应的轴号,默认BASE选择的第一个轴为主轴。

运动不指定轴号时,默认发送给最新扫描的BASE指令选择的第一个轴。

语法:BASE(轴0,轴1,轴2,...)

例子:

a.png
 
  多轴的场合,在发送运动指令之前,最好先BASE指定当前运动指令发送给哪个轴,例如,在上例中,我们想让Y轴单独运动100个单位,若发送MOVE(100),则发给了X轴,导致运动错误了,正确做法如下,这样做能保证运动不出错。


b.png


 
2.ATYPE--轴类型

ATYPE是对轴功能的定义,通常在程序初始化时定义好轴的功能,可定义为无编码反馈类型、有编码器反馈类型、编码器+Z信号反馈类型、EtherCAT总线类型等。若ATYPE设置异常,会导致轴运行异常或者程序无法正常运行。

语法:ATYPE=类型值或ATYPE (轴号)=类型值

下表是对轴类型ATYPE定义的详细说明。

ATYPE=1/7是脉冲输出类型;

ATYPE=4/5是脉冲输出+编码器输入类型;

ATYPE=3/6是编码器输入类型;

ATYPE=65/66/67是EtherCAT总线轴的类型;

ATYPE=50/51/52是RTEX总线轴的类型。

QQ截图20220629102100.png


 
3.UNITS--脉冲当量

在运动控制装置中,当机械结构确定以后,电机和机械装置的传动关系也就固定了,电机每转一圈产生的机械位移量也就固定了。脉冲当量UNITS是每单位对应的脉冲数,可以是单位距离、单位角度等,支持5位小数精度。

控制器以UNITS作为基本单位,运动的目标位置、速度、加减速度等都是以UNITS作为基础单位来进行运算执行,UNITS修改后,目标位置、速度、加减速度等会随UNITS改变成比例变化。

语法:UNITS=变量或UNITS (轴号)=变量

例子:UNITS=10000

常见的几种机械传动的UNITS参考计算方式见下表。

5.png

如设置脉冲当量为1000,速度SPEED以设置的脉冲当量为单位,则每秒按照当前设置速度值*1000进行发送脉冲给执行机构。

此时若直线运动指令的距离参数写2,则发送2*1000个脉冲,2000个脉冲能让电机转多少角度,需要参考电机的一圈脉冲数(电机转动一圈需要的脉冲数量)的设置,若电机的一圈脉冲数为10000,则2000个脉冲能让电机转72°,这样运动指令的实际运动距离就能被换算出来了。

以上为脉冲当量UNITS的设置方法,总而言之,设置前先要查出电机的一圈脉冲数,再结合机械结构的特点进行设置。

一般而言,步进电机的一圈脉冲数较小,伺服电机的一圈脉冲数较大,需要十万或百万级的脉冲数才能驱动电机转一圈,故伺服的精度较高,相对于的成本也高一些。

4.SPEED--运动速度

轴运行时的速度,单位为UNITS/s。

当单轴运动时,运动速度的加速度为单轴的速度,当多轴运动时,作为插补运动的合成矢量速度。

SPEED修改后,立刻生效,可以实现动态变速,平滑变速也可以使用SPEED_RATIO指令来调节倍率。

语法:SPEED=变量 或 SPEED(轴号)=变量

例子:SPEED=100 '每秒下发脉冲个数为100*UNITS

5.ACCEL--加速度

轴的运行由起始速度到目标速度的过程中,每秒达到的速度数值,单位为UNITS/s^2,加速度越大,达到目标速度的时间越短。

当单轴运动时,运动速度的加速度为单轴的加速度,当多轴运动时,插补运动的加速度为多轴矢量合成的加速度。

语法:ACCEL=变量 或 ACCEL(轴号)=变量

例子:ACCEL =1000 '加速度为1000 UNITS/s^2

6.DECEL--减速度

轴的运行由运行速度到停止的过程中,每秒达到的速度数值,单位为UNITS/s^2,减速度越大,达到停止速度的时间越短。

当单轴运动时,运动速度的减速度为单轴的减速度,当多轴运动时,插补运动的减速度为多轴矢量合成的减速度。

语法:DECEL=变量 或 DECEL(轴号)=变量

7.DPOS--目标位置

轴的目标位置或需求位置,以UNITS作为单位,作为当前轴的位置参考,正向运动时值增大,反向运动时轴减小,DPOS参数回零完成后会自动清零,DPOS为0表示在原点位置,若手动改DPOS的值,会自动转换为OFFPOS偏移,不会移动电机。

正负软限位限制的便是DPOS的范围,超过设置的DPOS自动报警,停止轴运动。

8.MPOS--反馈位置

轴的反馈位置,接了反馈此参数才有效,一般有编码器测量反馈,无反馈的情况MPOS的值自动复制DPOS的值,不具备参考价值。若手动改DPOS的值,会自动转换为OFFPOS偏移。

一般MPOS与DPOS之间是有一定的误差的,伺服性能越好,这个误差便越小,理论上不可以完全消除,但可以十分接近。

相对应的,SPEED为目标速度,MSPEED为编码器测得的真实运动速度。

注意,部分回零模式回零之后,DPOS会自动清零,但MPOS不会,需要手动清零MPOS,否则可能导致后续运动出错。

9.AXIS--指定轴号

熟悉了上面的内容,我们知道SPPED(1)=1000的含义是指定轴1的运动速度为1000,SPEED=1000因为未指定轴号,默认设置BASE的第一个轴。

但MOVE(100)这类的命令括号是运动参数,不能填入轴号了,这种参数我们可以写做MOVE(100) AXIS(0),通过添加AXIS指令去指定当前参数设置到哪个轴上。

c.png

10.轴参数设置示例

d.png

在这些参数作用下的软件示波器采样不同参数随时间变化的波形如下图所示。通过速度曲线能反映加减速度的情况。

DPOS(0)和MSPEED(0)分别为轴0的位移轨迹和速度轨迹;

DPOS(1)和MSPEED(1)分别为轴1的位移轨迹和速度轨迹。

6.png




四.运动指令

1.单轴运动

单轴运动的特点是每个轴的运动是独立的,,由各轴自己的运动参数控制,与其他轴没有联系,单轴运动也分几类,单轴寸动、单轴点动、单轴持续运动、回零也属于单轴运动。

(1)寸动

寸动由MOVE指令给单个轴发有限个脉冲,例如MOVE(100),100个单位走完之后,轴减速停止。

MOVE指令控制多个轴运动的时候,属于插补运动,多轴是联动的。(寸动例程参见上文)

(2)JOG点动

JOG点动是个简单的单轴运动,由外部输入信号控制以指定的速度正向运动或负向运动。

JOG点动需接入外部输入信号,使用FWD_JOG指令映射正向JOG输入,REV_JOG指令映射负向JOG输入,检测到有输入信号时以JOGSPEED指令速度运动,无输入立即停止。

注意映射JOG开关后,对于OFF信号有效的控制器,一定要INVERT_IN反转电平,例如ZMC系列控制器是OFF信号有效,若不反转,则导致信号接入时为OFF,控制器判断有输入,立即控制轴运动;对于ON有效的型号则不需要反转。

A.点动例程

e.png

B.运行效果如下图

输入0口有信号输入时,轴0正向运行,速度为50。

输入1口有信号输入时,轴0负向运行,速度为50。

输入0、1同时有信号输入时,轴0正向运行。
7.png

(3)持续运动

控制器有专用的持续运动指令,控制器持续发脉冲,控制轴以指定的速度和方向持续运动,持续运动常用的指令为VMOVE,以运动速度SPPED持续运动,此时停止轴运动使用CANCEL或RAPIDSTOP指令。

VMOVE的指令参数可选择正向或负向运动,VMOVE(1)正向,VMOVE(-1)负向,下一条VMOVE会自动替换前面的VMOVE指令。

持续运动例程:

f.png

2.插补运动

插补是一个实时进行的数据密化的过程,控制器根据给定的运动信息进行数据计算,不断计算出参与插补运动的各坐标轴的进给指令,然后分别驱动各自相应的执行部件产生协调运动,以使被控机械部件按理想的路线与速度移动。

插补最常见的两种方式是MOVE直线插补和MOVECIRC圆弧插补。插补运动至少需要两个轴参与,进行插补运动时,将规划轴映射到相应的机台坐标系中,运动控制器根据坐标映射关系,控制各轴运动,实现要求的运动轨迹。

插补运动的特点是参与插补运动的所有轴,在进行一段插补运动时,同时启动同时停止,插补运动参数采用主轴的运动参数(速度、加速度等),主轴为BASE指令选择的第一个轴。

插补运动指令会存入主轴的运动缓冲区,不进入从轴的运动缓冲区,再依次从主轴的运动缓冲区中取出指令执行,直到插补运动全部执行完。

(1)直线插补--MOVE

单轴直线运动或多轴直线插补运动,相对运动距离。绝对运动使用MOVEABS指令,SP运动使用MOVESP指令。

插补运动参数采用主轴参数,插补运动缓冲在主轴的运动缓冲区。

语法:MOVE(distance1 [,distance2 [,distance3 [,distance4...]]])

例子:二轴直线插补

g.png

直线插补合成轨迹如下图:起点和终点均为(100,0),逆时针加工。

8.png

(2)平面圆弧插补--MOVECIRC

两轴圆弧插补,起点、终点、圆心三点画弧,起点使用轴当前坐标,相对运动。绝对圆弧插补使用MOVECIRCABS指令。SP圆弧插补使用MOVECIRCSP指令。

MOVECIRC2指令使用当前点、中间点、终点画弧。

圆弧插补指令适用于二轴运动。

语法:MOVECIRC(end1, end2, centre1, centre2, direction)

(end1, end2):终点坐标

(centre1, centre2):圆心坐标

direction:方向0-逆时针,1-顺时针。

当起点坐标与终点坐标相同时,画出整圆。圆弧相关的指令要保证给出的圆心和终点坐标与当前点一起可以正确的描述一段圆弧,否则会报错,无法画弧,错误码1006。

例子:

h.png

圆弧插补合成轨迹如下图:

9.png

(3)空间圆弧--MSPHERICAL

空间圆弧插补运动,相对运动,空间圆弧起点为当前点,第二、第三个点由指令指定。绝对运动使用MSPHERICALABS指令,自定义速度的连续插补运动可以使用SP后缀的指令。

语法:

MSPHERICAL(end1,end2,end3,centre1,centre2,centre3,mode[,distance4][,distance5])

(end1, end2, end3):第二个点坐标

(centre1, centre2, centre3):第三个点坐标

mode:指定前面两个坐标点的意义,如下表

distane4:第四轴螺旋的功能,指定第4轴的相对距离,此轴不参与速度计算

distane5:第五轴螺旋的功能,指定第5轴的相对距离,此轴不参与速度计算表

QQ截图20220629102137.png


例子:

i.png

mode 0:当前点,中间点,终点三点定圆弧,如下图。

10.png

mode 3:当前点,圆心,终点定整圆,如下图。

MSPHERICAL(120,160,400,120,160,150,3) '终点(120,160,400),圆心(120,160,150),先走最短的圆弧(红色部分),再走完整圆。

11.png

3.同步运动

同步运动描述的是不同轴之间的运动是联动的,比如电子齿轮,电子凸轮,自动凸轮等。

(1)电子齿轮

电子齿轮功能用于两个轴的连接,将主轴与从轴按照一个常数齿轮比建立连接,不需要物理齿轮,使用指令直接设置电子齿轮的比值,由于是使用软件实现的,故电子齿轮比可以随时更改。

12.png

电子齿轮功能通过指令CONNECT、CONNPATH实现,将一个轴按照一定比例连接到另一个轴上做跟随运动,一条运动指令就能驱动两个电机的运行,通过对这两个电机轴移动量的检测,将位移偏差反馈到控制器并获得同步补偿,这样能使两个轴之间的位移偏差量控制在精度允许范围内。

电子齿轮连接的是脉冲个数,例如主从轴连接比例为1:5,给主轴发送1个脉冲,此时对应给从轴发送5个脉冲。

CONNPATH与CONNECT的相同点:二者的使用语法相同,连接的都是脉冲个数,CONNPATH连接到单个轴的运动的效果与CONNECT相同。

CONNPATH与CONNECT的区别:CONNECT连接的是单个轴的目标位置。CONNPATH是连接的是插补轴的矢量长度,此时需要连接在插补运动的主轴上,连接到插补从轴上无法跟随插补运动。CONNPATH会跟踪XY轴插补的的矢量长度变化,而不是跟踪单独的X轴或者Y轴。

语法:CONNECT/CONNPATH(比率,被连接轴) AXIS(连接轴)

电子齿轮的连接比率:比率可正可负,可为小数,连接的是脉冲个数,要考虑不同轴UNITS的比例。比率可以通过重复调用CONNECT/CONNPATH指令动态变化(连接成功后保持连接状态),取消连接时用CANCEL或RAPIDSTOP指令。

假设连接轴0的UNITS为10,被连接轴1的UNITS为100,使用CONNECT连接,比率ratio为1,CONNECT(1,1) AXIS(0)

当轴1运动S1=100时,轴0运动S0=S1*UNITS(1)*ratio/UNITS(0)=100*100*1/10,此时运动1000。

例子:

j.png

轴0目标位置:

DPOS(0)=DPOS(1)*UNITS(1)*ratio/UNITS(0)=100*100*0.5/10=500。

运动波形如图所示:
13.png

(2)电子凸轮

凸轮的作用是将旋转运动转换为线性运动,包括直线运动、摆动、匀速运动和非匀速运动。电子凸轮属于多轴同步运动,这种运动是基于主轴外加一个或多个从轴系统,是在机械凸轮的基础上发展而来,电子凸轮多用于周期性的曲线运动场合。

电子凸轮是利用构造的凸轮曲线来模拟机械凸轮,以达到与机械凸轮系统相同的凸轮轴与主轴之间相对运动的软件系统,通过控制器控制伺服电机来模拟机械凸轮的功能,不需要另外安装如下左图所示的凸轮机械结构。

如下右图所示,机械凸轮按照凸轮的轮廓可以得出一段转动角度与加工位置运动轨迹,此轨迹为弧线,将该段弧线分解成无数个直线或圆弧轨迹,组合起来得到一串趋近于该弧线的运动轨迹,电子凸轮直接将此段轨迹运动参数装入运动指令,即可控制轴走出目标轨迹。

14.png

电子凸轮用软件来控制信号,改变程序的相关运动参数就能改变运动曲线,应用灵活性高,工作可靠,操作简单,不需要额外安装机械构件,因而不存在磨损的情况。

凸轮指令有CAM凸轮表运动,CAMBOX跟随凸轮表运动,MOVELINK和MOVESLINK自动凸轮运动

以CAM凸轮表运动指令为例,所谓凸轮表运动就是将凸轮运动的轨迹点,以数据的形式存储在TABLE寄存器区域,CAM指令再调用TABLE表的数据运动,形成运动轨迹,凸轮轴需要与其他轴配合使用,才能做柔顺曲线加工。

两个或多个CAM指令可以同时使用同一段TABLE数据区进行操作。TBALE数据需要手动设置,第一个数据为引导点,建议设为0。

凸轮表指令运动完调用的TABLE数据点后,凸轮运动结束,需要周期执行的场合,将凸轮表指令写在WHILE循环中。

CAM指令含义:根据存储在TABLE中的数据来决定轴的运动,这些TABLE数据值对应运动轨迹的位置,是相对于运动起始点的绝对位置。

指令语法:CAM(start point, end point, table multiplier, distance)

QQ截图20220629102157.png

电子凸轮例程:
k.png

运动轨迹如下图:每个凸轮指令运动总时间=distance/speed=300/200=1.5s

15.png




五.运动取消

在实际生产过程中遇到紧急情况和一些意外情况我们需要让轴运动及时的停下来,这时候我们就需要发送运动取消指令给控制器取消轴的运动,防止意外事故的发生。

运动取消分针对单轴的指令CANCEL和针对所有轴的指令RAPIDSTOP,两个指令功能相同,唯一不同的是一个针对单个轴,一个是针对所有轴的,故单轴取消在使用的时候养成添加轴号的习惯,否则可能作用到其他轴上。

语法:CANCEL(模式)或RAPIDSTOP(模式)

QQ截图20220629102213.png

模式2急停的减速度按FASTDEC快减速和DECEL减速度中最大的值,使用指令之后要调用绝对位置运动,必须先WAIT IDLE 等待停止完成。
l.png

CANCEL(0)效果如下:MOVE(1000)执行1s之后被取消,缓冲运动继续运行。

16.png
CANCEL(1)效果如下:MOVE(1000)执行完,缓冲运动被取消。

17.png

CANCEL(2)效果如下:MOVE(1000)执行1s之后急停,急停减速度FASTDEC。

18.png
CANCEL(3)效果如下:MOVE(1000)执行1s之后急停。
19.png

本次,正运动技术经济型EtherCAT运动控制器(八):轴参数与运动指令,就分享到这里。

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

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

   正运动技术专注于运动控制技术研究和通用运动控制软硬件产品的研发,是国家级高新技术企业。正运动技术汇集了来自华为、中兴等公司的优秀人才,在坚持自主创新的同时,积极联合各大高校协同运动控制基础技术的研究,是国内工控领域发展最快的企业之一,也是国内少有、完整掌握运动控制核心技术和实时工控软件平台技术的企业。主要业务有:运动控制卡_运动控制器_EtherCAT运动控制卡_EtherCAT控制器_运动控制系统_视觉控制器__运动控制PLC_运动控制_机器人控制器_视觉定位等等。

邮箱留言

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

在线咨询