Skip to main content

Ereignisalarme im Programm aufrufen

Für die Definition eines Alarms in einer Alarmgruppe steht unter anderem der Überwachungstyp Ereignis (API) zur Verfügung. Im Gegensatz zu den Überwachungstypen, bei denen der Alarm in Abhängigkeit von Bedingungen ausgelöst wird, kann bei diesem Überwachungstyp der Alarm durch den Aufruf einer Funktionsbaustein-Instanz ausgelöst werden.

Definieren des Ereignisalarms in der Alarmgruppe

  1. Legen Sie eine Alarmgruppe an.

  2. Definieren Sie in der Alarmgruppe einen Alarm vom Überwachungstyp Ereignis (API).

  3. Wählen Sie in der Spalte Klasse eine Alarmklasse mit der Bestätigungsmethode ACK oder legen Sie eine neue Alarmklasse an.

Programmaufruf zum Auslösen des Ereignisalarms

  1. Setzen Sie den Cursor an die Programmstelle, an der der Funktionsbaustein-Aufruf stattfinden soll.

  2. Verwenden Sie die Funktion RaiseEvent aus der Bibliothek AlarmManager:

    Geben Sie „AlarmManager“ ein, gefolgt von einem Punkt.

    Es öffnet sich ein Fenster mit einer Liste aller einfügbaren Elemente (Funktionalität „Komponenten auflisten“).

    _cds_img_autocomplete_alarms.png
  3. Wählen Sie AlarmGlobals und geben Sie einen Punkt ein.

  4. Fügen Sie in der gleichen Weise die Elemente g_AlarmHandler und RaiseEvent ein.

    Sie erhalten folgende Zeile: Alarmmanager.AlarmGlobals.g_AlarmHandler.RaiseEvent.

  5. Legen Sie nun die Übergabevariablen AlarmGroup_ID und Alarm_ID fest. Dazu geben Sie eine öffnende Klammer ein.

    Es erscheint ein Tooltip mit Informationen zu den Übergabevariablen

  6. Drücken Sie F2

    Es öffnet sich die Eingabehilfe

  7. Wählen Sie in der Registerkarte Kategorien (_3_r.png ) die Kategorie Variablen (_4_r.png).

    _cds_img_input_assistant_alarms.png
  8. Wählen Sie die gewünschte Gruppen-ID-Variable (_1_r.png) aus.

    Die Variable wird in die Programmzeile übernommen.

  9. Geben Sie ein Komma ein und fügen Sie analog zum Schritt 7 die gewünschte Alarm-ID-Variable (2) ein. Geben Sie eine schließende Klammer und einen Strichpunkt ein.

    Sie erhalten folgende Programmzeile:

    Alarmmanager.AlarmGlobals.g_AlarmHandler.RaiseEvent(Alm_AlarmConfiguration_Alarmgroup_IDs.ID_AlarmGroup1, Alm_AlarmGroup1_Alarm_IDs.ID_0);

Ereignisse von Alarmvorlageninstanzen auslösen

Ereignisse von Instanzalarmen können ausgelöst werden, indem die Adresse der Instanz übergeben wird, zu der der Alarm gehört.

Beim Auslösen des Ereignisses wird die Latch-Variable, die auf die Instanz zeigt, automatisch korrekt beschrieben.

Dafür stehen in der Bibliothek AlarmManager die Schnittstelle IAlarmHandler7 mit folgenden Funktionen zur Verfügung.

  • RaiseEventAlarmInstance

  • RaiseEventAlarmInstanceByName

Beispiel 22. Beispiel
_visu_alarm_group_template_example_raise_event.png

Funktionsbaustein MyalarmFB mit Methode RaiseEvent

FUNCTION_BLOCK MyAlarmFB
VAR_INPUT
	xCondition : BOOL;
END_VAR
METHOD RaiseEvent : BOOL
VAR_INPUT
END_VAR
Alarmmanager.AlarmGlobals.g_AlarmHandler.RaiseEventAlarmInstance(THIS, Alm_AlarmGroupTemplate_Alarm_IDs.ID_3);

Programm PLC_PRG

PROGRAM PLC_PRG
VAR
    // Alarm Instances
    myInst : MyAlarmFB;
    myInst2 : MyAlarmFB;
END_VAR
Alarmmanager.AlarmGlobals.g_AlarmHandler.RaiseEventAlarmInstance(ADR(myInst), Alm_AlarmGroupTemplate_Alarm_IDs.ID_3); 
Alarmmanager.AlarmGlobals.g_AlarmHandler.RaiseEventAlarmInstanceByName(ADR(pouInst), Alm_AlarmGroupTemplate2_Alarm_IDs.ID_0, 'AlarmGroupTemplate2');