基于網(wǎng)絡(luò)的虛擬儀器測(cè)試系統(tǒng)
1、引言
隨著計(jì)算機(jī)技術(shù)、通信技術(shù)與儀器技術(shù)的深入發(fā)展和結(jié)合,使得虛擬儀器得到了進(jìn)一步發(fā)展,虛擬儀器將計(jì)算機(jī)資源與儀器硬件、數(shù)字信號(hào)處理技術(shù)結(jié)合,把廠家定義儀器功能的方式轉(zhuǎn)變?yōu)橛捎脩?hù)自己定義儀器功能。用戶(hù)可根據(jù)測(cè)試的需要,自己設(shè)計(jì)所需要的儀器系統(tǒng),利用一種或多種功能的通用模塊,調(diào)用不同功能的軟件模塊,組成不同的儀器功能。在虛擬儀器中,計(jì)算機(jī)成為儀器的一部分,使得計(jì)算機(jī)可以得到充分發(fā)揮。除了儀器的輸入、輸出、數(shù)據(jù)處理分析、結(jié)果顯示由計(jì)算機(jī)完成外,還可組成計(jì)算機(jī)網(wǎng)絡(luò)。一個(gè)大的復(fù)雜的測(cè)試系統(tǒng)往往系統(tǒng)的測(cè)量、輸入、輸出、結(jié)果分析分布在不同的地理位置,僅用一臺(tái)計(jì)算機(jī)并不能勝任測(cè)試任務(wù),需要由分布在不同地理位置的若干計(jì)算機(jī)共同完成整個(gè)測(cè)試任務(wù)。計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)、總線技術(shù)與數(shù)據(jù)庫(kù)技術(shù)的發(fā)展,乃至Internet網(wǎng)的發(fā)展拓展了虛擬儀器測(cè)試系統(tǒng)的應(yīng)用范圍。利用網(wǎng)絡(luò)技術(shù)將分散在不同地理位置不同功能的測(cè)試設(shè)備聯(lián)系在一起,使昂貴的硬件設(shè)備、軟件在網(wǎng)絡(luò)內(nèi)得以共享,減少了設(shè)備重復(fù)投資。一臺(tái)計(jì)算機(jī)采集的數(shù)據(jù)可以立即傳輸?shù)搅硪慌_(tái)處理分析機(jī)上進(jìn)行處理分析,分析后的結(jié)果可被執(zhí)行機(jī)構(gòu)、設(shè)計(jì)師查詢(xún)使用,使數(shù)據(jù)采集、傳輸、處理分析成為一體,容易實(shí)現(xiàn)實(shí)時(shí)采集、實(shí)時(shí)監(jiān)測(cè)。重要的數(shù)據(jù)實(shí)行多機(jī)備份,提高了系統(tǒng)的可靠性。對(duì)于有些危險(xiǎn)的、環(huán)境惡劣的不適合人員操作的數(shù)據(jù)采集工作可實(shí)行遠(yuǎn)程采集,將采集的數(shù)據(jù)放在服務(wù)器中供用戶(hù)使用。虛擬儀器與計(jì)算機(jī)網(wǎng)絡(luò)結(jié)合實(shí)現(xiàn)儀器的遠(yuǎn)程教學(xué),學(xué)生通過(guò)網(wǎng)絡(luò)學(xué)習(xí)儀器、操作儀器,這也是我們學(xué)校實(shí)驗(yàn)室建設(shè)的目標(biāo)。虛擬儀器計(jì)算機(jī)網(wǎng)絡(luò)化在測(cè)試系統(tǒng)中具有廣泛的應(yīng)用前景。
2、虛擬儀器網(wǎng)絡(luò)測(cè)試系統(tǒng)設(shè)計(jì)
虛擬儀器網(wǎng)絡(luò)測(cè)試系統(tǒng)的設(shè)計(jì)需從虛擬儀器和網(wǎng)絡(luò)技術(shù)兩方面考慮。
(1)虛擬儀器部分
分析測(cè)試系統(tǒng)的要求和系統(tǒng)的功能,根據(jù)系統(tǒng)功能的要求,在軟件和硬件之間進(jìn)行優(yōu)化選擇,從而確定儀器所必需的硬件模塊,以便用最少的模塊實(shí)現(xiàn)儀器的最佳功能。根據(jù)應(yīng)用情況與實(shí)際的條件選擇基于計(jì)算機(jī)的虛擬儀器的儀器模塊(VXI總線、PCI總線、PXI總線、GPIB儀器),包括傳感器、信號(hào)調(diào)理電路、DAQ數(shù)據(jù)采集、信號(hào)源等模塊。
硬件確定以后,主要確定軟件功能模塊,哪些儀器功能由軟件實(shí)現(xiàn),將軟件功能劃分為相對(duì)獨(dú)立的模塊。然后選擇易于編寫(xiě)的圖形化的軟件平臺(tái)。LabVIEW平臺(tái)是一種圖形化編程環(huán)境,提供了虛擬儀器的控件、豐富的數(shù)據(jù)處理分析函數(shù)、儀器驅(qū)動(dòng)程序及數(shù)據(jù)庫(kù)工具軟件包,LabVIEW提供的SQL、DataSocket軟件都是容易建立網(wǎng)絡(luò)化測(cè)試環(huán)境的軟件包。采用LabVIEW編寫(xiě)虛擬儀器軟件簡(jiǎn)化了程序設(shè)計(jì),提高了效率。我們利用LabVIEW和NI的數(shù)據(jù)采集卡實(shí)現(xiàn)了數(shù)據(jù)采集、虛擬示波器、虛擬信號(hào)發(fā)生器。
Virsual C++是一種面向?qū)ο蟮耐ㄓ玫墓δ軓?qiáng)大的程序設(shè)計(jì)語(yǔ)言,提供集成性及可視化用戶(hù)界面,采用面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,它具有底層操作功能,也具有數(shù)據(jù)庫(kù)開(kāi)發(fā)功能,編程靈活,因此也是編程人員常選用的編程語(yǔ)言,我們也用VC++編寫(xiě)了虛擬儀器平臺(tái),可以組建示波器、頻譜分析儀,信號(hào)發(fā)生器。現(xiàn)在我們計(jì)劃用VC編寫(xiě)數(shù)據(jù)庫(kù)軟件,實(shí)現(xiàn)網(wǎng)絡(luò)化虛擬儀器。
(2)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)
根據(jù)測(cè)試系統(tǒng)各部分所處的地理位置和覆蓋的范圍不同可構(gòu)建局域網(wǎng)、城域網(wǎng)、廣域網(wǎng)。一個(gè)大的復(fù)雜的測(cè)試系統(tǒng)由各個(gè)子系統(tǒng)組成,如一個(gè)航空白動(dòng)測(cè)試系統(tǒng),一個(gè)火炮測(cè)試系統(tǒng),要對(duì)其進(jìn)行環(huán)境測(cè)試、溫度測(cè)試、振動(dòng)測(cè)試,還有電子系統(tǒng)、通信系統(tǒng)的測(cè)試等等,每個(gè)子系統(tǒng)一般在一個(gè)單位的小范圍內(nèi),因此可建立局域網(wǎng),然后將每個(gè)局域網(wǎng)互聯(lián),形成企業(yè)測(cè)量系統(tǒng)。由于Internet網(wǎng)的發(fā)展,一些公用的數(shù)據(jù)還可以通過(guò)Internet網(wǎng)將測(cè)量數(shù)據(jù)發(fā)布到網(wǎng)上供網(wǎng)上用戶(hù)使用,可建立測(cè)量發(fā)布系統(tǒng)。對(duì)于有些危險(xiǎn)的、環(huán)境惡劣的不適合人員操作的數(shù)據(jù)采集工作可實(shí)行遠(yuǎn)程采集。
由于網(wǎng)絡(luò)測(cè)試中每個(gè)測(cè)試點(diǎn)擔(dān)任不同的測(cè)試任務(wù),為了減少不必要的重復(fù)工作,通過(guò)網(wǎng)絡(luò)實(shí)現(xiàn)資源共享,同時(shí)要減輕服務(wù)器與各節(jié)點(diǎn)的數(shù)據(jù)傳輸,提高網(wǎng)絡(luò)系統(tǒng)性能,因此服務(wù)器和各個(gè)節(jié)點(diǎn)以及各節(jié)點(diǎn)之間協(xié)同工作顯得尤為重要。基于Client/Server模式的分布式計(jì)算、分布式處理系統(tǒng)是解決這個(gè)問(wèn)題的最好選擇。基于C/S模式,將系統(tǒng)功能分解到各個(gè)節(jié)點(diǎn),各個(gè)節(jié)點(diǎn)有機(jī)配合,用戶(hù)在自己的終端上就可以觀察到從服務(wù)器中獲取的數(shù)據(jù)和處理結(jié)果。在C/S中,分客戶(hù)機(jī)(Client)程序和服務(wù)器(Sewer)程序。客戶(hù)機(jī)程序和服務(wù)器程序可以運(yùn)行在一臺(tái)計(jì)算機(jī)中,也可運(yùn)行在兩臺(tái)或多臺(tái)計(jì)算機(jī)中,Client程序與Sewer程序相互協(xié)同處理,一個(gè)測(cè)試系統(tǒng)由一個(gè)或承擔(dān)不同任務(wù)的多個(gè)客戶(hù)機(jī)與一個(gè)或多個(gè)服務(wù)器組成。客戶(hù)機(jī)是用戶(hù)與系統(tǒng)的交互接口,提供一個(gè)用戶(hù)界面,完成用戶(hù)命令與數(shù)據(jù)的輸入,顯示服務(wù)器送回的結(jié)果。服務(wù)器接受客戶(hù)機(jī)提出的申請(qǐng),完成所要求的操作并將結(jié)果傳送給用戶(hù)。在一個(gè)測(cè)試系統(tǒng)中,根據(jù)任務(wù)不同,每個(gè)服務(wù)器和客戶(hù)機(jī)承擔(dān)的任務(wù)也不同,例如可劃分為采集、數(shù)據(jù)處理分析、輸出、監(jiān)控。一臺(tái)計(jì)算機(jī)采集外部數(shù)據(jù),將來(lái)集的數(shù)據(jù)存儲(chǔ)并傳輸給另一臺(tái)計(jì)算機(jī),它就是服務(wù)器,另外它又需要得到遠(yuǎn)地計(jì)算機(jī)的數(shù)據(jù),這時(shí)它又成為客戶(hù)機(jī)。C/S模式是一種開(kāi)放式系統(tǒng)的協(xié)同處理工作模式。
設(shè)計(jì)C/S模式時(shí)應(yīng)首先分析系統(tǒng)所要達(dá)到的指標(biāo)和功能要求,在此基礎(chǔ)上,把系統(tǒng)劃分為各個(gè)相對(duì)獨(dú)立的模塊,分配到各個(gè)計(jì)算機(jī)上,每個(gè)計(jì)算機(jī)執(zhí)行不同的功能,能在客戶(hù)機(jī)上完成的獨(dú)立任務(wù)就不要放在服務(wù)器上,以減低服務(wù)器的工作量。第二,要保證數(shù)據(jù)在服務(wù)器和客戶(hù)機(jī)、客戶(hù)機(jī)間可靠的傳輸。設(shè)計(jì)時(shí)需考慮網(wǎng)絡(luò)的帶寬要滿足傳輸要求,并減少網(wǎng)絡(luò)數(shù)據(jù)傳輸量。其次主要考慮的一個(gè)主要方面是選擇服務(wù)器類(lèi)型。C/S模式中一種最基本的服務(wù)類(lèi)型就是數(shù)據(jù)庫(kù)服務(wù)器,還有事務(wù)處理服務(wù)器、應(yīng)用服務(wù)器、對(duì)象服務(wù)器類(lèi)型。如圖1-4

