A機器人編程程序解析_第1頁
A機器人編程程序解析_第2頁
A機器人編程程序解析_第3頁
A機器人編程程序解析_第4頁
A機器人編程程序解析_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、1程序解析:1、此程序是典型的ABB機器人官方編程思路與方法,分為主程序,初始化例行程序和軌跡程序.2、思路清楚,結(jié)構(gòu)編排明確,方便使用者閱讀.%VERSION"LANGUAGE: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 robtarget pPoi ntA:=1,1,1,1,

2、1,1,1,-1,0,0,0,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONST robtarget pPoi 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 robtarget PHome:=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,

3、1,0,0,0,0,0,0;以上是固定的數(shù)據(jù)存放位置.?PROC ma in ()主程序,是一個程序的開始rIn itial;Accset 60,60;此局部其實可放入到rlnitial中去,這樣治理起來更方便velset 100,100;此局部其實可放入到rlnitial中去,這樣治理起來更方便WHILE TRUE DO ?rBox;在此指令后插入秒的等待指令,預防CPU過負荷的情況岀現(xiàn).ENDWHILEENDPROCPROC rIn itial()?SetDo DOGrip,0;WaitDI DIGripReleased,1;?MoveJ pHome, v300, z50, tGrippe

4、r;?ENDPROCPROC rBox()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=1THENWaitTime 0;ELSEIF DIAllowPick=0 THENTPWrite "Signal of AllowPick no ready,Please Check!"GOTO A;ENDIF?MoveL pPointA,v800, fine, tGrippe

5、r; ?SetDo DOGrip,1;WaitDI DIGripPicked,1;Gripload load_Box;這一句很重要的,設定機器人的實際負荷情況,有利于機器人伺服限制的優(yōu)化MoveJ offs(pPointA,0,0,500), v1000, z100, tGripper;?MoveJ offs(pPointB,0,0,200), v1000, z50, tGripperWObj:=WobBox; ?MoveL pPoi ntB, v1000, fine, tGripperWObj:=WobBox;SetDo DOGrip,0;WaitDI DIGripReleased,1; ?

6、Gripload load_Empty;MoveL offs(pPoi ntB,0,200,0), v800, z50, tGripperWObj:=WobBox;MoveJ offs(pPo in tB,0,200,500), v1500, z100, tGripperWObj:=WobBox;ENDPROCENDMODULEABB機器人編程02程序解析:1、此程序編寫的思路是完全根據(jù)比賽題目中的要求的進行,就是按步就班式的2、思路清楚,結(jié)構(gòu)編排明確,方便使用者閱讀.3、有相應的寫屏信息提示,方便操作員對機器人運行狀態(tài)的了解.4、有一點小問題,就是缺少初始化的局部.MODULEMai nM

7、oduleC0NSTrobtargetPH0ME:=,0,0,0,1,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONSTrobtargetPA:=,-1,0,-2,1,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;C0NSTrobtargetP20:=,-1,0,-3,1,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONSTrobtargetP30:=,0,0,-2,1,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;CONSTrobtargetP40:=,0,0,-3,1,9E+0

8、9,9E+09,9E+09,9E+09,9E+09,9E+09;CONSTrobtargetPB:=,0,0,-2,1,9E+09,9E+09,9E+09,9E+09,9E+09,9E+09;PROCmai n()在主程序里,過于臃腫,將具體功能盡量細分到例行程序TPErase;MoveJPHOME,v1000,z50,tool0;Open Gripper;WaitTime5;WHILEtrueDOIFPLC=1THENTPErase;TPWrite"Warni ng! Begi n to move the new staff."WaitTime1;ClkResetcloc

9、k1;ClkStartclockl;MovFromAtoB;ClkStopcIockl;reg1:=CIkRead(cIock1);TPErase;TPWrite'Goods han dli ng in place, it take (time in seco nd): "Num:=reg1;運行時間的顯示W(wǎng)aitTime5;ELSETPErase;TPWrite"Waiting for new goods."運行狀態(tài)的提醒WaitDIPLC,1;ENDIFENDWHILEENDPROCPROCOpe nGripper()將對夾具的限制做在一個例行程序里,

10、方便治理SetGO;ResetG1;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,

11、tool0;WaitTime1;Open Gripper;WaitTime1;MoveLP40,v50,z50,tool0;MoveJP30,v1000,z50,tool0;MoveJPH0ME,v1000,z50,tool0;ENDPROCENDMODULE程序解析:1、此程序是典型的ABB機器人官方編程思路與方法,分為主程序,初始化例行程序和軌跡程序2、思路清楚,結(jié)構(gòu)編排明確,方便使用者閱讀.3、但有點要注意的初始化例行程序只在開始時,執(zhí)行一次,正常運行時,不再執(zhí)行.但此程序是每 個循環(huán)都會進行一次初始化,是有點問題的.PROC mai n()InitAll;此初始化程序應與循環(huán)執(zhí)行的程序

12、隔離開,使用WHILE指令Circle;WaitTime ;ENDPROC?PROC Ini tAll()Reset Do_fix On;WaitDI'O nCo nfJOn;ConfL'On;VelSet 80, 1000;AccSet 70,70;MoveJ PHome, v150, fine, Tool0WObj:=Wobj2;RETURN;ENDPROC?PROC Circle()MoveJ Home, v60, z0, Tool0WObj:=Wobj2;waitDI;work;reset waitDI?MoveJ Home, v150, fine, Tool0WObj

