工業(yè)機(jī)器人離線編程 第2版-課件第4章 碼垛機(jī)器人的離線編程_第1頁(yè)
工業(yè)機(jī)器人離線編程 第2版-課件第4章 碼垛機(jī)器人的離線編程_第2頁(yè)
工業(yè)機(jī)器人離線編程 第2版-課件第4章 碼垛機(jī)器人的離線編程_第3頁(yè)
工業(yè)機(jī)器人離線編程 第2版-課件第4章 碼垛機(jī)器人的離線編程_第4頁(yè)
工業(yè)機(jī)器人離線編程 第2版-課件第4章 碼垛機(jī)器人的離線編程_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

工業(yè)機(jī)器人離線編程課程主要內(nèi)容第一章工業(yè)機(jī)器人認(rèn)知第二章激光切割工業(yè)機(jī)器人的離線編程第三章搬運(yùn)機(jī)器人的離線編程第四章碼垛機(jī)器人的離線編程第五章輸送鏈搬運(yùn)工作站的構(gòu)建與運(yùn)行學(xué)習(xí)情境2:數(shù)控系統(tǒng)顯示畫面及操作

第4章碼垛機(jī)器人的離線編程學(xué)習(xí)目標(biāo)1.學(xué)會(huì)中斷程序的運(yùn)用2.學(xué)會(huì)碼垛常用I/O配置3.學(xué)會(huì)使用離線軟件進(jìn)行碼垛數(shù)據(jù)創(chuàng)建4.學(xué)會(huì)使用離線軟件進(jìn)行碼垛程序編寫5.學(xué)會(huì)碼垛節(jié)拍優(yōu)化技巧任務(wù)描述工作站以箱體碼垛為例,利用IRB460機(jī)器人完成碼垛任務(wù),整個(gè)工作站由產(chǎn)品輸入線和產(chǎn)品輸出位組成。工作站中已經(jīng)預(yù)設(shè)碼垛動(dòng)作效果(包含產(chǎn)品輸送流轉(zhuǎn)、夾具動(dòng)作、產(chǎn)品的拾取和放置等),大家需要在此工作站中依次完成I/O配置、程序數(shù)據(jù)創(chuàng)建、目標(biāo)點(diǎn)示教、程序編寫及調(diào)試,最終完成整個(gè)碼垛工作站的碼垛任務(wù)。4.1知識(shí)儲(chǔ)備——高級(jí)指令

