摘要:本文討論了基于Datasocket技術(shù)、基于DCOM/ActiveX技術(shù)和基于遠(yuǎn)程面板的三種不同的遠(yuǎn)程測(cè)控方案的實(shí)現(xiàn)和工作原理,并在實(shí)時(shí)性、遠(yuǎn)程控制、開(kāi)發(fā)難度和可靠性方面進(jìn)行了比較。
關(guān)鍵詞:遠(yuǎn)程測(cè)控;DataSocket;DCOM/ActiveX;遠(yuǎn)程面板
1 引言
自虛擬儀器概念提出以來(lái),以軟件代替硬件、以圖形代替代碼、以組態(tài)代替編程、以虛擬儀器代替?zhèn)鹘y(tǒng)儀器組建自動(dòng)測(cè)試系統(tǒng)發(fā)展迅速。近年來(lái)網(wǎng)絡(luò)技術(shù)的出現(xiàn)和發(fā)展以及它與其他高新科技的相互結(jié)合,也為測(cè)量與儀器技術(shù)帶來(lái)了前所未有的發(fā)展空間和機(jī)遇,將網(wǎng)絡(luò)技術(shù)與虛擬儀器技術(shù)相結(jié)合,組建遠(yuǎn)程測(cè)控系統(tǒng), 是虛擬儀器系統(tǒng)的一個(gè)發(fā)展方向。
本文討論了三種遠(yuǎn)程測(cè)控技術(shù):基于DataSocket技術(shù)的遠(yuǎn)程測(cè)控、基于DCOM/ActiveX技術(shù)的遠(yuǎn)程測(cè)控和基于遠(yuǎn)程面板的遠(yuǎn)程測(cè)控,以實(shí)現(xiàn)LabVIEW程序之間或者LabVIEW程序與Excel電子表格之間的實(shí)時(shí)數(shù)據(jù)通信和實(shí)時(shí)控制。重點(diǎn)分析了遠(yuǎn)程測(cè)控方案的實(shí)現(xiàn)和工作原理,并對(duì)三種方案的性能進(jìn)行比較。
2 基于DataSoket技術(shù)的遠(yuǎn)程測(cè)控
DateSocket技術(shù)是一種面向測(cè)控領(lǐng)域的網(wǎng)上實(shí)時(shí)數(shù)據(jù)交換的編程新技術(shù)。它是LabVIEW6.0中新增加的一個(gè)網(wǎng)絡(luò)測(cè)控系統(tǒng)開(kāi)發(fā)工具,支持本地文件I/O 操作、FTP和HTTP文件傳輸、實(shí)時(shí)數(shù)據(jù)共享,并提供統(tǒng)一的API編程接口。從數(shù)據(jù)共享的角度分析,它是對(duì)WinSock的高級(jí)封裝,因此具有使用方便、編程工作量少、無(wú)需了解底層操作過(guò)程等優(yōu)點(diǎn),特別適合于遠(yuǎn)程數(shù)據(jù)采集、監(jiān)控和數(shù)據(jù)共享等應(yīng)用程序的開(kāi)發(fā)。
DateSocket包括了DateSocket服務(wù)器管理程序、DateSocket服務(wù)器和DateSocket函數(shù)庫(kù)這幾個(gè)工具軟件,以及DSTP(DateSocket Transfer Protocol)協(xié)議、通用資源定位符URL(Uniform Resource Locator)和文件格式等技術(shù)規(guī)范。它大大簡(jiǎn)化Internet網(wǎng)上計(jì)算機(jī)之間的測(cè)控?cái)?shù)據(jù)交換的編程工作。同時(shí),DateSocket也可用于一臺(tái)計(jì)算機(jī)內(nèi)或局域網(wǎng)中多個(gè)應(yīng)用程序之間的數(shù)據(jù)交換。
應(yīng)用DataSocket開(kāi)發(fā)遠(yuǎn)程測(cè)控系統(tǒng),客戶(hù)端和服務(wù)器之間的遠(yuǎn)程數(shù)據(jù)通信任務(wù)均通過(guò)DataSocket服務(wù)器來(lái)實(shí)現(xiàn)。對(duì)客戶(hù)端而言,程序只需要負(fù)責(zé)從服務(wù)端的DataSocket服務(wù)器Read端口處讀取數(shù)據(jù),以及將控制指令發(fā)送到DataSocket服務(wù)器的Write端口,遠(yuǎn)程服務(wù)器對(duì)客戶(hù)端程序完全是透明的操作。對(duì)服務(wù)器端而言,只需要對(duì)本地DataSocket服務(wù)器的兩個(gè)端口進(jìn)行讀寫(xiě)數(shù)據(jù),即可完成對(duì)客戶(hù)端發(fā)送數(shù)據(jù)和響應(yīng)控制指令。底層的工作則是由服務(wù)器端的DataSocket服務(wù)器來(lái)完成。具體實(shí)現(xiàn)方案為:利用DataSocket通信,將采集到的數(shù)據(jù)發(fā)布到URL制定的位置中,并按原來(lái)的數(shù)據(jù)類(lèi)型送到前面板窗口中顯示。在這個(gè)過(guò)程中,只需要對(duì)DataSocket Connection的屬性進(jìn)行配置。這樣不需要編程,就可以直接進(jìn)行DataSocket通信了。當(dāng)控件的右上角出現(xiàn)一個(gè)綠色的小方框(DataServer對(duì)話(huà)框),則顯示的就是控件已經(jīng)連接到DataSocket Server上了。
3 基于DCOM/ActiveX技術(shù)的遠(yuǎn)程測(cè)控
COM是Windows對(duì)象的一個(gè)二進(jìn)制標(biāo)準(zhǔn),采用客戶(hù)/服務(wù)器模式,旨在建立一套構(gòu)件對(duì)象接口標(biāo)準(zhǔn),以確保構(gòu)件對(duì)象在系統(tǒng)中共存,并且充分的相互利用。DCOM(分布式COM)是COM的一種擴(kuò)展,用于支持COM在分布式環(huán)境下的應(yīng)用,它把組件對(duì)象技術(shù)推向了Internet。DCOM是COM的網(wǎng)絡(luò)通信協(xié)議,在DECRPC的基礎(chǔ)上實(shí)現(xiàn)。當(dāng)客戶(hù)和組件位于不同機(jī)器時(shí),DCOM用網(wǎng)絡(luò)協(xié)議(TCP/IP)取代了COM中的本地進(jìn)程間通信LPC,從而對(duì)位于Internet不同機(jī)器上的組件對(duì)象之間的相互通訊提供了透明的支持。ActiveX技術(shù)實(shí)際上是COM/DCOM/OLE/OCX(OLE自定義控件的簡(jiǎn)稱(chēng))技術(shù)的統(tǒng)稱(chēng),是非常重要的基于組件的開(kāi)發(fā)技術(shù),廣泛應(yīng)用于Microsoft客戶(hù)機(jī)端和服務(wù)器端技術(shù)中。
應(yīng)用DCOM/ActiveX技術(shù)開(kāi)發(fā)的遠(yuǎn)程測(cè)控系統(tǒng)的基本工作原理為:首先,通過(guò)DCOM建立起客戶(hù)端與服務(wù)器端的連接。即按照客戶(hù)端程序的要求,打開(kāi)相應(yīng)的自動(dòng)化服務(wù)器(LabVIEW或Excel)。 其次,通過(guò)在客戶(hù)端程序中控制自動(dòng)化服務(wù)器的調(diào)用方法或改變其屬性,實(shí)現(xiàn)客戶(hù)端與服務(wù)器端的遠(yuǎn)程數(shù)據(jù)交換或遠(yuǎn)程控制。具體表現(xiàn)為:在客戶(hù)端程序中控制打開(kāi)服務(wù)器端程序;客戶(hù)端程序與服務(wù)器端程序進(jìn)行實(shí)時(shí)的數(shù)據(jù)交換;在客戶(hù)端程序中控制服務(wù)器端程序的各種操作,等等。
4 基于遠(yuǎn)程面板的遠(yuǎn)程測(cè)控
上述兩種遠(yuǎn)程測(cè)控系統(tǒng)都是采用基于客戶(hù)/服務(wù)器Client/Server(簡(jiǎn)寫(xiě)為C/S)網(wǎng)絡(luò)模型來(lái)組建的,適用于數(shù)據(jù)傳送量大的情況,而且具有效率高,數(shù)據(jù)可靠完整、兼容性強(qiáng)等特點(diǎn)。對(duì)于數(shù)據(jù)傳送量不大,需要遠(yuǎn)程模擬仿真的情況可以采用瀏覽器/服務(wù)器Browser/Server(簡(jiǎn)寫(xiě)為B/S)模式,這樣對(duì)于客戶(hù)端的需求會(huì)很低,不需在客戶(hù)端上安裝相應(yīng)的客戶(hù)端軟件,只需要瀏覽器便可登陸服務(wù)器對(duì)遠(yuǎn)程測(cè)試進(jìn)行監(jiān)控。
基于B/S網(wǎng)絡(luò)模型的遠(yuǎn)程測(cè)控可以通過(guò)遠(yuǎn)程面板技術(shù)實(shí)現(xiàn)。測(cè)控服務(wù)器把虛擬儀器應(yīng)用程序的前面板發(fā)布到Web頁(yè)面上,客戶(hù)端的用戶(hù)便可以通過(guò)瀏覽器對(duì)服務(wù)器端的遠(yuǎn)程面板進(jìn)行監(jiān)控。遠(yuǎn)程面板容易配置,能夠跨平臺(tái),無(wú)需ActiveX控件、Java Applet或者是CGI腳本,而且可以多同步連接監(jiān)控;控制是動(dòng)態(tài)的,客戶(hù)端在瀏覽器中看到的監(jiān)測(cè)畫(huà)面同服務(wù)器端完全一致。遠(yuǎn)程面板另外的一個(gè)特點(diǎn)是完全服務(wù)器端管理。
遠(yuǎn)程面板技術(shù)的實(shí)現(xiàn)原理是借助于LabVIEW內(nèi)置的Web Server 技術(shù)實(shí)現(xiàn)的。服務(wù)器端利用LabVIEW Web Publishing Tool把虛擬儀器應(yīng)用程序的前面板嵌入到Web頁(yè)面中,并借助LabVIEW Web Server提供的虛擬儀器Web服務(wù),只要服務(wù)器端的應(yīng)用程序載入內(nèi)存,客戶(hù)端便可以通過(guò)瀏覽器對(duì)遠(yuǎn)程的虛擬儀器應(yīng)用程序進(jìn)行監(jiān)控。但在同一時(shí)刻,只有一個(gè)用戶(hù)具有控制權(quán)限,其余用戶(hù)只能對(duì)遠(yuǎn)程面板進(jìn)行監(jiān)測(cè)。客戶(hù)端控制的權(quán)限可以通過(guò)遠(yuǎn)程面板的Request/ReleaseControl VI獲得或釋放,服務(wù)器端擁有絕對(duì)的控制權(quán)限。
5 三種方案的性能比較
基于DataSocket技術(shù)的遠(yuǎn)程測(cè)控系統(tǒng),通過(guò)數(shù)據(jù)發(fā)布、共享的方式傳送測(cè)控?cái)?shù)據(jù),方法很簡(jiǎn)單。由于DataSocket具有高速實(shí)時(shí)數(shù)據(jù)發(fā)布的能力,所以基于DataSocket的遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)也具有高速實(shí)時(shí)數(shù)據(jù)發(fā)布的能力,并且客戶(hù)端的數(shù)目可以不受限制,可以使用任何數(shù)據(jù)采集設(shè)備實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)采集。缺點(diǎn)是客戶(hù)端的控制功能太弱,尚有待加強(qiáng)。
基于DCOM/ActiveX技術(shù)的遠(yuǎn)程測(cè)控系統(tǒng),數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性較好,且遠(yuǎn)程控制的能力較強(qiáng)。缺點(diǎn)是實(shí)現(xiàn)起來(lái)比較困難。
基于遠(yuǎn)程面板的遠(yuǎn)程測(cè)控系統(tǒng),只需瀏覽器,不需其他額外軟件,利于用戶(hù)使用;易維護(hù),只需維護(hù)服務(wù)器端代碼;適于多平臺(tái)支持;源代碼客戶(hù)端不可見(jiàn),安全性高。缺點(diǎn)在于:實(shí)現(xiàn)遠(yuǎn)程控制非常復(fù)雜,難度大;不利于傳送大量實(shí)時(shí)數(shù)據(jù)。
參考文獻(xiàn)
[1]張易知,肖嘯,張喜斌,衛(wèi)躍春.虛擬儀器的設(shè)計(jì)和實(shí)現(xiàn)[M].西安:西安電子科技大學(xué)出版社,2002.
[2]董湘,鄒國(guó)奎.基于LabVIEW的遠(yuǎn)程測(cè)控方法研究[J].儀表技術(shù),2004(4):27-28.
[3]單威,韓慧蓮.基于網(wǎng)絡(luò)的遠(yuǎn)程測(cè)控技術(shù)[J].科技情報(bào)開(kāi)發(fā)與經(jīng)濟(jì),2004(7):198-199.
[4]王思華,葉文生,雷兆宜,陸堯勝.DataSocket技術(shù)及其在虛擬儀器遠(yuǎn)程測(cè)控系統(tǒng)中的應(yīng)用[J].暨南大學(xué)學(xué)報(bào)(自然科學(xué)版),2000(3):42-48.
[5]Platform Independent Remote Virtual Instruments Over the Internet[EB/OL]. http://www.lk/conference/papers/obadage.htm.
[6]LabVIEW Funtion and VI Reference Manual[S]. NI公司,January 1998.