趙棟棟,丁岳峰,徐 軍,杜孝軍
(四川華能太平驛水電有限責任公司,四川 成都610000)
太平驛水電站屬岷江上游河段電站,裝機容量26萬kW,4臺機組。電站距離成都97km,離負荷較近,因此其發電量也能得到保證。太平驛電站作為四川省內較早投產的電站,其電量計算一直都是采用人工計算的方式,即人工通過電表將該時段的電量數據記錄下來,然后通過計算器進行電量的計算。
在計算每個時段的發電量時,將電量分成了4個時段,即平段、早高峰、谷段、晚高峰,各個時段計算時所需要的底度不一樣,例如平段計算時需要減去昨日平段數據后乘以一個系數,而早高峰計算時需要減去昨日晚高峰數據后乘以一個系數,今日晚高峰電量計算則又需要減去今日早高峰數據后乘以一個系數。
同時,阿壩州地方電網某些電站也需要通過太平驛上網,因此還要考慮這個因素,由此給太平驛電量日報表的計算帶來了很多不必要的工作。在計算機技術愈來愈先進成熟的今天,采用先進的計算機編程技術,將需要計算的各個時段電量編制成公式計算,即免去了人工計算復雜的工作量,也避免了人工計算的失誤,同時將每天的電量日報保存成Excel文檔,節約了紙質資源,降低了水電站運行管理成本,對于其他存在類似情況的電站具有較大的借鑒意義。
電量計算是每個電站每天都要進行的工作,也是一件非常重要的工作,電量計算結果的準確性對于電站來說有著非常重要的作用,甚至可能會影響到電站的經濟效益。太平驛水電站電量計算軟件是根據太平驛水電站的電量實際計算情況,將復雜的電量計算公式化,并自動對計算結果進行校驗,從而節約電站運行人員的計算時間、避免人工計算存在的失誤。按照功能,軟件可以分為以下幾個部分:
(1)讀取昨日電量底度。根據數據庫中存在的昨日電量計算情況,自動篩選出計算今日電量需要的數據并顯示在軟件界面中。
(2)讀取今日電量。在某些情況下,操作員可能會無意間將程序關閉,而在計算電量時,如晚高峰電量計算時需要本日早高峰電量底度,因此,軟件提供了讀取今日電量功能,用戶可以將已經計算過的數據讀取進來,從而避免再次輸入帶來的不必要的時間浪費。
(3)電量計算。根據輸入的今日電量及電量底度,自動計算該時段的電量,并根據實際情況對電量設置了最大值,即計算結果不能超過該時段最大發電量,否則會提示數據計算有誤。在電量計算完成后,可以將計算的電量導出到Excel文件,在明日計算電量時,程序會自動篩選今日電量的有效信息,從而實現電量計算的一步操作。
(4)電量統計。電量統計是程序的核心功能,其統計結果的可靠性對于電站來說具有至關重要的意義。經過程序計算出的每日電量會以年月日的形式存放于指定的文件夾,形成一個大數據庫,當需要查看某年某月或多年的某一月或多年的某一天的電量對比,可設定相應的查看條件,系統會以柱狀圖的形式將電量顯示在系統中,直觀地進行對比。例如電站需要進行機組技術改造工作,首先要確定改造的時間,由于來水原因,每個月的發電量有較大差異,此時可通過對多年每個月電量的對比,尋找出多年來發電量較低的月份,再綜合考慮其他因素,確定技術改造時間,從而為機組技術改造提供可靠的數據依據,在一定程度上可以為公司節約百萬甚至更多的成本,具有極大的經濟效益。
太平驛電站電量計算軟件不僅僅適用于太平驛電站本身,在設計之初系統就已經設置了相應的接口,如果其他電站采用本軟件計算本站電量,可通過更改某些計算系數來實現,對系統其他功能完全無影響,因此,本系統具有較好的推廣性,其市場價值潛力巨大。
2.2.1 Microsoft Visual Studio.NET2010開發環境
Microsoft Visual Studio.NET2010是微軟公司推出的開發環境,其在操作界面上進行了大幅度的革新,使得操作界面更加人性化和簡潔,同時其功能涵蓋了C#、C++等當下比較流行的計算機語言[1]。
2.2.2 C#編程語言
C#(C Sharp)是 Microsoft隨 Visual Studio.NET 引入的一種新語言。C#融合了Visual Basic、Java、C++語言優勢,使得開發更加集成化[2],C#在語法上保持了與其他幾種語言的一致性,優化了圖形用戶創建的事件驅動應用程序,使得其更加易用。C#是一種面向對象的語言,它在.NET Framework框架下可以與其他語言完美兼容。C#用來允許程序員開發在Windows下或者在Web瀏覽器中運行的應用程序,并且沒有編程通常所需要的復雜性[3]。
2.2.3 MVC3層開發體系
MVC即Model-View-Controller,是目前軟件開發過程中比較流行的一種開發方式。MVC設計模式實現功能模塊和顯示模塊的分離,使得應用程序更加可維護、可擴展、可移植和可復用。對于界面設計可變性的需求,MVC把交互系統的組成分解成模型、視圖、控制器3種部件[4]。MVC3層模式如圖1所示。

