ABB机器人圆形角焊缝焊接程序

ABB机器⼈圆形⾓焊缝焊接程序
以下是ABB机器⼈圆形⾓焊缝的程序,它将⼀个焊接任务分为了多个⼦程序段(细化任务),该程序可实现⾃主计算焊道布置,简化操作,已经过实践检验。本⽂旨在提供思路,其中缺少少量关键代码,并不保证程序具有可运⾏能⼒。
MODULE MainModule
!***********************************************************
!
! Module:
!
! Description:
!
!
! Author: sunny
!
! Version: 1.0
!
!***********************************************************
!***********************************************************
!
! Procedure main
!
!  This is the entry point of your program
!
!
***********************************************************
PROC main()!main Program
MoveToblind;
Threepoint_teach;
CaculateWobj;
pose_update tWeldGun,wweld;
Back_to_Start;
Autoweld;
ENDPROC
PROC MoveToblind()!安全点设置
MoveJ p_blind_home10, v100, z10, tWeldGun;
!
MoveJ p_blind_gd10, v100, z10, tWeldGun;
!MoveJ p_blind_gd20, v100, z10, tWeldGun;
ENDPROC
PROC Threepoint_teach()!三点⽰教圆
MoveJ p_circle_one, v100, fine, tWeldGun;
stop;
MoveL p_circle_two, v100, fine, tWeldGun;
stop;
MoveL p_circle_three, v100, fine, tWeldGun;
stop;
ENDPROC
PROC CaculateWobj()!⼯具坐标计算
<:=p_;
Radius:=CaculateRadius(p_ans);
CacFrame:=DefFrame(pCircleCenter,p_circle_one,p_circle_two);
topsurface.uframe:=CacFrame;
topsurface.oframe:=[[0,0,0],[1,0,0,0]];
wweld.uframe:=topsurface.uframe;
ans.z:=ans.z-H;
wweld.oframe:=[[0,0,0],[1,0,0,0]];
ENDPROC
PROC pose_update(PERS tooldata tWeldGun, PERS wobjdata wweld)!计算上表⾯圆周及⽰教焊接过程中的焊姿态
<:=p_;
pose2:=wweld.uframe;
<:=;
MoveL p_circle_two, v100, fine, tWeldGun;
p_upAngle0:=Offs(pCircleCenter, Circlepoint_x(0,Radius),Circlepoint_y(0,Radius),-H);
p_upAngle60:=Offs(pCircleCenter, Circlepoint_x(60,Radius),Circlepoint_y(60,Radius),-H);
p_upAngle120:=Offs(pCircleCenter, Circlepoint_x(120,Radius),Circlepoint_y(120,Radius),-H);
p_upAngle180:=Offs(pCircleCenter, Circlepoint_x(180,Radius),Circlepoint_y(180,Radius),-H);
p_upAngle240:=Offs(pCircleCenter, Circlepoint_x(240,Radius),Circlepoint_y(240,Radius),-H);
p_upAngle300:=Offs(pCircleCenter, Circlepoint_x(300,Radius),Circlepoint_y(300,Radius),-H);
p_upAngle360:=Offs(pCircleCenter, Circlepoint_x(360,Radius),Circlepoint_y(360,Radius),-H);
p_upAngleAOA:=Offs(pCircleCenter, Circlepoint_x(AOA,Radius),Circlepoint_y(AOA,Radius),-H);
:=;
bconf:=bconf;
MoveL p_upAngle0, v50, fine, tWeldGun\WObj:=wweld;
stop;
:=;
bconf:=bconf;
MoveL p_upAngle60, v50, fine, tWeldGun\WObj:=wweld;
stop;
:=;
bconf:=bconf;
MoveL p_upAngle120, v50,  fine, tWeldGun\WObj:=wweld;
stop;
:=;
bconf:=bconf;
MoveL p_upAngle180, v50,  fine, tWeldGun\WObj:=wweld;
stop;
:=;
bconf:=bconf;
MoveL p_upAngle240, v50,  fine, tWeldGun\WObj:=wweld;
stop;
:=;
bconf:=bconf;
MoveL p_upAngle300, v50, fine, tWeldGun\WObj:=wweld;
stop;
:=;
bconf:=bconf;
MoveL p_upAngle360, v50,  fine, tWeldGun\WObj:=wweld;
stop;
:=;
bconf:=bconf;
MoveL p_upAngleAOA, v50,  fine, tWeldGun\WObj:=wweld;
stop;
ENDPROC
PROC Back_to_Start()!返回起焊安全点
MoveJ p_upAngle360, v50,  z20, tWeldGun\WObj:=wweld;
MoveC p_upAngle300, p_upAngle240,v50,  z20, tWeldGun\WObj:=wweld;
MoveC p_upAngle180, p_upAngle120,v50,  z20, tWeldGun\WObj:=wweld;
MoveC p_upAngle60, p_upAngle0,v50,  z20, tWeldGun\WObj:=wweld;
MoveJ Offs(p_upAngle0,50,0,-50), v50,  fine, tWeldGun\WObj:=wweld;
stop;
ENDPROC
PROC Path_Poseupdate()!焊接姿态赋值
:=;
bconf:=bconf;
:=;
bconf:=bconf;
:=;
bconf:=bconf;
:=;
bconf:=bconf;
:=;
bconf:=bconf;
:=;
bconf:=bconf;
:=;
bconf:=bconf;
:=;
bconf:=bconf;
ENDPROC
PROC Autoweld()!⾃动焊接及排道
VAR num n:=0;
VAR num i;
VAR num j;
FOR i FROM NOW_i TO LAYER DO
ENDFOR
ENDPROC
PROC welding()!焊接
ArcLStart p_bAngle0, v50, seam1, weld1, fine, tWeldGun\WObj:=wweld;
ArcC p_bAngle60, p_bAngle120, v50, seam1, weld1, fine, tWeldGun\WObj:=wweld;
ArcC p_bAngle180, p_bAngle240, v50, seam1, weld1, fine, tWeldGun\WObj:=wweld;
ArcCEnd p_bAngle300, p_bAngleAOA, v50, seam1, weld1, fine, tWeldGun\WObj:=wweld;
MoveJ Offs(p_bAngle360,50,0,-50), v50,  fine, tWeldGun\WObj:=wweld;
Back_to_Start;
stop;
ENDPROC
PROC WeldPathCac(num Tier, num n, PERS tooldata tWeldGun, PERS wobjdata wweld)!计算焊道的轨迹
<:=;
p_bAngle0:=Offs(pCircleCenter, Circlepoint_x(0,Dr+Radius),Circlepoint_y(0,Dr+Radius), Dh);
p_bAngle60:=Offs(pCircleCenter, Circlepoint_x(60,Dr+Radius),Circlepoint_y(60,Dr+Radius), Dh);
p_bAngle120:=Offs(pCircleCenter, Circlepoint_x(120,Dr+Radius),Circlepoint_y(120,Dr+Radius), Dh);    p_bAngle180:=Offs(pCircleCenter, Circlepoint_x(180,Dr+Radius),Circlepoint_y(180,Dr+Radiu
s), Dh);    p_bAngle240:=Offs(pCircleCenter, Circlepoint_x(240,Dr+Radius),Circlepoint_y(240,Dr+Radius), Dh);    p_bAngle300:=Offs(pCircleCenter, Circlepoint_x(300,Dr+Radius),Circlepoint_y(300,Dr+Radius), Dh);
p_bAngle360:=Offs(pCircleCenter, Circlepoint_x(360,Dr+Radius),Circlepoint_y(360,Dr+Radius), Dh);    p_bAngleAOA:=Offs(pCircleCenter, Circlepoint_x(AOA,Dr+Radius),Circlepoint_y(AOA,Dr+Radius), Dh);    Path_Poseupdate;
ENDPROC

本文发布于:2024-09-20 21:20:26,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/89695.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:焊接   计算   程序   焊道
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议