劉 志 李園喜 季旭東
(91550部隊3分隊 遼寧 大連 116023)
通信網絡中虛擬儀器系統的應用研究
劉 志 李園喜 季旭東
(91550部隊3分隊 遼寧 大連 116023)
根據遠程分布式測試要求的需要,基于網絡通信應用,研究將虛擬儀器系統中UDP協議的靈活性與TCP協議的可靠性結合,開發適應復雜惡劣網絡環境的實用網絡通信技術。
網絡通信;UDP協議;TCP協議;虛擬系統
近年來隨著靶場通信網絡的日益完善,基于光纖、衛通和微波的各種局域網、廣域網得到了頻繁的應用,與此相應廣域信息共享的需求日益增長,遠程分布式測試的要求越來越多的被提出,例如設備故障的遠程診斷,各類過程的遠程監控等。而隨著計算機網絡技術和通信技術的快速發展,虛擬儀器系統正以其低廉的成本、靈活的組合方式和強大的功能在各個領域得到廣泛應用。本文對以LabVIEW為代表的虛擬儀器平臺在網絡通信中的應用進行了研究,力圖找出適應復雜惡劣的網絡環境和各種測試系統的個性化要求的高質量遠程測試系統。
2.1 高效的網絡通信技術
LabVIEW作為目前最流行的虛擬儀器開發平臺,為構建遠程測試系統提供了多種強大的功能和方便靈活的工具。其中DataSocket是一種建立在TCP/IP協議的基礎之上,但是專門為滿足測試與自動化的需求而設計的網絡通信技術。使用DataSocket技術傳輸數據不用進行復雜的底層TCP編程,就可以通過計算機網絡以自己特有編碼格式向多個遠程的終端同時廣播現場的各種類型的測量數據。這樣極大的提高了測試系統開發效率。
DataSocket由DataSocket API和DataSocket Server兩部分組成。使用DataSocket傳輸數據的過程如圖1所示。

圖1 DataSocket傳輸數據過程
數據發布程序和數據訂戶程序都是DataSocket Server的客戶,DataSocket Server是一個小巧的獨立運行的程序,傳輸數據的程序中使用DataSocket API與DataSocket Server通訊。DataSocket API提供了一個用于多樣編程語言、多種數據類型通訊的單一的接口,在LabVIEW中DataSocket API的形式是一組函數。發布數據的程序用DataSocket Write函數向URL指定的位置寫數據,接收數據的程序用DataSocket Read函數從URL指定的位置讀取數據。
使用DataSocket協議傳輸數據,在默認情況下DataSocket Server只向數據訂戶發布最新的數據,當發布數據的客戶比接收數據的客戶運行快,則將有一些數據還沒有讀取就被覆蓋掉。如果每一個數據對于客戶都很重要的話,就應該使用數據緩沖區的方法傳輸數據。使用數據緩沖區讀數據的客戶端程序圖形代碼如圖2所示。

圖2 DataSocket使用緩沖區讀數據程序圖形代碼
程序中DataSocket Open函數根據DataSocket Select URL函數輸入的URL建立一個DataSocket連接,并將連接參考號connection ID輸出,這個連接將一直保持到使用DataSocket Close函數將連接關閉或程序停止。DataSocket Open函數的模式參數mode選為BufferedRead。連接參考號到屬性節點時,屬性節點的類名稱變為DataSocket。程序中兩個屬性節點分別用于緩沖區設置和緩沖區診斷。DataSocket Read函數根據connection ID指定的網絡連接接收數據。
2.2 UDP網絡通信協議的應用
盡管LabVIEW提供了高效、易用的DataSocket網絡技術,但是在需要對網絡功能進行更多的控制和跨越操作系統平臺傳輸數據時它也有一定的局限性。例如接收遠程終端設備的數據、網絡經常發生擁塞需要及時自動恢復連接、默認的3015端口被其它通信程序占用必須更改端口等情況下就不便使用DataSocket。因此LabVIEW也支持許多底層的網絡協議,例如TCP、IP、UDP等。
UDP具有更高的性能,但是不能保證數據可靠傳輸。在可靠性不是非常重要的應用,例如傳輸數據頻率很快,少量數據丟失無關緊要時,使用UDP協議。UDP讀回的每個數據包包含數據源地址和端口,因此一次讀到的數據不會來自兩個不同的寫數據操作。

圖4 使用UDP協議傳輸數據的程序圖形代碼
圖4的程序是使用UDP協議傳送數據的例子,圖中(a)是發送數據的程序圖形代碼,(b)是接收數據的程序圖形代碼。
UDP Open函數為指定的端口打開一個UDP套接字;UDP Write函數向遠程UDP套接字寫數據;UDP Read函數從UDP套接字讀取一個數據包;UDP Close函數關閉UDP套接字。
2.3 TCP/IP網絡通信協議的應用
與UDP協議不同,TCP是一種可靠的基于連接的服務。圖3的程序是使用TCP通信協議傳輸數據的例子,圖中(a)是發送數據的程序圖形代碼,(b)是接收數據的程序圖形代碼。

