Skip to main content

使用 API 调用以编程方式控制警报

观察类型的警报 警报 (API) 使用应用程序的功能在应用程序代码中以编程方式触发 AlarmManager 图书馆和 iAlarmHandler9 接口。可以激活警报 (ActivateAlarm)) 或已停用 (DeactivateAlarm) 通过接口。可以根据需要设置状态转换。这些类型的警报要么直接在警报组中定义,要么在警报组模板中定义为警报实例。

与通过事件进行观察不同(事件 (API),警报可用于具有所有确认方法的所有警报类别。

重要

视警报类及其确认方法而定,可视化用户可能需要在运行时确认警报。

通过 API 发出警报

使用定义警报 警报 (API) 键入

  1. Alarm Configuration,设置一个 警报组

  2. 在警报组中,定义观察类型的警报 警报 (API)

  3. 课堂 列,例如选择警报等级 Warning Orange 并在下方指定所需的警报消息 留言

警报 ID_20定义了通过 API 触发的。

_visu_img_define_alarmconfig_ag_alarmapi.png

您可以使用任何警报类别定义此类警报。不需要提供详细信息,这意味着未给出警报条件。警报通过 API 调用触发。

实现 API 调用

过程. 一步一步
  1. 将光标设置在应该进行 API 调用的程序位置。

  2. 插入 API 调用。

    提示

    让输入助手 (F2) 帮你解决这个问题。

    实施

    此代码激活警报 ID_20 在警报组中 Alarms1Line

    // Activate by API Call
    Alarmmanager.AlarmGlobals.g_AlarmHandler.ActivateAlarm(1,Alm_Alarms1Line_Alarm_IDs.ID_20);

    此代码禁用警报 ID_20 在警报组中 Alarms1Line

    // Deactivate by API Call  
    Alarmmanager.AlarmGlobals.g_AlarmHandler.DeactivateAlarm(1,Alm_Alarms1Line_Alarm_IDs.ID_20);

通过警报实例使用警报 (API) 进行警报

这对于库开发人员尤其重要。此外,可以通过提供的API方法以编程方式显式设置警报状态

使用定义警报 警报 (API) 键入

  1. Alarm Configuration,设置一个 警报组模板

  2. 在警报组中,定义观察类型的警报 警报 (API)

  3. 课堂 列,例如选择警报等级 Warning 并在下方指定所需的警报消息 留言

警报 ID_0定义了通过 API 触发的。

提示

您还可以在中定义 API 警报 警报组

实现函数块和 API 调用

过程. 一步一步
  1. 向您的应用程序添加功能块,以设置 IEC 代码中新定义警报的警报状态。

    1. 选择应用程序节点,然后单击 添加对象POU 命令。

    2. 按如下方式配置 POU:名称 MyAlarmFB,键入 功能块,实现语言 ST

      声明

      FUNCTION_BLOCK MyAlarmFB
      VAR_INPUT
      END_VAR
      VAR_OUTPUT
      END_VAR
      VAR
      END_VAR
      
    3. 选择 POU 并添加 ActivateAlarmDeactrivateAlarm 方法。

    4. 打开的 ST 编辑器 ActivateAlarm 方法和编程库调用。

      提示

      让输入助手 (F2) 帮你解决这个问题。

      此代码激活警报 ID_0 来自警报组模板。

      METHOD ActivateAlarm : BOOL
      VAR_INPUT
      END_VAR
      // Activate Alarm Instance Alarm by API Call
      Alarmmanager.AlarmGlobals.g_AlarmHandler.ActivateAlarmInstance(THIS, Alm_AlarmGroupTemplate_Alarm_IDs.ID_0);
    5. 打开的 ST 编辑器 DesctivateAlarm 方法和编程库调用。

      此代码禁用警报 ID_0 来自警报组模板 AGT

      METHOD DeactivateAlarm : BOOL
      VAR_INPUT
      END_VAR
      // Deactivate Alarm Instance Alarm by API Call
      Alarmmanager.AlarmGlobals.g_AlarmHandler.DeactivateAlarmInstance(THIS,Alm_AlarmGroupTemplate_Alarm_IDs.ID_0);

      对象导航器

      _visu_img_alarmapi_agt_objects.png
  2. 在警报组模板中实例化该功能块。

    1. 打开的编辑器 AlarmGroupTemplate 然后单击中的垂直省略号按钮 警报定义的类型 行。

      输入助手打开。

    2. 在下面 Application,选择 MyAlarmFB 功能块。

    警报定义已实例化。

    _visu_img_define_alarmapi_in_agt.png
  3. 在 IEC 代码中实现 API 调用,并在所需位置添加警报呼叫。

    声明

    PROGRAM PLC_PRG
    VAR
        alarmTemplateInstance : MyAlarmFB;
    END_VAR

    实施

        // Deactivate by API Call  
        alarmTemplateInstance.DeactivateAlarm();
    
        // Activate by API Call
        alarmTemplateInstance.ActivateAlarm(); 
  4. 创建警报实例。

    1. 打开 Alarm Configuration 编辑器,然后单击 警报实例 选项卡。

    2. 点击 创建或更新警报实例 按钮。

    中的警报实例 Alarm Configuration 被识别并更新。

    _visu_img_alarmconfiguration_alarminstances.png