Page tree
  • Create a "Standard project" and select CODESYS Control Win V3 as the device.
  • Define the target system by means of the Network scan.

  • Insert an Alarm configuration in the device tree.
    Here the Error, Info, and Warning alarm classes are created automatically, as well as the AlarmStorage object. In addition, a AlarmManagerTask is also created.

  • Create a global variable list GVL with the variable g_sAlarmID.

  • Create a new FB named FB_AlarmNotifiable and implement the interface AlarmManager.IAlarmNotifiable.

    The method the Execute method is created automatically with the FB:

  • Adapt the Execute method as follows:


    //{warning 'add method implementation '}
    (* Executes the action.*)
    METHOD Execute
        (* 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;
        itfAlarmGroup : ALARMMANAGER.IAlarmGroup;


    itfAlarmGroup := itfAlarm.GetAlarmGroup();
    GVL.g_sAlarmID := itfAlarmGroup.GetStringID(itfAlarm.GetID());

  • Adapt the POU PLC_PRG as follows:


        xAlarm              :    BOOL;
        fbAlarmNotifiable   : FB_AlarmNotifiable;


    // no implementation

  • Insert a new alarm group in the Alarm configuration and configure an alarm as follows:

    In order for the fbAlarmNotifiable instance to also be called at an alarm, the Error alarm class must still be notified about it.

  • Load the project to the controller and start it.
    Set the xAlarm variable to TRUE in the POU PLC_PRG.
    Now the global variable GVL.g_sAlarmID will pass the MyAlarmId that was set up in the alarm configuration.