ConfL用于指定機(jī)器人在線性運(yùn)動(dòng)及圓弧運(yùn)動(dòng)過(guò)程中是否嚴(yán)格遵循程序中已設(shè)定的軸配置參數(shù)。在默認(rèn)情況下,軸配置監(jiān)控是打開的,當(dāng)關(guān)閉軸配置監(jiān)控后,機(jī)器人在運(yùn)動(dòng)過(guò)程中采取最接近當(dāng)前軸配置數(shù)據(jù)的配置到達(dá)指定目標(biāo)點(diǎn),影響的是MoveL(線性運(yùn)動(dòng))指令的執(zhí)行。4.1.1軸配置監(jiān)控指令1.指令ConfL示例:CONSTrobtargetp10:=*.*.*].[**,**],[1,0,1,0],[9E9,9E9,9E9,9E9,9E9,9E9]];!目標(biāo)點(diǎn)p10中,數(shù)據(jù)[1,0,1,0]就是此目標(biāo)點(diǎn)的軸配置數(shù)據(jù)ConfL\Off;MoveLp10,v1000,fine,tool0;在某些應(yīng)用場(chǎng)合,如離線編程創(chuàng)建目標(biāo)點(diǎn)或手動(dòng)示教相鄰兩目標(biāo)點(diǎn)間軸配置數(shù)據(jù)相差較大時(shí),在機(jī)器人運(yùn)動(dòng)過(guò)程中容易出現(xiàn)報(bào)警“軸配置錯(cuò)誤”而造成停機(jī)。此種情況下,若對(duì)軸配置要求較高,則一般通過(guò)添加中間過(guò)渡點(diǎn);若對(duì)軸配置要求不高,則可通過(guò)指令ConfL\Off關(guān)閉軸監(jiān)控,使機(jī)器人自動(dòng)匹配可行的軸配置來(lái)到達(dá)指定目標(biāo)點(diǎn)。4.1.1軸配置監(jiān)控指令1.指令ConfLConfJ用法與ConfL相同,只不過(guò)前者為關(guān)節(jié)線性運(yùn)動(dòng)過(guò)程中的軸監(jiān)控開關(guān),影響的是MoveJ;而后者為線性運(yùn)動(dòng)過(guò)程中的軸監(jiān)控開關(guān),影響的是MoveL4.1.1軸配置監(jiān)控指令2.指令ConfJ在搬運(yùn)過(guò)程中,為了提高節(jié)拍時(shí)間,在控制吸盤夾具動(dòng)作過(guò)程中,吸取物品時(shí)需要提前打開真空,在放置物品時(shí)也需要提前釋放真空。為了能夠準(zhǔn)確地觸發(fā)吸盤夾具動(dòng)作,通常采用動(dòng)作觸發(fā)指令TiggL來(lái)實(shí)現(xiàn)控制。動(dòng)作觸發(fā)指令TriggL是在線性運(yùn)動(dòng)過(guò)程中,在指定的位置觸發(fā)事件,如置位輸出信號(hào)和激活中斷等。動(dòng)作觸發(fā)指令可以定義多種類型的觸發(fā)事件,如觸發(fā)信號(hào)Tiggl/O、觸發(fā)裝置動(dòng)作TriggEquip,以及觸發(fā)中斷TiggInt。4.1.2動(dòng)作觸發(fā)指令VARtriggdataGripOpen;TriggEquipGripOpen,10,0.1\DOp:=doGripOn,1;TriggLpl,v500,GripOpen,z10,gun1;

如果觸發(fā)距離的參考點(diǎn)是起點(diǎn),則在觸發(fā)距離后面添加變量\Start,例如:TriggEquipGripOpen,10\Start,0.1\DOp:=doGripOn,l;4.1.2動(dòng)作觸發(fā)指令示例:觸發(fā)裝置動(dòng)作程序,要求在距離終點(diǎn)10mm位置處觸發(fā)機(jī)器人夾具的動(dòng)作。在RAPID程序執(zhí)行過(guò)程中,如果發(fā)生需要緊急處理的情況,這時(shí)就要求工業(yè)機(jī)器人中斷當(dāng)前正在執(zhí)行的程序,程序指針PP馬上跳轉(zhuǎn)到專門的程序中對(duì)緊急的情況進(jìn)行相應(yīng)處理,處理結(jié)束后程序指針PP返回原來(lái)被中斷的地方,繼續(xù)往下執(zhí)行程序。專門用來(lái)處理緊急情況的專門程序,被稱為中斷程序(TRAP)。中斷程序經(jīng)常用于出錯(cuò)處理、外部信號(hào)響應(yīng)等實(shí)時(shí)響應(yīng)要求高的場(chǎng)合。4.1.3中斷及功能程序1.中斷程序示例:PROCrIntall()!用于初始化的例行程序VARintnumintnol;!定義中斷數(shù)據(jù)intnolIDeleteintnol;!取消當(dāng)前中斷符intnol的連接,預(yù)防誤觸發(fā)CONNECTintnolWITHtTrap;!將中斷符與中斷程序tTrap連接ISignalDIdil,1,intnol;!定義觸發(fā)條件,即當(dāng)數(shù)字輸人信號(hào)dil為1時(shí),觸發(fā)該中斷程序ENDPROCTRAPtTrap!中斷程序regl:=reg1+1;ENDTRAP

