工业机器人离线编程 第2版-课件第4章 码垛机器人的离线编程_第1页
工业机器人离线编程 第2版-课件第4章 码垛机器人的离线编程_第2页
工业机器人离线编程 第2版-课件第4章 码垛机器人的离线编程_第3页
工业机器人离线编程 第2版-课件第4章 码垛机器人的离线编程_第4页
工业机器人离线编程 第2版-课件第4章 码垛机器人的离线编程_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

工业机器人离线编程课程主要内容第一章工业机器人认知第二章激光切割工业机器人的离线编程第三章搬运机器人的离线编程第四章码垛机器人的离线编程第五章输送链搬运工作站的构建与运行学习情境2:数控系统显示画面及操作

第4章码垛机器人的离线编程学习目标1.学会中断程序的运用2.学会码垛常用I/O配置3.学会使用离线软件进行码垛数据创建4.学会使用离线软件进行码垛程序编写5.学会码垛节拍优化技巧任务描述工作站以箱体码垛为例,利用IRB460机器人完成码垛任务,整个工作站由产品输入线和产品输出位组成。工作站中已经预设码垛动作效果(包含产品输送流转、夹具动作、产品的拾取和放置等),大家需要在此工作站中依次完成I/O配置、程序数据创建、目标点示教、程序编写及调试,最终完成整个码垛工作站的码垛任务。4.1知识储备——高级指令

ConfL用于指定机器人在线性运动及圆弧运动过程中是否严格遵循程序中已设定的轴配置参数。在默认情况下,轴配置监控是打开的,当关闭轴配置监控后,机器人在运动过程中采取最接近当前轴配置数据的配置到达指定目标点,影响的是MoveL(线性运动)指令的执行。4.1.1轴配置监控指令1.指令ConfL示例:CONSTrobtargetp10:=*.*.*].[**,**],[1,0,1,0],[9E9,9E9,9E9,9E9,9E9,9E9]];!目标点p10中,数据[1,0,1,0]就是此目标点的轴配置数据ConfL\Off;MoveLp10,v1000,fine,tool0;在某些应用场合,如离线编程创建目标点或手动示教相邻两目标点间轴配置数据相差较大时,在机器人运动过程中容易出现报警“轴配置错误”而造成停机。此种情况下,若对轴配置要求较高,则一般通过添加中间过渡点;若对轴配置要求不高,则可通过指令ConfL\Off关闭轴监控,使机器人自动匹配可行的轴配置来到达指定目标点。4.1.1轴配置监控指令1.指令ConfLConfJ用法与ConfL相同,只不过前者为关节线性运动过程中的轴监控开关,影响的是MoveJ;而后者为线性运动过程中的轴监控开关,影响的是MoveL4.1.1轴配置监控指令2.指令ConfJ在搬运过程中,为了提高节拍时间,在控制吸盘夹具动作过程中,吸取物品时需要提前打开真空,在放置物品时也需要提前释放真空。为了能够准确地触发吸盘夹具动作,通常采用动作触发指令TiggL来实现控制。动作触发指令TriggL是在线性运动过程中,在指定的位置触发事件,如置位输出信号和激活中断等。动作触发指令可以定义多种类型的触发事件,如触发信号Tiggl/O、触发装置动作TriggEquip,以及触发中断TiggInt。4.1.2动作触发指令VARtriggdataGripOpen;TriggEquipGripOpen,10,0.1\DOp:=doGripOn,1;TriggLpl,v500,GripOpen,z10,gun1;

如果触发距离的参考点是起点,则在触发距离后面添加变量\Start,例如:TriggEquipGripOpen,10\Start,0.1\DOp:=doGripOn,l;4.1.2动作触发指令示例:触发装置动作程序,要求在距离终点10mm位置处触发机器人夹具的动作。在RAPID程序执行过程中,如果发生需要紧急处理的情况,这时就要求工业机器人中断当前正在执行的程序,程序指针PP马上跳转到专门的程序中对紧急的情况进行相应处理,处理结束后程序指针PP返回原来被中断的地方,继续往下执行程序。专门用来处理紧急情况的专门程序,被称为中断程序(TRAP)。中断程序经常用于出错处理、外部信号响应等实时响应要求高的场合。4.1.3中断及功能程序1.中断程序示例:PROCrIntall()!用于初始化的例行程序VARintnumintnol;!定义中断数据intnolIDeleteintnol;!取消当前中断符intnol的连接,预防误触发CONNECTintnolWITHtTrap;!将中断符与中断程序tTrap连接ISignalDIdil,1,intnol;!定义触发条件,即当数字输人信号dil为1时,触发该中断程序ENDPROCTRAPtTrap!中断程序regl:=reg1+1;ENDTRAP

