LabVIEW設計的遠程控制實驗系統(tǒng)
2.2 Web Server
在前面提到的DataSocket編程雖然可以很方便地用來傳輸現(xiàn)場數(shù)據(jù)到遠程瀏覽,但是在遠程計算機上也必須編寫程序來接收數(shù)據(jù)。在很多情況下,用戶希望能夠直接將服務端的VI程序面板“原封不動”地復現(xiàn)在遠程客戶端上,在遠程計算機上進行瀏覽和操作,而LabVIEW 的Web Server恰好能夠?qū)崿F(xiàn)這一功能。
在遠程客戶端連接服務端面板之前,需要先配置并啟動本地LabVIEW的Web服務器,而后在遠程客戶端必須安裝LabVIEW Run-Time引擎才能通過網(wǎng)頁連接服務端VI面板。
配置并啟動本地LabVIEW的Web服務器時,首先選擇主菜單的“工具|選項|Web服務器:配置”,選擇“啟用Web服務器”,其他可保持默認。而后在“工具|Web發(fā)布工具”選項里即可進行網(wǎng)絡發(fā)布。在遠程客戶端網(wǎng)頁瀏覽器里輸入如“http://202.200.186.160”形式的網(wǎng)址即可訪問服務端,如圖4所示。利用Web Server的好處是用戶無需任何的編程就能在遠程計算機上通過網(wǎng)頁連接服務端的VI前面板進行瀏覽和操作,但相對DataSocket來說傳輸速率較低,在傳輸大量數(shù)據(jù)時有可能造成數(shù)據(jù)的丟失,故其較適合在數(shù)據(jù)傳送量不大、需要遠程模擬仿真的情況。
需要注意的是,要想在客戶端連接服務端的攝像頭視頻,必須先在客戶機上安裝NI公司的visionrte.exe[4]應用程序,才能接收到完整的視頻信息。
2.3 TCP編程
鑒于TCP協(xié)議在絕大多數(shù)計算機上都有安裝,因此其使用也就更為普遍。但是其編程相對于其他的網(wǎng)絡編程更加復雜,用戶端需要考慮如何建立連接、分配端口號、進行地址轉(zhuǎn)換等。TCP(Transmission Control Protocol)傳輸控制協(xié)議是一個面向連接的協(xié)議,允許從一臺計算機發(fā)出的字節(jié)流無差錯地發(fā)往互聯(lián)網(wǎng)上的其他計算機。TCP是基于兩個網(wǎng)絡主機之間的點對點通信,從程序接收數(shù)據(jù)并將數(shù)據(jù)處理成字節(jié)流,再將字節(jié)組合成段,然后TCP對段編號和排序以便傳遞。在兩個TCP主機交換數(shù)據(jù)之前,必須先相互建立會話。TCP會話通過三向握手的過程進行初始化。這個過程使序號同步,并提供在兩個主機之間建立虛擬連接所需的控制信號。一旦初始的三向握手完成,在發(fā)送和接收主機之間將按順序發(fā)送和確認段。關閉連接之前,TCP使用類似的握手過程驗證兩個主機都完成發(fā)送和接收全部數(shù)據(jù)[6]。
TCP通信的兩端分別為服務器端和客戶端。如圖5和圖6所示,服務端首先對指定的端口(如9000)監(jiān)聽,客戶端向服務端被監(jiān)聽的端口發(fā)出請求,服務端接收到來自客戶端的請求后便建立客戶端與服務端的連接,然后就可以利用該連接進行通信了。
需要注意的是,在構建遠程實驗室時涉及到視頻流的傳輸,而TCP傳輸?shù)膬H僅是字節(jié)流,這就必須將視頻流進行解碼后按照字節(jié)流傳輸出去,再在客戶端通過程序編碼將視頻復現(xiàn)。
LabVIEW在構建遠程控制實驗系統(tǒng)時采用的上述各種網(wǎng)絡通信方式可以看出,各有優(yōu)劣。針對遠程實驗室系統(tǒng)的視頻流傳輸,因其對傳輸延遲、傳輸速率等方面要求很高,故建議采用C/S模式即TCP協(xié)議或DataSocket協(xié)議,而其他的控制指令的發(fā)布完全可以采用Web Server。本系統(tǒng)最后實現(xiàn)了多個遠程控制實驗,調(diào)試結果表明用戶可以進行實驗,并且可以根據(jù)用戶名保存或者查詢歷史實驗記錄。實驗驗證系統(tǒng)在校園網(wǎng)內(nèi)具有良好的實時性,能夠通過網(wǎng)絡為用戶提供實時的遠程實驗服務。
評論