4.1.3中斷及功能程序1.中斷程序在ABB工業(yè)機(jī)器人的RAPID編程中的功能(FUNCTION)可以看作帶返回值的例行程序,并可以將其封裝成為一個(gè)指定功能的模塊,使用時(shí)值需要輸入指定類型的數(shù)據(jù)就可以返回一個(gè)值存放到對(duì)應(yīng)的程序數(shù)據(jù)。4.1.3中斷及功能程序2.功能程序示例:FUNCboolCurrentPos(robtargetComparePos,INOUTtooldataTCP)!檢測(cè)目標(biāo)點(diǎn)功能程序,帶有兩個(gè)參數(shù),比較目標(biāo)點(diǎn)和所使用的工具數(shù)據(jù)VARnumCounter:=0;!定義數(shù)字型數(shù)據(jù)CounterVARrobtargetActualPos;!定義目標(biāo)點(diǎn)數(shù)據(jù)ActualPosActualPos:=CRobT(\Tool:=tGripper\WObj:=wobj0);!利用CRobT功能讀取當(dāng)前機(jī)器人目標(biāo)位置并賦值給ActualPosIFActualPos.trans.x>ComparePos.trans.x-25ANDActualPos.trans.x<ComparePos.trans.x+25Counter:=Counter+1;IFActualPos.trans.y>ComparePos.trans.y-25ANDActualPos.trans.y<ComparePos.trans.y+25Counter:=Counter+1;4.1.3中斷及功能程序2.功能程序IFActualPos.trans.z>ComparePos.trans.z-25ANDActualPos.trans.z<ComparePos.trans.z+25Counter:=Counter+1;IFActualPos.rot.q1>ComparePos.rot.q1-0.1ANDActualPos.rot.q1<ComparePos.rot.q1+0.1Counter:=Counter+1;IFActualPos.rot.q2>ComparePos.rot.q2-0.1ANDActualPos.rot.q2<ComparePos.rot.q2+0.1Counter:=Counter+1;IFActualPos.rot.q3>ComparePos.rot.q3-0.1ANDActualPos.rot.q3<ComparePos.rot.q3+0.1Counter:=Counter+1;IFActualPos.rot.q4>ComparePos.rot.q4-0.1ANDActualPos.rot.q4<ComparePos.rot.q4+0.1Counter:=Counter+1;RETURNCounter=7;

ENDFUNC4.1.3中斷及功能程序2.功能程序PROCrCheckHomePos()!檢測(cè)是否在Home點(diǎn)程序VARrobtargetpActualPos;!定義一個(gè)目標(biāo)點(diǎn)數(shù)據(jù)pActualPosIFNOTCurrentPos(pHome,tGripper)THENpActualpos:=CRobT(\Tool:=tGripper\WObj:=wobj0);pActualpospActualpos.trans.z:=pHome.trans.z!將pHome點(diǎn)的Z值賦給pActualpos點(diǎn)的Z值MoveLpActualpos,v100,z10,tGripper;!移至已被賦值的后的pActualpos點(diǎn)MoveLpHome,v100,fine,tGripper;!移至pHome,目的是需要先將機(jī)器人提升至與pHome點(diǎn)一樣的高度,之后再平移至pHome點(diǎn),這樣可以簡(jiǎn)單地規(guī)劃一條安全回Home點(diǎn)的軌跡ENDIFENDPROC4.1.3中斷及功能程序2.功能程序程序中的數(shù)據(jù)大多是組合型數(shù)據(jù),包含多項(xiàng)數(shù)值或字符串??梢詫?duì)其中的任何一項(xiàng)參數(shù)進(jìn)行賦值。例如:PERSrobtargetP10:=[[0,0,0],[1,0,0,0],[0,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];PERSrobtargetP20:=[[100,0,0],[0,0,1,0],[1,0,1,0],[9E9,9E9,9E9,9E9,9E9,9E9]];目標(biāo)點(diǎn)數(shù)據(jù)中包含了4組數(shù)據(jù),從前往后依次為:TCP位置數(shù)據(jù)[100,0,0](trans)、TCP姿態(tài)數(shù)據(jù)[0,0,1,0](rot)、軸配置參數(shù)[1,0,1,0](robconf)和外部數(shù)據(jù)[9E9,9E9、9E9,9E9,9E9,9E9](extax),可以分別對(duì)該數(shù)據(jù)的各項(xiàng)數(shù)值進(jìn)行操作。4.1.4復(fù)雜數(shù)據(jù)如:P10.trans.x:=P20.trans.x+30;P10.trans.y:=P20.trans.y-30;P10.trans.z:=P20.trans.z+60;P10.rot:=P20.rot;P10.robconf:=P20.Robconf;進(jìn)行賦值后P10變?yōu)椋篜10:=[[130,-30,60],[0,0,1,0],[1,0,1,0],[9E9,9E9,9E9,9E9,9E9,9E9]];4.1.4復(fù)雜數(shù)據(jù)4.2任務(wù)實(shí)施——碼垛機(jī)器人編程與仿真4.2.1配置I/O單元及信號(hào)1.配置I/O單元

