汽车座椅框架焊接机器人程序编制及路径规划

上传人:wan****21 文档编号:156588086 上传时间:2022-09-27 格式:DOC 页数:33 大小:1.55MB
返回 下载 相关 举报
汽车座椅框架焊接机器人程序编制及路径规划_第1页
第1页 / 共33页
汽车座椅框架焊接机器人程序编制及路径规划_第2页
第2页 / 共33页
汽车座椅框架焊接机器人程序编制及路径规划_第3页
第3页 / 共33页
点击查看更多>>
资源描述
2015届毕业生毕业设计说明书题 目:汽车座椅框架焊接机器人程序编制及路径规划 院系名称: 电气工程学院 专业班级: 学生姓名: 学 号: 指导教师: 教师职称: 教 授 2015 年 05 月 20 日目 次1.绪论11.1 焊机机器人发展趋势11.2 焊接机器人的优点12.焊接机器人型号及辅助硬件32.1 焊接机器人型号32.2 IRB 2600机器人32.3 辅助硬件43.编程准备工作53.1 焊接参数53.2 配置I/O单元53.3 RAPID语言分析94.构建基本仿真机器人工作站124.1 布局机器人基本工作站124.2 工具数据tooldata的设定124.3 工件坐标wobjdata的设定144.4 程序流程图16总 结17致 谢18参考文献19附录:仿真程序201. 绪论焊接机器人是从事焊接(包括切割与喷涂)的工业机器人。根据国际标准化组织(ISO)工业机器人术语标准焊接机器人的定义,工业机器人是一种多用途的、可重复编程的自动控制操作机(Manipulator),具有三个或更多可编程的轴,用于工业自动化领域。为了适应不同的用途,机器人最后一个轴的机械接口,通常是一个连接法兰,可接装不同工具或称末端执行器。焊接机器人就是在工业机器人的末轴法兰装接焊钳或焊(割)枪的,使之能进行焊接,切割或热喷涂。1.1 焊机机器人发展趋势据不完全统计,全世界在役的工业机器人中大约有一半用于各种形式的焊接加工领域。截止2005年全世界在役工业机器人约为91.4万套,其中日本装备的工业机器人总量达到了50万台以上,成为“机器人王国”,其次是美国和德国;在亚洲,日本、韩国和新加坡的制造业中每万名雇员占有的工业机器人数量居世界前三位。近几年,全球机器人的数量在迅速增加,仅2005年就达12.1万台。我国自上个世纪70年代末开始进行工业机器人的研究,经过二十多年的发展,在技术和应用方面均取得了长足的发展,对国民经济尤其是制造业的发展起到了重要的推动作用。据不完全统计,最近几年我国工业机器人呈现出快速增长势头,平均每年的增长率都超过40%,焊接机器人的增长率超过了60%;2004年国产工业机器人数量突破1400台,进口机器人数量超过9000台,这其中的绝大多数都应用于焊接领域;2005年我国新增机器人数量超过了5000台,但仅占亚洲新增数量的6%,远小于韩国所占的15%,更远小于日本所占的69%。这样的增长速度相对于我国的经济发展速度以及经济总量来说显然是不匹配的,这说明我国制造业的自动化程度有待进一步提高,另一方面也反映了我国劳动力成本的低廉,制造业自动化水平以及工业机器人应用程度的提高受到限制。 焊接机器人的应用迎来了难得的发展机遇。一方面,随着技术的发展,焊接机器人的价格不断下降,性能不断提升;另一方面,劳动力成本不断上升,我国经济的发展,由制造大国向制造强国迈进,需要提升加工手段,提高产品质量和增加企业竞争力,这一切预示着机器人应用及发展前景空间巨大。1.2 焊接机器人的优点生产力的不断进步推动了科技的进步与革新,建立了更加合理的生产关系。自工业革命以来,人力劳动已经逐渐被机械所取代,而这种变革为人类社会创造出巨大的财富,极大地推动了人类社会的进步。时至今天,机电一体化、机械智能化、等技术技术应运而生。人类充分发挥主观能动性,进一步增强对机械的利用效率,使之为我们创造出更加巨大的生产力,并在一定程度上维护了社会的和谐。工业机器人的出现是人类在利用机械进行社会生产史上的一个里程碑。在发达国家中,工业机器人自动化生产线成套设备已成为自动化装备的主流及未来的发展方向。国外汽车行业、电子电器行业、工程机械行业已经大量使用工业机器人自动化生产线,以保证产品质量,提高生产效率,同时避免了大量的工伤事故。全球诸多国家近半个世纪的工业机器人使用实践表明,工业机器人的普及是实现自动化生产、提高社会生产效率、推动企业和社会生产力发展的有效手段。机器焊接与人工焊接比较分析如表1.1所示:表1.1机器人焊接与人工焊接对比对比因素机器人焊接人工焊接生产效率500-1500mm/分钟(根据不同产品调节)200-500mm/分钟(工人熟练度)产品品质焊接位置一致性高,焊道美观,焊渣少,减少了后期清渣打磨工作容易出现出虚焊漏焊,焊渣多,浪费焊丝工资成本1.一个工人可以操作多台机器人2.机器人寿命长达15年3.机器人每2年保养一次,保养费用不到500(更换电池,换润滑油等)以一个焊工5000元月薪计算,同等效率下,需要3-5名焊工,每月支出15000-25000元管理成本不需要各类保险福利,工人偷懒、情绪造成的产品损失的综合管理成本稳定性不会流失社会上从事对身体有害的的工作的工人越来越少,难以招聘,并且技术熟练的工人流失率很高安全性按照手册进行保养,安全可靠性高,事故率低焊接烟尘和弧光对工人造成职业病,为企业留下隐患由此可见,采用焊接机器人的生产效率成本高于人工焊接,所以焊接机器人是焊接领域发展的趋势。2. 焊接机器人型号及辅助硬件2.1 焊接机器人型号IRB 1400:工作范围较小,最大承载5kg,常用于焊接与小范围搬运。IRB 2400:工作范围较小,最大承载16kg,常用于焊接、涂刷、搬运与切割。IRB 2600:工作范围较大,最大承载20kg,常用于焊接、搬运、上下料。IRB 400:工作范围较大,最大承载60kg,常用于搬运。IRB 6400:工作范围较大,最大承载200kg,常用于搬运与点焊。IRB 6400:RIRB 6400升级版,1999年开始生产,2000年后全面替代IRB 6400。IRB 640:工作范围较大,最大承载160kg,堆垛专用的四轴机器。IRB 140:工作范围很小,最大承载为5kg,常用于焊接。IRB 840:工作范围很大,最大承载1200kg,搬运专用龙门架机器人。IRB 340:最大承载为1kg,分拣专用机器人。2.2 IRB 2600机器人IRB 2600机器人,“锋芒一代(Sharp Genneration)”机器人第2种型号IRB 2600携增强创新功能问世,该机身紧凑,荷重能力强,设计优化,适合弧焊、物料搬运、上下料等应用,提供了3中子型号,可以灵活选择落地、壁挂、支架、斜置、倒置等安装方式。IRB 2600优点:1)精度至高:IRB 2600的精度是同类产品之最,其操作速度快,废品率更低。在扩大产能、提升效率方面将起到举足轻重的作用,尤其适合弧焊等工艺应用。其高精度由专利的TrueMoveTM运动控制软件实现。2)周期至短:IRB 2600采用优化设计,机身紧凑轻巧,节拍时间与行业标准相比可缩减多达25%。专利的QuickMove运动控制软件使其加速度达到同类最高,并实现速度最大化,从而提高产能与效率。3)范围超大:IRB2600工作范围超大,安装方式灵活,可以轻松直达目标设备,不会干扰辅助设备。优化机器人安装,是提升生产效率的有效手段。模拟最佳工艺布局时,灵活的安装方式更能带来极大的便利。4)设计紧凑:IRB 2600的底座同IRB 4600一样小,可与目标设备靠得更近,从而缩小整个工作站的占地面积。小底座还为下臂进行正下方操作创造了有利条件。5)防护最佳:ABB工业机器人防护设计之周全居业内领先水平。IRB 2600标准达到IP67防护等级,另有铸造专家2型、铸造权威2型和洁净室版本等三款升级机型可供选择。2.3 辅助硬件图2.1 焊接电源 图2.2 冷却装置 图2.3 保护气体图2.4 地线 图2.5 送丝机 图2.6 焊枪注:焊接电源,使用FroniusTPS5000全数字化控制的逆变焊接电源。3. 编程准备工作3.1 焊接参数焊接参数(WeldData)是用来控制在焊接过程中机器人的焊接速度,以及输出的电压和电流的大小。选择合适的焊接工艺参数,对提高焊接质量和提高生产效率是很重要.焊接工艺参数(焊接规范)是指焊接时,为保证焊接质量而选定的诸多物理量. 典型的有焊接电流、焊接电压(通常用电弧长)、焊接速度等等。对于不同的焊接方法,又有着不同的焊接参数。视具体情况而定。电弧电压:电弧电压必须与焊接电流合理的进行匹配,提高电弧电压,可以显著增大焊缝宽度。当母材根部的间隙较大时,可适当降低电弧电压,同时焊接速度也应适当降低。焊接速度:焊接速度应能满足不同种类钢材对焊接线能量的要求。各参数相对应数值可参表3.1焊接参数选择表进行选用。母材厚度mm焊接电流A电弧电压V气体流量L/min焊接速度cm/min11.5758017.5181012203022.58510018.118.5121520253410013018.519.71520305611014018.520.115203581211018018.522182035表3.1焊接参数选择表3.2 配置I/O单元在仿真环境中,动画效果均由智能组建Smart创建,Smart组件的动画效果通过其自身的输入/输出信号与机器人的I/O信号相关联,最终实现工作动画效果与机器人程序的同步。在创建这些信号时,需要严格按照表格中的名称一一进行创建。将定义好的I/O信号与弧焊软件的相应端口进行关联后,系统会自动处理关联好的信号。在进行焊接程序编写和调试时,就可以通过弧焊软件专用的RAPID指令简单高效的对机器人进行弧焊连续工艺的控制。所需关联的信号如下表3.2所示:表3.2关联信号一览表NameType of SignalI/O信号注解ao01 Weld-REFAnalog Output焊接电压控制模拟信号ao02 Feed-REFAnalog Output焊接电流控制模拟信号do01 WeldOnDigital Output焊接启动数字信号do02 GasOnDigital Output打开保护气数字信号do03 FeedOnDigital Output送丝信号do04 Pos1Digital Output转台转到A工件do05 Pos2Digital Output转台转到B工件do06 CycleOnDigital Output机器人处于运行状态信号do07 ErrorDigital Output机器人处于错误报警状态信号do08 E-StopDigital Output机器人处于急停状态信号do09 GunWashDigital Output清枪装置清焊渣信号do10 GunSpayDigital Output清枪装置喷雾信号do11 FeedCutDigital Output剪焊丝信号di01 ArcEstDigital Input起弧检测信号di02 GasOKDigital Input保护气检测信号di03 FeedOKDigital Input送丝检测信号di04 StartDigital Input启动信号di05 StopDigital Input停止信号运行Di06 WorkStation1Digital Input转台转到工位A信号Di07 WorkStation2Digital Input转台转到工位B信号Di08 LoadingOKDigital Input工件装夹完成按钮信号Di09 ResetErrorDigital Input错误报警复位信号Di10 StartAt-MainDigital Input从主程序开始信号Di11 MotorOnDigital Input电动机上电输入信号soRobotInHomeDigital Output机器人在Home点信号soRotToADigital Output转台旋转到A工位控制信号soRotToBDigital Output转台旋转到B工位控制信号在仿真软件Robotstudio虚拟示教器中,进行I/O信号与焊接软件关联的的实际操作如下:1.在“控制面板”中,选择“配置”如图3.1。图3.1 控制面板配置2.打开“主题”菜单,选择“PROC”。如图3.2图3.2 控制面板PROC根据3.3章I/O表3.2内容对Arc Equipment Analogue Output、Arc Equipment Didital Output、Arc Equipment Didital Input三个参数进行设定。设定结束后,重启系统使其参数生效。如图3.3图3.3 控制面板参数设定3.3 RAPID语言分析RobotStudio用RAPID语言编写程序,RAPID是一种高级编程语言,为二级语言。MODULE MainModule .定义变量PROC main() .主程序END PROCENDMODULE上面所示的是典型的RAPID程序结构。一个RAPID程序可以含有一个或是几个module,每一个module可以包含一个或几个程序。但是只能有一个module。保存时以.mod格式保存。系统模块保存格式为.sys,系统程序是不能随便改动的。.RAPID语言的基本数据RAPID语言主要有以下四种数据格式,如表3.3所示。表3.3 RAPID数据RAPID数据变量(Variables)num,string,bool三种格式持续变量(Persistent variables)与变量基本一样,但是它总是记住它上次被赋予的值常量(Constants)常量,一直不变运算符(operators)数值运算符(numerical operators)“+”“-”“*”“/”关系运算符(relational operators)“=、“,、“=、“字符连接运算符(string operators)“+”(1)在程序模块定义变量部分时,最常见的为下面的格式:CONST robtarget p0:=600,500,2253,1,0,0,0,1,1,0,0,11,123,9E9,9E9,9E9,9E9其中600,500,2253表示目标点的位置;1,0,0,0是四元素,表示工具方向与工件坐标系一致;1,1,0,0表示规划时,1和4轴在90-180。方向上,6轴在0-90。方向上;11,123,9E9,9E9,9E9,9E9中11和123表示是外轴a和b,c到f未定义,则值为9E9。表3.4 RAPID的数据格式数据类型名字描述pos(位置)TranX,Y,z坐标值orient(方向)Rot方向confdata(规划数据)Robcon各个轴的角度extjoint(外轴)exta共6个外轴,如果值为9E9,则表明没有使用外轴(2)RAPID中的multiple values有数组和composite data。数组定义格式为:VAR num my_array4;定义的是含有四个数的数组。具体定义数组的值时,格式为:my_array:=4,5,7,9,若为同一个数,则定义成my_array4:=i0。composite data是一种包括多于一个量的数据类型,它被声明为一个常见的量但是包含一些预选定义的量。例如位置表达式:VAR pos posl;posl:=100,200,300; 若是单一量可以表示成poslz:=300:方向表达式也是同样如此,只不过方向在机器人中是用四元素来表达的。(3)RAPID函数与指令相似但是返回一个值。因为函数返回一个值,可以将这个值赋给一个变量。例如: regl:=Cos(reg2): 表示的是regl的值为reg2的余弦值。.RAPID基本移动指令RAPID的优点在于除了有其它高级编程语言的基本功能外,它是专门用来控制机器人的,最重要的是,一些是特意为使机器人移动而用的指令。MOVEL(MOVEJ,MOVEC)plO,v1000,fine,toolO:MOVEL是一个使机器人从当前位置直线移动到期望目标点的指令;M0VEJ用来在动作不是直线时快速移动机器人从一点到另一点;MOVEC用于机器人循环弧线移动。plO表明机器人将要移动到的位置,用户定义时,以P打头,后面以10的倍数命名,还有就是自动生成的例如Target-10等样式的目标点表达式;v1000表明机器人的速度为1000mms;fine表明机器人将精确到达所希望到达的点而不会减少到达下一位置的路径,还有例如zlO等指令,表明机器人路径在到达目标点时减少10mm。toolO表明是默认的工具0,是机器人末端法兰,也可以用工具1,2等,这些工具都是用户自己定义的。4.构建基本仿真机器人工作站4.1 布局机器人基本工作站选择相应设备添加到工作站。选择设备有焊枪BinzelTool、控制柜IRC5-Singel-Cabinet、机器人基座Pedestal-h440、焊枪清洗Torch-cleaner-binzel、示教器FlexPendant依次添加设备并布局即可创建机器人系统。工作站建立如下图4.1机器人工作站。图4.1 机器人工作站4.2 工具数据 tooldata的设定工具数据tooldata用于描述安装在机器人第六轴上的工具TCP、质量、重心、等参数数据。一般不同的机器人应用配置不同的工具,比如说焊接机器人就使用弧焊枪作为工具。默认工具(tool0)的工具中心点(Tool Center Ponit)位于机器人安装法兰的中心。TCP的设定原理如下:1) 首先在机器人工作范围内找一个非常精确地固定点作为参考点。2) 然后再工具上确定一个参考点(最好是工具的中心点)3) 有手动操作机器人的方法去移动工具上的参考点,以四种以上不同的机器人姿态尽可能与固定点碰上为了准确获得准确TCP,亦可使用六点进行操作。4) 机器人通过这四个位置点的位置数据计算求得TCP的数据,然后TCP的数据保存在tooldata这个程序数据中被程序调用。“四点法”函数依据: 机器人基坐标系为R,机器人末端坐标系为M,工具坐标系为T。工具坐标系标定就是要得到工具末端相对于机器人基坐标系的位姿矩阵足耳。机器人末端相对于机器人基坐标系的位姿矩阵为R,该矩阵是己知的;工具坐标系相对于机器人末端坐标系为R写,工具坐标系相对于机器人末端坐标系为肼耳,它们的相互关系如下: (4-1)工具末端在参考点A处的四次接近时,位置相同,姿态不同,可以计算出工具坐标系的位置参数。A点在机器人基坐标系下的位置为,工具末端位置在机器人基坐标系下的参数为。上式(4-1)变为: (4-2)将四个接近点的数据代入上式,可得工具坐标系在机器人基坐标系下的位置。图4.2 四点接近法4.3 工件坐标wobjdata的设定工件坐标对应工件,它定义工件相对于大地坐标(或其他坐标)的位置。机器人可以拥有若干个工件坐标系,或者表示不同工件,或者表示同一工件在不同位置的若干副本。对机器人进行编程时就是在工件坐标中创建目标和路径,优点如下:1) 重新定位工作站中的文件时,只需要该工件坐标的位置,所有路径将即刻随之更新。2) 允许操作以外轴或者传送导轨移动的工件,因为整个工件可连同其路径一起移动。用户坐标系时通过三点法来确定的。图4.3用户坐标系的确定如图4.3所示,点P1,P2和P3三点的坐标为: 由于这三点不在同一直线上,由这三点确定的平面,平面方程为: (4-3)平面的法向量n,向量AB与向量AC如下:(4-4)所有系数 (4-5)平面法矢量为用户坐标系的z轴矢量, (4-6)Y轴由右手法则确定。 (4-7)工件坐标系的标定原理与用户坐标系标定原理一样,如图4.4所示图4.4 工件坐标系的确定4.4 程序流程图图4.5 程序流程图仿真程序见附录。总 结通过此次毕业设计,我不仅把知识融会贯通,而且丰富了大脑,同时在查找资料的过程中也了解了许多课外知识,开拓了视野,认识了将来电子的发展方向,使自己在专业知识方面和动手能力方面有了质的飞跃。毕业设计是我作为一名学生即将完成学业的最后一次作业,他既是对学校所学知识的全面总结和综合应用,又为今后走向社会的实际操作应用铸就了一个良好开端,毕业设计是我对所学知识理论的检验与总结,能够培养和提高设计者独立分析和解决问题的能力;是我在校期间向学校所交的最后一份综和性作业毕业的时间一天一天的临近,毕业设计也接近了尾声。在不断的努力下我的毕业设计终于完成了。在没有做毕业设计以前觉得毕业设计只是对这几年来所学知识的大概总结,但是真的面对毕业设计时发现自己的想法基本是错误的。毕业设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。通过这次毕业设计使我明白了自己原来知识太理论化了,面对单独的课题的是感觉很茫然。自己要学习的东西还太多,以前老是觉得自己什么东西都会,什么东西都懂,有点眼高手低。通过这次毕业设计,我才明白学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。总之,不管学会的还是学不会的的确觉得困难比较多,真是万事开头难,不知道如何入手。最后终于做完了有种如释重负的感觉。此外,还得出一个结论:知识必须通过应用才能实现其价值!有些东西以为学会了,但真正到用的时候才发现是两回事,所以我认为只有到真正会用的时候才是真的学会了。致 谢在此要感谢我们的指导老师宁祎老师对我悉心的指导,感谢同学们给我的帮助。在设计过程中,我通过查阅大量有关资料,与同学交流经验和自学,并向老师请教等方式,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。在整个设计中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。而且大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。虽然这个设计做的也不太好,但是在设计过程中所学到的东西是这次毕业设计的最大收获和财富,使我终身受益。参考文献1 胡绳荪等焊接自动化技术及其应用北京:机械工业出版社,20072 许燕玲,林涛,陈善本焊接机器人应用现状与研究发展趋势金属加工焊接与切割2010(8):32363 贾守波.城市排水管道机器人工程样机的研究D.2008,(5):38404 胡涛.机器人开包系统剪带装置机械及控制系统研制D.2005,(2):17235 丁莉.变频恒压供水控制系统研究D.2007,(4):33386 叶晖.工业机器人典型应用案例精析.北京:机械工业出版社,20107 叶晖,管小青.工业机器人操作与应用技巧.北京:机械工业出版社,20108 叶晖.工业机器人工程应用虚拟仿真教程.北京:机械工业出版社,20109 ABB公司,RobotStiudio操作员手册10 王克鸿,刘永,许越兰等弧焊机器人离线编程系统焊报2001,84-8711 刘永,王克鸿,杨静宇等IGM弧焊机器人大型工作站仿真系统设计焊接学报2006,27(2):59-6312 陈志翔,黄勇,殷树言等弧焊机器人离线编程系统分析与设计机械工程学报2001,37(10):104-10613 何广忠机器人弧焊离线编程系统及其自动编程技术的研究哈尔滨工业大学博士学位论文2006:9-1914 江洪,王贵成,卢择临等SolidWorks高级曲线曲面实例解析北京:机械工业出版社,200715 Calibration Pendulum instruction,Calibration equipment,S4Cplus/IRC5:3HACl65781ABB Roboti Cs Products16 姚杰. 机器人无碰撞路径规划D.兰州理工大学,2006.17 陈渌漪. 焊接机器人工作站的设计与实现D.北京工业大学,2012.18 林君. 基于三维图形仿真的弧焊机器人离线编程及其技术实现D.北京工业大学,2003.19 尹峰. 6自由度焊接机器人离线编程系统研究D.北方工业大学,2012.20 吕宝. 机器人行走轨迹离线编程系统D.沈阳大学,2013.21 唐涛宇. 机器人离线编程系统的研究D.哈尔滨工业大学,2013.22 孙英飞,罗爱华. 我国工业机器人发展研究J. 科学技术与工程,2012,1223 张红强. 工业机器人时间最优轨迹规划D.湖南大学,2004.24 李双双. 工业机器人建模、运动仿真与轨迹优化D.内蒙古大学,2012.25 汪永元. 工业机器人的系统分析与仿真研究D.西南交通大学,2014.26 毕胜. 国内外工业机器人的发展现状J. 机械工程师,2008,07:5-8.附录:仿真程序MODULE MainModulePERS tooldata tWeldGun:=TRUE,125.800591275,0,381.268213238,0.898794046,0,0.438371147,0,2,0,0,100,0,1,0,0,0,0,0;CONST robtarget pHome:=892.381388433,0,1297.608236055,0.281247164,0,0.959635364,0,0,0,0,0,9E9,9E9,9E9,9E9,9E9,9E9;CONST robtarget pWait:=1055.04484901,-300.158845054,637.09781,0.069861281,-0.000000022,0.997556716,-0.000000023,-1,0,-1,0,9E9,9E9,9E9,9E9,9E9,9E9CONST robtarget pWeld_A10:=-477.207478341,-294.32,103.96,0.026332306,-0.0000022,0.999653245,-0.000002466,-1,-1,0,1,9E9,9E9,9E9,9E9,9E9,9E9;CONST robtarget pWeld_A20:=-403.449493255,-248.49845186,101.000437713,0.069861204,0.000000083,0.997556721,0.000000086,-1,-1,0,1,9E9,9E9,9E9,9E9,9E9,9E9;CONST robtarget pWeld_A30:=-352.811875694,-291.843211201,101.409107147,0.0698612,0.000000019,0.997556722,0.000000005,-1,-1,0,1,9E9,9E9,9E9,9E9,9E9,9E9;CONST robtarget pWeld_A40:=-378.875680781,-366.987505598,101.198753345,0.069861202,0.000000024,0.997556721,0.000000002,-1,-1,0,1,9E9,9E9,9E9,9E9,9E9,9E9;CONST robtarget pWeld_A50:=-453.792751274,-364.282071984,100.594133492,0.069861211,0.000000036,0.997556721,0.000000023,-1,-1,0,1,9E9,9E9,9E9,9E9,9E9,9E9;CONST robtarget pWeld_A60:=-442.993751743,150.446389278,100.681279632,0.069861173,-0.000000006,0.997556723,-0.000000016,0,0,-1,1,9E9,9E9,9E9,9E9,9E9,9E9;CONST robtarget pWeld_A70:=-539.427124904,150.446403649,99.902996639,0.06986119,-0.000000013,0.997556722,0.000000001,0,0,-1,1,9E9,9E9,9E9,9E9,9E9,9E9;CONST robtarget pWeld_A80:=-573.690968393,240.977426598,99.626488528,0.069861194,-0.000000046,0.997556722,-0.000000037,0,0,-1,1,9E9,9E9,9E9,9E9,9E9,9E9;CONST robtarget pWeld_A90:=-489.101026376,305.420194692,100.309124401,0.06986118,-0.000000029,0.997556723,-0.000000042,0,0,-1,1,9E9,9E9,9E9,9E9,9E9,9E9;CONST robtarget pWeld_A100:=-406.338790483,215.828761028,100.977108485,0.069861182,-0.000000043,0.997556723,-0.000000057,0,0,-1,1,9E9,9E9,9E9,9E9,9E9,9E9;TASK PERS seamdata sm1:=0.2,0.05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.1,0,0,0,0,0,0,0,0,0,0,0.05;TASK PERS welddata wd1:=40,10,0,0,10,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0; PERS bool bCell_A:=TRUE;PERS bool bCell_B:=TRUE;CONST robtarget pGunWash:=79.364244392,-975.399980073,710.541513019,0.027256179,0.683271873,0.729244588,0.024474064,-1,0,-1,0,9E9,9E9,9E9,9E9,9E9,9E9;CONST robtarget pGunSpary:=169.902907873,-959.109173328,471.829424203,0.027256127,0.683271884,0.729244579,0.024474059,-1,-1,0,0,9E9,9E9,9E9,9E9,9E9,9E9;CONST robtarget pFeedCut:=86.211693975,-680.45152226,449.035774336,0.027256152,0.683271999,0.729244472,0.024474019,-1,0,0,0,9E9,9E9,9E9,9E9,9E9,9E9; PERS num nCount:=0;PERS bool bLoadingOK:=FALSE;VAR intnum intno1:=0;CONST robtarget pHome10:=1395.69,0.00,1143.95,0.324113,1.52282E-10,0.946018,4.40058E-10,0,0,0,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09; CONST robtarget pWeld_B10:=-477.207478341,-294.32,103.96,0.026332306,-0.0000022,0.999653245,-0.000002466,-1,-1,0,1,9E9,9E9,9E9,9E9,9E9,9E9;CONST robtarget pWeld_B20:=-403.449493255,-248.49845186,101.000437713,0.069861204,0.000000083,0.997556721,0.000000086,-1,-1,0,1,9E9,9E9,9E9,9E9,9E9,9E9;CONST robtarget pWeld_B30:=-352.811875694,-291.843211201,101.409107147,0.0698612,0.000000019,0.997556722,0.000000005,-1,-1,0,1,9E9,9E9,9E9,9E9,9E9,9E9;CONST robtarget pWeld_B40:=-378.875680781,-366.987505598,101.198753345,0.069861202,0.000000024,0.997556721,0.000000002,-1,-1,0,1,9E9,9E9,9E9,9E9,9E9,9E9;CONST robtarget pWeld_B50:=-453.792751274,-364.282071984,100.594133492,0.069861211,0.000000036,0.997556721,0.000000023,-1,-1,0,1,9E9,9E9,9E9,9E9,9E9,9E9;CONST robtarget pWeld_B60:=-442.993751743,150.446389278,100.681279632,0.069861173,-0.000000006,0.997556723,-0.000000016,0,0,-1,1,9E9,9E9,9E9,9E9,9E9,9E9;CONST robtarget pWeld_B70:=-539.427124904,150.446403649,99.902996639,0.06986119,-0.000000013,0.997556722,0.000000001,0,0,-1,1,9E9,9E9,9E9,9E9,9E9,9E9;CONST robtarget pWeld_B80:=-573.690968393,240.977426598,99.626488528,0.069861194,-0.000000046,0.997556722,-0.000000037,0,0,-1,1,9E9,9E9,9E9,9E9,9E9,9E9;CONST robtarget pWeld_B90:=-489.101026376,305.420194692,100.309124401,0.06986118,-0.000000029,0.997556723,-0.000000042,0,0,-1,1,9E9,9E9,9E9,9E9,9E9,9E9;CONST robtarget pWeld_B100:=-406.338790483,215.828761028,100.977108485,0.069861182,-0.000000043,0.997556723,-0.000000057,0,0,-1,1,9E9,9E9,9E9,9E9,9E9,9E9;TASK PERS wobjdata wobjStationA:=FALSE,TRUE,1536.73,0,185,1,0,0,0,0,0,0,1,0,0,0;TASK PERS wobjdata wobjStationB:=FALSE,TRUE,1536.73,0,185,1,0,0,0,0,0,0,1,0,0,0;PROC rWeldingPathA()MoveJ pHome,vmax,z10,tWeldGunWObj:=wobj0;MoveJ Offs(pWeld_A10,0,0,350),v1000,z10,tWeldGunWObj:=wobjStationA;ArcLStart pWeld_A10, v1000, sm1, wd1, fine, tWeldGunWObj:=wobjStationA;ArcL pWeld_A20,v100,sm1,wd1,z1,tWeldGunWObj:=wobjStationA;ArcC pWeld_A30,pWeld_A40,v100,sm1,wd1,z1,tWeldGunWObj:=wobjStationA;ArcCEnd pWeld_A50,pWeld_A10,v100,sm1,wd1,fine,tWeldGunWObj:=wobjStationA;MoveL Offs(pWeld_A10,0,0,150),v1000,z10,tWeldGunWObj:=wobjStationA;MoveJ offs(pWeld_A60,0,0,150),vmax,z10,tWeldGunWObj:=wobjStationA;ArcLStart pWeld_A60,v1000,sm1,wd1,fine,tWeldGunWObj:=wobjStationA;ArcL pWeld_A70,v100,sm1,wd1,z1,tWeldGunWObj:=wobjStationA;ArcC pWeld_A80,pWeld_A90,v100,sm1,wd1,z1,tWeldGunWObj:=wobjStationA;ArcCEnd pWeld_A100,pWeld_A60,v100,sm1,wd1,fine,tWeldGunWObj:=wobjStationA;MoveL offs(pWeld_A60,0,0,50),vmax,z10,tWeldGunWObj:=wobjStationA;MoveJ pHome,vmax,z10,tWeldGunWObj:=wobj0;ENDPROCPROC rWeldingPathB()MoveJ pHome,vmax,z10,tWeldGunWObj:=wobj0;MoveJOffs(pWeld_B10,0,0,350),v1000,z10,tWeldGunWObj:=wobjStationB;ArcLStart pWeld_B10, v1000, sm1, wd1, fine, tWeldGunWObj:=wobjStationB;ArcL pWeld_B20,v100,sm1,wd1,z1,tWeldGunWObj:=wobjStationB;ArcC pWeld_B30,pWeld_B40,v100,sm1,wd1,z1,tWeldGunWObj:=wobjStationB;ArcCEnd pWeld_B50,pWeld_B10,v100,sm1,wd1,fine,tWeldGunWObj:=wobjStationB;MoveL Offs(pWeld_B10,0,0,150),v1000,z10,tWeldGunWObj:=wobjStationB;MoveJ offs(pWeld_B60,0,0,150),vmax,z10,tWeldGunWObj:=wobjStationB;ArcLStart pWeld_B60,v1000,sm1,wd1,fine,tWeldGunWObj:=wobjStationB;ArcL pWeld_B70,v100,sm1,wd1,z1,tWeldGunWObj:=wobjStationB;ArcC pWeld_B80,pWeld_B90,v100,sm1,wd1,z1,tWeldGunWObj:=wobjStationB;ArcCEnd pWeld_B100,pWeld_B60,v100,sm1,wd1,fine,tWeldGunWObj:=wobjStationB;MoveL offs(pWeld_B60,0,0,50),vmax,z10,tWeldGunWObj:=wobjStationB;MoveJ pHome,vmax,z10,tWeldGunWObj:=wobj0;ENDPROCPROC main() rInitAll; While TRUE DO rCheckGunState;IF di06WorkStation1=1 THEN rCellA_Welding;ELSEIF di07WorkStation2=1 THEN rCellB_Welding;ENDIFWaitTime 0.3; ENDWHILEENDPROCPROC rRotToCellA()Set do04pos1;bLoadingOK:=FALSE;WaitTime 3;WaitDi di06WorkStation1,1MaxTime:=10;Reset do04pos1;bCell_A:=TRUE;ENDPROCPROC rRotToCellB()Set do05pos2;bLoadingOK:=FALSE;WaitTime 3;WaitDi di07WorkStation2, 1MaxTime:=10;Reset do05pos2;bCell_B:=TRUE;ENDPROCPROC rInitAll() AccSet 100,100;VelSet 100,3000;ConfLOn;ConfJOn;rHome;nCount:=0;rCheckHomePos;Reset do05pos2;Reset do04pos1;Reset soRobotInHome;Reset do01WeldOn;Reset do03FeedOn;Reset do02GasOn;IDelete intno1;CONNECT intno1 WITH tLoadingOK;ISignalDI di08LoadingOK, 1, intno1;ENDPROCPROC rCheckGunState() IF nCount=6 Then rWeldGunSet; nCount:=0; ENDIF Waittime 0.1; ENDPROCPROC rCellA_Welding() rWeldingPathA; WaitUntil bLoadingOK=TRUE; rRotToCellB; nCount:=nCount+1; ENDPROCPROC rCellB_Welding()rWeldingPathB;WaitUntil bLoadingOK=TRUE;rRotToCellA;nCount:=nCount+1; ENDPROCPROC rHome()MoveJDO pHome, vmax, fine, tWeldGun, soRobotInHome, 1; ENDPROCPROC rTeachPath()MoveJ pHome,vmax,z10,tWeldGunWObj:=wobj0;MoveJ pWeld_A10,v1000,fine,tWeldGunWObj:=wobjStationA;MoveJ pWeld_A20,v100,z1,tWeldGunWObj:=wobjStationA;MoveJ pWeld_A30,v100,z1,tWeldGunWObj:=wobjStationA;MoveJ pWeld_A40,v100,fine,tWeldGunWObj:=wobjStationA;MoveJ pWeld_A50,v100,fine,tWeldGunWObj:=wobjStationA;MoveJ pWeld_A60,v100,fine,tWeldGunWObj:=wobjStat
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑环境 > 建筑工程


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!