老师指导说明书_第1页
老师指导说明书_第2页
老师指导说明书_第3页
老师指导说明书_第4页
老师指导说明书_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、搬运工业人离线编程与虚拟目录第一章、搬运工作站任务描述和.1第二章、轴配置指令5第三章、运动触发指令6第四章、复杂程序数据赋值7第五章、转弯半径的选取8第六章、搬运任务实施10第七章、录制人作业虚拟.250搬运工业人离线编程与虚拟第一章、搬运工作站任务描述和1、搬运工作站任务描述采用工业人进行搬运,能大大提高生产线的产能,精度,降低不良率和人工成本。 汽车搬运工作站布局如下图所示。系统利用IRBl41O人将汽车从 侧的工装支架 I 二搬运至另侧,本工作站中已经预设搬运动作效果,需要依次完成 1/0 配置、程序数据创建、目标点示序编写及调试,最终完成整个汽车的搬运过程。2、搬运工作站的搬运工作站

2、由人、夹具、围栏、工作台、底座、各部件如下图所示:器、组成。0搬运工业人离线编程与虚拟(1)人(2)夹具(3)围栏1搬运工业人离线编程与虚拟(4)工作台(5)底座2搬运工业人离线编程与虚拟(6)器(7)3搬运工业人离线编程与虚拟第二章、轴配置指令轴配置指令指定人性运动及圆弧运动过程中是否严格遵循已设定的轴配置参数。默认情况下轴配置是打开的,当关闭轴配置后,人在运动过程中采取最接近当前轴配置数据的配置到达指定目标点。 例如 目标点 P10 中, 数据【1,0,1,0】就是此目标点的轴配置数据。CONST robtarget P10=1,0, 1,0,9E9,9E9,9E9,9E9,9E9,9E9

3、 ;PR()CrMove() ConfL Off;MoveL p10,v1000,fine,tool();ENDPR()C人自动匹配一组最接近当前各关节轴姿态的轴配置数据移动至目标点P10, 到达该点时,轴配置数据不一定为指定的1,0, 1,0.在某些应用场合,如离线编程创建目标点或手动示教相邻两目标点间轴配置数据相差较大时,在人运动过程中容易出现报誓 “轴配置错误” 而造成停机,此种情况下,若对轴配置要求较高, 则 一 般通过添加中间过渡点,若对轴配置要求不高,则可通过指令轴配置来到达指定目标点。ConfL Off 关闭轴,使人自动匹配可行的4搬运工业人离线编程与虚拟第三章、运动触发指令性运

4、动过程中,在指置准确地触发(如置位输出信号、 激活中断等)。可以定义多种类型的触发,如 Triggl/()(触发信号)、TriggEquip(触发装置动作)、Trigglnt(触发中断)等。在准确的位置触发人夹具的动作, 通常采用此种类型的触发VAR Tiggdata GripOpen;!定义触发数据 GripOpen。定义触发GripOpen 在距离指定目标点前 10mm 处,并提前 0.1S(用于抵消设备动作延迟时间)触发指定!执行指令 TriggL将数字输出信号 doGrip()n 置为 1。例如,在吸盘夹具动作过程中,在吸取的需要提前打开真空,在放置时需要提前真空,为了能够准确地触发吸

5、盘夹具的动作,通常采用TriggL 指令来对其进行精准。5搬运工业人离线编程与虚拟第四章、复杂程序数据赋值多数类型的程序数据均是组合型数据, 即里面包含了多项数值或字符串。可以对其中的任何一项参数进行赋值。常见的目标点数据如下所示 :PERSrobtargetpI 0 :=0,0,0,I,0,0,0,0,0,0,0,9E9,9E9,9E9,9E9,9E9,9E9;PERSrobtargetp20 ·=I00,0,0),0,0,I,OJ, 1,0,I,0,9E9,9E9,9E9,9E9,9E9,9E9),目标点数据里面包含了四组数据,依次为 TCP 位置数据 trans: 0,0,0、

