The value of Zmotion is to bring customers more success!
在全球科技快速发展的浪潮下,半导体行业作为关键的技术领域,始终处于创新与变革的前言。同时对于实时性的要求也在不断提高。
例如激光加工技术在半导体行业的应用中,对于激光切割的速度和精度也作出了更高的要求。而运动缓冲则是一个可以快速提高实时性的有效手段。
ZMC408SCAN-V22是正运动技术推出的高性能双振镜运动控制器,集成了2个百兆以太网口,支持EtherCAT、EtherNET、CAN、RS232、RS485、24路通用数字输入、20路通用数字输出、2路通用模拟量输出、2路通用模拟量输入、4个本地差分脉冲轴接口、1个MPG手轮编码器接口、2个带反馈振镜接口、1个LASER激光专用接口、1个FIBER激光器接口。开放式系统框图如下所示:
ZMC408SCAN-V22总线控制器支持EtherCAT总线连接,支持最快500μs的刷新周期,支持最多达16轴运动控制,支持直线插补、任意圆弧插补、空间圆弧、螺旋插补、电子凸轮、电子齿轮、同步跟随、虚拟轴设置等;采用优化的网络通讯协议可以实现实时的运动控制。
1.MTYPE,NTYPE分别是当前运行的运动指令类型和MTYPE后面的第一条指令类型。
2.任意一段程序的运动指令都可以进入任意轴的运动缓冲区,由轴号指定。
3.每个轴的运动缓冲区都是独立的,互不干扰。
MOVE_CURMARK指令为当前运动的标号,提示当前运动到第几条运动指令,所有运动完成后为-1。
通过上面的介绍,大家对运动缓冲应该有了基本的认识,下面我们来介绍运动缓冲在激光加工中的应用。
在激光处理的应用场景中,运动控制系统不仅需要解决机床的轴向运动问题,而且还必须准确控制激光输出。
例如激光功率,焦点,运动速度,辅助气体,材料吸收等,都需要运动控制系统执行操作和输出。对于激光束的运动轨迹控制,它必须非常准确。保证任何数据参数都不会丢失。否则,工件的处理无法正常完成。工件的边缘将产生毛刺,更严重可能导致工件损坏。
下图为模拟激光加工工艺的轨迹,通过运动缓冲可最大程度保证运动到固定点开光、关光的精确性。
正运动激光控制使能、出光等控制都是通过通用的IO输出指令进行控制。
以开光操作为例:必须等待轴空移到设定的开光位置后才能控制输出口开光,所以必须使用MOVE_OP运动缓冲输出指令而不是使用OP普通输出指令,运动缓冲使得该轴前面其他运动指令执行完毕同时到达开光点才执行开光操作,保证了运动的时序。
1.MOVESCANABS(pos1[,pos2] [,pos3]…) - 振镜直线运动指令。
(1)pos1:第一个轴的运动坐标,绝对位置
2.MSCANCIRCABS(end1,end2,centre1,centre2,direction) - 振镜圆心画弧指令。
(1)end1:终点第一个轴运动坐标,绝对位置
(2)end2:终点第二个轴运动坐标,绝对位置
(3)centre1:圆心第一个轴运动坐标,绝对位置
(4)centre2:圆心第二个轴运动坐标,绝对位置
(5)direction:0-逆时针,1-顺时针
例程中其他指令介绍见《激光振镜控制编程手册》(资料联系正运动工作人员获取)
RAPIDSTOP(2) '清除缓冲区 WAIT IDLE '1,初始部分,设置振镜轴参数,开启激光使能等等的初始化操作 BASE(4,5) '选择振镜轴,振镜X轴4,振镜Y轴5 ATYPE = 21,21 '设置振镜轴类型 UNITS = 1000,1000 '设置振镜轴脉冲当量 MERGE = ON '开启连续插补 AXIS_ZSET = 3 '开启精准输出 '拐角延时参数设置 CORNER_MODE = 2 '设置拐角模式 DECEL_ANGLE = 60 * (PI/180) '设置起始弧度0-60不处理60-90等比减速 STOP_ANGLE = 90 * (PI/180) '设置停止弧度大于90延时 LASER_SET(1,1) '设置能量并口 MOVE_OP(49,ON) '打开激光器急停信号(根据实际情况设置) MOVE_OP(47,ON) '打开使能 '2,功率设置(功率设置可以多次穿插在运动中间,实现不同图层的操作) MOVE_OP(46,OFF) '设置拐角延时(单位 us) ZSMOOTH = 500 MOVE_AOUT(3,128) '设置功率(50% 0 - 255) MOVE_PWM(11,0.5,60000) '功率锁存信号(Fiber 激光器处于锁存模式下使用) MOVE_OP(46,ON) '3,标刻图形 FORCE_SPEED = 1000 '设置空移速度 1000Units/s MOVESCANABS(50,0) '空移到起点 MOVE_OP(44,ON) '开光 MOVESCANABS(150,0) MOVE_PWM(11,0.5,50000) '调光(画圆弧时速度比直线慢,有能量堆积,需要降频) MSCANCIRCABS(150,-100,150,-50,1) MOVE_PWM(11,0.5,60000) '调光(圆弧结束恢复原来的频率) MOVESCANABS(100,-100) MOVE_OP(44,OFF) '关光 '4,结束部分 MOVESCANABS(0,0) '振镜回零 WAIT IDLE MOVE_DELAY(0.1,1) '结束延时
位置及输出波形图
1.普通输出指令程序扫描到该行指令便执行输出。
2.运动缓冲中输出指令在程序扫描之后,将其存入运动缓冲区,运动缓冲区按先进先出的顺序依次取出指令执行,直到取出该输出指令时才会执行输出。例如在激光应用场景中,如果不使用运动缓冲,当扫描到上一条运动指令,就会出现还没运动完毕,程序就扫描到输出指令,这时就会立刻执行输出,导致实际开关光的位置不是在我们预想的点位位置执行。
RAPIDSTOP(2) '停止所有轴 WAIT IDLE(0) '等待轴0停止 BASE(0) '选择轴0 DPOS=0 '轴0坐标偏移至0 UNITS=100 '脉冲当量 SPEED=100 '速度 ACCEL=1000 '加速度 DECEL=1000 '减速度 TRIGGER '触发示波器采样 OP(0,3,$0) '关闭输出口0-3 DELAY(1000) '延时 MOVE(100) '直线插补相对距离100 MOVE_OP(1,ON) '运动缓冲中输出 OP(0,ON) '普通输出
例子运行效果:延时1s后,程序扫描到OP指令,输出口0立即执行输出。
每个轴的运动缓冲空间是有限的,当扫描太多运动指令放入运动缓冲区时,多级运动缓冲区全部被塞满,如果程序继续扫描到更多的运动指令,程序也会被堵塞,直到运动指令依次完成并退出,运动缓冲区有了空位,运动指令才会继续进入运动缓冲区。
例:以ZMC408CE控制器为例,默认为4096个运动缓冲,下图例程中显示该控制器的运动缓冲区最多能存493条圆弧插补指令,下载程序后打印i的值为492,表示当前FOR循环并未执行完,程序堵塞了。
下图中,当从运动缓冲区取出部分运动指令执行之后,缓冲区有了空间,FOR循环继续执行,并存入运动指令到运动缓冲区。指令执行退出运动缓冲区后,只要运动缓冲区的空间足够,新的运动指令则会继续一条一条往运动缓冲区中存入。
每个轴的运动缓冲都是独立的,互不干扰,且缓冲区大小相同,通过指令REMAIN_BUFFER(MTYPE) AXIS(n)查看某个轴的剩余可用缓冲区的个数。
ZMC4系列运动控制器每个轴可支持多达4096段运动缓冲(不同型号的控制器缓冲个数有区别,具体情况参见控制器《用户手册》说明或使用?*max打印查看),可以手动设置LIMIT_BUFFERED运动缓冲限制。
不同的运动指令占用的缓冲空间是不同的,越复杂的运动占用的运动缓冲空间越多。
如下表所示:MTYPE为1表示MOVE直线插补指令,MTYPE为2表示MOVEABS直线插补指令(绝对)。MTYPE为3表示MHELICAL螺旋插补指令,MTYPE为4表示MOVECIRC圆弧插补指令。
注:插补运动缓冲在主轴的运动缓冲区。
如下例:例子中共有四条MOVE运动指令,但是运动缓冲区最多只能装3条直线插补指令。MOVE(60,40)占用轴0的MTYPE,轴0还能缓冲2个运动指令,轴0剩余缓冲数为0。此时运动缓冲区满,那么在MOVE(60,40)执行完之前MOVE(60,50)是无法进入运动缓冲区的。
RAPIDSTOP(2) '停止所有轴 WAIT IDLE(0) '等待轴0停止 WAIT IDLE(1) '等待轴1停止 BASE(0,1) '选择轴0,轴1 ATYPE=1,1 '设置轴类型 DPOS=0,0 '轴0轴1坐标偏移至0 UNITS=100,100 '设置脉冲当量 SPEED=100,100 '设置速度 ACCEL=1000,1000 '设置加速度 DECEL=1000,1000 '设置减速度 MERGE=ON '开启连续插补 TRIGGER '触发示波器采样 LIMIT_BUFFERED=3 '轴0/1运动缓冲区可缓冲运动指令个数设置为3 MOVE(60,40) '进入MTYPE,Buffer0 MOVE(70,50) '进入NTYPE,Buffer1 MOVE(50,40) 'Buffer2 MOVE(60,50) '缓冲区满,暂不进入 ?"轴0当前缓冲指令个数="MOVES_BUFFERED(0) '结果2 ?"轴0剩余缓冲区个数="REMAIN_BUFFER(1) AXIS(0) '结果0 ?"轴1剩余缓冲区个数="REMAIN_BUFFER(1) AXIS(1) '结果3 END
插补运动缓冲在主轴轴0里,故轴1的运动缓冲区是没有指令的,轴1剩余缓冲大小为3。每条MOVE指令占用一个缓冲空间。
教学视频可点击→“运动缓存在精密激光加工中的应用”查看。
本次,正运动技术运动缓冲在精密加工中的应用,就分享到这里。
更多精彩内容请关注“正运动小助手”公众号,需要相关开发环境与例程代码,请咨询正运动技术销售工程师:400-089-8936。
正运动技术专注于运动控制技术研究和通用运动控制软硬件产品的研发,是国家级高新技术企业。正运动技术汇集了来自华为、中兴等公司的优秀人才,在坚持自主创新的同时,积极联合各大高校协同运动控制基础技术的研究,是国内工控领域发展最快的企业之一,也是国内少有、完整掌握运动控制核心技术和实时工控软件平台技术的企业。主要业务有:运动控制卡_运动控制器_EtherCAT运动控制卡_EtherCAT控制器_运动控制系统_视觉控制器__运动控制PLC_运动控制_机器人控制器_视觉定位_XPCIe/XPCI系列运动控制卡等。