郝磊
摘要:研究了一種基于SDK網(wǎng)絡(luò)通訊機(jī)制的ABB機(jī)器人與視覺(jué)系統(tǒng)之間的通訊編程方法,實(shí)現(xiàn)了機(jī)器人基于C/S模型的分布式網(wǎng)絡(luò)控制系統(tǒng)模型,為機(jī)器人柔性自動(dòng)化系統(tǒng)的開(kāi)發(fā)驗(yàn)證了一種可行的方法。
關(guān)鍵詞:自動(dòng)化 視覺(jué)控制系統(tǒng) 工業(yè)機(jī)器人 通訊協(xié)議
我公司承接的北汽薩博沖壓分廠FAGOR自動(dòng)線國(guó)內(nèi)安調(diào)項(xiàng)目,為原澳洲三菱阿德萊德(Adelaide)工廠二手設(shè)備,該線由西班牙FAGOR聯(lián)合瑞典ABB兩家公司設(shè)計(jì)、成套。全線由兩臺(tái)2400噸和兩臺(tái)800噸閉式4點(diǎn)大臺(tái)面機(jī)械壓力機(jī)和自動(dòng)化上下料、傳遞裝置(8臺(tái)ABB機(jī)器人)、快速換模臺(tái)車(chē)及隔聲房組成,總長(zhǎng)72米。其中第二臺(tái)機(jī)器人的卸載運(yùn)動(dòng)由獨(dú)立于整線自動(dòng)化控制系統(tǒng)的視覺(jué)系統(tǒng)控制。
該系統(tǒng)采用機(jī)器視覺(jué)技術(shù)和運(yùn)動(dòng)控制技術(shù)相結(jié)合,視覺(jué)系統(tǒng)計(jì)算板料的位置差異參考坐標(biāo),發(fā)送給ABB機(jī)器人,修正機(jī)器人以正確的姿態(tài)從傳送帶卸載板料,然后裝載到第一臺(tái)壓機(jī)。
但視覺(jué)系統(tǒng)與ABB機(jī)器人之間的通訊問(wèn)題成為整線自動(dòng)化調(diào)試的技術(shù)難點(diǎn),經(jīng)過(guò)查閱大量資料及咨詢(xún)國(guó)內(nèi)外相關(guān)專(zhuān)業(yè)廠家,終于解決了此難點(diǎn)。下面具體介紹一下視覺(jué)系統(tǒng)與ABB機(jī)器人的通訊。
ABB機(jī)器人控制器通過(guò)Ethernet卡與外部視覺(jué)計(jì)算機(jī)相連,實(shí)現(xiàn)基于TCP/IP協(xié)議的以機(jī)器人控制器為服務(wù)器,視覺(jué)計(jì)算機(jī)為客戶機(jī)之間的通訊。機(jī)器人控制器作為服務(wù)器,提供數(shù)據(jù)管理服務(wù)和應(yīng)用服務(wù),響應(yīng)并受理由外部計(jì)算機(jī)發(fā)出的請(qǐng)求,并將計(jì)算結(jié)果傳送給外部視覺(jué)計(jì)算機(jī)。
ABB S4型機(jī)器人控制系統(tǒng)的軟件結(jié)構(gòu)由機(jī)器人多任務(wù)操作系統(tǒng)BaseWare OS和基于該操作系統(tǒng)的機(jī)器人RAPID程序及SDK服務(wù)器程序等組成。由于機(jī)器人的運(yùn)動(dòng)和操作只受機(jī)器人程序控制,要實(shí)現(xiàn)機(jī)器人在線控制,必須與機(jī)器人RAPID程序進(jìn)行實(shí)時(shí)數(shù)據(jù)通訊,而SDK服務(wù)器程序可以跨越進(jìn)程與操作系統(tǒng)或機(jī)器人程序進(jìn)行數(shù)據(jù)通訊,從而獲得機(jī)器人系統(tǒng)和機(jī)器人RAPID程序的狀態(tài)和數(shù)據(jù)變量。外部視覺(jué)計(jì)算機(jī)運(yùn)行SDK客戶端程序,通過(guò)向機(jī)器人控制器發(fā)出請(qǐng)求,并實(shí)時(shí)響應(yīng)機(jī)器人控制器上的SDK服務(wù)器程序的答復(fù)的方法進(jìn)行數(shù)據(jù)通訊。
一、通訊配置
1.ABB機(jī)器人的配置:
在開(kāi)始配置之前,必須在示教器上檢查機(jī)器人FactoryWare的安裝情況。按服務(wù)按鈕→選擇服務(wù)菜單→在視圖菜單下→選擇系統(tǒng)信息的ProductID,在那里,它應(yīng)安裝FatoryWare(以太網(wǎng)模塊)。
下一步是配置FactoryWare。按服務(wù)按鈕→選擇系統(tǒng)參數(shù)→在主題菜單下→選擇通訊類(lèi)型→進(jìn)入應(yīng)用協(xié)議→按添加按鈕添加以下參數(shù):
名稱(chēng):介紹這個(gè)配置的名字。 i.e:RAP1
傳輸協(xié)議:傳輸協(xié)議是TCP / IP(必須定義)
類(lèi)型:該參數(shù)必須選擇讀寫(xiě)
遠(yuǎn)程方向:IP Webware的安裝。
上述參數(shù)的定義和機(jī)器人重新啟動(dòng)后,機(jī)器人示教器上方能顯示這個(gè)參數(shù)。之后,在這里輸入視覺(jué)PC的IP地址。
重要的事情是聲明所有的變量,我們希望機(jī)器人和Webware之間的溝通做到持久性。必須在機(jī)器人示教器上執(zhí)行以下步驟:
按程序按鈕→在查看菜單下→進(jìn)入數(shù)據(jù)類(lèi)型→選擇要聲明的數(shù)據(jù)類(lèi)型→按新增按鈕→介紹名稱(chēng),然后聲明所有的變量后,用戶可以從任何遠(yuǎn)程應(yīng)用程序,使用簡(jiǎn)單的視覺(jué)機(jī)器人驅(qū)動(dòng)機(jī)器人的程序訪問(wèn)這些變量執(zhí)行。
2.視覺(jué)系統(tǒng)Webware的配置
要配置Webware的用戶必須使用以太網(wǎng)。具體操作如下:
1)Start→Programs→ABB Automation→WebWare SDK→InterLink Configuration
2)首先,用戶必須添加一個(gè)新的機(jī)器人配置文件,按 圖標(biāo)。然后,下面的屏幕上會(huì)出現(xiàn):
3)這里,必須在第一個(gè)框中(L2A; ROBSLAVE)鍵入機(jī)器人的名稱(chēng)。之后,選擇機(jī)器人的TCP/ IP協(xié)議,按“編輯主機(jī)文件”按鈕,然后會(huì)彈出這個(gè)窗口:
TCP / IP節(jié)點(diǎn)必須加入。按“添加”按鈕,將打開(kāi)配置窗口:
4)在此窗口中,必須引進(jìn)的主機(jī)名(R2)和機(jī)器人的IP地址。按“OK”,保存。
設(shè)置機(jī)器人2的IP地址(視覺(jué)機(jī)器人)。
5)最后,必須聲明一個(gè)名字,按“編輯個(gè)人資料”按鈕,然后到“接口”標(biāo)簽:
6)在窗口必須選擇“Poll simulated IO”和“Use optimal polling list”。最后介紹機(jī)器人的IO文件的路徑。下一步就是訂閱所有的快速程序使用溝通與視覺(jué)系統(tǒng)的持久變量。做這個(gè)必須去'變量訂閱'選項(xiàng)卡:
7)在此窗口中,必須引入變量名,選擇變量的類(lèi)型,按添加按鈕。逐個(gè)新增視覺(jué)系統(tǒng)所使用的所有變量:
數(shù)字變量:errorcode1,errorcode2,errorcode3,errorcode4,errorcodeGen,orierr1,orierr2,orierr3,orierr4,xerr1,xerr2,xerr3,xerr4,yerr1,yerr2,yerr3,yerr4,partnum。
布爾變量:startcycle,visionready。
配置完成后,主窗口必須顯示此參數(shù);
8)視覺(jué)PC Robot2的IP地址
視覺(jué)PC的IP地址是與機(jī)器人必須兼容。
9)運(yùn)行視覺(jué)軟件
進(jìn)入開(kāi)始菜單 - 程序 - ABB自動(dòng)化 - Webware的SDK和運(yùn)行互聯(lián)監(jiān)視器驗(yàn)證機(jī)器人和視覺(jué)電腦之間的通訊。
二、通信協(xié)議。
視覺(jué)系統(tǒng)與機(jī)器人使用以太網(wǎng)的通信是基于一系列的可讀取和寫(xiě)入雙方的共同變量。在機(jī)器人這邊,這些常見(jiàn)的變量必須是恒定的。除此之外,機(jī)器人必須在自動(dòng)模式下讀取和寫(xiě)入雙方的共同變量。如果事實(shí)并非如此,視覺(jué)系統(tǒng)將無(wú)法讀寫(xiě)任何變量。
雙方所使用的變量的名稱(chēng)必須在邏輯上是平等的,以及它們的類(lèi)型。
下面是每個(gè)變量的解釋?zhuān)?/p>
startcycle:
這個(gè)變量進(jìn)行數(shù)據(jù)收集的啟動(dòng)。機(jī)器人將此變量設(shè)置為T(mén)RUE時(shí)視覺(jué)系統(tǒng)已確認(rèn)的變量已經(jīng)改變,它將閱讀圖像。視覺(jué)系統(tǒng)變量設(shè)置為FALSE,使機(jī)器人可以識(shí)別,如果必要的話,視覺(jué)系統(tǒng)必須確認(rèn)登記。
visionready:
視覺(jué)系統(tǒng)將此變量設(shè)置為T(mén)RUE,表明機(jī)器人在最后一次讀取相應(yīng)變量模型的數(shù)據(jù)是已經(jīng)準(zhǔn)備好的。機(jī)器人將這個(gè)變量設(shè)置為FALSE,將讀取模板的數(shù)據(jù)。
partnum:
機(jī)器人設(shè)置此變量,每次都需要從模型中收集數(shù)據(jù)。其中startcycle變量設(shè)置為T(mén)RUE的時(shí),代表視覺(jué)系統(tǒng)要讀取工件代碼,然后視覺(jué)系統(tǒng)在其數(shù)據(jù)庫(kù)發(fā)現(xiàn)此模板的型號(hào)并在軌道上發(fā)現(xiàn)的型號(hào),
errorcodeGen:
這是由視覺(jué)系統(tǒng),并表示可能發(fā)生一般性錯(cuò)誤。機(jī)器人必須讀這個(gè)變量,并檢查錯(cuò)誤板塊讀取數(shù)據(jù)之前發(fā)生的。如果發(fā)生錯(cuò)誤,發(fā)現(xiàn)板塊的變量的數(shù)據(jù)是不可預(yù)知的。
錯(cuò)誤代碼:
0沒(méi)有一般的錯(cuò)誤。
-1參考在“partnum”的要求是無(wú)效的。
-2這個(gè)模型文件沒(méi)有找到。
errorcode1
在第一個(gè)工件可能出現(xiàn)的錯(cuò)誤。
錯(cuò)誤代碼:
-0未找到正確的模板。
-1傳送帶上工件沒(méi)有找到,沒(méi)有有效的數(shù)據(jù)。
-2工件已超出傳送帶的邊緣。
xerr1:
這是視覺(jué)系統(tǒng)指示機(jī)器人在傳送帶上發(fā)現(xiàn)工件位置的變量之一。這個(gè)變量通知機(jī)器人在傳送帶上工件沿X軸的位置變化。在本環(huán)節(jié)中工件是唯一的,相應(yīng)的變量將顯示,由于其余的都是相同的。
yerr1:
這個(gè)變量通知機(jī)器人在傳送帶上工件沿Y軸的位置變化。
orierr1:
這個(gè)變量通知機(jī)器人在傳送帶上工件角度的位置變化。
通信協(xié)議
*視覺(jué)系統(tǒng)讀取機(jī)器人發(fā)來(lái)的“partnum”數(shù)字量。
*機(jī)器人設(shè)置“startcycle”變量為T(mén)RUE,以便視覺(jué)系統(tǒng)開(kāi)始工作。
*視覺(jué)系統(tǒng)讀取“startcycle”,把它設(shè)置為FALSE,并同時(shí)讀取數(shù)據(jù)庫(kù)的模板。
*視覺(jué)系統(tǒng)設(shè)置一般錯(cuò)誤。
*視覺(jué)系統(tǒng)計(jì)算實(shí)際工件和模型的坐標(biāo)偏差。
*視覺(jué)系統(tǒng)設(shè)置“visionready”變量為T(mén)RUE。
*機(jī)器人讀取“visionready”并將其設(shè)置為FALSE。
*機(jī)器人讀取視覺(jué)系統(tǒng)發(fā)來(lái)的坐標(biāo)偏差(X、Y、角度)。
結(jié)論:視覺(jué)導(dǎo)引運(yùn)動(dòng)控制系統(tǒng)適和多種應(yīng)用,從大量元件的自動(dòng)分析到簡(jiǎn)單的撿取和放置應(yīng)用。設(shè)計(jì)這種系統(tǒng)雖然很復(fù)雜,但它能最大限度地提高生產(chǎn)效率。通訊只是建立整個(gè)系統(tǒng)比較初級(jí)的部分但它非常重要,如果視覺(jué)系統(tǒng)與工業(yè)機(jī)器人之間的通訊無(wú)法建立,將導(dǎo)致視覺(jué)導(dǎo)引運(yùn)動(dòng)系統(tǒng)無(wú)法實(shí)現(xiàn)。視覺(jué)引導(dǎo)機(jī)器人技術(shù)具有良好的成本節(jié)約優(yōu)勢(shì),能對(duì)零件式樣與位置的變化進(jìn)行管理,免去了成本高昂的精密夾具、機(jī)械料擋和料盤(pán),實(shí)現(xiàn)了人工作業(yè)的自動(dòng)化;能精確定位料架上的零件,延長(zhǎng)生產(chǎn)線正常運(yùn)行時(shí)間,消除機(jī)器人碰撞的機(jī)會(huì);并通過(guò)基本檢驗(yàn)和零件識(shí)別功能提升產(chǎn)品質(zhì)量。該項(xiàng)技術(shù)已經(jīng)被廣泛地應(yīng)用于各類(lèi)搬運(yùn)、組裝、機(jī)械加工和壓鑄工藝中。