6、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 为PERSrobtargetp10=150,-50,100),0,0,1,0,1,0,1,0),9E9,9E

7、9,9E9,9E9,9E9,9E9。6搬运工业人离线编程与虚拟第五章、转弯半径的选取人运行轨迹过程中 经常会有一些中间过渡点,例如拾取正上方位置在点、放置正上方位置点,绕开物而设置的一些位置点,人在该位置触发具体。在运动至这些位置点时,转弯半径设置得相应大一些, 这样可以减少人在转角时的速度衰减,可使人运行轨迹更加圆滑, 可有效提升人节拍。但是转弯半径不是越大越好,需要根据当前运动指令实际运行的距离来设置,设置的转弯半径数值不可大于运动指令运行的距离, 否则会出现 “转弯路径故障” 等警告。例如 在拾取放置动作过程中,人在拾取和放置之前需要先移动至其正上方处, 之后竖直上下对工件进行拾取放置动

8、作。程序如下 :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 点位处

9、需要置位夹具动作,所以一般情况下使用 fine,即完全到达该目标点处再夹具动作。在人运行轨迹过秤申, 经常会有一些中间过渡点, 例如拾取正上方位置点、 放置正上方位置点、 绕开物而设置的一些位置点,人在该位置触发具体。在运动至这些位置点时,转弯半径设置得相应大一人运行轨迹更加圆滑,些,这样可以减少人在转角时的速度衰减,可使可有效提升人节拍。 但是转弯半径不是越大越好, 需要根据当前运动指令实际运行的距离来设置, 设置的转弯半径数值不可大于运动指令运行的距离,否则会出现 “转弯路径故障” 等警告。例如 在拾取放置动作过程中,人在拾取和放置之前需要先移动至其正上方处, 之后竖直上下对工件进行拾取放

10、置动作。程序如下 :MoveJ pPrepick,vEmptyMax,z50,tGripper;MoveL pPick, vEmptyMin, fine,tGripper;7搬运工业人离线编程与虚拟Set doGripper.MoveJ pPreplace,vLoadMax,z50,tGripper;MoveL pPplace, vLoadMin, fine,tGripper; Set doGripper在人 TCP 运动至 pPrepick 和 pPrepplace 点位的运动指令中写人转弯半径 z50,这样人可在此两点处以半径为 50mm 的轨迹圆滑过渡, 速度衰减较小, 但在 pPick

11、 和 pPlace 点位处需要置位夹具动作,所以一般情况下使用fine,即完全到达该目标点处再夹具动作。8搬运工业人离线编程与虚拟第六章、搬运任务实施双击附件“ST_GlassCarry”压缩包文件,:根据解压向导的相关提示解压该工作站,解压完成之后可进行运行,查看该人工作站的运行情况,:继续点击下一个 :9搬运工业人离线编程与虚拟点击下一个:10搬运工业人离线编程与虚拟点击完成:点击:11搬运工业人离线编程与虚拟点击:完成:过程中,人吸盘夹具动作进行拾取放置, 将汽车从右侧支架搬运至左侧, 完成之后, 可重置该工作站,人及全部复位。12搬运工业人离线编程与虚拟复位 只可复位至上次开始前的状态

12、。恢复己保存状态可复位至之前已保存的状态。点击“显示例行程序:即可显示对应程序,注解如下:MODULE MainMoudlePERS tooldatatGripper:=TRUE,0,0,208,0.707107,0,0,0.707107,1,0,0,120,1,0,0,0,0,0,0;!定义工具数据 tGripperPERS 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;

13、!定义有效载荷数据PERS robtargetpHome:=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;!定义人工作原理 pHomePERS robtargetpPickBase:=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;!定义拾取基准位置, 价于右侧支架最上层仿置处13搬运工业人离线编程与虚拟PERS robtargetpPlac

