如何使用WinCC Alarm Contro的”MsgFilterSQL”属性执行一个SQL语句来过滤显示消息?

说明:
这个条目使用一个例子来展示在WinCC Alarm Control中如何通过动态化WinCC Alarm Control的“MsgFilterSQL”属性来设置以下的消息过滤。使用消息过滤,则只有如下的这些消息能够被显示:n

  • 消息类别为"Class 1" ("错误"), "Class 2" ("警告") or "Class 4" ("PLC过程控制信息")。n
  • 在用户文本块tb1("source")中包含有字符串"TI4711"。n
  • 在用户文本块tb2("area")中包含字符串"area1"或者"area2"。n
  • 未被隐藏的(隐藏消息这个选项在WinCC V6.2或者以上版本提供)。

下面的图中所示的脚本将"SQL-where-clause"赋值到WinCC Alarm Control的"MsgFilterSQL"属性中,这样只有需要的消息才会被显示出来。n

如何使用WinCC Alarm Contro的"MsgFilterSQL"属性执行一个SQL语句来过滤显示消息?
Fig. 01

详细的信息在WinCC Information System下能够找到"Working with WinCC > Setting up a Message System > Display of Messages during Runtime > SQL Statements for Filtering of Messages in Alarm Control".n

下表描述了所使用的SQL语句的结构:

No. Description
1

"#VisibleOnly"
在WinCC V6.2或者更高版本,
隐藏消息成为可能。为了能够只显示隐藏消息或者只显示可见消息有两个控制字符串: "#VisibleOnly""#HiddenOnly". 因为在"C"语言中""是一个特定字符,在C字符串""中表示""。n

  • 控制字符串"#VisibleOnly"和"#HiddenOnly"能够在SQL语句的开始或者结束处使用。n
  • 使用控制字符串"#VisibleOnly"则可见消息被显示。n
  • 使用控制字符串"#HiddenOnly"则隐藏消息被显示。n
  • 如果您不使用"#VisibleOnly" 和"#HiddenOnly" 控制字符串,则可见和隐藏消息都将被显示。

注意:
SQL语句包含了"Selection"对话框的设置。在WinCC V6.2或者更高版本,SQL语句还包含了"Display options"对话框的设置.这两个对话框互不影响。可在"Non-displayable SQL statements"部分查看注意事项.

2"CLASS IN(1,2,4)"
通过这个语句,只有属于消息类别"Class 1" ("错误"), "Class 2" ("警告") or "Class 4" ("PLC过程控制信息")的消息才会被显示。消息类别通过类别号来指定。在报警记录编辑器中,您可以在每一个消息类别的"Configure message classes"对话框查看该消息类别的类别号。
3"AND TYPE IN(1, 2, 19, 20, 55, 56)"
这部分语句用来扩展过滤条件。只有消息类型是"Type 1", "Type 2", "Type 19", "Type 20", "Type 55"或者"Type 56"能够被显示。消息类型使用消息类型号来指定。在报警记录编辑器中,您可以在每一个消息类型的"Type"对话框来查看该消息类型的类型号。 n

注意:
因为,在这个例子中没有精确的过滤标准,这部分语句不能够在SQL查询中直接使用来实现相同的效果。然而,注意下表中的第二行注意事项。

4"AND TEXT1 LIKE 'TI4711'"
这部分语句用来扩展过滤条件。只有在用户文本块"TB1"中包含有字符串"TI4711"的才会被显示出来。 n

注意
在"LIKE"语句上和普通的SQL语法不太相同。在LIKE语句中,您一定不要使用字符"%"作为通配符。

5"AND TEXT1 LIKE 'TI4711'"
这部分语句用来扩展过滤条件。只有在用户文本块"TB2"中准确包含字符串"area1"或者"area2"的消息才会被显示出来。 n

注意:
然而,注意下表中相关注意事项。

Non-displayable SQL statements:
如果消息过滤通过SQL语句来定义,有可能出现这样的情况:在WinCC Alarm Control的"Selection"对话框或者"Display options"对话框中消息过滤设置不能显示。如果这样的一个过滤条件在WinCC Alarm Control中激活,随后当您打开"Selection"对话框或者"Display options" 对话框,您将看到说明当前的选择不能在选择对话框中显示并且将被丢弃的消息提示框。n

如何使用WinCC Alarm Contro的"MsgFilterSQL"属性执行一个SQL语句来过滤显示消息?
Fig. 02

下表描述了在运行模式下获得需要的消息SQL过滤条件,但是在WinCC Alarm Control控件不能在选择对话框显示的。n

No. 描述
1 "用户文本块中的IN语句"
使用Using the IN操作您能够为一个普通的用户文本块定义作为过滤条件的合法的多重文本。例如,使用该方法您可以定义一个显示多重区域 (例如:子系统A或者子系统B) 消息的过滤标准。 n

这样的过滤标准不能够在WinCC Alarm Control控件的选择对话框中显示,因为在选择对话框中多重字符串不能作为一个用户文本块的过滤标准。

2过滤没有指定的消息类型
如果,一个消息根据不相关的消息类别和消息类型来过滤, 在SQL查询视图中,您可以指定没有准确指定消息类型的过滤标准。然而,此过滤标准不能在WinCC Alarm Control的选择对话框中完全显示出来。但是如果在SQL语句中所有的消息类型被精确的指定到消息类别的时候,则能够完全显示。 n

注意:
在这个条目中,上面提及的报警信息过滤标准的不能被显示。

3在SQL操作中的大写/小写字符
WinCC Alarm Control中的选择对话框不支持所有的SQL操作(例如:LIKE, TYPE)中包含小写字符。消息过滤可以正常的执行,但是在选择对话框中的消息过滤不能够完全显示。
因此您必须在SQL操作中使用大写字符。

注意:
在这个条目中,上面提及的报警信息过滤标准的不能被显示。

4

通常用法
不要使用任何在查询指定的用户文本块使用确切等号(Operator "=")和查询其他用户文本块使用非确切等号(Operator "LIKE")的过滤标准。混合两种操作将导致在WinCC Alarm Control中不能正确显示消息。

注意:
您可以使用操作符"IN"代替操作符"="定义相同的消息过滤条件。对于用户文本块,您可以混合应用IN和LIKE操作符.然而, 请您查看这个表中有关注意事项。

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc337436.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日 下午12:03
下一篇 2021年4月12日 上午12:00

相关推荐

发表回复

登录后才能评论