1 引言
由于近年來電廠引入市場競爭機制,發電企業之間的競爭越來越激烈,因而降低成本,提高效能成為電力企業發展的第一要素。通過采用計算機監測系統,對機組進行實時性能計算和能耗分析,可以了解運行指標的煤耗差的大小和分布情況,指導運行人員實時調整運行參數,提高熱經濟性,從而降低機組的發電成本,增強電廠的競爭力。
目前中國大多數電力企業采用的是C/S(Client/Server)模式的經濟指標在線監測系統,但是隨著企業規模的擴大,C/S模式暴露出許多問題,諸如,移植性差,維護復雜,模塊性差等一系列的問題。而采用B/S(Browser/Server)模式則可以很好的克服C/S模式下的缺點,因而逐漸成為電力企業經濟指標在線監測系統的發展方向。
2 系統功能
(1) 信息顯示和查詢模塊
實時和歷史信息瀏覽是B/S結構的電廠在線監測系統最主要的功能。該功能保證用戶在客戶機上通過瀏覽器直接獲得有關系統的實時和歷史信息。具體的信息表現方式是讓實時趨勢圖和歷史趨勢圖以曲線的形式直觀的在客戶端顯示,同時可以查詢任一時間的各種經濟指標數據。
(2) 在線熱力系統經濟性分析模塊
在線熱力系統經濟性分析是B/S結構下的電廠在線監測系統的增強功能。該功能由在線熱力系統經濟指標計算和熱耗偏差分析組成。其實現是在獲得了系統的實時數據后,通過建立針對具體熱力系統的狀態計算、分析模型和優化參數搜索模型,進行在線的系統熱耗計算和偏差分析,從而實現經濟運行的在線指導。
(3) 競價上網模塊
計算單元機組的標準發電成本、供電成本,分析成本變化規律,為管理部門分析成本構成提供有效依據,使管理者能夠開源節流,去除不必要的成本開支,增加經濟效益。
(4) 設備運行狀態監測模塊
該功能主要反映設備的當前狀態,為檢修提供必備的信息。
(5) 報表生成及打印模塊
基于每天和每月各種數據,由在線實時參數計算出經濟指標如鍋爐效率、汽輪機效率、管道效率、發電煤耗率、廠用電率、端差、磨煤機、給水泵單耗等,并人工輸入煤質分析結果,形成全廠日報表、月報表和煤質分析單。按照電廠規定格式打印上報有關部門,同時供領導查詢和考核。
(6) 值間經濟指標競賽模塊
按照電廠制定的“值際安全經濟指標競賽辦法”,統計各值每月完成的生產技術指標,并計算與規定額定值或者月度平均值的偏差。打出每個值的分數,供考核評比。
3 系統結構
圖1 B/S模式的在線監測系統結構圖
該系統采用B/S三層體系結構進行設計。B/S三層體系結構分成表示邏輯層、應用邏輯層和數據服務層,其中表示邏輯層(客戶端)為用戶提供應用界面,完成數據輸入、輸出和一般的數據處理任務;應用邏輯層(中間層)為客戶端提供程序調用的應用邏輯規則,以完成其應用操作并提供服務,同時負責連接數據服務層的數據庫;數據服務層負責儲存、管理數據,可用一些存儲過程、觸發器保證數據的完整性和一致性。該系統的具體組成及原理如圖1所示。
數據采集系統完成現場各種信號的數據采集、信號調理、特征運算與顯示等功能。
數據倉庫系統主要實現B/S模式的電廠在線監測系統所需的實時信息的采集。數據倉庫系統的功能就是從數據采集系統中獲取實時數據;并為Web服務提供相關的數據記錄。
客戶端和Web服務器通過局域網實現了Internet/Intranet服務,網絡上客戶端的發出請求時,Web服務器從數據倉庫獲得信息,并根據客戶端的瀏覽請求和查詢請求,對信息進行加工后返回給客戶端。
這種B/S結構主要有以下優勢:
(1) 簡化了客戶端。無需不同的客戶機上安裝不同的客戶應用程序,而只需安裝通用的瀏覽器軟件;
(2) 簡化了系統的開發和維護。系統的開發者無需再為不同級別的用戶設計開發不同的客戶應用程序,所有的功能都在Web服務器上實現,就不同的功能為各級別的用戶設置權限就可以了;
(3) 使用戶操作變得更簡單。客戶端只是一個簡單易用的瀏覽器,使用者不需要接受專門的培訓,就可直接使用。
4 系統實現
4.1 客戶端開發
客戶端界面設計基于簡單、實用、大方的原則,讓用戶使用起來方便、易用。本系統采用HTML與Javascript語言相結合。由于要頻繁的切換顯示各種數據,因而使用HTML語言中的Frame語言進行界面的框架設計,這樣可以提高頁面的速度。而由Javascrit語言編寫樹狀菜單,可以方便的進行各種數據的查詢。具體開發工具是Dreamweaver2004與編寫語言代碼相結合。
4.2 服務器端開發
(1) 服務器端開發工具
服務器端采用的是JSP語言。JSP是Sun公司推出的新一代站點開發語言,它完全解決了目前ASP、PHP的一個通病―腳本級運行,實現了編譯運行。JSP將網頁的表現形式和服務器端的代碼邏輯分開。服務器在接收到客戶端的JSP頁面請求后,首先由JSP引擎將頁面代碼轉換為Servlet代碼,然后由服務器上的Java編譯器對轉換的Servlet代碼進行編譯,再由Java虛擬機執行編譯后得到的字節碼,并把結果傳給客戶端,這樣就完成了一次連接。由于JSP頁面的內置腳本語言是基于Java語言的,而且所有的JSP頁面都被編譯成為JavaServlet,JSP頁面就具有Java技術的所有好處,包括健壯的存儲管理和安全性,“一次編寫,各處運行”等特點。
在本系統中,采用的是JSP+JavaBean技術。JSP頁面獨自響應請求并將處理結果返回客戶。所有的數據通過JavaBean來處理,JSP實現頁面的表現。這樣就實現了頁面的顯示與頁面的內容的分離,也為JSP應用帶來了更多的可伸縮性。
(2) 數據庫連接技術
數據庫是該系統的核心內容,JSP對數據庫的訪問主要是通過JDBC來實現的。很多數據庫都帶有JDBC驅動程序,Java程序就是通過JDBC驅動程序與數據庫連接,進行數據的查詢、提取等操作。在本系統中,數據庫采用的是Oracle9i,該數據庫自帶JDBC驅動程序,因此可以方便的連接上數據庫。下面是連接數據庫的主要程序:
…………
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String url="jdbc:oracle:oci8:@jingyuan";
String uid="sea";
String pwd="sea";
Connection con = DriverManager.getConnection(url,uid,pwd);
Statement stmt=con.createStatement();
ResultSet rst=stmt.executeQuery("select * from baobiao");
while(rst.next())
{
out.println("<tr>");
out.println("<td>"+rst.getString("……")+"</td>");
………..
out.println("</tr>");
}
rst.close();
stmt.close();
con.close();
…………
由于數據庫連接的建立和關閉對系統而言是耗費系統資源的操作,在多層結構的應用程序環境中,這種耗費資源的動作會造成系統的性能低下。因此,在本系統中運用了連接池技術,即在應用程序啟動時建立足夠的數據庫連接,并將這些連接組成一個連接池,由應用程序動態地對池中的連接進行申請、使用和釋放。這樣就盡可能地重用了消耗內存的資源,大大節省了內存,提高了服務器的服務效率,能夠支持更多的客戶服務。
使用數據源:
…
try
{
Context context = new InitialContext();
DataSource dataSource=(DataSource)context.lookup(“jdbc/jingyuan”);
}
catch(NamingException)
{
// 處理程序
}
…
建立連接:
Connection con=ds.getConnection(”user”,”pwd”);
…
(3) 數據的曲線顯示技術
本系統要實現數據的實時的曲線顯示,這樣可以直觀、快捷的顯示各種數據之間的關系。由于網絡傳輸的限制,在服務器端生成圖片傳輸到客戶端實現起來比較困難。因此采用從JSP頁面提取數據到客戶端,客戶端通過Java Applet生成實時的數據曲線。
Java Applet是由面向對象語言Java開發的小應用程序。與Web瀏覽器緊密結合,以擴展Web瀏覽器的功能,完成數據操作和處理。在Applet中可以使用getParameter()方法從指定的變量處獲值。數據從JSP頁面傳遞給Java Applet可以用如下方法:
< Applet code= *.class width= w height=h codebase=? Name=? Align=? >
< para name=size value=? >
< /Applet>
其中code為Applet的類名,para name為傳入Applet的參數。
由于系統要動態顯示實時的曲線,因而系統需要定時刷新界面,本系統采用線程來實現動態功能。使用線程系統在提高實時信息系統的輸入/輸出速度、有效利用系統資源、改善計算機通信功能方面顯示出很大優勢。
(4) 數據庫的設計
本系統采用與電廠的MIS(管理信息系統)共用Intranet網絡和數據庫,充分利用該電廠MIS系統資源,省去了有關硬件的開發部分,直接通過MIS來實現對實時參數的快速、準確獲取。由于電廠MIS的數據庫類型為Oracle,因此本系統在開發階段也采用同樣的關系數據庫管理系統,并且在數據庫服務器中建立自定義的4個庫表,分別為“指標值表”、“額定值表”、“實測值表”和“歷史值表”,與從電廠備份來的MIS數據庫表構成開發時的數據庫平臺。程序在現場調試和最終投入實際運行時,這4個表仍然包含于MIS系統的Oracle數據庫中。
從MIS系統數據庫中各個不同的庫表中的實時數據讀出后送入“實測值表”,“額定值表”中存有系統運行時相對不變的參數,由實時計算程序計算出的結果將存放在“指標值表”,而“歷史值表”將實時采集的數據保存。
5 結語
經過系統分析、結構設計以及技術選擇等各方面的工作,完成了B/S模式的經濟指標在線監測系統的開發,其功能基本滿足了電廠在線監測經濟指標的要求。該系統能夠克服了C/S模式的不足,給電廠的經濟指標的監測帶來了極大的方便。同時也體現在JSP技術在開發B/S模式的信息管理系統的巨大的優勢和潛力。