labview實現(xiàn)網(wǎng)絡通信方法與實例
點擊學習>>《龍哥手把手教你學LabVIEW視覺設計》視頻教程
網(wǎng)絡通信介紹:
網(wǎng)絡是用物理鏈路將各個孤立的工作站或主機相連在一起,組成數(shù)據(jù)鏈路,從而達到資源共享和通信的目的。通信是人與人之間通過某種媒體進行的信息交流與傳遞。網(wǎng)絡通信是通過網(wǎng)絡將各個孤立的設備進行連接,通過信息交換實現(xiàn)人與人,人與計算機,計算機與計算機之間的通信。
網(wǎng)絡通信中最重要的就是網(wǎng)絡通信協(xié)議。當今網(wǎng)絡協(xié)議有很多,局域網(wǎng)中最常用的有三個網(wǎng)絡協(xié)議:MICROSOFT的NETBEUI、NOVELL的IPX/SPX和TCP/IP協(xié)議。應根據(jù)需要來選擇合適的網(wǎng)絡協(xié)議。
網(wǎng)絡通信的工作原理:
TCP/IP協(xié)議的數(shù)據(jù)傳輸過程: TCP/IP協(xié)議所采用的通信方式是分組交換方式。所謂分組交換,簡單說就是數(shù)據(jù) 在傳輸時分成若干段,每個數(shù)據(jù)段稱為一個數(shù)據(jù)包,TCP/IP協(xié)議的基本傳輸單位是數(shù) 據(jù)包,TCP/IP協(xié)議主要包括兩個主要的協(xié)議,即TCP協(xié)議和IP協(xié)議,這兩個協(xié)議可以 聯(lián)合使用,也可以與其他協(xié)議聯(lián)合使用,它們在數(shù)據(jù)傳輸過程中主要完成以下功能:
1)首先由TCP協(xié)議把數(shù)據(jù)分成若干數(shù)據(jù)包,給每個數(shù)據(jù)包寫上序號,以便接收端 把數(shù)據(jù)還原成原來的格式。
2)IP協(xié)議給每個數(shù)據(jù)包寫上發(fā)送主機和接收主機的地址,一旦寫上的源地址和目 的地址,數(shù)據(jù)包就可以在物理網(wǎng)上傳送數(shù)據(jù)了。IP協(xié)議還具有利用路由算法進行路 由選擇的功能。
3)這些數(shù)據(jù)包可以通過不同的傳輸途徑(路由)進行傳輸,由于路徑不同,加上其 它的原因,可能出現(xiàn)順序顛倒、數(shù)據(jù)丟失、數(shù)據(jù)失真甚至重復的現(xiàn)象。這些問題都 由TCP協(xié)議來處理,它具有檢查和處理錯誤的功能, 必要時還可以請求發(fā)送端重發(fā)。 簡言之,IP協(xié)議負責數(shù)據(jù)的傳輸,而TCP協(xié)議負責數(shù)據(jù)的可靠傳
labview實現(xiàn)網(wǎng)絡通信
1 TCP通信技術
網(wǎng)絡通信協(xié)議是網(wǎng)絡中傳遞、管理信息的一些規(guī)范,是計算機之間相互通信需要共同遵守的一些規(guī)則[1]。網(wǎng)絡通信協(xié)議通常被分為多個層次,每一層完成一定的功能,通信在對應的層次之間進行。LabVIEW中支持的通信協(xié)議類型包括TCP/IP、UDP、串口通信協(xié)議、無線網(wǎng)絡協(xié)議和郵件傳輸協(xié)議。TCP/IP協(xié)議體系是目前最成功, 使用最頻繁的Internet協(xié)議,有著良好的實用性和開放性。它定義了網(wǎng)絡層的網(wǎng)際互連協(xié)議IP,傳輸層的傳輸控制協(xié)議TCP、用戶數(shù)據(jù)協(xié)議UDP等。
LabVIEW中為網(wǎng)絡通訊提供了基于TCP/UDP的通訊函數(shù)供用戶調(diào)用。這樣用戶可直接調(diào)用TCP模塊中已發(fā)布的TCP VI及相關的子VI來完成流程的編寫,而無需過多考慮網(wǎng)絡的底層實現(xiàn)。在設計上采用C/S(客戶端/服務器)通信模式,VI程序分為兩部分:處理主機工作在Server模式,完成數(shù)據(jù)接收,并提供數(shù)據(jù)的相關處理;數(shù)據(jù)點計算機工作于Client模式,實現(xiàn)數(shù)據(jù)傳送[5]。TCP傳輸數(shù)據(jù)過程如下:首先由發(fā)送端發(fā)送連接請求,接收端偵聽到請求后回復并建立連接,然后開始傳輸,數(shù)據(jù)傳輸完成后關閉連接,傳輸過程結束。
2 利用TCP協(xié)議通信實例
以下通過C/S(客戶端/服務器)通信模式實現(xiàn)的數(shù)據(jù)傳輸模式。
在服務器端,用“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é)點結束連接。程序框圖如圖1所示:
圖1 TCP服務器端程序框圖
在客戶端,用“TCP Open Connection”節(jié)點打開TCP連接,用兩個“TCP Read”節(jié)點讀取數(shù)據(jù),第一個節(jié)點接收波形長度作為第二個節(jié)點的輸入,第二個節(jié)點接收波形數(shù)據(jù),最后,用“TCP Close Connection”節(jié)點結束連接。程序框圖如圖2所示:
圖2 TCP客戶端程序框圖
運行程序,結果如下圖3、4:
圖3 服務器端顯示結果
圖4 客戶端顯示結果
3 DataSocket技術通信
3.1 DataSocket技術
DataSocket技術是一種面向測控領域的網(wǎng)上實時數(shù)據(jù)交換編程技術[9],DataSocket技術基于Microsoft的COM和ActiveX技術,對TCP/IP協(xié)議進行高度封裝,它包括了DataSocket Server Manager、DataSocket Server和DataSocket API這幾個工具軟件,以及DSTP (DataSocket Transfer Protocol)協(xié)議、通用資源定位符URL (Uniform. Resource Locator)和文件格式等技術規(guī)范。它能大大簡化Internet網(wǎng)上計算機之間測控數(shù)據(jù)交換的編程工作。同時,DataSocket也可用于一臺計算機內(nèi)或局域網(wǎng)中多個應用程序之間的數(shù)據(jù)交換。
DataSocket Server Manager是一個獨立運行的應用程序,它的主要功能是設置DataSocket Server可連接的客戶端程序的最大數(shù)目和可創(chuàng)建的數(shù)據(jù)項的最大數(shù)目,設置用戶和用戶組,設置用戶可創(chuàng)建數(shù)據(jù)項和讀寫數(shù)據(jù)項的權限,未經(jīng)授權的用戶不能在DataSocket Server上創(chuàng)建或讀寫數(shù)據(jù)項,數(shù)據(jù)項實際上是DataSocket Server中的數(shù)據(jù)文件。DataSocket Server也是一個獨立運行的應用程序,它能為用戶解決大部分網(wǎng)絡通信方面的問題,它負責監(jiān)管Manager中所設定的各種權限的用戶組和客戶端程序之間的數(shù)據(jù)交換,自動處理底層的網(wǎng)絡連接及客戶程序之間的數(shù)據(jù)交換,使網(wǎng)絡連接對客戶端保持透明。DataSocket Server與測控應用程序可安裝在同一臺計算機上,也可以分裝在不同計算機上,后一種方法可增加整個系統(tǒng)的安全性,因為兩臺計算機之間可用防火墻加以隔離,而且,DataSocket Server程序不會占用測控計算機CPU的工作時間,從而使測控應用程序可以運行得更快。
DataSocket API 包含有Open 、Read、Write和Close等函數(shù),其中的Read和Write函數(shù)又分為單個或數(shù)組形式的字符串型、布爾型、數(shù)值型和波形等多種類型。DataSocket技術可在C語言、VB和LabVIEW等多種開發(fā)環(huán)境中應用,因此,這些函數(shù)有不同的形式,它們在C語言中是函數(shù),在VB中是ActiveX控件,而在LabVIEW中則是功能模塊,DataSocket的ActiveX控件還可以應用在VC、EXCEL、網(wǎng)頁和其他支持ActiveX技術的環(huán)境中。
3.2 利用DataSocket技術通信實例
以下通過DataSocket C/S模式實現(xiàn)數(shù)據(jù)的遠程傳輸。
在服務器端對DataSocket Server Manager進行設置,也可采用默認值。然后運行應用程序DataSocket Server,打開DataSocket Server。和上例一樣通過循環(huán)產(chǎn)生100個正弦信號數(shù)據(jù),利用DataSocket Write節(jié)點將數(shù)據(jù)發(fā)送到dstp格式指定的連接中。程序框圖如圖5所示:
圖5 DataSocket服務器端程序框圖
在客戶端,使用DataSocket Read節(jié)點將數(shù)據(jù)從指定的地址讀取數(shù)據(jù),并顯示波形。程序框圖如圖6所示:
圖6 DataSocket客戶端程序框圖
運行程序,結果和圖3、4結果類似,波形相同,只是連接輸入格式不一樣。
4 共享變量通信
4.1 共享變量
共享變量是繼DataSocket技術之后LabView為簡化網(wǎng)絡編程邁出的又一大步。通過共享變量,用戶無需編程就可以在不同計算機之間方便的實現(xiàn)數(shù)據(jù)的共享。用戶無需了解任何的底層復雜的網(wǎng)絡通信,就能輕松地實現(xiàn)數(shù)據(jù)交換。用戶建立和使用共享變量就如同操作全局變量一樣方便。
4.2 利用共享變量通信實例
以下通過C/S(客戶端/服務器)通信模式實現(xiàn)數(shù)據(jù)的傳輸模式。
由于共享變量只能存在于工程項目中,建立一個共享變量之前先得建立一個工程,然后在工程目錄下選擇New︱Variable選項,然后根據(jù)提示一步一步即可完成設置,但需要注意的是要實現(xiàn)網(wǎng)絡通信變量類型必須選擇為“Network-Published”。這里在服務器中創(chuàng)建一個名為Server_Variable的共享變量,同樣在客戶端建立一個名為Client_Variable的變量,兩變量其數(shù)據(jù)和變量類型一致,都為一維數(shù)組雙精度和網(wǎng)絡發(fā)布類型。在客戶端其程序框圖如圖7所示:
圖7 共享變量服務器端程序框圖
在客戶端只需把共享變量Client_Variable的Bind to Source設置為服務器中的Server_Variable即可,將其拖入程序框圖。建立的程序框圖如圖8所示:
圖8 共享變量客戶端程序框圖
運行程序,結果如圖3、4。
5 遠程訪問
5.1 遠程訪問技術
在LabVIEW中,實現(xiàn)遠程訪問的方式有兩種:遠程面板控制和客戶端瀏覽器訪問,且在實施這兩種訪問之前都需要對服務器進行配置。
配置服務器包括3部分:服務器目錄與日志配置、客戶端可見VI配置和客戶端訪問權限配置。在LabVIEW中選擇 “工具→選項”即可打開參數(shù)配置框,左側分別可見“Web服務器:配置”、“Web服務器:瀏覽器訪問”。其中“Web服務器:配置”是用來配置服務器目錄和日志屬性、“Web服務器:可見VI”用來配置服務器根目錄下可見的VI程序,也即對客戶端可操作的VI程序?!癢eb服務器:瀏覽器訪問”用來設置客戶端的訪問權限。完成服務器配置以后,即可以選擇遠程控制面板或瀏覽器方式訪問服務器、對服務器進行交互遠程操作等。
5.2 利用瀏覽器訪問通信實例
通過客戶端瀏覽器訪問時,首先需要在服務器端發(fā)布網(wǎng)頁,然后才能從客戶端訪問,以實現(xiàn)遠程通信。
在服務器端發(fā)布網(wǎng)頁。在LabVIEW中選擇“工具→Web發(fā)布工具。。。”打開“Web發(fā)布工具欄”,分別對其設置,最后確定即可,如圖9所示:
圖9 Web發(fā)布工具
在客戶端通過網(wǎng)頁瀏覽器訪問服務器訪問的頁面。這樣通過Web頁面的發(fā)布就可實現(xiàn)網(wǎng)絡的通信,且用戶可與發(fā)布的前面板進行交互式操作,使用戶可以通過Internet操作儀器設備。
非常好我支持^.^
(41) 12.8%
不好我反對
(279) 87.2%
相關閱讀:
- [電子說] LabVIEW中PID控制的的高級功能 2023-10-24
- [電子說] LabVIEW子VI設計—多態(tài)VI與自適應VI 2023-10-23
- [PLC/PAC] PLC就是邏輯控制嗎?PLC的網(wǎng)絡通信怎么樣? 2023-10-20
- [電子說] 800G OSFP SR8:數(shù)據(jù)中心的高速傳輸與節(jié)能解決方案 2023-10-19
- [電子說] LabVIEW批量讀寫三菱PLC數(shù)據(jù)如何實現(xiàn)呢? 2023-10-17
- [電子說] 太陽能語音監(jiān)控桿:打造智能安防新時代 2023-10-16
- [電子說] 千兆光模塊和萬兆光模塊的區(qū)別? 2023-10-16
- [電子說] Python環(huán)境搭建和LabVIEW中的調(diào)用 2023-10-13
( 發(fā)表人:辰光 )