基于Web Service的遠程工業控制系統研究
引言
現今網絡技術不斷發展,互聯網已經成為當前最重要的信息載體。同時設備控制技術也相當成熟,如各種基于廉價單片機的微處理系統應用廣泛,幾乎深入到各行各業[1] 。技術人員把互聯網應用推廣到控制領域,是一個發展趨勢。這種新的業務應用,由于其自身的特點,對于開發中的新技術、新方法的需求特別突出,傳統的開發模式與技術手段已經漸漸地無法適應這些新的要求。如何將先進制造中的各種機器設備以及信息家電與互聯網應用聯系起來,從而提高控制系統的性能,成為控制界需要解決的一個技術問題。工業機器人是先進制造行業中典型的設備,本系統采用它作為受控對象,可以為在工業自動化系統中實現基于Internet的遠程控制提供一個典型的范例,從而為先進制造、信息家電等其它網絡控制設備提供基于Internet應用的基礎。
l Web Service技術導入
作為一種問世不久的全新的組件技術,Web Service使用基于XML的消息處理作為基本的接口描述和數據通信方式,采用W3C組織制定的開放性標準和規范,對服務的實現與使用進行高度的抽象,以消除由于使用不同組件模型、操作系統和編程語言所產生的系統差異,為實現數據和系統的互操作性提供了一種有效的解決方案[2]。
Web Service由服務提供者(Service Provider)、服務注冊中心(Service Registry)和服務請求者(Service Requestor)之間的交互所構成。首先服務提供者使用Web Service描述語言(WSDL)對組件的功能和接口進行詳細的描述和精確的定義,然后把它發布到服務注冊中心;服務請求者通過網絡在服務注冊中心查找所需的服務,并獲取該服務的WSDL信息,最后服務請求者通過WSDL信息與服務提供者所提供的服務進行綁定,調用相應組件中的功能,實現彼此間的交互[3]。web Service的工作模型如圖1所示。

與傳統的基于中間件(由一組具有控制與管理能力的組件所構成)的體系結構相比,計算機工業控制系統采用web Service技術構造更具有優勢,體現在:
(1)由于web Service的體系結構是松散耦合的,所以采用何種組件模型已經不重要,只要使用統一的WSDL對所提供的服務接口進行定義和描述,異構的客戶與服務之間、服務與服務之間就可以實現連接與重用,提高了可靠性和重用性,開發和維護代價更低。
(2)基于中間件的計算機智能控制系統中,數據的傳輸、組件接口的訪問、數據描述等協議都是各個組件模型自己定義的,不具有通用性。而基于Web Service的體系結構中,完全采用W3C所制定的開放的、標準的協議進行數據的描述、傳輸、交換,所用到的SOAP (Simple Object Access Protocol, 簡單對象訪問協議)、WSDL (Web Service Description Language,Web服務描述語言)、UDDL (Universal Description,Discovery,and Integration,通用描述、發現和集成)等技術,都是基于HTTP,XML等基本協議和標準,因此更具有開放性和擴展性,應用范圍更廣,可支持異構平臺[4]。
(3)基于中間件的計算機智能控制系統雖然比基于簡單C/S的計算機智能控制系統的集成性能要好。但是仍然屬于靜態集成,這體現在當組件接口改變時,需要對中間件進行相應的修改并局部重新部署。然而在基于Web Service的計算機智能控制系統中,當由于服務的接口改變而導致客戶端調用失敗時,客戶端會自動從服務注冊中心獲取已更新的WSDL文檔,重新生成調用接口,并與代碼進行綁定。
基于Web Service的工業控制系統,可以明晰工業自動化的體系結構,增強過程控制的功能和效率。提高工業自動化的整體性和穩定性,真正實現工業自動化系統的網絡化、智能化、數字化 但將Web Service組件技術直接運用在先進制造領域和信息家電行業,在我國還未見報道。因此,本項目的研究成果將為我國先進制造行業和信息家電行業提供Internet解決方案具有積極的意義。
2 控制系統的實現
本系統的結構如圖2所示。硬件系統采用深圳固高科技有限公司提供的工業機器人和接口控制箱。軟件系統含三層:控制指令數據DBMS作為數據庫層,它的任務是保存控制指令和中間數據,接受Web Service對數據庫操縱的請求,實現對數據庫查詢、修改、更新等功能,并把運行結果提交給Web Service;控制邏輯Web Service組件作為中間層,是前后兩層的紐帶,它建立實際的數據庫連接,根據用戶的請求生成SQL語句檢索或更新數據庫,并驅動機器人操作,同時把結果返回給客戶端}控制系統WEB頁面作為面向用戶的界面層,負責處理用戶的輸入和向用戶的輸出[5]。

在.NET Framework中直接對工業機器人接口板卡進行底層硬件編程是一個技術難點。本項目采用互操作(Dlllmport)的方式,在Web Service組件中引入運動控制器驅動接口DLL函數庫,可以解決這一問題。Microsoft.Net是目前開發Web Service的最佳工具,因此本項目以此為開發平臺。我們把機器人智能控制模塊做成Web Service,部署在Internet上(即將Web Service注冊到UDDI注冊表),暴露機器人智能控制模塊接口。在Web Service組件中,采用C#語言,調用工業機器人運動控制卡的底層編程接口API,并將四軸聯動的優化算法等控制邏輯封裝在該組件中,從而提高控制的效率和實時性[6] 。
在本系統中,我們采用ASP.NET開發了WEB頁面。用戶通過Web瀏覽器以HTTP協議調用WEB頁面,得到機器人操作界面。WEB頁面再以SOAP協議與Web Service組件通信,把客戶端的控制信號以string類型的參數形式傳遞給Web Service,讓Web Service調用機器人運動控制卡的庫函數(在本系統中是GT400.dl1)[7] ,進一步達到控制機器人的目的。具體步驟是:WEB頁面首先查詢UDDI注冊表,定位到web Service,通過“添加web引用”建立與web Service的聯系。編譯后系統即根據Web Service的wSDL文件自動在本地生成了Web Service的代理類。隨之WEB頁面可以像使用本地對象一樣地使用代理類對象,由代理類對象負責與實際的遠程web Service以S0AP協議進行通訊,然后Web Service完成相應的業務邏輯。在這個過程中,如何發送調用請求,傳輸請求信息,解析請求信息,執行實際代碼,返回請求結果的步驟都被很好地封裝起來,應用的設計者和程序員只需考慮要傳遞什么請求和如何處理請求結果就足夠了[8]。由于HTTP協議和SOAP協議是標準的Internet協議,可以透過防火墻,因此基于Web Service的遠程控制系統可以真正意義上地完全實現Internet上的網絡控制。這樣使得不同的操作者可以在任何平臺上,以任何語言開發的客戶端,都能夠通過Internet這個軟件系統廉價、廣泛的網絡。隨時地、便捷地控制機器人。