楊 永 劉 銀 池蓮慶
(廣東電網(wǎng)公司茂名供電局,廣東 茂名525000)
現(xiàn)階段M供電局一次設(shè)備高壓試驗的數(shù)據(jù)主要依靠生產(chǎn)MIS系統(tǒng)進(jìn)行管理,它以文檔報告為基本單位來保存試驗數(shù)據(jù)。如果我們要評估設(shè)備的壽命和狀態(tài)趨勢,則需要將歷年歷次的試驗數(shù)據(jù)從試驗報告中取出來進(jìn)行對比與統(tǒng)計,這樣十分繁瑣,且易出錯。如能直接使用這些數(shù)據(jù),并將其轉(zhuǎn)換成直觀的圖表展現(xiàn)給決策者,那對我們的工作就有了很大的幫助。遺憾的是,到目前為止,生產(chǎn)MIS系統(tǒng)還沒有這方面的功能。
本項目以基于角色的訪問控制技術(shù)(RBAC)為權(quán)限控制策略,實現(xiàn)用戶權(quán)限的安全控制,并利用MSChart控件的相關(guān)技術(shù),將高壓試驗數(shù)據(jù)用圖表直觀完整地展現(xiàn)出來。這些圖表將試驗數(shù)據(jù)以數(shù)字為基本單位進(jìn)行管理,以試驗時間為時間軸,對設(shè)備的歷次試驗數(shù)據(jù)進(jìn)行直觀的對比與分析。分析結(jié)果則可成為完成設(shè)備的壽命及狀態(tài)趨勢評估的基礎(chǔ),能夠給決策者帶來很大幫助。本項目完成后,將會成為生產(chǎn)MIS系統(tǒng)試驗管理的一個強(qiáng)有力的補(bǔ)充。
圖形圖表是人們認(rèn)知客觀事物的重要工具。它形象直觀地反映了事物的發(fā)展變化、演變趨勢以及事物之間的相互關(guān)聯(lián)。隨著計算機(jī)時代的來臨與網(wǎng)絡(luò)圖形圖像的迅速發(fā)展,人們已經(jīng)不滿足于僅僅只看到光禿禿的數(shù)字了,而是希望能夠以不同的方式呈現(xiàn)與分析數(shù)據(jù)。在管理信息系統(tǒng)中,通過各類不同的圖表,可對系統(tǒng)內(nèi)的大量數(shù)據(jù)做出更為形象、直觀的描述,能夠讓觀測者根據(jù)圖表的結(jié)果對所觀測的事物進(jìn)行預(yù)測和分析。
通常ASP.NET編程框架是進(jìn)行 WEB開發(fā)時的首要選擇,但是它本身支持圖表的功能十分有限。如果要實現(xiàn)功能豐富的圖表,只能借助第三方的控件進(jìn)行開發(fā)。MSChart.NET控件是微軟公司針對統(tǒng)計分析應(yīng)用而在.Net Framework 3.5上開發(fā)的一套免費(fèi)圖表控件,支持多種圖表,且功能強(qiáng)大,圖表美觀,彌補(bǔ)了.NET平臺下的圖表空白[1]。
Chart是控件的主體,它是圖表容器的頂層,可包含多個對象或者對象集合。對象集合都是C#語言的Collection泛型。當(dāng)需要畫出圖表時,首先要用New關(guān)鍵字新建出Chart對象,然后通過相關(guān)對象實例的方法與屬性在圖表工作區(qū)中添加圖表區(qū)域,設(shè)置圖表類型,設(shè)置坐標(biāo)軸標(biāo)題/刻度、標(biāo)簽、圖例等等,最后可用推模式將數(shù)據(jù)庫數(shù)據(jù)綁定到圖表。通過設(shè)置不同的圖表類型可以創(chuàng)建不同類型的圖表,以滿足用戶的不同需求。
軟件分為4大模塊:基礎(chǔ)信息模塊、主變信息模塊、互感器信息模塊、系統(tǒng)維護(hù)模塊。
可對變電站信息、主變信息、間隔信息、設(shè)備信息、班組信息、人員信息等基礎(chǔ)信息進(jìn)行查詢、維護(hù)、統(tǒng)計。其中變電站信息包括:變電站名稱、變電站編號、所屬縣公司、變電站電壓等級、變電站投運(yùn)時間等。主變信息包括:變壓器投運(yùn)編號、所屬變電站、出廠日期,生產(chǎn)日期,生產(chǎn)廠家,套管各相變高、變中銘牌電容值等。間隔信息包括:間隔名稱、所屬變電站、所屬電壓等級區(qū)等。設(shè)備信息包括:設(shè)備所屬間隔等。班組信息包括:班組名稱、班組負(fù)責(zé)人、聯(lián)系方式等信息。人員信息包括:人員名稱、性別、學(xué)歷、職稱等信息。
本模塊將主變的歷次試驗數(shù)據(jù)通過Excel表的形式導(dǎo)入系統(tǒng),結(jié)合主變的常規(guī)試驗類別,將試驗數(shù)據(jù)分為直流電阻部分、套管介質(zhì)損耗部分與繞組絕緣部分??筛鶕?jù)主變的所屬的變電站、主變編號、試驗日期等條件查詢、修改、刪除主變的部分試驗數(shù)據(jù)。對于直流電阻與套管介質(zhì)損耗,可以根據(jù)檔位或者日期生成相應(yīng)的柱狀或網(wǎng)狀圖表。由于絕緣數(shù)值一般差別較大,沒有對比的必要性,因此暫時沒有生成絕緣數(shù)據(jù)的圖表功能。
此模塊建立在基礎(chǔ)信息模塊之上,把屬于互感器類的設(shè)備都定義在相應(yīng)的間隔之內(nèi)。將歷次的互感器試驗數(shù)據(jù)都錄入到系統(tǒng)之內(nèi),通過變電站、電壓等級區(qū)、間隔,設(shè)備等條件可查詢、修改、刪除互感器試驗數(shù)據(jù)。對于電流互感器,這些試驗數(shù)據(jù)包括環(huán)境溫濕度、銘牌電容值、電容量、介質(zhì)損耗值、接線方式、試驗電壓等。對于電壓互感器,試驗數(shù)據(jù)包括環(huán)境溫濕度以及各節(jié)電容的電容量和介質(zhì)損耗。取得數(shù)據(jù)以后,通過MSChart控件技術(shù),形成歷次試驗的直觀圖表。
系統(tǒng)維護(hù)模塊主要是維護(hù)系統(tǒng)的正常運(yùn)行,包括用戶管理、角色管理與權(quán)限管理。用戶管理用于管理用戶的基本信息,可對用戶的角色進(jìn)行配置。角色管理用于管理系統(tǒng)的角色信息,包括角色的增加、修改、刪除等。權(quán)限管理先建立起權(quán)限表對各條權(quán)限進(jìn)行管理,再根據(jù)系統(tǒng)角色類型進(jìn)行權(quán)限配置,這樣就把用戶和權(quán)限聯(lián)系起來了。也可以對每一個用戶進(jìn)行個性化角色權(quán)限設(shè)置,這使得系統(tǒng)管理既簡單又靈活。
系統(tǒng)用B/S的方式實現(xiàn),其中客戶端的開發(fā)工具為 Microsoft Visual Studio 2005,數(shù)據(jù)庫工具采用 SQL Server 2005,用相關(guān)類里面的方法和屬性,就可以輸出不同類型的復(fù)雜圖表,還可以使用Ajax等技術(shù)提高用戶體驗等。
圖1 電流互感器試驗數(shù)據(jù)圖
本系統(tǒng)的開發(fā)與應(yīng)用,具體結(jié)論如下:
(1)實現(xiàn)了高壓試驗數(shù)據(jù)的圖表化。系統(tǒng)可操作性強(qiáng),容易上手,完美地形成試驗數(shù)據(jù)圖表,給設(shè)備的狀態(tài)趨勢評估與壽命預(yù)測帶來極大的幫助。
(2)以 Microsoft Visual Studio 2005、SQL Server 2005為開發(fā)工具,B/S模式、.NET框架為基礎(chǔ)的解決方案,被證明是基于Web的高壓試驗系統(tǒng)的首選方案。本系統(tǒng)具有良好的開放性、靈活性、安全性和可用性。
[1]微軟圖表控件MSChart使用初探系統(tǒng)的各個頁面用C#開發(fā)。下面以某變電站的一個110kV間隔下的電流互感器的試驗數(shù)據(jù)為基礎(chǔ),繪制其歷次試驗的介質(zhì)損耗數(shù)據(jù)柱狀圖。橫坐標(biāo)為試驗日期,縱坐標(biāo)為介質(zhì)損耗數(shù)據(jù)。相關(guān)頁面的主要設(shè)計代碼如下:
(1)在 Visual Studio開發(fā)環(huán)境中,將Chart控件拖入頁面,創(chuàng)建圖表控件。
〈asp:ChartID="ChartOne"runat="server"〉
〈Series〉
〈asp:SeriesName="SeriesOne"〉〈/asp:Series〉
〈/Series〉
〈ChartAreas〉
〈asp:ChartAreaName="ChartArea1"〉〈/asp:ChartArea〉
〈/ChartAreas〉
〈/asp:Chart〉
(2)新建圖表集合Series,并設(shè)置其圖標(biāo)集類型,線條顏色、寬度,數(shù)據(jù)點標(biāo)志類型、大小等。
Seriesseriesfirst=newSeries("first");//創(chuàng)建圖標(biāo)集類型
Seriesfirst.ChartType=SeriesChartType.Column;//圖標(biāo)集類型
Seriesfirst.Color=Color.Green;//線條顏色
Seriesfirst.BorderWidth=2;//線條寬度
Seriesfirst.ShadowOffset=1;//陰影寬度
(3)使用ADO.NET從數(shù)據(jù)庫中取出數(shù)據(jù),通過遍歷循環(huán),將數(shù)據(jù)推入到圖表集合中。
DataSetds=DbHelperSQL.Query(sql);
DataTabledt=ds.Tables[0];
foreach(DataRowdrindt.Rows)
{
Series.Points.AddXY(dr[2].ToString(),dr[6].ToString());
Seriesfirst.Points.AddXY(dr[2].ToString(),dr[7].ToS-tring());
}
(4)將圖表集合加入到Chart控件中,并設(shè)置Chart控件的高度、寬度、背景色,橫縱坐標(biāo)軸的標(biāo)題、線型、線寬,網(wǎng)絡(luò)線等屬性。
ChartOne.Series.Add(series);//把數(shù)據(jù)集添加到 ChartOne中
ChartOne.Width=1200;//圖片寬度
ChartOne.Height=550;//圖片高度
ChartOne.BackColor=Color.Azure;//圖片背景色
ChartOne.ChartAreas[0].AxisY.Title="介 質(zhì) 損耗(%)";
ChartOne.ChartAreas[0].AxisX.Title="試驗日期";//設(shè)置坐標(biāo)軸標(biāo)題
最后繪制出的柱狀圖如圖1所示。本示例代碼比較簡單,實際應(yīng)用MSChart圖表時,可以根據(jù)用戶的實際需求,通過使