ABB机器人单面直线角焊缝自动排道焊接程序

本文描述了一种自动计算焊道布置与焊接的ABB机器人程序,并借此程序与您共同学习一下ABB机器人无返回值程序、有返回值程序及它们的调用。

main程序段

PROC main()
    Teach_start_end;
    Auto_Weld;
ENDPROC
在主程序段中,我们用了“Teach_start_end”和“Auto_Weld”两个字段,它们不是ABB机器人系统自带的指令,而是我们自己创建的子程序,它们的具体内容如下:

“Teach_start_end”子程序段****************************
PROC Teach_start_end()
    MoveJ p_sec,v50,z20,tWeldGun\WObj:=wobj_piece;
    MoveL p_start,v50,fine,tWeldGun\WObj:=wobj_piece;
    MoveL p_end,v50,fine,tWeldGun\WObj:=wobj_piece;
ENDPROC

“Teach_start_end”程序的格式为:

PROC <程序名>()**
********程序段中执行的指令
ENDPROC

PROC代表该程序段为无返回值的程序,也是这段程序的开始;
ENDPROC与PROC对应,表示这段程序的结束。
主程序中可以直接通过该段程序的程序名调用这段程序,当主程序指针到达调用的子程序名时,指针将跳转至子程序内部,从开始到结束将内部指令执行一遍,最后跳出子程序,并出现在主程序中的子程序名的下一行。


“Auto_Weld”子程序段***********************
PROC Auto_Weld()
    FOR Tier FROM NOW_i TO LAYERS DO
        FOR Beadno FROM NOW_j TO Passes_Fill{Tier} DO
            n_welded:=n_weled_calc(Tier,Beadno);
            Path_calc n_welded,Tier,Beadno,tWeldGun,wobj_piece;
            welding;
        ENDFOR
    ENDFOR
ENDPROC

“Auto_Weld”程序与“Teach_start_end”程序段的格式相同,区别在于他们内部指令不同,他们分别执行了该焊接程序的两部分内容。“Teach_start_end”用于执行程序中的示教工作,用于保存焊接过程需要通过的3个关键点(安全点,焊接的起收弧的两个端点)的信息,“Auto_Weld”用于执行焊道计数、计算焊道路径与执行焊接的功能,焊道计数功能是程序内部调用的“FOR语句”控制的,计算焊道路径是调用的“n_weled_calc”和“Path_calc ”子程序完成,焊接功能是程序内部调用的“welding”子程序完成。


FUNC num n_weled_calc(num a, num b)
    VAR num sum:=0;
    VAR num i;
    FOR i FROM 1 TO a-1 DO
        sum:= sum + Passes_Fill{i};   
    ENDFOR
    sum:=sum + b;
    RETURN sum;
ENDFUNC

“n_weled_calc”子程序段的格式可以看出与前面两段采用的PROC程序有所区别,它的格式如下:
FUNC <返回值类型><程序名>(形参1,形参2…)
***程序中执行的指令;
ENDFUNC

FUNC我们一般称作为有返回值的程序,它是这段程序的开始;
<返回值类型>用于规定这段程序返回值的类型,如num、bool等;
<程序名>即为这段程序的名称,其他程序可以通过程序名来调用这段程序;
<形参>表示这段程序被调用时需要被传到该程序中的一些值,通常这些值用来参加程序中的计算;
ENDFUNC表示这段程序的结束。


其余程序段:

PROC Path_calc(num n, num i, num j, PERS tooldata tWeldGun, PERS wobjdata wobj_piece)
    Dy:=...............;
    Dz:=...............;
    IF n MOD 2 <> 0 THEN
        p_arcon:=...............;
        p_arcoff:=..............;
    ENDIF
    p_arcon:=Offs(p_end,0,Dy,Dz);
    p_arcoff:=Offs(p_start,0,Dy,Dz);
ENDPROC

“轨迹计算程序”

PROC welding()
    MoveJ p_sec,v50,z20,tWeldGun\WObj:=wobj_piece;
    ArcLStart p_arcon, v50, seam1, weld1, fine, tWeldGun\WObj:=wobj_piece;
	ArcLEnd p_arcoff, v50, seam1, weld1, fine, tWeldGun\WObj:=wobj_piece;
    MoveJ p_sec,v50,z20,tWeldGun\WObj:=wobj_piece;
ENDPROC

“焊接执行程序”
完整版程序见https://download.csdn.net/download/ZW_finder/43102060

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZW_finder

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值