快速入门 | 篇十九:正运动技术运动控制器多轴同步与电子凸轮指令简介

点击蓝字  关注伺服与运动控制


正运动技术运动控制器同步运动指令的使用


今天,正运动技术来分享一下,运动控制器多轴同步与电子凸轮指令。这一章节,我们主要分享运动叠加、电子齿轮、电子齿轮2和连接速度等多轴同步指令,以及凸轮表运动、跟随凸轮表运动、自动凸轮和自动凸轮2等凸轮运动指令。

1.电脑1台,安装ZDevelop V3.10及以上版本软件;

2.控制器1个;

3.24V直流电源1个;

4.驱动器、电机若干;

5.控制器接线端子若干;

6.网线若干;

7.连接线若干;

8.输入输出设备、扩展模块、人机界面等根据实际需求选择。

接线参考

本节指令一览

基础运动指令

进阶运动指令

ADDAX 运动叠加

CAM 凸轮表运动

CONNECT 电子齿轮

CAMBOX 跟随凸轮表运动

CONNPATH 同步运动2

MOVELINK 自动凸轮

CLUTCH_RATE 连接速度

MOVESLINK 自动凸轮2

1ADDAX –运动叠加

语法:

叠加:ADDAX(叠加轴号) AXIS(被叠加轴号)

取消叠加:ADDAX(-1) AXIS(被叠加轴号)  

ADDAX指令将2个或多个运动叠加形成较复杂的运动轨迹。

ADDAX指令把叠加轴的目标位置(DPOS)的变化,附加到指令指向的轴的任意运动上。叠加轴可以是任一轴,不一定在系统里物理存在,支持虚拟轴叠加。

ADDAX指令发出后两轴的链路保持连接,指定叠加轴上的进一步运动被附加到基准轴上。直到使用ADDAX(-1)取消轴的连接。

ADDAX指令叠加的是脉冲个数,而不是设置的UNITS单位。

转换关系:叠加轴运动距离*叠加轴UNITS/被叠加轴UNITS=被叠加轴运动距离。

假设轴A的UNITS是100,轴B的UNITS是50,叠加轴运动100。

把轴A的运动叠加到轴B,叠加轴轴A显示运动了100,轴B运动了100*100/50=200。

把轴B的运动叠加到轴A,叠加轴轴B显示运动了100,轴A运动了100*50/100=50。

轴之间不能相互同时叠加,A叠加到B后,B不能再叠加到A。

支持串联叠加,A运动叠加到B,B在叠加到C。

支持并联叠加,A运动同时叠加到B、C。

叠加时速度从被叠加轴开始变化,加减速按照叠加轴加减速及两轴UNITS比例确定。

ADDAX在轴MTYPE为CONNFRAME或CONNREFRAME的时候不起作用。

例子:

RAPIDSTOP(2)WAIT  IDLEBASE(0,1)DPOS=0,0ATYPE=1,1UNITS=100,100     '脉冲比例为1:1    SPEED=100,100ACCEL=1000,1000  DECEL=1000,1000   ADDAX(0)  AXIS(1)    '轴0的运动叠加到轴1TRIGGERMOVE(200)  AXIS(0)MOVE(-100)  AXIS(1)WAIT IDLE             '等待运行完ADDAX(-1)  AXIS(1)      '取消叠加

叠加前:

叠加后:

后续给轴0发运动指令,轴0轴1一起运动,仍保持叠加,直到ADDAX(-1)  AXIS(1)取消叠加。


2CONNECT –电子齿轮

将当前轴的目标位置与驱动轴的测量位置通过电子齿轮连接。

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

电子齿轮的连接比率:比率可正可负,可为小数,连接的是脉冲个数,要考虑不同轴UNITS的比例。

比率可以通过重复调用CONNECT指令动态变化,连接成功后保持连接状态,取消连接时用CANCEL。

两轴连接成功之后,连接轴跟随被连接轴运动,两轴的运动同时开启同时停止,连接轴的运动速度自动计算,连接比率过大会导致连接轴的速度过大。

连接状态下无法单独给连接轴发送运动指令。

