作者:李水芳,朱榮新,姚啟倉(cāng)
一個(gè)大的、復(fù)雜的測(cè)試系統(tǒng)其數(shù)據(jù)的采集輸人、輸出和分析處理往往分布在不同的地理位置上,傳統(tǒng)的集成測(cè)試方法越來(lái)越不能滿足復(fù)雜測(cè)試任務(wù)的需求。因此,網(wǎng)絡(luò)化儀器的出現(xiàn)成為必然。隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)、總線技術(shù)和數(shù)據(jù)庫(kù)技術(shù)的不斷發(fā)展,互聯(lián)網(wǎng)使數(shù)據(jù)共享進(jìn)入了一個(gè)新的階段,加速了虛擬儀器在網(wǎng)絡(luò)及遠(yuǎn)程計(jì)算技術(shù)方面的發(fā)展。虛擬儀器技術(shù)借助互聯(lián)網(wǎng)的強(qiáng)大功能,將來(lái)自測(cè)量或控制設(shè)備中的數(shù)據(jù)直接發(fā)布到Web網(wǎng)頁(yè)上,把分散在不同位置的不同設(shè)備聯(lián)系起來(lái)組成一個(gè)測(cè)試系統(tǒng),使資源得以共享。
1 網(wǎng)絡(luò)化虛擬儀器
虛擬儀器技術(shù)把計(jì)算機(jī)技術(shù)和儀器技術(shù)完美的結(jié)合起來(lái),而網(wǎng)絡(luò)化虛擬儀器則是把虛擬儀器技術(shù)和面向Internet的Web技術(shù)結(jié)合起來(lái)所產(chǎn)生的一種新技術(shù)。形象一點(diǎn)說(shuō),虛擬儀器把傳統(tǒng)儀器的前面板移植到了計(jì)算機(jī)上,利用計(jì)算機(jī)上的資源進(jìn)行測(cè)試,而網(wǎng)絡(luò)化虛擬儀器則把前面板移植到了Internet上,通過(guò)Web瀏覽器遠(yuǎn)程控制現(xiàn)場(chǎng)的測(cè)試儀器和對(duì)象,測(cè)試結(jié)果和測(cè)量數(shù)據(jù)可以通過(guò)Internet實(shí)時(shí)地發(fā)布和共享,打破了在同一地點(diǎn)進(jìn)行采集、分析和顯示的傳統(tǒng)模式,增強(qiáng)了分工合作能力,大大提高了工作效率。網(wǎng)絡(luò)化虛擬儀器的結(jié)構(gòu)圖如圖1所示。
2 DataSocket技術(shù)
要實(shí)現(xiàn)虛擬儀器在網(wǎng)絡(luò)平臺(tái)上的應(yīng)用,則必須實(shí)現(xiàn)在不同應(yīng)用之間的數(shù)據(jù)共享。雖然TCP/IP,DDE等技術(shù)支持不同應(yīng)用程序間的數(shù)據(jù)共享,但不能用來(lái)傳輸動(dòng)態(tài)數(shù)據(jù),而NI公司提供的DataSocket是專門用來(lái)傳輸和發(fā)布動(dòng)態(tài)數(shù)據(jù)的,是一種基于TCP/IP工業(yè)標(biāo)準(zhǔn)的網(wǎng)上實(shí)時(shí)高速數(shù)據(jù)交換編程新技術(shù),對(duì)底層進(jìn)行了高度封裝,在不同的應(yīng)用之間傳輸數(shù)據(jù)時(shí),不必為不同的數(shù)據(jù)格式和通信協(xié)議編寫具體的程序代碼,簡(jiǎn)化了網(wǎng)上測(cè)控?cái)?shù)據(jù)的編程。圖2是DataSocket的體系結(jié)構(gòu)圖。
DataSocket由DataSocket API和DataSocket Server兩部分組成。DataSocket API是一個(gè)和協(xié)議、編程語(yǔ)言、操作系統(tǒng)無(wú)關(guān)的應(yīng)用程序接口,能夠把測(cè)量數(shù)據(jù)轉(zhuǎn)化為適合在網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)流,他包括4個(gè)基本動(dòng)作:open,read,write,close,可以從以下5個(gè)地方獲取數(shù)據(jù):
(1)Data items on HTTP servers
(2)Data items on FTP servers
(3)Local files
(4)Data items on OLE for Process Control
(5)Data items on DSTP servers
DataSocket Server是一個(gè)獨(dú)立部分,可以把現(xiàn)場(chǎng)數(shù)據(jù)高速傳給遠(yuǎn)端客戶。用DataSocket Server發(fā)布數(shù)據(jù)需要3個(gè)部分:發(fā)布者(publisher)、服務(wù)器(DataSocket Server)、接收者(subscriber),三者關(guān)系如圖3所示。發(fā)布者通過(guò)DataSocket API把數(shù)據(jù)寫入DataSocket Server,接收者通過(guò)DataSocket API從DataSocket Server讀出數(shù)據(jù)。發(fā)布者和接收者之間具有時(shí)效性,接收者只能讀到信息運(yùn)行后發(fā)布者發(fā)來(lái)的數(shù)據(jù),此數(shù)據(jù)可以被多次讀到。DataSocket Server Manager定義了最大連接數(shù),最大數(shù)據(jù)對(duì)象個(gè)數(shù),規(guī)定了數(shù)據(jù)訪問(wèn)的權(quán)限,即哪些計(jì)算機(jī)可以作為發(fā)布者,哪些計(jì)算機(jī)可以作為接收者。這三部分可以存在于一臺(tái)裝置中,但多數(shù)是分布在不同的裝置中,這樣有利于改善系統(tǒng)性能,提高安全度。
DataSocket通過(guò) URL(Uniform Resource Locator)來(lái)定位數(shù)據(jù)源和目標(biāo)。URI。的不同前綴表示了不同的數(shù)據(jù)類型:file為本地文件,http為超文本傳輸協(xié)議,dstp說(shuō)明來(lái)自DataSocket服務(wù)器的實(shí)時(shí)數(shù)據(jù),ftp為文件傳輸協(xié)議,opc表示訪問(wèn)的資源是OPC。以下是幾個(gè)符合規(guī)定的URL:
dstp://mytestmachine/wavel
http://WWW.natinst.com/datasocket
3 應(yīng)用實(shí)例
現(xiàn)舉例說(shuō)明利用DataSocket技術(shù)實(shí)現(xiàn)網(wǎng)絡(luò)化虛擬儀器檢測(cè)。某公司提供維修影印機(jī)服務(wù),在各地設(shè)有維修處,各維修處把影印機(jī)信息及型號(hào)發(fā)回給總部,總部經(jīng)過(guò)分析診斷后,再把診斷結(jié)果發(fā)給維修處,以便維修人員進(jìn)行修理。整個(gè)工作過(guò)程如下:首先把所有診斷程序放人系統(tǒng)的DataSocket Server中,LabWindows/CVI應(yīng)用程序通過(guò)串口和數(shù)據(jù)采集板與影印機(jī)連接起來(lái)以獲取影印機(jī)的有關(guān)信息,并通過(guò)DataSocket API把該信息發(fā)送給DataSocket Server,系統(tǒng)中央程序通過(guò)DataSocket API讀DataSocket Server,以獲取影印機(jī)的相關(guān)信息以及型號(hào),判斷調(diào)用哪個(gè)診斷程序,然后檢測(cè)管理程序運(yùn)行該診斷程序并把診斷結(jié)果寫入DataSocket Server,LabWindows/CVI應(yīng)用程序從DataSocket Server中讀取該診斷結(jié)果,維修技術(shù)人員就能用此診斷結(jié)果修理影印機(jī)。以下是LabWindows/CVI部分源代碼實(shí)現(xiàn)了對(duì)DataSocket的打開(kāi)、讀、關(guān)閉操作:
int CVICALLBACK connect(int panel,int control,int event,void*callbackData,int eventData!,int eventData2)
{
switch(event)
{
case EVENT_COMMIT
DS_Openconnection(〞dstp://localhost/testl〞,
DSConst_ReadAutoUpdate,datahandle,DS_callback_NULL);
break;
}
return 0;
}
Void DS_callback_read(DSHandle dshandle,int event,
void *callbackData);
{
DS_GetDataValue(datahandle,CAVT_FLOAT,data,sizeof(double),&sz,&sz);
}
int CVICALLBACK disconnect(int panel,int control,int event,void*callbackdata,int eventDatal,int eventData2);
{
switch(event)
{
case EVENT_COMMIT
DS_CloseConnection(datahandle);
break;
}
return 0;
}
4 結(jié) 語(yǔ)
自20世紀(jì)90年代以來(lái),儀器的概念已經(jīng)由傳統(tǒng)模式儀器發(fā)展成為虛擬儀器,即“軟件即儀器”,繼而發(fā)展成為網(wǎng)絡(luò)化虛擬儀器,即“網(wǎng)絡(luò)即儀器”。隨著計(jì)算機(jī)技術(shù)、互聯(lián)網(wǎng)、數(shù)據(jù)庫(kù)技術(shù)的不斷發(fā)展,網(wǎng)絡(luò)化虛擬儀器將會(huì)成為今后儀器發(fā)展方向的主流,在各行各業(yè)得到廣泛應(yīng)用。
責(zé)任編輯:gt
-
計(jì)算機(jī)
+關(guān)注
關(guān)注
19文章
7536瀏覽量
88638 -
虛擬儀器
+關(guān)注
關(guān)注
23文章
775瀏覽量
87446 -
數(shù)據(jù)庫(kù)
+關(guān)注
關(guān)注
7文章
3846瀏覽量
64685
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論