Skip to main content

Alarme mit API-Aufruf programmatisch steuern

Alarme des Überwachungstyps Alarm (API) werden programmatisch im Applikationscode mithilfe der Funktionalität der Bibliothek AlarmManager und der Schnittstelle IAlarmHandler9 ausgelöst. Über die Schnittstelle können Alarme aktiviert (ActivateAlarm) oder deaktiviert (DeactivateAlarm) werden. Die Zustandsübergänge können wie gewünscht gesetzt werden. Solche Alarme werden entweder direkt in einer Alarmgruppe oder als Alarminstanz in einer Alarmgruppenvorlage definiert.

Im Unterschied zur Überwachung per Ereignisses (Event (API)) können Alarme für alle Alarmklassen mit allen Bestätigungsmethoden verwendet werden.

Wichtig

Je nach Alarmklasse und deren Bestätigungsmethoden kann es dann sein, dass zur Laufzeit der Alarm noch vom Visualisierungsbenutzer quittiert werden muss.

Per API alarmieren

Alarm mit Typ Alarm (API) definieren

  1. Legen Sie unter Alarm Configuration eine Alarmgruppe an.

  2. Definieren Sie in der Alarmgruppe einen Alarm des Überwachungstyps Alarm (API).

  3. Wählen Sie in der Spalte Klasse beispielsweise die Alarmklasse Warnung Orange und geben Sie unter Nachricht die gewünschte Alarmmeldung an.

Der per API auslösender Alarm ID_20 ist definiert.

_visu_img_define_alarmconfig_ag_alarmapi.png

Sie können einen solchen Alarm mit einer beliebigen Alarmklasse definieren. Die Angabe von Details entfällt, das heißt es wird keine Alarmbedingung angegeben. Der Alarm wird per API-Aufruf ausgelöst.

API-Aufruf implementieren

Prozedur. Schritt für Schritt
  1. Setzen Sie den Cursor an die Programmstelle, an der der API-Aufruf stattfinden soll.

  2. Fügen Sie den API-Aufruf ein.

    Tipp

    Lassen Sie sich von der Eingabehilfe (F2) unterstützen.

    Implementierung

    Dieser Code aktiviert den Alarm ID_20 in der Alarmgruppe Alarms1Line.

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

    Dieser Code deaktiviert den Alarm ID_20 in der Alarmgruppe Alarms1Line.

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

Mit Alarm (API) per Alarminstanz alarmieren

Dies ist insbesondere für Bibliotheksentwickler relevant. Zudem lassen sich die Alarmzustände programmgesteuert über die bereitgestellten API-Methoden explizit setzen.

Alarm mit Typ Alarm (API) definieren

  1. Legen Sie unter Alarm Configuration eine Alarmgruppenvorlage an.

  2. Definieren Sie in der Alarmgruppe einen Alarm des Überwachungstyps Alarm (API).

  3. Wählen Sie in der Spalte Klasse beispielsweise die Alarmklasse Warning und geben Sie unter Nachricht die gewünschte Alarmmeldung an.

Der per API auslösende Alarm ID_0 ist definiert.

Tipp

Sie können einen API-Alarm auch in einer Alarmgruppe definieren.

Implementieren von Funktionsbaustein und API-Aufruf

Prozedur. Schritt für Schritt
  1. Fügen Sie Ihrer Applikaiton einen Funktionsbaustein hinzu, um damit die Alarmzustände des neu definierten Alarms im IEC-Code zu setzen.

    1. Selektieren Sie den Applikationsknoten und wählen Sie den Befehl Objekt hinzufügenPOU.

    2. Konfigurieren Sie die POU wie folgt: Name MyAlarmFB, Typ Funktionsbaustein, Implementierungssprache ST.

      Deklaration

      FUNCTION_BLOCK MyAlarmFB
      VAR_INPUT
      END_VAR
      VAR_OUTPUT
      END_VAR
      VAR
      END_VAR
      
    3. Selektieren Sie den Baustein und fügen Sie die Methoden ActivateAlarm und DeactrivateAlarm hinzu.

    4. Öffnen Sie den ST-Editor von der Methode ActivateAlarm und programmieren Sie den Bibliotheksaufruf.

      Tipp

      Lassen Sie sich von der Eingabehilfe (F2) unterstützen.

      Dieser Code aktiviert den Alarm ID_0 aus der Alarmgruppenvorlage.

      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. Öffnen Sie den ST-Editor von der Methode DesctivateAlarm und programmieren Sie den Bibliotheksaufruf.

      Dieser Code deaktiviert den Alarm ID_0 aus der Alarmgruppenvorlage 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);

      Objektnavigator

      _visu_img_alarmapi_agt_objects.png
  2. Instanzieren Sie den Funktionsbaustein in der Alarmgruppenvorlage.

    1. Öffnen Sie den Editor von AlarmgruoubTemplate und klicken Sie in der Zeile Typ für Alarmdefinition auf die Drei-Punkte-Schaltfläche.

      Die Einhabehilfe öffnet sich.

    2. Wählen Sie unter Application den Funktionsbaustein MyAlarmFB aus.

    Die Alarmdefinition ist instanziert.

    _visu_img_define_alarmapi_in_agt.png
  3. Implementieren Sie den API-Aufruf im IEC-Code und fügen Sie die Alarmaufrufe an der gewünschten Stelle hinzu.

    Deklaration

    PROGRAM PLC_PRG
    VAR
        alarmTemplateInstance : MyAlarmFB;
    END_VAR

    Implementierung

        // Deactivate by API Call  
        alarmTemplateInstance.DeactivateAlarm();
    
        // Activate by API Call
        alarmTemplateInstance.ActivateAlarm(); 
  4. Erstellen Sie die Alarminstanzen.

    1. Öffnen Sie den Editor Alarm Configuration und dort die Registerkarte Alarminstanzen.

    2. Klicken Sie auf die Schaltfläche Alarminstanzen erstellen oder aktualisieren.

    Die Alarminstanzen innerhalb der Alarm Configuration bekannt und aktualisiert.

    _visu_img_alarmconfiguration_alarminstances.png