《行列视》在我们厂已经部署了一周的时间,研究的也差不多了,准备着手做点东西,第一个要干的就是基于自身的需要,对厂级监控信息系统(SIS)的“数据采集接口状态监视”进行下手。
厂级监控信息系统(以下简称SIS系统)在国内火力发电厂普遍存在,并作为火电厂必备信息系统存在。SIS系统的主要功能包括生产过程数据采集、生产过程实时监视、优化运行及生产过程管理等内容,是厂内MIS(管理信息系统,Management Information System的简写)和DCS(分布式控制系统,Distributed Control System的缩写)的桥梁和纽带,在数据资源共享、系统安全保护、实现全厂范围内管控一体化过程中发挥着重要作用,越来越受到发电行业的高度重视。
其中生产过程数据采集部分,又是整个SIS系统的基础,也是厂内所有基于生产数据的业务应用的主要数据来源,也是集团、政府、行业对发电企业进行监管的数据来源,其重要性不言而喻了。如果数据中断,不但解决起来比较麻烦,而且信息部门和热工部门担负的责任越来越重,超过一定时间还要罚款、扣奖金。为此,很早我就想做一套系统,能够实时监视SIS系统所有的数据采集接口、SIS服务器运行状态、数据刷新情况,做到数据中断及时发现。基于《行列视》,经过近一周的学习和测试,在厂家的帮助下,基本搞定,现在分享给大家。
1. 准备工作
准备工作很重要,也是比较耽误时间的,主要包括:收集SIS系统的接口数量和接口名称、关键测点、辅助判断测点、验证测点,关键测点大家都知道,就是某个接口中主要的测点,通过这个测点基本上就可以判断数据采集是否正常,辅助判断测点是在主要测点监测的基础上进一步判断,再加上一个测点进行验证,基本可以断定一个接口的数据采集状态。
一般这些信息在电厂的信息部分都有,并且还是作为重要资料进行保存的,我们单位的接口信息列表如下图所示:
接口信息
测点信息根据我对业务的了解,并询问了一下厂家,确定如下测点:
加上测点
这些工作基本上在Excel中完成,并计划把这张报表页面做成一张实时刷新的报表,放在办公室大电视屏幕上实时展示,为了更加直观展示接口状态,我在报表中展示两个值:实时值和接口状态,并用颜色强化展示。接口状态是一个逻辑计算值,详见后面介绍。
2. 创建报表
创建报表的过程我就不介绍了,前期的文档都已经介绍过,就是采用系统提供的新建向导,完成基本信息填写、报表模板的上传工作。初步完成后如下图所示:
新建报表
选择Excel模板上传,形成报表设计模板。
上传Excel模板
3. 关联测点
创建完成报表后,就需要连接PI实时数据库关联测点了。我这儿就以#1DCS接口为例介绍。
#1机组有功功率测点:DCS01:MW
选中放置实时值的单元格,利用系统提供的公式辅助界面,将公式放置到指定的单元格。
设置实时值
设置完后如下图所示,调整实时值为默认两位小数。
默认显示和双击后的公式展示
接口状态显示,采用#1机组有功功率的逻辑计算值,主要状态包括“正常”(显示为空)、“停机”和“拉直线”,如果是停机,很多数据异常属于正常,如果没有停机,然后数据一直不变就定义为拉直线,此时代表异常(需要人工进一步确认)。做到这两个状态,就基本就满足了SIS维护人员的需求了。其原理:
如果实时值小于10,定义为“停机”;
如果实时值大于10,并且前十分钟内的最大值和最小值相等则定义为数据不变(拉直线)。
根据以上原理,我们就形成了接口状态判断条件:
获取前十分钟最大值:=GETV("MR"," DCS01:MW ","RS-10F","RS","0","max")
获取前十分钟最小值:=GETV("MR"," DCS01:MW ","RS-10F","RS","0","min")
接口状态判断逻辑:
=IF(D4<10,"停机",IF(EXACT(GETV("MR"," DCS01:MW","RS-10F","RS","0","max"),GETV("MR"," DCS01:MW","RS-10F","RS","0","min")),"←拉直线"," "))
其中RS表示当前时间,RS-10F表示十分钟前,具体规则可以参考使用说明,IF语句就不介绍了,和Excel一样。
状态逻辑判断
同理,将其他单元格按照上述方法将测点进行关联,完成模板设计。
模板截图
截至到目前,我们离目标就近了,剩下的工作就是数据验证和报表优化了,接下来我们先看一下当前模板下发布的样子。
4. 功能发布
发布前不要忘了保存,网页版很容易丢东西,虽然系统有自动保存,但是为了保险起见,最好主动保存。保存后返回报表首页,找到我们的报表《SIS接口状态监视》进行浏览。
报表发布
为什么都是一样的数呢,很简单,我设置的都是#1DCS的有功功率测点,防止大家把我的家底都看去。
5. 优化完善
看到了发布后的样子,那我们再优化一下,把时间加上,把界面再调整一下,去掉行标、列标、多sheet页标签、多余的行列线,空留出两列把报表居中。
界面优化内容
调整完后,顺便我把#3DCS的有功功率和供热主站的测点加上了,当前为停机状态,尚未供热。我们看一下发布后的样子。
后话后的报表展示
6. 总结
估计今天我就能把整个页面调整完,并完成发布,感觉还可以,至于界面的美观问题不是我关注的,先解决问题。另外系统内置了一些功能都比较实用,我这儿就介绍一个,就是查看某个单元格中测点的历史趋势,如下图所示。
基于单元格的趋势功能菜单
过程数据趋势分析
该功能可以很方便确认接口是否正常,如果做其他报表也是十分实用的,如果单元格的数据能够触发移动报警就更好了。
今天就写到这儿吧,抛砖引玉,大家可以根据自己的需要设计自己的数据展示页面或报表,希望对大家有所帮助。