韓 立,秦樹(shù)人
(1.中國(guó)土地勘測(cè)規(guī)劃院,北京 100035;2.重慶大學(xué)測(cè)試中心,重慶 400044)
虛擬儀器以計(jì)算機(jī)作為儀器的硬件支撐,把傳統(tǒng)儀器的專業(yè)化功能軟件化,使之與計(jì)算機(jī)結(jié)合起來(lái),用戶可以通過(guò)友好的圖形界面來(lái)操作這臺(tái)計(jì)算機(jī),就像在操作自己定義、自己設(shè)計(jì)的一臺(tái)儀器一樣,從而完成對(duì)被測(cè)對(duì)象的數(shù)據(jù)采集、分析、判斷、顯示、數(shù)據(jù)存儲(chǔ)等[1]。網(wǎng)絡(luò)化測(cè)試儀器是繼虛擬儀器之后儀器儀表領(lǐng)域出現(xiàn)的又一個(gè)新的發(fā)展方向,它是將Internet技術(shù)與虛擬儀器技術(shù)相結(jié)合,繼承并發(fā)展了虛擬儀器的概念,延伸和擴(kuò)大了虛擬儀器的資源。網(wǎng)絡(luò)化儀器充分利用網(wǎng)絡(luò),將虛擬儀器的各個(gè)功能分布到網(wǎng)絡(luò)上的不同位置,非常靈活地完成各種測(cè)試任務(wù)[2]。通過(guò)網(wǎng)絡(luò)還可以共享各種資源,利于同行之間的交流溝通。網(wǎng)絡(luò)化儀器已廣泛應(yīng)用于遠(yuǎn)程測(cè)試、故障監(jiān)測(cè)、遠(yuǎn)程控制等領(lǐng)域。
該文以基于Web的網(wǎng)絡(luò)化頻譜分析儀為例對(duì)網(wǎng)絡(luò)儀器系統(tǒng)進(jìn)行分析,網(wǎng)絡(luò)儀器是由硬件采集系統(tǒng)、服務(wù)器、數(shù)據(jù)庫(kù)和信號(hào)分析處理等組成,它的系統(tǒng)結(jié)構(gòu)如圖1所示。
用戶首先通過(guò)Web瀏覽器登陸服務(wù)器,并從Web服務(wù)器下載頻譜分析儀用戶端程序,用戶端程序可以自動(dòng)嵌入到瀏覽器中運(yùn)行并與數(shù)據(jù)服務(wù)組件通信。
圖1 網(wǎng)絡(luò)化頻譜分析儀的系統(tǒng)結(jié)構(gòu)
在用戶端進(jìn)行各種設(shè)置后,就可以通過(guò)數(shù)據(jù)服務(wù)器控制采集計(jì)算機(jī)進(jìn)行數(shù)據(jù)采集。
信號(hào)采集系統(tǒng)由信號(hào)調(diào)理器、PCI總線的數(shù)據(jù)采集卡組成。信號(hào)傳送到信號(hào)調(diào)理電路,由信號(hào)調(diào)理電路對(duì)它進(jìn)行放大、濾波、隔離等處理,調(diào)理后的信號(hào)經(jīng)數(shù)據(jù)采集卡進(jìn)行A/D轉(zhuǎn)換,將模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),送入采集計(jì)算機(jī)。采集計(jì)算機(jī)與數(shù)據(jù)服務(wù)組件進(jìn)行數(shù)據(jù)通信,將信號(hào)發(fā)送到頻譜分析儀的用戶端程序,用戶端程序?qū)y(cè)試信號(hào)進(jìn)行頻譜分析和處理,得到測(cè)試結(jié)果,并按要求顯示,將結(jié)果存儲(chǔ)在數(shù)據(jù)庫(kù)中。此外用戶還可以獲得數(shù)據(jù)庫(kù)中的歷史數(shù)據(jù)進(jìn)行分析,并將分析結(jié)果存儲(chǔ)在數(shù)據(jù)庫(kù)中。
網(wǎng)絡(luò)化頻譜分析儀用戶端如圖2,它提供了單通道頻譜分析儀功能,信號(hào)獲取后,即可以進(jìn)行信號(hào)的測(cè)試和分析。其主要功能有時(shí)域統(tǒng)計(jì)分析、幅值域分析、相關(guān)分析、頻譜分析、數(shù)字濾波等。如果網(wǎng)絡(luò)帶寬允許,還能夠?qū)崟r(shí)觀察輸入信號(hào)的時(shí)域顯示和頻域顯示。在進(jìn)行實(shí)時(shí)顯示時(shí),采樣頻率受到網(wǎng)絡(luò)傳輸帶寬的限制,兩者的關(guān)系如下:
采樣頻率≤網(wǎng)絡(luò)帶寬/8s(數(shù)據(jù)采用float類型時(shí)s=4;采用 double類型時(shí) s=8)
圖2 網(wǎng)絡(luò)化頻譜分析儀用戶端
面板上可選擇數(shù)據(jù)獲取的類型,設(shè)置采樣參數(shù);在顯示區(qū)域可以對(duì)顯示的波形進(jìn)行放大縮小操作,可以翻頁(yè);可以進(jìn)行光標(biāo)讀數(shù),任意兩點(diǎn)數(shù)據(jù)進(jìn)行對(duì)比等操作。
系統(tǒng)采用Visual Studio.net 2003開(kāi)發(fā)平臺(tái),它提供一個(gè)統(tǒng)一的集成開(kāi)發(fā)環(huán)境及工具,大大提高了開(kāi)發(fā)者的效率;集成了多種語(yǔ)言支持;簡(jiǎn)化了服務(wù)器端的開(kāi)發(fā);提供了高效地創(chuàng)建和使用網(wǎng)絡(luò)服務(wù)的方法,可以高效地開(kāi)發(fā)Internet應(yīng)用程序。在該平臺(tái)下,主要采用以下技術(shù)完成系統(tǒng)的開(kāi)發(fā)。
(1).net組件。.net組件技術(shù)最重要的特點(diǎn)就是其組件所具有的“即插即用”的能力,可以提高效率,有利于程序的部署,無(wú)需注冊(cè)到Windows注冊(cè)表中便能安裝。在組件部署時(shí)將用戶界面組件和它的顯示頁(yè)面放于IIS同一目錄下,在顯示頁(yè)面中包含如下代碼,用于組件的自動(dòng)加載。
(2)asp.net。asp.net運(yùn)行在服務(wù)器端,使用編譯后的語(yǔ)言,提高了性能和伸縮性。
(3)Socket。在系統(tǒng)中,使用Socket套接字進(jìn)行通信。通信協(xié)議采用TCP協(xié)議,保證數(shù)據(jù)傳輸?shù)目煽啃浴?/p>
(4)ado.net和數(shù)據(jù)庫(kù)。ado.net用于數(shù)據(jù)庫(kù)的連接,相對(duì)于ado更具有通用性,它聚集了所有可以進(jìn)行數(shù)據(jù)處理的類,比如索引、排序、瀏覽等。數(shù)據(jù)庫(kù)采用SQLServer2000。
(5)多線程。在系統(tǒng)設(shè)計(jì)中,利用多線程技術(shù)實(shí)現(xiàn)人機(jī)交互、網(wǎng)絡(luò)數(shù)據(jù)傳輸、數(shù)據(jù)分析處理和圖形顯示等多任務(wù)同時(shí)進(jìn)行。
利用組件技術(shù)構(gòu)建各種組件,將組件部署在網(wǎng)絡(luò)的不同位置完成系統(tǒng)的功能[3]。根據(jù)需要實(shí)現(xiàn)了以下組件:用戶界面、信號(hào)采集、數(shù)據(jù)服務(wù)、信號(hào)分析處理、數(shù)據(jù)庫(kù)連接組件、登錄組件,組件在系統(tǒng)中的位置如圖3所示。
系統(tǒng)運(yùn)行過(guò)程包括用戶登錄、數(shù)據(jù)獲取、信號(hào)處理分析和數(shù)據(jù)存儲(chǔ)等。
(1)用戶登錄。用戶通過(guò)瀏覽器訪問(wèn)IIS服務(wù)器,首先顯示用戶登陸頁(yè)面,瀏覽器將用戶名和密碼發(fā)送至服務(wù)器,登錄組件根據(jù)用戶名和密碼判斷用戶是否有權(quán)限運(yùn)行網(wǎng)絡(luò)化頻譜分析儀。數(shù)據(jù)庫(kù)將用戶登陸的信息記錄下來(lái)。通過(guò)驗(yàn)證后,客戶端自動(dòng)從服務(wù)器下載.net用戶端組件,并嵌入瀏覽器中運(yùn)行。該組件可顯示虛擬儀器面板,連接數(shù)據(jù)服務(wù)組件傳輸數(shù)據(jù),并對(duì)信號(hào)進(jìn)行分析處理。
圖3 網(wǎng)絡(luò)化儀器組件構(gòu)成
數(shù)據(jù)獲取。數(shù)據(jù)獲取有兩種方式,一種是獲取實(shí)時(shí)數(shù)據(jù),另一種是獲取歷史數(shù)據(jù)。因?yàn)橥粫r(shí)刻只能有一個(gè)用戶擁有采集卡的控制權(quán),所以獲取實(shí)時(shí)數(shù)據(jù)時(shí)只有一個(gè)用戶可以設(shè)置信號(hào)采集的參數(shù),獲得符合自己要求的信號(hào),其他用戶有3種選擇:
等待對(duì)采集卡的控制權(quán),在數(shù)據(jù)服務(wù)組件中有一個(gè)排隊(duì)隊(duì)列,用于對(duì)發(fā)出請(qǐng)求采集卡控制權(quán)的用戶進(jìn)行排隊(duì)。當(dāng)擁有控制權(quán)的用戶完成對(duì)數(shù)據(jù)的采集后,將控制權(quán)交給隊(duì)列中第一個(gè)用戶。定時(shí)對(duì)隊(duì)列的用戶狀態(tài)進(jìn)行查詢,排除放棄請(qǐng)求的用戶。
獲得和當(dāng)前控制采集卡的用戶同樣的數(shù)據(jù),數(shù)據(jù)服務(wù)組件將當(dāng)前采集的信號(hào)發(fā)送到這類用戶端。
獲取歷史數(shù)據(jù),將歷史數(shù)據(jù)從數(shù)據(jù)庫(kù)中提取出來(lái)進(jìn)行顯示分析。
(2)信號(hào)處理分析[4]。對(duì)獲得的數(shù)據(jù)進(jìn)行時(shí)域和頻域中的分析處理。為了減輕服務(wù)器的壓力,將這個(gè)功能與用戶界面一同部署在瀏覽器端,信號(hào)處理結(jié)果直接顯示在瀏覽器中。如果需要保存處理結(jié)果,可以通過(guò)數(shù)據(jù)服務(wù)組件連接數(shù)據(jù)庫(kù),將結(jié)果存于數(shù)據(jù)庫(kù)中。
(3)數(shù)據(jù)存儲(chǔ)。由于在瀏覽器中不能對(duì)硬盤進(jìn)行寫操作,所以需要將信號(hào)分析處理的結(jié)果保存在遠(yuǎn)程數(shù)據(jù)庫(kù)中。
組件設(shè)計(jì)采用面向?qū)ο蟮某绦蛟O(shè)計(jì),完成了以下.net組件:
(1)用戶界面組件用于顯示頻譜分析儀面板(見(jiàn)圖1)。面板包括時(shí)域與幅值譜旋鈕,可以實(shí)現(xiàn)時(shí)域分析和頻域分析;功率譜密度旋鈕,可以實(shí)現(xiàn)頻域分析;濾波與相關(guān)旋鈕,實(shí)現(xiàn)數(shù)字濾波和自相關(guān)功能;窗函數(shù)旋鈕,實(shí)現(xiàn)對(duì)窗函數(shù)的選擇,可選擇矩形窗、漢寧窗、海明窗、布克窗、高斯窗、余弦窗等;數(shù)據(jù)獲取按鈕,包括4種獲取方式,實(shí)時(shí)數(shù)據(jù)、實(shí)時(shí)獲取且顯示波形、共享數(shù)據(jù)和歷史數(shù)據(jù);數(shù)字濾波控制按鈕,包括高通、低通、帶通、帶阻、設(shè)置和存盤。
(2)信號(hào)分析處理組件對(duì)信號(hào)在用戶端進(jìn)行時(shí)域和頻域的分析處理。時(shí)域分析包括顯示時(shí)域波形、統(tǒng)計(jì)特征值、概率直方圖、概率密度函數(shù);頻域分析包括加窗函數(shù)、幅值譜、對(duì)數(shù)幅值譜、幅值倒頻譜、功率譜、功率譜密度、對(duì)數(shù)譜密度、功率譜密度倒頻譜等,還可以進(jìn)行數(shù)字濾波和自相關(guān)分析。
(3)數(shù)據(jù)服務(wù)組件是該系統(tǒng)的核心,它負(fù)責(zé)與用戶界面組件、信號(hào)分析處理組件、數(shù)據(jù)庫(kù)連接組件、信號(hào)采集組件等進(jìn)行相互通信。在系統(tǒng)中利用多線程技術(shù)管理與各個(gè)組件之間的通信。圖4表示數(shù)據(jù)服務(wù)組件通信示意圖。
圖4 數(shù)據(jù)服務(wù)組件結(jié)構(gòu)
用戶偵聽(tīng)線程偵聽(tīng)來(lái)自用戶端的連接,并創(chuàng)建線程與用戶建立連接。創(chuàng)建的線程添加到數(shù)據(jù)服務(wù)組件的線程數(shù)組中,通過(guò)該線程數(shù)組對(duì)所有用戶連接線程進(jìn)行管理。對(duì)應(yīng)數(shù)據(jù)的3種獲取方式,這些連接線程也分為3種。在圖4中線程3獲取采集卡的實(shí)時(shí)數(shù)據(jù),線程4獲得數(shù)據(jù)庫(kù)中的歷史數(shù)據(jù),線程5獲得實(shí)時(shí)共享數(shù)據(jù)。線程1是與數(shù)據(jù)采集通信的線程,線程2是與數(shù)據(jù)庫(kù)連接通信的線程。
系統(tǒng)啟動(dòng)后,數(shù)據(jù)服務(wù)組件進(jìn)行初始化,打開(kāi)用戶偵聽(tīng)線程。如果用戶請(qǐng)求獲得采集卡的數(shù)據(jù),則將采樣指令發(fā)給數(shù)據(jù)采集線程。數(shù)據(jù)采集線程將采集的數(shù)據(jù)發(fā)送到共享數(shù)據(jù)緩存,共享數(shù)據(jù)緩存的數(shù)據(jù)發(fā)送給數(shù)據(jù)庫(kù)。如果這時(shí)有用戶請(qǐng)求實(shí)時(shí)共享數(shù)據(jù),則將數(shù)據(jù)緩存中的數(shù)據(jù)同時(shí)發(fā)送到該用戶。如果用戶請(qǐng)求數(shù)據(jù)庫(kù)中的歷史數(shù)據(jù),則如圖4中線程5所示,將數(shù)據(jù)庫(kù)中數(shù)據(jù)直接發(fā)送給用戶。
圖5 偏心電機(jī)振動(dòng)測(cè)試
圖6 測(cè)試分析結(jié)果
在TCP/IP網(wǎng)絡(luò)環(huán)境下,組件之間的通信過(guò)程是利用TCP/IP協(xié)議中的傳輸層接口Socket來(lái)實(shí)現(xiàn)。
(4)登錄組件。登錄組件接收用戶的請(qǐng)求信息,查詢數(shù)據(jù)庫(kù)以確定用戶是否有相應(yīng)權(quán)限,并且區(qū)分3種獲取數(shù)據(jù)的方式。
(5)信號(hào)采集。信號(hào)采集組件接收用戶發(fā)來(lái)的采集指令,將采集的數(shù)據(jù)發(fā)送到數(shù)據(jù)服務(wù)組件中。
信號(hào)采集組件部署在數(shù)據(jù)采集計(jì)算機(jī)上,為了更加容易地控制采集卡,信號(hào)采集程序采用了傳統(tǒng)的桌面程序。
(6)數(shù)據(jù)庫(kù)連接。該組件將數(shù)據(jù)庫(kù)連接、查詢、添加、刪除、存儲(chǔ)等功能封裝在一起,與數(shù)據(jù)服務(wù)組件部署在一起。
該測(cè)試實(shí)驗(yàn)采用ZK-3VIC型虛擬測(cè)試振動(dòng)與控制實(shí)驗(yàn)裝置的實(shí)驗(yàn)臺(tái)架[6],測(cè)試對(duì)象為偏心電動(dòng)機(jī)的振動(dòng)信號(hào)測(cè)試分析,如圖5所示[7]。實(shí)驗(yàn)設(shè)備準(zhǔn)備就緒后,用戶即可通過(guò)網(wǎng)絡(luò)訪問(wèn)Web服務(wù)器,基于Web的網(wǎng)絡(luò)化頻譜分析儀運(yùn)行如圖1所示。該儀器在內(nèi)部局域網(wǎng)運(yùn)行正常,圖6表示網(wǎng)絡(luò)化頻譜分析儀對(duì)偏心電機(jī)振動(dòng)信號(hào)的分析結(jié)果。
基于Web的網(wǎng)絡(luò)化頻譜分析儀采用網(wǎng)絡(luò)技術(shù)、組件技術(shù)、多線程技術(shù)將傳統(tǒng)虛擬儀器的面板和分析功能嵌入用戶瀏覽器中,實(shí)現(xiàn)分析儀器的功能,具有在用戶端不需要軟件安裝,只需要用戶利用瀏覽器連接Internet;用強(qiáng)大的數(shù)據(jù)庫(kù)服務(wù)器對(duì)用戶的數(shù)據(jù)進(jìn)行管理,提高了可靠性和安全性;用戶在使用儀器時(shí)不受地點(diǎn)限制等特點(diǎn)。
[1] Jamahl Overstreet,Anthony Tzes1.Internet-based client/server virtual instrument designs for real-time remoteaccess control engineering[C]∥IEEE American Control Conference,San Diego,CA USA,1999.
[2] 何嶺松,張蓉.基于Web的網(wǎng)絡(luò)化虛擬儀器技術(shù)及應(yīng)用[J].中國(guó)機(jī)械工程,2002,5(1):759-761.
[3]尹愛(ài)軍.秦氏模型——基于智能虛擬控件的儀器[M].2版.北京:科學(xué)出版社,2008(11):189-190.
[4] 秦樹(shù)人.工程信號(hào)處理[M].北京:科學(xué)出版社,2008(3):9-10
[5] 秦樹(shù)人.智能控件化虛擬儀器[M].北京:科學(xué)出版社,2004(9):159-163.
[6] 秦樹(shù)人.現(xiàn)代虛擬儀器[M].北京:機(jī)械工業(yè)工業(yè)出版社,2011(3):432.
[7]楊炯明.虛擬式旋轉(zhuǎn)機(jī)械振動(dòng)信號(hào)特征分析儀[J].中國(guó)機(jī)械工程,2005(3):432-435.