王紅梅,鄭 萍,夏 龍,張晉瑜,唐俊濤
(西華大學電氣信息學院,四川成都 610039)
基于Android的移動實驗系統設計
王紅梅,鄭 萍,夏 龍,張晉瑜,唐俊濤
(西華大學電氣信息學院,四川成都 610039)
針對目前實驗教學中對便捷性的需求,提出了一種基于Android的移動實驗系統的設計方案,進行了移動實驗系統的總體構架設計,并對該系統的客戶端、服務器和下位實驗系統的具體的開發與實現進行了較為詳細的討論,給出了相關的軟、硬件設計過程。實踐表明該移動實驗系統運行穩定,滿足實驗者對實驗教學便捷性的需要。
移動實驗;Android開發;服務器;移動客戶端
隨著移動技術和網絡技術的發展,人們對實驗教學的便捷性提出了新的需求。現階段隨著4A(anyone,anytime,anywhere,anydevice)學習理念的提出,以及智能手機在高校學生中的普及,提出了一種基于Android的移動實驗教學系統的設計方案[1]。該移動實驗系統能進行PLC實驗、嵌入式實驗、單片機實驗等多種實驗,是一種綜合性的移動實驗平臺[2]。本文基于PLC、變頻器的電機閉環無級調速實驗為對象,具體介紹該系統的設計與實現。
基于Android的移動實驗系統整體框圖如圖1所示,系統由下位實驗系統、服務器和客戶端3部分組成。下位實驗系統由多個實驗平臺組成,如PLC實驗平臺、嵌入式實驗平臺等,每個實驗平臺都接入以太網。服務器采用性能較好的PC機,作為客戶端和下位實驗系統之間的橋梁,服務器接受客戶端對下位實驗系統的控制命令并將命令傳輸到下位實驗系統進行控制,下位實驗系統的運行參數經服務器發送至客戶端,服務器還提供給客戶端實驗相關文檔的下載,服務器端使用Mysql數據庫對用戶信息和下位實驗系統進行管理[3-4]。客戶端為Android智能手機,客戶端通過WIFI連接到以太網,用戶在客戶端進行相應設置便可實現對下位實驗系統的控制及實驗運行效果的監控。系統總體上采用C/S與B/S的混合架構來實現。

圖1 系統整體框圖
下位實驗系統由多個實驗平臺組成,下面以基于PLC、變頻器的電機閉環無級調速實驗為對象具體介紹該系統的設計與實現。
2.1 基于PLC和變頻器的電機閉環無級調速實驗系統設計
基于PLC、變頻器的電機閉環無級調速電路如圖2所示。實驗中,通過旋轉編碼器采集電機的轉速至PLC,PLC根據設定值和所測的轉速進行相應的PID調節,通過控制變頻器實現對三相異步電機的速度調節。系統中PLC選擇三菱的FX2N,變頻器用S500,PLC與變頻器之間用RS485進行通信[5]。

圖2 電機閉環無級速調速實驗連接圖
在該移動實驗系統中,PLC的基本程序是預先下載好的,可通過移動實驗平臺實現對三相異步電機的啟停、正反轉控制,可在移動客戶端進行速度設定、PID等相關參數設定,并通過現場的攝像頭傳回的圖像觀看實驗效果。
2.2 上位監控設計
上位監控選擇軟件MCGS(monitor and control generated system)作為監控平臺[6],進行畫面設計、變量設置、通道連接,其上位監控畫面如圖3所示。
實驗中MCGS可以對電機轉速、PID相關參數進行設定,MCGS監控的變量有電機的頻率,正反轉信號和停止信號等,變量對應關系見表1。

圖3 電機閉環調速實驗系統上位監控畫面

表1 變量關系對應表
2.3 PLC實驗系統與服務器之間的通信設計
下位實驗系統與服務器端的通信連接通過上位組態軟件實現,其過程是采用DDE(dynamic data exchange)協議實現MCGS與VB(visual basic)的數據交換,然后再用VB的Winsock控件實現與服務器端的socket連接。
DDE是一種通過共享內存方式進行數據交換的技術,應用程序間無需接口程序即可實現“軟連接”。應用程序間通過DDE方式交換數據時是Client和Server的關系,將2個通信應用程序的服務名、主題名和項目名配置一致即可進行數據交換。MCGS提供對DDE功能的支持,通過“工具”的“DDE連接管理”選項打開DDE功能界面,配置變量的DDE狀態;VB中采用對DDE支持的控件文本框來設計,配置相應的文本框關聯MCGS中對應的變量,實現MCGS與VB的連接[7]。MCGS與VB程序的變量對應關系表見表1。
在與MCGS交互的同時,VB通過Winsock控件實現與服務器端的socket連接,設置好IP地址和端口號連接后進行數據交互,VB端接收到服務器發送的命令并將命令解析后放入VB程序中與MCGS對應變量關聯的文本框,從而實現與下位實驗系統的通信。
服務器作為客戶端與下位實驗系統連接的橋梁,提供對Android客戶端實驗操作、實時視頻監控、實驗文檔下載3個功能的支持與實現,并對客戶端用戶和下位實驗系統進行管理。服務器端程序采用Java進行設計,程序主流程如圖4所示

