欧美一级aa视频看片_国产H精品在线观看_国内外中文字幕无码视频_极品国产AV网站

報(bào)名人數(shù)298782
資訊中心 > 課程相關(guān)資訊 > 機(jī)器人培訓(xùn) > 機(jī)器人培訓(xùn) >?東莞工業(yè)機(jī)器人培訓(xùn)專家為你講解功能程序的編程應(yīng)用示例

東莞工業(yè)機(jī)器人培訓(xùn)專家為你講解功能程序的編程應(yīng)用示例

時(shí)間:2021-06-16 16:50 來源:

功能程序編程應(yīng)用示例

為了鞏固大家對(duì)功能程序的理解,下面工業(yè)機(jī)器人培訓(xùn)專家給出一些功能程序的編程應(yīng)用示例。期望大家能夠通過這些示例,熟練掌握系統(tǒng)內(nèi)置功能程序和自定義功能程序的編程應(yīng)用。
 

例1:現(xiàn)有如圖10-20所示的軌跡,請(qǐng)編寫程序,使得程序運(yùn)行時(shí)TCP沿該軌跡運(yùn)動(dòng),要求只能示教一個(gè)目標(biāo)點(diǎn)。
    
                        圖10-20                                                         圖10-21



解:經(jīng)過對(duì)圖10-20中的圖形進(jìn)行簡(jiǎn)單的分析,可發(fā)現(xiàn),如果對(duì)圖10-21中的P1~P15這15個(gè)目標(biāo)點(diǎn)進(jìn)行示教,即可以用MOVEJ、MOVEC等指令再現(xiàn)軌跡。因?yàn)轭}目中要求只允許示教1個(gè)目標(biāo)點(diǎn),所以我們還需要通過一個(gè)點(diǎn)搭配對(duì)應(yīng)的偏移值,將其余各點(diǎn)表示出來。經(jīng)過觀察,我們發(fā)現(xiàn)P1點(diǎn)搭配對(duì)應(yīng)的偏移值,能夠很方便的將其他點(diǎn)表示出來。因此我們可以用下面給出的程序(已省略程序數(shù)據(jù)聲明語句),完成例1的編程任務(wù)。
   
PROC main()
P2:=offs(p1,0,50,0);
P3:=offs(p1,50,0,0);
P4:=offs(p1,50,50,0);
P5:=offs(p1,50,0,0);
P6:=offs(p1,25,25,0);
P7:=offs(p1,-25,-25,0);
P8:=offs(p1,0,50,0);
P9:=offs(p1,0,50,0);
P10:=offs(p1,0,50,0);
P11:=offs(p1,0,50,0);
P12:=offs(p1,0,50,0);
P13:=offs(p1,0,50,0);
P14:=offs(p1,0,50,0);
P15:=offs(p1,0,50,0);
MoveJ offs(p2,0,0,20),v400,fine,mytoolWObj:=wobj1;
Movej p2,v400,fine,mytoolWObj:=wobj1;
MoveC p3,p4,v400,fine,mytoolWObj:=wobj1;
MoveC p5,p2,v400,fine,mytoolWObj:=wobj1;
MoveC p6,p1,v400,fine,mytoolWObj:=wobj1;
MoveC p7,p4,v400,fine,mytoolWObj:=wobj1;
MoveJ offs(p8,0,0,20),v400,fine,mytoolWObj:=wobj1;
MoveJ p8,v400,fine,mytoolWObj:=wobj1;
MoveC p9,p10,v400,fine,mytoolWObj:=wobj1;
MoveC p11,p8,v400,fine,mytoolWObj:=wobj1;
MoveJ offs(p12,0,0,20),v400,fine,mytoolWObj:=wobj1;
MoveJ p12,v400,fine,mytoolWObj:=wobj1;
MoveC p13,p14,v400,fine,mytoolWObj:=wobj1;
MoveC p15,p12,v400,fine,mytoolWObj:=wobj1;
MoveJ offs(p12,0,0,20),v400,fine,mytoolWObj:=wobj1;
ENDPROC
 
例2:如圖10-22所示,P1~P4是圓的象限點(diǎn),圓的半徑R=50mm,請(qǐng)閱讀下面一段程序(已省略聲明語句中數(shù)據(jù)的初值),然后判斷程序執(zhí)行后完后,TCP經(jīng)過的軌跡是怎樣的。

                         圖10-22 