Name

Network

Address

Board10

DeviceNet

102.配置I/O信號(hào)4.2.1配置I/O單元及信號(hào)NameType

of

SignalAssignedtoDeviceDevice

MappingI/O

信號(hào)注解di01_BoxInPos_RDigital

Inputboard101產(chǎn)品到位信號(hào)di03_PalletPos_RDigital

Inputboard103碼盤到位信號(hào)di07_MotorOnDigital

Inputboard107電動(dòng)機(jī)上電di08_StartDigital

Inputboard108程序開始di09_StopDigital

Inputboard109程序停止di10_StartAtMainDigital

Inputboard1010從主程序開始di11_EstopResetDigital

Inputboard1011急停復(fù)位2.配置I/O信號(hào)4.2.1配置I/O單元及信號(hào)NameType

of

SignalAssignedtoDeviceDevice

MappingI/O

信號(hào)注解do00_ClampActDigital

Outputboard100控制夾板do01_HooKActDigital

Outputboard101控制鉤爪do03_PalletFull_RDigital

Outputboard102碼盤滿載信號(hào)do05_AutoOnDigital

Outputboard103電機(jī)上電do06_EstopDigitalOutputboard104急停狀態(tài)do07_CycleOnDigitalOutputboard105運(yùn)行狀態(tài)do08_ErrorDigitalOutputboard106程序報(bào)錯(cuò)3.配置系統(tǒng)輸入與輸出4.2.1配置I/O單元及信號(hào)TypeSignalNameActionArgumen1注釋SystemInputdi07_MotorOnMotorOn無(wú)電動(dòng)機(jī)上電SystemInputdi08_StartStartContinuous程序啟動(dòng)SystemInputdi09_StopStop無(wú)程序停止SystemInputdi10_StartAtMainStartAtMainContinuous從主程序啟動(dòng)SystemInputdi11_EstopResetReset

Emergencystop無(wú)急停狀態(tài)恢復(fù)SystemOutputdo05_AutoOnAutoOn無(wú)電動(dòng)機(jī)上電狀態(tài)SystemOutputdo06_EstopEmergencystop無(wú)急停狀態(tài)SystemOutputdo07_CycleOnCycleOn無(wú)程序正在運(yùn)行SystemOutputdo08_ErrorExecutionErrorT_ROB1程序報(bào)錯(cuò)4.2.2創(chuàng)建工具數(shù)據(jù)參數(shù)名稱參數(shù)值robotholdTRUEtransX0Y0Z527rotq11q20q30q40mass20cogX0Y0Z150其余參數(shù)均為默認(rèn)值4.2.3創(chuàng)建工件坐標(biāo)系4.2.4創(chuàng)建載荷數(shù)據(jù)參數(shù)名稱參數(shù)值mass20cogX0Y0Z300其余參數(shù)均為默認(rèn)值4.2.5程序

