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