基于iHistorian 与ASP.NET 的煤矿工况
数据历史曲线的设计与实现
戴明军,钱建生**
作者简介:戴明军,(1987-),男,在读硕士研究生,主要研究方向:模式识别,.NET 软件开发。
通信联系人:钱建生,(1964-),男,浙江桐乡人,教授,博士生导师,主要研究方向为宽带网络技术及
应用,矿井通信与监控,光电子技术及应用. E-mail: qianjsh@cumt.edu.cn
5 (中国矿业大学信息与电气工程学院,江苏 徐州 221008)
摘要:煤矿企业在自动化生产过程中会有大量传感器不间断地采集数据,这些工况数据记录
各种机电设备装置的运行状态信息,是分析、优化和指导运行和管理的数据基础。实时历史
数据库iHistorian 凭借其高性能成为煤矿工况数据采集和存储的良好选择。本文首先对实
际需求进行了分析,设计了合理的功能模块,采用iHistorain 结合ASP.NET 进行煤矿工况
10 数据在Web 上的历史曲线开发,并且阐述了iHistorian 的运用方法,最终实现了单个采集
点历史曲线查看和多个采集点的历史曲线对比功能。
关键词:iHistorian;实时历史数据库;ASP.NET;历史曲线;煤矿工况数据
0 引言
近年来,随着工控自动化技术的不断发展,煤炭企业信息化应用面临着更大的挑战。机
电设备自动化系统通过ifix 组件进行相应的设备监控,通过各传感器可以24 小时不间断进
35 行信号采集,因此会产生大量的工况数据。由于煤矿工况实时数据种类繁多[1],来源复杂,
采集方式各有区别,所以为了满足煤矿中不同部门的需求,选择合适的数据库系统是十分重
要的。
充分考虑煤矿现场系统的复杂应用环境和设备类型产品因素,在各方面指标都满足要求
的情况下,选择GE Intellution 公司推出的性价比较高的iHistorian 实时历史数据库(简称iH)。
40 iHistorian 是一个功能强大的厂级实时历史数据库平台,建立在庞大HMI/SCADA 安装基础
之上,拥有强大的数据接口能力,高速地采集归档和发布全厂级海量过程实时数据,是当今
世界上性能极高的自动化软件解决方案[2]。利用iHistorian 数据库保存iFix 采集的大量实时、
连续、有序的值序列数据,结合Microsoft 的ASP.NET 在Web 开发中的技术优势,可实现
对采集的大量历史数据的高效和透彻的表现。鉴于上述分析,本文采用iHistorian 与ASP.NET
45 开发Web 上的煤矿工况数据的历史曲线,以此提供对煤矿生产的辅助决策,从而提高煤矿
生产的效率和管理水平。
1 总体设计分析
1.1 功能需求分析
经过前期的调研与总结,煤矿生产过程中,提升、通风、排水、综采、运输等各个子系
50 统运作会产生大量的实时数据,很多数据对于煤矿生产和安全监测都至关重要,应将生产过
程中的工况数据作为数据基础,建立全矿专业级实时历史数据库,为实现运行分析功能提供
真实可靠的数据依据;最后将数据采集结果以友好的界面展示在公司管理与决策者的面前。
1.2 模块抽象
煤矿工况数据历史曲线的设计,结合对功能需求的分析,可以抽象出不同方式的功能模
55 块:1.单个采集点历史曲线。2.多个采集点历史曲线对比。如图1 所示。
图1 功能模块抽取
1.3 数据流程框架设计
60 iHisotian 数据库利用先进的技术特性实现对海量过程数据的高效经济存储,该数据库利
用OPC、iFix File 和Simulation 采集器,可以将各控制系统的生产实时数据快速高效地发送
到iH 实时数据库中。然后,iH 以Server 形式通过iH-API 和ODBC、Excel Add-in、Web-based
等方式与关系数据库和客户端进行双向通信,从根本上完成对生产过程实时/历史数据的分
析[3]。
65 在本系统设计中,iH 利用OPC、iFix 采集器将传感器的实时数据经由以太网采集并存
储到数据表中。同时,iH 对提供标准的API 数据接口,ASP.NET 可利用OLEDB 对iH 接口
的访问,将取出的数据通过程序的业务逻辑处理,可实现历史曲线的界面表现方式。如图2
所示。
70 图2 数据流程框架
2 iHistorian 数据库运用
2.1 iHistorian 数据采集
iHistorian 可以以20000 次/秒处理数据读写事件、数据记录毫秒级的时间分辨率、采集
75 器可以提供100ms 的数据采集速度、单台服务器10 万个标签点记录能力、数据计算采集器
提供直接针对过程数据的计算引擎和脚本开发工具[4],可以直接将计算结果存储到
iHistorian。iHistorian 主界面如图3 所示:
图3 iHistorian 主界面
80
2.2 iHistorian 数据存储
作为实时历史数据库主要的存储对象生产工况数据,它有以下主要特点:连续性、带时
标,例如现场的温度、压力等模拟量; 基于时间的连续的事件记录,例如阀门开关、电机
开停等开关量 。iHistorian 具备良好的接口,直接采集生产工况数据于各个不同的控制系统
85 [5]。
iHistorian 数据库表包含存档只读数据。在iHistorian OLEDB 程序提供包含的表:ihTags,
ihArchives , ihCollectors , ihMessages , ihRawData , ihAlarms , ihComments , ihTrend ,
ihQuerySettings,ihCalculationDependencies。
常用的表有ihTags,ihRawData,和经过与SQL Server 共同配置之后的ihAlarms 表。
90 该ihTags 表包含标记名称集和每个标签的属性。此数据主要是信息管理员进入Historian
Administrator 标签维护。ihRawData 表包含了每一个标签的采集数据。表中不仅有原始数据,
也有计算数据和插入数据。这个表的一个典型应用是进行报表分析。ihAlarms 表经过具体的
配置之后,保存从iFix 采集过来的各个标签点的报警信息。
2.3 iHistorian 数据查询
iHistorian 95 提供多种数据接口,通过OLE DB 可以使用标准的SQL 语句查询iHistorian
中的历史数据、系统消息、标签点等[6]。查看表中的数据可以通过Historian Interactive SQL
工具利用SQL 语句进行数据查询。
如下语句:
select * from ihrawdata where tagname='SERVER2.PD1_WZSCPD_DL1.F_CV' and
100 timestamp between '2011-07-11 23:00:00' and '2011-07-15 23:00:00'
该语句实现了对单个采集点的具体时间段的数据集查询,如图4 所示:
图4 Historian Interactive SQL 工具查询结果
105 3 功能实现
3.1 单个采集点历史曲线
ASP.NET 可以利用OLEDB 对iHistorian API 进行访问。如与iHistorian 数据库服务器
192.168.2.45 建立数据连接,并返回一个DataSet 容器,供ASP.NET 使用。C#实现代码如下:
public DataSet DataConnect(string cmdtext)
110 {
DataSet ds = new DataSet(); //声明一个DataSet 容器
System.Data.OleDb.OleDbCommand olecmd = new OleDbCommand();
System.Data.OleDb.OleDbConnection olecon = new
OleDbConnection("Provider=IhOLEDB.iHistorian.1;Persist Security
115 Info=True;User ID='';Data Source=192.168.2.45");
//建立与iHistorian 的OleDb 连接
try
{
olecmd.Connection = olecon;
120 olecmd.CommandText = cmdtext;
olecmd.Connection.Open();
System.Data.OleDb.OleDbDataAdapter da = new OleDbDataAdapter();
da.SelectCommand = olecmd;
olecmd.CommandType = CommandType.Text;
125 da.Fill(ds);
}
finally
{
olecmd.Parameters.Clear();
130 olecmd.Connection.Close();
}
return ds;
}
以新主井己组子系统为例,查询采集点Dropdownlist 选项与iH 数据库的ihtags 表中的
135 所有新主井己组的标签进行数据绑定。用户选择了要查询其中一个标签名和所要查询的时间
段,程序将使用SQL 语句对iH 中的ihrawdata 表进行查询筛选。曲线用MSChart 控件进行
显示。
时间段选择上用弹出小日历供用户选择,可供选择的时间确定到秒。要将曲线显示得更
为详细,可以缩短要查询的时间段。实现的效果图如图5 所示。
140
图5 单个采集点历史曲线示例
3.2 多个采集点历史曲线对比
多个采集点历史曲线对比的功能实现的数据流向与单个采集点是一样的。区别是在
145 ihtags 表取出多个标签点,并根据多个标签点在ihrawdata 表中取出相应的数据,同时MSChart
中Series 对象要分配给每个标签点,使其中的每一个Series 对象对应一个标签点。多个标签
点根据所取的数据,以时间为横轴,具体值为纵轴,呈现出多条曲线对比的形式。C#实现
名称为Chart1 的MSChart 图表控件操作的部分关键代码:
Chart1.Visible = true; //使图表可见
150 Chart1.Series.Add(TagDispcription); //将标签描述加入Chart1 的Series 对象
foreach (Series ser in Chart1.Series)
ser.ChartType = SeriesChartType.Line; //图表类型为线条
ser.CustomProperties = "DrawingStyle=Cylinder"; //Series 对象的自定义属性设置
155 }
//绑定数据点集合,可以将要显示的字段的值绑定到指定的坐标轴上
Chart1.Series[TagDispcription].Points.AddXY(timestamp,value);
以压风机子系统为例,选择查询压风机的风包温度,选定时间段,点击查询后会出现1
号到7 号压风机在该时间段的风包温度对比曲线,如图6 所示。
160
图6 多个采集点历史曲线对比示例
4 结论
本文通过用户和现场的需求分析,利用iHisotirian 采集存储煤矿生产过程中的工况数据,
165 结合Visual Studio 2008 提供的ASP.NET 组件,开发了煤矿工况数据在Web 上的历史曲线,
实现了一个可以查看任意子系统、任意时间段的煤矿工况数据历史曲线及对比功能,为煤矿
工作人员提供科学的决策依据,促进了煤矿企业的信息化。同时本文为iHistorian 与ASP.NET
在Web 上的设计和实现提供了良好的启示作用。
170 [参考文献] (References)
[1] 朱哲君,孙继平.煤炭企业管理信息化特点[J].工业自动化,2010.
[2] 刘胜.iHistorian 在电厂厂级实时监视系统中的解决方案[J].世界仪表与自动化,2003,7(6):56-59.
[3] 金安,姚建刚,姚文峰.基于iH 实时数据库平台的火电厂SIS 建设[J].电力自动化设备,2005,25(2):80-82.
[4] 万力,刘育明,吴军强,等.工业过程监控系统中实时数据库的应用接口技术[J].工程设计学
175 报,2006,13(1):49-53.
[5] 樊源泉,张志鸿.iHistorian 实时数据库访问构件的设计与实现[J].计算机工程与设计,2010,4:907-910.
[6] 刘笑天.生产信息化建设实时历史数据库平台iHistorian[J].测控技术,2003,22(6):69-71.
[7] 尹增明等. ASP.NET Web 应用开发[M].北京:机械工业出版社,2008,213-215.
学术论文网Tag:代写毕业论文 论文发表 计算机论文 代写毕业设计
|