4.1.3中断及功能程序1.中断程序在ABB工业机器人的RAPID编程中的功能(FUNCTION)可以看作带返回值的例行程序,并可以将其封装成为一个指定功能的模块,使用时值需要输入指定类型的数据就可以返回一个值存放到对应的程序数据。4.1.3中断及功能程序2.功能程序示例:FUNCboolCurrentPos(robtargetComparePos,INOUTtooldataTCP)!检测目标点功能程序,带有两个参数,比较目标点和所使用的工具数据VARnumCounter:=0;!定义数字型数据CounterVARrobtargetActualPos;!定义目标点数据ActualPosActualPos:=CRobT(\Tool:=tGripper\WObj:=wobj0);!利用CRobT功能读取当前机器人目标位置并赋值给ActualPosIFActualPos.trans.x>ComparePos.trans.x-25ANDActualPos.trans.x<ComparePos.trans.x+25Counter:=Counter+1;IFActualPos.trans.y>ComparePos.trans.y-25ANDActualPos.trans.y<ComparePos.trans.y+25Counter:=Counter+1;4.1.3中断及功能程序2.功能程序IFActualPos.trans.z>ComparePos.trans.z-25ANDActualPos.trans.z<ComparePos.trans.z+25Counter:=Counter+1;IFActualPos.rot.q1>ComparePos.rot.q1-0.1ANDActualPos.rot.q1<ComparePos.rot.q1+0.1Counter:=Counter+1;IFActualPos.rot.q2>ComparePos.rot.q2-0.1ANDActualPos.rot.q2<ComparePos.rot.q2+0.1Counter:=Counter+1;IFActualPos.rot.q3>ComparePos.rot.q3-0.1ANDActualPos.rot.q3<ComparePos.rot.q3+0.1Counter:=Counter+1;IFActualPos.rot.q4>ComparePos.rot.q4-0.1ANDActualPos.rot.q4<ComparePos.rot.q4+0.1Counter:=Counter+1;RETURNCounter=7;

