遠(yuǎn)程虛擬儀器管理實戰(zhàn)
虛擬儀器技術(shù)的出現(xiàn)徹底打破了傳統(tǒng)儀器由廠家定義、用戶無法改變的模式,用戶借助通用的儀器硬件平臺,調(diào)用不同的測試軟件,就可以構(gòu)成不同功能的儀器。本文對遠(yuǎn)程虛擬儀器中的網(wǎng)絡(luò)通信、工作原理、實現(xiàn)方案等作了系統(tǒng)的探討和研究。
醫(yī)生通過互聯(lián)網(wǎng)操控異地的機(jī)器人,對患者成功實施手術(shù)。 |
遠(yuǎn)程虛擬儀器系統(tǒng)是近年來誕生并發(fā)展迅速的一種新型網(wǎng)絡(luò)測控技術(shù),它不同于一般的信息網(wǎng)絡(luò)技術(shù),其主要應(yīng)用于遠(yuǎn)方有傳感器或其他數(shù)據(jù)接收設(shè)備得到的數(shù)據(jù)的傳輸與通信。例如,醫(yī)療系統(tǒng)遠(yuǎn)程會診、環(huán)境監(jiān)測與數(shù)據(jù)分析等等。本文對遠(yuǎn)程虛擬儀器中的網(wǎng)絡(luò)通信、工作原理、實現(xiàn)方案等作了系統(tǒng)的探討和研究。
虛擬儀器與遠(yuǎn)程虛擬儀器
隨著微電子技術(shù)、計算機(jī)技術(shù)、軟件技術(shù)和網(wǎng)絡(luò)技術(shù)的高度發(fā)展,在科研、工業(yè)和醫(yī)學(xué)領(lǐng)域,隨著低成本高性能的計算機(jī)資源的有效利用,數(shù)字化平臺逐漸成為測量儀器的基礎(chǔ)。儀器技術(shù)和計算機(jī)技術(shù)的深層次的結(jié)合創(chuàng)造了虛擬儀器的概念,將計算機(jī)(處理器、存儲器、顯示器等)和通用儀器硬件(A/D、D/A 變換器、數(shù)字輸入/輸出、定時和信號處理器等)與用于數(shù)據(jù)分析、過程通訊及用戶圖形界面的軟件有效地結(jié)合起來,就組成了虛擬儀器。
虛擬儀器技術(shù)的出現(xiàn)徹底打破了傳統(tǒng)儀器由廠家定義、用戶無法改變的模式,用戶借助通用的儀器硬件平臺,調(diào)用不同的測試軟件,就可以構(gòu)成不同功能的儀器。虛擬儀器能提供給用戶一個充分發(fā)揮自己才能和想象力的空間,用戶可以隨心所欲地設(shè)計和構(gòu)造自己的儀器系統(tǒng)以滿足多種多樣的測試需求,而所需的只是一些必要的硬件、軟件加上通用計算機(jī)。儀器的智能化和虛擬化已經(jīng)成為未來各級實驗室以及研究機(jī)構(gòu)發(fā)展的方向,“The Soft is Instruments(軟件就是儀器)”正在被廣大科技、教學(xué)工作者逐步接受。
繼“軟件就是儀器”的概念之后,出現(xiàn)了“網(wǎng)絡(luò)就是儀器”的新觀念。遠(yuǎn)程虛擬儀器就是虛擬儀器在網(wǎng)絡(luò)領(lǐng)域的擴(kuò)展。遠(yuǎn)程虛擬儀器技術(shù)結(jié)合了虛擬儀器技術(shù)與網(wǎng)絡(luò)技術(shù),將虛擬儀器的應(yīng)用范圍拓展到整個Internet網(wǎng)上,使信號采集、傳輸和處理一體化,一方面可以使許多昂貴的硬件資源得以共享,充分利用現(xiàn)有的實驗室資源; 另一方面還有利于遠(yuǎn)程教育實驗教學(xué)的開展,從而解決限制遠(yuǎn)程教育中的實驗教學(xué)進(jìn)行的難題。因此構(gòu)建基于Internet上的遠(yuǎn)程虛擬儀器實驗系統(tǒng)已經(jīng)成為虛擬儀器應(yīng)用發(fā)展的一個重要的環(huán)節(jié)。遠(yuǎn)程虛擬儀器結(jié)構(gòu)模式如圖1所示。
圖1 遠(yuǎn)程虛擬儀器的結(jié)構(gòu)模式
遠(yuǎn)程虛擬儀器的實現(xiàn)
無論哪種遠(yuǎn)程虛擬儀器系統(tǒng),都是將硬件儀器(傳感器、調(diào)理放大器、A/D卡)搭載到遠(yuǎn)端服務(wù)器上,加上應(yīng)用軟件并和本地的筆記本電腦、臺式 PC 機(jī)或工作站等各種計算機(jī)通過網(wǎng)絡(luò)相連而構(gòu)成的,實現(xiàn)了用計算機(jī)和網(wǎng)絡(luò)技術(shù)的全數(shù)字化的采集測試分析,因此遠(yuǎn)程虛擬儀器的發(fā)展跟計算機(jī)和網(wǎng)絡(luò)技術(shù)的發(fā)展步伐完全同步,顯示出其靈活性和強(qiáng)大的生命力,Internet為實現(xiàn)遠(yuǎn)程虛擬儀器系統(tǒng)提供了一個很好的平臺,利用瀏覽器/服務(wù)器模式,操控者可以在瀏覽器端控制遠(yuǎn)程服務(wù)器進(jìn)行測試以及進(jìn)行遠(yuǎn)程實驗的操作,從而實現(xiàn)對遠(yuǎn)地實驗系統(tǒng)的遠(yuǎn)程控制和監(jiān)控。
遠(yuǎn)程虛擬儀器是虛擬儀器在網(wǎng)絡(luò)領(lǐng)域的拓展,除了具備虛擬儀器的全部優(yōu)點外,主要優(yōu)勢還在于不受地域、環(huán)境的限制。用網(wǎng)絡(luò)技術(shù)組建的遠(yuǎn)程虛擬儀器系統(tǒng),可以使信號采集、傳輸和處理一體化,不但可以共享許多昂貴的硬件資源,而且還便于擴(kuò)展測試系統(tǒng)、提高測試效率,所以應(yīng)用極為廣泛,是科研、教育、開發(fā)、測量、檢測、計量、測控等領(lǐng)域不可多得的好工具,更值得一提的是它的出現(xiàn)對遠(yuǎn)程醫(yī)療、遠(yuǎn)程診斷等新興領(lǐng)域的發(fā)展有重要意義,也使現(xiàn)代遠(yuǎn)程教育的全面開展成為可能,同時也會使教學(xué)實驗走上一個新的發(fā)展高度。
遠(yuǎn)程虛擬儀器開發(fā)和實現(xiàn)方案
Internet 網(wǎng)絡(luò)技術(shù)和基于計算機(jī)技術(shù)的虛擬儀器(VI)系統(tǒng)技術(shù)正在推動著遠(yuǎn)程測控技術(shù)的迅速發(fā)展。基于 Internet 的遠(yuǎn)程測控開發(fā)主要研究和討論基于Web的虛擬儀器技術(shù),本文則基于最流行的現(xiàn)場測控開發(fā)平臺LabVIEW,討論了四種用于開發(fā)遠(yuǎn)程虛擬儀器的技術(shù)實現(xiàn)過程及其工作原理,并對其實現(xiàn)特點進(jìn)行了分析。
1. DataSocket 技術(shù)
LabVIEW 具有強(qiáng)大的網(wǎng)絡(luò)通信功能,這種功能使得 LabVIEW 的用戶可以很容易地編寫出具有強(qiáng)大網(wǎng)絡(luò)通信能力的 LabVIEW 應(yīng)用軟件,實現(xiàn)遠(yuǎn)程虛擬儀器。DataSocket 是 LabVIEW 最新提供的一個網(wǎng)絡(luò)測控系統(tǒng)開發(fā)工具,它大大簡化甚至免除了網(wǎng)絡(luò)通信編程,用戶使用這種技術(shù)可以很容易地在互聯(lián)網(wǎng)上實現(xiàn)高速實時數(shù)據(jù)交換。借助它可以在不同的應(yīng)用程序和數(shù)據(jù)源之間共享數(shù)據(jù)并進(jìn)行實時數(shù)據(jù)(Live data)的傳輸。圖2描述了 DataSocket 的體系結(jié)構(gòu)。
DataSocket 可以訪問本地文件以及 HTTP 和 FTP 服務(wù)器上的數(shù)據(jù),并為低層通信協(xié)議提供了統(tǒng)一的 API 函數(shù),編程人員無需為不同的數(shù)據(jù)格式和通信協(xié)議編寫具體的通信程序代碼。DataSocket 使用一種增強(qiáng)型數(shù)據(jù)類型來交換儀器類型的數(shù)據(jù),這種數(shù)據(jù)類型包括數(shù)據(jù)特性(如采樣率、操作員、通道數(shù)、時間、及采樣精度)和實際測試數(shù)據(jù)。
DataSocket 遵循了 TCP/IP 協(xié)議,并對底層進(jìn)行了高度封裝,所提供的參數(shù)簡單友好,用類似與 Web 中的統(tǒng)一資源定位符(Uniform Resource Locator,URL)定位數(shù)據(jù)源,URL 不同的前綴代表了不同的數(shù)據(jù)類型。FILE 表示本地文件,HTTP 為超文本傳輸資源,F(xiàn)TP 為文件傳輸服務(wù)器上的資源,OPC表示訪問的資源是 OPC 服務(wù)器,DSTP(DataSocket Transfer Protocal,DataSocket 傳輸協(xié)議)則說明數(shù)據(jù)是來自 DataSocket 服務(wù)器的實時數(shù)據(jù)。
2. 基于 ActiveX 技術(shù)
組件式技術(shù)已經(jīng)成為當(dāng)今軟件技術(shù)的潮流之一,組件式技術(shù)是一種廣泛的體系結(jié)構(gòu),支持包括設(shè)計、開發(fā)和部署在內(nèi)的整個生命周期計算的理念,它將徹底改變目前軟件生產(chǎn)和開發(fā)的模式。組件是一種能夠提供某種服務(wù)的自包含的軟件模塊,它封裝了一定的數(shù)據(jù)(屬性)和方法,并提供特定的接口,開發(fā)人員利用這一特定的接口來使用組件,并使其與其它組件交互通信,以此來構(gòu)造應(yīng)用程序,用戶可根據(jù)自己的需求靈活購買軟件組件。他們只需編寫一些“膠水編碼”將各個組件“粘”起來,便可構(gòu)建自己的應(yīng)用系統(tǒng),就如同今天我們購買板卡組裝計算機(jī)一樣簡單。
目前,基于組件式技術(shù)的規(guī)范主要有 Microsoft 的 COM/ActiveX 和 Sun的 Java/JavaBeans。由于 Microsoft 的 Windows 操作系統(tǒng)已經(jīng)成為桌面 PC 操作系統(tǒng)的事實上的標(biāo)準(zhǔn),所以 COM/ActiveX 得到了許多第三方廠商的支持。利用 COM/ActiveX 技術(shù),我們可創(chuàng)建各式各樣的桌面和 Internet 應(yīng)用程序。ActiveX 控件技術(shù)是 COM/ActiveX 技術(shù)的重要組成部分,是 COM 技術(shù)在 Internet 上的擴(kuò)展。ActiveX 是一種可以在應(yīng)用程序和網(wǎng)絡(luò)十計算機(jī)上重復(fù)使用的程序?qū)ο蟆?chuàng)建它的主要技術(shù)是 Microsoft 的 COM/ActiveX 技術(shù),組件對象模型(COM)是其基礎(chǔ)。ActiveX 控件可以以小程戶下載裝入網(wǎng)頁,也可以用在一般的 Windows 應(yīng)用程序環(huán)境中。
ActiveX 控件可以由不同的可以識別 Microsoft 的 COM 技術(shù)的語言開發(fā),它是一個組件,它可以在同一個或分布式的計算環(huán)境中開發(fā)或使用。COM 的分布式支持技術(shù)稱為 DCOM。在實現(xiàn)中,ActiveX 控件是一個動態(tài)鏈接庫(DLL)模塊,它包括在容器(包括 COM 程序接口的應(yīng)用程序)當(dāng)中,這種可重復(fù)使用的組件技術(shù)可以加快開發(fā)速度和質(zhì)量。
通常情況下,基于以下三點可以考慮采用 ActiveX 控件實現(xiàn)遠(yuǎn)程測控功能:
● 瀏覽器對組件技術(shù),尤其是ActiveX 的廣泛支持;
● ActiveX 控件在客戶端的執(zhí)行效率要高于 JavaApplet;
● 易于開發(fā),Delphi 開發(fā)的程序可以直接以 ActiveX 控件形式進(jìn)行網(wǎng)絡(luò)開發(fā)。
在遠(yuǎn)程測控系統(tǒng)開發(fā)中,我們可以用 Borland Delphi 開發(fā)平臺對遠(yuǎn)程測控客戶端軟件進(jìn)行重新開發(fā),并以 ActiveX 控件的形式進(jìn)行封裝。當(dāng)客戶端在訪問服務(wù)器網(wǎng)頁時,會自動下載和運行該 ActiveX 控件程序,從而實現(xiàn)了類似Java Applet 程序所實現(xiàn)的功能。
3. 基于 Java Applet 技術(shù)
(1)Java Applet 技術(shù)的特點
首先,Applet 程序是從服務(wù)器端自動下載到客戶端執(zhí)行,并且是嵌入到瀏覽器中運行。對用戶而言,這與一般的上網(wǎng)瀏覽沒有任何區(qū)別,Applet 只能在瀏覽器環(huán)境內(nèi)運行,只需所用的瀏覽器支持 Java 即可,而當(dāng)前幾乎所有的瀏覽器均支持 Java 并擁有 Java 虛擬機(jī),無須下載插件。而且,Java 方便的語言操作能力,無論在界面操作還是程序設(shè)計上,均給開發(fā)人員帶來極大的便利。
其次,Java 語言具有強(qiáng)大而完善的網(wǎng)絡(luò)開發(fā)功能。在 Applet 程序中,很容易就可以實現(xiàn)同遠(yuǎn)程服務(wù)器之間建立連接并控制數(shù)據(jù)傳遞。當(dāng)客戶端打開服務(wù)器網(wǎng)頁時,會自動下載和啟動 Applet 程序,這樣,客戶端只需簡單操作 Applet程序即可控制遠(yuǎn)端系統(tǒng)工作和結(jié)果數(shù)據(jù)傳輸。
第三,由于 Java 本身是一種優(yōu)秀的跨平臺語言,這使得無論在 Windows操作系統(tǒng)還是 Unix 系統(tǒng)抑或是 Linux 系統(tǒng)下,針對客戶端開發(fā)的 Applet 程序都無須修改而做到完全移植。這一特點很大程度地擴(kuò)展了遠(yuǎn)程測控系統(tǒng)的應(yīng)用范圍。
(2)Java Applet的工作原理及通信過程
應(yīng)用本方案實現(xiàn)的遠(yuǎn)程測控系統(tǒng)的基本結(jié)構(gòu)示意圖如圖3所示??蛻舳擞蓛蓚€部分組成,一個是網(wǎng)絡(luò)瀏覽器,另一部分則是嵌入到瀏覽器頁面中運行的 Java Applet 程序,客戶端通過 Internet 和支持 Java Applet 的瀏覽器來訪問服務(wù)器,自動下載并運行 Applet。服務(wù)器端由 Web 服務(wù)器、LabVIEW 程序和DataServer 三部分組成。Web 服務(wù)器為客戶端提供 WWW 服務(wù),使得客戶端能夠通過瀏覽器訪問服務(wù)器。LabVIEW 程序負(fù)責(zé)服務(wù)器端的現(xiàn)場測控。而 Data Server 一方面同客戶端 JavaApplet 程序建立網(wǎng)絡(luò)連接,作為 Applet 程序的數(shù)據(jù)服務(wù)器,按受客戶端 Applet 程序的請求并傳送數(shù)據(jù); 另一方面又負(fù)責(zé)響應(yīng)Applet 程序的請求,以客戶方式對 LabVIEW 程序進(jìn)行相應(yīng)的控制。
具體過程如下:
①客戶端 Web 瀏覽器請求服務(wù)器端的網(wǎng)頁,JavaApplet 自動下載到客戶端并啟動運行。建立客戶端于服務(wù)器端 Data Server 的網(wǎng)絡(luò)連接。
②Applet 向 Data Server 發(fā)送數(shù)據(jù)請求,實現(xiàn)數(shù)據(jù)接收和顯示。
③Applet 程序獲取鼠標(biāo)和鍵盤事件,并發(fā)送到服務(wù)器端的 Data Server,Data Server 對 LabVIEW 程序進(jìn)行相應(yīng)的控制,從而間接實現(xiàn)遠(yuǎn)程控制。
4. AppletVIEW 技術(shù)
AppletVIEW 是 Nacimiento Software Corporation 的產(chǎn)品,它能夠把由LabVIEW 以及 LabWindow/CVI 生成的虛擬儀器發(fā)布到 Web 上。
(1) AppletVIEW 技術(shù)的特點
客戶端程序采用 AppletVIEW 開發(fā)實現(xiàn),AppletVIEW 是一個為 LabVIEW開發(fā) Web 應(yīng)用程序的軟件,可以實現(xiàn) B/S 模式虛擬儀器。它為服務(wù)器端提供了網(wǎng)絡(luò)開發(fā)的 G 語言支持,從而在服務(wù)器端,可以在 LabVIEW 平臺上結(jié)合AppletVIEW 的代理功能更好的解決網(wǎng)絡(luò)多用戶問題。而且,數(shù)據(jù)的傳輸是基于 Socket 的一種傳輸方式,具有較高的數(shù)據(jù)吞吐量。針對客戶端程序開發(fā),AppletVIEW 提供了一個友好的可視化開發(fā)環(huán)境和—些測控常用的組件,這個環(huán)境也加快了客戶端程序的設(shè)計開發(fā)。
(2) AppletVIEW 的工作原理及通信過程
AppleWIEW 開發(fā)包的一部分是 VITP 服務(wù)器,它負(fù)責(zé)處理本地儀器和遠(yuǎn)端儀器的經(jīng)由 Web 的通信。在服務(wù)器端的儀器系統(tǒng)里,它作為 LabVIEW 程序運行,提供了一個在 AppletVIEW 子儀器和遠(yuǎn)端儀器之間的接口界面。此服務(wù)器管理經(jīng)過 AppletVIEW 子儀器的來自以及送入虛擬儀器的數(shù)據(jù),并且通過JavaApplet ID 以及一組數(shù)據(jù)管道在本地儀器和遠(yuǎn)端儀器間進(jìn)行通信。在遠(yuǎn)端可以監(jiān)控本地儀器的運行狀態(tài),具體通信過程如圖4所示,過程描述如下:
1-2: Web 瀏覽器從 Web 服務(wù)器請求 HTML 頁面,Web 服務(wù)器發(fā)送此頁面到 Web 瀏覽器。
3-4: 在瀏覽器端,帶有< Applet>標(biāo)示的 HTML 頁面說明有 Java 程序被調(diào)用,Web 瀏覽器的 Java 虛擬機(jī)運行并從 Web 服務(wù)器請求 Applet 類文件。需要的 Java 類文件在 AppletVIEW.jar 中。
5: 服務(wù)器發(fā)送 AppletVIEW.jar 到 Web 瀏覽器。
6-7: AppletVIEW.jar 加載后,程序開始運行,請求“configureFile”中的參數(shù)。
8: Appletbuilder 生成的 MyApplet.jvi 被送到 Web 瀏覽器的程序中。
9: Java 程序與服務(wù)器通過數(shù)據(jù)端口(默認(rèn) 4749)建立 TCP/IP 連接,通信過程建立。
鏈接:四種實現(xiàn)方案比較
基于DataSocket技術(shù)的遠(yuǎn)程測控方案,優(yōu)點是DataSocket定義了一個測控數(shù)據(jù)傳輸協(xié)議,從而利用這種方法可以達(dá)到很高的數(shù)據(jù)傳輸效率,實時性能相當(dāng)好。缺點是它只能實現(xiàn)C/S模式而不能實現(xiàn)B/S模式,需要同時開發(fā)服務(wù)器端程序和客戶端程序,客戶端控制功能太弱,尚有待加強(qiáng)。
基于ActiveX實現(xiàn)方案,在實現(xiàn)上采用 Delphi開發(fā),它的優(yōu)點是開發(fā)效率高,而且一旦程序下載成功,比起同樣功能的Java 程序具有更高的執(zhí)行速度和效率,占用的系統(tǒng)資源也相對比較少; 但是,實驗證明,它生成的ActiveX控件程序的尺寸比 Java 程序要大許多,客戶端需要花費大量的時間來下載這個程序。
基于Java Applet技術(shù)的優(yōu)點是可以實現(xiàn)B/S模式,只需開發(fā)服務(wù)器端程序,開發(fā)效率高,客戶端無須下載插件,程序較小便于下載執(zhí)行; 缺點是圖像質(zhì)量差,動態(tài)顯示有跳動感不連續(xù)。
基于AppletVIEW組件技術(shù)實現(xiàn)的遠(yuǎn)程測控方案,可以實現(xiàn)B/S模式,AppletVIEW 是第三方開發(fā)的遠(yuǎn)程測控專用組件,為遠(yuǎn)程測控系統(tǒng)提供了可視化開發(fā)環(huán)境,能把LabVIEW儀器面板自動生成Java儀器面板,所以具有很高的開發(fā)效率。而且,數(shù)據(jù)的傳輸是基于Socket的一種傳輸方式,具有較高的數(shù)據(jù)吞吐量,缺點是需要修改本地測控程序,并在本地VI程序中調(diào)用AppletVIEW提供的一些網(wǎng)絡(luò)控件VI,來與瀏覽器端的Java程序通信,從而實現(xiàn)網(wǎng)絡(luò)測控。
遠(yuǎn)程虛擬儀器是虛擬儀器在網(wǎng)絡(luò)領(lǐng)域的拓展,它的許多優(yōu)點使其應(yīng)用極為廣泛,是科研、教育、開發(fā)、測量、檢測、計量、測控等領(lǐng)域不可多得的好工具。網(wǎng)絡(luò)通信技術(shù)和虛擬儀器技術(shù)相結(jié)合是本文的討論重點,文中對遠(yuǎn)程虛擬儀器的網(wǎng)絡(luò)結(jié)構(gòu)及構(gòu)成、開發(fā)方案及工作原理都作了較為系統(tǒng)的研究。最后再給出幾點經(jīng)驗和建議:
(1) 如果是實驗室或小范圍的遠(yuǎn)程測控,可采用C/S模式,客戶端實現(xiàn)與服務(wù)器直接相連,沒有中間環(huán)節(jié),因此響應(yīng)速度快。如果是遠(yuǎn)距離、大范圍的遠(yuǎn)程測控工作,可采用B/S模式,具有分布性特點,可以隨時隨地進(jìn)行操作,而且升級維護(hù)方便。
(2) DataSocket定義了一個測控數(shù)據(jù)傳輸協(xié)議,數(shù)據(jù)傳輸效率高,實時性能好,但只能實現(xiàn)C/S模式。而基于ActiveX 技術(shù)開發(fā)效率高,具有更高的執(zhí)行速度和效率,但生成的ActiveX控件的尺寸較大,客戶端需要花費大量的時間來下載這個程序。采用Java Applet技術(shù)可以實現(xiàn)B/S模式,開發(fā)效率高,實驗證明圖像質(zhì)量差,動態(tài)顯示有跳動感不連續(xù)?;贏ppletVIEW組件技術(shù)可以實現(xiàn)B/S模式,開發(fā)效率高,數(shù)據(jù)的傳輸是基于Socket的一種傳輸方式,具有較高的數(shù)據(jù)吞吐量,試驗結(jié)果表明,系統(tǒng)穩(wěn)定可靠,實時性好。
(3) 服務(wù)器端IIS中的Web服務(wù)器使用的是8080端口,和LabVIEW中的Web服務(wù)器沖突,應(yīng)修改端口號或關(guān)閉IIS中的 Web 服務(wù)器,這樣才能使AppletVIEW通過8080端口和LabVIEW通信。
網(wǎng)絡(luò)技術(shù)和虛擬儀器的結(jié)合,使 VI 拓展到真正的分布式網(wǎng)絡(luò)測試應(yīng)用環(huán)境中去,對于豐富測試手段,提高測試效率,共享信息,充分合理地利用現(xiàn)有資源都有著很好的作用,將成為現(xiàn)代儀器儀表發(fā)展的方向。
評論