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

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

      時間:2021-06-16 16:50 來源:

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

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

      例1:現(xiàn)有如圖10-20所示的軌跡,請編寫程序,使得程序運行時TCP沿該軌跡運動,要求只能示教一個目標點。
          
                              圖10-20                                                         圖10-21



      解:經(jīng)過對圖10-20中的圖形進行簡單的分析,可發(fā)現(xiàn),如果對圖10-21中的P1~P15這15個目標點進行示教,即可以用MOVEJ、MOVEC等指令再現(xiàn)軌跡。因為題目中要求只允許示教1個目標點,所以我們還需要通過一個點搭配對應(yīng)的偏移值,將其余各點表示出來。經(jīng)過觀察,我們發(fā)現(xiàn)P1點搭配對應(yīng)的偏移值,能夠很方便的將其他點表示出來。因此我們可以用下面給出的程序(已省略程序數(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是圓的象限點,圓的半徑R=50mm,請閱讀下面一段程序(已省略聲明語句中數(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)只有一個for循環(huán)體,循環(huán)體內(nèi)的三條運動指令可以再現(xiàn)一個圓形。點P1、P2、P3、P4所在的圓半徑R=50,因此第一條圓弧指令中的P4點的Y方向偏移量(1-cos(engle))可以視作,圓沿直徑P1P3旋轉(zhuǎn)一定度數(shù)后,P4點旋轉(zhuǎn)前后的Y坐標數(shù)據(jù)的差值。sin(engle)可視作,P4點旋轉(zhuǎn)前后的Z軸坐標數(shù)據(jù)差值。而第二條圓弧運動指令中的-50*(1-cos(engle)))和-50*Sin(engle)則是P2點旋轉(zhuǎn)前后在Y軸、Z軸方向的坐標數(shù)據(jù)差值,示意圖見圖10-23。θ角以9度為增量,由0度增加到180度,因此上述程序執(zhí)行效果,相當于圓P1P2P3P4繞直徑P1P3旋轉(zhuǎn)9*N度,程序運行結(jié)束后機器人TCP經(jīng)過的軌跡為圖10-24所示的球體。
       
      圖10-23   
       
      圖10-24



      例3:假設(shè)機器人當前處于靜止狀態(tài),請編寫一個RAPID程序,用以判斷機器人tool0的TCP當前位置的在基坐標系下的Z軸坐標值是否大于500,如果TCP當前位置高度大于500,由當前位置線性運動到P1點,然后由P1點線性運動到Phome點。如果TCP當前位置高度不大于500,則由當前位置直接關(guān)節(jié)運動至Phome點。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:九宮格工件搬運編程練習,如圖10-25所示 ,工件會在A位置處源源不斷產(chǎn)生,請編寫程序?qū)位置處的工件拾取放置到B處的料盤內(nèi),直到將料盤的九個位置放滿。要求所編寫的程序最多示教兩個robtarget位置點。料盤格子的間隔尺寸如圖10-26所示。
                 
      圖10-25     
       
                                                                                               
      圖10-26


      解:題目要求只能示教兩個點位,料盤的尺寸間隔又是有規(guī)可尋的,因此可以考慮使用offs功能程序進行編程。
      (1)以料盤的右上角端點為原點,以長邊為X軸,以短邊為Y軸,定義工件坐標系wobj1;
      (2)示教拾取A位置工件的點為p_pick,將夾起的工件正確放置到料盤右上角格子的位置示教為p_place;
      (3)配置do信號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
       

      本例題有配套的虛擬工作站打包文件,請在提供的虛擬工作站,完成本例題的編程任務(wù)。本例還可以利用其它指令和循環(huán)結(jié)構(gòu)體來完成,工業(yè)機器人培訓專家請大家舉一反三,嘗試利用多種方法來完成本例題的編程任務(wù),然后比較哪一種方法最簡潔。



      日本精品高清一二区一本到,国产精品思思五月婷高清在线,最新日韩精品中文字幕,免费AⅤ大片在线观看 国内精品久久人妻白浆 午夜宅男永久免费观看无码