0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

控制器的轴参数与运动指令说明

正运动技术 来源:正运动技术 作者:正运动技术 2022-06-30 09:09 次阅读

一、XPLC006E功能简介

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

poYBAGK8I02AC_XqAAFQAjfRDIA324.png

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、iMACPythonROS接口

pYYBAGK8I3qAFRT3AAnEE1nZ5q8496.png

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

二、XPLC864E功能简介

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

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

poYBAGK8JA6AeX9FAAFsOX5_f-8314.pngpYYBAGK8JCGAYz7nAAlAC1wFl7s940.png

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

三、轴参数

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

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

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

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

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

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

例子:

BASE(0,1,2)       '将XYZ平台的三个轴分别绑定为轴号012
MOVE(100,200,240)
BASE(0)          '选择轴0
MOVE(136)
BASE(3,0,1,2))    '选择四个轴,轴次序没有严格要求,但一般顺序选择不易混淆
MOVE(10,50,50,0)

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

BASE(1)'选择Y轴
MOVE(100)  '给Y轴单独发脉冲

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总线轴的类型。

ATYPE数值

功能描述

0

虚拟轴

1

脉冲方向方式的步进或伺服,无编码器输入反馈

2

模拟信号控制方式的伺服

3

正交编码器

4

脉冲方向输出+正交编码器输入

5

脉冲方向输出+脉冲方向编码器输入

6

脉冲方向方式的编码器

7

脉冲方向输出+EZ信号输入

8

ZCAN扩展脉冲方向输出

9

ZCAN扩展正交编码器

10

ZCAN扩展脉冲方向方式的编码器

21

振镜轴类型

50

RTEX周期位置模式

51

RTEX周期速度模式

52

RTEX周期力矩模式

65

EtherCAT周期位置模式

66

EtherCAT周期速度模式

67

EtherCAT周期力矩模式

70

EtherCAT自定义操作,只读取编码器,需支持EtherCAT

3.UNITS--脉冲当量

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

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

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

例子:UNITS=10000

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

pYYBAGK8JRmAJHW0AAHgoVmFzOI551.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 '加速度为1000UNITS/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指令去指定当前参数设置到哪个轴上。

BASE(1)'选择Y轴
MOVE(100)                 '给Y轴单独发脉冲
MOVE(100) AXIS(0)          '给X轴单独发脉冲

10.轴参数设置示例

RAPIDSTOP(2)
WAIT IDLE(0)
WAIT IDLE(1)
BASE(0,1)          '选择轴号
ATYPE=1,1          '轴类型设置
UNITS=10000,10000  '脉冲当量设置
SPEED=100,200      '速度设置
ACCEL=1000,2000    '加速度设置
DECEL=1000,2000    '减速度设置
DPOS=0,0           '当前位置清0
MPOS=0,0           '反馈位置清0
TRIGGER            '触发示波器采样
MOVE(200) AXIS(0)  '轴0运动
MOVE(100) AXIS(1)  '轴1运动
END

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

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

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

pYYBAGK8JdSAFeU3AAB82wbu7RY647.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.点动例程

RAPIDSTOP(2)
WAIT IDLE(0)
BASE(0)          '选择轴0
ATYPE=1          '脉冲轴类型
DPOS=0           '坐标清0
UNITS=100        '脉冲当量
SPEED =100       '主轴速度
ACCEL=1000       '加速度
DECEL=1000       '减速度
SRAMP=100        'S曲线
TRIGGER          '自动触发示波器
JOGSPEED=50      'JOG速度50
FWD_JOG=0        'IN0作为正向JOG开关
REV_JOG=1        'IN1作为负向JOG开关
INVERT_IN(0,ON)  '输入0信号反转
INVERT_IN(1,ON)  '输入1信号反转
END

B.运行效果如下图

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

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

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

pYYBAGK8JpOAU7hCAAB4e2y2PVI400.png

(3)持续运动

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

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

持续运动例程:

