涂婉麗 ,徐軼群
(集美大學輪機工程學院,福建 廈門 361021)
?
基于Web的船舶動力裝置虛擬操作訓練系統(tǒng)
涂婉麗,徐軼群
(集美大學輪機工程學院,福建 廈門 361021)
[摘要]為了解決以往工業(yè)組態(tài)軟件開發(fā)的船舶動力裝置虛擬操作訓練系統(tǒng)的網(wǎng)絡功能局限性,文章對基于web的虛擬訓練操作系統(tǒng)進行了研究.提供了系統(tǒng)基于B/S模式的架構,并詳細闡述了系統(tǒng)開發(fā)過程中的關鍵問題和解決方案,如基于Web的系統(tǒng)操作界面及動態(tài)交互功能的實現(xiàn)、多人協(xié)同開發(fā)的解決方案等.并以.NET為開發(fā)平臺設計了基于Web的船舶動力裝置的虛擬操作訓練系統(tǒng),包括用戶管理模塊、船舶動力裝置訓練項目操作模塊和操作過程記錄與評估模塊.以該方案設計的系統(tǒng)已經(jīng)投入運行,應用結果表明該系統(tǒng)充分利用了Internet,解決了傳統(tǒng)船舶動力裝置虛擬操作訓練系統(tǒng)受時間和空間限制的問題,提高了遠程教學訓練的能力,具有良好的交互性、擴展性及應用價值.
[關鍵詞]Web;B/S模式;.NET;船舶動力裝置;虛擬操作
0引言
傳統(tǒng)模式下,船舶動力裝置的模擬操作訓練主要在實物設備上進行.隨著計算機、操作平臺、網(wǎng)絡、通信等技術的快速發(fā)展,對船員的操作訓練信息化的要求也越來越多,采用虛擬操作系統(tǒng)用于輔助于實際設備的模擬訓練,可以大大節(jié)省開發(fā)成本和維護成本,縮短訓練周期,具有重要意義.目前的船舶動力裝置虛擬訓練系統(tǒng)基本上都是由建立在客戶端/服務器(C/S)模式下的傳統(tǒng)組態(tài)軟件來實現(xiàn)的,仍以單機應用為主.隨著網(wǎng)絡應用的普及,船員虛擬訓練系統(tǒng)不再滿足于本地的訓練功能應用,越來越多系統(tǒng)要求具有Web功能,如通過Internet網(wǎng)絡實現(xiàn)遠程系統(tǒng)的操作訓練、故障診斷等等.部分組態(tài)軟件雖具有Web功能,但發(fā)布模式復雜,限制條件多,對Internet的利用十分有限,而且不支持遠程發(fā)布功能.當訓練系統(tǒng)的用戶量達到一定規(guī)模,操作地點分布到一定范圍后,組態(tài)軟件的Web功能已無法滿足訓練需求[1].
基于上述分析,本文采用瀏覽器/服務器(B/S)模式,提出了一種基于Web的船舶動力裝置虛擬操作訓練系統(tǒng)的架構方法,并設計實現(xiàn)了船舶動力裝置虛擬操作訓練系統(tǒng).當采用該系統(tǒng)對船員進行虛擬操作訓練時,能夠不受時間和空間的限制,將局域網(wǎng)內實現(xiàn)的功能延伸到Internet上去[2].
1B/S模式下的船舶動力裝置虛擬操作訓練系統(tǒng)的架構
B/S模式采用的是瀏覽器、Web服務器和數(shù)據(jù)庫服務器的體系結構,如圖1所示.應用程序全部放在Web服務器上,所有的客戶端只是瀏覽器,通過Web服務器實現(xiàn)對數(shù)據(jù)庫服務器的訪問,可以在任何地方進行操作而不用安裝專門的軟件.只需要管理服務器,客戶端零維護,無論用戶規(guī)模有多大,只需要把服務器連接入網(wǎng)即可,實現(xiàn)遠程維護、升級和共享,系統(tǒng)的擴展也非常容易.
B/S模式下的船舶動力裝置虛擬操作訓練系統(tǒng)是基于Web Service的應用程序,系統(tǒng)架構可分成應用表現(xiàn)層、業(yè)務邏輯層、數(shù)據(jù)服務層[3-4],如圖2所示.
應用表現(xiàn)層即用戶端通過Internet瀏覽器界面直接與Web服務器端進行動態(tài)交互,代替了專門的客戶端軟件.業(yè)務邏輯層體現(xiàn)在用戶端通過嵌在Web頁面的ActiveX控件對數(shù)據(jù)端口進行訪問,將數(shù)據(jù)寫入數(shù)據(jù)庫服務器保存,而Web服務器將數(shù)據(jù)庫服務器的實時數(shù)據(jù)動態(tài)發(fā)布到網(wǎng)上,客戶端則通過Internet瀏覽器進行遠程監(jiān)控.數(shù)據(jù)服務層指的是采用數(shù)據(jù)庫服務器進行數(shù)據(jù)處理,數(shù)據(jù)庫服務器不直接服務于每個客戶機,而與Web服務器溝通,系統(tǒng)的開放性得到很大提高,開發(fā)與維護更加方便.
2船舶動力裝置虛擬操作訓練系統(tǒng)的模塊功能與實現(xiàn)
本文設計的基于Web的船舶動力裝置虛擬操作訓練系統(tǒng)可以分為以下幾個功能模塊:用戶管理模塊、船舶動力裝置訓練項目操作模塊[5-6]、操作過程記錄與評估模塊,具體見圖3.
用戶管理模塊主要對被訓練學生和管理員的信息和權限進行設置.學生登錄系統(tǒng)后,進入船舶動力裝置訓練項目模塊,學生選取要操作的訓練項目,如:壓縮空氣系統(tǒng)、冷卻水系統(tǒng)、鍋爐系統(tǒng)等,每個訓練項目均對應一個操作頁面,如圖4是選擇鍋爐系統(tǒng)的交互界面.操作部分分成兩塊:左邊部分是鍋爐系統(tǒng)的管路原理圖,右邊部分是對鍋爐系統(tǒng)進行虛擬控制的電氣控制箱.學生每進行一步操作,均可以在界面右下方看到操作記錄,每個訓練項目操作完成之后提交,后臺的操作過程記錄與評估模塊對學生的操作進行記錄和評估.管理員登錄系統(tǒng)之后,可以進行考生信息管理、訓練項目管理、評估成績管理等操作.
3關鍵技術及實現(xiàn)
基于Web的船舶動力裝置虛擬操作訓練系統(tǒng)必須能夠在IE等瀏覽器中實現(xiàn)監(jiān)控系統(tǒng)操作界面的動態(tài)交互,因此要采用一種可以產(chǎn)生和執(zhí)行動態(tài)的、交互式、高效率的Web服務器應用程序的工具,如Dreamweaver可視化工具、.NET Framework(以下簡稱.NET平臺)框架平臺、Java Script的HTML頁面等均可以生成系統(tǒng)的動態(tài)交互操作界面,本文采用了微軟的.NET平臺,Windows 7中包含了.NET平臺的最新版本.
在船舶動力裝置虛擬操作訓練系統(tǒng)中,客戶端通過Internet瀏覽器對系統(tǒng)進行動態(tài)操作時,界面上對象的狀態(tài)變化要與實際的動力裝置系統(tǒng)一致.如上所述的鍋爐系統(tǒng)中,管路、閥門、電源開關、泵的啟停按鈕、儀表指示燈、液位計等均要能夠進行實時交互.這種動態(tài)交互邏輯功能的實現(xiàn)是設計虛擬訓練系統(tǒng)的難點,解決方案有采用圖片和動畫技術實現(xiàn),或者直接采用ActiveX控件技術實現(xiàn).關于ActiveX控件技術的使用方法,可以參考文獻[7].本系統(tǒng)管路的流動效果是以圖片和動畫技術來實現(xiàn)的,而其他開關量和模擬量的控制是采用ActiveX控件技術實現(xiàn)的.通過虛擬電氣控制箱,可以對壓縮系統(tǒng)中被控對象進行操作,系統(tǒng)交互畫面生動,對象狀態(tài)跟隨控制指令實時變化.
在實現(xiàn)系統(tǒng)對象的動態(tài)交互邏輯功能時,服務器端主要負責生成界面和邏輯功能的腳本,并發(fā)送給客戶端瀏覽器.客戶端瀏覽器負責解析這些腳本并在系統(tǒng)交互操作時實時刷新頁面.當需要和服務器端進行數(shù)據(jù)通信時,客戶端才發(fā)送所需的加密數(shù)據(jù),這樣就減輕了服務器端的負擔,提高了交互的速度.通過測試,即使是船舶動力裝置虛擬操作系統(tǒng)中管路最多、邏輯功能最復雜的模塊,在多人異地同時操作的情況下,系統(tǒng)交互頁面的實時刷新也不會出現(xiàn)卡的現(xiàn)象.
在系統(tǒng)的開發(fā)中,還有一個難題來自于開發(fā)人員本身.在動態(tài)網(wǎng)頁的設計中,操作對象的定位、頁面的美工、特別是邏輯交互功能的編輯等等方面,均需要由專業(yè)的軟件開發(fā)技術人員來完成.對于一般工程技術人員,雖然對自動化系統(tǒng)的控制邏輯較為熟悉,但由于不是計算機專業(yè)出身,在實現(xiàn)這些功能時會遇到困難.此外,船舶動力裝置系統(tǒng)是一個復雜的工程系統(tǒng),在開發(fā)時間有限的情況下,需要多位技術人員協(xié)同開發(fā)完成.為了提高開發(fā)效率,同時保證動態(tài)網(wǎng)頁的開發(fā)質量,在系統(tǒng)開發(fā)時采取了以下方案:首先由系統(tǒng)負責人給各技術人員分配任務模塊,并制定出統(tǒng)一的規(guī)則來實現(xiàn)對象的命名、對象的顯示方法、對象邏輯功能的定義等;然后各技術人員在.NET平臺上利用WinForm進行各自任務模塊交互界面的設計,并完成單機上業(yè)務邏輯的編輯與調試;最后通過調用統(tǒng)一的GetCode()轉換程序轉換到Web頁面上.其中的GetCode轉換程序由系統(tǒng)負責人單獨開發(fā).圖5顯示了所采用的協(xié)同開發(fā)平臺架構和工作流程圖.
以下是單機版調用GetCode()轉換程序的代碼:
private void FrmMain_Load(object sender,EventArgs e)
{
//以下調用轉換程序
GetCode gc=new GetCode();
//取得需轉換的*.cs源文件路徑
gc.path=m_path;
gc._Form=this;
gc.Explorer();
}
以下是GetCode()轉換程序的關鍵代碼:
#region轉換Frmmain.cs有關正則的一部分函數(shù)
///
///所有轉換
///
private void ReplaceAll()
{
string pathLocationExam=path+"LocaltionExam.txt"; //右側面板
string pathLocationOperate=path+"LocaltionOperate.txt"; //左側面板
string pathVariables=path+"Variable.js"; //定義變量
string pathStep=path+"Step.js";//定義操作步驟
string pathRefresh=path+"Refresh.js"; //各種刷新函數(shù)
//文件刪除
File.Delete(pathLocationExam);
File.Delete(pathLocationOperate);
File.Delete(pathVariables);
File.Delete(pathStep);
File.Delete(pathRefresh);
//追加文本
swExam=File.AppendText(pathLocationExam);
swOperate=File.AppendText(pathLocationOperate);
swVariable=File.AppendText(pathVariables);
swStep=File.AppendText(pathStep);
swRefresh=File.AppendText(pathRefresh);
swRefresh.WriteLine(" function SetBackgroundColor() {");
swStep.WriteLine("http://{0}//",_Form.Text);//輸出項目中各系統(tǒng)名稱
swStep.WriteLine("http://({0})",(_Form.AccessibleName==null || _Form.AccessibleName.Trim()=="")?"0":_Form.AccessibleName);//輸出子步驟可選必選數(shù)目
swStep.WriteLine("var WebPID='{0}';",(newRegular()).GetOneValueRegex("(?<=\\winform).*?(?=\\bin\\)",path)); //輸出WebPID
swStep.WriteLine("var steps=new Array();");//輸出steps變量
……
}
本文設計的船舶動力裝置虛擬操作系統(tǒng)中數(shù)據(jù)庫服務器和Web服務器共享為一臺,系統(tǒng)數(shù)據(jù)庫選用Microsoft SQL Server 2005~2008.SQL Server是一個關系型數(shù)據(jù)庫管理系統(tǒng),可跨越多種平臺使用,其內部建立了一種可以與Web服務器相連接的機制,具有使用方便、可伸縮性好、相關軟件集成程度高等優(yōu)點.
4結論
目前計算機、操作平臺、網(wǎng)絡、通信都進入一個快速發(fā)展的新時期,船舶動力裝置虛擬操作訓練系統(tǒng)也必然從單機應用向智能化,網(wǎng)絡化方向發(fā)展.以往的虛擬操作訓練系統(tǒng)中存在的問題,如用戶規(guī)模的增大、地域的分散、系統(tǒng)邏輯的復雜等問題,在本文設計實現(xiàn)的基于Web的船舶動力裝置虛擬操作訓練系統(tǒng)中,均得到了解決.此外,該方案實現(xiàn)了快速組態(tài)的具有B/S架構的功能.該虛擬訓練系統(tǒng)解決了時間和空間限制的問題,以此方案設計的船舶動力裝置的虛擬操作系統(tǒng)目前已經(jīng)投入運行,實踐表明,受訓人員能夠較全面掌握動力裝置系統(tǒng)的結構組成和工作原理,系統(tǒng)提高了遠程教學訓練的能力,具有良好的交互性、維護性和擴展性.當然,針對高安全性要求的實際船舶動力裝置系統(tǒng),還有待進一步提高虛擬操作訓練系統(tǒng)的穩(wěn)定性及可靠性.
[參考文獻]
[1]歐金成,歐世樂,林德杰,等.組態(tài)軟件的現(xiàn)狀與發(fā)展[J].工業(yè)控制計算機,2002,4:1-5.
[2]李亨,王麗萍,郭克宇,等.基于Web技術的工業(yè)信息遠程實時監(jiān)測系統(tǒng)[J].計算機應用研究,2000,7:63-65.
[3]朱韶平.基于Web ActiveX數(shù)據(jù)控件的網(wǎng)絡虛擬實驗室構建[J].計算技術與自動化,2010,29(4):104-106.
[4]賀超波,陳啟買.基于Web的實時數(shù)據(jù)監(jiān)測系統(tǒng)的研究和實踐[J].計算機技術與發(fā)展,2011,21(3):200-204.
[5]徐筱欣.船舶動力裝置[M].上海:上海交通大學出版社,2007.
[6]姚壽廣,肖民.船舶動力裝置[M].北京:國防工業(yè)出版社,2006.
[7]李躍峰,王文海.基于ActiveX技術的組態(tài)軟件Web服務功能的設計和實現(xiàn)[J].工業(yè)控制計算機,2007,7:47-49.
(責任編輯陳敏英文審校鄭青榕)
Design and Implementation of a Web Based Virtual Operating andTraining System of a Marine Power PlantTU Wan-li,XU Yi-qun
(Marine Engineering Institute,Jimei University,Xiamen 361021,China)
Abstract:In order to solve the problems of the Web function limitation of the virtual operating training system for a marine power plant which usually was realized by industrial configuration software,a solution of Web-based training system was investigated.The system architecture based on Browser/Server mode was extablished and the key problems with their solutions existing in development process were detailed as follows: the implementation of system interface as well as its dynamic interactivity and the solution for multiplayer collaborative development and so on.With.NET development platform,the paper designed a Webbased virtual operating and training system for a marine power plant with function modules including user management modules,operation training modules of the marine power plant and operation record and evaluation module.The designed system was put into operation and the results showed that the system took full advantage of Internet and improved its performance on remote teaching.It had good interactivity,maintainability and scalability and broke the time and space limit of traditional virtual operation and training system.
Key words:Web;B/S model;.NET;Automatic;virtual operation
[中圖分類號]TP 391
[文獻標志碼]A
[文章編號]1007-7405(2015)02-0128-06
[作者簡介]涂婉麗(1982—),女,講師,碩士,從事船舶自動化技術、機電檢測技術、信息集成等研究.
[基金項目]福建省自然科學基金資助項目(2012J01229)
[收稿日期]2014-06