圖4 服務器端程序流程框圖
服務器的界面設計要方便進行人機交互,其界面包括開始通信按鈕和結束通信按鈕,分別實現通信連接的建立和斷開。為保證實驗操作功能中命令碼的可靠傳輸和視頻監控功能中視頻的實時傳輸,本文采用了2種協議的Socket進行通信,即建立了基于TCP協議的Socket通信服務器端Serversokcet和基于UDP協議的Socket通信服務器端DatagramSocket,并分別創建2個子線程用以偵聽客戶端的連接,在基于TCP協議的子線程中創建孫子線程進行數據的處理[8]。
(1)對Android客戶端實驗操作的實現。實驗操作是Android用戶通過服務器對下位實驗系統中電機進行速度設定、正反轉操作等,該功能通過socket通信傳輸命令碼來實現,命令碼由實驗號、實驗命令和實驗數據組成。服務器接收到Android端發送的命令碼后發送給對應的下位實驗平臺,實驗平臺接收到命令碼后解析命令碼并執行相應的操作。
在基于PLC控制的電機閉環無級調速實驗中,實驗操作通信過程為:服務器接收到Android端發送的命令碼后進行轉發,VB端接收到命令后按組合格式解析命令碼,將正反轉命令、轉速、PID參數寫入對應文本框,文本框通過DDE關聯到MCGS中對應的變量從而實現對PLC閉環系統的控制;同時,電機的實際轉速寫入MCGS中并關聯到VB文本框,VB端定時發送速度到服務器,Android端定時向服務器請求電機轉速信息并進行更新顯示,從而實現對電機實際轉速的監控。
(2)實時視頻監控的實現。實時視頻監控是為了讓移動客戶端能夠實際了解實驗現場的控制運行效果而設計的。服務器端用JMF(java media framework)插件來采集攝像頭的數據,然后通過基于UDP協議的Socket通信將圖片數據傳輸給Android客戶端進行顯示。JMF是Sun公司提供的一個進行多媒體開發的Java類包,用它進行視頻開發較為簡單、方便,將JMF源碼包安裝到JDK路徑下,并將jmf.jar包導入工程后即可開始JMF開發[9]。
系統中使用JMF捕獲圖片的具體過程:首先用CaptureDviceInfo類檢查是否有視頻或者語音設備,并獲取設備列表;然后定位器MediaLocator根據設備列表來定位信息來源,并實例化播放器;最后調用播放器player的start()方法開始截取多媒體數據。當有用戶請求視頻數據時,服務器讀取用戶請求并識別請求客戶端的IP地址和端口,服務器定時用FrameGrabbingControl類的grabFrame方法抓取圖片并壓縮為jpeg格式后向該用戶發送圖片,當客戶端發送停止請求視頻命令后,關閉與該客戶端的通信連接,停止發送圖片[10]。
(3)實驗文檔下載的實現。系統中為實現多用戶對實驗文檔的同時下載,以及便于對文檔進行管理與維護,實驗文檔下載功能采用B/S架構來實現,服務器端搭建web服務器并建立配置與Android客戶端對應的web工程即可實現該功能。首先,在服務器端安裝并運行web服務器tomcat,下載解壓eclipse對tomcat的支持插件tomcatPlugin到eclipse的安裝路徑plugins下;然后,在eclipse中創建動態web工程,配置虛擬目錄和本地路徑,將實驗文檔放置到本地路徑下;最后,將該工程部署到tomcat,開放程序的網絡權限即可開放給客戶端用戶進行下載。
Android客戶端主要提供實驗者使用,能實現對下位實驗系統的實驗操作,及實時視頻監控和實驗文檔的下載,Android客戶端應用程序主要包括界面設計和服務功能設計。
4.1 Android手機端應用程序的界面設計
Android界面在工程的res/layout目錄中建立XML文件進行元素布局設計,界面元素采用相對布局方式以適應在不同的分辨率手機上的顯示。該系統主要設計了登錄界面、實驗目錄界面和基于PLC控制的電機閉環調速實驗的實驗界面。Android端用戶在登錄界面輸入用戶名和密碼登錄后進入移動實驗目錄界面,在實驗目錄界面中用戶可選擇進入不同的實驗系統,在用戶選擇進入“基于PLC控制的電機閉環無級調速實驗”界面后進入圖5的實驗界面。

