技术频道

系统监控软件的设计和实现

对于一个计算机监控系统来说,硬件是基础,软件是灵魂。软件已经成为计算机系统的主体,在很大程度上决定了系统的先进性、可靠性、实用性以及实时性。信息管理及监控软件是一种特殊的软件,它具有如下特点:
1.要求可靠性特别高。可靠性不仅意味着系统工作的正确性,而且要求系统工作的连续性。例如控制过程不允许中断,系统中各种参数不允许丢失;
2.要求监控软件实时性强。实时性要求系统能够实时反映监测量并及时做出控制决策,即具有较快的响应速度。
3.要求软件的使用和维护方便。信息管理及监控软件主要由工程技术人员和操作人员使用,要求系统的使用和维护都很方便。
4.要求支持数据库安全登录,数据库访问权限和程序使用安全。
5.支持数据库备份和基于事务的数据库操作,数据集中管理并且具有很强的综合统计、分析及报表输出功能。
充分利用计算机的强大的处理能力,设计出实时性好、监测控制高效可靠,软件分析功能齐全,并且具有动画效果、操作界面友好的信息管理及监控软件是本系统的主要任务。
Windows 2000是Windows NT 4.0的升级产品,不但集Windows 9x和Windows NT 4.0的众多优良的功能/性能于一身,而且在稳定性、网络功能和安全性能方面,比Windows NT 4.0都有了极大的改善。它不仅可以在一个小的工作组网络中为用户提供文件服务和打印服务,也可以在一个大型企业的网络中为用户提供应用程序、Web浏览与发布、文件传输、电子邮件和通讯等服务,是一个性能更好、工作更稳定、更容易管理的操作系统。因此上位机采用的操作系统是Microsoft公司的Windows 2000 Server。
由Inprise公司(原Borland公司)推出的基于Windows平台的可视化快速应用开发工具Delphi 6.0在数据库编程方面功能十分强大而且有很强的程序界面开发能力。本控制系统的系统监控软件主要采用Delphi 6.0来开发。
系统监控软件总体结构设计
软件总体设计的任务是确定软件的总体结构、子系统和模块的划分,并确定模块间的接口和评价模块划分的质量,以及进行数据分析。按照软件工程学的观点,软件的总体设计在整个软件的开发过程中处于十分重要的地位。在详细编写代码之前进行总体设计,可以站在全局的高度上,用较少的成本,从抽象的层次上来分析对比多种可能的系统实现方案和最合理的软件结构,从而可以用较低的成本开发出质量较高的软件来。总体设计过程通常由两个主要的阶段组成:
1)系统设计,即确定系统的具体实现方案;
2)结构设计,即确定软件的结构。
软件总体设计的具体步骤如下:
1.提出各种可供选择的方案;
2.对各个方案进行论证,选取合理的方案,对于每个合理的方案都应该有系统流程图、组成系统的物理元素清单、成本效益分析和实现这个系统的进度进化;
3.确定最佳方案,在综合分析对比各种合理方案的基础之上选择一个最佳方案;
4.功能分解。通常分为结构设计和过程设计两个阶段。结构设计确定程序由哪些模块组成,以及这些模块之间的关系;过程设计确定每个模块的处理过程。
5.设计软件结构,将各个模块组织成良好的层次系统;
6.数据库设计,即在需求分析阶段对数据要求所做的分析的基础上进一步进行数据库设计、子模式设计、完整性设计和安全性设计并进行优化;
7.制定测试计划:在软件开发的早期考虑测试问题,能促使软件设计人员在设计时注意提高软件的可测试性;
8.书写文档:应该用正式的文档记录总体设计的结果,在这个阶段应该完成的文档有系统总体设计说明、用户手册、测试计划、详细的实现计划和数据库设计说明;
9.审查与复查:对总体设计的结果进行严格的技术审查,在技术审查之后由使用部门的负责人从管理的角度进行复审。
根据软件总体设计的要求和过程,我们对系统的信息管理及监控程序按不同的功能进行功能分解,划分为不同的模块。供水自动化计算机控制系统的信息管理及监控软件主要包括数据采集和通信、设备状态控制和数据管理三个部分。数据采集和通信部分采集水位、压力、流量、电压和电流等数据,用于记录、存储和分析,以及与PLC网络通信。设备控制部分根据采集到的数据判断系统当前的运行状态,并可通过修改运行参数对设备工作状态进行调整。数据管理部分负责数据的统计、查询以及打印输出,还有数据库的备份和维护。
整个系统具有数据采集、存储和分析功能,并能够通过分析和计算制作相应的数据报表,系统主界面如图3-2所示。下面对各个部分功能和作用进行详细的介绍。
数据采集和通信
数据采集部分由通信参数设定、数据处理、通信模块和数据存储模块组成。
参数设定模块包括传感器参数设定和通信参数设定。传感器参数设定用于设置传感器的采样频率、阀值等。通信参数设定用于设定PC机与PLC之间的通信参数和协议。
数据处理模块用于对从PLC读取的数据按照约定的格式进行分解处理。对于采样数据,运用滤波方法对其进行必要的处理后存入数组。
通信模块包括数据通信和通信测试。数据通信用于从PLC读取各种数据和状态信息以及下达控制命令和各种参数调整结果。通信测试模块具有通信测试和诊断功能,确保通信状态良好。通信测试界面如图4-5所示。在下一章对其进行了详细的介绍。
数据存储模块将采集到的生产过程中的各种重要运行数据加以处理并存入相应的数据库。
设备状态控制
设备状态控制部分由设备参数设定、报警处理、设备状态调整和设备状态显示模块组成。
设备参数设定用于设定各种设备的工作状态参数和运行参数,如变频器的频率上限、调整速度、电机的最高转速等。
报警处理在发生生产故障时立即报警,发出报警声音同时使报警画面闪烁,以引起操作人员的注意。记录报警发生时的有关信息,如报警信息、故障报警时间、确认报警时间等,并对报警信息进行管理。
设备状态调整包括参数优化和其他设备状态调整。其他设备状态调整用于在计算机上对各种生产设备进行运行状态调整以及开动、停止等操作。参数自优化主要是通过PLC反馈的压力和水位自动调整PID参数,下传到PLC中,通过PLC的PID调节功能实现系统的控制;此外还具有重要参数的优化调整功能。只有当系统处于控制状态时,其他设备状态调整才有效,否则无效。
设备状态显示用于动态显示生产过程中的重要设备(如水泵、电动阀等)的启动、停止和故障。水泵电机状态参数显示如图3-4所示。用趋势图的形式动态显示清水池水位、管网压力、取水和供水流量、电压、电流等。操作人员通过状态显示流程图就可以很方便的了解生产中各种设备的工作状况。
数据管理
数据管理部分包括数据查询、数据备份和数据输出三个方面。
数据查询模块主要包括历史数据查询,查询选择画面如图3-5所示。历史数据查询包括管网压力历史数据、水位历史数据、取水和供水流量历史数据、电耗表等,还可查询重要设备的运行参数、状态、操作记录以及报警的历史记录。
数据备份模块负责各种数据库的备份以及维护。信息管理及监控软件会定期将数据库备份到另外的目录下保存,并将当前使用的数据库清空。该操作可由管理员手工执行和设定。
数据输出模块负责各种数据及指标的分析和汇总,并生成报表和打印输出。软件能够根据选定的日期和数据类型生成日生产报表、月生产报表、年生产报表、电耗表等,同时还能以直观的图的形式和报表的形式打印。
此外,本系统还具有操作权限控制功能,采用分级密码控制访问者的访问权限。
数据库设计
供水系统的信息管理及监控软件是以数据库为基础建立的信息系统。数据库管理系统既要具有较高的性能,又要具有兼容性和适应性。根据需要解决的的企业管理问题和生成报表的格式,并考虑当前企业所使用的数据记录表格,本系统采用关系型数据库结构。

