Machine ARM
[機器手臂程式設計實作] 將方塊從 3*3 矩陣排列之形狀,排成柱狀
<製圖 : greatway9999>
備註 : 機器手臂為軟體內截圖
一、情境描述
利用機器手臂將呈現成3*3矩陣排列的方塊移到另一側,一個一個疊起,成柱狀。
整個動作會依序如下 :
- 前往指定的原點。
- 移動到物品來源位置進行取物。
- 移動到工作區域的原點。
- 移動到指定的擺放位置完成物品置放。
- 再回到物品來源位置進行取物。
- 重複步驟4和步驟5直到完成指定的工作次數。
- 回到指定的原點。
二、程式筆記
(一)、完整範例程式
;宣告取物位置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 留言