使用锁存变量过滤报警事件
注意
示例项目: 按锁存器和时间变量筛选警报
当发生大量报警事件时,如果可以通过搜索某个条件(例如锁存变量的内容)来减少数量,对可视化用户来说将非常有利。例如,如果锁存变量 1 包含报警的错误编号,则可视化用户可以以此为依据进行筛选。用户输入该编号,然后将其与报警锁存变量的值进行比较。这样,系统将仅显示具有此编号的报警。
请注意,只有当过滤器标准和锁存器完全匹配时,才会检测到匹配项。无法使用部分搜索字符串或通配符进行过滤。例如,如果 1234 是锁存器,则只有在精确过滤时才会显示警报 '1234',但在筛选时不是 '1' 或者 '1*'。
出现未确认警报时的行为
当警报定义已配置了锁存变量时,例如INT参数化错误消息的变量,锁存变量的当前值在运行时归档。仅当可视化用户确认相关报警(错误消息)时,此值才会更改。当报警变为活动状态时,锁存变量的值始终会更新。
因此,连续多条尚未确认的错误消息会获得错误归档的值。这不仅适用于初始转换到激活状态的情况,也适用于例如触发重新报警的情况。
以下说明向您展示了如何为按条件搜索配置警报定义的示例。
过滤器的警报定义配置
在应用程序代码中,声明一个字符串变量(
GVL) 作为过滤器。应该能够在运行时搜索特定的错误 ID。sFilter : WSTRING;声明了所搜索值的变量。
此变量用作搜索条件的输入变量来搜索字符串。
在警报组中,将锁存变量添加到警报定义中。锁存变量是标量类型的变量(最大 64 位)
STRING(最多 39 个字符),或WSTRING(最多 59 个字符)。打开
Alarmgroup_LatchVars报警组。将另一个锁存变量添加到警报定义列表中。
提示:添加闩锁变量列命令位于报警组编辑器的上下文菜单中。
IEC 变量在锁存器变量 3柱子:
PLC_PRG.arLatchValues[]它们的值应该在运行时在消息 2 中发出。
在警报定义中添加另一个消息列。
提示:补充留言栏命令位于报警组编辑器的上下文菜单中。
使用闩锁变量 3 的闩锁占位符符补充消息 2:
Another latch variable: <LATCH3>
报警组定义带有由锁存变量值补充的消息的报警。

在应用程序代码中 (
GVL),定义一个整数枚举eFiltType对于过滤器类型EfilterLatchContent。注意
EfilterLatchContent是库中定义的枚举AlarmManager使用以下过滤器类型:0: 过滤已禁用。1: 过滤变量是字符串文字。锁存器变量的类型必须兼容:STRING(最多 39 个字符)或WSTRING(最多 59 个字符)。例如,你可以搜索'Error 1'。2:过滤变量包含一个必须解释为 IEC 表示法的字符串。根据 IEC 61131-3 对锁存变量值进行过滤,这些值是按照 IEC 61131-3 键入的文字T#1h2s,DINT#15,REAL#1.5,或FALSE。3:过滤变量包含一个必须解释为数字的字符串(例如,“123” 或 “456,4”)。对包含数字的锁存变量值的警报消息进行过滤 (LINT文字)。因此,锁存变量的值必须介于 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 之间有关更多信息,请参阅以下内容: eFilterLatchContent (ENUM)
eFiltType : VisuElemsAlarm.EFilterLatchContent;用户可以在运行时指定筛选条件。仅显示与锁存变量过滤器变量中指定的搜索条件相匹配的警报。
仅当过滤器标准和锁存器完全匹配时,才会检测到匹配项。例如,如果
Error 1是锁存器,则警报仅在过滤时显示'Error 1',但在筛选时不是'Error'或者'1'。为警报可视化编程 矩形, 按钮,以及 警报表 具有过滤器类型输入配置的可视化元素,如下所示:
添加一个矩形元素来指定搜索字符串。
矩形元素文本元素属性设置为
%s和文本变量元素属性设置为GVL.sFilter。可视化用户可以在运行时输入搜索字符串。
为过滤器启动添加一个带有输入配置的按钮元素。
这写入变量针对输入配置中的过滤变量编程操作:
GVL.sFilter
配置警报表。在可视化编辑器中,选择元素并配置其属性,如下所示:
这报警配置属性 →按锁存器1过滤→过滤变量设置为
GVL.sFilter。这报警配置属性 →按锁存器1过滤→过滤器类型设置为
GVL.eFiltType。过滤已配置。