LabVIEW設(shè)計(jì)的遠(yuǎn)程控制實(shí)驗(yàn)系統(tǒng)
2.2 Web Server
在前面提到的DataSocket編程雖然可以很方便地用來(lái)傳輸現(xiàn)場(chǎng)數(shù)據(jù)到遠(yuǎn)程瀏覽,但是在遠(yuǎn)程計(jì)算機(jī)上也必須編寫(xiě)程序來(lái)接收數(shù)據(jù)。在很多情況下,用戶(hù)希望能夠直接將服務(wù)端的VI程序面板“原封不動(dòng)”地復(fù)現(xiàn)在遠(yuǎn)程客戶(hù)端上,在遠(yuǎn)程計(jì)算機(jī)上進(jìn)行瀏覽和操作,而LabVIEW 的Web Server恰好能夠?qū)崿F(xiàn)這一功能。
在遠(yuǎn)程客戶(hù)端連接服務(wù)端面板之前,需要先配置并啟動(dòng)本地LabVIEW的Web服務(wù)器,而后在遠(yuǎn)程客戶(hù)端必須安裝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)程客戶(hù)端網(wǎng)頁(yè)瀏覽器里輸入如“http://202.200.186.160”形式的網(wǎng)址即可訪問(wèn)服務(wù)端,如圖4所示。利用Web Server的好處是用戶(hù)無(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)程模擬仿真的情況。
需要注意的是,要想在客戶(hù)端連接服務(wù)端的攝像頭視頻,必須先在客戶(hù)機(jī)上安裝NI公司的visionrte.exe[4]應(yīng)用程序,才能接收到完整的視頻信息。
2.3 TCP編程
鑒于TCP協(xié)議在絕大多數(shù)計(jì)算機(jī)上都有安裝,因此其使用也就更為普遍。但是其編程相對(duì)于其他的網(wǎng)絡(luò)編程更加復(fù)雜,用戶(hù)端需要考慮如何建立連接、分配端口號(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ù)器端和客戶(hù)端。如圖5和圖6所示,服務(wù)端首先對(duì)指定的端口(如9000)監(jiān)聽(tīng),客戶(hù)端向服務(wù)端被監(jiān)聽(tīng)的端口發(fā)出請(qǐng)求,服務(wù)端接收到來(lái)自客戶(hù)端的請(qǐng)求后便建立客戶(hù)端與服務(wù)端的連接,然后就可以利用該連接進(jìn)行通信了。
需要注意的是,在構(gòu)建遠(yuǎn)程實(shí)驗(yàn)室時(shí)涉及到視頻流的傳輸,而TCP傳輸?shù)膬H僅是字節(jié)流,這就必須將視頻流進(jìn)行解碼后按照字節(jié)流傳輸出去,再在客戶(hù)端通過(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é)果表明用戶(hù)可以進(jìn)行實(shí)驗(yàn),并且可以根據(jù)用戶(hù)名保存或者查詢(xún)歷史實(shí)驗(yàn)記錄。實(shí)驗(yàn)驗(yàn)證系統(tǒng)在校園網(wǎng)內(nèi)具有良好的實(shí)時(shí)性,能夠通過(guò)網(wǎng)絡(luò)為用戶(hù)提供實(shí)時(shí)的遠(yuǎn)程實(shí)驗(yàn)服務(wù)。
評(píng)論