許愛強,李 佳,陳育良,王小華
(1.海軍航空工程學院 科研部,山東 煙臺 264001;2.海軍航空工程學院研究生管理大隊,山東 煙臺 264001;3.兵器科學與技術系,山東 煙臺 264001)
在信息化時代全面到來的今天,網絡已經與人們的日常生活和工作密不可分,人們利用局域網和國際互聯網這種廉價高效的手段得到了大量有價值的信息和數據。對于測量自動化領域的研究人員來說,同樣如此。人們希望通過Web瀏覽器遠程控制現場的測試儀器和對象,以提高交互性、方便性和實時性。這樣就可以在最短的時間內調動故障診斷資源,對機器系統故障作出快速、及時、準確的診斷,從而解決維修時間長、成本高的問題。文中主要對美國NI公司DataSocket技術在遠程測試與診斷系統中的應用進行了研究[1]。
DataSocket是美國NI公司提供的一個網絡測控系統開發工具,借助它可以在不同的應用程序和數據源之間共享數據。DataSocket可以訪問本地文件以及FTTP和FTP服務器上的數據。DataSocket為底層通信協議提供了統一的API函數。編程人員無需為不同的數據格式和通信協議編寫具體的程序代碼。
DataSocket使用一種增強數據類型來交換儀器類型的數據,這種數據類型包括數據特性(如采樣率、操作者姓名、時間及采樣精度等)和實際測試數據。
DataSocket用類似于Web的統一資源定位器(URL)定位數據源,URL不同的前綴表示了不同的數據類型,FILE表示本地文件,HTTP為超文本傳輸資源,FTP為文件傳輸協議,OPC表示訪問的資源是 OPC服務器,DSTP(DataSocket Transfer Protocol)則說明數據來自DataSocket服務器的實時數據[2]。圖1描述了DataSocket的體系結構。

圖1 DataSocket體系結構圖Fig.1 Structure diagram of DataSocket
由圖可以看出,對于采用DataSocket技術的遠程測試系統,其客戶端可以是用戶瀏覽器、LabWindows/CVI和LabVIEW平臺軟件。DataSocket技術有如下特點[2]:
1)良好的安全性 DataSocket技術提供了兩種方法保證數據傳輸的安全性:DataSocket服務器管理程序允許用戶設定是否有權限在DataSocket服務器上讀、寫以及創建項目的計算機。此外,DataSocket技術使用TCP/IP 3015端口傳輸數據,此端口已通過IANA(Internet地址分配機構)注冊為DSTP協議專用端口,因此用戶可以在防火墻外部的計算機上運行DataSocket服務器,同時可保證在防火墻內部的計算機上安全地運行應用程序。
2)傳輸速度快 DataSocket本身包含很小的頭文件,在10M的以太網內,其傳輸速度可達到320Kb/s。由于DataSocket建立在TCP/IP的頂層,當通過Internet傳輸數據時,傳輸速度要受到網絡帶寬和網絡流量等因素的影響,其中網絡帶寬是最主要的因素,只要能提供一定的帶寬,就能滿足遠程測控所要求的實時性。
3)用于動態數據傳輸 雖然有多種技術都支持在不同的應用之間共享數據,包括TCP/IP、DDE等,但這些工具中的大部分都不是用來傳輸動態數據的,而DataSocket技術是專門用來在測量與自動化應用中傳輸或發布動態數據的。
DataSocket由DataSocket API和DataSocket Server兩部分組成。DataSocket API提供了多語言訪問、多種數據類型的單一接口[3]。DataSocket Server通過管理TCP/IP通信為用戶提供并簡化Internet通信。采用DataSocket Server發布數據需要3個部分:發布者、服務器和接收者。發布者和接收者都是客戶端,發布者用于發布數據,接收者用于接收數據。一個DataSocket Server最多可以支持1 000個接收者和發布者。在DataSocket Server Manager中可以定義最大連接數、最大數據對象個數,以及哪些計算機可以作為數據發布者,哪些計算機可以作為數據接收者,這也就規定了數據訪問的權限。DataSocket服務器和服務器管理器的界面如圖2和圖3所示。

