在LABVIEW中實(shí)現(xiàn)網(wǎng)絡(luò)通信的幾種方法
DataSocket API 包含有Open 、Read、Write和Close等函數(shù),其中的Read和Write函數(shù)又分為單個(gè)或數(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ù)通信實(shí)例
以下通過DataSocket C/S模式實(shí)現(xiàn)數(shù)據(jù)的遠(yuǎn)程傳輸。
在服務(wù)器端對(duì)DataSocket Server Manager進(jìn)行設(shè)置,也可采用默認(rèn)值。然后運(yùn)行應(yīng)用程序DataSocket Server,打開DataSocket Server。和上例一樣通過循環(huán)產(chǎn)生100個(gè)正弦信號(hào)數(shù)據(jù),利用DataSocket Write節(jié)點(diǎn)將數(shù)據(jù)發(fā)送到dstp格式指定的連接中。程序框圖如圖5所示:
圖5 DataSocket服務(wù)器端程序框圖
在客戶端,使用DataSocket Read節(jié)點(diǎn)將數(shù)據(jù)從指定的地址讀取數(shù)據(jù),并顯示波形。程序框圖如圖6所示:
圖6 DataSocket客戶端程序框圖
運(yùn)行程序,結(jié)果和圖3、4結(jié)果類似,波形相同,只是連接輸入格式不一樣。
4 共享變量通信
4.1 共享變量
共享變量是繼DataSocket技術(shù)之后LabView為簡化網(wǎng)絡(luò)編程邁出的又一大步。通過共享變量,用戶無需編程就可以在不同計(jì)算機(jī)之間方便的實(shí)現(xiàn)數(shù)據(jù)的共享。用戶無需了解任何的底層復(fù)雜的網(wǎng)絡(luò)通信,就能輕松地實(shí)現(xiàn)數(shù)據(jù)交換。用戶建立和使用共享變量就如同操作全局變量一樣方便。
4.2 利用共享變量通信實(shí)例
以下通過C/S(客戶端/服務(wù)器)通信模式實(shí)現(xiàn)數(shù)據(jù)的傳輸模式。
由于共享變量只能存在于工程項(xiàng)目中,建立一個(gè)共享變量之前先得建立一個(gè)工程,然后在工程目錄下選擇New︱Variable選項(xiàng),然后根據(jù)提示一步一步即可完成設(shè)置,但需要注意的是要實(shí)現(xiàn)網(wǎng)絡(luò)通信變量類型必須選擇為“Network-Published”。這里在服務(wù)器中創(chuàng)建一個(gè)名為Server_Variable的共享變量,同樣在客戶端建立一個(gè)名為Client_Variable的變量,兩變量其數(shù)據(jù)和變量類型一致,都為一維數(shù)組雙精度和網(wǎng)絡(luò)發(fā)布類型。在客戶端其程序框圖如圖7所示:
圖7 共享變量服務(wù)器端程序框圖
在客戶端只需把共享變量Client_Variable的Bind to Source設(shè)置為服務(wù)器中的Server_Variable即可,將其拖入程序框圖。建立的程序框圖如圖8所示:
圖8 共享變量客戶端程序框圖
運(yùn)行程序,結(jié)果如圖3、4。
5 遠(yuǎn)程訪問
5.1 遠(yuǎn)程訪問技術(shù)
在LabVIEW中,實(shí)現(xiàn)遠(yuǎn)程訪問的方式有兩種:遠(yuǎn)程面板控制和客戶端瀏覽器訪問,且在實(shí)施這兩種訪問之前都需要對(duì)服務(wù)器進(jìn)行配置。
配置服務(wù)器包括3部分:服務(wù)器目錄與日志配置、客戶端可見VI配置和客戶端訪問權(quán)限配置。在LabVIEW中選擇 “工具→選項(xiàng)”即可打開參數(shù)配置框,左側(cè)分別可見“Web服務(wù)器:配置”、“Web服務(wù)器:瀏覽器訪問”。其中“Web服務(wù)器:配置”是用來配置服務(wù)器目錄和日志屬性、“Web服務(wù)器:可見VI”用來配置服務(wù)器根目錄下可見的VI程序,也即對(duì)客戶端可操作的VI程序。“Web服務(wù)器:瀏覽器訪問”用來設(shè)置客戶端的訪問權(quán)限。完成服務(wù)器配置以后,即可以選擇遠(yuǎn)程控制面板或?yàn)g覽器方式訪問服務(wù)器、對(duì)服務(wù)器進(jìn)行交互遠(yuǎn)程操作等。
5.2 利用瀏覽器訪問通信實(shí)例
通過客戶端瀏覽器訪問時(shí),首先需要在服務(wù)器端發(fā)布網(wǎng)頁,然后才能從客戶端訪問,以實(shí)現(xiàn)遠(yuǎn)程通信。
在服務(wù)器端發(fā)布網(wǎng)頁。在LabVIEW中選擇“工具→Web發(fā)布工具...”打開“Web發(fā)布工具欄”,分別對(duì)其設(shè)置,最后確定即可,如圖9所示:
圖9 Web發(fā)布工具
在客戶端通過網(wǎng)頁瀏覽器訪問服務(wù)器訪問的頁面。這樣通過Web頁面的發(fā)布就可實(shí)現(xiàn)網(wǎng)絡(luò)的通信,且用戶可與發(fā)布的前面板進(jìn)行交互式操作,使用戶可以通過Internet操作儀器設(shè)備。
6 結(jié)論
從圖1~圖9可以看出,利用以上四種通信方式都可以把服務(wù)器端產(chǎn)生的正弦信號(hào)數(shù)據(jù),通過網(wǎng)絡(luò)通信成功地送至客戶機(jī)進(jìn)行顯示。如果要實(shí)現(xiàn)界面的互操作,需采用遠(yuǎn)程訪問方式,但需要注意的是使用此種方式進(jìn)行網(wǎng)絡(luò)通信時(shí),產(chǎn)生的結(jié)果數(shù)據(jù)是保存在服務(wù)器端而不是客戶端,如果客戶端需要得到數(shù)據(jù),還需使用網(wǎng)絡(luò)通信協(xié)議、DataSocket或共享變量傳送數(shù)據(jù)。利用網(wǎng)絡(luò)通信協(xié)議把數(shù)據(jù)從一個(gè)網(wǎng)絡(luò)或Internet計(jì)算機(jī)傳輸?shù)搅硗庖慌_(tái)計(jì)算機(jī)或網(wǎng)絡(luò)上是實(shí)現(xiàn)遠(yuǎn)程測控系統(tǒng)通信的最基本方式。但基于DataSocket技術(shù)的網(wǎng)絡(luò)通信可以達(dá)到很高的數(shù)據(jù)傳輸效率,實(shí)時(shí)性能相當(dāng)好,同時(shí)安全性能也可達(dá)到要求,這是網(wǎng)絡(luò)協(xié)議通信所不具有的,但缺點(diǎn)是由于訪問權(quán)限等的限制,客戶端的控制功能太弱,需待改進(jìn)。同時(shí)通過共享變量實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)的傳輸也是一種值得提倡的方法,它傳輸速率高,低延遲還可以通過DataSocket函數(shù)讀寫共享變量,應(yīng)用靈活。
評(píng)論