课程设计说明书_第1页
课程设计说明书_第2页
课程设计说明书_第3页
课程设计说明书_第4页
课程设计说明书_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、目录1 绪论11.1 设计背景11.2 工业2 Robotstudio人发展现状1人22.1人的选用22.2 IRB 120人的载荷43 程序数据创建与 I/O 信号配置43.1 工具数据创建43.2 工件坐标数据创建54人的程序74.1 程序的编写与注解74.2 程序修改125 示教目标点与. 125.1 三个目标点的示教125.2. 15人6 Robotstudio 共享打包与解包156.1 工作站共享功能156.2 工作站打包161 绪论1.1 设计背景科技的进步与革新推动着生产力的不断发展,促使生产关系产生。自工业以来, 人力劳动已经逐渐被机械所取代,而这种为人类创造出巨大的,极大地推

2、动了人类的进步。如今,机电体化、机械智能化等技术应运而生。工业人的出现是人类在利用机械进行生产史上的一个里程碑。在发达,工业人的自动化生产线成套设备己成为现代加工制造业的主流。汽车行业、电子电器行业、工程机械等以极快的速度大量使用工业人。多功能人实训台,包括 ABBIRB120 型人,三菱 FX3U-48MR 型 PLC,模式选择控制面板模块,送料模块,模拟压铸模块,输送带模块,物料检测模块,搬运、码垛模块和几何轨迹模块等。现代计算机软硬件技术、计算机图形技术高速发展,以及数字技术的广泛应用,为工业人离线编程技术的实际应用提供了有利条件。同时,现产的高效率、柔性化需求也促使了工业人离线编程软件

3、的产生。人离线编,是利用计算机图形学技术,建立起人及其工作环境的模型,利用人语言及相关算法,通过对图形的和操作在离线的情况下进行轨迹。离线编程技术具有传统的示教技术无法比拟的优势,比如:可减等。少停机时间、可提前验证作业程序,进行复杂的轨迹1.2 工业人发展现状工业甚至人的出现将人类从繁重、 单一的劳动中出来, 它还能够从事一些不适合人类人类能力的劳动, 如在强辐射、强污染的环境业。 工业人技术已经广泛地进入人们的生产和生活领域。工业人的大量使用必然生产力和科学技术的发展。工业理论及人工智能等多学科的最新研究人技术集成了机械工程、电子技术、计算机技术、自动成果,代表了机电的最高成就,是当代科学

4、技术发展中最活跃的领域之一。人自 20世纪 60 年代初问世以来,已取得了实质性的进步和成果。在机械制造领域,工业人在经历了从诞生、成长、成熟期后,己成为不可缺少的自动化装备,目前世界上约有近百万向工业机器人正在各种生产现场工作。在非制造领域,上至太空舱、宇宙飞船、月球探险,下至极限环境作业、医疗手术、日常生活服务,人技术的应用己拓展到什会发展的诸多领域。随着工业人技术的不断成熟和创新应用的不断发展,工业人在很大程度上正推动着整个的进步,促进着人类生活的生产和生活中不可缺少的一门。人技术作为科学技术发展的前沿学科,已成为未来技术可。可以预见,我们已经进入一个崭新的人技术。2 Robotstud

5、io人2.1人的选用根据要设计的程序,选用 IRB 120 工业人,IRB 120 是 ABB 新型第四代人的最新成员,也是迄今为止 ABB 制造的最小人。IRB 120 具有敏捷、紧凑、轻量的特点,精度与路径精度俱优,是物料搬运与装配应用的理想选择。它的特点是:(1)紧凑轻量,作为 ABB 目前最小的人,IRB 120 在紧凑空间内凝聚了 ABB系列的全部功能与技术。其重量减至仅 25kg,结构设计紧凑,几乎可安装在任何地方,比如工作站内部,机械设备上方,或生产线上其他人的近旁。(2)IRB 120 广泛适用于电子、食品饮料、机械、太阳能、制药、医疗、研究等领域,进一步增强了 ABB 新型第

6、四代人的实力。采用白色涂层的洁净室 ISO5 级机型适用于高标准洁净生产环境,开辟了全新应用领域。这款 6 轴人最高荷重 3kg(手腕(五轴)垂直向下时为 4kg),工作范围达 580mm,能通过柔性(非刚性)自动化解决方案执行一系列作业。IRB 120 是实现高成本效益生产的完美之选,在有限的生产空间其优势尤为明显。(3)IRB 120 仅重 25kg,出色的便携性与集,使其成为同类;空线与用中的佼佼者。该人的安装角度不受任何限制。机身表面光洁,便于户信号线缆从底脚至手腕全部嵌入机身内部,易于人集成。(4)除水平工作范围达 580mm以外,IRB 120 还具有一流的工作行程,底座下方拾取距

