【摘要】針對(duì)網(wǎng)絡(luò)教學(xué)中缺乏實(shí)驗(yàn)環(huán)節(jié)的問(wèn)題,本文采用ASP、 SQL Server和Java集成架構(gòu)實(shí)現(xiàn)了web環(huán)境下機(jī)電系統(tǒng)的遠(yuǎn)程實(shí)驗(yàn)。利用該平臺(tái)用戶(hù)可以通過(guò)網(wǎng)絡(luò)設(shè)計(jì)控制算法、調(diào)整遠(yuǎn)端機(jī)電系統(tǒng)的控制參數(shù),實(shí)驗(yàn)運(yùn)行結(jié)果和現(xiàn)場(chǎng)圖像也可反饋給用戶(hù)端。應(yīng)用效果驗(yàn)證了該網(wǎng)絡(luò)遠(yuǎn)程實(shí)驗(yàn)教學(xué)系統(tǒng)的有效性和可行性。
【關(guān)鍵詞】遠(yuǎn)程交互;機(jī)電系統(tǒng);實(shí)驗(yàn)教學(xué)
【中圖分類(lèi)號(hào)】G40-057 【文獻(xiàn)標(biāo)識(shí)碼】B 【論文編號(hào)】1009—8097 (2008) 12—0100—04
一 引言
網(wǎng)絡(luò)技術(shù)已經(jīng)應(yīng)用到了教育中,它和教育的結(jié)合形成了新的教育方式,即網(wǎng)絡(luò)教育(E-learning)。網(wǎng)絡(luò)教育突破傳統(tǒng)學(xué)校教學(xué)方式的時(shí)空束縛,向人們展示了一個(gè)嶄新的、廣闊的學(xué)習(xí)世界,具有長(zhǎng)遠(yuǎn)的發(fā)展?jié)摿Α?/p>
目前的網(wǎng)絡(luò)教育主要著重于教學(xué)內(nèi)容的呈現(xiàn)與講解,缺乏研究性學(xué)習(xí)的環(huán)節(jié),還沒(méi)有涉及互動(dòng)式的網(wǎng)絡(luò)實(shí)驗(yàn)教學(xué)[1]。實(shí)際上,實(shí)驗(yàn)教學(xué)是課堂教學(xué)的重要補(bǔ)充,通過(guò)實(shí)驗(yàn),有助于學(xué)生增加感性認(rèn)識(shí),加深對(duì)所學(xué)知識(shí)的理解和掌握,提高動(dòng)手能力和激發(fā)學(xué)習(xí)興趣。
另一方面,隨著招生規(guī)模的擴(kuò)大,傳統(tǒng)的實(shí)驗(yàn)課程建設(shè)已不能很好地滿(mǎn)足學(xué)生的需求。由于實(shí)驗(yàn)教學(xué)時(shí)可供每個(gè)學(xué)生使用的設(shè)備資源十分有限,各高校的實(shí)驗(yàn)課教學(xué)大都存在著實(shí)驗(yàn)形式、內(nèi)容、要求與實(shí)驗(yàn)設(shè)備、器材、場(chǎng)地等相對(duì)滯后的矛盾。實(shí)驗(yàn)保障條件的制約在一定程度上影響了實(shí)驗(yàn)教學(xué)的開(kāi)展和學(xué)生實(shí)踐創(chuàng)新能力的培養(yǎng);二是已有的這些實(shí)驗(yàn)課程主要面向公共基礎(chǔ)必修課或?qū)I(yè)必修課,對(duì)于一些其它課程來(lái)說(shuō),目前還缺乏能與課堂教學(xué)相配套的實(shí)驗(yàn)教學(xué)環(huán)節(jié),這無(wú)疑也將影響這些課程的教學(xué)效果。虛擬實(shí)驗(yàn)[2] 可以部分彌補(bǔ)傳統(tǒng)實(shí)驗(yàn)的不足,但其主要是用仿真的方式模擬傳統(tǒng)的實(shí)驗(yàn)儀器和電子類(lèi)實(shí)驗(yàn)內(nèi)容,如電工電子虛擬實(shí)驗(yàn)室、虛擬儀器的開(kāi)發(fā)研究等,不適用于復(fù)雜機(jī)電控制系統(tǒng)的實(shí)驗(yàn)教學(xué)。
針對(duì)上述問(wèn)題,我們研究開(kāi)發(fā)了WEB環(huán)境下機(jī)電控制實(shí)驗(yàn)教學(xué)系統(tǒng)。該系統(tǒng)充分利用了網(wǎng)絡(luò)的資源共享性、地域的分散性和時(shí)間的隨意性的特點(diǎn),為學(xué)生提供便利的實(shí)驗(yàn)條件。對(duì)于機(jī)電控制類(lèi)課程,在課堂講授完基本控制理論和控制算法后,學(xué)生利用基于WEB瀏覽器的實(shí)驗(yàn)教學(xué)系統(tǒng)可在本地計(jì)算機(jī)上進(jìn)行控制算法或PID控制參數(shù)的設(shè)計(jì),完成后通過(guò)互聯(lián)網(wǎng)將這些設(shè)計(jì)參數(shù)或控制算法傳送給實(shí)際的機(jī)電控制系統(tǒng),這些實(shí)際機(jī)電控制系統(tǒng)的運(yùn)動(dòng)過(guò)程和結(jié)果又以視頻流圖像和圖表的方式通過(guò)網(wǎng)絡(luò)實(shí)時(shí)反饋給學(xué)生,學(xué)生根據(jù)反饋結(jié)果可以進(jìn)行進(jìn)一步的修改和設(shè)計(jì),其效果猶如現(xiàn)場(chǎng)實(shí)驗(yàn)一樣。當(dāng)某一時(shí)間段的允許實(shí)驗(yàn)人數(shù)超過(guò)系統(tǒng)限制后,其他等待的學(xué)生可通過(guò)視頻多點(diǎn)播放的形式對(duì)正在進(jìn)行的實(shí)驗(yàn)進(jìn)行觀察,也可點(diǎn)播系統(tǒng)中其它的與課程內(nèi)容有關(guān)的視頻流文件。通過(guò)基于WEB的機(jī)電控制網(wǎng)絡(luò)實(shí)驗(yàn),學(xué)生加深了對(duì)課堂所學(xué)控制理論與方法的理解,同時(shí)又不受時(shí)間和場(chǎng)地的限制,從而使有限的設(shè)備資源得到了高效的利用,同時(shí)也為網(wǎng)絡(luò)教育提供了新的技術(shù)支持。
二 系統(tǒng)結(jié)構(gòu)和主要解決方案
基于WEB的機(jī)電控制遠(yuǎn)程實(shí)驗(yàn)系統(tǒng)結(jié)構(gòu)圖如圖1所示。系統(tǒng)主要由客戶(hù)端和服務(wù)器端組成??蛻?hù)端不需要裝載特定程序,只要能接入互聯(lián)網(wǎng)絡(luò),就可通過(guò)WEB瀏覽器訪問(wèn)該遠(yuǎn)程實(shí)驗(yàn)系統(tǒng),并進(jìn)行相關(guān)操作。大大降低了對(duì)客戶(hù)端用戶(hù)的要求。
服務(wù)器端從邏輯上包括:Web服務(wù)器、媒體服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器和若干控制服務(wù)器。Web服務(wù)器、媒體服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器由主控服務(wù)器擔(dān)當(dāng)。其中Web服務(wù)器負(fù)責(zé)響應(yīng)客戶(hù)端的請(qǐng)求、建立與客戶(hù)端的連接;媒體服務(wù)器將現(xiàn)場(chǎng)實(shí)際視頻圖像返回給客戶(hù)端的瀏覽器界面;數(shù)據(jù)服務(wù)器主要存儲(chǔ)相關(guān)信息和實(shí)驗(yàn)數(shù)據(jù),實(shí)現(xiàn)信息查詢(xún)和處理功能。
PID控制服務(wù)器和主控服務(wù)器放在同一局域網(wǎng)中,PID控制服務(wù)器通過(guò)串口連接電機(jī)PID控制卡來(lái)控制電機(jī)或其他機(jī)電設(shè)備。在這種結(jié)構(gòu)下,可以隨意方便地增加PID控制服務(wù)器數(shù)量而不影響系統(tǒng)的其它結(jié)構(gòu)。
1 系統(tǒng)架構(gòu)
整個(gè)WEB系統(tǒng)是采用ASP 和 SQL Server架構(gòu)構(gòu)建[3]。所有頁(yè)面均采用ASP編寫(xiě),ASP即Active Server Pages,是一套微軟開(kāi)發(fā)的服務(wù)器端腳本環(huán)境,通過(guò)ASP我們可以建立動(dòng)態(tài),交互且高效的Web服務(wù)器應(yīng)用程序。數(shù)據(jù)庫(kù)采用SQL Server,具有較好的穩(wěn)定性和并行性。
2 視頻直播架構(gòu)
視頻的直播是采用Helix Server系統(tǒng)架構(gòu)實(shí)現(xiàn)的,通過(guò)配置Helix Server之后(配置播放端口,架設(shè)實(shí)時(shí)廣播,設(shè)置Helix Producer Plus軟件,設(shè)置視頻傳輸速率),客戶(hù)端通過(guò)網(wǎng)絡(luò)可以實(shí)現(xiàn)實(shí)時(shí)監(jiān)控。Helix Server系統(tǒng)的圖像壓縮比很高,圖像效果好,延時(shí)也在10秒之內(nèi)。
3 交互性客戶(hù)端架構(gòu)
交互式客戶(hù)端用于直流無(wú)刷電機(jī)PID調(diào)速控制實(shí)驗(yàn)。采用Java applet實(shí)現(xiàn),可以通過(guò)socket完成和服務(wù)器之間的通信。Java的Applet具有真正的平臺(tái)無(wú)關(guān)性,安裝會(huì)在用戶(hù)載入含有Applet的網(wǎng)頁(yè)時(shí)自動(dòng)發(fā)生,而且具有很高的安全性[4]。服務(wù)器端的控制軟件需要較高的穩(wěn)定性和容錯(cuò)性,采用C++編程語(yǔ)言實(shí)現(xiàn)[5]。
三 關(guān)鍵技術(shù)實(shí)現(xiàn)
1 數(shù)據(jù)庫(kù)交互技術(shù)
數(shù)據(jù)庫(kù)主要用于儲(chǔ)存用戶(hù)資料、學(xué)生預(yù)備作業(yè)信息以及教師批改信息。ASP通過(guò)ODBC連接方式,配置成功ODBC數(shù)據(jù)源之后,可以通過(guò)下面的語(yǔ)句實(shí)現(xiàn)頁(yè)面與數(shù)據(jù)庫(kù)之間的交互。
ConnectionString=\"DSN=webrobotDB;UID=sa;PWD=YourPwd;Database=webrobotDB\"。數(shù)據(jù)庫(kù)主要建有三個(gè)表:(1) 用戶(hù)資料主要保存學(xué)生的各項(xiàng)資料以及密碼,用于管理和登陸。(2) 學(xué)生預(yù)備作業(yè)表主要保存學(xué)生需要提交的習(xí)題。(3) 教師批改信息表保存教師對(duì)學(xué)生作業(yè)的批語(yǔ)。
2 直流無(wú)刷電機(jī)PID遠(yuǎn)程交互控制實(shí)現(xiàn)
PID遠(yuǎn)程交互控制實(shí)驗(yàn)主要是為了讓學(xué)生能夠更好了解電機(jī)的PID調(diào)速控制。用戶(hù)取得權(quán)限登陸互聯(lián)網(wǎng)絡(luò)之后可以連接上主控服務(wù)器,該服務(wù)器連接了PID控制服務(wù)器以及其他相關(guān)實(shí)驗(yàn)設(shè)備,PID控制服務(wù)器和主控服務(wù)器是出于同一個(gè)局域網(wǎng),每個(gè)服務(wù)器都有自己的局域網(wǎng)IP。在授權(quán)用戶(hù)登錄網(wǎng)絡(luò)后,主控服務(wù)器可以智能地為用戶(hù)選擇一臺(tái)可供操作的空閑服務(wù)器,同時(shí)若是沒(méi)有空閑的服務(wù)器,系統(tǒng)會(huì)提示繁忙。如果用戶(hù)取得某一服務(wù)器的使用權(quán)之后,完成相應(yīng)的操作實(shí)驗(yàn)之后便會(huì)和服務(wù)器斷開(kāi),服務(wù)器便重新進(jìn)入等待狀態(tài)。
客戶(hù)端通過(guò)applet建立和PID控制服務(wù)器的socket連接,根據(jù)相應(yīng)的協(xié)議傳送PID參數(shù)給PID控制服務(wù)器。PID控制服務(wù)器端獲取客戶(hù)端的數(shù)據(jù)之后,轉(zhuǎn)換為電機(jī)控制指令通過(guò)串口發(fā)送給電機(jī)控制卡。
電機(jī)控制卡核心CPU是TMS320F240型的DSP芯片,采用PID算法,利用PWM原理對(duì)電機(jī)進(jìn)行速度伺服控制。PID控制參數(shù)和速度給定取決于串口接收到的設(shè)定值,伺服周期1ms,由實(shí)時(shí)中斷實(shí)現(xiàn)定時(shí)。TMSF240的通用定時(shí)器分派如下:T1用于產(chǎn)生PWM信號(hào)的全比較單元,T2用于碼盤(pán)計(jì)數(shù)。運(yùn)行期間,主控軟件對(duì)電機(jī)進(jìn)行速度采樣,同時(shí)對(duì)電機(jī)控制卡發(fā)送握手確認(rèn)。運(yùn)行完畢之后客戶(hù)端可以接受從服務(wù)器端發(fā)送的一系列速度值,利用applet繪制速度曲線,用戶(hù)可以更加直觀理解PID控制。
(1)客戶(hù)端控制
客戶(hù)端采用java的applet實(shí)現(xiàn)對(duì)遠(yuǎn)程機(jī)電設(shè)備的控制操作,界面如圖2所示,其功能是接受用戶(hù)輸入?yún)?shù),并用曲線和視頻流的方式將遠(yuǎn)端的運(yùn)行結(jié)果進(jìn)行可視化反饋。客戶(hù)端主要有兩個(gè)模塊:socket連接模塊和轉(zhuǎn)速曲線繪制模塊。
socket連接模塊主要實(shí)現(xiàn)連接服務(wù)器,發(fā)送和收發(fā)等行為。如果有服務(wù)器空閑,主控服務(wù)器便會(huì)返回0x22給客戶(hù)端,同時(shí)連接PID控制服務(wù)器。但是如果沒(méi)有空閑的服務(wù)器,便會(huì)發(fā)送0x33給客戶(hù)端,同時(shí)關(guān)閉socket連接。
連接上服務(wù)器之后,用戶(hù)可以從客戶(hù)端選擇控制算法(P,PI,PD或PID算法)并發(fā)送相關(guān)參數(shù)。當(dāng)電機(jī)運(yùn)行完畢之后,客戶(hù)端通過(guò)socket從服務(wù)器取得電機(jī)轉(zhuǎn)速的采樣數(shù)值組,繪制轉(zhuǎn)速PID曲線。
繪制PID曲線使用曲線線段化的方法,保證足夠的采樣點(diǎn),最后實(shí)現(xiàn)對(duì)PID曲線的繪制。為了對(duì)獲取的速度采樣值進(jìn)行描繪,封裝了drawCanvas類(lèi)。其中drawLine(x1,y1,x2,y2)用來(lái)繪制從(x1,y1)到(x2,y2)的直線。
從服務(wù)器段獲得的速度值存儲(chǔ)在v[m]數(shù)組中,利用這些數(shù)值繪制速度PID曲線繪:圖3給出了不同PID參數(shù)相應(yīng)下實(shí)際繪制的曲線。
用戶(hù)按下“視頻”按鈕后,實(shí)際機(jī)電設(shè)備所在現(xiàn)場(chǎng)的視頻就會(huì)在控制界面上顯示出來(lái),便于用戶(hù)觀察實(shí)驗(yàn)效果。處于等待狀態(tài)的用戶(hù),也可通過(guò)選擇視頻反饋來(lái)觀看其他用戶(hù)的實(shí)驗(yàn)。
(2)通信數(shù)據(jù)傳輸協(xié)議
通信數(shù)據(jù)幀格式如下:
AA AA PH PL IH IL DH DL VH VL 55 55 (共10個(gè)字節(jié))
其中各數(shù)據(jù)或參數(shù)意義如下:
AA AA:幀頭
PH/PL:比例參數(shù)的高位(整數(shù)部分)/ 低位(兩位小數(shù)部分),
IH/IL:積分參數(shù)的高位(整數(shù)部分)/ 低位(兩位小數(shù)部分),
DH/DL:微分參數(shù)的高位(整數(shù)部分)/ 低位(兩位小數(shù)部分),
VH/VL:速度設(shè)定值的高位(轉(zhuǎn)/分)/ 低位(轉(zhuǎn)/分),
55 55:幀尾
所有的數(shù)據(jù)均由上位機(jī)以16進(jìn)制發(fā)送,其中PID各參數(shù)的低位是將控制參數(shù)的兩位小數(shù)部分,比如要發(fā)送P值為1.5,則PH=01H=01D,PL=32H=50D。
(3)主控軟件
該程序的功能相當(dāng)于一個(gè)代理,連接applet和PID控制服務(wù)器,核心的是一個(gè)服務(wù)線程以及一個(gè)控制類(lèi)。
控制類(lèi)。這個(gè)類(lèi)的每一個(gè)實(shí)例代表著一個(gè)PID控制服務(wù)器,也就是說(shuō)它和PID控制服務(wù)器是一一對(duì)應(yīng)的。主要存放著三個(gè)信息:strIP(代表PID控制服務(wù)器的IP地址),_nPort(代表PID控制服務(wù)器中控制線程的服務(wù)端口),_strVideoStreamUrl(代表指向相對(duì)應(yīng)電機(jī)的媒體直播的鏈接)。還有一個(gè)運(yùn)行時(shí)使用的信息:_bInUse,用來(lái)指示該P(yáng)ID控制服務(wù)器是否正在使用。
競(jìng)爭(zhēng)處理。由于服務(wù)器數(shù)量有限,因此要考慮到數(shù)量不足的情況。程序使用了同步控制來(lái)解決這個(gè)問(wèn)題。
服務(wù)器線程。服務(wù)器線程的作用為轉(zhuǎn)發(fā)數(shù)據(jù),也就是代理的作用。為了實(shí)現(xiàn)較高的穩(wěn)定性,服務(wù)器中的通訊采用Request-Response方式,并采用了超時(shí)處理。
(4)PID控制服務(wù)器段控制軟件
采用VC編寫(xiě),通過(guò)主控軟件的中轉(zhuǎn)能夠與客戶(hù)端實(shí)現(xiàn)socket連接,并能夠管理從客戶(hù)端發(fā)出的請(qǐng)求連接,在連接握手協(xié)議和數(shù)據(jù)通信協(xié)議的支持下保證連接通信的可靠性。同時(shí)建立串口連接,實(shí)現(xiàn)與電機(jī)控制卡的通信,并在協(xié)議的支持下保證通信的可靠性。
在與客戶(hù)端連接和通信中使用CSocket類(lèi)來(lái)實(shí)現(xiàn)。當(dāng)客戶(hù)端有連接請(qǐng)求時(shí)建立連接,同時(shí)在主控服務(wù)器中注冊(cè)使用狀態(tài)。服務(wù)器端軟件通過(guò)socket從客戶(hù)端接受PID控制參數(shù)和速度值之后,通過(guò)串口轉(zhuǎn)發(fā)給電機(jī)控制卡,并向客戶(hù)端發(fā)送握手?jǐn)?shù)據(jù)。電機(jī)運(yùn)轉(zhuǎn)期間,主控軟件對(duì)電機(jī)進(jìn)行速度采樣,同時(shí)對(duì)電機(jī)控制卡發(fā)送握手確認(rèn)。運(yùn)行完畢之后向客戶(hù)端發(fā)送的一系列速度值。如此循環(huán)直到客戶(hù)端斷開(kāi)去服務(wù)器的連接,從而服務(wù)器端又重新進(jìn)入等待狀態(tài)。
(5)電機(jī)PID控制卡的伺服驅(qū)動(dòng)
控制卡啟動(dòng)后,等待相應(yīng)的PID控制服務(wù)器的RS232的數(shù)據(jù)發(fā)送,數(shù)據(jù)的接收是利用中斷的方式實(shí)現(xiàn)的,并且只有在接收到“AA AA”后才繼續(xù)接收后面的數(shù)據(jù)。接收結(jié)束后在主程序中判斷接收到的幀頭和幀尾,如果頭尾數(shù)據(jù)接收都正確,則可以認(rèn)為整個(gè)數(shù)據(jù)幀接收正確,然后將相應(yīng)的參數(shù)賦值,打開(kāi)電機(jī)伺服實(shí)時(shí)中斷。
在每個(gè)伺服周期中,將碼盤(pán)的增量(線數(shù))記錄下來(lái),且由于每個(gè)伺服周期的時(shí)間固定為1ms,所以可由下式計(jì)算出當(dāng)前的電機(jī)實(shí)際速度(轉(zhuǎn)/分):
實(shí)際速度=(碼盤(pán)增量/10000)*1000*60=6*碼盤(pán)增量
并將其記錄下來(lái),在一定數(shù)量的伺服周期后,關(guān)閉實(shí)時(shí)中斷,將采集的速度值以查詢(xún)的方式回發(fā)給上位機(jī)。然后下位機(jī)進(jìn)入等待,準(zhǔn)備接收下一個(gè)數(shù)據(jù)幀。
四 結(jié)束語(yǔ)
本文將網(wǎng)絡(luò)控制技術(shù)引入到實(shí)驗(yàn)教學(xué)中,使實(shí)驗(yàn)教學(xué)不受時(shí)間和場(chǎng)地的限制。設(shè)計(jì)的Web環(huán)境下機(jī)電系統(tǒng)遠(yuǎn)程實(shí)驗(yàn)系統(tǒng)采用了ASP加SQL Server的數(shù)據(jù)庫(kù)訪問(wèn)模式,并基于WEB瀏覽器,簡(jiǎn)單易行,方便直觀。
作為高等學(xué)校教學(xué)改革項(xiàng)目,該遠(yuǎn)程實(shí)驗(yàn)平臺(tái)已應(yīng)用到本科機(jī)電控制工程課程的實(shí)驗(yàn)教學(xué)中。在實(shí)際應(yīng)用中,具有系統(tǒng)具有良好的實(shí)時(shí)性、可靠性和可擴(kuò)展性,可根據(jù)需要增加新的實(shí)驗(yàn)設(shè)備。
該系統(tǒng)實(shí)現(xiàn)了實(shí)驗(yàn)設(shè)備以及實(shí)驗(yàn)數(shù)據(jù)的網(wǎng)上共享,大大提高了實(shí)驗(yàn)資源的利用率和實(shí)驗(yàn)教學(xué)服務(wù)能力,取得了很好的實(shí)驗(yàn)教學(xué)效果,受到廣大師生的好評(píng)。
本文提出的遠(yuǎn)程實(shí)驗(yàn)方法和技術(shù),也可推廣應(yīng)用到課堂教學(xué)的演示性實(shí)驗(yàn)中,并對(duì)其它學(xué)科的遠(yuǎn)程實(shí)驗(yàn)有一定的借鑒意義。
參考文獻(xiàn)
[1] 張栓記,何丕廉,胡敏.我國(guó)網(wǎng)絡(luò)遠(yuǎn)程教學(xué)技術(shù)平臺(tái)的研究現(xiàn)狀與未來(lái)趨勢(shì)[J].現(xiàn)代教育技術(shù), 2005,(1).
[2] 楊彥明. 應(yīng)用模擬仿真技術(shù)開(kāi)展虛擬實(shí)驗(yàn)教學(xué)[J]. 電化教育研究, 2002.(9).
[3] 飛思產(chǎn)品研發(fā)中心.ASPSQL Server網(wǎng)站設(shè)計(jì)與實(shí)現(xiàn)[M].北京:電子工業(yè)出版社,2001.
[4] Bruce Eckel.Thinking in Java[M].北京:機(jī)械工業(yè)出版社,
2005.
[5] 侯俊杰.深入淺出MFC(第二版)[M].湖北武漢:華中科技大學(xué)出版社,2001.