4、程序列表
程序 注释
SETSYSVAR 设置系统参数,打开焊接条件倾斜功能
MAINWELD 主程序
INIT 初始化程序,将一些寄存器清零
MEASGAPS 接触检测主程序,寻找焊缝位置和宽度
FEEDWIRE 确定焊丝干伸长
FIND_JT1 起弧点接触检测程序
FIND_JT2 收弧点接触检测程序
PASSES 焊接程序
REGMATH 计算焊接速度
ADPTWV 计算摆动幅度
5、寄存器列表
5.1位置寄存器
寄存器 注释 使用到的程序
PR[150] 临时位置寄存器 MEASGAPS、
FIND_JT1 、FIND_JT2
PR[151] 接触检测起始位置1寄存器 FIND_JT1
PR[152] 接触检测起始位置2寄存器 FIND_JT2
PR[155] 起弧点位置寄存器 PASSES 、SCALEGAP
PR[156] 收弧点位置寄存器 PASSES 、SCALEGAP
PR[157] 起弧点初始位置寄存器 FIND_JT1、SCALEGAP
5.2数字寄存器
寄存器 注释 使用到的程序
R[125] 工件高度基值,寻位程序用 FIND_JT1、FIND_JT2
R[126] 工件高度比较值 FIND_JT1、FIND_JT2
R[130] 计算起弧点的摆幅用 ADPTWV
R[131] 计算起弧点的摆幅用 ADPTWV
R[134] 多层多道计算用临时寄存器 SCALEGAP
R[135] 多层多道计算用临时寄存器 SCALEGAP
R[136] 多层多道起弧点摆幅寄存器 SCALEGAP
R[137] 多层多道收弧点摆幅寄存器 SCALEGAP
R[139] 寻位程序计算用临时寄存器 FIND_JT1、FIND_JT2
R[140] 起弧点焊缝宽度 ADPTWV、FIND_JT1
R[141] 收弧点焊缝宽度 ADPTWV、FIND_JT2
R[144] 多层多道焊缝计数用寄存器 PASSES、SCALEGAP
R[146] 焊缝起弧点坡口宽度寄存器 FIND_JT1、SCALEGAP
R[147] 焊缝收弧点坡口宽度寄存器 FIND_JT2、SCALEGAP
R[148] 赋值,为第几层焊缝 SCALEGAP
R[149] 赋值,此层焊缝有多少道 SCALEGAP
R[150] 焊丝直径 REGMATH
R[151] PI,圆周率 REGMATH
R[154] 焊丝横截面面积 REGMATH
R[155] 焊接送丝速度 REGMATH
R[156] 焊丝熔敷率,一般为
0.95~0.98左右
REGMATH
R[157] 焊接单位时间的填充量 REGMATH
R[161] 工件板厚 REGMATH
6、程序说明
6.1 MAINWELD
此为主程序,在此程序内依次调用各子程序。
1: CALL A_INIT ; 调用初始化程序
2: CALL A_MEASGAPS ;调用接触检测程序
3: CALL A_PASSES ; 调用焊接程序
6.2 INIT
此程序的作用是把一些后面计算会用到的寄存器先初始化,防止由于人为更改等原因导致计算的值不对。也可以加入指定焊丝直径、工件板厚、焊缝层数以及送丝速度等指令
1: R[140:GAP 1(mm) ]=0 ; 初始化起弧点宽度
2: R[141:GAP 2(mm)]=0 ; 初始化收弧点宽度
3: R[144:Multipass Index]=0 ; 初始化焊缝计数器
4: R[155:WSPD]=6150 ; 赋值第一道焊缝的送丝速度(林肯焊机非必需)
5: R[150:Wire Diameter]=1.2 ; 输入焊丝直径
6: R[151:PI]=3.1416 ; 输入圆周率
7: R[156:Transfer eff]=0.95 ; 输入熔敷率,0.95~0.98左右
8: R[155:WSPD]=6250 ; 输入第一道焊缝的送丝速度,注意单位
9: R[161:Mtl.Thk.(mm)]=20 ; 输入工件的板厚
10: R[162:Num of layer] =5 ; 输入焊缝的层数
11: PR[160:MP Offset 1]=LPOS ;将位置寄存器内的值以笛卡尔坐标来表示
12: PR[160,1:MP Offset 1]=0 ; 然后将寄存器内各变量初始化
13: PR[160,2:MP Offset 1]=0 ;
14: PR[160,3:MP Offset 1]=0 ;
15: PR[160,4:MP Offset 1]=0 ;
16: PR[160,5:MP Offset 1]=0 ;
17: PR[160,6:MP Offset 1]=0 ;
18: PR[161:MP Offset 2]=PR[160:MP Offset 1] ;
6.3 MEASGAPS
接触检测主程序,利用接触检测功能来计算起弧点/收弧点的位置和焊缝宽度。本程序只需要修改点P[1]的位置。
1: UFRAME_NUM=0 ; 将用户坐标置为0号
2: UTOOL_NUM=1 ; 将工具坐标置为1号
3: ;
4: J P[1] 50% FINE ; HOME点,需要自己修改为合适的位置。
5: CALL A_FEEDWIRE ;调用焊丝干伸长确认程序
6: J P[1] 50% FINE ; 回HOME点
7: CALL A_FIND_JT1 ; 调用起弧点寻位程序
8: PR[150:TEMP]=LPOS ; 以下三行是利用某个临时位置寄存器
9: PR[150,2:TEMP]=PR[150,2:TEMP]+100 ; 使机器人在原地垂直向上移动100mm
10: J PR[150:TEMP] 50% FINE ;
11: J P[1] 50% FINE ; 回到HOME点
12: CALL A_FIND_JT2 ; 调用收弧点寻位程序
13: PR[150:TEMP]=LPOS ; 寻位完后抬高焊枪
14: PR[150,2:TEMP]=PR[150,2:TEMP]+100 ;机器人抬枪的方向根据实际情况改变
15: J PR[150:TEMP] 50% FINE ;
16: J P[1] 50% FINE ; 回到HOME点
17: DO[115:EQ1 Inch Backward]=PULSE,1.0sec ; 回抽焊丝,为焊接作准备。
6.3.1 FEEDWIRE
此程序用来确保每次进行接触的焊丝的干伸长保持一致,可以利用接触检测功能,也可以利用剪焊丝的设备等等,下面举例如何利用接触检测功能.
调用下面的程序前,要先自己编程把机器人移动到导电嘴距离某个参考面上方,离参考面的高度就是焊丝的干伸长
1: DO[3:Touch ON]=ON ; 将接触检测信号打开
2: DO[4:Wire Inch Fwd]=ON ; 送丝信号打开
3: WAIT DI[2:Touch Input]=ON; 保持送丝直到焊丝接触参考面
4: DO[4:Wire Inch Fwd]=OFF ; 送丝信号关闭
5: DO[3:Touch ON]=OFF ; 接触检测信号关闭
6: WAIT .20(sec) ;
7: DO[5:Wire Inch Bkwd]=ON ; 焊丝稍微回抽一点,拉紧焊丝
8: WAIT .20(sec) ;
9: DO[5:Wire Inch Bkwd]=OFF ;
6.3.2 FIND_JT1/FIND_JT2
起弧点/收弧点寻位程序,利用接触检测功能来确认起弧点/收弧点的位置和底层焊缝的宽度。
在下面程序的例子中,请根据机器人的实际情况来更改寻位的方向和移动的方向。
1: UFRAME_NUM=0 ; 将用户坐标置为0号
2: UTOOL_NUM=1 ; 将工具坐标置为1号
3: R[125:Zero Plane BAS]=0 ;寄存器初始化 4: R[126:Zero Plane]=0 ;
5: ;
6: J PR[151:Search Pos 1] 50% FINE ;
将机器人移动到寻位开始点,此点应该位于焊缝斜边的一侧,离焊缝边缘有一个合适的距离和高度。此程序只需要更改此点即可。
7: PR[150:TEMP]=PR[151:Search Pos 1] ;将开始点赋值给临时寄存器
8: ;
9: !FIND Base ; 前面带“!”号的语句都是注释语句
10: J PR[150:TEMP] 50% FINE ;
11: Search Start [10] PR[40] ; 寻位开始语句,使用的寄存器不会用到,任意指定一个
12: J PR[150:TEMP] 20% FINE Search[-Y] ;焊枪向垂直工件的方向寻位 13: Search End ; 寻位结束
14: R[125:Zero Plane BAS]=PR[32,2] ;将得到的工件高度作为基准存到R[125]
15: JMP LBL[2] ; 跳转到2号标签
16: LBL[1] ; 1号标签
17: !FIND JOINT ;
18: J PR[150:TEMP] 50% FINE ; 移动寻位点后再次向下方寻位
19: Search Start [10] PR[40] ;
20: J PR[150:TEMP] 20% FINE Search[-Y] ; 注意更改寻位的方向
21: Search End ;
22: R[126:Zero Plane]=PR[32,2] ; 寻位完后,将得到的工件高度赋值给R[126]
23: R[126:Zero Plane]=R[126:Zero Plane]-R[125:Zero Plane BAS] ;比较这次寻位的得到的高度值和第一次寻位记录的基准值
24: IF R[126:Zero Plane]<(-2),JMP LBL[3] ;
如果这次寻位得到的高度比基准值低2mm,那么我们可以认为焊丝已经进入焊缝坡口内,就可以跳转到3号标签。
25: LBL[2] ; 2号标签
26: PR[150,1:TEMP]=PR[150,1:TEMP]-3 ;将机器人的寻位点向焊缝的方向移动3mm
27: JMP LBL[1] ; 修改完寻位点的位置后,跳转到1号标签,再次进行寻位
28: !FIND EDGE 1 ;
29: LBL[3] ; 3号标签
30: PR[150:TEMP]=PR[32] ; 将刚才焊丝接触坡口的点赋值到临时寄存器
31: PR[150,1:TEMP]=PR[150,1:TEMP]-3 ;修改点的位置,到焊丝离开坡口3mm
32: J PR[150:TEMP] 50% FINE ; 修改完位置后移动机器人
33: Search Start [10] PR[40] ; 再次开始寻位,这次是寻找焊缝垂直边的位置。
34: J PR[150:TEMP] 50% FINE Search[-X] ; 注意寻位的方向应为焊缝的宽度方向
35: PR[150:TEMP]=PR[32] ;找到垂直边后,再次将接触位置记录到临时寄存器 36: Search End ; 寻位结束
37: PR[150,1:TEMP]=PR[150,1:TEMP]+2 ;接下来将机器人移动到离开垂直边2mm的地
38: J PR[150:TEMP] 50% FINE ; 方,再向下方寻位,这样就可以寻到焊缝底
39: !FIND ROOT GAP ; 部的位置。
40: Search Start [10] PR[40] ;
41: J PR[150:TEMP] 50% FINE Search[-Y] ;
42: Search End ;
43: PR[150,2:TEMP]=PR[32,2]+2 ;找到焊缝底部后,稍微将机器人抬高2mm,接下来就
44: J PR[150:TEMP] 50% FINE ; 可以寻位确认焊缝底部的宽度了。
45: Search Start [10] PR[40] ;
46: J PR[150:TEMP] 50% FINE Search[-X] ;寻找焊缝垂直边的底部,并将位置赋值给临时
47: PR[150:TEMP]=PR[32] ; 寄存器PR[150],方便后面进行计算。
48: Search End ;
49: WAIT .10(sec) ;
50: Search Start [10] PR[40] ;
51: J PR[150:TEMP] 50% FINE Search[X] ;然后寻找焊缝斜边的底部,
52: Search End ; 寻位结束后RP[32]会变成焊缝斜边底部的值。
接下来开始进行计算,前面的寻位过程最后会得到焊缝底部两边的位置,利用两边位置在焊缝宽度方向上的值的不同,可算出焊缝的宽度。然后算出起弧点的位置。
53: R[139:TMP]=PR[32,1]-PR[150,1:TEMP] ; 计算焊缝底部两端点的宽度方向上的差值
54: R[139:TMP]=R[139:TMP]+R[150:Wire Diameter] ; 再加上焊丝直径,得到底部宽度
55: R[140:GAP 1(mm) ]=R[139:TMP] ; 将临时寄存器的值赋给“起弧点焊缝宽度寄存器”
56: R[146:GAP 1(temp)]=R[140:GAP 1(mm) ] ; 并记录到“焊缝起弧点坡口宽度寄存器”
57: ; 下面开始计算起弧点的位置
58: R[139:TMP]=R[139:TMP]/2 ; 焊缝宽度的一半,即起弧点离坡口边缘的距离
59: PR[150,1:TEMP]=PR[32,1]-R[139:TMP] ; 计算起弧点宽度方向的位置
60: PR[150,3:TEMP]=PR[32,3] ; 起弧点前后方向的位置不用改变
61: PR[150,2:TEMP]=PR[32,2]-2 ; 起弧点高度的位置,把前面抬高的2mm减去
62: PR[155:Pos 1]=PR[150:TEMP] ; 最后把结果赋值给“起弧点位置寄存器”
63: PR[157:Pos 1 TEMP]=PR[155:Pos 1] ; 还赋值给“起弧点初始位置寄存器”
64: J PR[155:Pos 1] 50% FINE ; 移动到起弧点,方便等会抬枪
收弧点的程序结构和起弧点完全相同,只是几个寄存器不一样,参考起弧点程序来修改即可。
6.4 PASSES
焊接程序,在焊接前先调用程序计算焊接速度和焊缝两端的摆幅。焊接后,再调用程序计算下一道焊缝的起弧点/收弧点位置以及焊缝宽度等,然后再跳转到开头用新的条件重新计算焊接速度和摆幅,依次循环,直到焊完指定数
量的焊缝为止。
此程序需要修改的地方有:焊接前后的过渡点,焊接参数以及焊缝数量。
1: UFRAME_NUM=0 ; 2: UTOOL_NUM=1 ;
3: !***************** ;
4:R[144:Multipass Index]=0; 将焊缝计数器初始化
5:R[149:NUM of passes]=1; 指定第一层焊缝数量为1道
5: LBL[1] ; 1号标签
6: CALL A_REGMATH ; 调用程序计算焊接速度
7: CALL A_ADPTWV ; 调用程序计算摆幅
8: J P[1] 50% FINE ; HOME点,根据实际情况修改
9: J P[2] 50% CNT100 ; 前往起弧点前的过渡点
10: J PR[155:Pos 1] 30% FINE 起弧点,位置由前面的寻位程序得出,不需要修改
: Weld Start[1,1] ; 使用的焊接参数,根据实际情况设定
11: Weave Sine[9] ; 摆动开始,摆幅和速度都由前面的程序计算得出,不需要修改。
12: L PR[156:Pos 2] R[175:Travel spd at 1]cm/min FINE 收弧点,位置和速度由程序计算得出
: Weld End[1,1] WV[10] RampTo R[176] ;使用焊接倾斜功能,使得焊接速度和摆幅从起弧点到收弧点均匀过渡。
13: Weave End ;摆动结束
14: J P[3] 50% CNT100 ; 收弧后的过渡点
15: J P[1] 50% FINE ; 回HOME点
16: R[144:Multipass Index]= R[144:Multipass Index]+1 ; 焊接计算器+1
17: IF R[144:Multipass Index] ≧9,JMP LBL[99] ; 判断是否已焊完所有焊缝,焊缝数量根据实际修改。如果已焊完,就跳转到程序结尾。
18: !PASS ;
19: !******************** ;
20: CALL A_SCALEGAP ; 如果没焊完,进入此程序计算下一道焊缝的位置和宽度等
21: JMP LBL[1] ; 计算完后,跳转到标签1,再次进行焊接
22: LBL[99]
6.4.1 REGMATH
焊接速度计算程序,思路为先根据焊丝直径和送丝速度以及熔敷率计算出焊接单位时间的填充量,再计算焊缝起弧点和收弧点的横截面积。然后用单位时间的填充量(体积)和面积就可以得出起弧点和收弧点的焊接速度。
此程序需先指定焊丝直径,工件板厚、焊缝层数以及送丝速度等变量。此程序还需要注意各个值的单位要一致。
1: R[154:Wire CSA]=((R[150:Wire Diameter]/2)*(R[150:Wire Diameter]/2)*R[151:PI]) ;
2: ;先计算焊丝横截面面积
3: R[157:Wire Vol/min]=R[156:Transfer eff]*R[155:WSPD]*R[154:Wire CSA] ;
4: ;计算填充量,焊丝横截面面积乘以焊接送丝速度再乘以熔敷率。注意送丝速度的单位
5: ;
6: !Pass Layer Volume ;
7: R[163:Layer(thk)mm]=R[161:Mtl.Thk.(mm)]/R[162:Num of layer] ; 8:
;计算每层焊缝的厚度,就是工件板厚除以焊缝层数
9: R[164:Area of "A"]=((R[163:Layer(thk)mm]*R[163:Layer(thk)mm]/2)) ;
10: ;计算“A”区的面积,如果坡口不是45°,还需要再除以坡口角度的TAN值,“A”区形状参考开头的图1
11: R[167:Gap 1 area]= R[146:GAP 1(temp)]*R[163:Layer(thk)mm] ;
12: ;计算起弧点长方形部分的面积,坡口宽度乘以层高,形状参考开头的图1 13: R[168:Gap 2 area]= R[147:GAP
2(temp)]*R[163:Layer(thk)mm] ;
14: ; 计算收弧点长方形部分的面积,坡口宽度乘以层高,形状参考开头的图1
15: R[171:Pass area at 1]= ((R[167:Gap 1 area]+R[164:Area of "A"])/ R[149:NUM of passes] )
;
16:;计算起弧点焊缝的平均面积,大约等于坡口横截面积除以焊缝数量
17: R[172:Pass area at 2]= ((R[168:Gap 2 area]+R[164:Area of "A"])/ R[149:NUM of passes] )
;
18: ; 计算收弧点焊缝的平均面积,一样的方法
19: !Travel Speed Calc ;
20: R[175:Travel spd at 1]=R[157:Wire Vol/min]/R[171:Pass area at 1] ; 21:
;计算起弧点的焊接速度,就是填充量除以起弧点焊缝面积
22: R[176:Travel spd at 2]=R[157:Wire Vol/min]/R[172:Pass area at 2] ; 23:
;计算收弧点的焊接速度
24: R[175:Travel spd at 1]=R[175:Travel spd at 1]/10 ;根据实际需要转换焊接速度的单位 25:
R[176:Travel spd at 2]=R[176:Travel spd at 2]/10 ;
6.4.2 ADPTWV
焊接时摆动幅度的计算程序,根据其他程序计算出来的焊缝宽度,我们可以很容易地算出焊缝的摆幅,然后再通过赋值给相应变量的方法改变摆焊规范条件中的数值。
1: R[130:WV 1 AMP]=R[140:GAP 1(mm) ]-1 ;将起弧点的宽度减去1mm,再除以2,就可
2: R[130:WV 1 AMP]=R[130:WV 1 AMP]/2 ; 已得出起弧点的摆幅。减去1mm是为了减
3: ;
去焊丝的半径,也可以用来微调摆幅。
4: R[131:WV 2 AMP]=R[141:GAP 2(mm)]-1 ; 收弧点的摆幅用一样的方法来处理。
5: R[131:WV 2 AMP]=R[131:WV 2 AMP]/2 ;
6: ;
7: !SET WEAVE SCHEDULE ;
8: $WVSCH[9].$AMPLITUDE=R[130:WV 1 AMP]
;通过把摆幅寄存器的值赋给相应变量的方法来改变摆动规范中的数值。变量[]内的数字就是摆动规范的号码。可根据实际情况来进行修改,注意和焊接程序中的保持一致。
9: $WVSCH[10].$AMPLITUDE=R[131:WV 2 AMP] ;
6.4.3 SCALEGAP
在每次焊接完成后,就会调用此程序来计算下一道焊缝的位置以及焊缝宽度等数据。思路是,首先,根据每层焊缝的高度以及坡口的角度,可以算出每层焊缝比上一层增加了多宽,对45°坡口来说,每层的宽度增加量就等于焊
缝的厚度。然后,再用宽度除以每层焊缝的数量,得出每道焊缝的宽度。知道了焊缝的宽度,就可以知道焊接点离坡口垂直边的距 离,也就可以确定起弧点、收弧点。
1: ;
2: SELECT R[144:Multipass Index]=1,JMP LBL[21] ;根据焊缝计数器,判断需要跳转的标签
3: =2,JMP LBL[22] ;注意根据实际来修改这些语句的数量和标签号码
4: =3,JMP LBL[31] ;
5: =4,JMP LBL[32] ;
6: =5,JMP LBL[33] ;
7: =6,JMP LBL[41] ;
8: =7,JMP LBL[42] ;
9: =8,JMP LBL[43] ;注意焊缝总数,以及上下对应
10: ELSE,JMP LBL[999] ;
11: ;
12: !Layer 2 ;注释,表示为第2层,这里我们以第二层焊两道来举例。
13: LBL[21] ;标签21号,和开头对应。
14: !set layer data ;
15: R[148:layer]=2 ;设置焊缝层数寄存器为2,表示为第二层焊缝
16: R[149:NUM of passes]=2 ; 设置这层焊缝一共有2道。这两个寄存器每层都需要自己设置
17: R[146:GAP 1(temp)]=R[146:GAP 1(temp)]+4 ;计算此层起弧点的宽度
18: R[147:GAP 2(temp) ]=R[147:GAP 2(temp) ]+4 ; 计算此层收弧点的宽度
19: R[148:layer]=R[148:layer]-1 ;下面计算高度需要
20: ;
21: !2-1 ;第二层第一道
22: !Weld start ;首先计算起弧点的位置偏移量
23: !Weave amplitude 1 ;计算每道焊缝起弧点的摆幅
24: R[136:GAP 1(TEMP2)]=(R[146:GAP 1(temp)]/(R[149:NUM of passes]*2)) ;
起弧点摆幅就等于起弧点的宽度除以焊缝的数量,再除以2即可。
25: !offset X ;再计算焊缝宽度方向的偏移量
26: R[134:GAP 1(TEMP1)]=R[140:GAP 1(mm) ]/2 ;先把上一层起弧点的摆幅,存入临时寄存器
27: R[134:GAP 1(TEMP1)]=R[134:GAP 1(TEMP1)]-R[136:GAP 1(TEMP2)] ;
再将上一层焊缝的摆幅减去这一层焊缝的摆幅,就可以得到两层焊缝起弧点距离坡口边缘的差值。
28: PR[160,1:MP Offset 1]=PR[160,1:MP Offset 1]-R[134:GAP 1(TEMP1)] ;
用起弧点偏移量寄存器累积宽度方向的差值,注意+、-还有方向都是根据实际情况来定
29: !offset Y ;再计算焊缝高度方向的偏移量
30: PR[160,2:MP Offset 1]=4*R[148:layer] ;
高度方向的偏移量,就是每增加一层就增加一次焊缝厚度,我们厚度设定为4mm
31: !Weld end ;
32: 计算收弧点的位置偏移量,算法和起弧点的一样,只是寄存器不同
33: !Weave amplitude 2 ;
34: R[137:GAP 2(TEMP2)]=(R[147:GAP 2(temp) ]/(R[149:NUM of passes]*2)) ;收弧点摆幅
35: !offset X 2 ;
36: R[135:GAP 2(TEMP1)]=R[141:GAP 2(mm)]/2 ;上一层收弧点的摆幅
37: R[135:GAP 2(TEMP1)]=R[135:GAP 2(TEMP1)]-R[137:GAP 2(TEMP2)] ;得到偏移量
48: PR[161,1:MP Offset 2]=PR[161,1:MP Offset 2]-R[135:GAP 2(TEMP1)] ;累积偏移量
39: !offset Y 2 ;
40: PR[161,2:MP Offset 2]=4*R[148:layer] ;高度一样的增加
41: !set PR[] ;
接下来,把前面计算出的偏移量加到起弧点、收弧点的位置寄存器内,注意偏移量是相对于第一层的偏移量,方向也要根据实际来修改。
42: PR[155:Pos 1]=PR[157:Pos 1 TEMP] ; 将起弧点的位置恢复为第一层的值
43: PR[156:Pos 2]=PR[158:Pos 1 TEMP] ; 将收弧点的位置恢复为第一层的值
44: PR[155,1:Pos 1]=PR[155,1:Pos 1]+PR[160,1:MP Offset 1] ;然后各方向再加上偏移量
45: PR[155,2:Pos 1]=PR[155,2:Pos 1]+PR[160,2:MP Offset 1] ;
46: PR[156,1:Pos 2]=PR[156,1:Pos 2]+PR[161,1:MP Offset 2] ;收弧点同样的处理
47: PR[156,2:Pos 2]=PR[156,2:Pos 2]+PR[161,2:MP Offset 2] ;
48: !set new width ;
设定每道焊缝的宽度,层宽度除以层焊缝数量即可
49: R[140:GAP 1(mm) ]=R[146:GAP 1(temp)]/R[149:NUM of passes] ;
50: R[141:GAP 2(mm)]=R[147:GAP 2(temp) ]/R[149:NUM of passes] ;
51: ;
52: !set WFS ;最后再设置一下此层的焊接规范,根据焊机和工艺来设置
53: R[155:WSPD]=6150 ;设置此层焊缝的送丝速度(mm/min),其他程序计算焊接速度时会用到
54: END ;结束程序
55: ;
56: LBL[22] ; 第二层的第二道焊缝
57: !2-2 ;
58: !offset X ;计算起弧点宽度方向的偏移量,就是在上一道的基础上移动一个摆幅的距离即可
59: PR[155,1:Pos 1]=PR[155,1:Pos 1]+R[140:GAP 1(mm) ] ;
60: !offset X 2 ; 计算收弧点宽度方向的偏移量,一样的处理
61: PR[156,1:Pos 2]=PR[156,1:Pos 2]+R[141:GAP 2(mm)] ;
62: END ;计算完后结束程序
63: ;
64: ; 如果要增加第三层的焊缝,那么只需要把第二层的程序复制下来,再简单修改一下即可
65: !Layer 3 ;第三层的注释
66: LBL[31] ;首先修改标签号码,注意和程序开头对应。
67: !set layer data ;
68: R[148:layer]=3 ;然后修改寄存器的值,设定为第3层
69: R[149:NUM of passes]=3 ;再设定此层有多少道焊缝,比如说3道
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
73: ;
74: !3-1 ;注释也可以修改一下
75: !Weld start ;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~省略的都不需要修改
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
105: !set WFS ;最后修改一下此层的焊接参数,第三层第一道就修改完了。
106: R[155:WSPD]=6150 ;
107: END ;
108: ;
109: LBL[32] ;从第二道开始,直接复制上面的程序, 再修改一下标签号和注释即可
110: !3-2 ;
111: !offset X ;
112: PR[155,1:Pos 1]=PR[155,1:Pos 1]+R[140:GAP 1(mm) ] ;
113: !offset X 2 ;
114: PR[156,1:Pos 2]=PR[156,1:Pos 2]+R[141:GAP 2(mm)] ;
115: END ;
116: ;
117: LBL[33] ; 第三层第三道,一样地处理
118: !3-3 ;
119: !offset X ;
120: PR[155,1:Pos 1]=PR[155,1:Pos 1]+R[140:GAP 1(mm) ] ;
121: !offset X 2 ;
122: PR[156,1:Pos 2]=PR[156,1:Pos 2]+R[141:GAP 2(mm)] ;
123: END ;
124: ;
125: ;
126: !Layer 4 ;如果要增加第四层,也是简单地复制粘贴再改改即可
127: LBL[41] ;修改标签号
128: !set layer data ;
129: R[148:layer]=4 ;修改层数
130: R[149:NUM of passes]=3 ;指定焊缝的数量
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
165: ;
166: !set WFS ;修改一下焊接参数
167: R[155:WSPD]=6150 ;
168: END ;
169: ;
170: LBL[42] ; 从第二道开始,修改一下标签号即可
171: !4-2 ;
172: !offset X ;
173: PR[155,1:Pos 1]=PR[155,1:Pos 1]+R[140:GAP 1(mm) ] ;
174: !offset X 2 ;
175: PR[156,1:Pos 2]=PR[156,1:Pos 2]+R[141:GAP 2(mm)] ;
176: END ;
177: ;
178: LBL[43] ; 有多少道焊缝,就复制粘贴多少道的程序
179: !4-3 ;
180: !offset X ;
181: PR[155,1:Pos 1]=PR[155,1:Pos 1]+R[140:GAP 1(mm) ] ;
182: !offset X 2 ;
183: PR[156,1:Pos 2]=PR[156,1:Pos 2]+R[141:GAP 2(mm)] ;
184: END ;
不管需要增加多少层,都可以复制粘贴再修改,注意开头的选择语句和标签号码对应即可。
6.5 RAMP_SYSVAR
可以利用此程序来快速设定焊接条件倾斜功能有关的变量,打开此功能。
1: $AWERAMP[1].$RAMP_ENABLE=1 ;
2: $AWERAMP[1].$RAMP_TO_POS=1 ;
3: $WVCFG.$RAMP_ENB=1 ;
4: $$WV_OTF_GP[1].$OTF_ENABLE=1;
5: WV_OTF_GP[1].$GET_AMP=1 ;
7、附录
7.1 接触检测参数(Touch Schedules)
寻位程序所使用的接触检测参数可参考如下设置,每次寻位成功,机器人都会将接触点的坐标记录到第14行所设置的PR[32]中,所以不推荐更改此行的值,如需要更改,那么前面程序里的所有PR[32]都要相应地更
改。
1 Touch Schedule:10 [\Touch\Schdule\10] 2 Master flag: OFF
3 Search speed 25.0 mm/sec
4 Search distance: 100.0 mm
5 Touch frame: 1
6 Search pattern: Fillet/Lap 7 Pattern type: 1_D Shift 8 Incremental search: ON
9 Auto return: ON
10 Return speed: 100.0 mm/sec
11 Return distance: 2000.0 mm
12 Reference Group: 1
13 Return term type: Fine
14 Contact record PR: 32 此行不推荐改动,前面程序用的PR[32]就是出于此处
15 Error on failure: ON 16 Error register num: 32
17 Robot Group Mask: [1,*,*,*,*,*,*,*]