ABB机器人编程程序解析汇报.doc

上传人:scccc 文档编号:13771630 上传时间:2022-01-23 格式:DOC 页数:20 大小:60.50KB
返回 下载 相关 举报
ABB机器人编程程序解析汇报.doc_第1页
第1页 / 共20页
ABB机器人编程程序解析汇报.doc_第2页
第2页 / 共20页
ABB机器人编程程序解析汇报.doc_第3页
第3页 / 共20页
亲,该文档总共20页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《ABB机器人编程程序解析汇报.doc》由会员分享,可在线阅读,更多相关《ABB机器人编程程序解析汇报.doc(20页珍藏版)》请在三一文库上搜索。

1、ABB机器人编程1程序解析:1、此程序是典型的ABB机器人官方编程思路与方法,分为主程序,初始化例行程序和轨迹程序2、思路清晰,结构编排明确,方便使用者阅读。%VERSIONLANGUAGE:ENGLISH%MODULE Mai nM odulePERS tooldata tGripper:=TRUE,0,0,100,1,0,0,0,25,0,0,10,1,0,0,0,0,0,0;PERS wobjdata WobBox:=FALSE,TRUE,1,1,1,0,0,0,0,0,0,0,1,0,0,0;CONST robtargetpPoi ntA:=1,1,1,1,1,1,1,-1,0,0,0

2、,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetpPoi ntB:=1,1,1,1,1,1,1,-1,0,0,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtargetPHome:=1,1,1,1,1,1,1,-1,0,0,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;PERS loaddata load_Empty:=1,0,0,0,1,0,0,0,0,0,0;PERS loaddata load_Box:=20,0,0,0,1,0,0,0,0,0,0;以上是

3、固定的数据存放位置。PROC main()主程序,是一个程序的开始rIn itial;Accset 60,60;此部分其实可放入到rlni tial中去,这样管理起来更方便velset 100,100;此部分其实可放入到rln itial中去,这样管理起来更方便WHILE TRUE DOrBox;在此指令后插入0.3秒的等待指令,防止CPU过负荷的情况岀现。ENDWHILEENDPROCPROC rInitial()SetDo DOGrip,0;WaitDI DIGripReleased,1;MoveJ pHome, v300, z50, tGripper;ENDPROCPROC rBox()

4、MoveJ offs(pPo in tA,0,200,500), v1500, z100,tGripper;MoveJ offs(pPo in tA,0,200,0), v1500, z50,tGripper;A:TPErase;IF DIAllowPick=1 THENWaitTime 0;ELSEIF DIAIIowPick=0 THENTPWrite Sig nal of AllowPick no ready,PIease Check!;GOTO A;ENDIFMoveL pPo in tA,v800, fine, tGripper;SetDo DOGrip,1;WaitDI DIGri

5、pPicked,1;Gripload load_Box;这一句很重要的,设定机器人的实际负荷情况,有利于机器人伺服控制的优化MoveJ offs(pPointA,0,0,500), v1000, z100, tGripper;MoveJ offs(pPoi ntB,0,0,200), v1000, z50, tGripperWObj:=WobBox;MoveL pPoi ntB, v1000, fine, tGripperWObj:=WobBox;SetDo DOGrip,0;WaitDI DIGripReleased,1;Gripload load_Empty;MoveL offs(pPoi

6、 ntB,0,200,0), v800, z50, tGripperWObj:=WobBox;MoveJ offs(pPoi ntB,0,200,500), v1500, z100, tGripperWObj:=WobBox;ENDPROCENDMODULEABB机器人编程02程序解析:1、此程序编写的思路是完全按照比赛题目中的要求的进行,就是按步就班式的2、思路清晰,结构编排明确,方便使用者阅读。3、有相应的写屏信息提示,方便操作员对机器人运行状态的了解。4、有一点小问题,就是缺少初始化的部分。MODULEMai nM oduleCONSTrobtargetPHOME:=1149.87,13