RAPIDSTOP(2)
WAIT IDLE(0)
BASE(0)          '选择轴号
ATYPE=1          '轴类型设置
UNITS=100        '脉冲当量设置
SPEED=100        '速度设置
ACCEL=1000       '加速度设置
DECEL=1000       '减速度设置
SRAMP=100        'S曲线
DPOS=0           '当前位置清0
TRIGGER
WHILE 1          '循环运动
   IF MODBUS_BIT(0) = ON THEN          'MODBUS_BIT(0)有效往左运动
      VMOVE(-1)
   ELSEIF MODBUS_BIT(1) = ON THEN      'MODBUS_BIT(1)有效往右运动
      VMOVE(1)
   ELSEIF MODBUS_BIT(0) = OFF OR MODBUS_BIT(1) = OFF THEN  
      CANCEL(2)                        'MODBUS_BIT无效时停止运动
   ENDIF
WEND
END

2.插补

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

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

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

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

(1)直线插补--MOVE

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

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

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

例子:二轴直线插补

RAPIDSTOP(2)
WAIT IDLE(0)
WAIT IDLE(1)
BASE(0,1)       '选择轴0,轴1
ATYPE=1,1
UNITS=100,100
SPEED=100,100   '运动速度
ACCEL=1000,1000
DECEL=1000,1000
SRAMP=100,100   'S曲线
MERGE=ON        '开启连续插补
TRIGGER         '自动触发示波器
DPOS=100,0      '坐标偏移
MOVE(-50,100)   '第一段相对运动
MOVE(-100,0)    '第二段相对运动
MOVE(-50,-100)  '第三段相对运动
MOVE(50,-100)   '第四段相对运动
MOVE(100,0)     '第五段相对运动
MOVE(50,100)    '第六段相对运动
END

直线插补合成轨迹如下图:

起点和终点均为(100,0),逆时针加工。

pYYBAGK8J1WAf_34AABxH36gsSw663.png

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

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

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

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

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

(end1, end2):终点坐标

(centre1, centre2):圆心坐标

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

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

例子:

RAPIDSTOP(2)
WAIT IDLE(0)
WAIT IDLE(1)
BASE(0,1)
ATYPE=1,1
UNITS=100,100
SPEED=100,100        '运动速度
ACCEL=1000,1000
DECEL=1000,1000
DPOS=0,0
SRAMP=100,100        'S曲线
MERGE=ON
TRIGGER              '自动触发示波器
MOVECIRC(100,0,50,0,1)       '半径50顺时针画半圆,终点坐标(100,0),圆心坐标(50,0)
MOVECIRC(-200,0,-100,0,1)    '半径100顺时针画半圆,终点坐标(-100,0),圆心坐标(0,0)
END

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

poYBAGK8J86AGBBoAABvz-IUV94711.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轴的相对距离,此轴不参与速度计算表

mode值

描述

0

当前点,中间点,终点三点定圆弧

end指定圆弧终点,centre指定圆弧的中间点

1

当前点,圆心,终点定圆弧

走最短的圆弧

end指定圆弧终点,centre指定圆弧的圆心

2

当前点,中间点,终点三点定整圆

end指定圆弧终点,centre指定圆弧的中间点

3

当前点,圆心,终点定整圆

先走最短的圆弧,再继续走完整圆

end指定圆弧终点,centre指定圆弧的圆心

例子:

RAPIDSTOP(2)
WAIT IDLE(0)
WAIT IDLE(1)
WAIT IDLE(2)
BASE(0,1,2)
ATYPE=1,1,1           '设为脉冲轴类型
UNITS=100,100,100
DPOS=0,0,0
SPEED=100,100,100     '主轴速度
ACCEL=1000 ,1000,1000 '主轴加速度
DECEL=1000 ,1000,1000 
TRIGGER
MSPHERICAL(120,160,400,240,320,300,0)       '终点(120,160,400),中间点(240,320,300)
END

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

pYYBAGK8KDiASZXDAACDFMFlfUQ025.png

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

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

poYBAGK8KFaAJGIKAACGy1afsOU762.png

3.同步运动

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

(1)电子齿轮

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

poYBAGK8KICAV2dQAABP0ARX-xs711.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。

例子:

RAPIDSTOP(2)
WAIT IDLE(0)
WAIT IDLE(1)
BASE(0,1)
ATYPE=1,1
UNITS=10,100
DPOS=0,0
SPEED=100,100
ACCEL=1000,1000
DECEL=1000,1000
SRAMP=100,100
TRIGGER                   '自动触发示波器
MOVE(100) AXIS(1)         '轴1运动100,此时轴0不动
WAIT IDLE(1)              '上一段运动不连接
DELAY(10) '延时10ms
CONNECT(0.5,1) AXIS(0)    '轴0连接到轴1,比例为0.5
MOVE(100) AXIS(1)         '轴1运动100,轴0运动500
END

