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