<製圖 : greatway9999>
備註 : 機器手臂為軟體內截圖

一、情境描述

利用機器手臂將呈現成3*3矩陣排列的方塊移到另一側,一個一個疊起,成柱狀。

整個動作會依序如下 :
  1. 前往指定的原點。
  2. 移動到物品來源位置進行取物。
  3. 移動到工作區域的原點。
  4. 移動到指定的擺放位置完成物品置放。
  5. 再回到物品來源位置進行取物。
  6. 重複步驟4和步驟5直到完成指定的工作次數。
  7. 回到指定的原點。

二、程式筆記

(一)、完整範例程式







;宣告取物位置pint1與置放位置pint2
E6POINT pint1, pint2

;宣告迴圈變數
INT A, B

;夾爪打開
$DO[1] = TRUE

;移到預計工作原點
PTP P0 CONT Vel=100% Acc=50% TOOL[1] BASE[1]

;用迴圈定義取物與置物的重複動作
LOOP
;定義取物位置的動作,從來源右上角依序夾起
;B為Y軸方向迴圈之變數,A為X軸方向迴圈之變數
;物體排列為3*3矩陣,因此範圍設定為0~2。
;HIWIN軟體設計中,for迴圈包含最後終值,異於一般程式。
FOR B=0 TO 2
    FOR A=0 TO 2
        ;取物
        pint2 = P2
        pint2.X = pint2.X + 80*A
        pint2.Y = pint2.Y + 80*B
        pint2.Z = pint2.Z
        LIN pint2 CONT Vel=2000mm/s Acc=50% TOOL[1] BASE[1]
        LIN_REL{Z -150}
        WAIT SEC 0.5
        $DO[1] = FALSE
        WAIT SEC 0.5
        LIN_REL{Z 150}

        ;從目標下方開始疊
        pint1 = P1
        pint1.X = pint1.X 
        pint1.Y = pint1.Y
        pint1.Z = pint1.Z + 120*B + 40*A
        LIN pint1 CONT Vel=2000mm/s Acc=50% TOOL[1] BASE[1]
        LIN_REL{Z -150}
        WAIT SEC 0.5
        $DO[1] = TRUE
        WAIT SEC 0.5
        LIN_REL{Z 150}

    ENDFOR
ENDFOR
;回到工作原點
PTP P0 CONT Vel=100% Acc=50% TOOL[1] BASE[1]

;從目標最上方依序夾起
FOR B=0 TO 2
    FOR A=0 TO 2
       ;從目標下方開始疊
        pint1 = P1
        pint1.X = pint1.X
        pint1.Y = pint1.Y 
        pint1.Z = pint1.Z + 320  - 120*B - 40*A 
        LIN pint1 CONT Vel=2000mm/s Acc=50% TOOL[1] BASE[1]
        LIN_REL{Z -150}
        WAIT SEC 0.5
        $DO[1] = FALSE
        WAIT SEC 0.5
        LIN_REL{Z 150} 

          pint2 = P2
        pint2.X = pint2.X + 160 - 80*A
        pint2.Y = pint2.Y + 160 - 80*B
        pint2.Z = pint2.Z
        LIN pint2 CONT Vel=2000mm/s Acc=50% TOOL[1] BASE[1]
        LIN_REL{Z -150}
        WAIT SEC 0.5
        $DO[1] = TRUE
        WAIT SEC 0.5
        LIN_REL{Z 150}        

    ENDFOR
ENDFOR

PTP P0 CONT Vel=100% Acc=50% TOOL[1] BASE[1]
ENDLOOP



0 留言