Alarms

Codesys-Back-End

Die Codesys-Integration steuert das Aktivieren und Deaktivieren von Alarmen innerhalb der SPS-Logik. Sie kommuniziert direkt mit dem Alarm-Frontend über die Variablenbindung.

Erforderliche Bibliotheken

Um Alarme in deinem Codesys-Projekt zu nutzen, müssen folgende Bibliotheken eingebunden werden:

  • PLCVisu – Framework für Kommunikation und UI-Unterstützung
  • ELA_MessageSystem – Die zentrale Bibliothek zur Alarmlogik → bereits in der PLCVisu-Bibliothek enthalten

Weitere Details siehe Screenshot:

Symbolkonfiguration in Codesys

Damit Alarme zwischen Codesys und dem HMI kommunizieren können, müssen alarmbezogene Variablen in der Symbolkonfiguration freigegeben werden. Diese Variablen müssen ausgewählt und für den externen Zugriff aktiviert sein.

Stelle sicher, dass alle benötigten Alarmstrukturen und Variablen für den externen Zugriff aktiviert sind – andernfalls werden die Alarme im HMI nicht korrekt angezeigt.

Alarm-Implementierung

alarmPrg

SPS-Programm, das für die Initialisierung der Alarme sowie die Ereignisverarbeitung zuständig ist. Es wird üblicherweise in PLC_PRG eingebunden oder in einem separaten Task ausgeführt.

alarmingManagerPrg

Das Programm, in dem die eigentliche Logik zum Aktivieren und Deaktivieren der Alarme implementiert ist.

setActive

Aktiviert einen Alarm mit optionalen Parametern und Übersetzungs-Platzhaltern:

setActive(msgId : UINT,
          param1 : STRING := '', 
          param2 : STRING := '', 
          param3 : STRING := '', 
          param4 : STRING := '', 
          param5 : STRING := '', 
          trans1 : STRING := '', 
          trans2 : STRING := '', 
          trans3 : STRING := '', 
          trans4 : STRING := '', 
          trans5 : STRING := '', 
          moduleId : UINT := 0);

setInactive

Deaktiviert einen zuvor aktivierten Alarm:

setInactive(msgId : UINT, 
            moduleIndex : UINT := 0, 
            tag : STRING := '');

manage

Stellt einen Trigger als Eingangsparameter bereit und ersetzt setActive sowie setInactive:

alarmingPrg.alarming.manage(444, iErrorTrigger > 95);

Diese Methoden werden typischerweise aus einem strukturierten Alarmmanager-Programm wie alarmManagerPrg aufgerufen.

Beispiel

alarmManagerPrg
alarmingPrg.alarming.manage(444, iErrorTrigger > 95);
setInactive
setActive
setInactive(msgId : UINT, moduleIndex : UINT := 0, tag : STRING := '');
setActive(msgId : UINT, param1 : STRING := '', param2 : STRING := '', param3 : STRING := '', param4 : STRING := '', param5 : STRING := '', trans1 : STRING := '', trans2 : STRING := '', trans3 : STRING := '', trans4 : STRING := '', trans5 : STRING := '', moduleId : UINT := 0);
PLC_PRG