摘 要:闡述了在NI LabView平臺上結(jié)合TCP/IP協(xié)議進行數(shù)據(jù)傳輸?shù)墓ぷ鞣椒ǎ⒔o出對工業(yè)現(xiàn)場數(shù)據(jù)采集傳送與監(jiān)控的仿真實例。
關(guān)鍵詞:TCP/IP;虛擬儀器;LabView
1、引言
在現(xiàn)代儀器系統(tǒng)中,計算機已經(jīng)與儀器結(jié)合得非常緊密,已成為整個系統(tǒng)的核心,許多傳統(tǒng)儀器正在逐漸被計算機部分、甚至全部取代。粗略地說這種結(jié)合有兩種方式:一種是將計算機裝入儀器;另一種方式是將儀器裝入計算機,即以通用的計算機硬件及操作系統(tǒng)為依托,實現(xiàn)各種儀器功能。虛擬儀器主要是指這種方式,其實質(zhì)就是一個按照儀器需求組織的數(shù)據(jù)采集系統(tǒng)。美國NI公司的LabVIEW就是目前在這一領(lǐng)域內(nèi)使用較為廣泛的計算機語言。
隨著計算機網(wǎng)絡(luò)的發(fā)展,虛擬儀器與Internet技術(shù)的結(jié)合為虛擬儀器網(wǎng)絡(luò)化、工業(yè)現(xiàn)場遠程測控提供了更好的實現(xiàn)平臺[1]。本文介紹在LabView開發(fā)平臺上結(jié)合TCP/IP技術(shù)實現(xiàn)遠程數(shù)據(jù)采集傳輸系統(tǒng)。
2、LabView簡介
LabView廣泛應(yīng)用于數(shù)據(jù)采集與控制、信號處理以及數(shù)據(jù)表達等方面,它提供了一種全新的編程方法,即對軟件對象“虛擬儀器(VI)”進行圖形化的組合操作[2] [3]。LabView程序的執(zhí)行順序是按數(shù)據(jù)流的方式確定的,可以實現(xiàn)多任務(wù)的并行。
LabView的程序由前面板(frontpanel)和流程圖(blockdiagram)兩部分組成,整個程序是基于多線程的設(shè)計,前面板和流程圖各占用一個線程。前面板是LabView程序的圖形用戶接口,此接口集成了用戶輸入,并顯示程序的輸出,相當于傳統(tǒng)儀器的面板。流程圖包含虛擬儀器程序的圖形化源代碼,編程控制和定義在前面板上的輸入和輸出功能。在虛擬儀器設(shè)計中,從控制模板中選取所需的控制及顯示對象構(gòu)建出儀器的操作面板;在功能模板中選取適當?shù)墓δ苣K并進行必要的連接與設(shè)置,制作控制流程圖,完成所設(shè)計儀器應(yīng)具有的功能,程序的模塊化與層次化更為直觀。
3、TCP技術(shù)
TCP/IP協(xié)議體系是目前最成功、使用最頻繁的Intranet/Internet協(xié)議[5]。作為一個流行的工業(yè)標準,TCP/IP技術(shù)有著良好的實用性和開放性。它定義了網(wǎng)絡(luò)層的網(wǎng)際互連協(xié)議IP,傳輸層的傳輸控制協(xié)議TCP、用戶數(shù)據(jù)協(xié)議UDP,等等。基于TCP/IP技術(shù)可以架構(gòu)各種Web服務(wù),如郵件傳輸SMTP、文件傳輸FTP,以及利用超文本傳輸協(xié)議HTTP實現(xiàn)動態(tài)網(wǎng)頁發(fā)布[5]和網(wǎng)絡(luò)瀏覽。
在數(shù)據(jù)傳輸中,TCP/IP網(wǎng)絡(luò)通過提供通用網(wǎng)絡(luò)服務(wù),使得具體網(wǎng)絡(luò)技術(shù)對用戶或應(yīng)用程序透明,從而將具體通信問題從網(wǎng)絡(luò)細節(jié)中解放出來,使網(wǎng)絡(luò)應(yīng)用更加靈活方便。體現(xiàn)到Labview應(yīng)用中,我們可以直接調(diào)用TCP模塊完成流程編寫,而無需過多考慮網(wǎng)絡(luò)的底層實現(xiàn)。
協(xié)議結(jié)構(gòu)上,TCP/IP體系利用基于無連接傳輸?shù)腎P協(xié)議,具體表現(xiàn)為IP地址,來區(qū)分網(wǎng)絡(luò)中不同的數(shù)據(jù)站點。同時提供了兩種傳輸方式:傳輸控制協(xié)議(TCP)為典型的傳輸大量數(shù)據(jù)或需要接收數(shù)據(jù)許可的應(yīng)用程序提供面向連接和可靠的通信;用戶數(shù)據(jù)協(xié)議(UDP)提供無連接的通信,典型的即時傳輸少量數(shù)據(jù)的應(yīng)用程序使用UDP。
根據(jù)IP協(xié)議內(nèi)容和TCP的報文格式(圖1),數(shù)據(jù)傳輸需確定各主機的IP地址及通信的源端口號、目標端口號,也即通常所稱套接字Socket,從而實現(xiàn)端口對端口基礎(chǔ)上的面向連接的數(shù)據(jù)通信。