ENDFUNC4.1.3中断及功能程序2.功能程序PROCrCheckHomePos()!检测是否在Home点程序VARrobtargetpActualPos;!定义一个目标点数据pActualPosIFNOTCurrentPos(pHome,tGripper)THENpActualpos:=CRobT(\Tool:=tGripper\WObj:=wobj0);pActualpospActualpos.trans.z:=pHome.trans.z!将pHome点的Z值赋给pActualpos点的Z值MoveLpActualpos,v100,z10,tGripper;!移至已被赋值的后的pActualpos点MoveLpHome,v100,fine,tGripper;!移至pHome,目的是需要先将机器人提升至与pHome点一样的高度,之后再平移至pHome点,这样可以简单地规划一条安全回Home点的轨迹ENDIFENDPROC4.1.3中断及功能程序2.功能程序程序中的数据大多是组合型数据,包含多项数值或字符串。可以对其中的任何一项参数进行赋值。例如:PERSrobtargetP10:=[[0,0,0],[1,0,0,0],[0,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];PERSrobtargetP20:=[[100,0,0],[0,0,1,0],[1,0,1,0],[9E9,9E9,9E9,9E9,9E9,9E9]];目标点数据中包含了4组数据,从前往后依次为:TCP位置数据[100,0,0](trans)、TCP姿态数据[0,0,1,0](rot)、轴配置参数[1,0,1,0](robconf)和外部数据[9E9,9E9、9E9,9E9,9E9,9E9](extax),可以分别对该数据的各项数值进行操作。4.1.4复杂数据如:P10.trans.x:=P20.trans.x+30;P10.trans.y:=P20.trans.y-30;P10.trans.z:=P20.trans.z+60;P10.rot:=P20.rot;P10.robconf:=P20.Robconf;进行赋值后P10变为:P10:=[[130,-30,60],[0,0,1,0],[1,0,1,0],[9E9,9E9,9E9,9E9,9E9,9E9]];4.1.4复杂数据4.2任务实施——码垛机器人编程与仿真4.2.1配置I/O单元及信号1.配置I/O单元

Name

Network

Address

Board10

DeviceNet

102.配置I/O信号4.2.1配置I/O单元及信号NameType

of

SignalAssignedtoDeviceDevice

MappingI/O

信号注解di01_BoxInPos_RDigital

Inputboard101产品到位信号di03_PalletPos_RDigital

Inputboard103码盘到位信号di07_MotorOnDigital

Inputboard107电动机上电di08_StartDigital

Inputboard108程序开始di09_StopDigital

Inputboard109程序停止di10_StartAtMainDigital

Inputboard1010从主程序开始di11_EstopResetDigital

Inputboard1011急停复位2.配置I/O信号4.2.1配置I/O单元及信号NameType

of

SignalAssignedtoDeviceDevice

MappingI/O

信号注解do00_ClampActDigital

Outputboard100控制夹板do01_HooKActDigital

Outputboard101控制钩爪do03_PalletFull_RDigital

Outputboard102码盘满载信号do05_AutoOnDigital

Outputboard103电机上电do06_EstopDigitalOutputboard104急停状态do07_CycleOnDigitalOutputboard105运行状态do08_ErrorDigitalOutputboard106程序报错3.配置系统输入与输出4.2.1配置I/O单元及信号TypeSignalNameActionArgumen1注释SystemInputdi07_MotorOnMotorOn无电动机上电SystemInputdi08_StartStartContinuous程序启动SystemInputdi09_StopStop无程序停止SystemInputdi10_StartAtMainStartAtMainContinuous从主程序启动SystemInputdi11_EstopResetReset

Emergencystop无急停状态恢复SystemOutputdo05_AutoOnAutoOn无电动机上电状态SystemOutputdo06_EstopEmergencystop无急停状态SystemOutputdo07_CycleOnCycleOn无程序正在运行SystemOutputdo08_ErrorExecutionErrorT_ROB1程序报错4.2.2创建工具数据参数名称参数值robotholdTRUEtransX0Y0Z527rotq11q20q30q40mass20cogX0Y0Z150其余参数均为默认值4.2.3创建工件坐标系4.2.4创建载荷数据参数名称参数值mass20cogX0Y0Z300其余参数均为默认值4.2.5程序

在任务工作站中,需要示教的目标点有4个,分别是安全点pHome、拾取基准点pPick_R、放置基准点pPlaceBase0_R和pPlaceBase90_R,如图所示。这4个点的示教均可在手动示教目标点子程序中完成。4.3知识拓展在编写程序的过程中,有时候需要调用大量同种类型、同种用途的数据,可以用数组来存放这些数据。例:定义一个二维数组PERSnum1{3,4}:=[[1,2,3,4],[2,3,4,5],[3,4,5,6]]!定义二维数组num1VARnum2:=num1{3,4}!num1中{3,4}的值(即6)被赋值给num24.3.1数组4.3.1数组对于一些常见的码垛,可以利用数组来存放各个摆放位置数据,在放置程序中直接调用该数据即可。如图所示,需要摆放5个位置,产品尺寸为600mmx400mm。要存储5个摆放位置的数据,需要创建一个{5,4}的数组。数组中有5组数据,对应5个摆放位置;每组数据中有4项数值,分别对应x、y、z的偏移值及旋转角度。创建数组后,只需要示教一个基准点。

程序为:PERSnumnPosition{5,4}:=[[0,0,0,0],[600,0,0,0],[-100,500,0,-90],[300,500,0,-90],[700,500,0,-90]];PERSnumnCount:=1;!定义数字型数据,用于产品计数PROCrPlace()……MoveLRelTool(P1,nPosition{nCount,1},nPosition{nCount,2},nPosition{nCount,3}\Rz:=nPosition{nCount,4}),V1000,fine,tGripper\WobjPallet_R;……ENDPROC

4.3.1数组4.3.2带参数的例行程序当几个例行程序的执行过程相似,只是起点不同时,可编写成带参数的例行程序,可以实现常用功能的模块化,通过参数传递到例行程序中执行,可以简化整个程序并提高编程效率。

例:编制一个带参数的正方形绘制通用程序。程序中需要用到两个参数:一个是正方形的顶点,一个是正方形的边长。4.3.2带参数的例行程序在调用此带带参数的例行程序时,需要输入一个目标点作为正方形的顶点,同时还需要输入一个数字型数据作为正方形的边长。在程序中,调用正方形绘制程序,机器人的运行轨迹以P10为起点,绘制边长为150mm的正方形,如图所示。4.3.3码垛节拍优化1.整个机器人的码垛系统布局要合理,使拾取点和放置点尽可能近,优化夹具,缩短重量,缩短夹具开合时间;尽可能缩短机器人空运

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论