王斌,賀興,趙海
(1.中國人民解放軍91413部隊,秦皇島 066001;2.東北大學秦皇島分校計算機與通信工程學院,秦皇島 066004;3.中國人民解放軍65631部隊60分隊,錦州 121300;4.中國人民解放軍65037部隊,葫蘆島 125001; 5.東北大學信息科學與工程學院,沈陽 110819)
基于.NET和AJAX的凈水處理監控系統開發
王斌1,2,賀興3,趙海4,5
(1.中國人民解放軍91413部隊,秦皇島 066001;2.東北大學秦皇島分校計算機與通信工程學院,秦皇島 066004;3.中國人民解放軍65631部隊60分隊,錦州 121300;4.中國人民解放軍65037部隊,葫蘆島 125001; 5.東北大學信息科學與工程學院,沈陽 110819)
介紹一套基于B/S架構的凈水處理監控系統的開發過程。該系統采用Microsoft.NET Framework 4.0框架,使用主流的C#語言進行編碼,應用ASP.NETAJAX架構,使得頁面可以無刷新定時更新數據,實現對凈水監控系統狀態的實時顯示功能,用戶體驗良好。通過ADO.NET技術訪問數據庫,實現對凈水監控系統的實時控制以及動態生成數據報表功能。
ASP.NET;AJAX;C#;凈水處理監控系統
近年來,已出現了多種自動化凈水處理監控系統,但大多數是基于C/S架構開發。這種系統的缺點是用戶界面不夠友好、客戶端需安裝配置、數據冗余度大、升級維護困難。本文介紹的是基于B/S架構的同類系統開發。B/S架構具有分布性特點,可以隨時隨地進行查詢、瀏覽等業務處理。維護簡單方便,只需要改變網頁,即可實現所有用戶的同步更新。且開發簡單,共享性強。
1.1 功能需求
(1)用戶管理:用戶登錄和注銷、已登錄用戶修改登錄密碼;
(2)凈水設備狀態實時顯示:可以實時查看到每套凈水設備的狀態;
(3)進入設備間查看所有設備狀態:進入設備間頁面后,系統會呈現一個模擬的設備間平面圖,在該圖上,所有設備的實時狀態都被顯示出來;
(4)根據水位自行調整閥門開閉:當系統處于設備間頁面時,系統可以根據每套凈水設備的水位,自行調節進水閥門和緩沖閥門的開閉狀態;
(5)動態生成數據報表:系統可以根據數據庫中的數據動態完成一張凈化水流量的數據報表,其中數據是實時更新的。
1.2 數據庫需求
系統主要數據庫表及內容如下:
(1)管理員信息表:存儲系統管理員的用戶名、密碼等信息;
(2)系統設置信息表:存儲水位上限、下限閾值,系統自動刷新時間間隔等信息;
(3)水泵信息表:存儲提升泵、反沖泵的壓力等信息;
(4)凈水設備信息表:存儲每臺凈水設備(當前為4臺)的參數,主要有包括設備狀態是否正常、水位、水壓、進水閥門和反沖閥門狀態等。
2.1 開發調試環境
軟件開發環境選擇了Windows 7 Ultimate系統平臺。為實現ASP.NET和AJAX的快速開發,集成環境使用Microsoft Visual Studio 2010,開發語言選用C#。
2.2 主要類和方法
(1)公共類
作為面向對象的C#語言,開發時最好將所需用到的資源等抽象為類。因此開發了以下公共類。
①WaterEquipment類,用于描述水處理設備,其中成員包括設備編號、狀態、水位、水壓、進水閥門和緩沖閥門狀態等信息(表1);

表1 Water Equipment類描述
②TPump類,用于描述水泵狀態,其中成員包括水泵號、名稱、壓力等信息(表2)。

表2 TPump類描述
(2)公共方法
這里的公共方法用來讀取公共資源、設置格式等。
①LoadRefreshTime方法:用于讀取自定義的刷新時間間隔,返回值為int型;
②LoadThresholdDwon方法:用來讀取數據庫中存放的水位下限閾值,返回值為double型;
③gdStyle方法:用于設置頁面中出現的GridView控件的格式,無返回值。
以上公共方法,均封裝在CommonClass類中,且方法均為靜態方法,這樣無須將CommonClass類實例化即可調用。
由于篇幅所限,這里只介紹系統核心功能模塊的開發以及所應用的關鍵技術。
3.1 導航功能
為便于操作,功能頁面實現為上+左右模式,其中上部顯示公共信息,左側顯示導航功能按鈕,右側為具體功能實現。這里采用.NET的母版頁技術,避免冗余代碼出現。