数据库设计的原则
数据库逻辑设计,即如何构造合适数据模式(逻辑结构)问题时数据库设计中的关键问题。一般来说,数据库逻辑结构的设计需要满足规范化的前3级标准:
第1规范:没有重复的组或多值的列,并且字段的类型不随记录而改变。
第2规范:要求所有字段包含依赖完整主键的数据,即每个非关键字段必须依赖于主关键字,不能依赖于一个组合式主关键字的某些组成部分。
第3规范:要求不存在传递依赖关系,即一个非关键字段不能依赖于另一个非关键字段。
遵守这些规则设计的数据库会产生较少的列和更多的表,因而也就减少了数据冗余,也减少了用于存储数据的页。但表关系也许需要通过复杂的合并来处理,这样会降低系统的性能。某种程度上的非规范化可以改善系统的性能,非规范化过程可以根据性能方面不同的考虑用多种不同的方法进行,下面的一些方法可以有助于性能的提高。
1、如果规范化设计产生了许多四路或更多路合并关系,就可以考虑在数据库实体(表)中加入重复属性(列)。
2、所用的计算字段(如总计等)可以考虑存储到数据库实体中。
3、重新定义实体以减少外部属性数据或行数据的开支。
相应的非规范化类型是:
① 把一个实体(表)分割成两个表(把所有的属性分成两组)。这样就把频繁被访问的数据同较少被访问的数据分开了。这种方法要求在每个表中复制首要关键字。这样产生的设计有利于并行处理,并将产生列数较少的表。
② 把一个实体(表)分割成两个表或多个表(把所有的行分成两组或多组)。这种方法适用于那些将包含大量数据的实体(表)。在应用中常要保留历史记录,但是历史记录很少用到。因此可以把频繁被访问的数据同较少被访问的历史数据分开。

数据库的建立