假设连接轴0的UNIST为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,1UNITS=10,100DPOS=0,0SPEED=100,100ACCEL=1000,1000DECEL=1000,1000TRIGGER              '自动触发示波器MOVE(100)  AXIS(1)         '轴1运动100,此时轴0不动WAIT IDLE(1)                      '上一段运动不连接CONNECT(1,1)  AXIS(0)    '轴0连接到轴1,比例为1MOVE(100)  AXIS(1)          '轴1运动100,轴0运动1000

轴0目标位置:DPOS(0)=DPOS(1)*UNITS(1)*ratio/UNITS(0)=100*100*1/10=1000

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

轴0目标位置:DPOS(0)=DPOS(1)*UNITS(1)*ratio/UNITS(0)=100*100*0.5/10=500


3CONNPATH — 电子齿轮2

将当前轴的目标位置驱动轴的插补矢量长度通过电子齿轮连接。

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

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

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

电子齿轮的连接比率:比率可正可负,可为小数,连接的是脉冲个数,要考虑不同轴UNITS的比例。

比率可以通过重复调用CONNPATH指令动态变化,连接成功后保持连接状态,取消连接时用CANCEL。

两轴连接成功之后,连接轴跟随被连接轴运动,两轴的运动同时开启同时停止,连接轴的运动速度自动计算,连接比率过大会导致连接轴的速度过大。

连接状态下无法单独给连接轴发送运动指令。

假设连接轴0的UNIST为10,被连接轴1的UNITS为100,使用CONNPATH连接,比率ratio为2,CONNPATH(0.5,1) AXIS(0) 。

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

例一:连接到插补主轴
RAPIDSTOP(2)WAIT  IDLE(0)WAIT  IDLE(1)WAIT  IDLE(2)BASE(0,1,2)DPOS=0,0,0ATYPE=1,1,1UNITS=100,100,100SPEED=100,100,100ACCEL=1000,1000,1000DECEL=1000,1000,1000       TRIGGER                  '自动触发示波器CONNPATH(1,0)  AXIS(2)   '轴2连接到插补主轴轴0,比例为1MOVE(100,100)            '轴1轴0插补运动

连接在插补运动主轴轴0上,连接轴轴2的运动距离为插补运动合成距离。

例二:CONNPATH与CONNECT的效果对比,例一CONNPATH换成CONNECT。
RAPIDSTOP(2)WAIT  IDLE(0)WAIT  IDLE(1)WAIT  IDLE(2)BASE(0,1,2)DPOS=0,0,0ATYPE=1,1,1UNITS=100,100,100SPEED=100,100,100ACCEL=1000,1000,1000DECEL=1000,1000,1000       TRIGGER                  '自动触发示波器CONNECT(1,0)  AXIS(2)   '轴2连接到插补主轴轴0,比例为1MOVE(100,100)            '轴1轴0插补运动

 同样的例程,CONNECT只能连接到单个轴运动。

例三:连接到插补从轴,例一改变连接轴。
RAPIDSTOP(2)WAIT  IDLE(0)WAIT  IDLE(1)WAIT  IDLE(2)BASE(0,1,2)DPOS=0,0,0ATYPE=1,1,1UNITS=100,100,100SPEED=100,100,100ACCEL=1000,1000,1000DECEL=1000,1000,1000       TRIGGER                  '自动触发示波器CONNPATH(2,1)  AXIS(2)      '轴2连接到轴1,比例为2MOVE(100,100)         '轴1轴0插补运动MOVE(100)  AXIS(1)     '轴1运动100

连接到插补的从轴可以连接成功,但无法跟随插补运动。

 


4CLUTCH_RATE — 连接速度

CONNECT连接的速度,默认值1000000,用于定义连结率从0到设置倍率的改变时间,ratio/秒。

CONNPATH同样适用。

采用默认值时根据连接的倍率自动计算连接轴的速度与加速度,实际连接比例为设置的比例。

设置值如果不能远大于CONNECT连接比例的话,实际连接比例会减小。

当设置为0时,根据跟随轴的速度/加速度参数来跟踪连接,比较适合于手轮运动(当速度不够高时可能导致要持续运动一段时间才能结束)。