在任務(wù)工作站中,需要示教的目標(biāo)點(diǎn)有4個(gè),分別是安全點(diǎn)pHome、拾取基準(zhǔn)點(diǎn)pPick_R、放置基準(zhǔn)點(diǎn)pPlaceBase0_R和pPlaceBase90_R,如圖所示。這4個(gè)點(diǎn)的示教均可在手動(dòng)示教目標(biāo)點(diǎn)子程序中完成。4.3知識(shí)拓展在編寫程序的過(guò)程中,有時(shí)候需要調(diào)用大量同種類型、同種用途的數(shù)據(jù),可以用數(shù)組來(lái)存放這些數(shù)據(jù)。例:定義一個(gè)二維數(shù)組PERSnum1{3,4}:=[[1,2,3,4],[2,3,4,5],[3,4,5,6]]!定義二維數(shù)組num1VARnum2:=num1{3,4}!num1中{3,4}的值(即6)被賦值給num24.3.1數(shù)組4.3.1數(shù)組對(duì)于一些常見(jiàn)的碼垛,可以利用數(shù)組來(lái)存放各個(gè)擺放位置數(shù)據(jù),在放置程序中直接調(diào)用該數(shù)據(jù)即可。如圖所示,需要擺放5個(gè)位置,產(chǎn)品尺寸為600mmx400mm。要存儲(chǔ)5個(gè)擺放位置的數(shù)據(jù),需要?jiǎng)?chuàng)建一個(gè){5,4}的數(shù)組。數(shù)組中有5組數(shù)據(jù),對(duì)應(yīng)5個(gè)擺放位置;每組數(shù)據(jù)中有4項(xiàng)數(shù)值,分別對(duì)應(yīng)x、y、z的偏移值及旋轉(zhuǎn)角度。創(chuàng)建數(shù)組后,只需要示教一個(gè)基準(zhǔn)點(diǎn)。

程序?yàn)椋篜ERSnumnPosition{5,4}:=[[0,0,0,0],[600,0,0,0],[-100,500,0,-90],[300,500,0,-90],[700,500,0,-90]];PERSnumnCount:=1;!定義數(shù)字型數(shù)據(jù),用于產(chǎn)品計(jì)數(shù)PROCrPlace()……MoveLRelTool(P1,nPosition{nCount,1},nPosition{nCount,2},nPosition{nCount,3}\Rz:=nPosition{nCount,4}),V1000,fine,tGripper\WobjPallet_R;……ENDPROC

4.3.1數(shù)組4.3.2帶參數(shù)的例行程序當(dāng)幾個(gè)例行程序的執(zhí)行過(guò)程相似,只是起點(diǎn)不同時(shí),可編寫成帶參數(shù)的例行程序,可以實(shí)現(xiàn)常用功能的模塊化,通過(guò)參數(shù)傳遞到例行程序中執(zhí)行,可以簡(jiǎn)化整個(gè)程序并提高編程效率。

例:編制一個(gè)帶參數(shù)的正方形繪制通用程序。程序中需要用到兩個(gè)參數(shù):一個(gè)是正方形的頂點(diǎn),一個(gè)是正方形的邊長(zhǎng)。4.3.2帶參數(shù)的例行程序在調(diào)用此帶帶參數(shù)的例行程序時(shí),需要輸入一個(gè)目標(biāo)點(diǎn)作為正方形的頂點(diǎn),同時(shí)還需要輸入一個(gè)數(shù)字型數(shù)據(jù)作為正方形的邊長(zhǎng)。在程序中,調(diào)用正方形繪制程序,機(jī)器人的運(yùn)行軌跡以P10為起點(diǎn),繪制邊長(zhǎng)為150mm的正方形,如圖所示。4.3.3碼垛節(jié)拍優(yōu)化1.整個(gè)機(jī)器人的碼垛系統(tǒng)布局要合理,使拾取點(diǎn)和放置點(diǎn)盡可能近,優(yōu)化夾具,縮短重量,縮短夾具開合時(shí)間;盡可能縮短機(jī)器人空運(yùn)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論