基于MSChart控件的高压试验管理系统的研究与实现
2014-12-21池莲庆
杨 永 刘 银 池莲庆
(广东电网公司茂名供电局,广东 茂名525000)
0 引言
现阶段M供电局一次设备高压试验的数据主要依靠生产MIS系统进行管理,它以文档报告为基本单位来保存试验数据。如果我们要评估设备的寿命和状态趋势,则需要将历年历次的试验数据从试验报告中取出来进行对比与统计,这样十分繁琐,且易出错。如能直接使用这些数据,并将其转换成直观的图表展现给决策者,那对我们的工作就有了很大的帮助。遗憾的是,到目前为止,生产MIS系统还没有这方面的功能。
本项目以基于角色的访问控制技术(RBAC)为权限控制策略,实现用户权限的安全控制,并利用MSChart控件的相关技术,将高压试验数据用图表直观完整地展现出来。这些图表将试验数据以数字为基本单位进行管理,以试验时间为时间轴,对设备的历次试验数据进行直观的对比与分析。分析结果则可成为完成设备的寿命及状态趋势评估的基础,能够给决策者带来很大帮助。本项目完成后,将会成为生产MIS系统试验管理的一个强有力的补充。
1 MSChart控件技术
图形图表是人们认知客观事物的重要工具。它形象直观地反映了事物的发展变化、演变趋势以及事物之间的相互关联。随着计算机时代的来临与网络图形图像的迅速发展,人们已经不满足于仅仅只看到光秃秃的数字了,而是希望能够以不同的方式呈现与分析数据。在管理信息系统中,通过各类不同的图表,可对系统内的大量数据做出更为形象、直观的描述,能够让观测者根据图表的结果对所观测的事物进行预测和分析。
通常ASP.NET编程框架是进行 WEB开发时的首要选择,但是它本身支持图表的功能十分有限。如果要实现功能丰富的图表,只能借助第三方的控件进行开发。MSChart.NET控件是微软公司针对统计分析应用而在.Net Framework 3.5上开发的一套免费图表控件,支持多种图表,且功能强大,图表美观,弥补了.NET平台下的图表空白[1]。
Chart是控件的主体,它是图表容器的顶层,可包含多个对象或者对象集合。对象集合都是C#语言的Collection泛型。当需要画出图表时,首先要用New关键字新建出Chart对象,然后通过相关对象实例的方法与属性在图表工作区中添加图表区域,设置图表类型,设置坐标轴标题/刻度、标签、图例等等,最后可用推模式将数据库数据绑定到图表。通过设置不同的图表类型可以创建不同类型的图表,以满足用户的不同需求。
2 软件设计
软件分为4大模块:基础信息模块、主变信息模块、互感器信息模块、系统维护模块。
2.1 基础信息模块
可对变电站信息、主变信息、间隔信息、设备信息、班组信息、人员信息等基础信息进行查询、维护、统计。其中变电站信息包括:变电站名称、变电站编号、所属县公司、变电站电压等级、变电站投运时间等。主变信息包括:变压器投运编号、所属变电站、出厂日期,生产日期,生产厂家,套管各相变高、变中铭牌电容值等。间隔信息包括:间隔名称、所属变电站、所属电压等级区等。设备信息包括:设备所属间隔等。班组信息包括:班组名称、班组负责人、联系方式等信息。人员信息包括:人员名称、性别、学历、职称等信息。
2.2 主变信息模块
本模块将主变的历次试验数据通过Excel表的形式导入系统,结合主变的常规试验类别,将试验数据分为直流电阻部分、套管介质损耗部分与绕组绝缘部分。可根据主变的所属的变电站、主变编号、试验日期等条件查询、修改、删除主变的部分试验数据。对于直流电阻与套管介质损耗,可以根据档位或者日期生成相应的柱状或网状图表。由于绝缘数值一般差别较大,没有对比的必要性,因此暂时没有生成绝缘数据的图表功能。
2.3 互感器信息模块
此模块建立在基础信息模块之上,把属于互感器类的设备都定义在相应的间隔之内。将历次的互感器试验数据都录入到系统之内,通过变电站、电压等级区、间隔,设备等条件可查询、修改、删除互感器试验数据。对于电流互感器,这些试验数据包括环境温湿度、铭牌电容值、电容量、介质损耗值、接线方式、试验电压等。对于电压互感器,试验数据包括环境温湿度以及各节电容的电容量和介质损耗。取得数据以后,通过MSChart控件技术,形成历次试验的直观图表。
2.4 系统维护模块
系统维护模块主要是维护系统的正常运行,包括用户管理、角色管理与权限管理。用户管理用于管理用户的基本信息,可对用户的角色进行配置。角色管理用于管理系统的角色信息,包括角色的增加、修改、删除等。权限管理先建立起权限表对各条权限进行管理,再根据系统角色类型进行权限配置,这样就把用户和权限联系起来了。也可以对每一个用户进行个性化角色权限设置,这使得系统管理既简单又灵活。
3 软件实现
系统用B/S的方式实现,其中客户端的开发工具为 Microsoft Visual Studio 2005,数据库工具采用 SQL Server 2005,用相关类里面的方法和属性,就可以输出不同类型的复杂图表,还可以使用Ajax等技术提高用户体验等。
图1 电流互感器试验数据图
4 结论
本系统的开发与应用,具体结论如下:
(1)实现了高压试验数据的图表化。系统可操作性强,容易上手,完美地形成试验数据图表,给设备的状态趋势评估与寿命预测带来极大的帮助。
(2)以 Microsoft Visual Studio 2005、SQL Server 2005为开发工具,B/S模式、.NET框架为基础的解决方案,被证明是基于Web的高压试验系统的首选方案。本系统具有良好的开放性、灵活性、安全性和可用性。
[1]微软图表控件MSChart使用初探系统的各个页面用C#开发。下面以某变电站的一个110kV间隔下的电流互感器的试验数据为基础,绘制其历次试验的介质损耗数据柱状图。横坐标为试验日期,纵坐标为介质损耗数据。相关页面的主要设计代码如下:
(1)在 Visual Studio开发环境中,将Chart控件拖入页面,创建图表控件。
〈asp:ChartID="ChartOne"runat="server"〉
〈Series〉
〈asp:SeriesName="SeriesOne"〉〈/asp:Series〉
〈/Series〉
〈ChartAreas〉
〈asp:ChartAreaName="ChartArea1"〉〈/asp:ChartArea〉
〈/ChartAreas〉
〈/asp:Chart〉
(2)新建图表集合Series,并设置其图标集类型,线条颜色、宽度,数据点标志类型、大小等。
Seriesseriesfirst=newSeries("first");//创建图标集类型
Seriesfirst.ChartType=SeriesChartType.Column;//图标集类型
Seriesfirst.Color=Color.Green;//线条颜色
Seriesfirst.BorderWidth=2;//线条宽度
Seriesfirst.ShadowOffset=1;//阴影宽度
(3)使用ADO.NET从数据库中取出数据,通过遍历循环,将数据推入到图表集合中。
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控件中,并设置Chart控件的高度、宽度、背景色,横纵坐标轴的标题、线型、线宽,网络线等属性。
ChartOne.Series.Add(series);//把数据集添加到 ChartOne中
ChartOne.Width=1200;//图片宽度
ChartOne.Height=550;//图片高度
ChartOne.BackColor=Color.Azure;//图片背景色
ChartOne.ChartAreas[0].AxisY.Title="介 质 损耗(%)";
ChartOne.ChartAreas[0].AxisX.Title="试验日期";//设置坐标轴标题
最后绘制出的柱状图如图1所示。本示例代码比较简单,实际应用MSChart图表时,可以根据用户的实际需求,通过使