robtarget型的內置功能程序:Offs和CRobt
時間:2021-06-11 16:53
來源:
Offs功能程序的編程應用
Offs是一個robtarget型的內置功能程序,其作用是對一個robtarget型的機器人位置數據進行偏移,并返回偏移后的robtarget型數據值。offs的語法格式為:Offs (Point ,XOffset ,YOffset ,ZOffset)
point:偏移基準點,robtarget型數據;
XOffset:工件坐標系中X方向的位移,num型數據;
YOffset:工件坐標系中Y方向的位移,num型數據;
ZOffset:工件坐標系中Z方向的位移,num型數據;
智通工業機器人培訓專家下面以一些示例來介紹offs功能程序。
例1:MoveL Offs(p10,0,0,50), v1000, fine, tool0WObj:=wobj1;
在工件坐標系wobj1下,將機械人tool0的TCP移動至p10點往Z軸方向偏移50mm的位置處。
例2:p20 := Offs(p10,50,0,0);
將P10往X軸方向偏移50mm后的位置數據值賦給p20。
Offs是一個非常實用的功能程序,合理使用Offs,能夠大大減少一個程序中需要示教的點位。例如,在圖10-8中,目標點p1、p2、p3、p4是矩形的四個頂點,相對位置關系固定,現需要編寫程序使tool1的TCP沿圖中的矩形軌跡運動。下文的程序1和程序2都能夠完成任務要求,但程序1需要示教4個目標點,程序2由于使用了offs功能程序僅
需要示教1個目標點。

圖10-8
程序1:
MoveL p1, v1000, fine, tool1WObj:=wobj1;
MoveL p2, v1000, fine, tool1WObj:=wobj1;
MoveL p3, v1000, fine, tool1WObj:=wobj1;
MoveL p4, v1000, fine, tool1WObj:=wobj1;
MoveL p1, v1000, fine, tool1WObj:=wobj1;
程序2:
MoveL p1, v1000, fine, tool1WObj:=wobj1;
MoveL Offs(p1,200,0,0), v1000, fine, tool1WObj:=wobj1;
MoveL Offs(p1,200,160,0), v1000, fine, tool1WObj:=wobj1;
MoveL Offs(p1,0,160,0), v1000, fine, tool1WObj:=wobj1;
MoveL p1, v1000, fine, tool1WObj:=wobj1;
CRobt功能程序的編程應用
CRobt是一個robtarget型的內置功能程序,其作用是讀取機器人當前的位置數據,并返回一個robtarget型數據值,包含機器人當前TCP的X、Y、Z值,姿態q1~q4,軸配置等數據。CRobt的語法格式為:CRobT ([Tool] [WObj])
[Tool]:指定用于計算的工具,tooldata型數據,如果不指定則使用當前工具;
[WObj]:指定用于計算的工件坐標系,wobjdata型數據,如果不指定則使用當前工件坐標系;
對于多任務的控制系統,還有用于指定讀取機器人位置數據的任務的可選變量[TaskRef]、[TaskName],在此不再介紹。下面以一些示例來介紹CRobt功能程序。
例1:VAR robtarget p1;
MoveL *, v500, fine, tool1;
p1 := CRobT(Tool:=tool1 WObj:=wobj0);
讀取機器人當前的位置數據,并存儲于p1中,tool1、wobj0用于計算位置。需要注意的是為保證讀取數據的準確性,讀取機器人位置前機器人應是靜止的,所以前一條運動指令應當使用轉彎半徑Fine。
例2:MoveL *, v500, Fine, tool1;
MoveL Offs(CRobT(),0,0,50), v1000, Fine, tool0;
從當前位置*處,往坐標系的的Z軸方向,線性偏移50mm,使用當前激活的工具和工件坐標進行位置計算。
創建用戶自定義功能程序
ABB機器人控制系統內置的功能程序非常多,對于其他內置功能程序東莞工業機器人培訓老師就不再給大家逐一介紹,想了解其他內置功能程序的作用與用法,請查閱ABB官方提供的技術參考手冊《RAPID指令、函數和數據類型》。除了系統內置的功能程序外,用戶還可以自行聲明、編寫功能程序。下文展示了一個用戶自定義的功能程序,程序的作用是比較兩個num型數據的大小,并返回數值較大的那個程序數據,若兩數相等則返回0。
FUNC num which_bigger(INOUT num num1,INOUT num num2)
IF num1 > num2 THEN
RETURN num1;
ELSEIF num2 > num1 THEN
RETURN num2;
ELSE
RETURN 0;
ENDIF
ENDFUNC
東莞工業機器人培訓專家在下面以聲明上述用戶自定義功能程序which_bigger為例,講解在程序編輯器界面如何聲明用戶自定義功能程序。聲明的步驟是:1單擊【例行程序】—2單擊【文件】—3單擊【新建例行程序】—4輸入名稱“which_bigger”—5類型選擇為“功能”—6單擊參數后面的“...”—7單擊【添加】—8單擊【添加參數】—9輸入參數名“num1” —10單擊【確定】—11參數數據類型設定為num—12參數模式設定為輸入輸出(Inout)—13單擊【添加】—14單擊【添加參數】—15輸入參數名“num2” —16單擊【確定】—17參數數據類型設定為num—18參數模式設定為Inout—19單擊【確定】—20單擊【確定】。詳細的操作步驟圖示見圖10-9~圖10-19:


圖10-9 圖10-10


圖10-11 圖10-12


圖10-13 圖10-14


圖10-15 圖10-16


圖10-17 圖10-18

圖10-19
完成功能程序的聲明后,就可以對功能程序進行編寫,操作方法與例行程序的操作方法相同。完成功能程序的編寫,就可以調用自定義的功能程序,調用方法與內置功能程序的調用方法相同。