基于.NET的管道SCADA维护数据管理系统的设计与实现
摘 要:针对目前SCADA维护中心存在的工作量大、重复工作多、工作效率低等问题,利用计算机智能化的生成、处理数据,并在长期工作经验的基础上,编制一套管道SCADA系统。该系统提供了“所见即所得”的友好界面,能够使使用者快速、精确的将数据录入并实时的处理数据,最后利用COM组件和文件流的思想,快速、准确的生成满足要求的word报告和Excel报告。
【关键词】数据管理 报告出具 COM组件 管道SCADA
1 引言
目前管道SCADA系统维护工作主要以人工为主,由于每年的维护工作量大,并是人工手工完成,效率低。通过开发SCADA维护数据管理系统,能够有效提高基层设备维护、测试、数据记录和数据校验的工作效率,提高管道SCADA维护计划的安全、有序和高效地实施。
文中以中石化管道SCADA维数数据管理系统的研发为实例,介绍了开发该系统使用的.关键技术,阐述了该系统数据库的设计和各个功能模块的实现。
2 关键技术
2.1 软件复用技术
所谓软件复用是指利用现有的软件成分(资源)来构造新的软件系统。该软件成分可能是已有的软件,也可能是专门开发设计的可复用的软件构件。
2.2 组件对象模型(COM)技术
组件对象模型(eomponentObjeetModel,COM)是由微软公司创建的一种二进制和网络标准,遵循这一标准开发的组件之间可以跨进程、跨机器、跨语言甚至跨操作平台进行通信。
2.3 基于标签技术的Word报告生成技术
该技术是通过真正的COM技术,将 Office 软件目录中文件 MSWORD11.OLB 中的类库全部导入到 C#.net 中,利用 COM技术编程,便可以在源码中使用各种操作函数来操作 Word。
3 系统设计
3.1 业务模型设计
依据管道SCADA系统维护流程,采用面向对象思想对系统业务模型进行描述,业务模型如图1。
3.2 数据库设计
根据客户方要求,数据库设计需要每个区域每种类型的数据分开存储,以防数据混乱,但基本就分为四类:字典数据库、静态数据数据库、子表数据库、测试相关人员数据库。
4 系统实现
4.1 数据录入
遵循“所见即所得”的思想,主要的录入界面与报告证书界面保持高度一致,这样每个页面就代表了一个报告,为了更方便用户使用,我选择了用树形结构的菜单。子表数据的录入使用了DatagridView控件。
4.2 数据查询
本系统采取的措施为,将每个功能模块需要查询的属性列名存储在字典数据库中,当我们指定了某个功能模块后,就可以在数据库中查询需要被查询的属性列名。这样不仅有效的达到查询的目的,还使代码量减少。
4.3 报告出具
本系统一共实现了两个类型的报告:Excel报告与Word报告。
4.3.1 Word报告出具
由于word本身是一个实现了自动化的COM组件,所以我们可以用C#语言和其提供的结构来访问和操纵Word文档。具体实现步骤如下:
(1)生成word程序对象。
(2)指定word模板路径。
(3)生成word文档对象并打开模板文档。
(4) 获取模板中的所有书签。
(5)给所有书签赋值。
(6)保存word文件。
4.3.2 Excel报告的出具
Excel报告的出具有两种方案可以实现。一种是基于流和COM组件的操作,一种是只基于COM组件的操作。考虑到效率,我们选择后者,实现步骤如下:
(1)获取到处的数据表。
(2)将所有满足要求的数据以流的形式全写入一个excel中。
(3)生成Excel程序对象。
(4)定义一个新的工作簿。
(5) 打开模板工作簿(此模板可以说一个空的excel文档,不起到任何作用,只是提供了一个载体而已)。
(6)得到一个sheet。
(7)将数据分割为一个一个的报告,并循环填充表格的表头(可适当的增减行列,以达到需要的目的)。
(8)另存为。
(9)退出Excel,并且释放调用的COM资源。
5 结束语
系统从SCADA维护中心本身出发,根据其工作流程及计算机的实现技术,充分考虑SCADA维护中心获取数据的方法与流向,使系统设计更为合理。开发过程遵循“方便实用、能解决问题,能够满足用户需求”的根本原则,综合考虑数据库设计,数据库建设以及软件开发相关理论采用“高内聚低耦合”的原则,从科学、实用的角度划分模块。此系统的成功开发,将进一步规范评价工作,大大提高工作效率。
参考文献
[1]文本颖,谈顺涛,袁荣湘,赵小利.基于COM技术的SCADA系统数据库设计与实现[J],2004(07):19-22.
[2]孙静静.基于标签技术的WORD只能报表的研究[D].中国海洋大学,2013(05).
【基于.NET的管道SCADA维护数据管理系统的设计与实现】相关文章: