你现在位置:首页>技术论文>软件知识>正文
Wincc报警过滤
日期:2009-5-3 23:36:03 来源:互联网  
点击: 作者:
点击【】放大字体.
WWcW_PLCJS_COM-PLC-技.术_网

去年参加wincc7的一个介绍会,曾经提到了wincc7的报警增加了所谓的高级过滤功能,即面对大量的报警导致关键的报警被淹没,wincc7提供了一种智能化的过滤策略。前段时间参加了pcs7V7的介绍,也提到了这个功能。事实上在以前的项目里面很少会想到做报警过滤的功能,用户也基本上没有这方面的要求,在实际运行过程中,一般都是一页一页的翻看过往的报警。而在事故的时候,系统产生的报警特别多,此时要找出有用的报警就需要耐心和细心了。又或者一个大型系统,很多设备但是集中监控,那么就可以按照设备和区域来显示各自的报警。现在想想,有时候报警过滤应该是很有用的,比如按类别过滤,按时间过滤,按报警文本内容过滤以及综合几个条件进行过滤等等。
WWW_PLC※JS_COM-PmLC-技.术_网

——可——编——程——控-制-器-技——术——门——户

手上的机器没有按照wincc7,不过wincc6的报警过滤应该是可以简单实现的。搜了下西门子网址,果然有个编号为5668269的条目解答了这个问题,即对报警控件的msgfiltersql属性进行改写。例子里面是用c脚本写的,我测试的时候改用vbs,看上去要少敲点字母:) ,例如:
WWW_PLCJS@_COM%-PLC-技.术_网

WWW_PLC※JS_COM-PmLC-技.术_网

ScreenItems("algwinccCtrl").msgFilterSql="#VisibleOnly\\CLASS IN(1)"
——可——编——程——控-制-器-技——术——门——户

WWcW_PLCJS_COM-PLC-技.术_网

这种写脚本的方法比较灵活,如果仅仅是固定显示某一类报警,则可以直接组态报警控件,其实质就是给msgFilterSql属性赋值(在组态窗口里面可以看到形如上面的class in 语句)。此外在运行窗口中也可以点击工具栏上的按钮选择报警,我想大多数用户不会用到此功能,毕竟这个工具栏看上去不是那么简单易用。
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

此外,在该FAQ中也提到“注意:在"LIKE"语句上和普通的SQL语法不太相同。在LIKE语句中,您一定不要使用字符"%"作为通配符。”很显然,由于wincc的报警数据库并不是简单的sqlserver,而是基于sqlserver开发的引擎,所以常用的sql语法未必能通用!!!由此再次想到报警过滤说白了就是一次数据库查询,而由于wincc报警数据库的特殊性,导致了。。。。如果能够把报警(还有趋势)这类数据都放到一个单独的、较为开放的实时数据库里面,那么报警过滤这种问题简直就是个小case了吧。不过话又说回来,实时数据库的成本也不是一般的小系统能吃得消,还是大型系统采用这种架构或许会比较方便和强悍吧。
评论内容
载入中...
载入中...
P
L
C



|










|


P
L
C









·最新招聘信息
·最新求职信息
·推荐产品
·推荐厂商
·栏目热门排行
·站内热门排行