淺談發(fā)那科機(jī)器人與TP參數(shù)之間的關(guān)系
對(duì)于發(fā)那科機(jī)器人中的KAREL編程語(yǔ)言,在使用函數(shù)時(shí)可以通過形參的方式進(jìn)行參數(shù)的傳遞,而控制機(jī)器人動(dòng)作又只能通過TP程序?qū)崿F(xiàn),而在實(shí)際應(yīng)用中會(huì)出現(xiàn)在不同程序間進(jìn)行參數(shù)傳遞的需求,尤其是對(duì)于有模塊化編程思想的設(shè)計(jì)者更有這種迫切的要求。那TP程序中可以進(jìn)行不同程序之間的參數(shù)傳遞嗎?答案當(dāng)然是可以!
通過DATA按鍵進(jìn)行變量查看的時(shí)候,有數(shù)值寄存器、位置寄存器和字符串這幾種寄存器類型,而這些寄存器都有一個(gè)共同的特點(diǎn),那就是全局性的,也就是說所有的TP程序都可以對(duì)這些寄存器進(jìn)行訪問,所以在使用時(shí)就必須知道其存儲(chǔ)的值,或者對(duì)其進(jìn)行初始化。而這些寄存器是實(shí)現(xiàn)不同程序間參數(shù)傳遞的方式之一。
學(xué)過編程的人都知道,不僅有全局變量,還有局部變量,F(xiàn)ANUC發(fā)那科工業(yè)機(jī)器人當(dāng)然也不例外,也提供了一種“局部變量”的方式來實(shí)現(xiàn)程序間參數(shù)的傳遞,這個(gè)“局部變量”就是自變量寄存器AR。
自變量
在TP程序中使用CALL指令之后,將光標(biāo)移動(dòng)到所調(diào)用的程序后面,然后選擇F4[選擇],這樣所輸入的參數(shù)就稱之為自變量,因?yàn)檎{(diào)用宏程序也是采用相同的方式,所以參數(shù)的傳遞同樣也適用于宏程序調(diào)用,如上圖所示。
自變量寄存器
當(dāng)進(jìn)行自變量傳遞時(shí),可以使用數(shù)字寄存器R、常數(shù)、字符串等六種參數(shù),此時(shí)還可以從圖片上發(fā)現(xiàn)4 AR,這個(gè)就是自變量寄存器,其主要作用就是用來接收從其他TP程序所傳遞過來的自變量。
TP程序?qū)?shù)的使用與其他編程語(yǔ)言有很大的不同,很多編程都是在函數(shù)中直接使用形參所定義的名稱即可,而在TP程序中則是使用自變量寄存器AR,該寄存器與其他的寄存器有一個(gè)很大的不同,它是局部變量,也就是說只能在同一個(gè)程序內(nèi)使用。
二者之間的關(guān)系
自變量和自變量寄存器之間是怎么樣的一個(gè)對(duì)應(yīng)關(guān)系呢?其實(shí)就是順序上一一對(duì)應(yīng),以這個(gè)程序調(diào)用為例,順著就是AR[1]、AR[2]和AR[3],其中AR[1]代表**個(gè)參數(shù),AR[2]就是第二個(gè)參數(shù),AR[3]就是第三個(gè)參數(shù),在被調(diào)用程序中可以直接使用AR[n]來處理所接收到的數(shù)據(jù)。
注意事項(xiàng)
自變量寄存器AR的作用是來接收傳遞的數(shù)據(jù)參數(shù),所以其不能被賦值。若直接使用AR的值,而不是通過自變量進(jìn)行參數(shù)的傳遞,系統(tǒng)則會(huì)報(bào)INTP-288錯(cuò)誤,即沒有指定參數(shù)。每個(gè)程序可以使用30個(gè)自變量寄存器,但自變量只能有10個(gè),所以在使用時(shí)請(qǐng)小心。