轴0目标位置:

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

运动波形如图所示:

poYBAGK8KNSAKq5HAACXBJ1bf5Y112.png

(2)电子凸轮

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

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

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

poYBAGK8KPiAeOmTAAEAgoET_Zk336.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)

参数

说明

start point

起始点TABLE编号,存储第一个点的位置

end point

结束点TABLE编号

table multiplier

位置乘以这个比例,一般设为脉冲当量值,TABLE数据*table multiplier值=实际发出的脉冲数

link_distance

参考轴运动的距离,总时间=distance/轴speed

电子凸轮例程:

RAPIDSTOP(2)
WAIT IDLE(0)
BASE(0)         '选择第0轴
ATYPE=1         '脉冲方式步进或伺服
DPOS = 0
UNITS = 100     '脉冲当量
SPEED = 200
ACCEL = 2000
DECEL = 2000
                '计算TABLE的数据
DIM deg, rad, x, stepdeg
stepdeg = 2     '可以通过这个来修改段数,段数越多速度越平稳
FOR deg=0 TO 360 STEP stepdeg
   rad = deg * 2 * PI/360                 '转换为弧度
   X = deg * 25 + 10000 * (1-COS(rad))    '计算每小段位移
   TABLE(deg/stepdeg,X)                   '存储TABLE
   TRACE deg/stepdeg,X
NEXT deg
TRIGGER                                   '触发示波器采样
WHILE 1                                   '循环运动
   CAM(0, 360/stepdeg, 0.1, 300)          '虚拟跟踪总长度300
   WAIT UNTIL IDLE                        '等待运动停止
WEND
END

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

poYBAGK8KV-AA8GNAACUw-575mI749.png

五、运动取消

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

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

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

模式值

说明

0(缺省)

取消当前运动,缓冲运动还能执行

1

取消缓冲的运动,当前运动执行完停止

2

取消当前运动和缓冲区的运动,轴立即停止

3

立即中断脉冲发送,轴立即停止

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

RAPIDSTOP(2)
WAIT IDLE(0)
BASE(0)
DPOS=0
ATYPE=1
UNITS=10000
SPEED=500
ACCEL=1000
DECEL=1000        '减速度
FASTDEC=10000     '快减速
TRIGGER
MOVE(1000)        '当前运动
MOVE(-1000)       '缓冲运动
DELAY(1000)       '延时1s后CANCEL生效
CANCEL(0)
END

CANCEL(0)效果如下:

MOVE(1000)执行1s之后被取消,缓冲运动继续运行。

pYYBAGK8KcKABo15AACCcKQ4DL4895.png

CANCEL(1)效果如下:

MOVE(1000)执行完,缓冲运动被取消。

poYBAGK8KdmAEjJoAAB-nKpZFEU738.png

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

pYYBAGK8KfOAOzQJAAB8uHGiLxc874.png

CANCEL(3)效果如下:

MOVE(1000)执行1s之后急停。

poYBAGK8KgSAZv_NAAB8Pj8eaCU658.png

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

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    112

    文章

    16073

    浏览量

    176977
  • 运动控制器
    +关注

    关注

    2

    文章

    389

    浏览量

    24617
  • EtherCAT总线
    +关注

    关注

    5

    文章

    68

    浏览量

    5359