PERS robtarget p3:=[......];
PERS robtarget p4:= [......];
PERS robtarget p1:=[ [......];
PERS robtarget p2:= [......];
PROC main()
FOR engle FROM 0 TO 180 STEP 9 DO
  MoveJ p3,v400,fine,MyTool;
MoveC Offs(p4,0,50*(1-Cos(engle)),50*sin(engle)),p1,v400,fine,MyTool;
  MoveC Offs(p2,0,-50*(1-Cos(engle)),-50*Sin(engle)),p3,v400,fine,MyTool;
ENDFOR
ENDPROC
 
解:main程序內(nèi)只有一個(gè)for循環(huán)體,循環(huán)體內(nèi)的三條運(yùn)動(dòng)指令可以再現(xiàn)一個(gè)圓形。點(diǎn)P1、P2、P3、P4所在的圓半徑R=50,因此第一條圓弧指令中的P4點(diǎn)的Y方向偏移量(1-cos(engle))可以視作,圓沿直徑P1P3旋轉(zhuǎn)一定度數(shù)后,P4點(diǎn)旋轉(zhuǎn)前后的Y坐標(biāo)數(shù)據(jù)的差值。sin(engle)可視作,P4點(diǎn)旋轉(zhuǎn)前后的Z軸坐標(biāo)數(shù)據(jù)差值。而第二條圓弧運(yùn)動(dòng)指令中的-50*(1-cos(engle)))和-50*Sin(engle)則是P2點(diǎn)旋轉(zhuǎn)前后在Y軸、Z軸方向的坐標(biāo)數(shù)據(jù)差值,示意圖見圖10-23。θ角以9度為增量,由0度增加到180度,因此上述程序執(zhí)行效果,相當(dāng)于圓P1P2P3P4繞直徑P1P3旋轉(zhuǎn)9*N度,程序運(yùn)行結(jié)束后機(jī)器人TCP經(jīng)過的軌跡為圖10-24所示的球體。
 
圖10-23   
 
圖10-24



例3:假設(shè)機(jī)器人當(dāng)前處于靜止?fàn)顟B(tài),請(qǐng)編寫一個(gè)RAPID程序,用以判斷機(jī)器人tool0的TCP當(dāng)前位置的在基坐標(biāo)系下的Z軸坐標(biāo)值是否大于500,如果TCP當(dāng)前位置高度大于500,由當(dāng)前位置線性運(yùn)動(dòng)到P1點(diǎn),然后由P1點(diǎn)線性運(yùn)動(dòng)到Phome點(diǎn)。如果TCP當(dāng)前位置高度不大于500,則由當(dāng)前位置直接關(guān)節(jié)運(yùn)動(dòng)至Phome點(diǎn)。P1、Phome是已聲明并正確示教的robtarget位置數(shù)據(jù)。
 
解:程序如下:
PROC main()
p_tcp := CRobT();
IF p_tcp.trans.z > 500 THEN
MoveL p1, v1000, fine, tool0;
MoveL Phome, v1000, fine, tool0;
ELSEIF p_tcp.trans.z <= 500 THEN
MoveJ Phome, v1000, fine, tool0;
ENDIF
ENDPROC

例4:九宮格工件搬運(yùn)編程練習(xí),如圖10-25所示 ,工件會(huì)在A位置處源源不斷產(chǎn)生,請(qǐng)編寫程序?qū)位置處的工件拾取放置到B處的料盤內(nèi),直到將料盤的九個(gè)位置放滿。要求所編寫的程序最多示教兩個(gè)robtarget位置點(diǎn)。料盤格子的間隔尺寸如圖10-26所示。
           
圖10-25     
 
                                                                                         
圖10-26


解:題目要求只能示教兩個(gè)點(diǎn)位,料盤的尺寸間隔又是有規(guī)可尋的,因此可以考慮使用offs功能程序進(jìn)行編程。
(1)以料盤的右上角端點(diǎn)為原點(diǎn),以長(zhǎng)邊為X軸,以短邊為Y軸,定義工件坐標(biāo)系wobj1;
(2)示教拾取A位置工件的點(diǎn)為p_pick,將夾起的工件正確放置到料盤右上角格子的位置示教為p_place;
(3)配置do信號(hào)DO_1Gripper用于控制夾爪;
(4)編寫如下程序用以完成編程任務(wù):
PROC main()
PulseDOPLength:=0.2,DO_1Gripper;
WHILE reg_H*reg_L<6 DO
Incr CNT;
IF reg_L<3 THEN
IF reg_H<3 THEN
MoveJ Offs(p_take,0,0,100),v1000,z20,tool0WObj:=wobj1;
MoveL p_take,v200,fine,tool0WObj:=wobj1;
Set DO_1Gripper;
WaitTime 0.2;
MoveL Offs(p_take,0,0,100),v1000,z20,tool0WObj:=wobj1;
MoveJ Offs(p_put,reg_H*100,reg_L*70,100),v1000,z20,tool0WObj:=wobj1;
MoveL Offs(p_put,reg_H*100,reg_L*70,0),v200,fine,tool0WObj:=wobj1;
Reset DO_1Gripper;
WaitTime 0.5;
MoveL Offs(p_put,reg_H*100,reg_L*70,100),v1000,z20,tool0WObj:=wobj1;
reg_H:=reg_H+1;
ELSE
reg_H:=0;
reg_L:=reg_L+1;
ENDIF
ELSE
reg_H:=0;
reg_L:=0;
ENDIF
ENDWHILE
ENDPROC
 

本例題有配套的虛擬工作站打包文件,請(qǐng)?jiān)谔峁┑奶摂M工作站,完成本例題的編程任務(wù)。本例還可以利用其它指令和循環(huán)結(jié)構(gòu)體來完成,工業(yè)機(jī)器人培訓(xùn)專家請(qǐng)大家舉一反三,嘗試?yán)枚喾N方法來完成本例題的編程任務(wù),然后比較哪一種方法最簡(jiǎn)潔。