例一:CLUTCH_RATE=1
RAPIDSTOP(2)WAIT  IDLE(0)WAIT  IDLE(1)BASE(0,1)ATYPE=1,1DPOS=0,0UNITS=100,100SPEED=100,100ACCEL=1000,1000DECEL=1000,1000CLUTCH_RATE=1            '设置连接速度,倍率/sTRIGGER                    '自动触发示波器CONNECT(2,1)  AXIS(0)        '连接倍率为2,需要2秒建立连接MOVE(200)  AXIS(1)            '运动轴1,轴0跟随

实际连接比例小于设置比例。

例二:CLUTCH_RATE=3
RAPIDSTOP(2)WAIT  IDLE(0)WAIT  IDLE(1)BASE(0,1)ATYPE=1,1DPOS=0,0UNITS=100,100SPEED=100,100ACCEL=1000,1000DECEL=1000,1000CLUTCH_RATE=3            '设置连接速度,倍率/sTRIGGER                    '自动触发示波器CONNECT(2,1)  AXIS(0)        '连接倍率为2,需要2秒建立连接MOVE(200)  AXIS(1)            '运动轴1,轴0跟随

实际连接比例小于设置比例,值越大越接近设置比例。

例三:CLUTCH_RATE=1000000
RAPIDSTOP(2)WAIT  IDLE(0)WAIT  IDLE(1)BASE(0,1)ATYPE=1,1DPOS=0,0UNITS=100,100SPEED=100,100ACCEL=1000,1000DECEL=1000,1000CLUTCH_RATE=1000000            '设置连接速度,倍率/sTRIGGER                    '自动触发示波器CONNECT(2,1)  AXIS(0)        '连接倍率为2,需要2秒建立连接MOVE(200)  AXIS(1)            '运动轴1,轴0跟随

实际连接比例为设置比例。

例四:CLUTCH_RATE=0
RAPIDSTOP(2)WAIT  IDLE(0)WAIT  IDLE(1)BASE(0,1)ATYPE=1,1DPOS=0,0UNITS=100,100SPEED=100,100ACCEL=1000,1000DECEL=1000,1000CLUTCH_RATE=0            '设置连接速度,倍率/sTRIGGER                    '自动触发示波器CONNECT(2,1)  AXIS(0)        '连接倍率为2,需要2秒建立连接MOVE(200)  AXIS(1)            '运动轴1,轴0跟随

随轴运动轴的的速度/加速度参数运动,实际连接比例为设置比例。

前三种情况两个轴都是同步的,最后一种情况当比例不为1的时候不同步。


5CAM –凸轮表运动

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

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

start point:起始点TABLE编号,存储第一个点的位置。

end point:结束点TABLE编号。

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

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

运动的总时间由设置速度和第四个参数决定,运动的实际速度根据TABLE轨迹与时间自动匹配,轨迹一定的情况下,时间越短,运动速度越大。

TBALE数据需要手动设置,第一个数据为引导点,建议设为0。

请确保指令传递的距离参数*UNITS是整数个脉冲,否则出现浮点数会导致运动有细微误差。

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

TABLE存储的凸轮表参数:

运动轨迹:

每个凸轮指令运动总时间=distance/speed=300/200=1.5s

例二:高速高精度运动上的应用
DIM  num_p,scale,m,t   '变量定义num_p=100scale=500FOR p=0 TO num_p   'table存储凸轮表运动参数  TABLE(p,((-SIN(PI*2*p/num_p)/(PI*2))+p/num_p)*scale)NEXT
RAPIDSTOP(2)WAIT  IDLE(0)WAIT  IDLE(1)
BASE(0)      '选择轴0DEFPOS(0)UNITS=500SPEED=1000ACCEL=1000000DECEL=1000000TRIGGER
m=10        '代表距离的倍数t=0.3       '运行时间SPEED=1000CAM(0,100,m,SPEED*t)WAIT IDLE
m=10t=0.3SPEED=1000CAM(0,100,-m,SPEED*t)WAIT IDLE
m=10t=0.2SPEED=500CAM(0,100,m,SPEED*t)WAIT IDLE
m=10t=0.2SPEED=500CAM(0,100,-m,SPEED*t)WAIT IDLE
m=20t=0.3SPEED=1000CAM(0,100,m,SPEED*t)WAIT IDLE
m=20t=0.5SPEED=500CAM(0,100,-m,SPEED*t)WAIT IDLE

TABLE存储的凸轮表参数:

从TABLE(0)=0开始,存储数据大小模拟正弦函数曲线逐渐增加,到TABLE(100)=500结束。