7、离为 112mm。IRB 120 采用对称结构,第 2 轴无外凸,回转半径极小,可靠近其他设备安装,纤细的手腕进一步增强了手臂的可达性。(5)IRB 120 配备轻型铝合金马达,结构轻巧、功率强劲,可实现人高运行,在任何应器高度浓缩了 IRC5用中都能确保优异的精准度与敏捷性。(6)ABB 新推出的这款紧凑型的顶尖功能,将以往大型设备“专享”的精度与运动引入了更广阔的应用空间。除节省空间器还通过设置单相电源输入、外置式信号接头(全部信号)及内置式可扩展 16之外,新型路 I/O 系统,简化了调试步骤。离线编程软件 RobotStudio 可用于生产工作站模拟,为人设定最佳位置;还可执行离线编程

8、,避免发生代价高昂的生产中断或延误。(7)紧凑化、轻量化的 IRB120人与 IRC5 紧凑型器这两种新的完美结合,显著缩小了占地面积,最适合空间紧张的应用场合,如下图 2-1。图 2-1IRB120人2.2 IRB 120人的载荷如图 2-2 所示为 IRB 120 的载荷关系图。 其中,Z 为安装工具的重心沿 Z 轴到第六轴法兰盘中心的距离,L 为安装工具的重心到 Z 轴的距离。为保证机械臂在带载后仍可以保证运动的稳定性和准确性, 随着载荷的增大,要求载荷心必须更接近第六轴法兰盘的中心。 此外,IRB 120 载荷的最大限定为 3kg。图 2-2人载荷关系3 程序数据创建与 I/O 信号配

9、置3.1 工具数据创建在虚拟示教器中,根据以下参数设定工具数据 tGripper,示例如下表 3.1 所示参数名称参数数值robhold tframe.trans.x tframe.trans.x tframe.trans.x tload.mass tload.cog.x tload.cog.ytload.cog.zTRUE 00115100100表 3.1工具数据 tGripper 参数图 3-1 工具数据 tGripper 示意图3.2 工件坐标数据创建在本工作站中,坐标系均采用用户三点法创建。在虚拟示教器中,根据下面图 3-2 和 3-3 所示位置设定工件坐标图 3-2 WobjCNV图

10、 3-3WobjBuffer4人的程序4.1 程序的编写与注解以下是实现人逻辑和动作的RAPID程序:数据定义:MODULE MainMoudle CONST robtarget pPick:=394.997607159,132.703199388,12.734872184,0.005862588,-0.00300065,0.999966662,0.004827206,0,0,0,0,9E9,9E9,9E9,9E9,9E9,9E9;CONSTrobtargetpHome:=-548.424175962,-238.61219249,801.420966892,-0.000000012,-0.70

11、7106781,0.70710678 1,-0.000000012,0,0,0,0,9E9,9E9,9E9,9E9,9E9,9E9;CONSTrobtargetpPlaceBase:=100.088594059,77.835146221,158.046135973,0.00000004,-0.000623424,0.999999 806,-0.000000001,-1,0,-1,0,9E9,9E9,9E9,9E9,9E9,9E9;!需要示教的目标点数据,抓取点pPick,HOME点pHome、放置基准点pPlaceBasePERSrobtargetpPlace;!放置目标点,类型为PERS,在

12、被赋予不同的数值,用以实现多点位放置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;!速度数据,根据实际需求定义

13、多种速度数据,以便于PERS num nCount:=1;人各动作的速度!数字型变量nCount,此数据用于太阳能薄板计数,根据此数据的数值赋予放置目标点pPlace不同的位置数据,以实现多点位放置PERS num nXoffset:=145; PERS num nYoffset:=148;!数字型变量,用做放置位置偏移数值,即太阳能薄板摆放位置之间在X、Y方向的单个间隔距离VAR bool bPickOK:=False;!量,当拾取动作完成后将其置为 True,放置完成后将其置为 False,以作逻辑之用TASK PERS tooldata tGripper:=TRUE,0,0,115,1,

14、0,0,0,1,0,0,100,0,1,0,0,0,0,0;!定义工具坐标系数据 tGripperTASKPERSwobjdataWobjBuffer:=FALSE,TRUE,"",-350.365,-355.079,418.761,0.707547,0,0,0.706666,0,0,0,1,0,0,0;!定义暂存盒工件坐标系WobjBuffer TASKPERSwobjdataWobjCNV:=FALSE,TRUE,"",-726.207,-645.04,600.015,0.709205,-0.0075588,0.000732113,0.704 961

