一、情境描述

模擬讓機器手臂取物,並在平面上依照 3*3 的矩陣位置,放置物品。

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

二、程式筆記

(一)、完整範例程式



(二)、程式解說

1.宣告 pint 變數,作為描述各軸角度或坐標,來描述位置。

>> E6POINT pint

2.宣告 3 個整數變數作為動作迴圈使用

>>INT A,B,C

3.宣告編號為1的數位輸出,值為 "True"。以夾爪為例,表示張開。

>>$DO[1] = TRUE

4.進行點到點的運動到P0 (自己預設的原點)

>>PTP P0 CONT Vel=100% Acc=50% TOOL[0] BASE[0]

Vel : 速度,若用於PTP運動,表示法為可移動最大速度之百分比。
Acc : 加速度,若用於LIN、CIRC運動,表示法為mm/s。

5.迴圈設定

C迴圈表示以高度的順序排列。
B迴圈表示以行的順序排列。
A迴圈表示以列的順序排列。

6.取物動作描述

移到物品來源所在之位置上方
>>LIN P2 CONT Vel=2000mm/s Acc=50% TOOL[0] BASE[0]

下移 15 公分
>>LIN_REL{Z -150}

夾爪閉合 (夾物)
>>$DO[1] = FALSE

等待0.5秒
>>WAIT SEC 0.5

上移15公分回到原來位置
>>LIN_REL{Z 150}

7.移動到工作區域

移動到設定的工作點 P1
>>PTP P1 FINE Vel=100% Acc=50% TOOL[0] BASE[0]

將 P1的值存到 變數pint
>> pint = P1

隨著迴圈的不同次數,有序地移動位置。
pint.X=pint.X + 50*A
pint.Y=pint.Y + 50*B
pint.Z=pint.Z + 20*C

8.定義夾爪動作

移到每次要置物的點 (會隨迴圈數字改變,同步更新位置)
>>LIN pint CONT Vel=2000mm/s Acc=50% TOOL[0] BASE[0]

夾爪向下移動15公分
>>LIN_REL{Z -150}

夾爪張開 (釋放物體)
>> $DO[1] = TRUE

等待0.5秒
>>WAIT SEC 0.5

上移15公分回到原來位置
>>LIN_REL{Z 150}



---
參考資料 :


0 留言