LabVIEW設(shè)計(jì)的遠(yuǎn)程控制實(shí)驗(yàn)系統(tǒng)
摘 要:針對(duì)傳統(tǒng)的實(shí)驗(yàn)室和管理模式已經(jīng)不能適應(yīng)教學(xué)改革的步伐,構(gòu)建了一套利用LabVIEW實(shí)現(xiàn)的基于B/S模式的遠(yuǎn)程控制實(shí)驗(yàn)系統(tǒng)。用戶通過(guò)瀏覽器登錄系統(tǒng),不僅可以操作遠(yuǎn)程實(shí)驗(yàn)設(shè)備并獲取實(shí)驗(yàn)數(shù)據(jù),還能通過(guò)操作遠(yuǎn)程網(wǎng)絡(luò)攝像頭來(lái)觀察真實(shí)的實(shí)驗(yàn)過(guò)程。
關(guān)鍵詞:LabVIEW;網(wǎng)絡(luò)通信; B/S(瀏覽器/服務(wù)器);遠(yuǎn)程實(shí)驗(yàn)室; CAN總線
??? 目前, 傳統(tǒng)教育體系已經(jīng)越來(lái)越不能適應(yīng)當(dāng)今科學(xué)技術(shù)和信息飛速發(fā)展的需要。傳統(tǒng)的教育是以教師講授為主,學(xué)生只是被動(dòng)聽(tīng)講,這種方式已經(jīng)不適應(yīng)培養(yǎng)人才的要求。另外,在實(shí)驗(yàn)設(shè)施不足的情況下,學(xué)生不能直接參與實(shí)驗(yàn)過(guò)程操作,不能很好地實(shí)現(xiàn)實(shí)驗(yàn)教學(xué)目標(biāo)。傳統(tǒng)的教學(xué)方式不利于充分發(fā)揮學(xué)生的想象力和創(chuàng)造力,也不利于及時(shí)追蹤到最新的科技信息。隨著計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,近幾年在教育領(lǐng)域提出了一種新的教學(xué)思路,即構(gòu)建虛擬實(shí)驗(yàn)室的方法。而遠(yuǎn)程實(shí)驗(yàn)教學(xué)多數(shù)是利用虛擬技術(shù)實(shí)現(xiàn),在這種虛擬實(shí)驗(yàn)中,實(shí)驗(yàn)者操縱的都不是實(shí)驗(yàn)設(shè)備實(shí)物,看到的只是一些利用三維技術(shù)做出來(lái)的動(dòng)畫(huà),所獲得的實(shí)驗(yàn)結(jié)果當(dāng)然也不是遠(yuǎn)程設(shè)備的實(shí)際反映而是通過(guò)公式計(jì)算得到的數(shù)據(jù)[1]。針對(duì)這一問(wèn)題,建立一個(gè)可以遠(yuǎn)程觀測(cè)和控制實(shí)驗(yàn)設(shè)備的網(wǎng)絡(luò)實(shí)驗(yàn)系統(tǒng)是一條有效的解決途徑。它使實(shí)驗(yàn)者通過(guò)網(wǎng)絡(luò)從異地計(jì)算機(jī)上進(jìn)行實(shí)驗(yàn)操作和觀察,所得到的實(shí)驗(yàn)結(jié)果與在實(shí)驗(yàn)室得到的結(jié)果完全一致,如同真實(shí)操作實(shí)驗(yàn)設(shè)備一樣。
1 系統(tǒng)總體結(jié)構(gòu)
?? ?遠(yuǎn)程控制實(shí)驗(yàn)系統(tǒng)的框架結(jié)構(gòu)和實(shí)現(xiàn)方法如圖1所示,系統(tǒng)以B/S的形式提供服務(wù),用戶通過(guò)客戶端的瀏覽器登錄Web服務(wù)器,Web服務(wù)器請(qǐng)求數(shù)據(jù)庫(kù)進(jìn)行身份認(rèn)證后即可進(jìn)行相應(yīng)的實(shí)驗(yàn)。
??? 從圖1所示的體系結(jié)構(gòu)可以清楚地看到,通過(guò)LabVIEW調(diào)用周立功PCI–5110 CAN 卡的DLL(動(dòng)態(tài)鏈接庫(kù))文件來(lái)構(gòu)建現(xiàn)場(chǎng)總線控制網(wǎng)絡(luò),并將控制信號(hào)通過(guò)CAN總線發(fā)送到CAN485MB智能協(xié)議轉(zhuǎn)換器,轉(zhuǎn)換后通過(guò)RS485接口進(jìn)入PLC,驅(qū)動(dòng)現(xiàn)場(chǎng)實(shí)驗(yàn)裝置。
?? ?在LabVIEW平臺(tái)的網(wǎng)絡(luò)通信技術(shù)的支持下,不需要了解任何網(wǎng)絡(luò)協(xié)議就能編寫(xiě)復(fù)雜的分布式應(yīng)用程序,將控制界面及實(shí)時(shí)的數(shù)據(jù)信號(hào)和現(xiàn)場(chǎng)視頻發(fā)布給客戶端。本系統(tǒng)的特點(diǎn)是,通過(guò)對(duì)各種網(wǎng)絡(luò)通信方式進(jìn)行實(shí)驗(yàn)比較,使得遠(yuǎn)程客戶端觀看的視頻延遲最低,清晰度最佳,實(shí)時(shí)性最好,從而為客戶端提供了充足的視覺(jué)反饋。
????虛擬實(shí)驗(yàn)系統(tǒng)可采用基于C/S和B/S兩種網(wǎng)絡(luò)模型來(lái)組建[2-3]。C/S模式適合數(shù)據(jù)傳送量大的情況,而且具有效率高、數(shù)據(jù)可靠完整、兼容性強(qiáng)等特點(diǎn)。而對(duì)于數(shù)據(jù)傳送量不大、需要遠(yuǎn)程模擬仿真的情況可以采用B/S模式,這樣對(duì)于客戶端的需求會(huì)很低,不需在客戶端上安裝相應(yīng)的客戶端軟件,只需要瀏覽器便可登錄服務(wù)器對(duì)遠(yuǎn)程測(cè)試進(jìn)行監(jiān)控。本實(shí)驗(yàn)室數(shù)據(jù)流量相對(duì)而言較少,采用的是B/S模式。在實(shí)現(xiàn)方法上主要采用LabVIEW的網(wǎng)絡(luò)服務(wù)器Web Server進(jìn)行網(wǎng)絡(luò)發(fā)布。在客戶端使用Remote Panel之前,必須先在服務(wù)端運(yùn)行LabVIEW,并配置Web Server的文件路徑和網(wǎng)絡(luò)設(shè)置、客戶機(jī)訪問(wèn)權(quán)限設(shè)置、VIs訪問(wèn)權(quán)限設(shè)置。這些設(shè)置不僅起到管理的作用,而且起到安全性的作用。
相應(yīng)的配置如下:
?? ?(1)文件路徑和網(wǎng)絡(luò)設(shè)置。在Web Server: Configuration中選中Enable Web Server,啟用Web Server,并設(shè)置服務(wù)器所在位置,使其他用戶可以通過(guò)瀏覽器查看并控制該VI。
?? ?(2)客戶機(jī)訪問(wèn)權(quán)限設(shè)置。在Web Server: Browser Access中設(shè)置允許或禁止訪問(wèn)的客戶機(jī),以及其訪問(wèn)權(quán)限,這里允許所有的客戶機(jī)訪問(wèn)、觀看并控制遠(yuǎn)程面板。
?? ?(3)VIs訪問(wèn)權(quán)限設(shè)置。在Web Server: Visible VIs中設(shè)置允許客戶訪問(wèn)的VIs,這里運(yùn)行客戶機(jī)訪問(wèn)所有的VIs。設(shè)置完成后,為了提供網(wǎng)頁(yè)瀏覽器訪問(wèn),必須在配置服務(wù)器時(shí)利用菜單欄中的Tools—Web Publish Tool進(jìn)行網(wǎng)頁(yè)發(fā)布。在Web Publish Tool中允許用戶選擇輸入一個(gè)VI的名稱(chēng),并自動(dòng)生成一個(gè)HTML文件,將這個(gè)HTML文件保存在Web Server Configuration所指定的根目錄中,這個(gè)根目錄最好與Windows IIS的Internet信息服務(wù)中的默認(rèn)Web站點(diǎn)的主目錄相一致。若需要發(fā)布的VI中包含了數(shù)個(gè)SubVI,則只需要?jiǎng)?chuàng)建一個(gè)發(fā)布最上層VI的網(wǎng)頁(yè),其他所有的SubVI的前面板的屬性設(shè)定為Open During Execution即可。
2 網(wǎng)絡(luò)通信方式比較
?? ?遠(yuǎn)程實(shí)驗(yàn)系統(tǒng)可采用基于C/S和B/S兩種網(wǎng)絡(luò)模型來(lái)組建,針對(duì)不同的應(yīng)用場(chǎng)所,LabVIEW提供了多種網(wǎng)絡(luò)通信方式供用戶靈活選擇。主要包括共享變量,DSTP協(xié)議的DataSocket編程、DSTP協(xié)議的DataSocket編程、Web Server、SMTP Email Vis、TCP編程和UDP編程[4]等。
?? ?本文就DSTP協(xié)議的DataSocket編程、Web Server和TCP編程這3個(gè)網(wǎng)絡(luò)編程方法在構(gòu)建遠(yuǎn)程控制實(shí)驗(yàn)室時(shí)的應(yīng)用做了具體的研究及比較。
2.1 DSTP協(xié)議的DataSocket編程
?? ?DataSocket技術(shù)是一種面向測(cè)控領(lǐng)域的通過(guò)網(wǎng)絡(luò)實(shí)時(shí)交換數(shù)據(jù)的編程技術(shù)。DataSocket由DataSocket Server與DataSocket APL兩部分組成。DataSocket Server負(fù)責(zé)提供DSTP協(xié)議(數(shù)據(jù)傳輸協(xié)議)和管理底層網(wǎng)絡(luò)通信,實(shí)現(xiàn)與用戶程序之間的數(shù)據(jù)交換,不需要用戶編寫(xiě)有關(guān)網(wǎng)絡(luò)通信的底層程序。DataSocket API是用戶訪問(wèn)網(wǎng)絡(luò)數(shù)據(jù)的接口。DataSocket API訪問(wèn)DSTP對(duì)象時(shí)就是通過(guò)訪問(wèn)DataSocket Server來(lái)實(shí)現(xiàn)現(xiàn)場(chǎng)數(shù)據(jù)的高速傳輸。圖2中,首先在DataSocket Server Manager中新建一個(gè)類(lèi)型為image的字符串項(xiàng),驅(qū)動(dòng)DataSocket Server后,發(fā)布者(Publisher)通過(guò)DataSocket API向URL位置指定的地址寫(xiě)入數(shù)據(jù)。客戶端編程如圖3所示。DataSocket技術(shù)能應(yīng)用于任何編程環(huán)境,而且支持多種協(xié)議(DSTP、OPC、LOOKOUT、 HTTP、FTP和文件訪問(wèn)),本文就DSTP協(xié)議做了詳盡的研究。
2.2 Web Server
?? ?在前面提到的DataSocket編程雖然可以很方便地用來(lái)傳輸現(xiàn)場(chǎng)數(shù)據(jù)到遠(yuǎn)程瀏覽,但是在遠(yuǎn)程計(jì)算機(jī)上也必須編寫(xiě)程序來(lái)接收數(shù)據(jù)。在很多情況下,用戶希望能夠直接將服務(wù)端的VI程序面板“原封不動(dòng)”地復(fù)現(xiàn)在遠(yuǎn)程客戶端上,在遠(yuǎn)程計(jì)算機(jī)上進(jìn)行瀏覽和操作,而LabVIEW 的Web Server恰好能夠?qū)崿F(xiàn)這一功能。
?? ?在遠(yuǎn)程客戶端連接服務(wù)端面板之前,需要先配置并啟動(dòng)本地LabVIEW的Web服務(wù)器,而后在遠(yuǎn)程客戶端必須安裝LabVIEW? Run-Time引擎才能通過(guò)網(wǎng)頁(yè)連接服務(wù)端VI面板。
?? ?配置并啟動(dòng)本地LabVIEW的Web服務(wù)器時(shí),首先選擇主菜單的“工具|選項(xiàng)|Web服務(wù)器:配置”,選擇“啟用Web服務(wù)器”,其他可保持默認(rèn)。而后在“工具|Web發(fā)布工具”選項(xiàng)里即可進(jìn)行網(wǎng)絡(luò)發(fā)布。在遠(yuǎn)程客戶端網(wǎng)頁(yè)瀏覽器里輸入如“http://202.200.186.160”形式的網(wǎng)址即可訪問(wèn)服務(wù)端,如圖4所示。利用Web Server的好處是用戶無(wú)需任何的編程就能在遠(yuǎn)程計(jì)算機(jī)上通過(guò)網(wǎng)頁(yè)連接服務(wù)端的VI前面板進(jìn)行瀏覽和操作,但相對(duì)DataSocket來(lái)說(shuō)傳輸速率較低,在傳輸大量數(shù)據(jù)時(shí)有可能造成數(shù)據(jù)的丟失,故其較適合在數(shù)據(jù)傳送量不大、需要遠(yuǎn)程模擬仿真的情況。
?? ?需要注意的是,要想在客戶端連接服務(wù)端的攝像頭視頻,必須先在客戶機(jī)上安裝NI公司的visionrte.exe[4]應(yīng)用程序,才能接收到完整的視頻信息。
2.3 TCP編程
?? ?鑒于TCP協(xié)議在絕大多數(shù)計(jì)算機(jī)上都有安裝,因此其使用也就更為普遍。但是其編程相對(duì)于其他的網(wǎng)絡(luò)編程更加復(fù)雜,用戶端需要考慮如何建立連接、分配端口號(hào)、進(jìn)行地址轉(zhuǎn)換等。TCP(Transmission Control Protocol)傳輸控制協(xié)議是一個(gè)面向連接的協(xié)議,允許從一臺(tái)計(jì)算機(jī)發(fā)出的字節(jié)流無(wú)差錯(cuò)地發(fā)往互聯(lián)網(wǎng)上的其他計(jì)算機(jī)。TCP是基于兩個(gè)網(wǎng)絡(luò)主機(jī)之間的點(diǎn)對(duì)點(diǎn)通信,從程序接收數(shù)據(jù)并將數(shù)據(jù)處理成字節(jié)流,再將字節(jié)組合成段,然后TCP對(duì)段編號(hào)和排序以便傳遞。在兩個(gè)TCP主機(jī)交換數(shù)據(jù)之前,必須先相互建立會(huì)話。TCP會(huì)話通過(guò)三向握手的過(guò)程進(jìn)行初始化。這個(gè)過(guò)程使序號(hào)同步,并提供在兩個(gè)主機(jī)之間建立虛擬連接所需的控制信號(hào)。一旦初始的三向握手完成,在發(fā)送和接收主機(jī)之間將按順序發(fā)送和確認(rèn)段。關(guān)閉連接之前,TCP使用類(lèi)似的握手過(guò)程驗(yàn)證兩個(gè)主機(jī)都完成發(fā)送和接收全部數(shù)據(jù)[6]。
?? ?TCP通信的兩端分別為服務(wù)器端和客戶端。如圖5和圖6所示,服務(wù)端首先對(duì)指定的端口(如9000)監(jiān)聽(tīng),客戶端向服務(wù)端被監(jiān)聽(tīng)的端口發(fā)出請(qǐng)求,服務(wù)端接收到來(lái)自客戶端的請(qǐng)求后便建立客戶端與服務(wù)端的連接,然后就可以利用該連接進(jìn)行通信了。
??? 需要注意的是,在構(gòu)建遠(yuǎn)程實(shí)驗(yàn)室時(shí)涉及到視頻流的傳輸,而TCP傳輸?shù)膬H僅是字節(jié)流,這就必須將視頻流進(jìn)行解碼后按照字節(jié)流傳輸出去,再在客戶端通過(guò)程序編碼將視頻復(fù)現(xiàn)。
?? ?LabVIEW在構(gòu)建遠(yuǎn)程控制實(shí)驗(yàn)系統(tǒng)時(shí)采用的上述各種網(wǎng)絡(luò)通信方式可以看出,各有優(yōu)劣。針對(duì)遠(yuǎn)程實(shí)驗(yàn)室系統(tǒng)的視頻流傳輸,因其對(duì)傳輸延遲、傳輸速率等方面要求很高,故建議采用C/S模式即TCP協(xié)議或DataSocket協(xié)議,而其他的控制指令的發(fā)布完全可以采用Web Server。本系統(tǒng)最后實(shí)現(xiàn)了多個(gè)遠(yuǎn)程控制實(shí)驗(yàn),調(diào)試結(jié)果表明用戶可以進(jìn)行實(shí)驗(yàn),并且可以根據(jù)用戶名保存或者查詢歷史實(shí)驗(yàn)記錄。實(shí)驗(yàn)驗(yàn)證系統(tǒng)在校園網(wǎng)內(nèi)具有良好的實(shí)時(shí)性,能夠通過(guò)網(wǎng)絡(luò)為用戶提供實(shí)時(shí)的遠(yuǎn)程實(shí)驗(yàn)服務(wù)。
參考文獻(xiàn)
[1] 左虹,殷艷樹(shù),馬麗霞. 基于LabVIEW的綜合實(shí)驗(yàn)教學(xué)平臺(tái)研制[J]. 教學(xué)研究, 2008(1).
[2] 劉太陽(yáng),王仕成,劉志國(guó). 基于LabVIEW RT的數(shù)據(jù)實(shí)時(shí)傳輸系統(tǒng) [J]. 計(jì)算機(jī)測(cè)量與控制, 2008(2).
[3] HORACEK P. Laboratory experiments for control theory courses: a survey[C]. 14th Triennial World Congress of IFAC, Beijing, China,1999: 223-234.
[4] 楊樂(lè)平,李海濤,趙勇,等.LabVIEW程序設(shè)計(jì)與應(yīng)用(第二版)[M]. 北京:電子工業(yè)出版社,2005.
[5] National Instruments. Academic products and resources.[2009-10-22].http://www.ni.com/academic,2009.
[6] 陳錫輝,張銀鴻. LabVIEW 8.20程序設(shè)計(jì)從入門(mén)到精通[M]. 清華大學(xué)出版社, 2007.
評(píng)論
查看更多