圖1 使用了母版頁的導航窗口及功能頁面
3.2 設備狀態顯示及閥門自動控制功能
通過設備間頁面來實現。此頁面可以動態顯示所有設備的各項參數,通過此頁面可以動態控制閥門狀態。由于此頁面功能比較復雜,需要顯示的元素比較多,因此需要通過層次結構來實現各種圖片、控件的布局,這里選擇了CSS盒子模型進行頁面布局。
實現實時顯示和自動控制功能,用到了.NET的AJAX技術。實現方法是首先插入UpdatePanel以及Timer控件。根據布局需求,需要6個UpdatePanel控件,兩個Timer控件分別控制泵狀態和凈水設備狀態。這里需要將每個UpdatePanel的Triggers屬性均正確設置,才能保證Timer控件的Ticks事件能夠正確控制刷新。
程序流程及關鍵代碼如下:
(1)首先讀取數據庫中的水位上限和下限,建立兩個數組,分別對應4套凈水設備和其要顯示的參數控件。然后初始化數據庫連接。


(2)通過循環控制各設備的狀態。由于定義了兩組數組,其顯示是通過數組下標關聯的。循環體中核心代碼如下:

(3)通過讀取的水位信息來設置和顯示閥門開關。核心代碼如下:

(4)最后將存儲在實例化類中的信息存入數據庫并關閉數據庫連接。核心代碼如下:

該頁面的最終狀態如圖2所示。
3.3 參數報表自動生成功能
參數報表功能實現使用了ASP.NET 2.0中新增的GridView控件。為實現定時刷新,仍需要使用UpdatePanel以及Timer控件。此處完全使用前臺模式開發,無需在后臺輸入代碼。數據庫連接使用Access-DataSource控件。
(1)首先在頁面中插入ScriptManager控件,然后依次插入兩個UpdatePanel、一個Timer、兩個AccessData-Source控件、兩個GridView控件。設置AccessData-Source控件的屬性如表3所示。

圖2 設備狀態頁面

表3 Access Data Source控件屬性
(2)然后將兩個GridView數據源分別設置為兩個AccessDataSource控件,其屬性如表4所示:

表4 Grid View控件屬性
最終的參數報表頁面見圖3。
4.1 部署
系統最終部署在Windows Server 2008上,采用IIS 7.0作為Web服務器,具體過程不再贅述。

圖3 數據參數表頁面
4.2 測試
對本系統來說,需要對照需求分析中所列出的功能需求逐一檢查系統功能是否正確實現。為了驗證刷新功能實現的正確性,特地開發了配套測試程序,用于定時向數據庫中寫入隨機數據,模擬水處理設備狀態的變化。如圖4所示。
經功能測試、人機交互界面測試、性能測試,系統的功能、性能等符合軟件需求規定。
本系統開發過程中所采用的關鍵技術和技術優勢包括:
①使用微軟成熟的.NET和AJAX整合架構,使得開發過程大大簡化,后期維護、修改變得容易;
②使用CSS盒子模型進行頁面布局,將顯示層和數據層分離,使得較復雜的設備間頁面布局層次清晰;
③充分利用了C#語言的優勢,將各設備抽象為類進行管理,真正做到了面向對象開發;
④使用ADO.NET訪問數據庫,引用成熟的類庫,訪問效率和安全性較傳統技術有進一步的提升。

圖4 配套測試程序界面
當然,系統開發中還存在著一些不足之處。例如網絡安全方面考慮不充分、系統配置還不夠靈活、系統安裝部署略顯繁瑣等,期望在后續的開發實踐中加以解決。
[1] 朱志偉.小型水廠智能化水處理監控系統的應用[J].中國給水排水,2013,16(29):87~89
[2] 周銳.紅興隆污水處理監控系統設計[D].哈爾濱:哈爾濱工業大學,2013
[3] 黃桂金,宋強.ASP.NET AJAX網站開發從入門到精通[M].北京:清華大學出版社,2008
[4] Christian Wenz著.ASP.NETAJAX編程指南[M].唐學韜等譯.北京:機械工業出版社,2008
[5] 鐘大利,黃宗正.三層架構下ADO.NET數據庫訪問技術的應用探究[J].電腦知識與技術.2013,9(5):961~962
Development of Water Treatment Monitoring System Based on.NET and AJAX
WANG Bin1,2,HE Xing3,ZHAO Hai4,5
(1.No.91413 Troops of PLA,Qinhuangdao 066001; 2.School of Computer and Communication Engineering,Northeastern University at Qinhuangdao,Qinhuangdao 066004; 3.Unit60,No.65631 Troops of PLA,Jinzhou 121300;4.No.65037 Troops of PLA,Huludao 125100;5.College of Information and Engineering,Northeastern University,Shenyang 110819)
Describes the development process on a set of water treatmentmonitoring system based B/S structure.The system is using Micros of t.NET Framework 4.0 framework,using C#languagemainstream encodes,applying ASP.NET AJAX framework,making pages can be updated regularly without refreshing the data,to achieve real-time watermonitoring system status display function,and user experience is good. Access to the database through ADO.NET technology,water purification dynamically generated data reporting capabilities.
ASP.NET;AJAX;C#;Water TreatmentMonitoring System
1007-1423(2015)07-0073-05
10.3969/j.issn.1007-1423.2015.07.020
王斌(1981-),男,河北昌黎人,在讀碩士研究生,工程師,研究方向為軍用軟件測評
賀興(1984-),男,河北衡水人,本科,研究方向為通信對抗
2015-01-13
2015-02-10