六段凸轮表运动,运动总时间1800ms。实际发出脉冲数=m*table数据,针对一个段凸轮运动,DPOS=实际发出脉冲数/UNITS=10*500/500=10,第一段运动时间300ms。

 


6CAMBOX –凸轮表运动

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

语法:CAMBOX(start_point, end_point, table_multiplier, link_distance , link_axis[, link_options][, link_pos][, link_offpos])

start point:起始点TABLE编号,存储第一个点的位置。

end point:结束点TABLE编号。

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

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

link_axis:参考轴轴号。

link_options:与参考轴的连接方式,不同的二进制位代表不同的意义。

模式值

描述

1

bit0

当参考轴MARK信号事件触发时,当前轴与参考轴开始进行连接运动。

2

bit1

当参考轴运动到设定的绝对位置时,当前轴与参考轴开始连接运动。

4

bit2

自动重复连续双向运行。(通过设置REP_OPTION=1,可以取消重复)。

16

bit4

从中间某个位置启动,配合掉电中断实现恢复凸轮。

32

bit5

只有参考轴的正向运动才连接。

256

bit8

当参考轴MARKB信号事件触发时,当前轴与参考轴开始进行连接运动,锁存轴号为参考轴的轴号,需要最新固件支持。

link_pos:当link_options参数设置为2时,该参数表示连接开始启动的绝对位置。

link offpos:当link_options参数bit4置为1时,该参数表示主轴已经运行完的相对位置。

连接到参考轴后,参考轴停止,跟随轴不管有没有运动完也停止。

运动的总时间由设置速度和第四个参数决定,运动的实际速度根据TABLE轨迹与时间自动匹配,轨迹一定的情况下,时间越短,运动速度越大。

两个或多个CAMBOX指令可以同时使用同一段TABLE数据区进行操作。

TBALE数据需要手动设置,第一个数据为引导点,建议设为0。

请确保指令传递的距离参数*UNITS是整数个脉冲,否则出现浮点数会导致运动有细微误差。

例一:连接到参考轴之后,若参考轴停止运动,则凸轮轴跟随停止。
RAPIDSTOP(2)WAIT  IDLE(0)WAIT  IDLE(1)BASE(0,1)      '选择轴号ATYPE=1,1     '脉冲方式步进或伺服DPOS = 0,0UNITS = 100,100  '脉冲当量SPEED = 200,200ACCEL = 2000,2000DECEL = 2000,2000DIM  rad, xFOR i=0 TO 100 STEP 1    rad = i* 2 * PI/100   '转换为弧度    x = 1000 * (1-COS(rad))    TABLE(i,x)        '存储TABLENEXT iTRIGGER              '自动触发示波器CAMBOX(0,100, 100, 2000, 1,2,100)  AXIS(0) '参考轴轴1运动到100位置时,跟随轴轴0启动VMOVE(1)  AXIS(1)

例二:连接到参考轴之后,若参考轴停止运动,则凸轮轴跟随停止。
RAPIDSTOP(2)WAIT  IDLE(0)WAIT  IDLE(1)BASE(0,1)      '选择轴号ATYPE=1,1     '脉冲方式步进或伺服DPOS = 0,0UNITS = 100,100  '脉冲当量SPEED = 200,200ACCEL = 2000,2000DECEL = 2000,2000DIM  rad, xFOR i=0 TO 100 STEP 1    rad = i* 2 * PI/100   '转换为弧度    x = 1000 * (1-COS(rad))    TABLE(i,x)        '存储TABLENEXT iTRIGGER              '自动触发示波器CAMBOX(0,100, 100, 2000, 1,2,100)  AXIS(0) '参考轴轴1运动到100位置时,跟随轴轴0启动MOVE(1500)  AXIS(1)

参考轴1运动1500便停止,跟随轴轴0也停下,无法将调用的TABLE表的数据运动完。

7MOVELINK –自动凸轮

自定义凸轮运动,不用计算凸轮表,该运动带有可设置的加减速阶段。

将跟随轴连接到参考轴上,控制跟随轴跟随参考轴运动。

连接轴的距离分成3个阶段应用于参考轴的运动,分别是加速部分、匀速部分和减速部分。