7、.55,451.35,0.729477,0.0748599,0.679603,0.01997 65,0,0,0,1,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;C0NSTrobtargetPA:=250.14,-652.34,650.90,0.429093,0.468557,-0.496153,0.591749,- 1,0,-2,1,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONSTrobtargetP20:=250.14,-652.35,828.56,0.429091,0.468538,-0.496163,0.591756, -1,

8、0,-3,1,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONSTrobtargetP30:=695.24,18.14,826.55,0.0377066,-0.677588,0.0913591,-0.728771, 0,0,-2,1,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONSTrobtargetP40:=1227.51,18.14,826.55,0.0377092,-0.677583,0.0913642,-0.728774 ,0,0,-3,1,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONSTr

9、obtargetPB:=1227.52,18.15,424.02,0.0377092,-0.677591,0.0913577,-0.728767,0,0,-2,1,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;PROCma in()在主程序里,过于臃肿,将具体功能尽量细分到例行程序TPErase;MoveJPHOME,v1000,z50,tool0;Open Gripper;WaitTime5;WHILEtrueDOIFPLC=1THENTPErase;TPWriteWarni ng! Begi n to move the new staff.;WaitTime1;C

10、lkResetclock1;ClkStartclock1;MovFromAtoB;ClkStopclock1;reg1:=ClkRead(clock1);TPErase;TPWriteGoods han dli ng in place, it take (time in seco nd): Num:=reg1;运行时间的显示WaitTime5;ELSETPErase;TPWriteWaiti ng for new goods.;运行状态的提醒WaitDIPLC,1;ENDIFENDWHILEENDPROCPROCOpe nGripper()将对夹具的控制做在一个例行程序里,方便管理SetGO;

11、ResetGI;ENDPROCPROCCloseGripper()将对夹具的控制做在一个例行程序里,方便管理SetG1;ResetG0;ENDPROCPROCMovFromAtoB()MoveJP30,v1000,z50,tool0;MoveJP20,v1000,z50,tool0;MoveLPA,v50,fi ne,tool0;WaitTime1;CloseGripper;WaitTime1;MoveJP20,v50,z50,tool0;MoveJP30,v1000,z50,tool0;MoveJP40,v1000,z50,tool0;MoveLPB,v50,fi ne,tool0;Wait

12、Timel;Open Gripper;WaitTimel;MoveLP40,v50,z50,tool0;MoveJP30,v1000,z50,tool0;MoveJPHOME,v1000,z50,tool0;ENDPROCENDMODULEABB机器人编程03程序解析:1、此程序是典型的ABB机器人官方编程思路与方法,分为主程序,初始化例行程序和轨迹程序。2、思路清晰,结构编排明确,方便使用者阅读。3、但有点要注意的初始化例行程序只在开始时,执行一次,正常运行时,不再执行。但此程序是每个循环都会进行一次初始化,是有点问题的。PROC mai n()InitAll;此初始化程序应与循环执行的程序

13、隔离开,使用WHILE指令Circle;WaitTime 0.5;ENDPROCPROC In itAll()Reset Do_fix On;WaitDIO nConfJOn;ConfLOn;VelSet 80, 1000;AccSet 70,70;MoveJ PHome, v150, fine, Tool0WObj:=Wobj2;RETURN;ENDPROCPROC Circle()MoveJ Home, v60, z0, Tool0WObj:=Wobj2;waitDI;work;reset waitDIMoveJ Home, v150, fine, ToolOWObj:=Wobj2;END

14、PROCPROC fixope n()Set Do_fixope n;ENDPROCPROC fixclose()Reset Do_fixclose;ENDPROCPROC Work()MOVEJ AO v150, z10, ToolOWObj:=Wobj2;fixope n;waittime 2;MOVEL A1 v30, fin e,Tool0WObj:=Wobj2;fixclose;waittime 2;MOVEJ B0 v150, z10, Tool0WObj:=Wobj2;MOVEj B1 v30, fin e,ToolOWObj:=Wobj2;fixope n;waittime 2