圖2 DataSocket服務器圖Fig.2 DataSocket Server
DataSocket API包括 4 個基本 動作:open、read、write 、close,用它們可以從HTTP服務器、FTP服務器、OPC服務器、DST服務器和本地文件獲取數據[5]。
DataSocket支持 5 種訪問模式(AccessMode ):Read/Write、ReadAutoUpdate/WriteAutoUpdate、ReadWriteAutoUpdate,其中前兩個引發單次操作,此時用DS_Update函數可以再次引發底層的讀或者寫操作。它通過檢測數據是否更新,來控制讀寫操作是否執行,從而實現同步效果。后三種模式是在數據發生變化時自動引發讀/寫操作。DataSocket以數據特性的形式同時傳輸多種參數,它可以包括采樣率、操作者姓名、時間、數據量等信息。DataSocket通過統一資源定位URL來定位數據源和目標,它支持幾種URL前綴方式,以下是幾個符合DataSocket規定的URL的實例[4-6]:

圖3 DataSocket服務器管理器Fig.3 DataSocket Server Manager
1)“dstp://localhost/data1.txt”;
2)“dstp://202.116.30.13/data2”;
3)“http//www.natinst.com/DataSocket/chirp.dsd”;
4)“ftp//ftp.natinst.com/support/datasocket/tone.wave”。
這些實例中第1部分定義了傳輸協議,第2部分為主機名或主機的IP地址,第部分為存儲傳輸數據所在區域的名稱,該名稱由傳輸雙方自行定義。
現在以一個具體的應用實例說明如何使用DataSocket來實現遠程測控的方法。為了簡單起見,本例中只介紹多種參數的傳輸和實時接收并顯示。數據的寫入者是一個遠程測試儀器,該儀器采集被測裝備的指標參數并傳入上位機,在上位機的虛擬儀器面板上進行相關運算和顯示,如圖4所示。當參數值發生變化時,會自動寫入到DataSocket服務器,而網絡上的其他測試人員(即與其連接的客戶端)可以同步看到這個值的變化,就如身在測試現場一樣。遠程客戶端虛擬儀器面板及顯示情況如圖5所示。

圖4 參數的采集和發送Fig.4 Parameters of the acquisition and delivery

圖5 參數的接收和同步顯示Fig.5 Receive and display parameters simultaneously
從圖4和圖5上可以看出,該系統同時傳遞6組數據(2個波形、3個參數和1個人工輸入數據)。其中一個以主值形式,其余都以屬性形式,通過DataSocket函數面板的write函數寫入DataSocket Server。URL為負責數據采集的計算機IP地址,在運行程序前必須先打開DataSocket Server,否則會報錯。實現此傳輸功能的部分程序代碼為:

位于客戶端的DataSocket數據讀取和數據寫入過程相似,只要把write函數換成read函數,URL不變。不設置讀取的數據類型時,顯示控件為變體類型;設置數據類型時,讀取的數據類型必須與發送的數據類型一致,例如發送的數據類型為數組,則讀取的標準格式同樣為數組,如把讀取的格式定為字符串則將讀不到任何信息。但可以通過其他函數把讀取的數組轉換為字符串,以便后面的程序方便使用。實現該接收功能的部分程序代碼為:


實際應用證明整個系統運作良好,多參數、多類型、實時數據傳輸并顯示等期望功能均已實現。數據準確可靠,獲取方式靈活方便。系統使用DataSocket技術,實現了診斷中心客戶端遠程獲取測試端的各種類型參數,并大大簡化了數據通信程序的開發。使用Lab/WindowsCVI界面化編程,整個系統的構建極其方便和直觀。
[1]宋宇峰.LabWindowsCVI逐步深入開發實例[M].北京:機械工業出版社,2003.
[2]劉君華,白鵬,湯曉君.基于LabWindowsCVI的虛擬儀器設計[M].北京:電子工業出版社,2003.
[3]LIU Yan,DataSocket technology and its application in remote data transmission measurement[C]//The Eighth International Conference on Electronic Measurement and Instruments,2007,16(1):7-15.
[4]寇小明,楊高科,杜麗.DataSocket技術及其應用[J].測控技術,2002(12):15-19.
KOU Xiao-ming, YANG Gao-ke, DU Li.DataSocket technology and its applications[J].Measurement and Control Technology,2002(12):15-19.
[5]蔡繼軍,張彥斌,薛德慶,等.DataSocket在網絡化通信中的應用[J].網絡信息技術,2005(24):18-23.
CAIJi-jun, ZHANG Yan-bin, XUE De-qing, etal.DataSocketin network communicationsapplications[J].DataSocket in Network Communications Applications,2005(24):18-23.
[6]袁海華,劉仕華,董雪琴.基于Internet的FW遠程故障診斷系統[J].玻璃鋼/復合材料,2002(1):26-28.
YUAN Hai-hua, LIU Shi-hua, DONG Xue-qin.Internetbased remote fault diagnosis system FW[J].FRP/Composite Materials,2002(1):26-28.