摘 要:闡述了在NI LabView平臺上結合TCP/IP協議進行數據傳輸的工作方法,并給出對工業現場數據采集傳送與監控的仿真實例。
關鍵詞:TCP/IP;虛擬儀器;LabView
1、引言
在現代儀器系統中,計算機已經與儀器結合得非常緊密,已成為整個系統的核心,許多傳統儀器正在逐漸被計算機部分、甚至全部取代。粗略地說這種結合有兩種方式:一種是將計算機裝入儀器;另一種方式是將儀器裝入計算機,即以通用的計算機硬件及操作系統為依托,實現各種儀器功能。虛擬儀器主要是指這種方式,其實質就是一個按照儀器需求組織的數據采集系統。美國NI公司的LabVIEW就是目前在這一領域內使用較為廣泛的計算機語言。
隨著計算機網絡的發展,虛擬儀器與Internet技術的結合為虛擬儀器網絡化、工業現場遠程測控提供了更好的實現平臺[1]。本文介紹在LabView開發平臺上結合TCP/IP技術實現遠程數據采集傳輸系統。
2、LabView簡介
LabView廣泛應用于數據采集與控制、信號處理以及數據表達等方面,它提供了一種全新的編程方法,即對軟件對象“虛擬儀器(VI)”進行圖形化的組合操作[2] [3]。LabView程序的執行順序是按數據流的方式確定的,可以實現多任務的并行。
LabView的程序由前面板(frontpanel)和流程圖(blockdiagram)兩部分組成,整個程序是基于多線程的設計,前面板和流程圖各占用一個線程。前面板是LabView程序的圖形用戶接口,此接口集成了用戶輸入,并顯示程序的輸出,相當于傳統儀器的面板。流程圖包含虛擬儀器程序的圖形化源代碼,編程控制和定義在前面板上的輸入和輸出功能。在虛擬儀器設計中,從控制模板中選取所需的控制及顯示對象構建出儀器的操作面板;在功能模板中選取適當的功能模塊并進行必要的連接與設置,制作控制流程圖,完成所設計儀器應具有的功能,程序的模塊化與層次化更為直觀。
3、TCP技術
TCP/IP協議體系是目前最成功、使用最頻繁的Intranet/Internet協議[5]。作為一個流行的工業標準,TCP/IP技術有著良好的實用性和開放性。它定義了網絡層的網際互連協議IP,傳輸層的傳輸控制協議TCP、用戶數據協議UDP,等等。基于TCP/IP技術可以架構各種Web服務,如郵件傳輸SMTP、文件傳輸FTP,以及利用超文本傳輸協議HTTP實現動態網頁發布[5]和網絡瀏覽。
在數據傳輸中,TCP/IP網絡通過提供通用網絡服務,使得具體網絡技術對用戶或應用程序透明,從而將具體通信問題從網絡細節中解放出來,使網絡應用更加靈活方便。體現到Labview應用中,我們可以直接調用TCP模塊完成流程編寫,而無需過多考慮網絡的底層實現。
協議結構上,TCP/IP體系利用基于無連接傳輸的IP協議,具體表現為IP地址,來區分網絡中不同的數據站點。同時提供了兩種傳輸方式:傳輸控制協議(TCP)為典型的傳輸大量數據或需要接收數據許可的應用程序提供面向連接和可靠的通信;用戶數據協議(UDP)提供無連接的通信,典型的即時傳輸少量數據的應用程序使用UDP。
根據IP協議內容和TCP的報文格式(圖1),數據傳輸需確定各主機的IP地址及通信的源端口號、目標端口號,也即通常所稱套接字Socket,從而實現端口對端口基礎上的面向連接的數據通信。
相對于其他網絡協議,TCP/IP這種端對端的傳輸具有兩大優點。第一, TCP/IP跟其它協議相比,顯得簡潔清晰。利用通用接口,實現方便。第二,TCP/IP的效率相當高。TCP/IP的IP協議是“盡力傳遞”方式,只有TCP層為保證傳輸可靠性而做必要的工作,這樣的工作模式在物理網絡可靠的環境下傳輸效率相當高,同時TCP實現的端對端連接也有效的保證了傳輸的正確率。
本文利用TCP、IP協議實現各數據采集點與處理主機的連接。
4、Labview中TCP傳輸的實現
在Labview中可以利用已發布的TCP VI及相關子例程設計實現TCP通信[4]。此前需要在通信的計算機正確安裝TCP/IP協議簇。在已接入Internet/Intranet的Windows/Unix系統中,TCP/IP協議是內置的;若是新接入的計算機系統,須確保TCP/IP正確的安裝和設置,同時保證通信所需的源端口/目標端口開放。
由于實現的是把各數據點的數據匯總到處理主機,設計上采用服務器/客戶端通信模式,VI程序分成兩部分:處理主機工作在Server模式,完成數據接受,并提供接口用于數據的相關后續處理;數據點計算機工作于Client模式,實現數據傳送。
設計其工作模式:
(1) Server主機處于工作狀態,并監聽通信端口,等待Client發送的連接請求;
(2) Client計算機開啟TCP連接;
(3) Server主機響應并建立數據傳輸通道;
(4) 連接過程判斷網絡錯誤,若有則中斷連接;
(5) 數據傳輸,利用VI模塊TCP read/write完成;
(6) 傳輸完畢中斷連接。
設計過程調用到LabView提供基于TCP連接的VI函數模塊如圖2所示,可以在blockdiagram中直接應用。
以下為根據此工作模式設計的數據傳輸實例。為通用起見,Client端所用數據為正弦波發生器產生。通信過程引入錯誤檢測機制,可以對傳輸過程的錯誤進行判斷,方便管理,也可以針對不同應用屏蔽相關網絡錯誤。
[align=center]

(圖3 Server 端流程圖)

(圖4 Client端流程圖)[/align]
從工作情況看,Server端能夠正確接收Client端的數據并能實時輸出,工作延時只受網絡條件影響,說明本方法成功實現數據TCP傳送,完全可以應用到分布式的現場監控中。
[align=center]

(圖5 Client工作過程面板顯示)

(圖6 Server工作過程面板顯示)[/align]
5、總結
在遠程測控中,由于存在數據采集點多級分散,數據的采集與傳輸通常需要專用的網絡,花費較大。本方法利用現存的Intranet/Internet網絡可以有效提高資源的使用率、削減應用成本,而實現采用面向連接的傳輸模式,更能保證數據傳送的正確性。由于采用開放性的協議,應用中可以利用LabView的內嵌的Web Server發布[3],方便各地工程師了解處理結果。
參考文獻:
1、 VI技術在遠程教育中的應用,[J/OL]http://www.haitai.com.cn/cn_zh/download/soft/VI2.doc
2、 劉君華,基于LabView的虛擬儀器設計,電子工業出版社[M],2003
3、 NI Corp,LabView User Manual [M],USA,1998
4、 NI Corp,Using LabVIEW with TCP/IP and UDP [M],2003
5、 Andrew S. Tanenbaum,《計算機網絡(第三版)》[M],清華大學出版社,2002