下列舉例程序PTP_AXIS.SRC說明一個可運行的最小的KRL程序。?
DEFPTP_AXIS( )? ? ? ?;程序名是PTP_AXIS?
$VEL_AXIS[1]=100? ? ? ;定義軸速度?
$VEL_AXIS[2]=100?
$VEL_AXIS[3]=100?
$VEL_AXIS[4]=100?
$VEL_AXIS[5]=100?
$VEL_AXIS[6]=100?
$ACC_AXIS[1]=100? ? ? ;定義軸加速度?
$ACC_AXIS[2]=100?
$ACC_AXIS[3]=100?
$ACC_AXIS[4]=100?
$ACC_AXIS[5]=100?
$ACC_AXIS[6]=100?
PTP{AXIS:A10,A2 ?–90,A3 ?90,A4 ?0,A5 ?0,A6 ?0}?
END?
該程序中首先定義軸的速度和加速度。必須在執(zhí)行點到點運動前分配這些值。?
然后,機器人將各軸移動到AXIS指令指定的角度位置,例如軸1到0,軸2到-90,軸3到90,軸4到0,軸5到0,軸6到0。
機械零點 :?
當輸入軸坐標時如果忽略了某個,機器人僅移動指定了的軸,其它軸不改變位置。使用?
PTP{A3? 45}?
今軸3被移動到45
0
。請注意PTP指令中定義的角度值是絕對值。因此機器人并不是旋轉(zhuǎn)45度,而是旋轉(zhuǎn)到45度。?
相對運動,使用指令PTP REL。例如要旋轉(zhuǎn)軸1和4都是35度,簡單編程如下:?
PTP? REL? {A1? 35,A4? 35}?
絕對和相對軸指定坐標系的區(qū)別?
注意,使用相對運動,則在執(zhí)行期間被停止的運動不易再重新開始。重新啟動或重新選擇行或改變程序運行模式后,控制器不能記住已經(jīng)移動了的距離,只能再以編程的全部相對距離移動,最終會導(dǎo)致不正確的終點。?
使用與軸相關(guān)的坐標系的運動通常是不切實際的,人工編程師在笛卡兒坐標系中思考和工作。因此,更有用的是通過POS結(jié)構(gòu)在笛卡兒坐標系中輸入值,如同下面的舉例:?
DEF PTP_POS( )?
$BASE=$WORLD ?? ? ;設(shè)置基本坐標系?
$TOOL=$NULLFRAME ?;設(shè)置工具坐標系?
$VEL_AXIS[1]=100? ? ? ;定義軸速度?
$VEL_AXIS[2]=100?
$VEL_AXIS[3]=100?
$VEL_AXIS[4]=100?
$VEL_AXIS[5]=100?
$VEL_AXIS[6]=100?
$ACC_AXIS[1]=100? ? ? ;定義軸加速度?
$ACC_AXIS[2]=100?
$ACC_AXIS[3]=100?
$ACC_AXIS[4]=100?
$ACC_AXIS[5]=100?
$ACC_AXIS[6]=100?
PTP{POS:X 1025,Y 0,Z 1480,A 0,B 90,C 0,S ’B010’,T ’B000010’}?
END?
現(xiàn)在注意,當在笛卡兒坐標系中輸入終點時,必須定義輸入值在基坐標系和工具坐標系中的速度和加速度。?
在我們的例子中,設(shè)置基本坐標系($BASE)與全局坐標系($WORLD)相同,標準位于機器人的底部($ROBROOT)。分配工具坐標系($TOOL)為空框架($NULLFRAME={FRAME:X0,Y0,Z0,A0,B0,C0}),意思是所有的輸入值對應(yīng)法蘭盤的中心點。工具中心點(TCP)可以說也是位于法蘭盤的中心點。如果一個工具安裝在法蘭盤上,則必須修改值。?
上面的PTP指令移動機器人到運動的終點,TCP被移動機器人基坐標系的X方向1025mm,Y方向0mm和Z方向1480mm 。輸入值A(chǔ)、B和C定義的TCP的方位。狀態(tài)S和轉(zhuǎn)動T定義的軸的位置?
用KR6機器人測試這個舉例程序會產(chǎn)生與前面例子相同的結(jié)果。機器人運動到機械零點。對于這種模式的機器人兩種指令是一樣的。?
當使用笛卡兒坐標系輸入終點時,也可能省略幾何說明的個別成分,指令如下:?
PTP{Z 1300,B 180}?
Z方向移動TCP到絕對位置1300mm且“傾斜”TCP180。?
也可使用機器人的相對移動命令PTP_REL。使用?
PTP_REL{Z 180,B -90}?
機器人可返回到它的原點位置,切記相對運動,一旦中斷就再不能被選擇。
絕對和相對笛卡兒坐標系之間的差別??
笛卡兒坐標系中使用幾何操作可以直接在運動命令中進行框架聯(lián)接,這種方法,例如可
以不修改系統(tǒng)變量$BASE而初始化與基本坐標系的偏置。?
而且,通過冒號操作指定一個基本偏置比重新定義$BASE更有優(yōu)勢:?
運動指令中出現(xiàn)偏置操作,則必須在運動指令前設(shè)置$BASE。以該方法,即使停止了程
序后選擇后續(xù)的程序段,運動總是選擇了正確的基本坐標系。?
重復(fù)修改$BASE,如下順序所示,?
…?
$BASE=$WORLD?
…?
PTP POS_1?
$BASE={X 100,Y –200,Z 1000,A 0,B 180,C 45}?
PTP POS_2?
…?
另一方面,取消POS_2運動指令,重新選擇POS_1指令會導(dǎo)致不正確的終點,因為POS_1運動指令也和新的基本坐標系有關(guān),順便提及,這種情況的發(fā)生是在第一個運動指令被停止且設(shè)置了對應(yīng)的計算機提前運行。?
因此,$BASE和$TOOL僅可以被設(shè)置一次,例如,在程序的初始化部分。然后可以使用幾何操作進行后續(xù)的偏置。?
當作為標準的基本包提供了示教點時,各點的$BASE和$TOOL自動被存儲在數(shù)據(jù)表中。?
在下面的例子中,終點坐標被移位到X方向300mm 、Y方向-100mm ,在第二個PTP命令中繞Z軸旋轉(zhuǎn)90
0
。??
DEF FR_VERS( )?
;-------聲明部分-------?
EXT BAS (BAS_COMMAND:IN,REAL:IN)?
DECL AXIS HOME? ? ?;變量HOME的類型是AXIS?
DECL FRAME BASE1? ? ? ;變量BASE1的類型是FRAME?
;----------初始化---------?
BAS(#INITMOV,0)? ? ? ;初始化速度?
;加速度,$BASE,$TOOL,etc.?
HOME={AXIS:A1 0,A2 -90,A3 90,A4 0,A5 0,A6 0}?
BASE1={FRAME:X 300,Y -100,Z 0,A 90,B 0,C 0}?
;-----------主程序部分---------?
PTP HOME;BCO運行?
;$BASE坐標系中的運動?
PTP{POS:X 540,Y 630,Z 1500,A 0,B 90,C 0,S 2,T 35}?
;$BASE-CS中偏置BASE1的運動?
PTP BASE1:{POS:X 540,Y 630,Z 1500,A 0,B 90,C 0,S 2,T 35}?
PTP? HOME?
END?
在這個例子中,速度和加速度及$BASE和$TOOL坐標系的分配不是“手動”進行,而時
由標準基本軟件包中的“BAS.SRC”來完成,要這樣做,必須首先使用EXT指令使程序認識。?
初始化命令?
BAS(#INITMOV,0)?
然后分配缺省值給所有重要的系統(tǒng)變量。?
程序被執(zhí)行前,必須確定程序段一致性(BCO),也就是說,在當前機器人位置和編程位置之間必須一致。因為BCO運行不是一個編程完了,測試了的運動。所以必須按下并保持啟動鍵(“dead man” function),以降低的速度自動執(zhí)行。當機器人到達編程軌跡時,運動停止,可通過再按啟動鍵繼續(xù)執(zhí)行程序。?
在“自動外部”模式不執(zhí)行BCO運行! “??
明智的做法是編程一個“Home”作為第一個運動指令;移動機器人到一個明確定義的位置,這樣就確立了程序段一致性。機器人在程序的結(jié)束應(yīng)返回該位置。
POS定義中的“S”和“T”用于選擇一個特定的, 明確定義的空間中需要許多軸定位的同一個點的機器人位置(由于運動學(xué)的特性)。?
使用笛卡兒坐標系時,在第一個運動指令中編程“Status”和“Turn”來定義一個明確的初始化位置是非常重要的。因為在連續(xù)軌跡運動中不考慮“S”和“T”(見3.3),程序的第一個運動指令必須總是一個定義了狀態(tài)和轉(zhuǎn)的完整的PTP指令(或一個完整的使用軸坐標系的PTP指令)。?
在后續(xù)的PTP指令中,只要不需要特定軸定位,例如要要避開障礙時可以省略“S”和“T”,機器人保持最短軸軌跡使用的S和T值,則在第一個PTP指令中編程 “S”和“T”后,每次程序運行時,機器人的軌跡都相同。?
狀態(tài)和轉(zhuǎn)要求是整數(shù)值、二進制形式
屬性包含“Turn”屬性的擴展笛卡兒位置,可以在不需要特殊移動策略(例如輔助點)時,軸的移動角度大于+180或小于-180。對于旋轉(zhuǎn)軸,軸值前面的各位決定符號,
如下:?
位x=0:軸的角度 ≥0
位x=1:軸的角度<0?
值T‘B10011’意思是指軸1、2、5的角度是負值,而軸3、4、6是正值(高位是0可以省略)。?
狀態(tài)S當軸位置不明確時使用(見圖18)。S根據(jù)當前機器人運動系統(tǒng)的不同而不同。?
各位的意義是:?
位0:關(guān)節(jié)根部點的位置(基本/空中區(qū)域)?
位1:臂配置?
位2:關(guān)節(jié)配置?
所有6軸關(guān)節(jié)臂機器人各位的設(shè)置見下表:?
基本/空間區(qū)域可以用笛卡兒術(shù)語形象化表示。可定義下列術(shù)語:?
關(guān)節(jié)根點:關(guān)節(jié)軸的交叉?
A1坐標系:如果軸1在0,與$ROBROOT坐標系一致;如果不等于0,則與軸1一起移動。??
基本/空間區(qū)域可如下定義:?
z? 如果A1坐標系中關(guān)節(jié)根點的X值是正數(shù),機器人在基本區(qū)域。?
z? 如果A1坐標系中關(guān)節(jié)根點的X值是負數(shù),機器人在空間區(qū)域。?
位1定義臂的位置。位的設(shè)置根據(jù)機器人使用的模式的不同而不同。對于軸3和4交叉
的機器人:如果軸3<0,位1的值是0,否則位1的值是1。對于軸3和軸4之間存在偏置的機器人?
根據(jù)偏置的大小,角度會不同,位1值也會改變。
機器人配置中狀態(tài)位的影響見圖20。軸以4個不同的定位方式將機器人移動到空間中同一個點。在第一種配置中,機器人在基本位置;軸5的值約45,軸3約80。?
第二種機器人配置區(qū)別于第一種的是:軸4被旋轉(zhuǎn)180,其它軸重新組合。雖然臂的配置保持完全一致,但是關(guān)節(jié)已經(jīng)改變:軸5現(xiàn)在約是-45,因此狀態(tài)位2為1。 從位置2到位置3,臂的配置改變。軸3旋轉(zhuǎn)到約-50的位置,狀態(tài)位的值為0。 在第四種配置中,機器人最終在空間位置。軸1被旋轉(zhuǎn)180,狀態(tài)為變?yōu)?。?
編輯:黃飛
?
評論
查看更多