语法:MOVELINK (distance,ink dist,link acc,link dec,link axis[,link options] [,ink pos][,link offpos])  

distance:从连接开始到结束,跟随轴移动的距离,此参数可正可负,为正数正方向跟随,为负数负方向跟随,采用units单位。

link dist:参考轴在连接的整个过程中移动的绝对距离,采用units单位。

link acc:在跟随轴加速阶段,参考轴移动的绝对距离,采用units单位。

link dec:在跟随轴减速阶段,参考轴移动的绝对距离,采用units单位。

link axis:参考轴的轴号。

后三个参数选择连接模式,可以不设置。

link options:连接模式选项,不同的二进制位代表不同的意义。

模式值

描述

1

位0

连接精确开始于参考轴上MARK事件被触发的时刻。

2

位1

连接开始于参考轴到达一个绝对位置时(见link pos参数描述)。

4

位2

当此位被设置时,MOVELINK会自动重复执行并且可以反向(这个模式可以通过设置轴参数REP_OPTION的第1位为1来清除)。

8

位3

当设置时,采用S曲线加减速。20170502以上固件支持。

16

位4

从中间某个位置启动,配合掉电中断实现恢复跟随。

32

位5

只有参考轴为正向运动才连接。

256

位8

连接精确开始于参考轴上MARKB事件被触发的时刻,需要最新固件支持。

link pos:当link options参数bit1置为1时,该参数表示基本轴在该绝对位置值时,连接开始。

link offpos:当link_options参数bit4置为1时,该参数表示主轴已经运行完的相对位置。20170428以上固件支持。

在加速和减速阶段为了与速度匹配,link distance(基本轴运动距离)必须是distance(跟随轴运动距离)的两倍。

请确保指令传递的距离参数*UNITS是整数个脉冲,否则出现浮点数会导致运动有细微误差。

例一:不设置加减速
RAPIDSTOP(2)WAIT  IDLE(0)WAIT  IDLE(1)BASE(0,1)    '轴0为跟随轴,轴1为参考轴UNITS=100,100ATYPE=1,1DPOS=0,0SPEED=100,100ACCEL=2000,2000DECEL=2000,2000TRIGGER              '自动触发示波器MOVELINK(100,100,0,0,1)  AXIS(0)     '不设置加减速阶段MOVE(150)  AXIS(1)      '轴1运动150,轴0跟随轴1运动完100

不设置加减速阶段时,效果与CONNECT相同,区别在不需要考虑UNITS的不同,且不会有累积误差。运动比例为前两个参数的比值,此时运动比例1:1。

例二:飞剪应用,不设置连接模式link options。

假设要切的型材长度为4m,工作台运行距离1m。

轴1为参考轴(型材传送),轴0为跟随轴(追剪工作台)。

RAPIDSTOP(2)WAIT  IDLE(0)WAIT  IDLE(1)        BASE(0,1)UNITS=100000,100000ATYPE=1,1DPOS=0,0SPEED=1,1    '型材运行速度1m/s,60m/minACCEL=2,2DECEL=2,2MERGE=on,on
MOVELINK(0,1,0,0,1)  AXIS(0)   '型材运动1m前,工作台静止MOVELINK(0.4,0.8,0.8,0,1)  AXIS(0)  '工作台加速阶段,工作台运动0.4,型材运动0.8MOVELINK(0.2,0.2,0,0,1)  AXIS(0)    '速度同步跟随0.2MOVE_OP2(0,on,1000)     '刀具下剪,1s后回升(时间要计算好)MOVELINK(0.4,0.8,0,0.8,1)  AXIS(0)  '工作台减速阶段,工作台运动0.4,型材运动0.8MOVELINK(-1,1.2,0.5,0.5,1) AXIS(0) '工作台回到起始点,工作台加速运动0.5,再减速运动0.5,总距离1;此段型材运动1.2
TRIGGER '自动触发示波器VMOVE(1) AXIS(1)    '型材持续运动

