在LABVIEW中實現(xiàn)網(wǎng)絡(luò)通信的幾種方法
本文關(guān)鍵詞:在LABVIEW中實現(xiàn)網(wǎng)絡(luò)通信的幾種方法,由筆耕文化傳播整理發(fā)布。
在LABVIEW中實現(xiàn)網(wǎng)絡(luò)通信的幾種方法
1 引言
隨著計算機技術(shù)、大規(guī)模集成電路、通信技術(shù)等的飛速發(fā)展,儀器系統(tǒng)與計算機軟件技術(shù)緊密結(jié)合,使得傳統(tǒng)儀器的概念得以突破,出現(xiàn)了一種全新的儀器概念——虛擬儀器。1986年,美國國家儀器(national instruments, 簡稱NI)公司研發(fā)推出了圖形化編程環(huán)境的開發(fā)平臺——LabVIEW軟件,隨即就廣泛地被工業(yè)界、學(xué)術(shù)界和研究實驗室認(rèn)可并接受,被公認(rèn)為標(biāo)準(zhǔn)的數(shù)據(jù)采集和儀器控制軟件,成為目前實現(xiàn)虛擬儀器軟件設(shè)計最流行的工具之一。
同時隨著網(wǎng)絡(luò)的迅速發(fā)展,通過將網(wǎng)絡(luò)技術(shù)和虛擬儀器相結(jié)合,構(gòu)成網(wǎng)絡(luò)化虛擬儀器系統(tǒng),是自動測試儀器系統(tǒng)的發(fā)展方向之一。所以通過網(wǎng)絡(luò)進行數(shù)據(jù)共享是各種軟件的發(fā)展趨勢,而LabVIEW軟件平臺正是適應(yīng)了這一發(fā)展趨勢,它具有強大的網(wǎng)絡(luò)通信功能,使用LabVIEW實現(xiàn)網(wǎng)絡(luò)通信有4大類方法:(1)使用網(wǎng)絡(luò)通信協(xié)議編程實現(xiàn)網(wǎng)絡(luò)通信,可以使用的通信協(xié)議類型包括TCP/IP協(xié)議、UDP、串口通信協(xié)議、無線網(wǎng)絡(luò)協(xié)議等;(2)使用基于TCP/IP的數(shù)據(jù)傳輸協(xié)議DSTP的DataSocket技術(shù)實現(xiàn)網(wǎng)絡(luò)通信;(3)使用共享變量實現(xiàn)網(wǎng)絡(luò)通信;(4)通過遠程訪問來實現(xiàn)網(wǎng)絡(luò)通信。
本文對以上各種實現(xiàn)方法進行探討,最后簡單地分析了各種方法的優(yōu)缺點及應(yīng)用場合。
2 網(wǎng)絡(luò)協(xié)議通信
2.1 TCP通信技術(shù)
網(wǎng)絡(luò)通信協(xié)議是網(wǎng)絡(luò)中傳遞、管理信息的一些規(guī)范,是計算機之間相互通信需要共同遵守的一些規(guī)則[1]。網(wǎng)絡(luò)通信協(xié)議通常被分為多個層次,每一層完成一定的功能,通信在對應(yīng)的層次之間進行。LabVIEW中支持的通信協(xié)議類型包括TCP/IP、UDP、串口通信協(xié)議、無線網(wǎng)絡(luò)協(xié)議和郵件傳輸協(xié)議。TCP/IP協(xié)議體系是目前最成功, 使用最頻繁的Internet協(xié)議,有著良好的實用性和開放性。它定義了網(wǎng)絡(luò)層的網(wǎng)際互連協(xié)議IP,傳輸層的傳輸控制協(xié)議TCP、用戶數(shù)據(jù)協(xié)議UDP等。
LabVIEW中為網(wǎng)絡(luò)通訊提供了基于TCP/UDP的通訊函數(shù)供用戶調(diào)用。這樣用戶可直接調(diào)用TCP模塊中已發(fā)布的TCP VI及相關(guān)的子VI來完成流程的編寫,,而無需過多考慮網(wǎng)絡(luò)的底層實現(xiàn)。在設(shè)計上采用C/S(客戶端/服務(wù)器)通信模式,VI程序分為兩部分:處理主機工作在Server模式,完成數(shù)據(jù)接收,并提供數(shù)據(jù)的相關(guān)處理;數(shù)據(jù)點計算機工作于Client模式,實現(xiàn)數(shù)據(jù)傳送[5]。TCP傳輸數(shù)據(jù)過程如下:首先由發(fā)送端發(fā)送連接請求,接收端偵聽到請求后回復(fù)并建立連接,然后開始傳輸,數(shù)據(jù)傳輸完成后關(guān)閉連接,傳輸過程結(jié)束。
2.2 利用TCP協(xié)議通信實例
以下通過C/S(客戶端/服務(wù)器)通信模式實現(xiàn)的數(shù)據(jù)傳輸模式。 在服務(wù)器端,用“TCP Create Listener”節(jié)點創(chuàng)建偵聽,“TCP Wait on Listener”節(jié)點等待客戶機連接,通過循環(huán)產(chǎn)生100個正弦信號數(shù)據(jù),用兩個“TCP Write”節(jié)點來發(fā)送數(shù)據(jù),第一個節(jié)點用來發(fā)送波形數(shù)據(jù)的長度,第二個節(jié)點發(fā)送波形數(shù)據(jù),最后,用“TCP Close Connection”節(jié)點結(jié)束連接。程序框圖如圖1所示:
圖1 TCP服務(wù)器端程序框圖
在客戶端,用“TCP Open Connection”節(jié)點打開TCP連接,用兩個“TCP Read”節(jié)點讀取數(shù)據(jù),第一個節(jié)點接收波形長度作為第二個節(jié)點的輸入,第二個節(jié)點接收波形數(shù)據(jù),最后,用“TCP Close Connection”節(jié)點結(jié)束連接。程序框圖如圖2所示:
圖2 TCP客戶端程序框圖
運行程序,結(jié)果如下圖3、4:
圖3 服務(wù)器端顯示結(jié)果
圖4 客戶端顯示結(jié)果
3 DataSocket技術(shù)通信
3.1 DataSocket技術(shù)
DataSocket技術(shù)是一種面向測控領(lǐng)域的網(wǎng)上實時數(shù)據(jù)交換編程技術(shù)
[9],DataSocket技術(shù)基于Microsoft的COM和ActiveX技術(shù),對TCP/IP協(xié)議進行高度封裝,它包括了DataSocket Server Manager、DataSocket Server和DataSocket API這幾個工具軟件,以及DSTP (DataSocket Transfer Protocol)協(xié)議、通用資源定位符URL (Uniform. Resource Locator)和文件格式等技術(shù)規(guī)范。它能大大簡化Internet網(wǎng)上計算機之間測控數(shù)據(jù)交換的編程工作。同時,DataSocket也可用于一臺計算機內(nèi)或局域網(wǎng)中多個應(yīng)用程序之間的數(shù)據(jù)交換。
DataSocket Server Manager是一個獨立運行的應(yīng)用程序,它的主要功能是設(shè)置DataSocket Server可連接的客戶端程序的最大數(shù)目和可創(chuàng)建的數(shù)據(jù)項的最大數(shù)目,設(shè)置用戶和用戶組,設(shè)置用戶可創(chuàng)建數(shù)據(jù)項和讀寫數(shù)據(jù)項的權(quán)限,未經(jīng)授權(quán)的用戶不能在DataSocket Server上創(chuàng)建或讀寫數(shù)據(jù)項,數(shù)據(jù)項實際上是DataSocket Server中的數(shù)據(jù)文件。DataSocket Server也是一個獨立運行的應(yīng)用程序,它能為用戶解決大部分網(wǎng)絡(luò)通信方面的問題,它負(fù)責(zé)監(jiān)管Manager中所設(shè)定的各種權(quán)限的用戶組和客戶端程序之間的數(shù)據(jù)交換,自動處理底層的網(wǎng)絡(luò)連接及客戶程序之間的數(shù)據(jù)交換,使網(wǎng)絡(luò)連接對客戶端保持透明。DataSocket Server與測控應(yīng)用程序可安裝在同一臺計算機上,也可以分裝在不同計算機上,后一種方法可增加整個系統(tǒng)的安全性,因為兩臺計算機之間可用防火墻加以隔離,而且,DataSocket Server程序不會占用測控計算機CPU的工作時間,從而使測控應(yīng)用程序可以運行得更快。
DataSocket API 包含有Open 、Read、Write和Close等函數(shù),其中的Read和Write函數(shù)又分為單個或數(shù)組形式的字符串型、布爾型、數(shù)值型和波形等多種類型。DataSocket技術(shù)可在C語言、VB和LabVIEW等多種開發(fā)環(huán)境中應(yīng)用,因此,這些函數(shù)有不同的形式,它們在C語言中是函數(shù),在VB中是ActiveX控件,而在LabVIEW中則是功能模塊,DataSocket的ActiveX控件還可以應(yīng)用在VC、EXCEL、網(wǎng)頁和其他支持ActiveX技術(shù)的環(huán)境中。
3.2 利用DataSocket技術(shù)通信實例
以下通過DataSocket C/S模式實現(xiàn)數(shù)據(jù)的遠程傳輸。
在服務(wù)器端對DataSocket Server Manager進行設(shè)置,也可采用默認(rèn)值。然后運行應(yīng)用程序DataSocket Server,打開DataSocket Server。和上例一樣通
過循環(huán)產(chǎn)生100個正弦信號數(shù)據(jù),利用DataSocket Write節(jié)點將數(shù)據(jù)發(fā)送到dstp格式指定的連接中。程序框圖如圖5所示:
圖5 DataSocket服務(wù)器端程序框圖
在客戶端,使用DataSocket Read節(jié)點將數(shù)據(jù)從指定的地址讀取數(shù)據(jù),并顯示波形。程序框圖如圖6所示:
圖6 DataSocket客戶端程序框圖
運行程序,結(jié)果和圖3、4結(jié)果類似,波形相同,只是連接輸入格式不一樣。 4 共享變量通信
4.1 共享變量
共享變量是繼DataSocket技術(shù)之后LabView為簡化網(wǎng)絡(luò)編程邁出的又一大步。通過共享變量,用戶無需編程就可以在不同計算機之間方便的實現(xiàn)數(shù)據(jù)的共享。用戶無需了解任何的底層復(fù)雜的網(wǎng)絡(luò)通信,就能輕松地實現(xiàn)數(shù)據(jù)交換。用戶建立和使用共享變量就如同操作全局變量一樣方便。
4.2 利用共享變量通信實例
以下通過C/S(客戶端/服務(wù)器)通信模式實現(xiàn)數(shù)據(jù)的傳輸模式。
由于共享變量只能存在于工程項目中,建立一個共享變量之前先得建立一個工程,然后在工程目錄下選擇New︱Variable選項,然后根據(jù)提示一步一步即可完成設(shè)置,但需要注意的是要實現(xiàn)網(wǎng)絡(luò)通信變量類型必須選擇為
“Network-Published”。這里在服務(wù)器中創(chuàng)建一個名為Server_Variable的共享變量,同樣在客戶端建立一個名為Client_Variable的變量,兩變量其數(shù)據(jù)和變量類型一致,都為一維數(shù)組雙精度和網(wǎng)絡(luò)發(fā)布類型。在客戶端其程序框圖如圖7所示:
五星文庫wxphp.com包含總結(jié)匯報、資格考試、外語學(xué)習(xí)、人文社科、考試資料、黨團工作、word文檔、辦公文檔、IT計算機、行業(yè)論文、教程攻略、旅游景點以及在LABVIEW中實現(xiàn)網(wǎng)絡(luò)通信的幾種方法等內(nèi)容。
本文共2頁12
本文關(guān)鍵詞:在LABVIEW中實現(xiàn)網(wǎng)絡(luò)通信的幾種方法,由筆耕文化傳播整理發(fā)布。
本文編號:117480
本文鏈接:http://www.sikaile.net/kejilunwen/wltx/117480.html