圖3 使用TCP協議傳輸數據的程序圖形代碼
TCP Listen函數創建一個TCP收聽者,等待指定端口的TCP網絡連接,用connection ID參數輸出網絡連接參考號。后面的函數用connection ID的值執行特定連接的任務。Sine Pattern函數產生一個周期的正弦波數據。Type Cast函數將x參數連接的數據轉換為type參數的類型,type參數的默認值是字符串。String Length函數返回字符串長度,首先寫入TCP 網絡連接,以便確定網絡傳輸的字節數。TCP Write函數按照connection ID將data in參數連接的數據寫入TCP 網絡連接。TCP Write函數在這個程序中第二次被調用時將實際數據寫入TCP連接。TCP Close 函數在程序結束時關閉connection ID指向的連接。
Open Connection函數按照連接的IP地址和端口號參數建立一個TCP連接,連接成功后返回連接標識connection ID。TCP Read函數按照byte to read參數指定的字節數和connection ID 參數給定的TCP連接接收數據。TCP Read函數讀取的數據經過Type Cast函數轉換為整型數,作為第二次調用TCP Read函數時的byte to read參數,讀出全部數據。
工程實際中測試系統的數據傳輸經常要跨越集線器、交換機、路由器等各種網絡設備,經過電纜、光纜、微波甚至衛星等傳輸介質,被各種網絡管理軟件轉發、過濾、檢驗、分配,這個過程及其復雜;而且在網絡上同時承載著管理系統、各種信息查詢、甚至某些情況下的個人娛樂等大量數據傳輸。這樣給遠程測試應用程序的可靠性、頑強性和通信速度帶來極大的考驗。為了適應復雜的現場的需求,必須整合TCP協議和UDP協議的技術優勢,開發實用的通信程序。
圖5(a)所示的服務器程序啟動后,在網絡上監聽TCP連接的請求。連接建立后,即應用TCP協議向客戶端發送數據。同時打開一個UDP套接字,接收來自客戶端的確認信息ack。一旦網絡出現故障,收不到確認信息,立即斷開TCP連接,并重新進入TCP連接監聽狀態。
圖5(b)所示的客戶端程序啟動后,首先建立TCP連接,然后應用TCP協議接收數據。如果正常接收數據,則每次向服務器端發送一個確認信息;如果收不到數據就斷開原來TCP連接,重新建立一個TCP連接。
這種雙向通信的服務器/客戶端模式,不同于TCP協議本身的數據傳輸確認機制。TCP協議在傳輸數據時,一個數據包發送不到目的地會反復地重發。這在正常情況下避免了數據的丟失;但是在網絡出現異常時程序就會陷入停滯;并且在網絡恢復正常后程序不具備“自愈”的能力。
采用TCP協議與UDP協議混合編程,在網絡正常時利用TCP協議的可靠性,保證數據正確傳輸;在網絡異常時發揮UDP協議的靈活性,保證通信及時恢復。這種通信方式在跨越多網段的企業局域網和CDMA(Code Division Multiple Access碼分多址)無線移動公網上經過長期應用,保證了數據順暢傳輸,測試系統正常運行。

圖5 TCP和UDP協議聯合應用的通信程序圖形代碼
采用虛擬儀器開發遠程測控系統,需要根據根據不同的測試對象,兼顧數據傳輸可靠性的要求和網絡的實際狀況,靈活選擇網絡通信協議和數據傳輸方案。在良好的網絡環境下DataSocket是一種高效率、易于應用的網絡通信技術;某些特定的情況需要采用TCP協議或UDP協議編程;而當網絡環境復雜惡劣時,本文提出的用TCP協議傳輸數據,用UDP協議進行通信保障的方法,是滿足工程實踐嚴格要求的優化的網絡通信技術。
[1]戴爾晗,孫海安。基于LabVIEW的IP網絡管理[J].國外電子測量技術,2005年第24卷第12期.
[2] Using LabVIEW with TCP/IP and UDP, USA National Instruments corporation, March 2004.
[3]馬時來.計算機網絡實用技術教程[M].北京:清華大學出版社 2003年.
[4] 馮冬芹,廖智軍,金建祥等.基于以太網的工業控制網絡實時通信模型研究[J].儀器儀表學報,2005年第26卷第9期
[5]喬毅,張濤,唐明新等.由嵌入式網關實現控制網絡與信息網絡的集成[J].儀器儀表學報,2005年第26卷第12期
[6] 李亞軍 計算機測控系統設計與應用 北京:機械工業出版社,2004年
Research in the Application of Virtual Instrument System for Network
LIU Zhi, LI Yuan-xi, JI Xu-dong. (91550 Troops 3Unit, Liaoning Province, Dalian 116023, China)
According to the needs of remote distributed testing requirements, based on network communication application, the research will be of the UDP protocol in virtual instrument system flexibility and the reliability of TCP protocol, developed to adapt to the complex of the network environment, the network communication technique.
Network communication; UDP protocol; TCP protocol; The virtual system
TN914.3
A
1009-5624-(2016)02-0026-03