15、;MoveJ PHome, v150, fine, ToolOWObj:=Wobj2;ENDPROCABB机器人编程04程序解析:1、此程序是典型的ABB机器人官方编程思路与方法。2、思路清晰,结构编排明确,方便使用者阅读。,这个好处在于可以在手动状3、 此程序有一个亮点,就是有一个回等待点的例行程序rMoveHome态下,就能方便的回到机器人的等待位置。4、有足够的写屏信息,很好地提示运行状态。PROC Mai n()rln itial;rMoveHome;While True DoVelset 100,3000;AccSet 70, 70;rpickworkpiece;rplacework

16、piece;en dwhileproc rpickworkpiece;if workpiece=falseMoveJ pickup, v2000, z5, too10;A:TPErase;为PLC发来拾取信号)IF DI10_pickup=1 THEN(pickupWaitTime 0;ELSEIF DI10_pickup=0 THENTPWrite PLC-pickup sig nal no ready.;GOTO A;ENDIFMoveJ Offs(pickup,0,0,300), v500, z200, too10;SetDo DO10_pickup1,1;wait time 1;wor

17、kpiece=tureen difen dprocproc rplaceworkpiece;if workpiece=tureMoveJ placemiddle, v2000, z5, too10;MoveJ placeworkpiece, v2000, z5, too10;MoveJ 0ffs(placeworkpiece,0,0,300), v500, z200, too10;SetDo D010_pickup1,0;A:TPErase;IF DI10_pickon=1 THEN(pickon为 PLC 检测已放好信号)WaitTime 0;ELSEIF DI10_pickup=0 THE

18、NTPWrite PLC-pickON signal no ready.;GOTO A;workpiece=falseENDIFen dprocPROC rInitial()TpReadFk nInput,ls the pack_machine ready,No,Yes;(机器是否准备好)If nln put=4 ThenbReady:=False;stop;ElseIF nln put=5 the nbReady:=True;ENDIFbFirstPickBoard:=True;TpReadFk nInput,Do you want to place workpiece,No,Yes;(机器

19、人抓头是否工件)If nln put=4 Thenworkpiece:=False;ElseIF nln put=5 the nworkpiece:=True;ENDPROCPROC rMoveHome()( 定义原点)此例行程序可以方便地回到等待位置MoveJ pHome, v500, z50, tGripper;ENDPROCABB机器人编程05程序解析:1、此程序是典型的ABB机器人官方编程思路与方法。2、思路清晰,结构编排明确,方便使用者阅读。3、此程序共分了 3个程序模块,清楚地将不同用途的语句分开,方便阅读,这种编程在进行一些复 杂系统的编程是非常有用的。4、 里面编程中运用了很多

20、编程技巧,节省了机器人示教的时间,如使用OFFS功能。5、在写屏信息提示方面也非常丰富。6、此程序非常适合大家的参考与提高。7、有一个小问题,缺少搬运重要的负荷重量设定数据。MODULE Data此模块专门用于存放程序数据的!targetCONST jointtarget home_pos := 0, 0, 0, 0, 90, 0, 9E9, 9E9, 9E9, 9E9, 9E9, 9E9;CONST jointtarget delta_pos := 2, 2, 2, 2, 2, 2, 9E9, 9E9, 9E9, 9E9, 9E9, 9E9;CONST joi nttarget jhome

21、:= 0, 0, 0, 0, 90, 0, 9E9, 9E9, 9E9, 9E9, 9E9, 9E9;PERS robtargetroFetch:=2000,0,233.483269239532,0,0,1,0,0,0,0,0,9E9,9E9,9E9,9E9,9E9,9E9;PERS robtargetroDeFetch:=2000,1000,233.483269239532,0,0,1,0,0,0,0,0,9E9,9E9,9E9,9E9,9E9,9E9;VAR wzstati onary home;VAR shapedata join t_space;VAR num nu_in home;V

22、AR bool flag1:=FALSE;ENDMODULE%VERSION: 1LANGUAGE: ENGLISH%MODULE CalibData此模块用于存放需要设定的程序数据TASK PERS tooldata Tooldata_1:=TRUE,0,0,1000,1,0,0,0,1,0,0,1,1,0,0,0,0,0,0;TASK PERS wobjdata Workobject_1:=FALSE,TRUE,0,0,0,1,0,0,0,0,0,0,1,0,0,0;MODULE Mai nM odulePROC mai n()CheckHome;CheckGriper;Producti

23、on;ENDPROCPROC CheckHome()IF DOutput(do_i nhome) = 1 THENnu_in home := 1;ELSEnu_in home :=0;ENDIFTEST n u_i nhomeCASE 0 :GoHome;CASE 1 :RETURN;DEFAULT :TPWrite error;Stop;ENDTESTENDPROCPROC CheckGriper()IF di_griperclosed = 1 THENCon trolGriper;ELSERETURN;ENDIFENDPROCPROC Productio n()WHILE TRUE DOW

24、ait Un til di_plc=1;MoveL Offs(roFetch,0,0,500),v1000,z100,Tooldata_1WObj:=Workobject_1;利用 OFFS 此功能,减少示教MoveL roFetch,v1000,fi ne,Tooldata_1WObj:=Workobject_1;CloseGriper;MoveL Offs(roFetch,0,0,500),v1000,z100,Tooldata_1WObj:=Workobject_1;MoveL Offs(roDeFetch,0,0,500),v1000,z100,Tooldata_1WObj:=Work

25、object_1;MoveL roDeFetch,v1000,fi ne,Tooldata_1WObj:=Workobject_1;Open Griper;MoveL Offs(roDeFetch,O,O,5OO),v1OOO,z1OO,Tooldata_1WObj:=Workobject_1;ENDPROCPROC CloseGriper()flag1:=FALSE;Reset do_ope ngriper;Set do_closegriper;WaitDI di_griperclosed, 1MaxTime:=3TimeFlag:=flag1;WHILE flag仁TRUE DOTPWri

26、teCANNT CLOSE GRIPER;StopNoRega in;ENDWHILEENDPROCPROC Ope nGriper()flag1:=FALSE;Set do_ope ngriper;Reset do_closegriper;WaitDI di_griperope nd, 1MaxTime:=3TimeFlag:=flag1;WHILE flag仁TRUE DOTPWriteCANNT OPEN GRIPER;StopNoRega in;ENDWHILEENDPROCPROC DEF_Z on e()对机器人是否在等待位进行检测 WZHomeJo in tDef ln side

27、, join t_space, home_pos, delta_pos;WZDOSetStat, homel nside, joi nt_space, do_i nhome, 1;!RETURN;ENDPROCPROC GoHome()VAR btnres an swer;VAR string my_message2:= ,;丰富的写屏指令CONST string my_buttons2:=MOVE TO HOME,STOP PRG;my_message1:=RBT IS IN SAFETY POSITION; my_message2:=OR CANNOT MOVE AUTOMATICALLY

28、; an swer:= UIMessageBox ( Header:=RBT IS IN SAFETY AREA TO MOVE ON HOME? MsgArray:=my_message BtnArray:=my_butt ons Ic on:=ic onWarnin g);IF an swer=2 THENEXIT;!StopNoRega in;ELSEMoveAbsJ jhomeNoEOffs, v100, z5, Tooldata_1;ENDIFPROC Co ntrolGriper()VAR btn res an swer;VAR string my_message2:= ,;丰富的

29、写屏指令CONST stri ng my_butt on s2:=OPEN GRIPER,STOP PRG;my_message1:=GRIPER IS NOT EMPTY;my_message2:=OR SENSOR IS WRONG;an swer:= UIMessageBox (Header:=OPEN THE GRIPER?MsgArray:=my_messageBtnArray:=my_butt onsIc on:=ic onWarnin g);IF an swer=2 THENEXIT;!StopNoRega in;ELSEOpen Griper;ENDIFENDPROCENDMODULE

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1