例三:设置link options bit3=1时,从轴追剪轴采用S曲线加减速。
RAPIDSTOP(2)WAIT  IDLE(0)WAIT  IDLE(1)BASE(0,1)UNITS=100000,100000ATYPE=1,1DPOS=0,0SPEED=1,1      ''型材运行速度1m/s,60m/minACCEL=2,2DECEL=2,2SRAMP=200,200     '设置S曲线时间 OP(0,OFF)
MOVELINK(0,1,0,0,1,8)  AXIS(0)   '型材运动1m前,工作台静止MOVELINK(0.4,0.8,0.8,0,1,8)  AXIS(0)  '工作台加速阶段MOVELINK(0.2,0.2,0,0,1,8)  AXIS(0)    '速度同步跟随0.2mMOVE_OP2(0,on,1000)   '刀具下剪,1s后回升(时间要计算好)MOVELINK(0.4,0.8,0,0.8,1,8)  AXIS(0)  '工作台减速阶段MOVELINK(-1,1.2,0.5,0.5,1,8) AXIS(0) '工作台回到起始点
TRIGGER '自动触发示波器VMOVE(1) AXIS(1) '型材持续运动

参考轴和跟随轴速度曲线平滑。



8MOVESLINK — 自动凸轮2

此指令用于自定义的凸轮运动,该运动自动规划中间曲线,不用计算凸轮表。

功能与MOVELINK相同,仅是参数设置区别,第3、4个参数,MOVELINK设置加减速过程的距离参数,MOVESLINK设置加减速过程的速度比例。

被连接轴为参考轴,连接轴为跟随轴。

MOVESLINK (distance,link dist,start sp,end sp,link axis [,link options] [,ink pos] [,link offpos]) 

可选参数不填时,逗号不能省掉,控制器根据参数的位置来判断是什么参数。

distance:从连接开始到结束,跟随轴移动的距离,此参数可正可负,为正数正方向跟随,为负数负方向跟随,采用units单位。

link dist:参考轴在连接的整个过程中移动的绝对距离,采用units单位。

start sp:启动时跟随轴和参考轴的速度比例,units/units单位,负数表示跟随轴负向运动。

end sp:结束时跟随轴和参考轴的速度比例,units/units单位, 负数表示跟随轴负向运动 注:当start sp = end sp = distance/link dist时,匀速运动。

link axis:参考轴的轴号。

link options:连接模式选项,不同的二进制位代表不同的意义。

模式值

描述

1

位0

连接精确开始于参考轴上MARK事件被触发的时刻

2

位1

连接开始于参考轴到达一个绝对位置时(见link pos参数描述)

4

位2

当此位被设置时,MOVELINK会自动重复执行并且可以反向(这个模式可以通过设置轴参数REP_OPTION的第1位为1来清除)

8

位3

当设置时,采用S曲线加减速。20170502以上固件支持

16

位4

从中间某个位置启动,配合掉电中断实现恢复跟随

32

位5

只有参考轴为正向运动才连接

256

位8

连接精确开始于参考轴上MARKB事件被触发的时刻,需要最新固件支持

link pos:当link options参数bit1置为1时,该参数表示参考轴在该绝对位置值时,连接开始。

link offpos:当link_options参数bit4置为1时,该参数表示主轴已经运行完的相对位置。20170428以上固件支持。

在加速和减速阶段为了与速度匹配,下一条MOVESLINK的start sp必须与当前MOVESLINK的end sp相同。

请确保指令传递的距离参数*UNITS是整数个脉冲,否则出现浮点数会导致运动有细微误差。

例一:SRAMP=200,200

加工过程中,参考轴为型材,工作台为跟随轴,工作台运动距离1,型材运动距离4。

RAPIDSTOP(2)WAIT  IDLE(0)WAIT  IDLE(1)BASE(0,1)UNITS=10000,10000ATYPE=1,1DPOS=0,0SPEED=1,1      '型材运行速度1m/s,60m/minACCEL=2,2DECEL=2,2SRAMP=200,200OP(0,OFF)
MOVESLINK(0,1,0,0,1)  AXIS(0)   '型材运动1单位前,工作台静止MOVESLINK(0.4,0.8,0,1,1)  AXIS(0)  '工作台加速阶段,工作台运动0.4,型材运动0.8,加速时,跟随轴的速度为0,故跟随轴和参考轴的速度比例为0,加速完成,跟随轴和参考轴的速度相等,比例为1MOVESLINK(0.2,0.2,1,1,1)  AXIS(0)    '速度跟随阶段,速度一致,保持同步运动0.2MOVESLINK(0.4,0.8,1,0,1)  AXIS(0)  '工作台减速阶段,工作台运动0.4,型材运动0.8,减速时,跟随轴和参考轴的速度相等,比例为1,减速完成,跟随轴的速度为0,故跟随轴和参考轴的速度比例为0MOVESLINK(-1,1.2,0,0,1) AXIS(0) '工作台回到起始点,工作台运动-1,型材运动1.2
TRIGGER '自动触发示波器VMOVE(1) AXIS(1) '型材持续运动

