ABB激光切割工业机器人的离线编程与仿真文档格式.docx

上传人:wj 文档编号:3635165 上传时间:2023-05-02 格式:DOCX 页数:28 大小:1.18MB
下载 相关 举报
ABB激光切割工业机器人的离线编程与仿真文档格式.docx_第1页
第1页 / 共28页
ABB激光切割工业机器人的离线编程与仿真文档格式.docx_第2页
第2页 / 共28页
ABB激光切割工业机器人的离线编程与仿真文档格式.docx_第3页
第3页 / 共28页
ABB激光切割工业机器人的离线编程与仿真文档格式.docx_第4页
第4页 / 共28页
ABB激光切割工业机器人的离线编程与仿真文档格式.docx_第5页
第5页 / 共28页
ABB激光切割工业机器人的离线编程与仿真文档格式.docx_第6页
第6页 / 共28页
ABB激光切割工业机器人的离线编程与仿真文档格式.docx_第7页
第7页 / 共28页
ABB激光切割工业机器人的离线编程与仿真文档格式.docx_第8页
第8页 / 共28页
ABB激光切割工业机器人的离线编程与仿真文档格式.docx_第9页
第9页 / 共28页
ABB激光切割工业机器人的离线编程与仿真文档格式.docx_第10页
第10页 / 共28页
ABB激光切割工业机器人的离线编程与仿真文档格式.docx_第11页
第11页 / 共28页
ABB激光切割工业机器人的离线编程与仿真文档格式.docx_第12页
第12页 / 共28页
ABB激光切割工业机器人的离线编程与仿真文档格式.docx_第13页
第13页 / 共28页
ABB激光切割工业机器人的离线编程与仿真文档格式.docx_第14页
第14页 / 共28页
ABB激光切割工业机器人的离线编程与仿真文档格式.docx_第15页
第15页 / 共28页
ABB激光切割工业机器人的离线编程与仿真文档格式.docx_第16页
第16页 / 共28页
ABB激光切割工业机器人的离线编程与仿真文档格式.docx_第17页
第17页 / 共28页
ABB激光切割工业机器人的离线编程与仿真文档格式.docx_第18页
第18页 / 共28页
ABB激光切割工业机器人的离线编程与仿真文档格式.docx_第19页
第19页 / 共28页
ABB激光切割工业机器人的离线编程与仿真文档格式.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

ABB激光切割工业机器人的离线编程与仿真文档格式.docx

《ABB激光切割工业机器人的离线编程与仿真文档格式.docx》由会员分享,可在线阅读,更多相关《ABB激光切割工业机器人的离线编程与仿真文档格式.docx(28页珍藏版)》请在冰点文库上搜索。

ABB激光切割工业机器人的离线编程与仿真文档格式.docx

2.IRB120机器人的载荷 6

第四章机器人的程序 8

1.程序的编写与注解 8

2.程序修改 16

第五章示教目标点与仿真 17

1.三个目标点的示教 17

2.机器人仿真 19

第六章Robotstudio共享打包与解包 20

1.工作站共享功能 20

2.工作站打包 20

结 论 23

参考文献 24

致谢 25

第一章绪论

1.设计背景

科技的进步与革新推动着生产力的不断发展,促使生产关系产生变革。

自工业革命以来,人力劳动已经逐渐被机械所取代,而这种变革为人类社会创造出巨大的财富,极大地推动了人类社会的进步。

如今,机电体化、机械智能化等技术应运而生。

多功能机器人实训台,包括ABBIRB120型机器人,三菱FX3U-48MR型PLC,模式选择控制面板模块,送料模块,模拟压铸模块,输送带模块,物料检测模块,搬运、码垛模块和几何轨迹模块等。

同时,现代生产的高效率、柔性化需求也促使了工业机器人离线编程软件产品的产生。

机器人离线编程系统,是利用计算机图形学技术,建立起机器人及其工作环境的模型,利用机器人语言及相关算法,通过对图形的控制和操作在离线的情况下进行轨迹规划。

离线编程技术具有传统的在线示教技术无法比拟的优势,比如:

可减少停机时间、可提前验证作业程序,进行复杂的轨迹规划等。

2.工业机器人发展现状

工业机器人的出现将人类从繁重、单一的劳动中解放出来,它还能够从事一些不适合人类甚至超越人类能力的劳动,如在强辐射、强污染的环境下作业。

工业机器人技术已经广泛地进入人们的生产和生活领域。

机器人自20世纪

60年代初问世以来,已取得了实质性的进步和成果。

在机械制造领域,工业机器人在经历了从诞生、成长、成熟期后,己成为不可缺少的核心自动化装备,目前世界上约有近百万向工业机器人正在各种生产现场工作。

