【摘要】針對網絡教學中缺乏實驗環節的問題,本文采用ASP、 SQL Server和Java集成架構實現了web環境下機電系統的遠程實驗。利用該平臺用戶可以通過網絡設計控制算法、調整遠端機電系統的控制參數,實驗運行結果和現場圖像也可反饋給用戶端。應用效果驗證了該網絡遠程實驗教學系統的有效性和可行性。
【關鍵詞】遠程交互;機電系統;實驗教學
【中圖分類號】G40-057 【文獻標識碼】B 【論文編號】1009—8097 (2008) 12—0100—04
一 引言
網絡技術已經應用到了教育中,它和教育的結合形成了新的教育方式,即網絡教育(E-learning)。網絡教育突破傳統學校教學方式的時空束縛,向人們展示了一個嶄新的、廣闊的學習世界,具有長遠的發展潛力。
目前的網絡教育主要著重于教學內容的呈現與講解,缺乏研究性學習的環節,還沒有涉及互動式的網絡實驗教學[1]。實際上,實驗教學是課堂教學的重要補充,通過實驗,有助于學生增加感性認識,加深對所學知識的理解和掌握,提高動手能力和激發學習興趣。
另一方面,隨著招生規模的擴大,傳統的實驗課程建設已不能很好地滿足學生的需求。由于實驗教學時可供每個學生使用的設備資源十分有限,各高校的實驗課教學大都存在著實驗形式、內容、要求與實驗設備、器材、場地等相對滯后的矛盾。實驗保障條件的制約在一定程度上影響了實驗教學的開展和學生實踐創新能力的培養;二是已有的這些實驗課程主要面向公共基礎必修課或專業必修課,對于一些其它課程來說,目前還缺乏能與課堂教學相配套的實驗教學環節,這無疑也將影響這些課程的教學效果。虛擬實驗[2] 可以部分彌補傳統實驗的不足,但其主要是用仿真的方式模擬傳統的實驗儀器和電子類實驗內容,如電工電子虛擬實驗室、虛擬儀器的開發研究等,不適用于復雜機電控制系統的實驗教學。
針對上述問題,我們研究開發了WEB環境下機電控制實驗教學系統。該系統充分利用了網絡的資源共享性、地域的分散性和時間的隨意性的特點,為學生提供便利的實驗條件。對于機電控制類課程,在課堂講授完基本控制理論和控制算法后,學生利用基于WEB瀏覽器的實驗教學系統可在本地計算機上進行控制算法或PID控制參數的設計,完成后通過互聯網將這些設計參數或控制算法傳送給實際的機電控制系統,這些實際機電控制系統的運動過程和結果又以視頻流圖像和圖表的方式通過網絡實時反饋給學生,學生根據反饋結果可以進行進一步的修改和設計,其效果猶如現場實驗一樣。當某一時間段的允許實驗人數超過系統限制后,其他等待的學生可通過視頻多點播放的形式對正在進行的實驗進行觀察,也可點播系統中其它的與課程內容有關的視頻流文件。通過基于WEB的機電控制網絡實驗,學生加深了對課堂所學控制理論與方法的理解,同時又不受時間和場地的限制,從而使有限的設備資源得到了高效的利用,同時也為網絡教育提供了新的技術支持。
二 系統結構和主要解決方案
基于WEB的機電控制遠程實驗系統結構圖如圖1所示。系統主要由客戶端和服務器端組成。客戶端不需要裝載特定程序,只要能接入互聯網絡,就可通過WEB瀏覽器訪問該遠程實驗系統,并進行相關操作。大大降低了對客戶端用戶的要求。
服務器端從邏輯上包括:Web服務器、媒體服務器、數據庫服務器和若干控制服務器。Web服務器、媒體服務器、數據庫服務器由主控服務器擔當。其中Web服務器負責響應客戶端的請求、建立與客戶端的連接;媒體服務器將現場實際視頻圖像返回給客戶端的瀏覽器界面;數據服務器主要存儲相關信息和實驗數據,實現信息查詢和處理功能。
PID控制服務器和主控服務器放在同一局域網中,PID控制服務器通過串口連接電機PID控制卡來控制電機或其他機電設備。在這種結構下,可以隨意方便地增加PID控制服務器數量而不影響系統的其它結構。

