王漢其
摘要:本文根據(jù)項(xiàng)目實(shí)際需求,以.NET為平臺(tái),以計(jì)算機(jī)為載體進(jìn)行項(xiàng)目開(kāi)發(fā),實(shí)現(xiàn)ABB六自由度機(jī)械手自動(dòng)完成對(duì)天然氣加氣車(chē)輛的加氣過(guò)程,提高天然氣加氣站的自動(dòng)化水平。其中,ABB機(jī)器臂控制器和計(jì)算機(jī)的通信是整個(gè)自動(dòng)控制的關(guān)鍵之一,是實(shí)現(xiàn)上位機(jī)(PC)對(duì)ABB機(jī)械手運(yùn)動(dòng)控制和實(shí)時(shí)監(jiān)控的基礎(chǔ),本文以此為出發(fā)點(diǎn),對(duì)通信進(jìn)行研究分析,得出能穩(wěn)定地實(shí)現(xiàn)通信的方法。
關(guān)鍵詞:C#;計(jì)算機(jī);ABB機(jī)械手;通訊
引言
隨著人類(lèi)的活動(dòng)領(lǐng)域不斷擴(kuò)大,機(jī)器人應(yīng)用也從制造領(lǐng)域向非制造領(lǐng)域發(fā)展。像宇宙探測(cè)、采掘、建筑、服務(wù)、娛樂(lè)等行業(yè)都提出了自動(dòng)化和機(jī)器人化的要求。這些行業(yè)的主要特點(diǎn)是工作環(huán)境的非結(jié)構(gòu)化和不確定性,因而需要機(jī)器人對(duì)外感知能力以及局部的自主規(guī)劃能力等[1]。而要讓機(jī)器人遠(yuǎn)程完成指定的任務(wù),最為關(guān)鍵的技術(shù)就是能夠遠(yuǎn)程實(shí)現(xiàn)與機(jī)器人實(shí)時(shí)通訊。傳統(tǒng)的機(jī)器人通訊技術(shù),如遠(yuǎn)程遙操作機(jī)器人技術(shù)硬件系統(tǒng)非常復(fù)雜,并且需要專(zhuān)用的數(shù)據(jù)通道,因此一直沒(méi)有得到有效的推廣應(yīng)用。同時(shí)隨著互聯(lián)網(wǎng)的發(fā)展和普及,互聯(lián)網(wǎng)為實(shí)現(xiàn)這一思想提供了一種低成本策略[2]。將機(jī)器人控制系統(tǒng)與如互聯(lián)網(wǎng)連接,可以在很遠(yuǎn)的地方監(jiān)視和指導(dǎo)機(jī)器人作業(yè),從而在作業(yè)過(guò)程中融人人的智慧,使機(jī)器人能夠完成過(guò)去不易或不能完成的任務(wù)。
哈爾濱工業(yè)大學(xué)研究的基于互聯(lián)網(wǎng)的遙操作機(jī)器人系統(tǒng)-Telerobot[3],該系統(tǒng)可以使得用戶(hù)通過(guò)WEB瀏覽器對(duì)一臺(tái)機(jī)器人PUMA562進(jìn)行控制,完成抓取、搬運(yùn)、堆放等操作。上海交通大學(xué)也開(kāi)發(fā)了基于網(wǎng)絡(luò)的機(jī)器人遙操作系統(tǒng)[4],被控機(jī)器人是一臺(tái)Adept640-S型工業(yè)機(jī)械手。由此可見(jiàn),國(guó)內(nèi)也逐漸掌握這一技術(shù),并正在蓬勃發(fā)展。
本文以智能化加氣站為研究平臺(tái),ABB六自由度機(jī)械手和上位機(jī)為通信的研究載體,旨在完成上位機(jī)對(duì)ABB機(jī)械手運(yùn)動(dòng)控制和實(shí)時(shí)監(jiān)控。
1 通信方法
本章節(jié)主要對(duì)通信的具體方法和步驟進(jìn)行介紹,主要包括網(wǎng)線的連接、組件的安裝、項(xiàng)目的建立、組建的引用以及環(huán)境的選擇,涉及到上位機(jī)與Robot Studio、Visual Studio 2015,以及組件和控制器之間的通信等,下面對(duì)每一個(gè)方法和步驟進(jìn)行介紹,圖4為各個(gè)部分的聯(lián)系圖。
1.1 PC SDK組件的安裝
PC SDK組件是ABB公司提供給第三方公司應(yīng)用的一個(gè)軟件開(kāi)發(fā)接口,PC SDK組件的安裝是跟隨者Robot Studio 安裝而存在的,也就是說(shuō)當(dāng)在上位機(jī)中完整的安裝Robot Studio后,上位機(jī)上本身已經(jīng)隨之安裝了PC SDK組件。
1.2 物理網(wǎng)線連接
將一個(gè)兩端帶有水晶頭的網(wǎng)線,一端插在上位機(jī)的網(wǎng)絡(luò)端口,另外一端插在機(jī)械手控制柜的網(wǎng)絡(luò)端口處,完成上位機(jī)和控制柜之間的局域網(wǎng)物理連接。這個(gè)步驟的意思是使得上位機(jī)通過(guò)對(duì)機(jī)械手IP地址的讀取,來(lái)識(shí)別要控制的控制柜的相關(guān)信息,包括IP地址、ID號(hào)、是否被占用、虛擬控制器是否存在、以及系統(tǒng)名稱(chēng)和軟件版本等。
1.3 組件的引用
根據(jù)項(xiàng)目需要,這里需要的組件主要有與ABB機(jī)械手控制器通信的組件以及Open CV圖像處理的組件,這里主要介紹與ABB機(jī)械手控制器通信的組件。在剛剛創(chuàng)建的項(xiàng)目中,右上的項(xiàng)目資源管理器—選擇引用—鼠標(biāo)右鍵—添加引用。
因?yàn)榈谝淮芜M(jìn)行上位機(jī)和ABB機(jī)械手控制器之間的通信,所以在常見(jiàn)的引用集中并不能找到項(xiàng)目需要的組件,這里就需要通過(guò)瀏覽的方式找到已經(jīng)安裝的Robot Studio中的相關(guān)組件,添加到程序集中。PC SDK組件的安裝路徑可以在Robot Studio的目錄下找到,可以參考C:\ABB Industrial IT\Robotics IT\Robot Studio 6.04\PC SDK,具體的路徑與上位機(jī)上的安裝位置有關(guān)。通過(guò)瀏覽找到PC SDK組件的位置之后,選中項(xiàng)目所需要的組件添加到程序集中,然后在該程序集上點(diǎn)擊,則該程序集前面會(huì)出現(xiàn)一個(gè)黑色對(duì)號(hào)框,這就表明已經(jīng)添加該引用。該課題研究中需要引用的有:ABB.Robotics.Controllers.PC.dll、ABB.Robotics.dll。
至此,ABB機(jī)械手與上位機(jī)之間通訊所需要的軟件以及硬件基礎(chǔ)已經(jīng)準(zhǔn)備完成,而在項(xiàng)目中如何實(shí)現(xiàn)在下一章中會(huì)進(jìn)行說(shuō)明。
2 應(yīng)用實(shí)例
2.1 命名空間的引用
所謂命名空間就是.NET 平臺(tái)中,對(duì)于項(xiàng)目需要的一些函數(shù)庫(kù)、字段、接口、變量等都已經(jīng)被定義,在項(xiàng)目開(kāi)發(fā)中可以直接使用,這樣做的目的是避免不同人進(jìn)行項(xiàng)目開(kāi)發(fā)時(shí)候出現(xiàn)同名的現(xiàn)象,從而出現(xiàn)問(wèn)題。在項(xiàng)目開(kāi)發(fā)中,需要用的用到的命名空間直接在新建的項(xiàng)目中的代碼開(kāi)頭進(jìn)行引用即可,一些命名空間是都會(huì)用到的,比如在項(xiàng)目開(kāi)發(fā)中,系統(tǒng)默認(rèn)已經(jīng)引用的命名空間。該課題研究中,除了以上命名空間的引用,而需要將剛剛添加的引用的明明空間寫(xiě)在程序代碼中。
2.2 權(quán)限獲取
這里所說(shuō)的權(quán)限是指上位機(jī)讀取、編輯和修改ABB機(jī)械手運(yùn)動(dòng)狀態(tài),執(zhí)行機(jī)械手示教器例行程序的過(guò)程的權(quán)利,是進(jìn)行ABB機(jī)械手臂運(yùn)動(dòng)控制的基礎(chǔ)。這個(gè)步驟主要是通過(guò)代碼的編寫(xiě)來(lái)完成的,通過(guò)如下代碼完成該權(quán)限的獲取。
using(Mastership master = Mastership.Request(controller.Rapid))//獲取機(jī)械手權(quán)限
2.3 調(diào)用例行程序
本課題中,定義一個(gè)標(biāo)識(shí)符Flag,外加一個(gè)判斷語(yǔ)句if,當(dāng)判斷出標(biāo)識(shí)符Flag被賦值于不同大小時(shí)候,執(zhí)行對(duì)應(yīng)的例行程序,每個(gè)標(biāo)識(shí)符Flag對(duì)應(yīng)一個(gè)例行程序。通過(guò)上位機(jī)Visual Studio 2015項(xiàng)目程序代碼編寫(xiě)中進(jìn)行對(duì)標(biāo)識(shí)符Flag修改和賦值,這樣就可以完成通過(guò)上位機(jī)對(duì)ABB機(jī)械手運(yùn)動(dòng)的控制。如下是其中的一段代碼:
ABB_Flag = controller.Rapid.GetRapidData("T_Rob1","MainModule","Flag");//獲取Flag值
Num Flag =(Num)ABB_Flag.Value;//轉(zhuǎn)換其類(lèi)型
Flag.FillFromString2("5");//修改其數(shù)值
關(guān)于其他的修改,比如ABB機(jī)械手末端姿態(tài)以及運(yùn)動(dòng)時(shí)間的控制等,都是同樣的方法,這樣整個(gè)控制就可以順利的完成了。
3 結(jié)束語(yǔ)
本文以智能化加氣站為研究平臺(tái),針對(duì)ABB六自由度機(jī)械手和上位機(jī)(PC)之間的通信進(jìn)行研究分析,研究出能夠穩(wěn)定地完成ABB六自由度機(jī)械手和上位機(jī)(PC)之間的通信的一套方法,實(shí)現(xiàn)上位機(jī)對(duì)ABB機(jī)械手的運(yùn)動(dòng)控制和實(shí)時(shí)監(jiān)控。隨著智能化以及自動(dòng)化的發(fā)展,機(jī)械手特別是工業(yè)機(jī)械手會(huì)呈現(xiàn)出巨大的發(fā)展?jié)摿Γた匾矊?huì)是其中的重要研究?jī)?nèi)容,而工控最離不開(kāi)的就是通信,因此本文提出的關(guān)于ABB六自由度機(jī)械手和上位機(jī)之間的通信方法,具有重要的價(jià)值和意義。
參考文獻(xiàn):
[1]田建創(chuàng). 基于網(wǎng)絡(luò)的移動(dòng)機(jī)器人遠(yuǎn)程控制系統(tǒng)研究[D].浙江大學(xué),2005.
[2]陳啟軍,陳輝堂,王月娟.基于Internet的機(jī)器人控制技術(shù)及其應(yīng)用[J].電氣自動(dòng)化,2001,23(01):7-10+2.
[3]趙明國(guó),趙杰,崔澤,蔡鶴皋. 一種基于的遙操作機(jī)器人系統(tǒng)-Telerobot. 哈爾濱工業(yè)大學(xué)學(xué)報(bào),2001,33(1):8-12.
[4]任吳星,翁海華等. 基于Web的機(jī)器人遙操作的研究與實(shí)現(xiàn). 計(jì)算機(jī)工程,1999,25(5):64-65