14、eBase:=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 robtargetpPick:=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

15、 robtargetpPlace:=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 robtargetpSafe:=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;!定义旋转时的安全位置, 左侧拾取后提升到一定的度进行旋转并运行到放置前的高

16、度, 此处定义该位置数据的目的是在程序运行过程申定义一个旋转的度, 用以保证旋转过程中与左右两侧支架发生碰撞14搬运工业人离线编程与虚拟PERS robtargetpPickSafe:=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 robtargetpPlaceSafe:=960,-115.541,750,5.64E-07,0.709707,0.704497,3.5E-0

17、7,-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;!定义间隔数值, 同一支架上的只是存坚直方向上依次可隅 60

18、mm 摆放PERS num nCount:=1;!定义搬运计数器, 运行过程中根据此数值的变化从而赋值不同的位置数据15搬运工业人离线编程与虚拟VAR triggdata VacuumOn;!定义触发数据,用于提前开启真空,这样有利于减少拾取过得所需时间VAR triggdata VacuumOff;!定义触发数据,用于提前关闭真空,这样有利于咸少放置过程所需时间PERS speeddata vMinSpeed:=150,100,1000,5000;PERS speeddata vMidSpeed:=250,200,1000,5000;PERS speeddata vMaxSpeed:=500

19、,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 死循环结构, 将人需要重复运行的动作与初始化程序开16搬运工业人离线编程与虚拟rPick

20、;!调用拾取程序rPlace;!调用放置程序ENDWHILEENDPROCPROC rInitAll()!初始化程序ConfLOff;ConfJOff;!关闭 MoveL MoveJ 运动过程中的轴配置,目的是使人在MoveL, MoveJ 运动过得中能够自动选取合适的轴配置数据进行运动,在搬运码垛应用中可有放避免轴配置等问题AccSet 80,80;!设置人运行度,第个值为最大度百分比,第二个值为坡度百分比VelSet 80,1000;!设置人运行速度,第个值为速度百分比,第二个值为最大速度限制Reset doVacuum;!复位真空信号nCount:=1;17搬运工业人离线编程与虚拟!计数

21、复位,从第一个物料开始重新处理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

22、,-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;!人位置复位,移动至工作原位 pHomeENDPROCPROC rPick()!拾取程序rCalPos;!调用位置计算程序,计算出当前人的拾取、放置等各目标位置18搬运工业人离线编程与虚拟Move

23、J 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;!利用 Tr

24、iggL 运动至放置位置,并且在到达位置之前 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,

25、tGripperWObj:=wobj0;!利用 MoveL 运动至拾取度处ENDPROC19搬运工业人离线编程与虚拟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 运动至放置前位置处

26、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,tGrip

27、perWObj:=wobj0;!利用 MoveL 运动至放置后位置MoveL pPlaceSafe,vMaxSpeed,z20,tGripperWObj:=wobj0;20搬运工业人离线编程与虚拟!利用 MoveL 运动至放置度位置rPlaceRD;!调用计数程序,计数累计加 l 并检查是否已全部完成ENDPROCPROC rPlaceRD()!计数程序nCount:=nCount+1;!计数累计加 lIF nCount>4 THEN!当前仔务只是搬运 4 块, 此处检测是否已全部完成TPErase;TPWrite "Pick&Place done,the robot will stop!"!若己全部完成,则写屏显示当前任务已完成nCount:=1;!将计数器复位Reset doVacuum;!复位真空信号MoveJpHome,vMinSpeed,fine,tGripperWObj:=wobj0;!复位人位置, 移动至工作原位pHomeStop;!停止程序,等待下一次启动ENDIF21搬运工业人离线编程与虚拟ENDPROCPROC rCalPos()!位置计算程序TEST nCount!计数器的值,从而为拾取、放贵点、赋予不同的位置数据CASE 1:pPick:=Offs(pPickBa

温馨提示

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

评论

0/150

提交评论