数据库用于保存系统运行过程中的一些信息。信息管理及监控软件的主要数据信息包括:与设备有关的数据,如水泵电机参数、电机运行状况记录等;与生产有关的数据,如管网压力、清水池水位、进水流量、出水流量、耗电量等;与系统运行有关的数据,如工作人员、访问权限、系统参数设置等都要保存到数据库中。
下面我们列出部分表的主要结构:
1、水泵电机参数表:用于存储一级、二级泵房所有水泵电机的各种基本数据。
bh * 数字(长整型) 编号 水泵电机的统一编号
scwz 文本(20) 所处位置 水泵电机所处位置
jzh 文本(20) 机组号 现场的机组编号
sbxh 文本(10) 水泵型号
yc 文本(10) 扬表5-1水泵电机参数表
程 水泵的设计扬程
ll 文本(10) 流量 水泵的额定流量
sbzs 文本(10) 水泵转速 水泵的额定转速
jzxh 文本(20) 电机型号
gl 文本(10) 功率 电机的额定功率
djzs 文本(10) 电机转速 电机的额定转速
dl 文本(10) 电流 电机的额定电流
2、表3-2电机运行状况表:用于记录电机的工作状态以及操作记录
字段名称 数据类型 意义 备注
bh * 数字(长整型) 编号 水泵电机的统一编号
rq 日期 日期 水泵电机所处位置
sj 时间 时间 发生该项操作的时间
zt 文本(10) 电机状态 状态如何改变
pl 文本(10) 运行频率 水泵的设计扬程
3、表3-3报警记录表:用于记录系统运行过程中的各种报警信息
字段名称 数据类型 意义 备注
ID * 数字(长整型) 记录编号 水泵电机的统一编号
rq 日期 报警日期 报警的日期
sj 时间 报警时间 报警事件发生的时间
bjly 文本(20) 报警来源 哪个设备报警
bjyy 文本(50) 报警原因 报警的原因
bz 文本(100) 备注 关于事件的说明
4、表3-5流量记录表:用于记录每小时的供水量,到整点时记录一次,并可统计一天的总流量。
字段名称 数据类型 意义 备注
bh * 数字(长整型) 编号 记录编号
rq 日期 日期 记录日期
q1 文本(20) 记录时间(1:00) 一小时的出水量
q2 文本(20) 记录时间(2:00) ...
... ... ... ...
q23 文本(20) 记录时间(23:00) ...
q24 文本(20) 记录时间(0:00) ...
Qa 文本(20) 当天总流量 出水总量
5、工作人员信息表:存储可以使用系统的工作人员(系统管理员、系统操作员)信息及其登陆密码。表3-6工作人员信息表
字段名称 数据类型 意义 备注
rybh * 数字(整型) 工作人员编号 开头两位数字为00表示系统管理员;01表示系统操作员。
如:00001表示1号管理员
xm 文本(10) 姓名
xb 文本(2) 性别 0表示男;1表示女
mm 文本(20) 密码 初始值与工作人员编号相同
监控软件结构设计
由于本系统用于连续监测和控制自来水厂的生产过程,系统采样时间长、采样数据量大,而且采样过程和数据的传输需要在一定的时间内完成,否则会因为计算机处理不及而造成采样数据丢失或者采样终止。同时系统还要响应随时可能出现的状态调整和数据查询、打印等操作,不能因为采样和数据处理而导致系统出现停顿和迟缓的现象。为了解决这个问题,我们采用了多线程编程技术,使监控系统和数据采集通信系统并行运行,从而保证了整个监控系统的正常运行。监控软件结构框图如图3-6所示。
系统启动后,首先创建通信线程并立即执行,定时发送读取数据命令给各个现场的PLC。接收到PLC发送的数据后存入相应的数组,由数据处理程序根据约定进行处理和判断,同时将数据存入数据库并实时更新设备状态显示界面中的相应数据和图表。通信程序框图如图3-7所示
实时监控软件处于一个动态的环境之中,各种数据在不断的刷新更改,系统需要根据数据的变化不断的进行处理和决策,因此对于数据的处理必须做到及时准确。采用了多线程编程技术以后,系统具有较高的运行效率,应用效果较好。
小结
信息管理及监控软件在控制系统中作为人机交互界面,具有很重要的作用。通过和控制系统的集成,信息管理软件可以对所采集到的数据进行综合分析和统计,改变传统的管理模式。本章对控制系统的重要组成部分的信息管理及监控软件的设计和实现进行了研究,对设计和实现中的关键问题(例如软件结构设计、模块的划分、主要界面设计等)进行了详细的分析和研究。
1.根据软件设计的要求和系统的实际需求,设计了信息管理及监控软件的结构,并进行了模块功能的划分。
2.数据库的设计是监控系统中重要的一环,本章对数据库的设计原则和设计规范进行了分析,并在此基础上设计并建立了监控系统数据库的主要部分。
本系统采用Delphi6.0实现了信息管理及监控软件的设计,通过现场的调试和应用表明,该软件集数据采集、分析和生产管理于一身,功能强大,使用方便。


文章版权归西部工控xbgk所有,未经许可不得转载。