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