圖5 Android客戶端程序運行界面之一
4.2 Android手機端應用程序服務功能的實現
Android端應用程序采用Android四大組件中的Activity來設計,在Activity中用setContentView設置顯示界面,然后在界面元素響應事件中進行服務功能的設計[11]。在移動實驗系統中,Android用戶可對下位實驗系統進行實驗操作,對實驗運行情況進行實時視頻監控并進行相關實驗文檔的下載。Android端程序主流程框圖見圖6。
實驗操作可通過移動客戶端界面元素的事件驅動機制來完成這些功能的實現,在圖5所示的移動客戶端界面上,當用戶設置了電機的轉速、PID參數并點擊正轉或者反轉按鈕后,在點擊事件響應程序里獲取用戶設置封裝成命令碼,并將命令碼傳輸到服務器實現對下位系統的操作。
實時視頻則與實驗操作稍有不同,用戶點擊了視頻監控按鈕后開啟視頻監控功能,具體實現過程為客戶端發起視頻請求后向服務器發起建立連接的信號,服務器接收識別客戶端IP和端口后定時向該客戶端傳送圖片數據,客戶端接收圖片、解碼后用ImageView控件進行顯示。
用戶點擊“下載該實驗文檔”按鈕后Android客戶端創建HttpURLConnection對象,建立與服務器端URL節點的HTTP通道,Android客戶端通過多線程實現實驗文檔的快速下載。文件多線程下載的具體實現過程為:首先獲取要下載文件的長度,并以此設置本地文件對象的長度;其次,根據文件長度和線程個數計算每條線程下載的數據長度和下載位置并進行下載;最后,將每個線程下載的文件寫入本地文件對應位置,即得到下載文件[12]。

圖6 Android客戶端程序主流程框圖
該移動實驗系統中下位實驗系統可靈活擴展,使其不僅能進行PLC實驗,也能進行嵌入式、單片機實驗等多種實驗,是一種高技術的綜合化的移動實驗平臺。該系統提倡一種新的學習理念,為學生提供了一個方便快捷的學習途徑,讓學生在任何時間、地點都可以進行相關的實驗學習,為實驗教學提供了一種新的平臺。
(References)
[1]李琴,陳立定,任志剛.基于Android智能手機遠程視頻監控系統的設計[J].電視技術,2012,36(7):134-136.
[2]王夢如,王小根,陳心儀.移動學習系統設計框架研究[J].中國遠程教育,2013(8):79-82.
[3]蘇玉良,郭福文.實驗室信息管理系統的開發與應用[J].自動化與儀表,2012(11):44-47.
[4]龔成瑩,邢敬宏,胡銀保.基于JSON的Android移動終端與PHP及MySQL數據通信[J].工業儀表與自動化裝置,2013(1):63-69.
[5]楊鴿,鄭萍,葉建平,等.基于PLC和單片機的多模式綜合實驗系統設計[J].實驗技術與管理,2013,30(10):83-86.
[6]MCGS組態軟件用戶手冊[Z].昆侖通態公司,2003.
[7]吳戈成,嚴碩林.DDE技術在PLC自動化系統中的應用[J].自動化與儀器儀表,2011(1):76-79,83.
[8]宋素榮.基于TCP的Java Socket通信技術[J].科技創新導報,2012(13):54-55.
[9]安學立.基于JMF軟件的音視頻輔導平臺的開發[J].實驗室研究與探索,2012,31(3):83-85,89.
[10]李昂,宋海聲,蘇小蕓.基于Android的視頻監控系統設計與實現[J].電子技術應用,2012,38(7):138-139,143.
[11]趙啟朋.Android典型技術模塊開發詳解[M].北京:中國鐵道出版社,2012.
[12]劉引濤.基于Java的多線程下載工具研究與實現[J].現代電子技術,2012,35(8):30-32.
Design of mobile experimental system based on Android
Wang Hongmei,Zheng Ping,Xia Long,Zhang Jinyu,Tang Juntao
(School of Electrical and Information Engineering,Xihua University,Chengdu 610039,China)
For the demand of convenience in experimental teaching process,this paper proposes a design scheme of the mobile experiment system based on Android.The architecture of mobile experimental system is designed,and the development and implementation of the client,the server and the experimental system of the specific system are discussed in detail,and the relevant hardware and software design process is given as well.The practice shows that the mobile experiment system runs stably,and meets the design requirement.
mobile experiment;Android development;server;mobile client
TP391.7
A
1002-4956(2015)3-0118-05
2014-07-31 修改日期:2014-08-31
四川省精品課程建設項目“可編程控制器原理及應用”(XHJP060102);西華大學研究生創新基金項目(ycjj2013104)
王紅梅(1988—),女,四川綿陽,碩士研究生,主要研究方向為嵌入式技術與應用
E-mail:wanghongmei234@163.com
鄭萍(1957—),女,四川自貢,教授,主要研究方向為網絡控制技術與儀表技術.
E-mail:zp5757@126.com