圖1 3層架構關系圖
2.2.4 Microsoft Office Excel二次開發技術
本系統采用調用Excel組件的方式來對Excel進行二次開發,通過在COM中添加引用的方式將Excel組件引入系統,在數據存儲和數據讀取方面采用了兩種不同的方法。數據存儲時采用了實例化一個Excel的方法來進行[5-6],其代碼如圖2所示。

圖2 數據存儲代碼
在導出數據時,本文引入了OleDb.OleDbData Adapter來進行數據庫的鏈接。OleDb模式針對OLEDB技術訪問數據庫,它是由微軟公司開發的功能強大的以COM為基礎的數據處理技術。OLEDB與微軟公司開發的別的數據庫技術的最大區別是它可以實現數據處理的通用性。在C#中,我們需要添加引用:System.Data.OleDb,System.Data。采用OleDb的方式鏈接數據庫時,需要用到ADO.NET,ADO.NET具有良好的數據庫兼容性,能夠很好的與OLEDB兼容的數據庫相兼容,對當前市場上應用的數據庫都可以實現良好的兼容,并且市場上的數據庫預裝了OLEDB的驅動程序,ADO.NET是以.NET為基礎創建的,它的最大優勢在于實現了數據庫調用的一致性,這些數據庫一般包括XML數據、表、文本和數據倉庫等,從而可以以較高的效率使用這些數據庫。ADO.NET與傳統的數據庫操作方式不同,它不是實時的連接數據源,而是將需要使用的數據保存在Dataset對象中,當然,在使用Dataset對象之前需要對Dataset對象進行實例化[7-9]。使用這種方式打開數據庫時的代碼如圖3所示。

圖3 數據庫打開代碼
本系統采用Excel文件的形式進行數據的存儲,無需專門建立數據庫。在計算完每日的電量后,即可將數據導出到指定文件夾中,文件名為特定格式,方便讀取。
基于以上基本技術,將公式編入系統后,對系統進行實現。并通過對一段時間的電量計算數據與人工計算的數據進行比對來驗證軟件計算結果的可靠性。通過對太平驛電站電量進行一個月的校核計算,證明該軟件的計算結果與人工計算結果完全一致,計算結果具有非常高的可靠性,可以替代人工計算電量。軟件的主界面如圖4所示。

圖4 軟件主界面
為了提高軟件的數據可靠性,優化其人機交互感,系統增加了解鎖按鍵功能。系統在設計時就嚴格限制了系統電量的計算時間,即低谷電量計算在早上 07:00~09:00 之間,早高峰電量計算在 11:00~12:00 之間,平段電量計算在 19:00~21:00 之間,晚高峰電量計算在23:00~24:00之間,一旦錯過計算時間,相應的電量計算按鈕會自動消失,只有在相應的時間段內才會出現相應的按鈕,電量計算表格在此時間段內也才允許輸入數據。如果錯過了相應的計算時間,可以通過解鎖按鍵功能來將所有功能解鎖,但是此功能需要輸入管理員密碼。
通過設置相應的條件查看相應的電量數據,圖5顯示了設置的一段時間內的4個時間段的電量數據以及當天的總電量數據,通過柱狀圖的方式形成一個明顯的對比,從圖中可以很明顯地看出此段時間內的電量情況,并對比出電量最高值和最低值,為電站電量統計提供了極大地便利,為其他決策提供了數據支持。

圖5 每日電量圖
太平驛水電站電量計算軟件的開發不但解決了太平驛電站人工計算電量可能存在的人為失誤等問題,同時也為其他電站的電量計算提供了一種可以采取的新模式,具有較高的實用價值,對于電站的電量統計具有很大的實際意義。在未來的研究中,可以將電量計算結果匯總后,采用大數據分析思想對電站一段時間,如1年或幾年甚至是幾十年的電量情況進行分析,對電站的發電量進行預估,從而為制定電站年發電量目標提供一定的參考。