1 系統架構
整個WEB系統是采用ASP 和 SQL Server架構構建[3]。所有頁面均采用ASP編寫,ASP即Active Server Pages,是一套微軟開發的服務器端腳本環境,通過ASP我們可以建立動態,交互且高效的Web服務器應用程序。數據庫采用SQL Server,具有較好的穩定性和并行性。
2 視頻直播架構
視頻的直播是采用Helix Server系統架構實現的,通過配置Helix Server之后(配置播放端口,架設實時廣播,設置Helix Producer Plus軟件,設置視頻傳輸速率),客戶端通過網絡可以實現實時監控。Helix Server系統的圖像壓縮比很高,圖像效果好,延時也在10秒之內。
3 交互性客戶端架構
交互式客戶端用于直流無刷電機PID調速控制實驗。采用Java applet實現,可以通過socket完成和服務器之間的通信。Java的Applet具有真正的平臺無關性,安裝會在用戶載入含有Applet的網頁時自動發生,而且具有很高的安全性[4]。服務器端的控制軟件需要較高的穩定性和容錯性,采用C++編程語言實現[5]。
三 關鍵技術實現
1 數據庫交互技術
數據庫主要用于儲存用戶資料、學生預備作業信息以及教師批改信息。ASP通過ODBC連接方式,配置成功ODBC數據源之后,可以通過下面的語句實現頁面與數據庫之間的交互。
ConnectionString=\"DSN=webrobotDB;UID=sa;PWD=YourPwd;Database=webrobotDB\"。數據庫主要建有三個表:(1) 用戶資料主要保存學生的各項資料以及密碼,用于管理和登陸。(2) 學生預備作業表主要保存學生需要提交的習題。(3) 教師批改信息表保存教師對學生作業的批語。
2 直流無刷電機PID遠程交互控制實現
PID遠程交互控制實驗主要是為了讓學生能夠更好了解電機的PID調速控制。用戶取得權限登陸互聯網絡之后可以連接上主控服務器,該服務器連接了PID控制服務器以及其他相關實驗設備,PID控制服務器和主控服務器是出于同一個局域網,每個服務器都有自己的局域網IP。在授權用戶登錄網絡后,主控服務器可以智能地為用戶選擇一臺可供操作的空閑服務器,同時若是沒有空閑的服務器,系統會提示繁忙。如果用戶取得某一服務器的使用權之后,完成相應的操作實驗之后便會和服務器斷開,服務器便重新進入等待狀態。
客戶端通過applet建立和PID控制服務器的socket連接,根據相應的協議傳送PID參數給PID控制服務器。PID控制服務器端獲取客戶端的數據之后,轉換為電機控制指令通過串口發送給電機控制卡。
電機控制卡核心CPU是TMS320F240型的DSP芯片,采用PID算法,利用PWM原理對電機進行速度伺服控制。PID控制參數和速度給定取決于串口接收到的設定值,伺服周期1ms,由實時中斷實現定時。TMSF240的通用定時器分派如下:T1用于產生PWM信號的全比較單元,T2用于碼盤計數。運行期間,主控軟件對電機進行速度采樣,同時對電機控制卡發送握手確認。運行完畢之后客戶端可以接受從服務器端發送的一系列速度值,利用applet繪制速度曲線,用戶可以更加直觀理解PID控制。
(1)客戶端控制
客戶端采用java的applet實現對遠程機電設備的控制操作,界面如圖2所示,其功能是接受用戶輸入參數,并用曲線和視頻流的方式將遠端的運行結果進行可視化反饋。客戶端主要有兩個模塊:socket連接模塊和轉速曲線繪制模塊。

socket連接模塊主要實現連接服務器,發送和收發等行為。如果有服務器空閑,主控服務器便會返回0x22給客戶端,同時連接PID控制服務器。但是如果沒有空閑的服務器,便會發送0x33給客戶端,同時關閉socket連接。
連接上服務器之后,用戶可以從客戶端選擇控制算法(P,PI,PD或PID算法)并發送相關參數。當電機運行完畢之后,客戶端通過socket從服務器取得電機轉速的采樣數值組,繪制轉速PID曲線。
繪制PID曲線使用曲線線段化的方法,保證足夠的采樣點,最后實現對PID曲線的繪制。為了對獲取的速度采樣值進行描繪,封裝了drawCanvas類。其中drawLine(x1,y1,x2,y2)用來繪制從(x1,y1)到(x2,y2)的直線。
從服務器段獲得的速度值存儲在v[m]數組中,利用這些數值繪制速度PID曲線繪:圖3給出了不同PID參數相應下實際繪制的曲線。
用戶按下“視頻”按鈕后,實際機電設備所在現場的視頻就會在控制界面上顯示出來,便于用戶觀察實驗效果。處于等待狀態的用戶,也可通過選擇視頻反饋來觀看其他用戶的實驗。