13、:=Wobj2;ENDPROC?PROC fixope n()Set Do_fixope n;ENDPROC?PROC fixclose()Reset Do_fixclose;ENDPROC?PROC Work()MOVEJ A0v150, z10, Tool0WObj:=Wobj2;fixope n;waittime 2;MOVEL A1v30, fin e,Tool0WObj:=Wobj2;fixclose;waittime 2;MOVEJ B0v150, z10, ToolOWObj:=Wobj2;MOVEj B1v30, fin e,ToolOWObj:=Wobj2;fixope n;

14、waittime 2;MoveJ PHome, v150, fine, ToolOWObj:=Wobj2;ENDPROCABB機器人編程04程序解析:1、此程序是典型的ABB機器人官方編程思路與方法.2、思路清楚,結(jié)構(gòu)編排明確,方便使用者閱讀.3、 此程序有一個亮點,就是有一個回等待點的例行程序rMoveHome,這個好處在于可以在手動狀態(tài) 下,就能方便的回到機器人的等待位置.4、有足夠的寫屏信息,很好地提示運行狀態(tài).PROC Mai n()?rln itial;rMoveHome;While True DoVelset 100,3000;AccSet 70, 70;rpickworkpiec

15、e;rplaceworkpiece;?en dwhile?proc rpickworkpiece;if workpiece=falseMoveJ pickup, v2000, z5, too10;A:TPErase;?IF DI10_pickup=1THEN(pickup 為 PLC 發(fā)來拾取信號)WaitTime 0; ?ELSEIF DI10_pickup=0 THENTPWrite "PLC-pickup signal no ready."GOTO A;ENDIFMoveJ Offs(pickup,0,0,300), v500, z200, too10;SetDo D

16、O10_pickup1,1;wait time1;workpiece=tureen difen dproc?proc rplaceworkpiece;if workpiece=tureMoveJ placemiddle, v2000, z5, toolO;?MoveJ placeworkpiece, v2000, z5, too10;MoveJ 0ffsplaceworkpiece,0,0,300, v500, z200, too10;SetDo DO10_pickup1,0;A:TPErase;?IF DI10_pickonhTHENpickon 為 PLC 檢測已放好信號WaitTime

17、0; ?ELSEIF DI10_pickup=0 THENTPWrite "PLC-pickON signal no ready."GOTO A;workpiece=falseENDIF?en dproc?PROC rln itialTpReadFk nlnput,"Is the pack_machine ready","","","","No","Yes"機器是否準備好If nln put=4 ThenbReady:=False;stop;ElseIF

18、nln put=5 the nbReady:=True;ENDIF?bFirstPickBoard:=True;TpReadFk nlnput,"Do you want to place workpiece","","","","No","Yes"機器人抓頭是否工件If nln put=4 Thenworkpiece:=False;ElseIF nln put=5 the nworkpiece:=True;ENDPROC ??PROC rMoveHome定義原點此例行程序可以

19、方便地回到等待位置MoveJ pHome, v500, z50, tGripper;ENDPROC程序解析:1、此程序是典型的ABB機器人官方編程思路與方法.2、思路清楚,結(jié)構(gòu)編排明確,方便使用者閱讀.3、此程序共分了 3個程序模塊,清楚地將不同用途的語句分開,方便閱讀,這種編程在進行一些復 雜系統(tǒng)的編程是非常有用的.4、 里面編程中運用了很多編程技巧,節(jié)省了機器人示教的時間,如使用OFFS功能.5、在寫屏信息提示方面也非常豐富.6、此程序非常適合大家的參考與提升.7、有一個小問題,缺少搬運重要的負荷重量設定數(shù)據(jù).MODULE Data此模塊專門用于存放程序數(shù)據(jù)的!target?CONST j

20、ointtarget 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 := 0, 0, 0, 0, 90, 0, 9E9, 9E9, 9E9, 9E9, 9E9, 9E9;VAR wzstati onary home;VAR shapedata join t_space;VAR num nu_in home;VAR bo

21、ol flag1:=FALSE;ENDMODULE%VERSION: 1LANGUAGE: ENGLISH%MODULE CalibData此模塊用于存放需要設定的程序數(shù)據(jù)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;?ENDMODULEMODULE Mai nM odulePROC mai n()CheckHome;Che

22、ckGriper;Producti on;ENDPROCPROC CheckHome()IF DOutput(do_i nhome) = 1 THENnu_in home := 1;ELSE?nu_in home :=0;ENDIFTEST nu_in homeCASE 0 :GoHome;CASE 1 :RETURN;DEFAULT:TPWrite "error"Stop;ENDTESTENDPROCPROC CheckGriper()IF di_griperclosed = 1 THENCon trolGriper;ELSERETURN;ENDIFENDPROCPROC

23、 Productio n()WHILE TRUE DOWait 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,O,O,5OO),v1O

24、OO,z1OO,Tooldata_1WObj:=Workobject_1;MoveL roDeFetch,v1000,fi ne,Tooldata_1WObj:=Workobject_1;Open Griper;MoveL Offs(roDeFetch,O,O,5OO),v1OOO,z1OO,Tooldata_1WObj:=Workobject_1;ENDWHILEENDPROCPROC CloseGriper()flag1:=FALSE;Reset do_ope ngriper;Set do_closegriper;WaitDI di_griperclosed, 1MaxTime:=3Tim

25、eFlag:=flag1;WHILE flag1=TRUE DOTPWrite"CANN'T 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 DOTPWrite"CANN'T OPEN GRIPER"StopNoRega in;ENDWHILEENDPROCPROC DEF_Z on e()對機器人是否在等待位進行檢測WZHomeJo in tDef ln side, join t_space, home_pos, delta_pos;WZDOSetStat, homeI nside, joi nt_space, do_i nhome, 1;!RETURN;ENDPROCPROC GoHome()?VAR btn res an swer;VAR stri ng my_message2:= "",""CONST string my_butto

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論