15、,0,0,0,1,0,0,0;!定义输送带工件坐标系WobjCNVTASK PERS loaddata LoadFull:=0.5,0,0,3,1,0,0,0,0,0,0;!定义有效载荷数据 LoadFull主程序运行程序PROC Main() rInitialize;!调用初始化程序WHILE TRUE DO!利用WHILE循环将初始化程序隔开rPickPanel;!调用拾取程序rPlaceInBuffer;!调用放置程序Waittime 0.3;!循环等待时间,防止不满足ENDWHILEENDPROC人动作情况下程序扫描过快,造成CPU过负荷PROC rInitialize()!初始化程序

16、rCheckHomePos;!人位置初始化,调用检测是否在Home位置点程序,检测当前人位置是否在HOME点,若在HOME点的话则继续执行之后的初始化相关指令;若不在HOME点,则先返回至HOME点nCount:=1;!计数初始化,将用于太阳能薄板的计数数值设置为1,即从放置的第一个位置开始摆放reset do32_VacuumOpen;!信号初始化,复位真空信号,关闭真空bPickOK:=False;!量初始化,将拾取量置为FalseENDPROCPROC rPickPanel()!拾取太阳能薄板程序IF bPickOK=False THEN!当拾取量bPickOK为False时,则执行IF

17、条件下的拾取动作指令,否则执行ELSE中出错处理的指令,因 为当人去拾取太阳能薄板时,需保证其真空夹具上面没有太阳能薄板MoveJ offs(pPick,0,0,100),vEmptyMax,z20,tGripperWObj:=WobjCNV;!利用MoveJ指令移至拾取位置pPick点正上方Z轴正方向100mm处WaitDI di01_PanelInPickPos,1;!等待到位信号di01_PanelInPickPos变为1,即太阳能薄板已到位MoveL pPick,vEmptyMin,fine,tGripperWObj:=WobjCNV;!到位后,利用MoveL移至拾取位置pPick点S

18、et do32_VacuumOpen;!将真空信号置为1,真空吸盘产生真空,将太阳能薄板拾起WaitDI di02_VacuumOK,1; !等待真空反馈信号为1,即真空夹具产生的真空度达到需求后为已将0.3完全拾起。若真空夹具上面没有真空反馈信号,则可以使用固定等待时间,如WaittimebPickOK:=TRUE; !真空建立后,将拾取的量置为TRUE,表示人夹具上面已拾取一个,以便在放置夹具的当前状态GripLoad LoadFull; !加载载荷数据LoadFullMoveL offs(pPick,0,0,100),vLoadMin,z10,tGripperWObj:=WobjCNV;

19、 !利用MoveL移至拾取位置pPick点正上方100mm处ELSE TPERASE;TPWRITE "Cycle Restart Error"TPWRITE "Cycle can't start with SolarPanel on Gripper" TPWRITE "Please check the Gripper and then press the start button"stop; !如果在拾取开始之前拾取量已经为TRUE,则表示夹具上面已有,此种情况下人不能再去拾取另一个。此时通过写屏指令描述当前错误状态,并提示

20、操作员检查当前夹具状态,排除错误状态后 再开始下一个循环。同时利用Stop指令,停止程序运行ENDIFENDPROCPROC rPlaceInBuffer()!放置程序IF bPickOK=TRUE THENrCalculatePos; !调用计算放置位置程序。此放置点pPlace赋予不同的放置会通过当前计数nCount的值,从而对MoveJ offs(pPlace,0,0,100),vLoadMax,z50,tGripperWObj:=WobjBuffer; !利用MoveJ移至放置位置pPlace点正上方100mm处MoveL offs(pPlace,0,0,0),vLoadMin,fin

21、e,tGripperWObj:=WobjBuffer; !利用MoveL移至放置位置pPlace处Reset do32_VacuumOpen; !复位真空信号,WaitTime 0.3; !等待0.3s,以防止刚放置的真空夹具关闭真空,将被剩余的真空带起放下WaitDI di02_VacuumOK,0;GripLoad load0; !加载载荷数据load0bPickOK:=FALSE; !此时真空夹具已将量置为FALSE,以便在下一放下,需要将拾取夹具的当前状态个循环的拾取MoveL offs(pPlace,0,0,100),vEmptyMin,z10,tGripperWObj:=WobjB