收藏 人收藏

    评论

    相关推荐

    运动控制器CT1101/包装机控制器开发/深圳专业控制器设计

    设置.◆预备吸料时间设置.◆清网时间参数设置.◆清网间隔时间设置◆3路继电器控制输出(报警、吸料、除尘)◆2路数字量保护输入(电机过载等) 单运动
    发表于 12-28 09:59

    运动控制器CT1102/包装机控制器开发/包装设备控制器

    设置.◆预备吸料时间设置.◆清网时间参数设置.◆清网间隔时间设置◆3路继电器控制输出(报警、吸料、除尘)◆2路数字量保护输入(电机过载等) 单运动
    发表于 12-28 10:03

    一种基于MCX514的四运动控制器设计方案

    在数控行业,经常会用到运动控制器,下面介绍一种基于MCX514的四运动控制器设计方案,为其它技术开发人员提供一些参考,方案整体的架构如下图
    发表于 09-22 16:24

    运动控制器如何选择

    插补并其他联动、加速曲线自动控制等高级功能; DMC600M 系列运动控制器,固件已嵌入 DMC 运动
    发表于 09-12 11:36

    运动技术运动控制器EtherCAT总线快速入门

    、EtherCAT 总线的使用、示波器的应用、多任务运行的特点、运动控制器中断的应用、U盘接口的使用、ZDevelop 编程软件的使用、运动控制器的基础
    发表于 09-07 06:59

    四元数数控:深圳运动控制器是怎么工作的?

    ,从而帮助企业创造更多的价值。四元数运动控制器:单张运动控制卡最多达8运动
    发表于 12-29 11:26

    运动控制器的单持续运动设置

    运动控制器有专用的持续运动控制指令运动控制器持续发脉冲,
    发表于 02-17 14:03

    PCL6143运动控制器原理及应用

    PCL6143运动控制器的原理及应用 可以用于设计开发相应的芯片电路。介绍了PCL6143 的功能结构、主要寄存以及指令系统。设计了一款基于PC104总线的四
    发表于 09-26 08:14

    MCX314As型四运动控制器原理及应用

    MCX系列运动控制器是日本NOVA公司设计的专用电路,其中MCX314As是NOVA公司最新的推出的4运动控制器,是对MCX314功能的改
    发表于 02-19 11:02 6814次阅读
    MCX314As型四<b class='flag-5'>轴</b><b class='flag-5'>运动</b><b class='flag-5'>控制器</b>原理及应用

    基于DSP的多运动控制器的研究与设计

    基于DSP的多运动控制器的研究与设计。
    发表于 03-29 14:11 7次下载

    基于GUC运动控制器指令运动状态检测

    在Windows 系统下使用运动控制器,首先要安装驱动程序。运动控制器的驱动程序存放在产品配套光盘的Windows\Driver文件夹下。运动
    发表于 10-11 14:08 4次下载
    基于GUC<b class='flag-5'>运动</b><b class='flag-5'>控制器</b><b class='flag-5'>指令</b>及<b class='flag-5'>运动</b>状态检测

    DMC660MF六运动控制器的示教系统的简易说明

    本文档的主要内容详细介绍的是DMC660MF六运动控制器的示教系统的简易说明
    发表于 10-26 08:00 13次下载
    DMC660MF六<b class='flag-5'>轴</b><b class='flag-5'>运动</b><b class='flag-5'>控制器</b>的示教系统的简易<b class='flag-5'>说明</b>

    基于运动控制芯片MCX314As的多运动控制器的设计

    以 TMS320LF2407A 和 MCX314As 运动控制芯片为核心硬件, 自主研发了基于 TMS320LF2407A 和 MCX314As 的多运动
    发表于 05-19 15:17 24次下载

    全国产EtherCAT运动控制边缘控制器(四):参数配置与单运动PC上位机C++控制

    全国产EtherCAT运动控制边缘控制器参数设置与单
    的头像 发表于 09-27 15:42 648次阅读
    全国产EtherCAT<b class='flag-5'>运动</b><b class='flag-5'>控制</b>边缘<b class='flag-5'>控制器</b>(四):<b class='flag-5'>轴</b><b class='flag-5'>参数</b>配置与单<b class='flag-5'>轴</b><b class='flag-5'>运动</b>PC上位机C++<b class='flag-5'>控制</b>

    EtherCAT运动控制边缘控制器ZMC432H的参数配置和单运动控制

    全国产EtherCAT运动控制边缘控制器ZMC432H是正运动的一款软硬件全国产自主可控,运动控制
    的头像 发表于 10-16 09:49 831次阅读
    EtherCAT<b class='flag-5'>运动</b><b class='flag-5'>控制</b>边缘<b class='flag-5'>控制器</b>ZMC432H的<b class='flag-5'>轴</b><b class='flag-5'>参数</b>配置和单<b class='flag-5'>轴</b><b class='flag-5'>运动</b><b class='flag-5'>控制</b>