玻璃搬运工业机器人离线编程与虚拟仿真_第1页
玻璃搬运工业机器人离线编程与虚拟仿真_第2页
玻璃搬运工业机器人离线编程与虚拟仿真_第3页
玻璃搬运工业机器人离线编程与虚拟仿真_第4页
玻璃搬运工业机器人离线编程与虚拟仿真_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

玻璃搬运工业机器人离线编程与虚拟仿真大连民族大学机械专业综合课程设计说明书 玻璃搬运工业机器人离线编程与虚拟仿真 学院(系):机电信息工程学院 专 业:机械设计制造及其自动化 学生 姓名: 谢植愉 学 号: 2013022224 指导 老师: 冯长建 完成 日期: 2016年12月10日 2目录 第一章、搬运工作站任务描述和构成.1 第二章、轴配置监控指令 .5 第三章、运动触发指令.6 第四章、复杂程序数据赋值.7 第五章、转弯半径的选取.8 第六章、玻璃搬运任务实施.10 第七章、录制机器人作业虚拟仿真视频.250第1章 、搬运工作站任务描述和构成1、 搬运工作站任务描述 采用工业机器人进行玻璃搬运,能大大提高玻璃生产线的产能,定位精度,降低不良率和人工成本。 汽车玻璃搬运工作站布局如下图所示。系统利用IRBl41O机器人将汽车玻璃从 侧的工装支架I二搬运至另侧,本工作站中已经预设搬运动作效果,需要依次完成1/0配置、程序数据创建、目标点示教、程序编写及调试,最终完成整个汽车玻璃的搬运过程。 2、 搬运工作站的构成 搬运工作站由机器人、夹具、围栏、工作台、底座、控制器、玻璃组成。各部件如下图所示: (1)机器人 (2)夹具 (3)围栏 (4)工作台 (5)底座 (6)控制器 (7)玻璃第2章 、轴配置监控指令 轴配置监控指令指定机器人在线性运动及圆弧运动过程中是否严格遵循程序中已设定的轴配置参数。默认情况下轴配置监控是打开的,当关闭轴配置监控后,机器人在运动过程中采取最接近当前轴配置数据的配置到达指定目标点。 例如 目标点P10中, 数据【1,0,1,0】就是此目标点的轴配置数据。CONST robtarget P10=1,0, 1,0,9E9,9E9,9E9,9E9,9E9,9E9 ; PR()C rMove() ConfL Off; MoveL p10,v1000,fine,tool();ENDPR()C 机器人自动匹配一组最接近当前各关节轴姿态的轴配置数据移动至目标点P10, 到达该点时,轴配置数据不一定为程序中指定的1,0, 1,0. 在某些应用场合,如离线编程创建目标点或手动示教相邻两目标点间轴配置数据相差较大时,在机器人运动过程中容易出现报誓 “轴配置错误” 而造成停机,此种情况下,若对轴配置要求较高, 则 一 般通过添加中间过渡点,若对轴配置要求不高,则可通过指令 ConfL Off关闭轴监控,使机器人自动匹配可行的轴配置来到达指定目标点。第3章 、运动触发指令 在线性运动过程中,在指定位置准确地触发事件(如置位输出信号、 激活中断等)。可以定义多种类型的触发事件,如Triggl/()(触发信号)、TriggEquip(触发装置动作)、Trigglnt(触发中断)等。在准确的位置触发机器人夹具的动作, 通常采用此种类型的触发事件。 VAR Tiggdata GripOpen; !定义触发数据 GripOpen 定义触发事件GripOpen 在距离指定目标点前10mm处,并提前0.1S(用于抵消设备动作延迟时间)触发指定事件将数字输出信号doGrip()n置为1。 !执行指令 TriggL 例如,在控制吸盘夹具动作过程中,在吸取产品的需要提前打开真空,在放置产品时需要提前释放真空,为了能够准确地触发吸盘夹具的动作,通常采用TriggL指令来对其进行精准控制 。 第4章 、复杂程序数据赋值 多数类型的程序数据均是组合型数据, 即里面包含了多项数值或字符串。可以对其中的任何一项参数进行赋值。 常见的目标点数据如下所示 :PERSrobtarget pI 0 :=0,0,0,I,0,0,0,0,0,0,0,9E9,9E9,9E9,9E9,9E9,9E9;PERSrobtarget p20 =I00,0,0),0,0,I,OJ, 1,0,I,0,9E9,9E9,9E9,9E9,9E9,9E9),目标点数据里面包含了四组数据,依次为TCP位置数据trans: 0,0,0、TCP姿态数据rot: 1,0,0,1、轴自己置数据robconf: 1,0,1,0、 外部轴数据extax 9E9,9E9,9E9,9E9,9E9,9E9我们可以分别对该数据的各项数值或者数值组进行操作, 如p1O.trans.x:=p20.trans.x+50,p10.trans.y:=p20.trans.y-50,p1O.trans.z:=p20.trans.z+ I00,p1O.rot:=p20.rotpIO.robconf:=p20.robcon f,赋值后,则p1O为PERS robtarget p10=150,-50,100),0,0,1,0, 1,0, 1,0),9E9,9E9,9E9,9E9,9E9,9E9。 第5章 、转弯半径的选取 在机器人运行轨迹过程中 经常会有一些中间过渡点,例如拾取正上方位置点、放置正上方位置点,绕开障碍物而设置的一些位置点,机器人在该位置不会触发具体事件。在运动至这些位置点时,应将转弯半径设置得相应大一些, 这样可以减少机器人在转角时的速度衰减,可使机器人运行轨迹更加圆滑, 可有效提升机器人节拍。但是转弯半径不是越大越好,需要根据当前运动指令实际运行的距离来设置,设置的转弯半径数值不可大于运动指令运行的距离, 否则会出现 “转弯路径故障” 等警告。例如 在拾取放置动作过程中,机器人在拾取和放置之前需要先移动至其正上方处, 之后竖直上下对工件进行拾取放置动作。程序如下 :MoveJ pPrepick,vEmptyMax,z50,tGripper;MoveL pPick, vEmptyMin, fine,tGripper;Set doGripper .MoveJ pPreplace,vLoadMax,z50,tGripper;MoveL pPplace, vLoadMin, fine,tGripper;Set doGripper 在机器人TCP运动至pPrepick和pPrepplace点位的运动指令中写人转弯半径z50,这样机器人可在此两点处以半径为50mm的轨迹圆滑过渡, 速度衰减较小,但在pPick和pPlace点位处需要置位夹具动作, 所以一般情况下使用fine,即完全到达该目标点处再控制夹具动作。 在机器人运行轨迹过秤申, 经常会有一些中间过渡点, 例如拾取正上方位置点、 放置正上方位置点、 绕开障碍物而设置的一些位置点, 机器人在该位置不会触发具体事件。在运动至这些位置点时, 应将转弯半径设置得相应大一些, 这样可以减少机器人在转角时的速度衰减, 可使机器人运行轨迹更加圆滑, 可有效提升机器人节拍。 但是转弯半径不是越大越好, 需要根据当前运动指令实际运行的距离来设置, 设置的转弯半径数值不可大于运动指令运行的距离, 否则会出现 “转弯路径故障” 等警告。例如 在拾取放置动作过程中,机器人在拾取和放置之前需要先移动至其正上方处, 之后竖直上下对工件进行拾取放置动作。程序如下 :MoveJ pPrepick,vEmptyMax,z50,tGripper;MoveL pPick, vEmptyMin, fine,tGripper;Set doGripper .MoveJ pPreplace,vLoadMax,z50,tGripper;MoveL pPplace, vLoadMin, fine,tGripper;Set doGripper 在机器人TCP运动至pPrepick和pPrepplace点位的运动指令中写人转弯半径z50,这样机器人可在此两点处以半径为50mm的轨迹圆滑过渡, 速度衰减较小, 但在pPick和pPlace点位处需要置位夹具动作, 所以一般情况下使用fine, 即完全到达该目标点处再控制夹具动作。 8第6章 、玻璃搬运任务实施 双击附件“ST_GlassCarry”压缩包文件,如图所示: 根据解压向导的相关提示解压该工作站,解压完成之后可进行仿真运行,查看该机器人工作站的运行情况,如图所示: 继续点击下一个 :9点击下一个:10点击完成:点击仿真:点击播放: 播放完成: 仿真过程中, 机器人控制吸盘夹具动作进行拾取放置, 将汽车玻璃从右侧支架搬运至左侧, 完成之后, 可重置该工作站, 机器人及玻璃全部复位。 复位 只可复位至上次开始前的状态。 恢复己保存状态可复位至之前已保存的状态。 点击“显示例行程序:即可显示对应程序,注解如下:MODULE MainMoudle PERS tooldata tGripper:=TRUE,0,0,208,0.707107,0,0,0.707107,1,0,0,120,1,0,0,0,0,0,0;!定义工具数据tGripper PERS loaddata LoadEmpty:=0.001,0,0,0.001,1,0,0,0,0,0,0;!定义空载时的有效载荷数据, 得序白也可直接使用系统默认空载数据 load() PERS loaddata LoadFull:=0.1,0,0,5,1,0,0,0,0,0,0;!定义有效载荷数据 PERS robtarget pHome:=870,0,987,1.57E-07,0,1,0,0,0,0,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;!定义机器人工作原理pHome PERS robtarget pPickBase:=985.653,210.818,637.932,-2.94E-07,-0.704489,0.709714,1.89E-07,0,0,2,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;!定义拾取玻璃基准位置, 价于右侧支架最上层玻璃仿置处 PERS robtarget pPlaceBase:=910,-215.541,460,5.64E-07,0.709707,0.704497,3.5E-07,-1,-1,-1,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;!定义拾取玻璃基准位置, 价于右侧支架最下层玻璃仿置处 PERS robtarget pPick:=985.653,210.818,457.932,-2.94E-07,-0.704489,0.709714,1.89E-07,0,0,2,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;!走义拾取玻璃仿置, 在秤序运行中会以pPickBase为基准赋予不同的位置数据 PERS robtarget pPlace:=910,-215.541,640,5.64E-07,0.709707,0.704497,3.5E-07,-1,-1,-1,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;!定义放置玻璃位筐, 在程序运行中会以pPlaceBase为基准赋予不同的位置数据 PERS robtarget pSafe:=985,210,750,1.69E-07,4.99E-07,1,2.9E-08,0,0,2,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;!定义玻璃旋转时的安全位置, 左侧拾取玻璃后提升到一定的安全高度进行旋转并运行到放置前的高度, 此处定义该位置数据的目的是在程序运行过程申定义一个玻璃旋转的安全高度, 用以保证玻璃旋转过程中不会与左右两侧支架发生碰撞 PERS robtarget pPickSafe:=935.653,110.818,750,-2.94E-07,-0.704489,0.709714,1.89E-07,0,0,2,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;!定义拾取玻璃之前以及之后的安全位置, 两者使用同 个安全位置 PERS robtarget pPlaceSafe:=960,-115.541,750,5.64E-07,0.709707,0.704497,3.5E-07,-1,-1,-1,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;!定义放雪玻璃之前以及之后的安全位置, 两者使用同 个安全位置 PERS num nOffsX:=50;!定义X方向偏移值, 之前所描述的两个安全位置数据其实是以基准点偏移计算得出的, 无需单独示教, 此数值即为偏移计算时所使用的, 在后续的程序中有详细的介绍 PERS num nOffsY:=100;!定义Y方向的偏移值, 用法同上 PERS num nOffsZ:=15;!定义Z方向的偏移值, 用法同上 PERS num nInterval:=60;!定义玻璃间隔数值, 同一支架上的玻璃只是存坚直方向上依次可隅60mm摆放 PERS num nCount:=1;!定义搬运计数器, 运行过程中根据此数值的变化从而赋值不同的位置数据 VAR triggdata VacuumOn;!定义触发数据,用于提前开启真空,这样有利于减少拾取过得所需 时间 VAR triggdata VacuumOff;!定义触发数据,用于提前关闭真空,这样有利于咸少放置过程所需时间 PERS speeddata vMinSpeed:=150,100,1000,5000; PERS speeddata vMidSpeed:=250,200,1000,5000; PERS speeddata vMaxSpeed:=500,300,1000,5000;!定义不同的速度数据, 便于在程序中针对不同的动作过将采用合适的速度数据 ONSTrobtargetpSafe10:=870.00,-0.00,987.00,2.01662E-07,5.96244E-09,1,1.13832E-15,0,0,3,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09; PROC MAIN()!主程序 rInitAll;!程序起始位置调用初始化程序,用于复位机器人位置、 信号、 数据等 WHILE TRUE DO!采用WHILE TRUE DO死循环结构, 将机器人需要重复运行的动作与初始化程序隔离开 rPick;!调用拾取玻璃程序 rPlace;!调用放置玻璃程序 ENDWHILE ENDPROC PROC rInitAll()!初始化程序 ConfLOff; ConfJOff;!关闭MoveL MoveJ运动过程中的轴配置监控,目的是使机器人在MoveL, MoveJ运动过得中能够自动选取合适的轴配置数据进行运动, 在搬运码垛应用中可有放避免轴配置报警等问题 AccSet 80,80;!设置机器人运行加速度,第个值为最大加速度百分比,第二个值为坡度百分比 VelSet 80,1000;!设置机器人运行速度,第个值为速度百分比,第二个值为最大速度限制 Reset doVacuum;!复位真空信号 nCount:=1;!计数复位,从第一个物料开始重新处理 TriggEquip VacuumOn,0,0.2DOp:=doVacuum,1;!定义真空打开触发事件,在本案例中假设当前使用的真空系统其置位真空信号后需要0.2s方可达到建主真空的条件,及真空打开延迟o.2s.此处采用触发数据进行补偿,以便减少真空建立所需时间 TriggEquip VacuumOff,0,0.2DOp:=doVacuum,0;!定义真空关闭触发事件,本案例中假设当前使用的真空系统其复位真空信号后需要0.2s方可达完全释放真空, 及真空关闭延迟0.2s. 此处采用触发数据进行补偿,以便减少真空释放所需时间 pPickSafe:=Offs(pPickBase,-nOffsX,-nOffsY,0); pPickSafe.trans.z:=pSafe.trans.z;!计算放置前后的安全位置 pPlaceSaf e:=Offs(pPlaceBase,nOffsX,nOffsY,0); pPlaceSafe.trans.z:=pSafe.trans.z;!计算放置前后的安全 MoveJ pHome,vMinSpeed,fine,tGripperWObj:=wobj0;!机器人位置复位,移动至工作原位pHome ENDPROC PROC rPick()!拾取程序 rCalPos;!调用位置计算程序,计算出当前机器人的拾取、放置等各目标位置 MoveJ pPickSafe,vMaxSpeed,z20,tGripperWObj:=wobj0;!利用MoveJ快速移动至放置安全高度位 MoveLOffs(pPick,-nOffsX,-nOffsY,nOffsZ),vMidSpeed,z10,tGripperWObj:=wobj0;!利用MoveL运动至拾取前位置 MoveLOffs(pPick,0,0,nOffsZ),vMinSpeed,z5,tGripperWObj:=wobj0;!利用MoveL运动至拾取位置正上方 TriggLpPick,vMinSpeed,VacuumOn,fine,tGripperWObj:=wobj0;!利用TriggL运动至放置位置,并且在到达位置之前0.2s提前置为真空打开信号 WaitTime 0.2;!等待定的时间,用以保证完全吸附 GripLoad LoadFull;!拾取完成后加载有效载荷数据 MoveLOffs(pPick,0,0,nOffsZ),vMinSpeed,z5,tGripperWObj:=wobj0;!利用MoveL运动至拾取正上方 MoveLOffs(pPick,-nOffsX,-nOffsY,nOffsZ),vMidSpeed,z10,tGripperWObj:=wobj0;!利用MoveL横移至拾取后位置 MoveL pPickSafe,vMaxSpeed,z20,tGripperWObj:=wobj0;!利用MoveL运动至拾取安全高度处 ENDPROC PROC rPlace()!放置程序 MoveJ pPlaceSafe,vMaxSpeed,z20,tGripperWObj:=wobj0;!利用MoveJ快速移动至放置安全高度处 MoveLOffs(pPlace,nOffsX,nOffsY,nOffsZ),vMidSpeed,z10,tGripperWObj:=wobj0;MoveLOffs(pPlace,0,0,nOffsZ),vMinSpeed,z5,tGripperWObj:=wobj0;!利用MoveL运动至放置前位置处 TriggLpPlace,vMinSpeed,VacuumOff,fine,tGripperWObj:=wobj0;!利用TriggL运动至放置位置,并且在到达放置位置之前0.2s提前关闭真空,复位真空信号 WaitTime 0.2;!等待一定时间,用以保证完全释放 GripLoad LoadEmpty;!释放玻璃后,加载空载数据 MoveLOffs(pPlace,0,0,nOffsZ),vMinSpeed,z5,tGripperWObj:=wobj0;!利用MoveL运动至放置正上方 MoveLOffs(pPlace,nOffsX,nOffsY,nOffsZ),vMidSpeed,z10,tGripperWObj:=wobj0;!利用MoveL运动至放置后位置 MoveL pPlaceSafe,vMaxSpeed,z20,tGripperWObj:=wobj0;!利用MoveL运动至放置安全高度位置 rPlaceRD;!调用计数程序,计数累计加l并检查是否已全部完成 ENDPROC PROC rPlaceRD()!计数程序 nCount:=nCount+1;!计数累计加l IF nCount4 THEN!当前仔务只是搬运4块玻璃, 此处检测是否已全部完成 TPErase; TPWrite Pick&Place done,the robot will stop!;!若己全部完成,则写屏显示当前任务已完成 nCount:=1;!将计数器复位 Reset doVacuum;!复位真空信号 MoveJpHome,vMinSpeed,fine,tGripperWObj:=wobj0;!复位机器人位置, 移动至工作原位pHome Stop;!停止程序,等待下一次启动 ENDIF ENDPROC PROC rCalPos()!位置计算程序 TEST nCount!判断计数器的值,从而为拾取、放贵点、赋予不同的位置数据 CASE 1: pPick:=Offs(pPickBase,0,0,0);

温馨提示

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

评论

0/150

提交评论