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