资源描述
克鲁斯机械手多层焊在工作中应用摘要:机械手在轨道客车转向架生产中发挥着越来越重要的作用,本文将CLOOS的多层焊技术的窍门进行了简单的整理,从FILL等命令的基本应用到变量和子程序的使用使得多层多道焊技术使用的更灵活、更广泛、更实用。为CLOOS机械手的使用和程序编写提供了一种新途径,扩充了CLOOS机械手的编程方式和使用方法。关键词:CLLOS机械手多层多道焊技术程序拓展1.概述1.1.机械手在轨道客车转向架焊接中的应用现在机械手在轨道客车转向架焊接中有着十分广泛的应用。从小部件焊接到侧梁焊接;从横梁焊接到构架焊接,机械手焊接基本承担了整个转向架的70%以上的焊接任务。其中CLOOS机械手在侧梁焊接、构架焊接中都有着举足轻重的作用。1.1.CLOOS机械手工作中存在的问题及改进措施CLOOS机械手焊接质量稳定,是较好的焊接机械手之一。但是现在机械手在生产中应用越来越多,焊接的部件越来越复杂,对机械手的编程质量也要求越来越高,常规的示教点编程也越来越不能满足工作需要。为了更好地满足产品质量需求,我开发完善了CLOOS多层多道焊接技术,提高了编程速度、改善了产品质量、提高了机械手自动化程度。1.CLOOS机械手多层多道技术2.1 多层多道焊技术原理多层多道焊技术编程时只需要根据焊缝的几何形状定义一次根部焊缝的点的同时其他层都可以通过拷贝和偏移并且用补偿平移焊缝而实现。2.2 多层多道焊技术指令及解释多层多道焊技术的核心命令式ROOTON、ROOTOFF和FILL。通过这三个命令可以完成简单的多层多道焊。2.2.1 ROOTON,ROOTOFFROOTON和ROOTOFF结合使用可以储存一个根层的焊缝、如下:ROOTON(1)GP(1)GC(2,3)GP(4)ROOTOFF(1)这里从点1到点4都被存储到“1”这个定义的根部焊缝中。2.2.2 FILLFILL命令用来完成填充运行的计算。FILL(a,b,c,d)是FILL命令的使用方式。其中a表示根层焊缝的编号;b表示填充运行的编号;c表示点编号,定义填充运行的偏移距离和方向;d表示开始点号码,即从此点开始填充程序应用实例。2.3 多层多道焊技术应用举例应用ROOT和FILL可以实现简单的简单的填充生成,比如可以给下图做一个完整的小程序。MAINGP(1,2)ROOTON(1)GP(3)GC(4)ARC(4,5,6)GC(7)GP(8,9)ROOTOFF(1)FILL(1,1,10,13)GP(13)GC(14)ARC(14,15,16)GC(17)GP(18,19)GP(2,1)END2.4 多层多道焊技术应用拓展在实际工作中,为了更好地运用多层多道技术会常常将变量和其他一些命令综合使用,通过子程序来达到程序编写的目的。下面解释一下变量和一些常用的指令。2.4.1变量为了更多不同的使用例如产生点或平移等其他很多计算都能够编辑在一个程序里,所以要使用变量。变量必须先说明,后使用。变量名不可为系统的保留字在CLOOS语言中用于变量的命令很多。常用的有计算操作,如:A:=0A:=3000+B等。有关系判断询问,如:IFSPD=0THENJUMPST02IFQQ1THENRPOINTS(SSP,EEP)等。2.4.2 常用指令举例1) 、STORPOSSTORPOS指令用来存储一个点的坐标信息,这个信息中的任何一个数值都可以用变量来表示。2) 、FOR_TO_DOBENGIN_END这是一个计算循环语句,用于计数。3) 、NEXTP用于决定以下存在点的编号,可识别和跳过点编号的间隔。4) 、RPOINTS这个指令能够记忆焊缝实际的变化并且存储生成新的实际点的位置。2.5 程序应用实例以下截取了编制的武汉四号线型车侧梁程序中第一道焊缝的第一层与第二层焊接程序。阐述了多层多道了一些编写窍门。RESTARTEXTERNALPROCCLEAN,CLS,SYN,BLASFROMMASTERVARSP,EP,NP,PR,SPD,STA,ANF,I,IPOL,STAT,X,Y,Z,AL,BE,GA,E1,E2,E3,E4VARX1,Y1,Z1,X2,Y2,Z2,XV,YV,X3,Y3,Z3,AL1,BE1,GA1,EVVARXX,XZ,XS,STP,X11,YS,YE,ZS,SP2,EP2,EP1,I1,XV0,XV1,PT,RRVARSSP,EEP,SP1,QQ,LAY,SEAM,SEL,PT1,L,L1,L2,L3,L4,L5,L6vAR是设置变量名称,注意变量名字不能喝命令指令相同。LIST98=(3011,0,0,57,100,0,700,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)LIST99=(3011,0,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)LISTE1=(3011,3,0,15,90,20,550,0,197,10,0,0,0,0,0,300,15,0,0,0,0,0)!*第一层焊接参数LIST10=(3011,3,0,30,118,-20,545,0,208,41,10,0,0,0,0,0,1,0,0,0,0,0)LIST11=(3011,3,0,29,118,-20,570,0,208,41,10,0,0,0,0,0,1,0,0,0,0,0)!*第二层焊接参数LIST20=(3011,3,0,23,120,-15,535,0,167,74,10,0,0,5,0,0,0,0,0,0,0,0)LIST21=(3011,3,0,18,115,-25,535,0,156,110,10,0,0,8,0,0,0,0,0,0,0,0)LIST22=(3011,3,0,17,117,-22,540,0,156,116,10,0,0,8,0,0,0,0,0,0,0,0)PROCSM11第一层焊接子程序。IFSP=100THENL2:=10变量赋值。有起点赋值和参数赋值。IFSP=100THENL3:=11GP(SP)$(L2)SSPD(12,12)GC(SP+1,SP+2)$(L3)GC(SP+3)焊接部分。(这个程序中的点信息是事先编译完成的。)GC(SP+4,SP+5,SP+6)GC(SP+7)GC(SP+8,SP+9)$(L2)GC(SP+10,SP+11)ENDPPROCSMMT第一层焊接点生成运用点。GETVAR(1,SP)GETVAR(2,EP)GETVAR是从数据库得到数据。GP(SP-1)GP(SP)STORPOS(SP+3000,100,1,0)生成第二层需要赋值的点的信息。(点号自选。)SEAM:=1Seam赋值1为程序中断做准备。SSP:=3000+SP+1EEP:=3000+EP$(10)SSPD(12,12)IFQQ1THENRPOINTS(SSP,EEP)Rpoints生成点SSP到EEP。CALLSM11SEAM:=0QQ:=0GP(EP+1)ENDPPROCREP寻找中断点程序SSP:=3000+SPEEP:=3000+EPST1:NEXTP(SSP;NP,PR,STA)寻找下一点指令,用于寻找中断位置。GETPOSA(SSP;SPD,IPOL,STAT;1;X,Y,Z,AL,BE,GA;E1,E2,E3,E4)IFSPD=0THENJUMPST02IFNPSSP+1THENJUMPST2SSP:=NPJUMPST1ST02:SSP:=SSP-1FORI:=SSPTOEEPDOBEGINSTORPOS(I,100,1,0)ENDST2:SP1:=SSP+1-3000WAITS(2)SSP:=3000+SP1EEP:=3000+EPQQ:=1寻找完毕QQ赋值1。ENDPPROCSC寻找完毕使用子程序,有多个跳转可直接找到焊接点位置IFSP=100THENL2:=10IFSP=100THENL3:=11$(L2)SSPD(12,12)RPOINTS(SSP,EEP+1)IFSP1=SP+1THENJUMPL001IFSP1=SP+2THENJUMPL002IFSP1=SP+3THENJUMPL003IFSP1=SP+4THENJUMPL004IFSP1=SP+5THENJUMPL005IFSP1=SP+6THENJUMPL006IFSP1=SP+7THENJUMPL007IFSP1=SP+8THENJUMPL008IFSP1=SP+9THENJUMPL009IFSP1=SP+10THENJUMPL010IFSP1=SP+11THENJUMPL011L001:GC(SP+1)L002:GC(SP+2)L003:$(L3)GC(SP+3)L004:$(L3)GC(SP+4)L005:$(L3)GC(SP+5)焊接部分。(与SM11程序中点为相同点。)L006:$(L3)GC(SP+6)L007:$(L3)GC(SP+7)L008:$(L3)GC(SP+8)L009:$(L3)GC(SP+9)L010:$(L2)L011:GC(SP+11)SEAM:=OSeam和QQ重新赋值为0,保证程序正常运行。QQ:=0GP(EP+1)ENDPPROCFIL第二层生成程序,关键程序。GETVAR(1,SP)GETVAR(2,EP)GETVAR(3,PT)FORI:=SP-SPTOEP-SPDOFOR.to.do指令为了得到需要的点的数量。BEGINBegin.End得到需要点的点号。(点号自选。)STORPOS(9000+I,100,1,0)ENDROOTON(1)Rooton.Rootoff$(98)GC(9000.9000+EP-SP)ROOTOFF(1)GP(SP-1)COPYP(SP+3000.EP+3000,9000)将SP+3000到EP+3000点的信息拷贝从9000点开始。GP(SP+2000+PT)FILL(1,1,SP+2000+PT,9000)从9000点开始生成填充层GETPOSA(9000;SPD,IPOL,STAT;1;X,Y,Z,AL,BE,GA;E1,E2,E3,E4)SASTOPAT(0;9000)该指令为了保证机械手位置的惟一性。IFSP=100THENIFPT=2THENYS:=1000STORPOSA(9000,SPD,IPOL,STAT;1;X,Y+YS,Z,AL,BE,GA;E1,E2,E3,E4)改变焊缝起点位移量。IFSP=100THENIFPT=2THENYE:=1000STORPOSA(EP+9000-PT1,SPD,IPOL,STAT;1;X,Y-YE,Z,AL,BE,GA;E1,E2,E3,E4)改变焊缝终点位移量。IFSP=100THENIFPT=2THENL:=20IFSP=100THENIFPT=2THENL1:=21IFSP=100THENIFPT=2THENL4:=22GP(9000)SSPD(10,10)$(L)GC(9001)GC(9002)SSPD(8,8)$(L1)GC(9003)GC(9004,9005)焊接部分。(点为生成点,根据第一层点的信息变化而变化。)$(L4)GC(9006)$(L1)GC(9007)GC(9008)SSPD(10,10)$(L)GC(9009,9010)GC(9011)ENDPPROCROOTWELD第一层焊接指引程序,用于寻找相应的子程序。IFSEAM=1THENCALLREPSeam=l说明在SMMT子程序中断,需要寻找中断点,所以跳转到REP子程序IFQQ=1THENJUMPJOIQQ=1说明寻找完毕,跳转到SC子程序继续焊接。SETVAR(1,SP)SETVAR(2,EP)JUMPJ02J01:CALLSCJ02:ENDPMAINFUNCONARCCONFUNCONONLCONFUNCONENDCONFUNCOFFONLCON,WIREFUNCOFFEXTOFF,10IFIN(5)THENRESET(5)IFIN(5)THENSET(6)CALLSYNDECHPTPM(45)IFSEAM=1THENIFSP=100THENJUMPNO1GP(1)!*ROOT*!*NO.1*GP(98,99)SP:=100SETVAR(1,SP)确定第一层的起点和终点。EP:=111SETVAR(2,EP)NO1:CALLROOTWELD第一层焊接和生成第二层的运用点。DECHGP(112,99,98)!*FILL2*!*FILLNO.1*SP:=100SETVAR(1,SP)EP:=111SETVAR(2,EP)确定第二层的运用点。PT:=2SETVAR(3,PT)CALLFIL生成第二层并焊接。GP(112,99,98)GP(1)FUNCOFFARCCONFUNCOFFONLCONFUNCOFFENDCONEND熟练掌握以上多层多道的编辑方法和小窍门,可以极大提高编程速度,减少编程难度,提高焊接产品质量。多结论通过以上对克鲁斯机械手程序的改进结果,发现多层多道焊能够更好地满足转向架自动焊接的质量需求。
展开阅读全文