作者:李水芳,朱榮新,姚啟倉
一個大的、復雜的測試系統其數據的采集輸人、輸出和分析處理往往分布在不同的地理位置上,傳統的集成測試方法越來越不能滿足復雜測試任務的需求。因此,網絡化儀器的出現成為必然。隨著計算機網絡技術、總線技術和數據庫技術的不斷發展,互聯網使數據共享進入了一個新的階段,加速了虛擬儀器在網絡及遠程計算技術方面的發展。虛擬儀器技術借助互聯網的強大功能,將來自測量或控制設備中的數據直接發布到Web網頁上,把分散在不同位置的不同設備聯系起來組成一個測試系統,使資源得以共享。
1 網絡化虛擬儀器
虛擬儀器技術把計算機技術和儀器技術完美的結合起來,而網絡化虛擬儀器則是把虛擬儀器技術和面向Internet的Web技術結合起來所產生的一種新技術。形象一點說,虛擬儀器把傳統儀器的前面板移植到了計算機上,利用計算機上的資源進行測試,而網絡化虛擬儀器則把前面板移植到了Internet上,通過Web瀏覽器遠程控制現場的測試儀器和對象,測試結果和測量數據可以通過Internet實時地發布和共享,打破了在同一地點進行采集、分析和顯示的傳統模式,增強了分工合作能力,大大提高了工作效率。網絡化虛擬儀器的結構圖如圖1所示。
2 DataSocket技術
要實現虛擬儀器在網絡平臺上的應用,則必須實現在不同應用之間的數據共享。雖然TCP/IP,DDE等技術支持不同應用程序間的數據共享,但不能用來傳輸動態數據,而NI公司提供的DataSocket是專門用來傳輸和發布動態數據的,是一種基于TCP/IP工業標準的網上實時高速數據交換編程新技術,對底層進行了高度封裝,在不同的應用之間傳輸數據時,不必為不同的數據格式和通信協議編寫具體的程序代碼,簡化了網上測控數據的編程。圖2是DataSocket的體系結構圖。
DataSocket由DataSocket API和DataSocket Server兩部分組成。DataSocket API是一個和協議、編程語言、操作系統無關的應用程序接口,能夠把測量數據轉化為適合在網絡上傳輸的數據流,他包括4個基本動作:open,read,write,close,可以從以下5個地方獲取數據:
(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是一個獨立部分,可以把現場數據高速傳給遠端客戶。用DataSocket Server發布數據需要3個部分:發布者(publisher)、服務器(DataSocket Server)、接收者(subscriber),三者關系如圖3所示。發布者通過DataSocket API把數據寫入DataSocket Server,接收者通過DataSocket API從DataSocket Server讀出數據。發布者和接收者之間具有時效性,接收者只能讀到信息運行后發布者發來的數據,此數據可以被多次讀到。DataSocket Server Manager定義了最大連接數,最大數據對象個數,規定了數據訪問的權限,即哪些計算機可以作為發布者,哪些計算機可以作為接收者。這三部分可以存在于一臺裝置中,但多數是分布在不同的裝置中,這樣有利于改善系統性能,提高安全度。
DataSocket通過 URL(Uniform Resource Locator)來定位數據源和目標。URI。的不同前綴表示了不同的數據類型:file為本地文件,http為超文本傳輸協議,dstp說明來自DataSocket服務器的實時數據,ftp為文件傳輸協議,opc表示訪問的資源是OPC。以下是幾個符合規定的URL:
dstp://mytestmachine/wavel
http://WWW.natinst.com/datasocket
3 應用實例
現舉例說明利用DataSocket技術實現網絡化虛擬儀器檢測。某公司提供維修影印機服務,在各地設有維修處,各維修處把影印機信息及型號發回給總部,總部經過分析診斷后,再把診斷結果發給維修處,以便維修人員進行修理。整個工作過程如下:首先把所有診斷程序放人系統的DataSocket Server中,LabWindows/CVI應用程序通過串口和數據采集板與影印機連接起來以獲取影印機的有關信息,并通過DataSocket API把該信息發送給DataSocket Server,系統中央程序通過DataSocket API讀DataSocket Server,以獲取影印機的相關信息以及型號,判斷調用哪個診斷程序,然后檢測管理程序運行該診斷程序并把診斷結果寫入DataSocket Server,LabWindows/CVI應用程序從DataSocket Server中讀取該診斷結果,維修技術人員就能用此診斷結果修理影印機。以下是LabWindows/CVI部分源代碼實現了對DataSocket的打開、讀、關閉操作:
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 結 語
自20世紀90年代以來,儀器的概念已經由傳統模式儀器發展成為虛擬儀器,即“軟件即儀器”,繼而發展成為網絡化虛擬儀器,即“網絡即儀器”。隨著計算機技術、互聯網、數據庫技術的不斷發展,網絡化虛擬儀器將會成為今后儀器發展方向的主流,在各行各業得到廣泛應用。
責任編輯:gt
-
計算機
+關注
關注
19文章
7174瀏覽量
87159 -
虛擬儀器
+關注
關注
22文章
775瀏覽量
87201 -
數據庫
+關注
關注
7文章
3712瀏覽量
64027
發布評論請先 登錄
相關推薦
評論