基于.NET架构的实时数据库状态监控系统的设计与实现
2014-04-29方国平
方国平
[摘 要] 基于Aspen公司InfoPlus.21实时数据库多年的运维经验,针对运维中常见问题和用户需求,利用微软.NET2.0架构通过ODBC访问实时数据库,实现数据采集、处理、存储、综合分析和报警的监控系统,详述了设计方法,分析了关键技术。该系统充分运用了.NET 2.0的成熟开发技术,IDE开发环境和C#编程语言。运行结果表明,该系统具有较高的实用性和可扩展性。
[关键词] .NET;实时数据库;ODBC;报警
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2014 . 17. 021
[中图分类号] TP315 [文献标识码] A [文章编号] 1673 - 0194(2014)17- 0033- 03
1 引 言
InfoPlus.21是Aspen公司的实时数据库软件,是用于集成生产过程信息(如各种工艺参数)与上层应用程序(如先进控制、优化、过程管理)的基础数据平台,InfoPlus.21遵循开放原则,性能稳定、可靠。InfoPlus.21可通过多种方式的过程数据接口将DCS、PLC、SCADA及其他实时数据采集到实时数据库中。它有功能强大的数据定义、历史数据管理和分析功能,通过使用Aspen提供的PE绘制图形化的工艺流程实时数据显示界面,用户不仅可以通过IE以Web方式浏览工艺流程实时数据,而且可通过IE任意组合查询多个位号的历史趋势,为用户提供了一条远程集成访问和分析装置工艺生产情况的快捷通道。
InfoPlus.21作为实时信息管理系统,它支持多线程、C/S结构和B/S结构,特别是它灵活的数据结构可以根据应用的需要重新定义以适应各类应用的需求,同时可利用ODBC与关系数据库进行数据交换。由于丰富的经验以及在实时数据库系统技术方面的领先地位,使得实时数据库可以与世界上大多数的DCS及PLC集成在一起。该软件广泛应用于炼油、金属冶炼、造纸、石化、制药等行业。
2003年某企业实施了Aspen InfoPlus.21实时数据库,涉及企业9个生产单位的50多套装置,实现了实时数据采集和监控,工艺点数已达到23 000点;但随着系统规模的扩大,维护的工作量也越来越大。实时数据库系统如何长周期、可靠运行成为突出问题。在日常运维过程中,主要遇到3类问题:一是系统硬件或软件出现问题,具有偶发性,不能提前预知;二是从50多套装置、2 000多幅流程图中找出故障点,既费时又费力;三是出现故障往往先是由用户反映出来,IT人员不能主动察觉。针对上述问题,企业提出开发一套基于.NET 2.0架构的实时数据库状态监控软件,以实现实时数据状态的7×24小时不间断监测,并即时发出报警,为实时数据库的维护发挥作用。
2 系统设计
InfoPlus.21由数据库内核、接口、各类工具包组成,InfoPlus.21系统结构如图1所示。
.NET技术是微软用来实现XML,Web Services,SOA和敏捷性的技术,监控服务器安装微软的.NET 2.0开发程序,.NET是微软的新一代技术平台,为敏捷商务构建互联互通的应用系统,这些系统是基于标准的、联通的、适应变化的、稳定的和高性能的。从技术的角度,一个.NET应用是一个运行于.NET Framework之上的应用程序。更精确地说,一个.NET应用是一个使用.NET Framework类库来编写,并运行于公共语言运行时(Common Language Runtime)之上的应用程序。
为了实现对实时数据库的即时监控和报警,状态监控系统采用成熟的三层架构即:表现层、业务逻辑层和数据访问层构建。数据访问层包括通信和数据转存,采用了ODBC与实时数据库进行通信,通过SQL Server 2005进行数据储存。业务逻辑层采用Visual C# 2008实现,通过后台多任务方式连续采集各装置的关键点数据,并进行加工处理,调度周期是5分钟采集并处理一次。表现层如查询、报警、趋势图显示在Web界面实现。监控系统物理结构如图2所示。
系统基于在用的InfoPlus.21实时数据库,由监控服务器和客户端组成。实时数据库是系统的数据源,与监控服务器同属局域网内的一个域中。为了节省资源,监控服务器采用VMware虚拟机实现。VMware在虚拟化和云计算基础架构领域处于全球领先地位,所提供的经客户验证的解决方案可通过降低复杂性以及更灵活、敏捷地交付服务来提高IT效率。VMware使企业可以采用能够解决其独有业务难题的云计算模式。VMware提供的方法可在保留现有投资并提高安全性和控制力的同时,加快向云计算的过渡。通过VMware虚拟出的服务器分配4核CPU,4G内存,500G硬盘,硬件资源可根据将来应用要求自由扩展。既便于维护,又节省了费用。
为了向用户提供便捷的查询服务,通常使用Web Server。为此,监控服务器安装有微软的Windows 2003 Server操作系统和IIS 6.0服务,该虚拟机既是数据库服务器又是Web服务器,并负责向外提供查询服务。服务功能包括数据查询、报警、趋势图显示等,客户端只要安装IE 6.0及以上版本浏览器就可以了。
3 关键技术
3.1 InfoPlus.21实时数据库的访问方式
通常InfoPlus.21实时数据库的访问方式主要有以下3种:①使用实时数据库提供的API。这种方式效率最高,开发简单,但需要安装Aspen提供的库文件。②使用ODBC。大部分实时数据库提供了标准的ODBC接口,也提供了SQL查询语言,通过这些方法,用户可以将实时数据库当作一个标准的数据库来使用。但这种方法速度较慢,适合于对关系数据库比较熟练的用户。③使用OPC方式(OLE for Process Control)。因为太多的数据库和DCS使用自己的API方式存取数据,无法做到算法的通用,为此工业监控领域提出了一个标准的存取接口,这就是OPC,如今有超过200家厂商加入到OPC组织中。OPC方式需单独开发一个客户端程序,利用软件包或标准OPC开发规范均可,但对开发人员的技术要求较高,目前仅适合微软的Windows平台。
考虑到接口的开发效率和易用性,采用ODBC存取,OLEDB是微软基于COM的一个数据库访问接口标准。使用InfoPlus.21 ODBC,用户能够像访问关系数据库一样访问InfoPlus.21系统。基于ODBC的数据接口程序和客户端应用程序,可利用标准的SQL语句访问InfoPlus.21数据库,包括IP Archive、IP Point Database或其他配置数据。InfoPlus.21的ODBC是基于SQLplus的,SQLplus有如下特点:①可查询实时数据库,历史信息以及组态信息;②可对关系数据库和文本文件集成访问;③可对数据进行排序和更改,并将来自实时数据库和关系数据库的数据进行合并和连接;④过程式SQL语言可进行更加复杂的查询或应用开发、生成报告、进行数据库维护及编写应用脚本;⑤客户/服务器体系可以实现办公室和住所PC机的远程查询;⑥支持大量的ODBC客户应用,可方便地建立报告和查询。
3.2 开发配置
系统在开发前首先必须安装实时数据库访问组件和开发包,并进行必要的配置。
(1)安装组件,在监控服务器虚拟机上安装ODBC组件,该组件名为IP21ODBC.DLL。先将该组件拷入“c:\windows\system32\”文件夹中,再利用“resver32 c:\windows\system32\ip21odbc.dll”进行注册,然后打开系统控制面板,在其中找到“数据源(ODBC)”,打开窗口,就可找到Aspen的驱动了,再进行配置,其配置界面如图3所示。
(2)在监控服务器虚拟机上安装SQL Server 2005,安装完毕,在系统中通过手工或SQL语句建立数据库monitor,在数据库上分别建立Alarm、Checkdb、Display、Hisdata等数据库表。Checkdb是主表,里面存放有各装置工艺位号与实时数据库点位号的映射关系和对应装置描述,目前各装置取3个点,逻辑上以三取二标准,3个关键点需两个以上出现故障才报警。
(3)在监控服务器虚拟机上启用IIS 6.0程序,在默认网站下建立虚拟目录和应用程序名,由于Web服务是采用微软的.NET2.0架构,需对Monitor虚拟目录属性添加应用程序,确保asp.NET版本为2.0.50727,否则.NET 2.0无法工作。
(4)最后在Visual Studio.Net 2008集成环境下进行C#开发,开发的模块分为实时数据库监控处理模块和Web展示模块,这两个模块分别设计。前者用Windows窗体客户端程序实现,后者用Web应用程序实现。监控具体过程为:实时数据数据库监控处理模块每5分钟进行一次任务调度,从Checkdb表中取出装置的对应记录,调用ODBC从实时数据库中取出当前数据,然后利用该位号从历史库中取出一定时间段内数据序列。对数据序列进行求和、求平均,如果平均值一直等于先前的实时值,则表明该装置的点数据没有变化,可能有问题,通知程序待查,否则正常。如果该装置的3个关键点有两个以上都没有变化则提示报警,同时将报警状态和时间写入SQL Server 2005数据库中,供Web程序调用。各装置的关键点非常重要,最好能取温度、压力等易变化的位号。
(5)在设计过程中,通过ODBC取实时数据库的数据时要注意3点:一是实时数据库针对现场工艺情况一般分为pv点和pid点,其历史库的字段名不一样。pv点的字段名是ip_trend_value,而pid点是pv_trend_value;二是在历史库中,对应pv和pid点,其数据库的日期字段分别是pv_value_time和ip_value_time; 三是InfoPlus.21对日期格式的表示是“日-月-年”,且月份用英语的缩写表示,如2014年4月1日则表示为“01-APR-14”。
(6)Web程序设计模块直接利用Gridview控件进行历史数据展示,为了同步显示该关键点的曲线,利用微软的GDI程序,先在内存中建立窗口画板,将曲线在缓存中画出,然后利用Web技术的response对象将GDI中的图形流直接输出到客户端,这样浏览器直接将曲线显示出来,由于没有采用原有的先将图形生成存入服务器,然后再用HTML的展示图形的方法,而是采用了GDI,提高了曲线的显示速度。
(7)实时数据库的上位机是CIMIO数据采集机,该机器是为了将底层的DCS及仪表的数据通过OPC方式采集到实时数据库的中转基站,它的运行好坏直接影响实时数据库的使用效果。经过研究发现:实时数据库中的IOGET任务与CIMIO机器是通过多个进程进行通信,其运行和通信状态是可以通过SQL方式查询的,在SQLplus中通过以下语句就可以查询并监控:select name,io_last_status from iogetdef where io_last_status='CIM I/O Error'。
4 系统实现
系统运行一年多以来,处理技术不断提高和完善,满足了实时数据库系统故障报警的即时性要求,为处理系统故障预留了保贵的时间。一是该监控系统在开发过程中通过优化技术,保证了其性能和功能,如每套待监控的装置,通过与工艺人员反复沟通、测试,取温度、压力、流量3类关键点;二是对装置位号渐变的判定算法最终修改为:通过取一定时间内的最大值与最小值比较,若差值在某个很小的范围内则认为没有变化,反之,其差值大于给定的范围,则认为有变化。三是监控核心程序采用.NET的多线程Thread技术,并考虑到异步与线程间的通信。四是预设了短信功能接口,若今后需要短信通知功能,则仅配置接口即可。
实时数据库监控系统为一个集C/S与B/S架构的用于运行维护管理的在线系统,目前主要实现的功能有:InfoPlus.21实时数据库运行状态监测,各主要装置OPC通信连接状态监测,装置位号的添加、删除、修改维护,监测点的历史数据及趋势图查询,Web页面文字报警,发送邮件到指定用户的报警,短信通知报警接口,监测数据的历史追溯等。
5 结 语
实时数据库状态监控系统的实现给实时数据库的深层次应用带来了质的飞跃,解决了通过人工方式进行监控所带来的耗时、费力、响应慢等问题,改进了系统的维护方式,提高了系统故障的响应及时性,改变了用户提醒维护的被动局面,变事后反馈为主动预警。尤其今后短信功能的增加将大大提高该系统的实用性,方便了用户,也为各类系统的监控开发应用进行了有益探索。
主要参考文献
[1]张志檩.实时数据库原理及应用[M].北京.中国石化出版社,2001.
[2]陆会明,朱耀春.控制装置标准化通信——OPC服务器开发设计与应用[M].北京:机械工业出版社,2010.
[3]马伟.ASP.NET 4.0权威指南[M].北京:机械工业出版社,2011.