數(shù)據(jù)庫(kù)服務(wù)器中,客戶(hù)機(jī)使用一條SQL命令將服務(wù)請(qǐng)求發(fā)給數(shù)據(jù)庫(kù)服務(wù)器,數(shù)據(jù)庫(kù)將范圍服務(wù)結(jié)果傳給客戶(hù)機(jī)。事務(wù)處理服務(wù)器把完成一項(xiàng)較為復(fù)雜的數(shù)據(jù)處理過(guò)程作為一項(xiàng)事務(wù)來(lái)對(duì)待,用一組SQL命令表示事務(wù)處理過(guò)程,服務(wù)器執(zhí)行完這組命令后將結(jié)果返回客戶(hù)機(jī)。應(yīng)用服務(wù)器用來(lái)控制一臺(tái)信息、圖象或電子郵件顯示設(shè)備,控制電子公告牌、具有下載能力的處理機(jī)。對(duì)象服務(wù)器的應(yīng)用程序是作為一種通信對(duì)象的結(jié)構(gòu)來(lái)設(shè)計(jì)的,即客戶(hù)機(jī)對(duì)象和服務(wù)器對(duì)象。客戶(hù)機(jī)對(duì)象用一個(gè)對(duì)象請(qǐng)求來(lái)代理它與服務(wù)器對(duì)象之間的所有通信任務(wù)。客戶(hù)機(jī)對(duì)象請(qǐng)求代理在服務(wù)器上找到對(duì)應(yīng)的服務(wù)器對(duì)象,并將結(jié)果返回客戶(hù)機(jī)。
在測(cè)試系統(tǒng)中,可以設(shè)計(jì)具有采集服務(wù)的采集服務(wù)器,進(jìn)行數(shù)據(jù)處理分析的服務(wù)器、服務(wù)器類(lèi)型可以是數(shù)據(jù)庫(kù)服務(wù)器,監(jiān)控服務(wù)器、信息發(fā)布數(shù)據(jù)顯示等采用應(yīng)用服務(wù)器、對(duì)象服務(wù)器。根據(jù)實(shí)際情況選擇合適的服務(wù)器類(lèi)型對(duì)提高網(wǎng)絡(luò)測(cè)試系統(tǒng)的效率很重要。
網(wǎng)絡(luò)系統(tǒng)的安全性和可靠性在設(shè)計(jì)時(shí)必須要考慮的一個(gè)重要問(wèn)題,這也是網(wǎng)絡(luò)系統(tǒng)的熱門(mén)話題,在此不再敘述。
(3)軟件開(kāi)發(fā)方法
由于測(cè)試系統(tǒng)各個(gè)節(jié)點(diǎn)的任務(wù)不同,所連接的數(shù)據(jù)庫(kù)管理系統(tǒng)不一定相同,因此測(cè)試系統(tǒng)一般希望不依賴(lài)數(shù)據(jù)庫(kù)管理系統(tǒng)。所以數(shù)據(jù)庫(kù)的開(kāi)發(fā)常采用ODBC方式,ODBC是一個(gè)數(shù)據(jù)庫(kù)訪問(wèn)的標(biāo)準(zhǔn)接口,可以通過(guò)這個(gè)接口訪問(wèn)不同類(lèi)的數(shù)據(jù)庫(kù),基本上可用于所有的關(guān)系數(shù)據(jù)庫(kù)。不管測(cè)試數(shù)據(jù)庫(kù)是哪一種關(guān)系數(shù)據(jù)庫(kù),只要有相應(yīng)類(lèi)型數(shù)據(jù)庫(kù)的ODBC驅(qū)動(dòng)程序,就可訪問(wèn)數(shù)據(jù)庫(kù)。ODBC API包括以下組件:
① 測(cè)試應(yīng)用程序;
②驅(qū)動(dòng)程序管理器:根據(jù)應(yīng)用程序的需要裝載ODBC驅(qū)動(dòng)程序。
③ODBC驅(qū)動(dòng)程序:向指定的數(shù)據(jù)源提交SQL語(yǔ)句,向應(yīng)用程序傳送返回結(jié)果。
④數(shù)據(jù)源:用戶(hù)要訪問(wèn)的數(shù)據(jù)、DBMS及操作系統(tǒng)。
LabVIEW提供了。DBC、SQL、DataSocket開(kāi)發(fā)工具,采用這些工具編程將提高編程效率。DataSocket是NI公司推出的一種面向測(cè)量和自動(dòng)化工程的網(wǎng)上實(shí)時(shí)數(shù)據(jù)交換的編程技術(shù)。它包括DS Sewer Manager,DS Sewer和DS函數(shù)庫(kù)這幾個(gè)工具軟件,以及DSIP協(xié)議,通用資源定位符URL和文件格式等技術(shù)規(guī)范,它能大大簡(jiǎn)化Internet網(wǎng)上計(jì)算機(jī)之間的測(cè)控?cái)?shù)據(jù)交換的編程工作。DS也可以用子一臺(tái)計(jì)算機(jī)內(nèi)或局域網(wǎng)中多個(gè)應(yīng)用程序之間的數(shù)據(jù)交換。DS函數(shù)庫(kù)包含Open,read,writedose等函數(shù),DS技術(shù)可在C 語(yǔ)言、VB和LabVIEW等多種開(kāi)發(fā)環(huán)境中使用。在遠(yuǎn)程數(shù)據(jù)交換中可考慮采用DataSocket軟件。
若虛擬儀器軟件采用的是VC編寫(xiě)的,用戶(hù)對(duì)VC比較熟悉時(shí),可用VC++開(kāi)發(fā)數(shù)據(jù)庫(kù),VC提供了多種訪問(wèn)數(shù)據(jù)庫(kù)的方法:ODBC、MFC ODBC、DAO、OLE DB、ADO等。這些技術(shù)各有特點(diǎn)。
ODBC可以訪問(wèn)所有的關(guān)系數(shù)據(jù)庫(kù),不能訪問(wèn)對(duì)象數(shù)據(jù)庫(kù)和其他非關(guān)系數(shù)據(jù)庫(kù),因此對(duì)于高層的數(shù)據(jù)庫(kù)應(yīng)用技術(shù)可采用如6C ODBC。MFC ODBC是VC提供的面向?qū)ο髷?shù)據(jù)庫(kù)類(lèi),MFC ODBC類(lèi)封裝了ODBC API,提供了面向?qū)ο蟮臄?shù)據(jù)庫(kù)類(lèi),ODBC類(lèi)主要有Cdatabase,Crecordset,CrecordView等。使用Cdatabase對(duì)象類(lèi)連接數(shù)據(jù)庫(kù),Crecordset類(lèi)可以對(duì)數(shù)據(jù)庫(kù)記錄查找、排序、添加、刪除、更新等操作。CrecordVIew類(lèi)用來(lái)顯示文檔,使用這些類(lèi)編寫(xiě)程序大大簡(jiǎn)化了應(yīng)用程序的編寫(xiě)。
DAO(數(shù)據(jù)庫(kù)訪問(wèn)對(duì)象)是VC提供的一種通過(guò)程序代碼創(chuàng)建和操縱本地的數(shù)據(jù)庫(kù)和遠(yuǎn)地的數(shù)據(jù),管理數(shù)據(jù)庫(kù)中的對(duì)象或結(jié)構(gòu)的機(jī)制。DA0支持兩種不同的數(shù)據(jù)庫(kù)環(huán)境,一種是使用Micsoft Jet數(shù)據(jù)庫(kù)引擎來(lái)訪問(wèn)Micosoft Jet數(shù)據(jù)庫(kù)數(shù)據(jù)、Micosoft Jet連接的ODBC數(shù)據(jù)庫(kù)數(shù)據(jù)等。一種是ODBC Direct工作區(qū),即直接訪問(wèn)一個(gè)ODBC數(shù)據(jù)庫(kù),可通過(guò)ODBC訪問(wèn)數(shù)據(jù)庫(kù)服務(wù)器,無(wú)須裝載Micosoft Jet數(shù)據(jù)庫(kù)引擎。利用DAO技術(shù),我們可以訪問(wèn)從txt文件直到大型后臺(tái)數(shù)據(jù)庫(kù)的多種數(shù)據(jù)庫(kù)格式。
OLE DB是一種基于組件對(duì)象模型的數(shù)據(jù)庫(kù)接口(Component Object Modul, COM),對(duì)所有的文件提供了一個(gè)統(tǒng)一的調(diào)用接口,既可以訪問(wèn)關(guān)系數(shù)據(jù)庫(kù),也可以訪問(wèn)非關(guān)系數(shù)據(jù)(如電子表格、電子郵件、各種文檔、文件等),由于采用COM模型,系統(tǒng)穩(wěn)定,接口靈活,具有可利用性和封裝性,訪問(wèn)數(shù)據(jù)庫(kù)速度,快,因?yàn)榻M件化使OLE DB程序?qū)崿F(xiàn)了功能分配,作為客戶(hù)機(jī)的數(shù)據(jù)應(yīng)用程序只需要完成自己的數(shù)據(jù)管理功能,作為服務(wù)器數(shù)據(jù)提供程序也只需要完成自己的一部分功能即可。
C/S中對(duì)象服務(wù)器、應(yīng)用服務(wù)器的開(kāi)發(fā)可采用OLE DB技術(shù)。
ADO〈ActiveX Data Object〉是VC提供的又一種面向?qū)ο髷?shù)據(jù)庫(kù)開(kāi)發(fā)技術(shù)。OLE DB可以訪問(wèn)數(shù)據(jù)庫(kù)應(yīng)用的能力,但還需要編寫(xiě)大量的代碼程序。ADO訪問(wèn)數(shù)據(jù)庫(kù)是通過(guò)OLE DB提供程序進(jìn)行的。ADO技術(shù)采用高層訪問(wèn)技術(shù)訪問(wèn)封裝了的OLE DB中COM接口。它提
種語(yǔ)言的訪問(wèn)技術(shù),包括VB、VC、VBA、VJ++,同時(shí)ADO還可以用描述的腳本語(yǔ)言訪問(wèn)cript、VCScript等,用ADO開(kāi)發(fā)網(wǎng)頁(yè)在客戶(hù)機(jī)和服務(wù)器應(yīng)用程序中容易建立Internet虛擬儀kkd txxy.
LabVIEW和VirSual C++都提供了豐富的服務(wù)器和客戶(hù)機(jī)數(shù)據(jù)庫(kù)軟件工具,根據(jù)自己的情況選擇合適的數(shù)據(jù)庫(kù)軟件開(kāi)發(fā)環(huán)境將大大提高系統(tǒng)開(kāi)發(fā)的效率。
3、結(jié)束語(yǔ)
計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)與虛擬儀器技術(shù)的發(fā)展與結(jié)合,進(jìn)一步拓寬了虛擬儀器的應(yīng)用,使虛擬儀器在測(cè)試自動(dòng)化、遠(yuǎn)程教學(xué)方面得以發(fā)展和應(yīng)用。C/S模式的網(wǎng)絡(luò)結(jié)構(gòu)根據(jù)不同的應(yīng)用將系統(tǒng)的功能劃分為相對(duì)獨(dú)立的功能模塊,并在系統(tǒng)內(nèi)進(jìn)行合理分配,使網(wǎng)絡(luò)虛擬儀器系統(tǒng)性能達(dá)到最優(yōu)。計(jì)算機(jī)軟件及軟件工具技術(shù)的發(fā)展與應(yīng)用使得編寫(xiě)虛擬儀器系統(tǒng)性能達(dá)到最優(yōu)。計(jì)算機(jī)軟件及軟件工具技術(shù)的發(fā)展與應(yīng)用使得虛擬儀器與網(wǎng)絡(luò)系統(tǒng)軟件容易實(shí)現(xiàn),進(jìn)一步推動(dòng)了虛擬儀器網(wǎng)絡(luò)系統(tǒng)的發(fā)展。
文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。
上一篇:萬(wàn)用表使用兩則
你可能感興趣的文章