相對于其他網(wǎng)絡(luò)協(xié)議,TCP/IP這種端對端的傳輸具有兩大優(yōu)點。第一, TCP/IP跟其它協(xié)議相比,顯得簡潔清晰。利用通用接口,實現(xiàn)方便。第二,TCP/IP的效率相當高。TCP/IP的IP協(xié)議是“盡力傳遞”方式,只有TCP層為保證傳輸可靠性而做必要的工作,這樣的工作模式在物理網(wǎng)絡(luò)可靠的環(huán)境下傳輸效率相當高,同時TCP實現(xiàn)的端對端連接也有效的保證了傳輸?shù)恼_率。
本文利用TCP、IP協(xié)議實現(xiàn)各數(shù)據(jù)采集點與處理主機的連接。
4、Labview中TCP傳輸?shù)膶崿F(xiàn)
在Labview中可以利用已發(fā)布的TCP VI及相關(guān)子例程設(shè)計實現(xiàn)TCP通信[4]。此前需要在通信的計算機正確安裝TCP/IP協(xié)議簇。在已接入Internet/Intranet的Windows/Unix系統(tǒng)中,TCP/IP協(xié)議是內(nèi)置的;若是新接入的計算機系統(tǒng),須確保TCP/IP正確的安裝和設(shè)置,同時保證通信所需的源端口/目標端口開放。
由于實現(xiàn)的是把各數(shù)據(jù)點的數(shù)據(jù)匯總到處理主機,設(shè)計上采用服務(wù)器/客戶端通信模式,VI程序分成兩部分:處理主機工作在Server模式,完成數(shù)據(jù)接受,并提供接口用于數(shù)據(jù)的相關(guān)后續(xù)處理;數(shù)據(jù)點計算機工作于Client模式,實現(xiàn)數(shù)據(jù)傳送。
設(shè)計其工作模式:
?。?) Server主機處于工作狀態(tài),并監(jiān)聽通信端口,等待Client發(fā)送的連接請求;
(2) Client計算機開啟TCP連接;
?。?) Server主機響應(yīng)并建立數(shù)據(jù)傳輸通道;
?。?) 連接過程判斷網(wǎng)絡(luò)錯誤,若有則中斷連接;
(5) 數(shù)據(jù)傳輸,利用VI模塊TCP read/write完成;
?。?) 傳輸完畢中斷連接。
設(shè)計過程調(diào)用到LabView提供基于TCP連接的VI函數(shù)模塊如圖2所示,可以在blockdiagram中直接應(yīng)用。
以下為根據(jù)此工作模式設(shè)計的數(shù)據(jù)傳輸實例。為通用起見,Client端所用數(shù)據(jù)為正弦波發(fā)生器產(chǎn)生。通信過程引入錯誤檢測機制,可以對傳輸過程的錯誤進行判斷,方便管理,也可以針對不同應(yīng)用屏蔽相關(guān)網(wǎng)絡(luò)錯誤。
[align=center]

(圖3 Server 端流程圖)

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

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

(圖6 Server工作過程面板顯示)[/align]
5、總結(jié)
在遠程測控中,由于存在數(shù)據(jù)采集點多級分散,數(shù)據(jù)的采集與傳輸通常需要專用的網(wǎng)絡(luò),花費較大。本方法利用現(xiàn)存的Intranet/Internet網(wǎng)絡(luò)可以有效提高資源的使用率、削減應(yīng)用成本,而實現(xiàn)采用面向連接的傳輸模式,更能保證數(shù)據(jù)傳送的正確性。由于采用開放性的協(xié)議,應(yīng)用中可以利用LabView的內(nèi)嵌的Web Server發(fā)布[3],方便各地工程師了解處理結(jié)果。
參考文獻:
1、 VI技術(shù)在遠程教育中的應(yīng)用,[J/OL]http://www.haitai.com.cn/cn_zh/download/soft/VI2.doc
2、 劉君華,基于LabView的虛擬儀器設(shè)計,電子工業(yè)出版社[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,《計算機網(wǎng)絡(luò)(第三版)》[M],清華大學出版社,2002