快速入门 | 篇十七:运动控制器多轴插补运动指令的使用
本节内容主要分为三大部分:插补运动、轨迹前瞻以及SP速度指令。一插补运动插补是机床数控系统依照一定方法确定刀具运动轨迹的过程,插补是一个实时进行的数据密化的过程,不论是何种插补算法,运算原理基本相同,其作用都是根据给定的信息进行数据计算,不断计算出参与插补运动的各坐标轴的进给指令,然后分别驱动各自相应的执行部件产生协调运动,以使被控机械部件按理想的路线与速度移动。(一)插补原理插补最常见的两种方式是直线插补和圆弧插补。插补运动至少需要两个轴参与,进行插补运动时,将规划轴映射到相应的机台坐标系中,运动控制器根据坐标映射关系,控制各轴运动,实现要求的运动轨迹。插补运动指令会存入运动缓冲区,再依次从运动缓冲区中取出指令执行,直到插补运动全部执行完。1.直线插补直线插补方式中,两点间的插补沿着直线的点群来逼近。首先假设在实际轮廓起始点处沿X方向走一小段(给一个脉冲当量轴走一段固定距离),发现终点在实际轮廓的下方,则下一条线段沿Y方向走一小段,此时如果线段终点还在实际轮廓下方,则继续沿Y方向走一小段,直到在实际轮廓上方以后,再向X方向走一小段,依此类推,直到到达轮廓终点为止。这样实际轮廓是由一段段的折线拼接而成,虽然是折线,但每一段插补线段在精度允许范围内非常小,那么此段折线还是可以近似看做一条直线段,这就是直线插补。正运动控制器采用硬件插补,插补精度在一个脉冲内,所以轨迹放大依然平滑。假设轴需要在在XY平面上从点(X0,Y0)运动到点(X1,Y1),其直线插补的加工过程如下图1所示。
图1给轴发送一个脉冲运动的距离由电机的特性决定,不同的轴单个脉冲运动距离有所不同。2.圆弧插补圆弧插补与直线插补类似,给出两端点间的插补数字信息,以一定的算法计算出逼近实际圆弧的点群,控制轴沿这些点运动,加工出圆弧曲线。圆弧插补可以是平面圆弧(至少两个轴),还可以是空间圆弧(至少三个轴)。假设轴需要在XY平面第一象限走一段逆圆弧,圆心为起点,其圆弧插补的加工过程如下图2所示。
图2控制器的空间圆弧插补功能是根据当前点和圆弧指令参数设置的终点和中间点(或圆心),由三个点确定圆弧,并实现空间圆弧插补运动,坐标为三维坐标,至少需要三个轴分别沿X轴、Y轴和Z轴运动。(二)插补运动参数计算1.二轴直线插补轴0和轴1两轴参与直线插补运动,如下图3,二轴直线插补运动从平面的A点运动到B点,XY轴同时启动,并同时到达终点,设置轴0的运动距离为∆X,轴1的运动距离为∆Y,主轴是BASE的第一个轴(此时主轴为轴0),插补运动参数采用主轴的参数。
图3若插补主轴运动速度为S(主轴轴0的设置速度),各个轴的实际速度为主轴的分速度,不等于S,此时:插补运动的距离:X=[(∆X)2+(∆Y)2]½轴0实际速度:S0=S×∆X/X轴1实际速度:S1=S×∆Y/X2.三轴直线插补轴0、轴1和轴2三轴参与直线插补运动,如下图4,3轴直线插补运动从A点运动到B点,XYZ轴同时启动,并同时到达终点,设置轴0的运动距离为∆X,轴1的运动距离为∆Y,轴2的运动距离为∆Z。
图4若插补主轴轴0的运动速度为S,各个轴的实际速度为主轴的分速度,不等于S,此时:插补运动距离为X=[(∆X)2+(∆Y)2+(∆Z)2]½轴0实际速度:S0=S×∆X/X轴1实际速度:S1=S×∆Y/X轴2实际速度:S1=S×∆Z/X(三)插补运动相关指令1.插补运动指令分类在相对运动指令的基础上加上不同的后缀之后,便具有不同的特点。1)相对运动指令:插补运动的距离参数为与当前插补起点的相对距离。例如MOVE,MOVECIRC。2)绝对运动指令:插补运动的距离参数为相对于原点的绝对距离,在相对运动指令后方加上ABS后缀。例如MOVEABS,MOVECIRCABS。3)SP运动指令:带SP的指令运动速度采用FORCE_SPEED、ENDMOVE_SPEED、STARMOVE_SPEED参数运动,不带SP的运动指令,如上面两类,指令运动速度采用SPEED参数,SP运动指令在相对运动指令或绝对运动指令后方加上SP后缀。例如MOVESP,MOVEABSSP。三类运动的区别采用下方例子展开说明。A.相对运动例子:RAPIDSTOP(2)WAIT IDLE(0)WAIT IDLE(1)BASE(0,1)DPOS=0,0ATYPE=1,1UNITS=100,100SPEED=100,100 '运动速度ACCEL=1000,1000DECEL=1000,1000FORCE_SPEED=150,150 'SP指令速度SRAMP=100,100 'S曲线MERGE=ONTRIGGER '自动触发示波器MOVE(200,150) '第一段终点(200,150)MOVE(100,120) '第二段终点(300,270)
B.绝对运动例子:RAPIDSTOP(2)WAIT IDLE(0)WAIT IDLE(1)BASE(0,1)DPOS=0,0ATYPE=1,1UNITS=100,100SPEED=100,100 '运动速度ACCEL=1000,1000DECEL=1000,1000FORCE_SPEED=150,150 'SP指令速度SRAMP=100,100 'S曲线MERGE=ONTRIGGER '自动触发示波器MOVEABS(200,150) '第一段MOVEABS(100,120) '第二段运动到绝对位置(100,120)
C.SP运动指令例子:RAPIDSTOP(2)WAIT IDLE(0)WAIT IDLE(1)BASE(0,1)DPOS=0,0ATYPE=1,1UNITS=100,100SPEED=100,100 '运动速度ACCEL=1000,1000DECEL=1000,1000FORCE_SPEED=150,150 'SP指令速度SRAMP=100,100 'S曲线MERGE=ONTRIGGER '自动触发示波器MOVE(200,150) '第一段相对运动,速度100MOVESP(100,120) '第二段SP相对运动,速度150
2.插补运动指令
均以相对运动指令为例。① MOVE——直线插补单轴直线运动或多轴直线插补运动,相对运动距离。绝对运动使用MOVEABS指令,SP运动使用MOVESP指令。插补运动参数采用主轴参数,插补运动缓冲在主轴的运动缓冲区。语法:MOVE(distance1 [,distance2 [,distance3 [,distance4...]]])例子:二轴直线插补RAPIDSTOP(2)WAIT IDLE(0)WAIT IDLE(1)BASE(0,1) '选择轴0,轴1ATYPE=1,1UNITS=100,100SPEED=100,100 '运动速度ACCEL=1000,1000DECEL=1000,1000SRAMP=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) '第六段相对运动直线插补合成轨迹如下:起点和终点均为(100,0),逆时针加工。
图10② 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,1UNITS=100,100SPEED=100,100 '运动速度ACCEL=1000,1000DECEL=1000,1000DPOS=0,0SRAMP=100,100 'S曲线MERGE=ONTRIGGER '自动触发示波器 '相对运动参数,绝对运动使用MOVECIRCABS MOVECIRC(100,0,50,0,1) '半径50顺时针画半圆,终点坐标(100,0),圆心坐标(50,0)MOVECIRC(-200,0,-100,0,1) '半径100顺时针画半圆,终点坐标(-100,0),圆心坐标(0,0) '绝对运动参数MOVECIRCABS(100,0,50,0,1) '半径50顺时针画半圆,终点坐标(100,0)MOVECIRCABS(-100,0,0,0,1) '半径100顺时针画半圆,终点坐标(-100,0),圆心坐标(0,0)圆弧插补合成轨迹如下图11:上方相对运动指令和绝对运动指令的运动轨迹相同。
图11③ MHELICAL——圆心螺旋圆心螺旋插补,相对运动。BASE第一轴和第二轴进行圆弧插补,第三轴进行螺旋,相对于起始点。绝对运动MHELICALABS指令,使用自定义速度的连续插补运动可以使用SP后缀的指令。可完整螺旋一圈,从Z方向看为一整圆。语法:MHELICAL(end1,end2,centre1,centre2,direction,distance3,[mode])(end1, end2)终点坐标;( centre1, centre2)圆心坐标;direction方向:0-逆时针,1-顺时针;distance3:第三个轴运动距离mode:第三轴的速度计算值描述0(缺省)第三轴参与插补速度计算1第三轴不参与插补速度计算例子:BASE(0,1,2)ATYPE=1,1,1 '设为脉冲轴类型UNITS=100,100,100SPEED=100,100,100 '主轴速度ACCEL=1000 ,1000,1000 '主轴加速度DECEL=1000 ,1000,1000DPOS=0,0,0MHELICAL(200,-200,200,0,1,100) '原点作为起点,中心(200,0),终点'(200,-200),顺时针,Z轴参与速度计算,运动100
④ MECLIPSE——椭圆椭圆插补,可选螺旋,相对运动。BASE第一轴和第二轴进行椭圆插补,可选第三个轴同步螺旋。绝对运动使用MECLIPSEABS指令,自定义速度的连续插补运动可以使用SP后缀的指令。可画整椭圆。只能画长轴(短轴)与X平行或垂直的椭圆。语法:MECLIPSE (end1, end2, centre1, centre2, direction, adis, bdis[, end3])(end1, end2)终点坐标;( centre1, centre2)中心坐标direction方向:0-逆时针,1-顺时针adis:第一轴的椭圆半径,半长轴或者半短轴均可bdis:第二轴的椭圆半径,半长轴或者半短轴均可,半长轴和半短轴相等时自动为圆弧或螺旋end3:第三个轴的运动距离,需要螺旋时填入例子:RAPIDSTOP(2)WAIT IDLE(0)BASE(0,1,2)ATYPE=1,1,1 '设为脉冲轴类型UNITS=100,100,100SPEED=100,100,100 '主轴速度ACCEL=1000 ,1000,1000 '主轴加速度DECEL=1000 ,1000,1000DPOS=0,0,0TRIGGER '自动触发示波器A.平面椭圆,不螺旋MECLIPSE(0,0,100,0,1,100,50) '中心(100,0),终点(0,0),半短轴50,半长轴100,顺时针画整椭圆,不进行螺旋。
B.椭圆同时螺旋MECLIPSE(0,0,100,0,1,100,50,200) '中心(100,0),终点(0,0),半短轴50,半长轴100,顺时针画整椭圆,同时螺旋。
⑤ MSPHERICAL——空间圆弧空间圆弧插补运动,相对运动,空间圆弧起点为当前点,第二、第三个点由指令指定。绝对运动使用MSPHERICALABS指令,自定义速度的连续插补运动可以使用SP后缀的指令。语法:MSPHERICAL(end1,end2,end3,centre1,centre2,centre3,mode[,distance4][,distance5])(end1, end2, end3)第二个点坐标;( centre1, centre2, centre3)第三个点坐标mode:指定前面两个坐标点的意义值描述0当前点,中间点,终点三点定圆弧end指定圆弧终点,centre指定圆弧的中间点1当前点,圆心,终点定圆弧走最短的圆弧end指定圆弧终点,centre指定圆弧的圆心2当前点,中间点,终点三点定整圆end指定圆弧终点,centre指定圆弧的中间点3当前点,圆心,终点定整圆先走最短的圆弧,再继续走完整圆end指定圆弧终点,centre指定圆弧的圆心distane4:第四轴螺旋的功能,指定第4轴的相对距离,此轴不参与速度计算distane5:第五轴螺旋的功能,指定第5轴的相对距离,此轴不参与速度计算例子:BASE(0,1,2)ATYPE=1,1,1 '设为脉冲轴类型UNITS=100,100,100DPOS=0,0,0SPEED=100,100,100 '主轴速度ACCEL=1000 ,1000,1000 '主轴加速度DECEL=1000 ,1000,1000模式0:当前点,中间点,终点三点定圆弧MSPHERICAL(120,160,400,240,320,300,0) '终点(120,160,400),中间点(240,320,300)
mode 1:当前点,圆心,终点定圆弧,走最短的圆弧MSPHERICAL(120,160,400,120,160,150,1) '终点(120,160,400),圆心(120,160,150)
mode 2:当前点,中间点,终点三点定整圆MSPHERICAL(120,160,400,240,320,300,2) '终点(120,160,400),中间点(240,320,300)
mode 3:当前点,圆心,终点定整圆MSPHERICAL(120,160,400,120,160,150,3) '终点(120,160,400),圆心(120,160,150),先走最短的圆弧(红色部分),再走完整圆
⑥ MOVESPIRAL——渐开线圆弧渐开线圆弧插补运动,相对运动,可选螺旋。当前点和圆心的距离确定起始半径,当起始半径0时角度无法确定,直接从0角度开始。无绝对运动指令,自定义速度的连续插补运动可以使用SP后缀的指令。语法:MOVESPIRAL(centre1,centre2,circles,pitch[,distance3][,distance4])( centre1, centre2)圆心坐标circles:要旋转的圈数,可以为小数圈,负数表示顺时针,每圈终点位置为起点和圆心连线上的一点,见例二pitch:每圈的扩散距离,可以为负distance3:第3轴螺旋的功能,指定第3轴的相对距离,此轴不参与速度计算distance4:第4轴螺旋的功能,指定第4轴的相对距离,此轴不参与速度计算例子:BASE(0,1,2)ATYPE=1,1,1 '设为脉冲轴类型UNITS=100,100,100DPOS=0,0,0SPEED=100,100,100 '主轴速度ACCEL=1000 ,1000,1000 '主轴加速度DECEL=1000 ,1000,1000TRIGGER '自动触发示波器例一:从原点开始扩散MOVESPIRAL(0,0,2.5,30) '此时以起始位置为中心,逆时针旋转2.5圈,每圈扩散30。
例二:圆心(50,50),逆时针扩散MOVESPIRAL (50,50,2.5,30) '起始半径50,以(50,50)为圆心,逆时针旋转2.5圈,每圈向外扩散30
例三:圆心(50,50),顺时针扩散MOVESPIRAL (50,50,-2.5,30) '起始半径50,以(50,50)为圆心,顺时针旋转2.5圈,每圈向外扩散30
例四:圆心(100,100),逆时针扩散并螺旋MOVESPIRAL(100,100,2.5,30,100) '起始半径100,以(100,100)为圆心,逆时针旋转2.5圈,每圈向外扩散30,同时Z轴向上运动到100。
二轨迹前瞻(一)轨迹前瞻的作用在实际加工过程中,为追求加工效率会开启连续插补,运动轨迹的拐角处若不减速,当拐角较大时,会对机台造成较大冲击,影响加工精度。若关闭连续插补,使拐角处减速为0,虽然保护了机台,但是加工效率受到了较大影响,所以提供了前瞻指令,使在拐角处自动判断是否将拐角速度降到一个合理的值,既不会影响加工精度又能提高加工的速度,这就是轨迹前瞻功能的作用。运动控制器的轨迹前瞻可以根据用户的运动路径自动计算出平滑的速度规划,减少机台的冲击,从而提高加工精度。自动分析在运动缓冲区的指令轨迹将会出现的拐点,并依据用户设置的拐角条件,自动计算拐角处的运动速度,也会依据用户设定的最大加速度值计算速度规划,使任何加减速过程中的加减速都不超过ACCEL和DECEL的值,防止对机械部分产生破坏冲击力。使用轨迹前瞻和不使用轨迹前瞻的速度规划情况:假设运动轨迹如下,走一个长方形轨迹,分为四段直线插补运动。
模式一:开启了连续插补后,得出的主轴速度随时间变化的曲线如下,主轴的速度是连续的,轨迹拐角处仍不减速,高速运行时拐角处冲击较大。
模式二:模式一条件下,关闭连续插补,得出的主轴速度随时间变化的曲线如下,每走完一段直线后便减速到0再开始第二段直线运动,加工效率不高。
模式三:模式一条件下,开启连续插补,并设置了轨迹前瞻参数,得出的主轴速度随时间变化的曲线如下,拐角处按照一定的比例减速,加工效率比模式二高。
(二)轨迹前瞻相关指令
1.CORNER_MODE -- 拐角设置轨迹前瞻的主要指令CORNER_MODE,用于拐角处的速度规划,常用的三种模式,根据加工的轨迹的实际要求选择不同的模式。实际应用也可以多个模式同时使用,例如CORNER_MODE =2+8。此参数是在插补运动指令调用前生效,一般在参数初始化中设置拐角模式。CORNER_MODE=2 自动拐角减速减速角度定义查看DECEL_ANGLE和STOP_ANGLE指令,根据减速角度是设置值判断拐角处是否减速。减速拐角参考速度以FORCE_SPEED速度为参考,一定要设置合理的FORCE_SPEED。CORNER_MODE=8 自动小圆限速半径小于设置值时限速,大于限制值时不限速,限制速度按FORCE_SPEED,限速半径FULL_SP_RADIUS设置。限速= FORCE_SPEED * 实际半径/FULL_SP_RADIUS 。CORNER_MODE=32 自动倒角在两条插补运动之间自动做倒角处理,倒角半径参考ZSMOOTH。此倒角针对插补的所有轴。2.DECEL_ANGLE -- 拐角减速开始3.STOP_ANGLE -- 拐角减速结束开始减速角度与结束减速角度的单位是弧度,配合CONER_MODE指令模式2使用。角度转换弧度公式:角度值*(PI/180)DECEL_ANGLE需要与STOP_ANGLE一起配合使用。设置时DECEL_ANGLE的值小于STOP_ANGLE。当实际运动的角度小于DECEL_ANGLE时,不减速。当实际运动的角度处于DECEL_ANGLE(上限)与STOP_ANGLE(下限)之间时才会等比减速。当实际运动的角度大于STOP_ANGLE时,减速到0再开始下一段运动。减速拐角参考速度以FORCE_SPEED强制速度为参考,一定要设置合理的FORCE_SPEED。减速角度是指电机的参考角度相对上一条运动的变化值。如下图30。
图30此角度值不是实际轨迹的角度,是换算到电机变换的角度,此角度值仅为参考。下一插补运动轨迹处于下方时取绝对值。直线与圆弧相连时按照圆弧的切线方向计算角度。4.FULL_SP_RADIUS -- 限速半径小圆限速的最大圆弧半径,单位是UNITS,配合CONER_MODE指令使用。当圆弧半径大于FULL_SP_RADIUS时,速度是用户程序指定的速度值,当半径小于FULL_SP_RADIUS时,控制器会按比例减小速度。实际运行速度VP_SPEED = FORCE_SPEED*radius/FULL_SP_RADIUS。设置自动倒角时为倒角的参考半径。5.ZSMOOTH -- 倒角半径参考倒角半径,配合CONER_MODE指令使用。根据拐角角度自动计算实际拐角半径大小,超过路径时限制为50%。90°时拐角半径为设置值。6.MERGE -- 连续插补MERGE=0N/OFF,设为ON开启连续插补,多段插补运动的之间速度连续,不发生减速;设为OFF关闭连续插补,上一条插补运动执行完减速为0后再开始运行下一条插补运动。7.FORCE_SPEED -- 减速参考SP运动指令参考速度,CONER_MODE指令限速参考。(三)轨迹前瞻应用例程1.CORNER_MODE =2自动拐角减速例子:不使用轨迹前瞻的速度规划RAPIDSTOP(2)WAIT IDLE(0)WAIT IDLE(1)BASE(0,1)ATYPE=1,1UNITS=100,100SPEED=100,100 '运动速度ACCEL=500,500DECEL=500,500DPOS=0,0SRAMP=100,100 'S曲线MERGE=ON '开启连续插补TRIGGER '自动触发示波器MOVE(100,0) '第一段MOVE(0,100) '第二段,运动角度大于90°MOVE(70,80) '第三段,运动角度接近45°MOVE(80,60) '第四段,运动角度小于15°合成插补轨迹,如图31:
图31各轴的速度曲线,如图32:开启的连续插补,所以插补主轴的速度一直为VP_SPEED(0)=100,从下方曲线可以看出在拐角处轴0和轴1的加速度过大,远大于设置值500,这样就会给机台带来较大冲击。
图32例子:使用轨迹前瞻的速度规划RAPIDSTOP(2)WAIT IDLE(0)WAIT IDLE(1)BASE(0,1)ATYPE=1,1UNITS=100,100SPEED=100,100 '运动速度ACCEL=500,500DECEL=500,500DPOS=0,0SRAMP=100,100 'S曲线MERGE=ON '开启连续插补CORNER_MODE=2 '启动拐角减速DECEL_ANGLE = 15 * (PI/180) '设置开始减速角度STOP_ANGLE = 45 * (PI/180) '设置结束减速角度FORCE_SPEED=100 '等比减速时起作用TRIGGER '自动触发示波器MOVE(100,0)MOVE(0,100) '运动角度大于45°,完全减速MOVE(70,80) '运动角度处于15°~45°,等比减速MOVE(80,60) '运动角度小于15°,不减速各轴的速度曲线,如图33:电机运动角度变化过大时自动限制拐角处的速度。
图33应用场合:不改变运动轨迹,仅在拐角处自动判断是否减速,一般用于改善机台抖动的问题,对轨迹精度有要求,对速度要求没那么快的场合。2.CORNER_MODE =8 小圆限速示例:RAPIDSTOP(2)WAIT IDLE(0)WAIT IDLE(1)BASE(0,1)ATYPE=1,1UNITS=100,100SPEED=200,200 '运动速度ACCEL=500,500DECEL=500,500DPOS=0,0SRAMP=100,100 'S曲线MERGE=ONCORNER_MODE=8 '启动小圆限速FORCE_SPEED=120 '小圆限速参考速度FULL_SP_RADIUS=60 '限速半径60TRIGGER '自动触发示波器MOVECIRC(100,0,50,0,1) '半径50顺时针画半圆,终点坐标(100,0),圆心坐标(50,0)MOVECIRC(-200,0,-100,0,1) '半径100顺时针画半圆,终点坐标(-100,0),圆心坐标(0,0)运动轨迹,如图34:
图34速度曲线,如图35:第一段圆弧半径为50,小于60,小圆限速参数生效,第一段圆弧的速度=FORCE_SPEED*radius/FULL_SP_RADIUS=120*50/60=100。第二段圆弧的半径为100,大于60,小圆限速不生效,故速度为SPEED=200。
图35应用场合:一般应用在圆弧加工,根据圆弧半径计算当前圆弧的限制速度。3.CORNER_MODE =32 自动倒角示例:RAPIDSTOP(2)WAIT IDLE(0)WAIT IDLE(1)BASE(0,1)ATYPE=1,1UNITS=100,100SPEED=100,100 '运动速度ACCEL=500,500DECEL=500,500DPOS=0,0SRAMP=100,100 'S曲线MERGE=ONCORNER_MODE=32 '启动倒角ZSMOOTH = 10 '倒角参考半径TRIGGER '自动触发示波器MOVE(100,0) '第一段MOVE(0,100) '第二段 ,90°,倒角半径10MOVE(80,50) '第三段 ,夹角小于90°,倒角半径小于10自动计算合成轨迹,如图36:
图36不使用倒角,如图37:CORNER_MODE=0
适用场合:自动倒角会改变轨迹,不会降低速度,所以一般应用在对速度要求快,对轨迹精度要求不高的场合。4.CORNER_MODE =2+8+32 多个位同时设置示例:RAPIDSTOP(2)WAIT IDLE(0)WAIT IDLE(1)BASE(0,1)ATYPE=1,1UNITS=100,100SPEED=100,100 '运动速度ACCEL=500,500DECEL=500,500DPOS=0,0SRAMP=100,100 'S曲线MERGE=ON '开启连续插补CORNER_MODE=2+8+32 '启动3种拐角模式DECEL_ANGLE = 15 * (PI/180) '设置开始减速角度STOP_ANGLE = 45 * (PI/180) '设置结束减速角度FULL_SP_RADIUS=60 '圆弧限速半径60ZSMOOTH=10 '倒角参考半径10FORCE_SPEED=100 '等比减速参考速度TRIGGER '自动触发示波器MOVE(100,0)MOVE(0,100) '运动角度大于45°,完全减速MOVE(70,80) '运动角度处于15°~45°,等比减速MOVE(70,60) '运动角度小于15°,不减速MOVECIRC(100,0,50,0,1) '半径50顺时针画半圆,终点坐标(100,0),圆心坐标(50,0)运动轨迹,如图38:
图38速度曲线,如图39:
图39三SP速度指令(一)SP速度相关指令FORCE_SPEED -- SP速度STARTMOVE_SPEED -- SP运动开始速度ENDMOVE_SPEED -- SP运动结束速度单位均为UNITS/S,在使用SP运动指令中生效,会被SP运动指令带入运动缓冲区。1.FORCE_SPEED——SP速度自定义速度的SP运动的强制速度,使用了带SP的运动指令和轨迹前瞻时才生效。如果要求进入本段的时候FORCE_SPEED已经降为对应的速度,请设置STARTMOVE_SPEED参数。2.STARTMOVE_SPEED——SP运动开始速度自定义速度的SP运动的开始速度,只有使用了带SP的运动指令才生效。SP运动起始速度小于STARTMOVE_SPEED时,STARTMOVE_SPEED无效。不使用时请设置较大值。控制器默认值1000。3.ENDMOVE_SPEED——SP运动结束速度自定义速度的SP运动的结束速度,只有使用了带SP的运动指令才生效。后面没有运动指令时直接减速停止,ENDMOVE_SPEED无效。不使用时请设置较大值。控制器默认值1000。(二)SP速度指令使用例程例子:RAPIDSTOP(2)WAIT IDLE(0)WAIT IDLE(1)BASE(0,1) '选择XYDPOS = 0,0MPOS = 0,0ATYPE=1,1'脉冲方式步进或伺服UNITS = 100,100'脉冲当量SPEED = 100,100ACCEL = 200,200DECEL = 200,200SRAMP=100,100 'S曲线MERGE = ON '启动连续插补TRIGGER'第一段FORCE_SPEED = 50 '第一段速度50STARTMOVE_SPEED = 20 '第一段起始的速度20ENDMOVE_SPEED = 10 '第一段结束的速度10MOVESP(50,30)'第二段FORCE_SPEED = 60'第二段速度60STARTMOVE_SPEED = 30 '第二段的起始速度30ENDMOVE_SPEED = 40MOVESP(50,50)'第三段FORCE_SPEED = 80'第三段速度80STARTMOVE_SPEED = 30 '第三段的起始速度30ENDMOVE_SPEED = 20MOVESP(60,50)END速度变化曲线,如图40:从速度为0开始运动,第一段的STARTMOVE_SPEED = 20不起作用,第一段结束速度ENDMOVE_SPEED=10,表示速度降为10后第一段运动完成;第二段运动实际从速度10开始运动,到ENDMOVE_SPEED=40结束;第三段的起始速度STARTMOVE_SPEED=30,小于第二段结束速度40,第二段完成后速度会降到30,第三段完成后后面没有运动指令了,所以速度降为0,ENDMOVE_SPEED不起作用。
图40