Best practice

<< 点击显示目录 >>

主页  mappServices帮助手册 > mapp AlarmX: 报警管理 > 概念 >

Best practice

本节解释了实施mapp AlarmX 时应注意的事项。

激活报警

需要注意的是,被配置为 边缘报警报警 如何 MpAlarmXSet 启用 。边缘报警会自动复位。

如果该功能被循环调用,警报也会在每个循环中被激活。这意味着 在每个周期中,MpAlarmXCore上会显示另一个警报 。解决这个问题的办法是,例如,只在触发器的正边激活警报。这将导致警报只被激活一次。

mpalarmxset_activation

用MpAlarmXConfigAlarm改变报警文本

例如,如果要使用 MpAlarmXConfigAlarm修改警报文本("Message")或警报的附加信息("AdditionalInformation") ,可以对字符串进行转换。这可以通过函数 httpWStringToUtf8完成 。这意味着诸如 "ä "或 "ü "这样的短语也可以用于报警信息,例如。

在这个例子中,报警信息被转移到变量 "AlarmConfiguration.Message"(数据类型为STRING),使用变量 "AlarmMessage"(数据类型为WSTRING)。

httpwstringtoutf8

"AlarmConfiguration "是在 MpAlarmXConfigAlarm的输入参数 "Configuration "上指定的

mpalarmxconfig_example

这确保了报警信息在人机界面应用程序中的正确显示(如果使用 umlauts)。

visu_working

否则,在显示信息时可能会出现问题。

visu_problem

在运行时创建报警

可以使用 MpAlarmXConfigAlarm在运行时创建报警

另一种可能性是由功能块 MpComConfigManager提供的 。使用这个功能块可以快速而方便地导入用户警报。

logo_use_case

在这个 用例中解释了如何导入用户报警 。

在系统中启用/禁用警报的时间行为

本节确切地解释了在系统中启用或禁用报警的时间。

为了确保 在启动时立即检测到MpAlarmXCore 警报,建议在初始化子程序中启用这个功能块,输入 "启用"。这样就可以在初始化子程序中直接初始化所有报警。

基本上有3种不同的报警类型。

在应用程序中启用的报警

在应用程序中启用或禁用的报警有 "边缘报警"、"持久性报警 "或 "用户定义 "作为其报警行为。警报的行为是在 MpAlarmXCore配置中定义的 。有关其他信息,请参见 预定义报警行为一节 。时间特征取决于两个不同的因素。首先,报警是同步处理还是异步处理,其次,报警是由 MpAlarmXSet等函数控制  还是由功能块 MpAlarmXAlarmControl控制

同步报警与异步报警

默认情况下,一个警报是同步的。这可以通过配置属性 "Asynchronous "来改变。

alarmconfig_asynchronous

同步警报 在其被调用的相同上下文中被启用、重置或确认。这 MpAlarmXCore 位于 哪个任务类中无关

如果 MpAlarmXCore 位于100毫秒的任务类中,而10毫秒的任务类中的警报被调用,那么该警报在被调用后立即在10毫秒任务类中的系统中变得活跃。可能的反应也会立即激活,并可以在之后的代码行中使用 MpAlarmXCheckReaction进行 检查 。

异步警报 不会在它们被调用的同一上下文中被启用、重置和确认,而是被转发到 MpAlarmXCore 并在那里处理。只有报警的时间戳被转发。其他信息,例如关于警报片段或配置中定义的警报映射,在 MpAlarmXCore 的上下文中解决 。

有关其他信息,请参见 同步和异步报警一节

使用函数与使用功能块

如果 使用函数 MpAlarmXSet 来启用一个警报, 那么 一旦调用该函数,就会读取 警报配置 。定义的 报警属性报警片段报警映射等被解决。这发生在每个函数调用中。这并不适用于异步报警。在这种情况下, 报警片段报警映射等从 MpAlarmXCore解析 。

当使用功能块 MpAlarmXAlarmControl报警配置 被读出一次。这发生在 功能块的 启用过程中("Enable= TRUE")。这使得启用、重设和确认报警比使用功能块更省时。如果 在运行时改变了 报警的配置 ,该改变会自动转发给 MpAlarmXAlarmControl

通过配置控制的报警

通过配置控制的报警有一个监控类型作为其报警行为。警报的行为是在 MpAlarmXCore配置中定义的 。关于这些报警的其他信息,请参见 报警监控

alarmtiming_configurationalarms

这些类型的报警是使用 MpAlarmXCore启用的 。每次调用一个功能块时,系统会检查是否必须启用配置的报警之一。如果是这样的话,该报警在系统中被启用。因此,如果 MpAlarmXCore 位于100ms的任务类中,那么每隔100ms就会检查是否必须启用/禁用一个报警。

mapp报警

mapp组件的警报在各自的配置中管理。为此目的,必须使用 "MpAlarmX "作为报警系统。这意味着,例如,来自mapp Tweet 的报警会自动转发到mapp AlarmX 。

alarmtiming_mappalarms

如果警报发生在一个mapp组件中,它将直接转发到mapp AlarmX 。根据mapp组件所处的任务类别,该警报将被启用。因此,如果mapp Tweet 位于一个100ms的任务类中,它每隔100ms就会检查是否必须启用/禁用一个mapp报警。