在非制造领域,上至

2

太空舱、宇宙飞船、月球探险,下至极限环境作业、医疗手术、日常生活服务,机器人技术的应用己拓展到什会经济发展的诸多领域。

机器人技术作为当今科学技术发展的前沿学科,已成为未来社会生产和生活中不可缺少的一门核心技术。

可以预见,我们已经进入一个崭新的机器人技术时代。

第二章Robotstudio机器人

1.机器人的选用

根据要设计的程序,选用IRB120工业机器人,IRB120是ABB新型第四代机器人家族的最新成员,也是迄今为止ABB制造的最小机器人。

IRB120具有敏捷、紧凑、轻量的特点,控制精度与路径精度俱优,是物料搬运与装配应用的理想选择。

它的特点是:

(1)紧凑轻量,作为ABB目前最小的机器人,IRB120在紧凑空间内凝聚了ABB产品系列的全部功能与技术。

其重量减至仅25kg,结构设计紧凑,几乎可安装在任何地方,比如工作站内部,机械设备上方,或生产线上其他机器人的近旁。

(2)IRB120广泛适用于电子、食品饮料、机械、太阳能、制药、医疗、研究等领域,进一步增强了ABB新型第四代机器人家族的实力。

采用白色涂层的洁净室ISO5级机型适用于高标准洁净生产环境,开辟了全新应用领域。

这款6轴机器人最高荷重3kg(手腕(五轴)垂直向下时为4kg),工作范围达580mm,能通过柔性(非刚性)自动化解决方案执行一系列作业。

IRB120是实现高成本效益生产的完美之选,在有限的生产空间其优势尤为明显。

(3)IRB120仅重25kg,出色的便携性与集成性,使其成为同类产品中的佼佼者。

该机器人的安装角度不受任何限制。

机身表面光洁,便于清洗;

空气管线与用户信号线缆从底脚至手腕全部嵌入机身内部,易于机器人集成。

(4)除水平工作范围达580mm以外,IRB120还具有一流的工作行程,底座下方拾取距离为112mm。

IRB120采用对称结构,第2轴无外凸,回转半径极小,可靠近其他设备安装,纤细的手腕进一步增强了手臂的可达性。

(5)IRB120配备轻型铝合金马达,结构轻巧、功率强劲,可实现机器人高加速运行,在任何应用中都能确保优异的精准度与敏捷性。

(6)ABB新推出的这款紧凑型控制器高度浓缩了IRC5的顶尖功能,将以往大型设备“专享”的精度与运动控制引入了更广阔的应用空间。

除节省空间之外,新型控制器还通过设置单相电源输入、外置式信号接头(全部信号)及内置式可扩展16路I/O系统,简化了调试步骤。

离线编程软件RobotStudio可用于生产工作站模拟,为机器人设定最佳位置;

还可执行离线编程,避免发生代价高昂的生产中断或延误。

(7)紧凑化、轻量化的IRB120机器人与IRC5紧