22、uffer; !利用MoveL移至放置位pPlace点正上方100mm处nCount:=nCount+1; !计数nCount加1,通过累积nCount的数值,在计算放置位置的程序rCalculatePos中赋予放置点pPlace不同的位置数据IF nCount>4 THEN !计数nCount是否大于4,此处演示的状况是放置4个,即表示已满载,需要更换暂存盒以及其他的 复位操作,如计数nCount、满载信号等nCount:=1; !计数复位,将nCount赋值为1MoveJ pHome,v100,fine,tGripper; !动作,例如若是多工位放置,那么ENDIF ENDPROC人

23、移至Home点,此处可根据实际情况来设置人的人可继续 去其他的放置工位进行的放置任务PROC rCalculatePos()!计算位置子程序,检测当前计数nCount的数值,以pPlaceBase为基准点,利用Offs指令在坐标系WobjBuffer中沿着X、Y、Z方向偏移相应的数值TEST nCount CASE 1:pPlace:=offs(pPlaceBase,0,0,0);!若nCount为1,pPlaceBase点就是第一个放置位置,所以X、Y、Z偏移值均为0,也可以直接写成:pPlace:=pPlaceBase;CASE 2:pPlace:=offs(pPlaceBase,nXof

24、fset,0,0);!若nCount为2,位置2相对于放置基准点pPlaceBase点在X正方向偏移了一个CASE 3:pPlace:=offs(pPlaceBase,0,nYoffset,0);!若nCount为3,位置3相对于放置基准点pPlaceBase点在Y正方向偏移了一个间隔间隔CASE 4:pPlace:=offs(pPlaceBase,nXoffset,nXoffset,0);!若nCount为4,位置4相对于放置基准点pPlaceBase点在X、Y正偏移了一个间隔DEFAULT:TPERASE;TPWRITE "The CountNumber is error,ple

25、ase check it!" STOP;!若nCount数值不为Case中所列的数值,则视为计数出错,写屏提示错误信息,并利用Stop指令停止程序循环ENDTEST ENDPROCPROC rCheckHomePos() !检测是否在Home点程序VAR robtarget pActualPos; !定义目标点数据IF NOT CurrentPos(pHome,tGripper) THEN!调用功能程序pActualpos:=CRobT(Tool:=tGripperWObj:=wobj0);!利用CrobT功能赋值给目标点数据pActualpos.trans.z:=pHome.tra

26、ns.z;!赋值MoveL pActualpos,v100,z10,tGripper;!移动赋值点MoveL pHome,v100,fine,tGripper; !移至pHome点ENDIF ENDPROC人目标位置并FUNC bool CurrentPos(robtarget ComparePos,INOUT tooldata TCP) !检测目标点功能程序VAR num Counter:=0;!定义数据VAR robtarget ActualPos;!定义数据!Abstract : Function to compare current ROBOT position with THE gi

27、ven positionActualPos:=CRobT(Tool:=tGripperWObj:=wobj0); !利用CRobT功能当前人目标位置并赋值给ActualPosIF ActualPos.trans.x>ComparePos.trans.x-25 AND ActualPos.trans.x<ComparePos.trans.x+25 Counter:=Counter+1;IF ActualPos.trans.y>ComparePos.trans.y-25 AND ActualPos.trans.y<ComparePos.trans.y+25 Counter:

28、=Counter+1;IF ActualPos.trans.z>ComparePos.trans.z-25 AND ActualPos.trans.z<ComparePos.trans.z+25 Counter:=Counter+1;IF ActualPos.rot.q1>ComparePos.rot.q1-0.1 AND ActualPos.rot.q1<ComparePos.rot.q1+0.1 Counter:=Counter+1;IF ActualPos.rot.q2>ComparePos.rot.q2-0.1 AND ActualPos.rot.q2&l

29、t;ComparePos.rot.q2+0.1 Counter:=Counter+1;IF ActualPos.rot.q3>ComparePos.rot.q3-0.1 AND ActualPos.rot.q3<ComparePos.rot.q3+0.1 Counter:=Counter+1;IF ActualPos.rot.q4>ComparePos.rot.q4-0.1 AND ActualPos.rot.q4<ComparePos.rot.q4+0.1 Counter:=Counter+1;!将当前 人所在目标位置数据与给定目标点位置数据进行比较,共七项数值,分别是坐标纸以及工具姿态数据里面的偏差值,每项比较结果成立,则计数counter加1,七项全部满足的话, 则数值为7RETURN Counter=7;!返回式结果,若counter为7,则返回TRUEENDFUNCPROC rMoveAbsj()MoveAbsJ jposHomeNoEOffs, v100, fine, tGripperWObj:=wobj0;关节轴零位位置ENDPROC!利用MoveAbsj移至人各PROC rModPos()!示教目标点程序MoveL pPick,v

温馨提示

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

评论

0/150

提交评论