ABB機(jī)器人自帶有Offs函數(shù),可以使用該函數(shù)在基于robtarget類型的點(diǎn)位基礎(chǔ)上在x,y,z方向上加上偏移值,生成一個(gè)新的位置。這使得我們?cè)诰帉懹幸?guī)律的運(yùn)動(dòng)路徑時(shí)十分的方便。 但是有時(shí)我們想讓機(jī)器人基于一個(gè)已知的位置對(duì)某個(gè)軸進(jìn)行偏移,卻發(fā)現(xiàn)ABB機(jī)器人系統(tǒng)中并沒有類似功能的函數(shù),那么這一次我們就仿照offs函數(shù)的功能自己編寫一個(gè)ABB機(jī)器人的單軸偏移函數(shù)。 首先要新建一個(gè)例行程序,例行程序的名稱可以自定義,例行程序的名稱就是我們制作好的函數(shù)的名稱。這里以AbsOffs為例。例行程序的類型要選擇“功能”。數(shù)據(jù)類型選擇jointtarget,即該函數(shù)返回的數(shù)據(jù)類型為jointtarget,在程序中函數(shù)返回值可作為一個(gè)jointtarget數(shù)據(jù)來使用。 然后選擇參數(shù)選項(xiàng),為其添加參數(shù),添加一個(gè)名為“Point”數(shù)據(jù)類型為“jointtarget”的參數(shù)(參數(shù)的名稱可以在定義,這里以“Point”為例),模式為“IN”,也就是輸入?yún)?shù)。這個(gè)參數(shù)用來接收偏移計(jì)算時(shí)的基準(zhǔn)點(diǎn)。 然后再添加6個(gè)數(shù)據(jù)類型為num型參數(shù),參數(shù)模式也為“IN”每個(gè)參數(shù)對(duì)應(yīng)一個(gè)軸,用于接收我們手動(dòng)輸入的軸的偏移值。這里的6個(gè)參數(shù)以offset1~offset6為例。 然后我們?cè)凇俺绦驍?shù)據(jù)”的“jointtarget”數(shù)據(jù)類型中新建一個(gè)jointtarget類型數(shù)據(jù),名稱可以自定義,這里以jposTemp為例。存儲(chǔ)類型選擇“變量”,模塊選擇我們所新建的函數(shù)所在的模塊,例行程序選擇我們所建的函數(shù)。這樣這個(gè)變量就只會(huì)在咱們新建的這個(gè)函數(shù)中可以被調(diào)用,其它例行程序無法調(diào)用。 然后添加jposTemp := Point;語句,把以后函數(shù)所接受的偏移基準(zhǔn)位置的值賦值給jposTemp。函數(shù)參數(shù)Point可能在添加過程中的數(shù)據(jù)中不顯示,可以采用手動(dòng)輸入的方式。 然后添加6個(gè)軸的偏移賦值語句。 利用“RETURN”指令將偏移后的“jposTemp”值作為函數(shù)的返回值。 到這里,ABB機(jī)器人的軸偏移函數(shù)就制作完成了。 下面來看一下使用。 在程序編輯器中添加“MoveAbsJ”指令; 在選擇位置數(shù)據(jù)時(shí),我們就可以在“功能”分類中看到我們自己創(chuàng)建的單軸偏移函數(shù)了。 選擇要偏移的基準(zhǔn)點(diǎn): 手動(dòng)輸入每個(gè)軸要偏移的角度。這里以1軸偏移沿正向偏移30度,其它軸不偏移為例。 執(zhí)行這條指令后,就可以使機(jī)器人基于Phome位置1軸單獨(dú)偏移30度。 完整Rapid代碼: 代碼復(fù)制到rapid編輯器中可以直接使用奧~。
文章首發(fā)自動(dòng)化生產(chǎn)之家
|
|