王麗君 陳羅鳳 重慶市農業機械化學校
ABB 工業機器人應用程序是用 RAPID 編程語言的特定詞匯和語法編寫而成的。它所包含的指令可以移動機器人、設置輸出、讀取輸入,實現決策、重復其他指令,構造程序與系統操作員實現人機交流等功能。本文運用數組來實現碼垛編程的簡便化。
ABB 機器人從傳送帶上取來產品,以 2×2 陣列,碼放到固定工作平臺。產品長寬高為220×100×60 mm,間隙20mm,如圖1 所示。
目前大部分碼垛程序是按照這樣來分析的,第一,在解決任何一個碼垛問題的時候一定要有效地對物體的抓取點和位置點全面進行計算。第二點,在計算的過程中尤其需要找到每個步驟之間循環的關系和內部的規律。計算涉及到XYZ 三個方向,夾具的旋轉方向,同層間的間距,上下層的間距,放置物體的次數,同層中某個方向的移動次數,層數多少等,并需要對其建立計算公式,很容易出錯和不好理解。

從圖1 中可以看出,從下層到上層按照順序碼上產品,吸取點位置是產品上表面中心,而放置點的擺放位置是實時發生變化。因此在編寫本案例程序時,關鍵就是機器人運動至放置點的位置的計算。
如圖1,四個產品的放置點需要計算。以第1 個產品的放置點進行示教作為放置基準點(placebase),由于產品搬運過程中有旋轉動作,所以選擇RelTool 偏移指令,利用對placebase 的偏移來確定第2 個、第3 個、第4 個產品的放置點。偏移參數有X、Y、Z 方向的值和旋轉的角度值R,故定義數組的數據類型為num(數字型數據),數組名為placeN,變量,維度二維,陣列{4,4}。利用ABB Robot Studio軟件的測量工具,測量n-1 個產品相對于第1 個產品(placebase)的距離,測量方式通過菜單建模-測量-點到點,捕捉方式為面捕捉和捕捉中心,可得到X、Y、Z 偏移的距離值。要注意的是:測量工具得到的測量值是相對于大地坐標系各軸向給出的,而RelTool 偏移XYZ 方向的距離值是相對于工具坐標系下給出的,工具坐標系XY與大地坐標系XY反向,Z 同向。這里分別測得第2、3、4 個產品在X、Y、Z 方向上相對于第1 個產品的距離,將數值分別填寫在數組元素上。
Var num placeN{4,4}:={[0,0, 0, 90] 第一個位置偏移數據X0,Y0,Z0,R90
[0,120,0, 90] 第二個位置偏移數據X0,Y120,Z0,R90
[60,60,-60, 0] 第三個位置偏移數據X60,Y60,Z-60,R0
[-60,60,-60, 0]} 第四個位置偏移數據X-60,Y60,Z-60,R0
第1、2、3、4 個產品位置計算的編程如下:
Place:=RelTool(placebase,placeN{n,1},placeN{n,2},placeN{n,3}Rz:= placeN{n,4})
其中的n 為變量,代表第幾個產品。
PROC rMADUO !碼垛程序
……
n:=1;!計數復位,從第1 個產品開始處理
WHILE n<5 DO
rPICK;!調用拾取產品程序
rPLACE;!調用放置產品程序
n:= n+1;!計數累計加1
WaitTime 0.5;
ENDWHILE
……
ENDPROC
PROC rPLACE!放置程序
Place:=RelTool(placebase,placeN{n,1},placeN{n,2},placeN{n,3} Rz:= placeN{n,4});
!計算第n 次的放置位置
MoveJ offs (place,0,0,120)V300 Z100 ToolxfWObj:=Workobject_MD ;
!利用MoveJ 運動至第n 次放置位置的正上方
MoveL place V100 Zfine ToolxfWObj:=Workobject_MD;
!利用MoveL 運動至第n 次放置后的位置
……
ENDPROC
若需要碼垛更多的產品 ,只需要修改數組的陣列值即可,當碼垛的位置發生改變時,只需要重新示教placebase,程序無需改變。
該編程數值獲得充分利用Robot Studio 軟件,利用數組編寫程序,簡潔、清晰,可讀性強,減輕了編程難度,可迅速完成工業機器人碼垛編程。