版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五篇应用篇——工业机器人技术应用
任务二工业机器人码垛第五篇应用篇——工业机器人世界漫游
1.了解码垛的应用和算法;2.掌握功能程序的应用;3.掌握码垛任务工作站的创建和配置;4.掌握码垛任务机器人程序编写与调试。5.2工业机器人码垛任务描述
5.2工业机器人码垛
码垛指将形状基本一致的产品按一定的要求堆叠起来。码垛机器人的功能就是把料袋或者料箱一层一层码到托盘上,如图5-21所示。本设备适应于化工、饮料、食品、啤酒、塑料等自动生产企业;对各种纸箱、袋装、罐装、啤酒箱等各种形状的包装都适应。图5-21机器人码垛应用任务功能简介:
5.2工业机器人码垛
本应用选择IRB460工业机器人对通过传输线输送来的纸箱进行左右两个输出工位进行码垛操作,如图5-22所示,纸箱长600mm,宽250mm,高400mm。码垛机器人除了完成搬运的任务,还要将工件有规律的摆放在托盘上。图5-22码垛仿真环境5.2工业机器人码垛
码垛摆放要求如图5-23所示,奇数层码垛要求如图5-24(a),偶数层要求如图5-24(b)所示,并依次规律进行叠加。图5-23码垛效果图5-24码垛单双层【知识储备】
5.2工业机器人码垛
一、码垛位置的算法IRB460机器人如果将工件从输送线位置搬运至位置1,需要对抓取点和位置1这两个位置点进行示教,1层5个工件就需要示教5个点,10层需要50个点。那是否可以找出其中规律,减少点呢?我们发现位置2是在位置1的基础上X正方向偏移了1个纸箱的宽度,也就是600mm,因此有了位置1,位置2就能通过运算得到。同样的道理,对位置点3进行示教后,位置3和位置5也能得到,如图5-25所示。图5-26第二层摆放位置图5-25第一层摆放位置5.2工业机器人码垛
同样第二层码垛,需要进行位置1和位置4的示教,其余位置点通过运算得到,如图5-26所示。其余层数只需要在第一层和第二层基础上,在Z轴正方向上面叠加相应的产品高度即可完成。图5-26第二层摆放位置5.2工业机器人码垛
二、功能程序应用1、功能程序定义程序分为三类:无返回值程序(PROC程序)、有返回值程序(FUNCTION程序)和软中断程序(TRAP程序)。无返回值程序(PROC程序)不返回任何值,用于语句上下文中。有返回值程序(FUNCTION程序)将返回特定类型的值,用于表达式上下文中。软中断程序(TRAP程序)能对中断进行响应。软中断程序可与特定中断关联起来,在后续发生该特定中断的情况下,被自动执行。通过有返回值程序(FUNCTION程序)调用,将对特定的有返回值程序进行求值,并且调用中会收到有返回值程序返回的值。调用的参数将数据传递至所调用的有返回值程序。调用参数的数据类型必须等同于有返回值程序的相应参数的类型。5.2工业机器人码垛
FUNCboolfazhi(numparam0,numparam1)ifparam0+param1>10THENRETURNTRUE;!如果param0+param1>10,将TRUE作为返回值。ELSERETURNFALSE;!如果param0+param1<=10,将FALSE作为返回值。ENDIFENDFUNCPROCRountine2()flag1:=fazhi(2,8);!把2和8代入fazhi函数中参与运算,结果赋给flag1。ENDPROC5.2工业机器人码垛
其中RETURN语句用于完成程序的执行。如果程序是一个函数,则同时返回函数值。(1)主程序:停止程序,指针回到主程序第一条语句。(2)无返回值程序:通过过程调用后的指令,继续程序执行。(3)功能程序:返回函数的值。(4)软中断程序:从出现中断的位置,继续程序执行。(5)无返回值程序中的错误处理器:通过调用程序以及错误处理器的程序(通过过程调用后的指令),继续程序执行。(6)功能程序中的错误处理器:返回函数值。5.2工业机器人码垛
2、FUNCTION程序案例已知有12个物料。厚度均为30mm,按照图中顺序在流水线上依次到P0点。机器人只从P0点处取包裹,当取走P0点上的包裹时,下一个包裹才能到达P0点(图5-27)。要求:对快递包裹码垛,从P1位置开始按图中顺序一层层码垛,P1、P2和P3是包裹处于第一层的位置。图5-27物料码垛图5.2工业机器人码垛
首先设置一个变量n,其意义为包裹的序数。n-1除以3的商再加1即为该包裹应处于的层数。即:(n-1)DIV3=0时为第一层(n-1)DIV3=1时为第二层(n-1)DIV3=2时为第三层(n-1)DIV3=3时为第四层当n除以3的余数为0时,表示该包裹应P3点;其余n除以3的余数即为该包裹应处于的平面点位。即:nMOD3=1时为P1点nMOD3=2时为P2点nMOD3=0时为P3点5.2工业机器人码垛
再建立一个功能程序,数据类型为点位数据robtarget,设置一个数字量参数为n。将点位布局写入该功能程序中。FUNCrobtargetPoint(numn)IFnMOD3=1THENPA:=offs(P1,0,0,(n-1)DIV3*30);ELSEIFnMOD3=2THENPA:=offs(P2,0,0,(n-1)DIV3*30);ELSEIFnMOD3=0THENPA:=offs(P3,0,0,(n-1)DIV3*30);ENDIFRETURNPA;ENDFUNC5.2工业机器人码垛
功能程序建立以后,可以在其他例行程序中调用该功能程序。PROCmaduo()MoveJHome,v500,fine,tool0;FORmFROM1TO12DOMoveJoffs(P0,0,0,300),v200,fine,tool0;MoveLP0,v100,fine,tool0;SetDO10_127;MoveLoffs(P0,0,0,300),v100,fine,tool0;MoveJoffs(Point(m),0,0,300),v200,fine,tool0;MoveLPoint(m),v100,fine,tool0;ResetDO10_127;MoveLoffs(Point(m),0,0,300),v100,fine,tool0;ENDFORMoveJHome,v500,fine,tool0;ENDPROC任务描述
5.2.1
IO信号配置
在本工作站中,我们要用到的数字输入信号有传送带工件到位信号、真空反馈信号等,此外还需要设置系统输入输出,如“启动”、“停止”、“急停复位”、“打开真空”等,。在虚拟示教器中,根据所需信号我们选配IO通讯方式,由于信号数量较少,可以通过ABB标准IO板来进行通讯,可以选取DSQC652,数字信号16进16出,没有模拟输出。ABB标准IO板是下挂在DeviceNet总线上面的,配置比较简单,单元信号配置如表5-3和表5-4所示。NameTypeofUnitConnectedtoBusDeviceNetAddressBoard10D652DeviceNet110NameTypeofSignalAssignedtounitUnitmapping信号注释diBoxInPosDigitalinputBoard100传送带工件到位diPalletInPos1DigitalinputBoard101托盘工件到位di03_startDigitalinputBoard103“外接”开始di04_stopDigitalinputBoard104“外接”停止di05_estopresetDigitalinputBoard105“外接”急停复位doGripDigitaloutputBoard1032打开真空表5-3IO单元配置表表5-4I/O信号配置表5.2.1IO信号配置
I/O板的配置和I/O信号的配置参考本篇任务一搬运应用。先进行IO板配置,进入“ABB”主菜单界面,在进入控制面板→配置→DeviceNetDevice后,选择“添加”设置,“使用来自模板的值”选择DSQC652,参考表5-3参数,设置Name、Address两个参数。再在IO板上添加IO信号,有diBoxInPos、diPalletInPos1、di03_start、di04_stop、di05_estopreset、doGrip五个数量输入信号和一个数字输出信号。进入“ABB”主菜单界面,在进入控制面板→配置→Signal后,选择“添加”,设置Name、TypeofSignal、AssignedtoDevice、Devicemapping四个参数,如图5-5所示。5.2.2创建任务数据
1、TCP的设定该工作站使用的是真空吸盘夹具,夹具比较规整,可以通过直接指定数值的方式创建工具数据。整个吸盘夹具重10kg,相对于tool0在Z方向偏移了160mm,如图5-28所示。TCP的具体设定参考本篇任务一搬运应用。图5-28工具数据tooldata5.2.2创建任务数据
2、工件坐标的设定本应用中,工件坐标系均采用用户三点法创建。在虚拟示教器中,根据图5-29所示位置设定工件坐标。如果我们要完成左右两个托盘的码垛,就要对左右托盘的码垛只需要建立2个工件坐标系即可,X、Y、Z统一规定方向,分别定义工件坐标系wobjPallet-L和wobjPallet-R。图5-29工件坐标系5.2.2创建任务数据
3、载荷数据的创建在虚拟示教器中,根据以下参数设定载荷数据LoadFull,载荷高度250mm,长600mm,宽400mm,设置方法参考任务一搬运应用。设定有效的负载数据需根据实际的重量以及抓件的重心进行设定,这样能让机器人运行起来更加平稳;IRB460码垛机器人没有重心检测功能,参数数值参考表5-5,虚拟示教器设置如图5-30所示。参数名称参数数值Mass40cogx0y0z100图5-30LoadFull设置表5-5负荷数据5.2.2创建任务数据
4、目标点的设定在本任务工作站中,需要示教4个目标点(原点pHome、抓取点pPick1、右侧旋转90度点pPlaceBase1_90、右侧不旋转点pPlaceBase1_0),分别如图5-31、图5-32、图5-33、图5-34所示,还有一些过渡点pPickH1、pPlaceH1、pActualPos等可通过程序的计算得到。图5-31原点pHome示教
图5-32抓取点pPick示教图5-33右侧旋转90度点pPlaceBase90示教
图5-34右侧不旋转点pPlaceBase0示教5.2.3码垛位置程序编写
以码垛的个数为参数n,建立1个码垛位置的功能程序rPosition11(INOUTnumn),返回值为根据码垛个数计算出来的码垛位置pPlace1(图5-35)。图5-35码垛位置功能程序rPosition1建立5.2.3码垛位置程序编写
位置2是在位置1的基础上X正方向偏移了1个纸箱的宽度,也就是600mm,位置点3同样偏移了600mm,因此有了位置1,位置2和位置3就能通过运算得到。同样的道理,对位置点4进行示教后,位置5也能得到。同样第二层码垛,需要进行位置1和位置4的示教,其余位置点通过运算得到,如图5-26所示。其余层数只需要在第一层和第二层基础上,在Z轴正方向上面叠加相应的产品高度即可完成。5.2.3码垛位置程序编写
FUNCrobtargetrPosition11(INOUTnumn)TESTnCASE1:pPlace1:=Offs(pBase1_0,0,0,0);CASE2:pPlace1:=Offs(pBase1_0,600+10,0,0);CASE3:pPlace1:=Offs(pBase1_90,0,400+10,0);CASE4:pPlace1:=Offs(pBase1_90,400+10,400+10,0);CASE5:pPlace1:=Offs(pBase1_90,800+20,400+10,0);CASE6:pPlace1:=Offs(pBase1_0,0,600+10,200);CASE7:pPlace1:=Offs(pBase1_0,600+10,600+10,200);CASE8:pPlace1:=Offs(pBase1_90,0,0,200);CASE9:pPlace1:=Offs(pBase1_90,400+10,0,200);CASE10:pPlace1:=Offs(pBase1_90,800+20,0,200);DEFAULT:Stop;ENDTESTRETURNpPlace1;ENDFUNC5.2.4码垛程序编写1、机器人程序框架搭建以二层的码垛为例,示例程序说明码垛的过程,框架如图5-36所示。在执行初始化程序后,检测工件和托盘是否到位以及托盘是否放满,如果不满就继续抓取工件,根据码垛要求放置的位置进行放置工件,码垛计数不满的继续延时循环运行,计数满后就程序结束。图5-36码垛程序框架5.2.4码垛程序编写2、机器人程序设计(2)主程序设计
PROCMain()rInitAll;WHILETRUEDOIFdiBoxInPos1=1ANDdiPalletInPos1=1ANDbPalletFull1=FALSETHENpPickH1:=Offs(pPick1,0,0,400);pPlaceH1:=Offs(rPosition11(nCount1),0,0,400);IFpPickH1.trans.z<=pPlaceH1.trans.zTHENpPickH1.trans.z:=pPlaceH1.trans.z;ELSEpPlaceH1.trans.z:=pPickH1.trans.z;ENDIFrPick1;rPlace1;ENDIFWaitTime0.1;ENDWHILEENDPROC5.2.4码垛程序编写3、初始化子程序设计首先复位吸盘信号,读取机器人当前位置,并回到初始位置等待,同时复位托盘和码垛计数。PROCrInitAll()ResetdoGrip;pActualPos:=CRobT(\tool:=tGrip);pActualPos.trans.z:=pHome.trans.z;MoveLpActualPos,MinSpeed,fine,tGrip\WObj:=wobj0;MoveJpHome,MidSpeed,fine,tGrip\WObj:=wobj0;bPalletFull1:=FALSE;nCount1:=1;ENDPROC5.2.4码垛程序编写4、抓取子程序设计在传送带工件坐标系中建立抓取子程序rpick1,子程序功能为机器人手爪移动至抓取点上方400mm处,等待工件到位,然后移动至抓取点,打开真空,移动至抓取点,抓取工件加载载荷数据,再移动至抓取点上方400mm处。PROCrPick1()MoveJpPickH1,MaxSpeed,z50,tGrip\WObj:=wobj0;MoveLpPick1,MinSpeed,fine,tGrip\WObj:=wobj0;SetdoGrip;WaitTime0.3;GripLoadLoadFull;MoveLpPickH1,MinSpeed,z50,tGrip\WObj:=wobj0;ENDPROC5.2.4码垛程序编写5、放置子程序利用功能程序程序rPosition11计算放置位置点,移动至放置位置点上方400mm后低速移动至放置位置点,关闭真空,清空载荷,放置工件后延时0.3秒后回到位置点上方400mm处。PROCrPlace1()MoveJpPlaceH1,MidSpeed,z50,tGrip\WObj:=wobj0;MoveLrPosition11(nCount1),MinSpeed,fine,tGrip\WObj:=wobj0;ResetdoGrip;WaitTime0.3;GripLoadLoadEmpty;MoveLpPlaceH1,MidSpeed,z50,tGrip\WObj:=wobj0;MoveJpPickH1,MaxSpeed,z50,tGrip\WObj:=wobj0;nCount1:=nCount1+1;IFnCount1>10THENbPalletFull1:=TRUE;ENDIFENDPROC5.2.5码垛节拍优化技巧在码垛过程中,最为关注的是每一个运行周期节拍。在码垛程序中,通常可以再以下几个方面进行节拍的优化。1.在机器人运行轨迹过程中,经常会有一些中间过渡点,即在该位置机器人不会具体触发事件,例如拾取正上方位置点、放置正上方位置点、绕开障碍物而设置的一些位置点,在运动至这些位置点时应将转弯半径设置得相应大一些,这样可以减少机器人在转角时的速度衰减,同时也可使机器人运行轨迹更加圆滑。5.2.5码垛节拍优化技巧例如:在拾取放置动作过程中(图5-37),机器人在拾取和放置之前需要先移动至其正上方处,之后竖直上下对工件进行拾取放置动作。程序如下:MoveJpPrePick,vEmptyMax,z50,tGripper;MoveJpPick,vEmptyMin,fine,tGripper;SetdoGripper;……MoveJpPrePlace,vLoadMax,z50,tGripper;MoveJpPlace,vLoadMin,fine,tGripper;ReSetdoGripper;……图5-37节拍优化15.2.5码垛节拍优化技巧在机器人TCP运动至pPrePick和pPrePlace点位的运动指令中写入转弯半径z50,这样机器人可在此两点处以半径为50mm的轨迹圆滑过渡,速度衰减较小。在满足轨迹要求的前提下,转弯半径越大,运动轨迹越圆滑。但在pPick和pPlace点位处需要置位夹具动作,所以一般情况下使用fine,即完全到达该目标点处再置位夹具。2.善于运用Trigg触发指令,即要求机器人在准确的位置触发事件,例如真空夹具的提前开真空、释放真空,带钩爪夹具对应钩爪的控制均可采用触发指令,这样能够在保证机器人速度不衰减的情况下在准确的位置触发相应的事件。5.2.5码垛节拍优化技巧例如:在真空吸盘式夹具对产品进行拾取过程中,一般情况下,拾取前需要提前打开真空,这样可以减少拾取过程的时间,在此案例中,机器人需要在拾取位置前20mm处将真空完全打开,夹具动作延时时间0.1S,如图5-38所示。程序如下:VARtriggdataVacuumOpen;……MoveJpPrePick,vEmptyMax,z50,tGripper;TriggEquipVacuumOpen,20,0.1\DOp:=doVacuumOpen,1;TriggLpPick,vEmptyMin,VacuumOpen,fine,tGripper;……图5-38节拍优化25.2.5码垛节拍优化技巧3.程序中尽量少使用Waittime固定等待时间指令,可在夹具上面添设反馈信号,利用WaitDI指令,当等待到条件满足则立即执行。例如:在夹取产品时,一般预留夹具动作时间,设置等待时间过长则降低节拍,过短则可能夹具未运动到位。若用固定的等待时间Waittime,则不容易控制,也可能增加节拍。此时若利用WaitDI监控夹具到位反馈信号,则可便于对夹具动作的监控及控制。5.2.5码垛节拍优化技巧在有些码垛程序中:MoveJpPick,vEmptyMin,fine,tGripper;SetdoGripper;(Waittime0.3)WaitDIdiGripClose,1;……MoveJpPlace,vLoadMin,fine,tGripper;ReSetdoGripper;(Waittime0.3)WaitDIdiGripOpen,1;……5.2.5码垛节拍优化技巧在置位夹具动作时,若没有夹具动作到位信号diGripOpen和diGripClose,则需要强制预留夹具动作时间0.3S。这样既不容易对夹具进行控制,也容易浪费时间,所以建议在夹具端配置动作到位检测开关,之后利用WaitDI指令监控夹具动作到位信号。4.在某些运行轨迹中,机器人的运行速度设置过大则容易触发过载报警。在整体满足机器人载荷能力要求的前提下,此种情况多是由于未正确设置夹具重量和重心偏移,以及产品重量和重心偏移所致。此时需要重新设置该项数据,若夹具或产品形状复杂,可调用例行程序LoadIdentify,让机器人自动测算重量和重心偏移;同时也可利用AccSet指令来修改机器人的加速度,在易触发过载报警的轨迹之前利用此指令降低加速度,过后再将加速度加大。5.2.5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司前台转正工作总结(锦集9篇)
- 2025版高考物理二轮复习 第8讲 电场及带电粒子在电场中的运动
- 高一 部编版 语文 上册 第三单元《一语天然万古新-归园田居(其一)》课件
- 在2024年全省组织工作年度重点任务落实调研座谈会上的汇报发言
- 高一(上)统编版 历史 第五单元《第16课 两次鸦片战争》课件
- 《人体结构学教学》课件
- 2024年高一上学期期末数学考点《函数的基本性质》含答案解析
- 废旧金属预处置项目可行性研究报告写作模板-拿地备案
- 重点海域渔港视频监控工程项目可行性研究报告
- 《空气的组成》课件
- 有机化学官能团高效记忆(表格)
- KDONAr空气分离设备空分制氧培训教材
- 《冠心病的康复》课件
- 铁路客运服务英语车站篇(Project One-1)
- 六年级上册美术教案- 18纸柱造型 |苏少版
- 质量管理体系运行奖惩考核办法课案
- 送达地址确认书(样本)
- 压力管道焊接标准工艺规范规程
- 合规培训课件
- 五年级上册数学课件-7.1 用列举的策略解决问题丨苏教版 (共15张PPT)
- 2020锅炉年度自检报告
评论
0/150
提交评论