Alarmkonfiguration: Anzahl aktiver Alarme

roboticBeet

Level-2
Beiträge
493
Reaktionspunkte
202
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

gibt es eine Funktion bzw. einen Funktionsbaustein, mit welchem ich die Anzahl der aktiven Alarme und Meldungen aus der Alarmkonfiguration einer Codesys v3 Steuerung auslesen kann?
Habe bereits die Doku und Bibliotheken geprüft, aber auf den ersten Blick leider nichts gefunden...
 
Hallo, sofern du eine Visu anlegst, kannst du die Steuervariablen aktivieren.
Dort gibt es die Variable "Anzahl Alarme" .

Gruß
ccore2020-09-18 11_13_55-Window.png
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für deine Antwort. Leider wird der Wert nur aktualisiert, wenn in der Visualisierung die Alarmtabelle aktiv ist. Kann ich diese Information auch unabhängig vom angezeigten Bedienbild aus der Alarmkonfiguration erhalten?
Möchte es eigentlich vermeiden mir diese Information selber beim Setzen der Bitmeldung mitzuschneiden und würde die Info (wenn es denn geht) aus der Alarmkonfiguration abgreifen.
 
Hallo,
ich arbeite mit eCockpit deshalb kann ich nicht sagen ob der Lösungsansatz auch unter Codesys V3 möglich ist.
In der Bibliothek AlarmManager unter Interfaces findet man bei eCockpit das Interface IAlarmHandler2.
Dort gibt es die Methode GetActiveAlarmes.
Um die Anzahl der aktiven Alarme zu ermitteln müsste man dann folgendermaßen vorgehen:

Deklaration von

inst_itfAlarmClient: ALARMMANAGER.IAlarmManagerClient ;
inst_itfAlarmHandler2: ALARMMANAGER.IAlarmHandler2;
udi_NoOfAlarms :UDINT;

Aufruf der Methode

udi_NoOfAlarms:= inst_itfAlarmHandler2.GetActiveAlarms(itfAlarmManagerClient:= inst_itfAlarmClient, parritfActiveAlarms=> , iCountActiveAlarms=>);

Dies ist nur ein Lösungsansatz ohne jede Garantie.

Grüße

Peter
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ah, danke für den Hinweis. Habe diese Methode gar nicht gesehen. Damit funktioniert es.
Ich weiß schon, dass der Beitrag etwas älter ist, aber hast du es über Codesys geschafft, die Anzahl der aktiven Alarme auszulesen?
Ich habe es bei mir ausprobiert, aber leider bleibt das Programm an dieser Stelle immer stehen.. Ich verstehe auch nicht ganz, wo der Alarmmanager übergeben wird.. In der Deklaration wird doch nur eine neue Variable mit dem gleichen Datentyp erstellt, aber nicht der Alarmmanager übergeben oder liege ich hier falsch?
Gibt es eventuell auch eine Dokumentation zu den Methoden etc. leider habe ich im Internet nichts gefunden.
 
Ich erinnere mich leider nicht mehr genau, da das auch nur eine Demo eines mechanischen Proof-of-Concept für eine andere Abteilung war. Für die Software musste es recht fix gehen, was auch kein Problem war, da es ja nichts produktives ist...

Mittlerweile ist alles abgebaut, ich habe aber trotzdem mal kurz in die Software geschaut. Mit der Methode GetActiveAlarms hat am Ende doch irgendwas nicht hingehauen (mag auch daran liegen, dass ich selten mit Codesys zu tun habe und eher im TIA Bereich bin). Habe daher auf jeder WebVisu Seite eine unsichtbare Alarmtabelle eingebunden. Von dort habe ich die Anzahl der aktiven Alarme abgefragt.
Für den Demoaufbau war das ausreichend. Für ein produktives System würde ich das glaube ich nicht machen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin, ggf. könnt ihr mit einem Export eines Beispiels etwas anfangen, bei dem die aktiven Alarme gefiltert nach Gruppe und Klasse gezählt werden.
Danke KLM, das ist eine viel bessere Lösung als meine Behelfsart, die Alarme zu zählen.
Code:
x := (x + 1); // ohne () funktioniert es nicht
1638641474553.png
 
Zurück
Oben