FC_SetAlarm

Übersicht

Typ

Funktion

Verfügbar ab:

V1.0.1.0

G-SE-0065033.1.gif-high.gif

 

 

Funktionsbeschreibung

Bei der Funktion FC_SetAlarm handelt es sich um eine Hilfsfunktion zum Schreiben von Alarmmeldungen in die zutreffenden Administrations-Tags sowie zum Löschen der Meldungen aus den Tags. Jeder Alarm wird ausschließlich anhand seiner eindeutigen Kennung und dem jeweils zugewiesenen Wert identifiziert. Kennung und Wert werden im Ein-/Ausgangsparameter iq_stSetAlarm angegeben, der dem Ein-/Ausgangsparameter iq_astAlarms[#] entspricht.

Diese Funktion kann nicht in mehreren Tasks gleichzeitig verwendet werden.

Über den Eingang iq_stSetAlarm kann der Funktion eine maschinenspezifische Alarmmeldung übergeben werden.

Über den Ein-/Ausgangsparameter iq_astAlarms muss der Funktion das Administrations-Tag Admin.Alarm[#] übergeben werden. Dieses Tag enthält die Liste der aktiven Alarme für die Maschineneinheit in chronologischer Reihenfolge mit dem zuerst aufgetretenen und nach wie vor aktiven Alarm.

Über den Ein-/Ausgangsparameter iq_stAlarmHistory muss der Funktion das Administrations-Tag Admin.AlarmHistory[#] übergeben werden. Das Tag enthält den Alarmverlauf für die Maschineneinheit mit allen Alarmen in chronologischer Reihenfolge ab dem zuletzt zurückgesetzten Alarm.

Wenn die Funktion über den Eingang i_xSetAlarm = TRUE aufgerufen wird, überprüft sie, ob sich die angegebene Alarmmeldung bereits in der Liste der aktiven Alarme befindet. Ist das nicht der Fall, dann ruft die Funktion die RTC der Steuerung ab und schreibt sie zusammen mit der angegebenen Alarmmeldung in die Liste der aktiven Alarme. Wenn die maximal zulässige Anzahl an Meldungen in der Liste erreicht ist, wird keine neue Meldung hinzugefügt.

Wenn die Funktion über i_xSetAlarm = FALSE aufgerufen wird, wird die angegebene Alarmmeldung aus der Liste der aktiven Alarme entfernt. Sie wird dann an die erste Position des Alarmverlaufs geschrieben, gleichzeitig werden die bereits vorhandenen Einträge um eine Position in der Liste nach unten verschoben. Wenn die Liste voll ist, wird der älteste zurückgesetzte Alarm entfernt.

Wenn die Funktion über die Eingänge i_xAckAlarm und i_xSetAlarm = TRUE aufgerufen wird, ruft sie die RTC der Steuerung ab und aktualisiert den Parameter (Tag) AckDateTime für die angegebene Alarmmeldung in der Liste der aktiven Alarme. Sobald ein Alarm einmal quittiert wurde, hat eine erneute Quittierungsanforderung keine Wirkung mehr.

Der Rückgabewert der Funktion entspricht TRUE, wenn der angegebene Alarm entweder in die Liste geschrieben bzw. aus der Liste entfernt oder als quittiert markiert wurde. Wenn die Funktion den Wert FALSE zurückgibt, wurde keine Aktion angefordert oder die maximal zulässige Anzahl an Meldungen in der Liste wurde erreicht.

Schnittstelle

Eingang

Datentyp

Beschreibung

i_xSetAlarm

BOOL

oTRUE: Der an den Ein-/Ausgang iq_stSetAlarm übergebene Ursachencode oder die maschinenspezifische Alarmmeldung wird in den Tag am Ein-/Ausgang iq_stActiveAlarm geschrieben.

oFALSE: Die Meldung wird aus iq_stActiveAlarms gelöscht und in iq_stAlarmHistory eingegeben.

i_xAlarmAck

BOOL

TRUE: Die Meldung wurde erfasst. Der entsprechende Zeitstempel für Admin.Alarm[#].TimeAck festgelegt.

Ein-/Ausgang

Datentyp

Beschreibung

iq_stSetAlarm

ST_InitAlarm

An diesen Ein-/Ausgang wird der Ursachencode bzw. die maschinenspezifische Alarmmeldung übergeben.

iq_astActiveAlarms

ARRAY [1..Gc_uiMaxNumberOfAlarms] OF  ST_Alarm

Der Administrations-Tag Admin.Alarm[#] sollte auf diesen Ein-/Ausgang angewendet werden.

iq_astAlarmHistory

ARRAY [1..Gc_uiNumberOfAlarmHistory] OF  ST_Alarm

Der Administrations-Tag Admin.AlarmHistory[#] sollte auf diesen Ein-/Ausgang angewendet werden.

iq_diNumberOfActiveAlarms

DINT

Verweist auf die Anzahl der aktiven Alarmmeldungen.