读取报警 ID
- 创建标准项目并选择 CODESYS Control Win V3 作为设备。
- 通过网络扫描连接目标系统。

- 在设备树中插入报警配置。
- 这里会自动创建 Error、Info 和 Warning 报警类,以及 AlarmStorage 对象。 此外,还创建了一个 AlarmManagerTask 。

创建全局变量列表 GVL,定义变量 g_sAlarmID 。

- 创建一个名为 FB_AlarmNotifiable 的新 FB 并实现接口 AlarmManager.IAlarmNotifiable。

Execute 方法是 FB 自动创建的方法:

- 修改 Execute 方法如下:
声明
//{warning 'add method implementation '}
(* Executes the action.*)
METHOD Execute
VAR_INPUT
(* The currently processed alarm state transition. This will be
evaluated in order to determine, whether the action has to be
executed or not*)
eCurrTransition : ALARMMANAGER.AlarmStateTransition;
(* The alarm, for which the action has to be performed*)
itfAlarm : ALARMMANAGER.IAlarm;
(* An optional pointer to a structure variable containing
additional parameter*)
pbyAdditionalData : POINTER TO BYTE;
END_VAR
VAR
itfAlarmGroup : ALARMMANAGER.IAlarmGroup;
END_VAR
实现
itfAlarmGroup := itfAlarm.GetAlarmGroup();
GVL.g_sAlarmID := itfAlarmGroup.GetStringID(itfAlarm.GetID());
- 修改 PLC_PRG 如下:
声明
VAR
xAlarm : BOOL;
fbAlarmNotifiable : FB_AlarmNotifiable;
END_VAR
实现
// no implementation
- 在 Alarm configuration 中插入一个新的 alarm group, 配置一个 alarm 如下:

为了在报警时也调用 fbAlarmNotifiable 实例,仍然必须通知 Error 报警类。

- 将项目加载到控制器并启动它。在 PLC_PRG 中将 xAlarm 变量 设置 xAlarm 为 TRUE。现在全局变量 GVL.g_sAlarmID 将传递在警报配置中设置的 MyAlarmId 。