对轴0和轴1的速度曲线设置平滑。

例二:SRAMP=0,0
RAPIDSTOP(2)WAIT  IDLE(0)WAIT  IDLE(1)BASE(0,1)UNITS=10000,10000ATYPE=1,1DPOS=0,0SPEED=1,1      '型材运行速度1m/s,60m/minACCEL=2,2DECEL=2,2SRAMP=0,0OP(0,OFF)
MOVESLINK(0,1,0,0,1)  AXIS(0)   '型材运动1单位前,工作台静止MOVESLINK(0.4,0.8,0,1,1)  AXIS(0)  '工作台加速阶段,工作台运动0.4,型材运动0.8,加速时,跟随轴的速度为0,故跟随轴和参考轴的速度比例为0,加速完成,跟随轴和参考轴的速度相等,比例为1MOVESLINK(0.2,0.2,1,1,1)  AXIS(0)    '速度跟随阶段,速度一致,保持同步运动0.2MOVESLINK(0.4,0.8,1,0,1)  AXIS(0)  '工作台减速阶段,工作台运动0.4,型材运动0.8,减速时,跟随轴和参考轴的速度相等,比例为1,减速完成,跟随轴的速度为0,故跟随轴和参考轴的速度比例为0MOVESLINK(-1,1.2,0,0,1) AXIS(0) '工作台回到起始点,工作台运动-1,型材运动1.2
TRIGGER '自动触发示波器VMOVE(1) AXIS(1) '型材持续运动

S曲线只针对型材,工作台速度不管设不设置曲线自动平滑。

正运动技术运动控制器多轴同步与电子凸轮指令的简介就讲到这里。更多学习视频及图文详解请关注我们的公众号“正运动小助手”。

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

回顾往期内容


快速入门|篇十八:正运动技术脉冲型运动控制器的使用
快速入门|篇十七:运动控制器多轴插补运动指令的使用
快速入门|篇十六:正运动控制器EtherCAT总线快速入门

快速入门|篇十五:运动控制器运动缓冲简介

快速入门|篇十四:运动控制器基础轴参数与基础运动控制指令
快速入门|篇十三:正运动技术运动控制器ZDevelop 编程软件的使用
快速入门|篇十二:正运动技术运动控制器U盘接口的使用
快速入门|篇十一:正运动技术运动控制器中断的应用

快速入门|篇十:运动控制器多任务运行特点
快速入门|篇九:如何进行运动控制器示波器的应用?
快速入门|篇八:如何进行运动控制器EtherCAT总线的基础使用?
快速入门|篇七:如何进行运动控制器ZCAN总线扩展模块的使用?
快速入门|篇六:如何进行运动控制器数据与存储的应用?

快速入门|篇五:如何进行运动控制器输入/输出IO的应用?
快速入门|篇四:如何进行运动控制器与触摸屏通讯?
快速入门|篇三:如何进行运动控制器ZPLC程序开发?
快速入门|篇二:如何进行运动控制器ZBasic程序开发?
快速入门|篇一:如何进行运动控制器固件升级?


关于正运动技术



正运动技术是一家专注于运动控制技术研发与应用的国家级高新技术企业,主要从事运动控制器、运动控制卡、IO扩展模块、运动显控一体机等系列产品的研发、生产、销售和服务。

公司汇集了来自华为、中兴等公司的优秀人才,在坚持自主创新的同时,积极联合各大高校致力于运动控制技术研究与应用,是国内工控领域发展最快的企业之一,也是国内完整掌握运动控制核心技术和实时工控软件平台技术的企业。

– END –

热门文章

运动控制卡应用开发教程之C#

永磁同步电机与交流异步电机

村田深圳一工厂突然关闭

CAN总线教程,超适合新手

ABB拟剥离三项业务!

类似文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理

在线客服
在线客服
QQ客服