`

4

凑型控制器这两种新产品的完美结合,显著缩小了占地面积,最适合空间紧张的应用场合,如下图2-1。

图2-1IRB120机器人

2.IRB120机器人的载荷

如图2-2所示为IRB120的载荷关系图。

其中,Z为安装工具的重心沿Z轴到第六轴法兰盘中心的距离,L为安装工具的重心到Z轴的距离。

为保证机械臂在带载后仍可以保证运动的稳定性和准确性,随着载荷的增大,要求载荷心必须更接近第六轴法兰盘的中心。

此外,IRB120载荷的最大限定为3kg。

图2-2机器人载荷关系

25

第三章程序数据创建与I/O信号配置

1.工具数据创建

在虚拟示教器中,根据以下参数设定工具数据tGripper,示例如下表3.1所示

参数名称 参数数值

robhold TRUE

tframe.trans.x 0

tframe.trans.x 115

tload.mass 1

tload.cog.x 0

tload.cog.y 0

tload.cog.z 100

表3.1工具数据tGripper参数

图3-1工具数据tGripper示意图

在本工作站中,坐标系均采用用户三点法创建。

在虚拟示教器中,根据下面图3-2和3-3所示位置设定工件坐标

图3-2WobjCNV

图3-3 WobjBuffer

第四章机器人的程序

1.程序的编写与注解

以下是实现机器人逻辑和动作控制的RAPID程序:

数据定义:

MODULEMainMoudleCONSTrobtargetpPick:

=[[394.997607159,132.703199388,12.734872184],[0.005862588,-0.00300065,0.999966662,0.004827206],[0,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];

CONSTrobtarget

pHome:

=[[-548.424175962,-238.61219249,801.420966892],[-0.000000012,-0

.707106781,0.707106781,-0.000000012],[0,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];

CONSTrobtargetpPlaceBase:

=[[100.088594059,77.835146221,158.046135973],[0.000000

04,-0.000623424,0.999999806,-0.000000001],[-1,0,-1,0],[9E9,9E9,9E9,9E

9,9E9,9E9]];

!

需要示教的目标点数据,抓取点pPick,HOME点pHome、放置基准点pPlaceBase

PERSrobtargetpPlace;

放置目标点,类型为PERS,在程序中被赋予不同的数值,用以实现多点位放置

CONSTjointtargetjposHome:

=[[0,0,0,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9

]];

关节目标点数据,各关节轴度数为0,即机器人回到各关节轴机械刻度零

CONSTspeeddatavLoadMax:

=[3000,300,5000,1000];

CONSTspeeddatavLoadMin:

=[500,200,5000,1000];

CONSTspeeddatavEmptyMax:

=[5000,500,5000,1000];

CONSTspeeddatavEmptyMin:

=[1000,200,5000,1000];

速度数据,根据实际需求定义多种速度数据,以便于控制机器人各动作的速度

PERSnumnCount:

=1;

数字型变量nCount,此数据用于太阳能薄板计数,根据此数据的数值赋予放置目标点pPlace不同的位置数据,以实现多点位放置

PERSnumnXoffset:

=145;

PERSnumnYoffset:

=148;

数字型变量,用做放置位置偏移数值,即太阳能薄板摆放位置之间在X、Y

方向的单个间隔距离

VARboolbPickOK:

=False;

布尔量,当拾取动作完成后将其置为True,放置完成后将其置为False,以作逻辑控制之用

TASK PERS tooldatatGripper:

=[TRUE,[[0,0,115],[1,0,0,0]],[1,[0,0,100],[0,1,0,0],0,0,0]];

定义工具坐标系数据tGripperTASKPERSwobjdata

WobjBuffer:

=[FALSE,TRUE,"

"

[[-350.365,-355.079,418.761],[0.707547,0,0

0.706666]],[[0,0,0],[1,0,0,0]]];

定义暂存盒工件坐标系WobjBufferTASKPERSwobjdata

WobjCNV:

[[-726.207,-645.04,600.015],[0.709205,-0.0075

588,0.000732113,0.704961]],[[0,0,0],[1,0,0,0]]];

定义输送带工件坐标系WobjCNV

TASKPERSloaddataLoadFull:

=[0.5,[0,0,3],[1,0,0,0],0,0,0];

定义有效载荷数据LoadFull

主程序运行程序

PROCMain()

rInitialize;

调用初始化程序WHILETRUEDO

利用WHILE循环将初始化程序隔开

rPickPanel;

调用拾取程序rPlaceInBuffer;

调用放置程序

Waittime0.3;

循环等待时间,防止不满足机器人动作情况下程序扫描过快,造成CPU过负荷

ENDWHILEENDPROC

PROCrInitialize()

初始化程序

rCheckHomePos;

机器人位置初始化,调用检测是否在Home位置点程序,检测当前机器人位置是否在HOME点,若在HOME点的话则继续执行之后的初始化相关指令;

若不在HOME点,则先返回至HOME点

nCount:

计数初始化,将用于太阳能薄板的计数数值设置为1,即从放置的第一个位置开始摆放

resetdo32_VacuumOpen;

信号初始化,复位真空信号,关闭真空

bPickOK:

布尔量初始化,将拾取布尔量置为False

ENDPROC

PROCrPickPanel()

拾取太阳能薄板程序

IFbPickOK=FalseTHEN

当拾取布尔量bPickOK为False时,则执行IF条件下的拾取动作指令,否则执行ELSE中出错处理的指令,因为当机器人去拾取太阳能薄板时,需保证其真空夹具上面没有太阳能薄板

MoveJoffs(pPick,0,0,100),vEmptyMax,z20,tGripper\WObj:

=WobjCNV

;

利用MoveJ指令移至拾取位置pPick点正上方Z轴正方向100mm处

WaitDIdi01_PanelInPickPos,1;

等待产品到位信号di01_PanelInPickPos变为1,即太阳能薄板已到位MoveLpPick,vEmptyMin,fine,tGripper\WObj:

=WobjCNV;

产品到位后,利用MoveL移至拾取位置pPick点

Setdo32_VacuumOpen;

将真空信号置为1,控制真空吸盘产生真空,将太阳能薄板拾起

WaitDIdi02_VacuumOK,1;

!

等待真空反馈信号为1,即真空夹具产生的

真空度达到需求后才认为已将产品完全拾起。

若真空夹具上面没有真空反馈信号,则可以使用固定等待时间,如Waittime0.3

=TRUE;

真空建立后,将拾取的布尔量置为TRUE,表示机器人夹具上面已拾取一个产品,以便在放置程序中判断夹具的当前状态

GripLoadLoadFull;

加载载荷数据LoadFull

MoveLoffs(pPick,0,0,100),vLoadMin,z10,tGripper\WObj:

=WobjCNV;

利用MoveL移至拾取位置pPick点正上方100mm处

ELSE

TPERASE;

TPWRITE"

CycleRestartError"

Cyclecan'

tstartwithSolarPanelonGripper"

TPWRITE"

PleasechecktheGripperandthenpressthestartbutton"

stop;

如果在拾取开始之前拾取布尔量已经为TRUE,则表示夹具上面已有产品,此种情况下机器人不能再去拾取另一个产品。

此时通过写屏指令描述当前错误状态,并提示操作员检查当前夹具状态,排除错误状态后再开始下一个循环。

同时利用Stop指令,停止程序运行

ENDIFENDPROC

PROCrPlaceInBuffer()!

放置程序IFbPickOK=TRUETHEN

rCalculatePos;

调用计算放置位置程序。

此程序中会通过判断当前计数nCount的值,从而对放置点pPlace赋予不同的放置

MoveJoffs(pPlace,0,0,100),vLoadMax,z50,tGripper\WObj:

=WobjBuffer;

利用MoveJ移至放置位置pPlace点正上方100mm处

MoveLoffs(pPlace,0,0,0),vLoadMin,fine,tGripper\WObj:

=WobjBuffer;

利用MoveL移至放置位置pPlace处

Resetdo32_VacuumOpen;

复位真空信号,控制真空夹具关闭真空,将产品放下

WaitTime0.3;

等待0.3s,以防止刚放置的产品被剩余的真空带起

WaitDIdi02_VacuumOK,0;

GripLoadload0;

加载载荷数据load0bPickOK:

=FALSE;

此时真空夹具已将产品放下,需要将拾取布尔量置

为FALSE,以便在下一个循环的拾取程序中判断夹具的当前状态

MoveLoffs(pPlace,0,0,100),vEmptyMin,z10,tGripper\WObj:

利用MoveL移至放置位pPlace点正上方100mm处

=nCount+1;

产品计数nCount加1,通过累积nCount的数值,在计算放置位置的程序rCalculatePos中赋予放置点pPlace不同的位置数据

IFnCount>

4THEN!

判断计数nCount是否大于4,此处演示的状况是放置4个产品,即表示已满载,需要更换暂存盒以及其他的复位操作,如计数nCount、满载信号等

计数复位,将nCount赋值为1

MoveJpHome,v100,fine,tGripper;

机器人移至Home点,此处可根据实际情况来设置机器人的动作,例如若是多工位放置,那么机器人可继续去其他的放置工位进行产品的放置任务

PROCrCalculatePos()

计算位置子程序,检测当前计数nCount的数值,以pPlaceBase为基准点,利用Offs指令在坐标系WobjBuffer中沿着X、Y、Z方向偏移相应的数值

TESTnCountCASE1:

pPlace:

=offs(pPlaceBase,0,0,0);

若nCount为1,pPlaceBase点就是第一个放置位置,所以X、Y、Z偏移值均为0,也可以直接写成:

=pPlaceBase;

CASE 2:

=offs(pPlaceBase,nXoffset,0,0);

若nCount为2,位置2相对于放置基准点pPlaceBase点在X正方向偏移了一个产品间隔

CASE3:

=offs(pPlaceBase,0,nYoffset,0);

若nCount为3,位置3相对于放置基准点pPlaceBase点在Y正方向偏移了一个产品间隔

CASE4:

=offs(pPlaceBase,nXoffset,nXoffset,0);

若nCount为4,位置4相对于放置基准点pPlaceBase点在X、Y正方向各偏移了一个产品间隔

DEFAULT:

TheCountNumberiserror,pleasecheckit!

STOP;

若nCount数值不为Case中所列的数值,则视为计数出错,写屏提示错误信息,并利用Stop指令停止程序循环

ENDTEST

ENDPROC

PROCrCheckHomePos()!

检测是否在Home点程序

VARrobtargetpActualPos;

定义目标点数据

IF NOTCurrentPos(pHome,tGripper)THEN !

调用功能程序

pActualpos:

=CRobT(\Tool:

=tGripper\WObj:

=wobj0);

利用

CrobT功能读取机器人目标位置并赋值给目标点数据

pActualpos.trans.z:

=pHome.trans.z;

赋值

MoveLpActualpos,v100,z10,tGripper;

移动赋值点MoveLpHome,v100,fine,tGripper;

移至pHome点

FUNCboolCurrentPos(robtargetComparePos,INOUTtooldataTCP

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2