(2)通信數據傳輸協議
通信數據幀格式如下:
AA AA PH PL IH IL DH DL VH VL 55 55 (共10個字節)
其中各數據或參數意義如下:
AA AA:幀頭
PH/PL:比例參數的高位(整數部分)/ 低位(兩位小數部分),
IH/IL:積分參數的高位(整數部分)/ 低位(兩位小數部分),
DH/DL:微分參數的高位(整數部分)/ 低位(兩位小數部分),
VH/VL:速度設定值的高位(轉/分)/ 低位(轉/分),
55 55:幀尾
所有的數據均由上位機以16進制發送,其中PID各參數的低位是將控制參數的兩位小數部分,比如要發送P值為1.5,則PH=01H=01D,PL=32H=50D。
(3)主控軟件
該程序的功能相當于一個代理,連接applet和PID控制服務器,核心的是一個服務線程以及一個控制類。
控制類。這個類的每一個實例代表著一個PID控制服務器,也就是說它和PID控制服務器是一一對應的。主要存放著三個信息:strIP(代表PID控制服務器的IP地址),_nPort(代表PID控制服務器中控制線程的服務端口),_strVideoStreamUrl(代表指向相對應電機的媒體直播的鏈接)。還有一個運行時使用的信息:_bInUse,用來指示該PID控制服務器是否正在使用。
競爭處理。由于服務器數量有限,因此要考慮到數量不足的情況。程序使用了同步控制來解決這個問題。
服務器線程。服務器線程的作用為轉發數據,也就是代理的作用。為了實現較高的穩定性,服務器中的通訊采用Request-Response方式,并采用了超時處理。
(4)PID控制服務器段控制軟件
采用VC編寫,通過主控軟件的中轉能夠與客戶端實現socket連接,并能夠管理從客戶端發出的請求連接,在連接握手協議和數據通信協議的支持下保證連接通信的可靠性。同時建立串口連接,實現與電機控制卡的通信,并在協議的支持下保證通信的可靠性。
在與客戶端連接和通信中使用CSocket類來實現。當客戶端有連接請求時建立連接,同時在主控服務器中注冊使用狀態。服務器端軟件通過socket從客戶端接受PID控制參數和速度值之后,通過串口轉發給電機控制卡,并向客戶端發送握手數據。電機運轉期間,主控軟件對電機進行速度采樣,同時對電機控制卡發送握手確認。運行完畢之后向客戶端發送的一系列速度值。如此循環直到客戶端斷開去服務器的連接,從而服務器端又重新進入等待狀態。
(5)電機PID控制卡的伺服驅動
控制卡啟動后,等待相應的PID控制服務器的RS232的數據發送,數據的接收是利用中斷的方式實現的,并且只有在接收到“AA AA”后才繼續接收后面的數據。接收結束后在主程序中判斷接收到的幀頭和幀尾,如果頭尾數據接收都正確,則可以認為整個數據幀接收正確,然后將相應的參數賦值,打開電機伺服實時中斷。
在每個伺服周期中,將碼盤的增量(線數)記錄下來,且由于每個伺服周期的時間固定為1ms,所以可由下式計算出當前的電機實際速度(轉/分):
實際速度=(碼盤增量/10000)*1000*60=6*碼盤增量
并將其記錄下來,在一定數量的伺服周期后,關閉實時中斷,將采集的速度值以查詢的方式回發給上位機。然后下位機進入等待,準備接收下一個數據幀。
四 結束語
本文將網絡控制技術引入到實驗教學中,使實驗教學不受時間和場地的限制。設計的Web環境下機電系統遠程實驗系統采用了ASP加SQL Server的數據庫訪問模式,并基于WEB瀏覽器,簡單易行,方便直觀。
作為高等學校教學改革項目,該遠程實驗平臺已應用到本科機電控制工程課程的實驗教學中。在實際應用中,具有系統具有良好的實時性、可靠性和可擴展性,可根據需要增加新的實驗設備。
該系統實現了實驗設備以及實驗數據的網上共享,大大提高了實驗資源的利用率和實驗教學服務能力,取得了很好的實驗教學效果,受到廣大師生的好評。
本文提出的遠程實驗方法和技術,也可推廣應用到課堂教學的演示性實驗中,并對其它學科的遠程實驗有一定的借鑒意義。
參考文獻
[1] 張栓記,何丕廉,胡敏.我國網絡遠程教學技術平臺的研究現狀與未來趨勢[J].現代教育技術, 2005,(1).
[2] 楊彥明. 應用模擬仿真技術開展虛擬實驗教學[J]. 電化教育研究, 2002.(9).
[3] 飛思產品研發中心.ASPSQL Server網站設計與實現[M].北京:電子工業出版社,2001.
[4] Bruce Eckel.Thinking in Java[M].北京:機械工業出版社,
2005.
[5] 侯俊杰.深入淺出MFC(第二版)[M].湖北武漢:華中科技大學出版社,2001.