_alert_hdl
Dieses Kapitel beschreibt die Attribute einer Meldebehandlung, Attribute einer Summenmeldebehandlung sowie die Statusbits für das Attribut _alert_hdl.._state (siehe Statusbits für Attribut _alert_hdl.._state).
Es wird zwischen zwei Arten von Attributen für eine Meldebehandlung unterschieden:
-
Attribute für die Parametrierung - Attribute der Parametrierung, z.B. die Grenzen der Meldebehandlung eines Datenpunktelementes, werden mit dpSet() gesetzt bzw. mit dpGet() oder dpConnect() abgefragt.
-
Attribute der Alarme - Attribute der Alarme, z.B. der Kommentar (_comment) für einen Alarm, der um 10:00 Uhr ausgelöst wurde, kann nur mit alertSet(), alertGet(), alertConnect() bzw. über dpQuery mit SELECT ALERT gesetzt bzw. abgefragt werden, da zu ihrer Bestimmung neben dem DPE auch die Alarmzeit notwendig ist.
Die folgende Tabelle zeigt alle Attribute einer Meldebehandlung. In der Tabelle finden Sie auch die Funktionen mit denen das Attribut gesetzt bzw. abgefragt werden kann.
Attribute (neutral) vom _alert_hdl.. |
Datentyp | Bit | Beschreibung |
Attribut kann gesetzt werden (W)
Attribut kann nur abgefragt werden (R) |
Attribute, die durch dpSet() setzbar oder durch dpGet() / dpConnect() abfragbar sind | Attribute, die mit alertSet() modifiziert werden können | Attribute, die mit alertConnect(), alertGet() bzw. dpQuery mit SQL Abfrage SELECT ALERT abgefragt werden können | Attribute die setzbar sind, wenn _alert_hdl aktiv ist. |
---|---|---|---|---|---|---|---|---|
_abbr | langstring | Kurzzeichen (z.B.: A für Alarm) der Priorität eines Alarmes, der um atime aufgetreten ist. | R | x | ||||
_abbr_pattern | string |
Kurzzeichen-Pattern für Summenmeldung. Ermöglicht Meldungen nach ihrem Prioritätenkürzel auszuwählen. Werden mehrere Zeichen angegeben, wird jede Meldung, die eines dieser Zeichen als Kürzel besitzt, berücksichtigt ("AW" erfasst alle Meldungen der Prioritäten "A" und "W"). Dieses Attribut kann nur bei Summenmeldungen verwendet werden. |
R/W | X | ||||
_ack | int | Wird dazu verwendet, um alle unquittierten Alarme zu einem Datenpunktelement zu quittieren (siehe auch _ack_state bzw. Meldebehandlung_"_alert_hdl.<i>._ack_state"). Dies wird z.B. im _alert_hdl-PARA-Panel gemacht, wenn dort die Meldungen quittiert werden, um den Alarm parametrieren zu können. | W | X | ||||
_ack_deletes | bool |
"Quittieren löscht" summenmelden? Die berücksichtigten Einzelmeldungen werden auf solche bestimmter Quittierungsarten eingeschränkt. Siehe Kapitel _alert_class (Meldeklasse) - Quittierungsart. Dieses Attribut kann nur bei Summenmeldungen verwendet werden. |
R/W | X | ||||
_ack_has_prio | bool |
Reihenfolge der Quittierzustände für Summenmeldungen. Dieses Attribut kann nur bei Summenmeldungen verwendet werden. |
R/W | X | ||||
_ack_oblig | bool | 6/22 | Wird auf KAM- und/oder GING-Seite (Bit 6 oder 22) gesetzt, je nachdem was quittiert werden muss. Solange _ack_oblig gesetzt ist, bleibt ein Alarmpaar sichtbar und kann nicht gelöscht werden. | R | x | |||
_ack_possible | bool | 5/21 | Wird auf KAM- und/oder GING-Seite (Bit 5 oder 21) gesetzt, je nachdem was quittiert werden kann. | R | X | |||
_ack_state | int |
Quittierart einer Meldung: Die Abfrage gibt zurück, wie die Meldung (KAM/GING), die zur angegebenen Zeit aktiv ist, quittiert wurde. Um die Meldung zu quittieren, muss alertSet() verwendet werden. Dabei muss die Zeit von der Meldung bekannt sein. Für das Attribut sind die Konstanten DPATTR_ACKTYPE_SINGLE oder DPATTR_ACKTYPE_MULTIPLE möglich. Siehe auch Meldebehandlung_"_alert_hdl.<i>._ack_state". |
R/W | X | x | |||
_ack_time | time | Quittierungszeit einer Meldung. | R | x | ||||
_ack_type
|
int |
Quittierungsart: Konstanten: //Quittieren löscht ACKNOWLEDGEMENT_DELETES = 0, // nicht quittierbar ACKNOWLEDGEMENT_NONE = 1, // kam ist quittierbar ACKNOWLEDGEMENT_CAME = 2, // Meldungspaar ist quittierungspflichtig ACKNOWLEDGEMENT_PAIR = 3, // kam und ging sind quittierungspflichtig ACKNOWLEDGEMENT_CAMEANDGONE = 4, //Quittierungsart für Summenmeldungen, entspricht "nicht quittierbar" ACKNOWLEDGEMENT_SUMALERT = 5 |
R | x | ||||
_ack_user | unsigned | Benutzer, der die Meldung quittiert hat. | R | x | ||||
_ackable | bool | 5/21 | Ist Meldung quittierbar? | R | x | |||
_act_prior | char |
Priorität des aktuellen Bereichs. Nicht relevant für Multiinstanzalarme. |
R | X | ||||
_act_range | int |
Aktueller Bereich. Nicht relevant für Multiinstanzalarme. |
R | X | ||||
_act_state | int |
Quittierungszustand der höchsten anstehenden Meldung. Mit diesem Attribut kann der aktuelle Meldezustand der höchsten anstehenden Meldung abgefragt werden. 1 = KAM unquittiert 2 = KAM quittiert 3 = GING unquittiert 4 = KAM/GING unquittiert 0 = Gutbereich (keine Meldung). Für mögliche Konstanten siehe auch Abschnitt Meldebehandlung_"_alert_hdl.<i>._act_state
Nicht relevant für Multiinstanzalarme. |
R | X | ||||
_act_state_color | string |
Hintergrund-Farbstring der höchsten anstehenden Meldung. Nicht relevant für Multiinstanzalarme. |
R | X | ||||
_act_state_fore_color | string |
Vordergrund-Farbstring der höchsten anstehenden Meldung. Nicht relevant für Multiinstanzalarme. |
R |
X
|
||||
_act_state_font_style | string |
Schriftart der höchsten anstehenden Meldung. Nicht relevant für Multiinstanzalarme. |
R |
X
|
||||
_act_state_prior | char |
Priorität der höchsten anstehenden Meldung. Nicht relevant für Multiinstanzalarme. |
R |
X
|
||||
_act_state_range | int |
Bereich der höchsten anstehenden Meldung. Bei einer Meldung mit den Bereichen OK/HI/URGENT. Ein Wert löst einen Alarm aus und führt zu URGENT und danach zu HI. Solange URGENT nicht quittiert wird und ansteht, ist _act_state_range 3 (URGENT steht an und hat die höchste Priorität). act_range ist 2 (die letzte Wertänderung führe zum Bereich HI). Wird URGENT quittiert, ist auch _act_state_range 2 (HI ist jetzt die höchste anstehende Meldung). Nicht relevant für Multiinstanzalarme. |
R |
X |
|
|||
_act_state_text | langString |
Text der höchsten anstehenden Meldung. Nicht relevant für Multiinstanzalarme. |
R |
X
|
||||
_act_text | langString |
Text des aktuellen Bereichs. (Bereichstext des aktuellen Wertes). Nicht relevant für Multiinstanzalarme. |
R | X | ||||
_active | bool | Ist Meldebehandlung aktiv? | R/W | X | X | |||
_add_text | dpid | Speichert Textfragmente für Statusbits. | R/W | X | ||||
_add_values | dyn_anytype | Enthält alle Begleitwerte eines Alarms. | R/W | X | x | |||
_add_value_1 .. _add_value_32 | anytype | Direktzugriff auf die ersten 32 Begleitwerte eines Alarms. | R/W | X | x | |||
_alert_color | string | Hintergrund-Farbstring der Meldung. | R | x | ||||
_alert_fore_color | string | Vordergrund-Farbstring der Meldung. | R | x | ||||
_alert_font_style | string | Schriftart der Meldung. | R | x | ||||
_alert_id | string | Die externe ID des Multiinstanzalarms. Dient der Identifikation eines Multiinstanzalarms von und zur Peripherie über einen Treiber/Manager. Dieses Attribut ist getrennt für die KAM- und GING-Meldung eines Alarmpaares verfügbar. | R/W | x | x | |||
_alerts | dyn_atime |
_alert_hdl.<detail>._alerts Liefert alle Alarmpaare (KAM-Zeit und GING-Zeit), die der Event für dieses Detail kennt. Das gilt auch für Alarme, die noch zum Löschen anstehen. Ist <detail> 0, werden die Alarme von allen Details geliefert. |
R | X | ||||
_archive | bool | 10/26 | Wird/Soll die Meldung archiviert (werden)? Wird auf beiden Seiten (Bit 10 und 26) gesetzt. | R | X | x | ||
_both_ack | bool |
"beide sind quittierungspflichtig" summenmelden? Die berücksichtigten Einzelmeldungen werden auf solche bestimmter Quittierungsarten eingeschränkt. Siehe Kapitel _alert_class (Meldeklasse) - Quittierungsart. Dieses Attribut kann nur bei Summenmeldungen verwendet werden. |
R/W | X | ||||
_came_time | time | Zeitpunkt der KAM-Meldung. | R | x | ||||
_came_time_idx | int | Zähler um die KAM-Zeit für zeitgleiche Meldungen eindeutig zu kennzeichnen. | R | x | ||||
_gone_time | time | Zeitpunkt der GING-Meldung. | R | x | ||||
_gone_time_idx | int | Zähler um die GING-Zeit für zeitgleiche Alarme eindeutig zu kennzeichnen. | R | x | ||||
_class
|
dpid |
Verweis auf die Meldeklasse des Bereiches. Die Meldeklasse wird intern auf einen DpIdentifier umgewandelt. Hinweis: Bei Multiinstanzalarmen ist es nicht zulässig, die Meldeklasse einer Alarminstanz zu eskalieren und gleichzeitig eine Meldeaktion (_event) auszulösen. Hinweis: _class muss nicht direkt nach _event:DPATTR_ALERTEVENT_CAME kommen, um als Alarmklasse verwendet zu werden. |
R/W | X | ||||
_comment | string | Benutzerkommentar zu einer Meldung. | R/W | X | x | |||
_del_date | time | Wann wird die Meldung gelöscht/ausgelagert? Das Attribut wird über das Config _alert_class (Meldeklasse) in der Registerkarte "Argumente" parametriert. | R | x | ||||
_delete
|
bool |
15/31
|
Gibt an, ob ein Alarmpaar das gelöscht werden kann (wenn es obsolet und unsichtbar ist) gelöscht oder ausgelagert wird. Wird auf beiden Seiten (Bit 15 und 31) gesetzt. In der Meldeklasse kann eingestellt werden, ob archivierte Meldungen nach Ablauf der Archivierungsdauer gelöscht oder ausgelagert werden sollen. Das Bit hat nur dann eine Bedeutung, wenn ARCHIVE_ALERT_BIT_ATTR = 1 ist. Anhand dieses Bits entscheidet der Daten-Manager, ob die Meldung gelöscht (Bit = 1) oder ausgelagert (Bit = 0) wird. Das Attribut wird über das Config _alert_class (Meldeklasse) in der Registerkarte "Argumente" parametriert. |
R | x | |||
_dest | int | Gibt Auskunft über den momentan aktiven Alarmbereich. | R | x | ||||
_dest_text | langString | Zeigt den Statustext des Zielalarmbereichs des Alarms an. | R | x | ||||
_direction | bool | 0/16 | Melderichtung. Ist immer TRUE für KAM (0) und immer FALSE für GING (16). | R | x | |||
_discrete_states | bool |
Handelt es sich um eine Meldebehandlung diskreter Werte? _discrete_states wird beim Hinzufügen eines Alarmbereichs vom _type DPDETAIL_RANGETYPE_MATCH oder DPDETAIL_RANGETYPE_SET implizit gesetzt.
Hinweis: Das Attribut wird beim ASCII Export nicht berücksichtigt, da es nur zur Laufzeit verwendet und nicht in der Datenbank gesichert wird. |
R | X | ||||
_dp_list | dyn_dpid |
DP-Liste für Summenmeldung. Es kann entweder eine _dp_list oder ein _dp_pattern gesetzt werden. Beide können nicht gleichzeitig gesetzt sein. Dieses Attribut kann nur bei Summenmeldungen verwendet werden. |
R/W | X | x | x | ||
_dp_pattern | string |
DP-Pattern für Summenmeldung. Dieses Attribut kann nur bei Summenmeldungen verwendet werden. |
R/W | X | x | x | ||
_escalation_class | dpid | Eskalierte Alarmklasse einer Meldung. Die Meldeklasse wird intern auf einen DpIdentifier umgewandelt. Dieses Attribut kann nur verwendet werden, wenn eine RDB-Kopplung zum Einsatz kommt. | R |
X
|
||||
_event | int |
Löst/Liest eine Meldeaktion aus. Multiinstanzalarme können nur mithilfe dieses Attributs ausgelöst/aktualisiert/quittiert werden. Für mögliche Konstanten siehe Meldebehandlung_"_alert_hdl.<i>._event". Hinweis: Bei Multiinstanzalarmen ist es nicht zulässig, die Meldeklasse einer Alarminstanz zu eskalieren und gleichzeitig eine Meldeaktion (_event) auszulösen. Hinweis: _class muss nicht direkt nach _event:DPATTR_ALERTEVENT_CAME kommen, um als Alarmklasse verwendet zu werden. Hinweis: Mehrfach gleiche Attribute in einer Gruppe zur gleichen Alarminstanz werden ignoriert (z.B.: sind _event:DPATTR_ALERTEVENT_CAME und _event:DPATTR_ALERTEVENT_SINGLE_ACK in einem setAlert() nicht möglich). |
W | X | ||||
_filtered | bool | Definiert, ob dieser Alarm aufgrund von aktivem Filter in der entsprechenden Summenmeldung versteckt werden soll (_filter_active oder _force_filtered). Wird für Einzelmeldungen verwendet. | R | X | X (nur bei Summenalarmen) | |||
_force_filtered | bool | Wenn das Attribut auf TRUE gesetzt wird, verhält sich WinCC OA als ob eine Summenmeldung das "_filtered"-Attribut gesetzt hätte (_filtered liefert TRUE). Dieses Attribut kann nur bei Summenmeldungen verwendet werden. | R/W | X (nur bei binären Alarmen oder Summen-alarmen) | X | x | X (nur bei binären Alarmen oder Summenalarmen) | |
_filter_threshold | int | Definiert die maximale Anzahl von Einzelmeldungen, die aktiv sein können bevor die Filterung aktiviert wird. Siehe Automatische Filterung von Alarmen. Dieses Attribut kann nur bei Summenmeldungen verwendet werden. | R/W | X | ||||
_filter_active | bool | Ist TRUE, wenn _filter_threshold erreicht wurde (siehe oberhalb) oder _force_filter_active (siehe unterhalb) gesetzt wurde. Siehe Automatische Filterung von Alarmen. Dieses Attribut kann nur bei Summenmeldungen verwendet werden. | R | X | X (nur bei Summenalarmen) | |||
_force_filter_active | bool |
Wenn das Attribut auf TRUE gesetzt wird, verhält sich WinCC OA als ob der Grenzwert erreicht wurde (_filter_active gibt TRUE zurück). Siehe Automatische Filterung von Alarmen. Dieses Attribut kann nur bei Summenmeldungen verwendet werden. |
R/W | X | X (nur bei Summenalarmen) | |||
_help | langString | Hilfe (Hilfetext oder Pfad zur Hilfe-Datei). | R/W | X | ||||
_hyst_time | int |
Das _hyst_time-Attribut (genannt Verzögerung in der alert_hdl-Konfiguration ) legt die Mindestzeit in Sekunden fest, wie lange ein Alarm in einem schlechten Bereich vorhanden sein muss, damit er ausgelöst wird. Wenn der Alarm wieder in einem guten Bereich ist, wird er sofort gelöscht. Für eine Alarm-Instanz kann die _alert_hdl.<detail>._hyst_time verwendet werden, um die, für eine Alarminstanz verwendeten, Werte zu erhalten. Die Konfiguration gilt pro Alarmbereich. Für mehr Information, siehe Kapitel Verzögerte Alarme. |
R/W | |||||
_hyst_type | int | Wird Hysterese verwendet? _hyst_time - siehe oberhalb. | R/W | X | ||||
_impulse | bool | Impulsalarm aktivieren/deaktivieren. | R/W | X | ||||
_inact_ack | bool | Nicht mehr aktuelle Meldungen müssen quittiert werden. | R | X | ||||
_inactive | bool | 11/27 | Markiert durch Deaktivierung der Meldebehandlung erzeugte GING-Meldungen. | R | X | |||
_l_hyst_limit | var* | Untere Unempfindlichkeitsschranke (Hysterese). Das Attribut hat denselben Variabletypen wie das Datenpunktelement z.B. int _I_hyst_limit. | R/W | X | ||||
_l_incl | bool | Untere Grenze des Bereiches wird inkludiert. | W | X | ||||
_l_limit | var* | Untere Grenze des Bereiches. | R/W | X | ||||
_last
|
bool | 2/18 |
Repräsentiert den Status des letzten Alarmpaars das gekommen oder gegangen ist. Bei Erstellen eines Alarmpaars (KAM) wird _last (Bit 2) gesetzt. Sobald der Alarm geht (GING), wird _last (Bit 18) gesetzt. Ist ein Alarmpaar noch im KAM-Zustand, wird durch einen GING-Impuls Bit 2 auf FALSE gesetzt, Bit 18 ändert sich aber nicht. Das Attribut wird entweder auf KAM- oder auf GING-Seite gesetzt. Sobald das Alarmpaar obsolet wird, werden beide Seiten auf FALSE gesetzt.
Hat ein Messwert mehr als einen Schlechtbereich, dann kann es vorkommen, dass der Messwert von "gut" in einen Bereich springt, der nicht der angrenzende Bereich von "gut" ist. In WinCC OA liegen dann auch alle Bereiche zwischen "gut" und dem aktuellen Schlechtbereich an (z.B.: mit einem Alarm liegt auch gleichzeitig eine Warnung an). Beim aktuellen Schlechtbereich wird das Flag "_last" gesetzt, die anderen dazwischenliegenden Bereiche stehen zwar auch an, haben aber dieses Flag nicht aktiviert. |
R | X | |||
_last_of_all
|
bool
|
3/19
|
Wenn ein Messwert mehrfach in einen Schlechtbereich geht und diesen wieder verlässt OHNE das dazwischen quittiert wurde, liegen eine Menge von noch unquittierten Meldungen an. Die erste (=älteste) Meldung wird mit dem Flag "_last_of_all" markiert. Diese Meldung ist auch zuerst zu quittieren. Im Beispiel von _last hat die Meldung dann nicht nur das Flag "_last", sondern auch das Flag "_last_of_all" gesetzt.
"_last_of_all"-Flag wird vom aktuellen Meldeereignis eines Messwertes auf das nächste Meldeereignis dieses Messwertes weitergereicht. Das Flag "_last" ist nur dann interessant, wenn man mehr als einen Schlechtbereich hat. "_last" kann in einem Stapel von nicht quittierten Meldungen eines Messwertes auch bei mehreren Melde-Ereignissen gesetzt sein. |
R |
|
X | ||
_mapped_text | string | Derzeit nicht verwendet. | R | X | ||||
_match | string |
Pattern das definiert, wann der Bereich eine Meldung auslösen soll. Die Pattern hängen vom Datentyp des DPEs ab: Bit32: 01X…
1 .. Pattern übereinstimmend, wenn Bit32 an der Stelle eine 1 hat 0 .. Pattern übereinstimmend, wenn Bit32 an der Stelle eine 0 hat X .. Pattern übereinstimmend, wenn Bit32 an der stelle eine 0 oder ein 1 hat z.B. 11111111111111111111111111111111 10101010101010101010101010101010 XXXXXXXXXXXXXXXX1111111111111111
INT, FLOAT: Bereiche z.B. 0-10 oder 6.3-20.8 (als Komma wird in allen Sprachen . (Punkt) verwendet). TEXT: Wildcards mit * und ? Ein * kann immer für alle Datentypen verwendet werden und führt immer zu einer Übereinstimmung.
Dieses Attribut wird für diskrete Alarme verwendet. |
R/W | X | ||||
_min_prio | char |
Mindestpriorität (zum Unterdrücken von Meldungen). Alarme unterhalb dieser Mindestpriorität gelten nicht für den Summenalarm, für den dieses Attribut gesetzt wurde. |
R/W | X | X | |||
_multi_instance | bool | Meldebehandlung am Datenpunktelement wird für Multiinstanzalarme verwendet. | R/W | X | ||||
_neg | bool | Wertebereichsbehandlung umkehren (negieren). Negieren bedeutet, dass von die Attribute _match und _set negiert werden. Dieses Attribut wird für diskrete Alarme verwendet. | R/W | X | x | |||
_num_ranges | unsigned |
Anzahl der Bereiche. Die Bereiche legen Sie mit _alert_hdl.<rangeNo>._type an. |
W |
X
|
X | |||
_obsolete | bool | 1/17 | Dieses Attribut gibt an, ob ein Alarm obsolet ist. Bit 1 und 17 werden immer gemeinsam als Paar gesetzt. Ein Alarm ist obsolet, wenn er in den Status "kein Alarm" übergegangen ist, oder er gelöscht werden kann, weil ein neuer Alarm ansteht. Wenn ein Alarm obsolete ist, werden _last und _last_of_all auf FALSE gesetzt. | R | X | |||
_ok_range | bool | Gut-Bereich einer Bit-Meldungsbehandlung | R/W | X | ||||
_oldest_ack
|
bool |
9/25
|
Älteste zu quittierende Meldung einer Meldebehandlung. Wird entweder für die KAM-Seite (Bit 9) oder GING-Seite (Bit 25) gesetzt. | R | X | |||
_order | int |
Reihenfolge der Meldungen für Summenmeldungen.
Konstanten: ORDER_PRIO_STATE = 0, // Priorität vor Meldezustand ORDER_SIGN_STATE = 1, // Kurzzeichen vor Meldezustand ORDER_STATE_PRIO = 2, // Meldezustand vor Priorität ORDER_STATE_SIGN = 3 // Meldezustand vor Kurzzeichen
Dieses Attribut kann nur bei Summenmeldungen verwendet werden. |
R | X | ||||
_orig_hdl | bool | Original- (TRUE) oder Online-Wert einer Meldebehandlung unterziehen. | R/W | X | ||||
_panel | string | Panel zur Queranwahl. | R/W | X | ||||
_panel_param | dyn_string | Parameter zum Queranwahl-Panel. | R/W | X | ||||
_param | bool | Kann Meldebehandlung parametriert werden? | R | X | ||||
_partn_idx | int |
Meldungsindex des Partners einer Meldung.
Um Alarme, die gleichzeitig auftreten eindeutig zu machen gibt es in der Alarmzeit einen Zähler. Das Attribut _partn_idx ist dieser Zähler für das Attribut _partner vom Typ time. |
R | X | ||||
_partner
|
time |
Meldungszeit des Partners einer Meldung.
Ein Alarm besteht aus 2 Meldungen - KAM und GING. Der Partner von KAM ist GING und der Partner von GING ist KAM. _partner der KAM-Meldung liefert deswegen die GING-Zeit oder 1.1.1970 (wenn der Alarm noch nicht gegangen ist). _partner der GING-Meldung liefert die KAM-Zeit zurück. |
R | X | ||||
_partner_alert_id | string | Alert-Bezeichner des Partners. Mit dem Attribut _partner_alert_id kann auf die _alert_id des Partners zugegriffen werden. Der Partner von KAM ist GING, der Partner von GING ist KAM: | R | X | ||||
_prio_pattern | string | Prioritätspattern für Summenmeldung. Dieses Attribut kann nur bei Summenmeldungen verwendet werden. | R/W | X | ||||
_prior | int | Priorität des Meldebereiches. | R | X | ||||
_set | dyn_var* | Mengenattribut. Es wird eine beliebige Anzahl einzelner (isolierter) Werte zur Definition der gültigen Wertemenge angegeben. Dieses Attribut wird für diskrete Alarme verwendet. | R/W | X | ||||
_single_ack | bool | 7/23 |
Wird auf KAM- und/oder GING-Seite (Bit 7 oder 23) gesetzt, wenn eine Einzelquittierung erfolgt. Einzelquittierungspflichtig. Das Attribut wird über das Config _alert_class (Meldeklasse) -> Registerkarte "Argumente" parametriert. |
R | X | |||
_state | bit32 |
Das Attribut alert_hdl.._state fasst die Statusbits (_obsolete, _ackable. etc) in einem Bit32 zusammen. _state von einer KAM-Meldung gibt in den ersten 16 Bits die Statusbits für die KAM-Meldung zurück. _state beinhaltet Bits für kommende sowie für gehende Meldungen. Die Bits 0-15 sind für "KAM" reserviert, die Bits 16-31 für "GING". _state von einer GING-Meldung gibt in den ersten 16 Bits die Status-Bits für das GING-Meldung zurück. Am Bit 0 _direction kann man erkennen, ob der Status von einer GING- oder KAM-Meldung stammt. |
R | X | ||||
_status64_pattern | bit64 |
Filtert Bits heraus, welche bei einer Statusänderung eine Meldung auslösen. Ändern sich die angegebenen Statusbits des Pattern, wird eine Meldung ausgelöst. Das Attribut gilt nur für diskrete Meldebehandlung. |
R/W | X | ||||
_status64_match | string |
Filtert Bits heraus, welche bei einer Statusänderung in einem bestimmten Bereich eine Meldung auslösen. Ändern sich die angegebenen Statusbits der Übereinstimmung, wird eine Meldung ausgelöst. Das Attribut gilt nur für diskrete Meldebehandlung. |
R/W | X | ||||
_sum | bool | 12/28 | Meldung ist Summenmeldung? Wird auf beiden Seiten (Bit 12 und 28) gesetzt. | R | X | |||
_sumalerts | dyn_dpid | Zeigt in welcher Summenmeldung sich eine Meldung befindet. | R | X | ||||
_system_time | time |
Aktuelle Systemzeit. Die Alarmzeit wird anhand der Zeit der Wertänderung oder der beim _event-Attribut angegebenen Zeit gesetzt. Das kann bei einer Peripherie, die z.B. nicht immer online ist, unterschiedlich zur aktuellen Zeit sein. _system_time ist die Zeit zu der WinCC OA den Alarm angelegt hat. Zum Beispiel: Eine SPS ist durch eine Einwahlverbindung an ein WinCC OA System angebunden. Um 12:00 bricht ein Feuer aus. Die SPS versucht eine Verbindung zu einer Zentrale aufzubauen. Dies gelingt 20 Min. lang nicht, weil es Probleme mit der Telefonleitung gibt. Wenn der Alarm um 12:20 gemeldet wird, besitzt der Alarm die Alarmzeit 12:00. Falls später die Frage "warum die Leitwarte 20 Min. brauchte bevor sie die Feuerwehr alarmierte", auftaucht, kann sie durch _system_time beweisen, dass es 20 min gedauert hat, bis der Alarm angekommen ist. |
R | X | ||||
_text | langString | Zustandstext zum Bereich. | R/W | X | X (nur lesbar) | |||
_text0 | langString | Text für digital 0 (DPCONFIG_ALERT_BINARYSIGNAL). | R/W | X | ||||
_text1 | langString | Text für digital 1 (DPCONFIG_ALERT_BINARYSIGNAL). | R/W | X | ||||
DPConfig_type | int |
Das Attribut _type wird zum Anlegen einer Meldebehandlung und zum Einfügen von Alarmbereichen bei einem DPCONFIG_ALERT_NONBINARY_SIGNAL verwendet. Meldebehandlung legen Sie wie folgt an: _alert_hdl.._type = DPCONFIG_ALERT_BINARYSIGNAL = 12, DPCONFIG_ALERT_NONBINARYSIGNAL = 13, DPCONFIG_SUM_ALERT = 59
Alarmbereiche legen Sie wie folgt an: _alert_hdl.<rangeNo>._type = DPDETAIL_RANGETYPE_MIN=6, DPDETAIL_RANGETYPE_MAX=7, DPDETAIL_RANGETYPE_MINMAX=4, DPDETAIL_RANGETYPE_MATCH=5, DPDETAIL_RANGETYPE_SET=3 |
W | X | ||||
_u_hyst_limit | var* | Obere Unempfindlichkeitsschranke (Hysterese). | R/W | X | ||||
_u_incl | bool | Obere Grenze des Bereiches wird inkludiert. | R/W | X | ||||
_u_limit | var* | Obere Grenze des Bereiches. | R/W | X | ||||
_value | var* | Wert, welcher zu der Meldung führt. | R | X | ||||
_value_status64 | Bit64 | Statusänderung, welche zu der Meldung führt. | R | X | ||||
_visible
|
bool |
4/20
|
Der Alarmschirm zeigt nur Alarme mit dem Wert _visible = TRUE an. Ein Alarm wird unsichtbar wenn er in den Status "kein Alarm" übergegangen ist, oder ein neuer Alarm ansteht und die Option "alte Alarme quittieren" nicht in der Alarmklasse definiert ist. |
R | X | |||
_went_text | langString | Zustandstext zur "GING"-Meldung | R/W | X |
*Typ "var" entspricht dem Typ des Elements, dem die Meldebehandlung zugeordnet wurde.
Attribute die mit dpQuery - SELECT ALERT abgefragt werden können
Bei folgenden Attributen ist eine Abfrage der aktuell anstehenden Alarme (dpQuery - SELECT ALERT) bzw. eine historische Abfrage (dpQuery - SELECT ALERT + TIMERANGE) möglich.
Attribute | DpQuery - SELECT ALERT | DpQuery - SELECT ALERT + TIMERANGE |
---|---|---|
_abbr | Ja | Ja |
_abbr_pattern | Ja | Nein |
_ack_deletes | Ja | Nein |
_ack_has_prio | Ja | Nein |
_ack_oblig | Ja | Ja |
_ack_possible | Ja | Nein |
_ack_state | Ja | Ja |
_ack_time | Ja | Ja |
_ack_type | Ja | Ja |
_ack_user | Ja | Ja |
_ackable | Ja | Ja |
_act_prior | Ja | Nein |
_act_range | Ja | Nein |
_act_state | Ja | Nein |
_act_state_color | Ja | Nein |
_act_state_font_style | Ja | Nein |
_act_state_fore_color | Ja | Nein |
_act_state_prior | Ja | Nein |
_act_state_range | Ja | Nein |
_act_state_text | Ja | Nein |
_act_text | Ja | Nein |
_active | Ja | Nein |
_add_values | Ja | Ja |
_add_value_1 | Ja | Ja |
_alert_color | Ja | Ja |
_alert_font_style | Ja | Ja |
_alert_fore_color | Ja | Ja |
_alert_id | Ja | Ja |
_alerts | Ja | Nein |
_archive | Ja | Ja |
_both_ack | Ja | Nein |
_came_ack | Ja | Nein |
_came_time | Ja | Nein |
_came_time_idx | Ja | Nein |
_class | Ja | Ja |
_comment | Ja | Ja |
_del_date | Ja | Ja |
_delete | Ja | Ja |
_dest | Ja | Ja |
_dest_text | Ja | Ja |
_direction | Ja | Ja |
_dp_list | Ja | Nein |
_dp_pattern | Ja | Nein |
_escalation_class | Ja | Nein |
_filter_active | Ja | Nein |
_filter_threshold | Ja | Nein |
_filtered | Ja | Ja |
_force_filter_active | Ja | Nein |
_force_filtered | Ja | Ja |
_gone_time | Ja | Nein |
_gone_time_idx | Ja | Nein |
_help | Ja | Nein |
_hyst_type | Ja | Nein |
_impulse | Ja | Nein |
_inact_ack | Ja | Ja |
_inactive | Ja | Ja |
_last | Ja | Ja |
_last_of_all | Ja | Ja |
_mapped_text | Ja | Nein |
_match | Ja | Nein |
_min_prio | Ja | Nein |
_multi_instance | Ja | Nein |
_neg | Ja | Nein |
_non_ack | Ja | Nein |
_obsolete | Ja | Ja |
_ok_range | Ja | Nein |
_oldest_ack | Ja | Ja |
_order | Ja | Nein |
_orig_hdl | Ja | Nein |
_pair_ack | Ja | Nein |
_panel | Ja | Nein |
_panel_param | Ja | Nein |
_param | Ja | Nein |
_partn_idx | Ja | Ja |
_partner | Ja | Ja |
_partner_alert_id | Ja | Nein |
_prio_pattern | Ja | Nein |
_prior | Ja | Ja |
_set | Ja | Nein |
_single_ack | Ja | Ja |
_state | Ja | Ja |
_status64_match | Ja | Nein |
_status64_pattern | Ja | Nein |
_sum | Ja | Ja |
_sumalerts | Ja | Nein |
_summed_abbr | Ja | Nein |
_summed_alerts | Ja | Nein |
_summed_alerts_count | Ja | Nein |
_summed_classes | Ja | Nein |
_summed_colors | Ja | Nein |
_summed_prios | Ja | Nein |
_summed_states | Ja | Nein |
_system_time | Ja | Ja |
_text0 | Ja | Nein |
_text1 | Ja | Nein |
_type | Ja | Nein |
_value | Ja | Ja |
_value_status64 | Ja | Ja |
_visible | Ja | Ja |
Attribute für Summenmeldungen
Attribute für Summenmeldungen | Typ | Beschreibung |
---|---|---|
_sumalerts | dyn_dpid | Zeigt bei einem Alarm, in welchen Summenalarmen er sich befindet. |
_summed_abbr | dyn_langString | Liste der anstehenden Kurzzeichen |
_summed_alerts | dyn_atime | Liste der anstehenden Alarme (DPE + Alarmzeit) |
_summed_colors | dyn_string | Liste der anstehenden Meldefarben |
_summed_classes | dyn_dpid | Liste der anstehenden Meldeklassen |
_summed_prios | dyn_char | Liste der anstehenden Prioritäten |
_summed_states | dyn_int | Liste der anstehenden Alarmzustände (kam quittiert. etc.) |
_summed_alerts_count | unsigned | Zeigt die Anzahl der anstehenden Alarme, welche sich im Summenalarm befinden. |
CTRL-Konstante |
Int-Wert | Beschreibung |
---|---|---|
DPCONFIG_NONE | 0 | keine Meldebehandlung |
DPCONFIG_ALERT_BINARYSIGNAL | 12 | Meldebehandlung binärer Größen |
DPCONFIG_ALERT_NONBINARYSIGNAL | 13 | Meldebehandlung analoger Größen |
DPCONFIG_SUM_ALERT |
59 | Feldwärmebehandlung Summenalarme |
Meldebehandlung "_alert_hdl.<i>._act_state"
Mit Integer-Konstanten kann der aktuelle Meldezustand (Quittierungsstatus) eines Meldungsbereichs wie der ganzen Meldebehandlung eines Datenpunktelements abgefragt werden. Die Detailnummer im Attribut bezieht sich auf den Index des Meldungsbereichs - siehe Attribute "_alert_hdl.<i>._type". Wird er weggelassen oder auf Null gesetzt, bezieht sich das Attribut auf den aktuellen Meldezustand der Meldebehandlung - siehe dpGet().
CTRL-Konstante | Int-Wert | Beschreibung |
---|---|---|
DPATTR_ALERTSTATE_NONE | 0 | keine Meldung |
DPATTR_ALERTSTATE_APP_NOT_ACK | 1 | kam bzw. kam/unquittiert |
DPATTR_ALERTSTATE_APP_ACK | 2 | kam/quittiert |
DPATTR_ALERTSTATE_DISAPP_NOT_ACK | 3 | ging/unquittiert |
DPATTR_ALERTSTATE_APP_DISAPP_NOT_ACK | 4 | kam/ging/unquittiert |
Meldebehandlung "_alert_hdl.<i>._ack_state"
Mit folgenden Integer-Konstanten kann der aktuelle Quittierungszustand eines Meldungsbereichs eines Datenpunktelements abgefragt werden. Bei der Funktion alertSet() ist das Attribut _ack_state mit der richtigen Detailnummer (Alarmbereich bei analogen Meldungen) und der richtigen Zeit zu verwenden. Mit alertSet() kann man einen speziellen Alarm quittieren. Diese Funktion verwendet der AESchirm.
CTRL-Konstante | Int-Wert | Beschreibung |
---|---|---|
DPATTR_ACKTYPE_NOT | 0 | Nicht quittierbar! |
DPATTR_ACKTYPE_MULTIPLE | 1 | Gesamtquittierung |
DPATTR_ACKTYPE_SINGLE | 2 | Einzelquittierung |
Meldebehandlung "_alert_hdl.<i>._event"
Mit den folgenden Integer-Konstanten können Meldeaktionen gesetzt werden.
CTRL-Konstante | Int-Wert | Beschreibung |
---|---|---|
DPATTR_ALERTEVENT_CAME | 0 | Meldung KAM. |
DPATTR_ALERTEVENT_CAME_IMPULSE | 1 | Meldung KAM mit Impulsalarm. |
DPATTR_ALERTEVENT_WENT | 2 | Meldung GING. |
DPATTR_ALERTEVENT_MULTIPLE_ACK | 3 | Meldung wurde gesamtquittiert. |
DPATTR_ALERTEVENT_SINGLE_ACK | 4 | Meldung wurde einzeln quittiert. |
DPATTR_ALERTEVENT_WENT_INACTIVE | 5 | Deaktivierte Meldung GING. |
DPATTR_ALERTEVENT_WENT_OBSOLETE | 7 |
Weder eine KAM- noch eine GING-Meldung wird ausgelöst. Die Konstante kann verwendet werden, um einen Alarm explizit zu löschen (z.B. wenn der Alarm auf der SPS nicht mehr existiert). |
Meldebehandlung "_alert_hdl.<i>._hyst_type"
Mit den folgenden Integer-Konstanten kann bestimmt werden, ob einer Meldebehandlung eine Hysterese zugeordnet wird.Dieses Kapitel beschreibt die Attribute einer Meldebehandlung, Attribute einer Summenmeldebehandlung sowie die Statusbits für das Attribut _alert_hdl.._state (siehe Statusbits für Attribut _alert_hdl.._state).
Es wird zwischen zwei Arten von Attributen für eine Meldebehandlung unterschieden:
-
Attribute für die Parametrierung - Attribute der Parametrierung, z.B. die Grenzen der Meldebehandlung eines Datenpunktelementes, werden mit dpSet() gesetzt bzw. mit dpGet() oder dpConnect() abgefragt.
-
Attribute der Alarme - Attribute der Alarme, z.B. der Kommentar (_comment) für einen Alarm, der um 10:00 Uhr ausgelöst wurde, kann nur mit alertSet(), alertGet(), alertConnect() bzw. mit SELECT ALERT gesetzt bzw. abgefragt werden, da zu ihrer Bestimmung neben dem DPE auch die Alarmzeit notwendig ist.
Die folgende Tabelle zeigt alle Attribute einer Meldebehandlung. In der Tabelle finden Sie auch die Funktionen mit denen das Attribut gesetzt bzw. abgefragt werden kann.
Attribute (neutral) vom _alert_hdl.. |
Datentyp | Bit | Beschreibung |
Attribut kann gesetzt werden (W)
Attribut kann nur abgefragt werden (R) |
Attribute, die durch dpSet() setzbar oder durch dpGet() / dpConnect() abfragbar sind | Attribute, die mit alertSet() modifiziert oder mit alertConnect() / dpQuery sowie mit SQL Abfrage SELECT ALERT abgefragt werden können | Attribute die setzbar sind, wenn _alert_hdl aktiv ist. |
---|---|---|---|---|---|---|---|
_abbr | langstring | Kurzzeichen (z.B.: A für Alarm) der Priorität eines Alarmes, der um atime aufgetreten ist. | R | X | |||
_abbr_pattern | string |
Kurzzeichen-Pattern für Summenmeldung. Ermöglicht Meldungen nach ihrem Prioritätenkürzel auszuwählen. Werden mehrere Zeichen angegeben, wird jede Meldung, die eines dieser Zeichen als Kürzel besitzt, berücksichtigt ("AW" erfasst alle Meldungen der Prioritäten "A" und "W"). Dieses Attribut kann nur bei Summenmeldungen verwendet werden. |
R/W | X | |||
_ack | int | Wird dazu verwendet, um alle unquittierten Alarme zu einem Datenpunktelement zu quittieren (siehe auch _ack_state bzw. Meldebehandlung_"_alert_hdl.<i>._ack_state"). Dies wird z.B. im _alert_hdl-PARA-Panel gemacht, wenn dort die Meldungen quittiert werden, um den Alarm parametrieren zu können. | W | X | |||
_ack_deletes | bool |
"Quittieren löscht" summenmelden? Die berücksichtigten Einzelmeldungen werden auf solche bestimmter Quittierungsarten eingeschränkt. Siehe Kapitel _alert_class (Meldeklasse) - Quittierungsart. Dieses Attribut kann nur bei Summenmeldungen verwendet werden. |
R/W | X | |||
_ack_has_prio | bool |
Reihenfolge der Quittierzustände für Summenmeldungen. Dieses Attribut kann nur bei Summenmeldungen verwendet werden. |
R/W | X | |||
_ack_oblig | bool | 6/22 | Wird auf KAM- und/oder GING-Seite (Bit 6 oder 22) gesetzt, je nachdem was quittiert werden muss. Solange _ack_oblig gesetzt ist, bleibt ein Alarmpaar sichtbar und kann nicht gelöscht werden. | R | X | ||
_ack_possible | bool | 5/21 | Wird auf KAM- und/oder GING-Seite (Bit 5 oder 21) gesetzt, je nachdem was quittiert werden kann. | R | X | ||
_ack_state | int |
Quittierart einer Meldung: Die Abfrage gibt zurück, wie die Meldung (KAM/GING), die zur angegebenen Zeit aktiv ist, quittiert wurde. Um die Meldung zu quittieren, muss alertSet() verwendet werden. Dabei muss die Zeit von der Meldung bekannt sein. Für das Attribut sind die Konstanten DPATTR_ACKTYPE_SINGLE oder DPATTR_ACKTYPE_MULTIPLE möglich. Siehe auch Meldebehandlung_"_alert_hdl.<i>._ack_state". |
R/W | X | |||
_ack_time | time | Quittierungszeit einer Meldung. | R | X | |||
_ack_type
|
int |
Quittierungsart: Konstanten: //Quittieren löscht ACKNOWLEDGEMENT_DELETES = 0, // nicht quittierbar ACKNOWLEDGEMENT_NONE = 1, // kam ist quittierbar ACKNOWLEDGEMENT_CAME = 2, // Meldungspaar ist quittierungspflichtig ACKNOWLEDGEMENT_PAIR = 3, // kam und ging sind quittierungspflichtig ACKNOWLEDGEMENT_CAMEANDGONE = 4, //Quittierungsart für Summenmeldungen, entspricht "nicht quittierbar" ACKNOWLEDGEMENT_SUMALERT = 5 |
R | X | |||
_ack_user | unsigned | Benutzer, der die Meldung quittiert hat. | R | X | |||
_ackable | bool | 5/21 | Ist Meldung quittierbar? | R | X | ||
_act_prior | char |
Priorität des aktuellen Bereichs. Nicht relevant für Multiinstanzalarme. |
R | X | |||
_act_range | int |
Aktueller Bereich. Nicht relevant für Multiinstanzalarme. |
R | X | |||
_act_state | int |
Quittierungszustand der höchsten anstehenden Meldung. Mit diesem Attribut kann der aktuelle Meldezustand der höchsten anstehenden Meldung abgefragt werden. 1 = KAM unquittiert 2 = KAM quittiert 3 = GING unquittiert 4 = KAM/GING unquittiert 0 = Gutbereich (keine Meldung). Für mögliche Konstanten siehe auch Abschnitt Meldebehandlung_"_alert_hdl.<i>._act_state
Nicht relevant für Multiinstanzalarme. |
R | X | |||
_act_state_color | string |
Hintergrund-Farbstring der höchsten anstehenden Meldung. Nicht relevant für Multiinstanzalarme. |
R | X | |||
_act_state_fore_color | string |
Vordergrund-Farbstring der höchsten anstehenden Meldung. Nicht relevant für Multiinstanzalarme. |
R |
X
|
|||
_act_state_font_style | string |
Schriftart der höchsten anstehenden Meldung. Nicht relevant für Multiinstanzalarme. |
R |
X
|
|||
_act_state_prior | char |
Priorität der höchsten anstehenden Meldung. Nicht relevant für Multiinstanzalarme. |
R |
X
|
|||
_act_state_range | int |
Bereich der höchsten anstehenden Meldung. Bei einer Meldung mit den Bereichen OK/HI/URGENT. Ein Wert löst einen Alarm aus und führt zu URGENT und danach zu HI. Solange URGENT nicht quittiert wird und ansteht, ist _act_state_range 3 (URGENT steht an und hat die höchste Priorität). act_range ist 2 (die letzte Wertänderung führe zum Bereich HI). Wird URGENT quittiert, ist auch _act_state_range 2 (HI ist jetzt die höchste anstehende Meldung). Nicht relevant für Multiinstanzalarme. |
R |
X |
|
||
_act_state_text | langString |
Text der höchsten anstehenden Meldung. Nicht relevant für Multiinstanzalarme. |
R |
X
|
|||
_act_text | langString |
Text des aktuellen Bereichs. (Bereichstext des aktuellen Wertes). Nicht relevant für Multiinstanzalarme. |
R | X | |||
_active | bool | Ist Meldebehandlung aktiv? | R/W | X | X | ||
_add_text | dpid | Speichert Textfragnente für Statusbits. | R/W | X | |||
_add_values | dyn_anytype | Enthält alle Begleitwerte eines Alarms. | R/W | X | |||
_add_value_1 .. _add_value_32 | anytype | Direktzugriff auf die ersten 32 Begleitwerte eines Alarms. | R/W | X | |||
_alert_color | string | Hintergrund-Farbstring der Meldung. | R | X | |||
_alert_fore_color | string | Vordergrund-Farbstring der Meldung. | R | X | |||
_alert_font_style | string | Schriftart der Meldung. | R | X | |||
_alert_id | string | Die externe ID des Multiinstanzalarms. Dient der Identifikation eines Multiinstanzalarms von und zur Peripherie über einen Treiber/Manager. Dieses Attribut ist getrennt für die KAM- und GING-Meldung eines Alarmpaares verfügbar. | R/W | X | |||
_alerts | dyn_atime |
_alert_hdl.<detail>._alerts Liefert alle Alarmpaare (KAM-Zeit und GING-Zeit), die der Event für dieses Detail kennt. Das gilt auch für Alarme, die noch zum Löschen anstehen. Ist <detail> 0, werden die Alarme von allen Details geliefert. |
R | X | |||
_archive | bool | 10/26 | Wird/Soll die Meldung archiviert (werden)? Wird auf beiden Seiten (Bit 10 und 26) gesetzt. | R | X | ||
_both_ack | bool |
"beide sind quittierungspflichtig" summenmelden? Die berücksichtigten Einzelmeldungen werden auf solche bestimmter Quittierungsarten eingeschränkt. Siehe Kapitel _alert_class (Meldeklasse) - Quittierungsart. Dieses Attribut kann nur bei Summenmeldungen verwendet werden. |
R/W | X | |||
_came_time | time | Zeitpunkt der KAM-Meldung. | R | X | |||
_came_time_idx | int | Zähler um die KAM-Zeit für zeitgleiche Meldungen eindeutig zu kennzeichnen. | R | X | |||
_gone_time | time | Zeitpunkt der GING-Meldung. | R | X | |||
_gone_time_idx | int | Zähler um die GING-Zeit für zeitgleiche Alarme eindeutig zu kennzeichnen. | R | X | |||
_class
|
dpid |
Verweis auf die Meldeklasse des Bereiches. Die Meldeklasse wird intern auf einen DpIdentifier umgewandelt. Hinweis: Bei Multiinstanzalarmen ist es nicht zulässig, die Meldeklasse einer Alarminstanz zu eskalieren und gleichzeitig eine Meldeaktion (_event) auszulösen. Hinweis: _class muss nicht direkt nach _event:DPATTR_ALERTEVENT_CAME kommen, um als Alarmklasse verwendet zu werden. |
R/W | X | |||
_comment | string | Benutzerkommentar zu einer Meldung. | R/W | X | |||
_del_date | time | Wann wird die Meldung gelöscht/ausgelagert? Das Attribut wird über das Config _alert_class (Meldeklasse) in der Registerkarte "Argumente" parametriert. | R | X | |||
_delete
|
bool |
15/31
|
Gibt an, ob ein Alarmpaar das gelöscht werden kann (wenn es obsolet und unsichtbar ist) gelöscht oder ausgelagert wird. Wird auf beiden Seiten (Bit 15 und 31) gesetzt. In der Meldeklasse kann eingestellt werden, ob archivierte Meldungen nach Ablauf der Archivierungsdauer gelöscht oder ausgelagert werden sollen. Das Bit hat nur dann eine Bedeutung, wenn ARCHIVE_ALERT_BIT_ATTR = 1 ist. Anhand dieses Bits entscheidet der Daten-Manager, ob die Meldung gelöscht (Bit = 1) oder ausgelagert (Bit = 0) wird. Das Attribut wird über das Config _alert_class (Meldeklasse) in der Registerkarte "Argumente" parametriert. |
R | X | ||
_dest | int | Gibt Auskunft über den momentan aktiven Alarmbereich. | R | X | |||
_dest_text | langString | Zeigt den KAM- bzw. GING-Text des momentan aktiven Alarmbereichs an. | R | X | |||
_direction | bool | 0/16 | Melderichtung. Ist immer TRUE für KAM (0) und immer FALSE für GING (16). | R | X | ||
_discrete_states | bool |
Handelt es sich um eine Meldebehandlung diskreter Werte? _discrete_states wird beim Hinzufügen eines Alarmbereichs vom _type DPDETAIL_RANGETYPE_MATCH oder DPDETAIL_RANGETYPE_SET implizit gesetzt.
Hinweis: Das Attribut wird beim ASCII Export nicht berücksichtigt, da es nur zur Laufzeit verwendet und nicht in der Datenbank gesichert wird. |
R | X | |||
_dp_list | dyn_dpid |
DP-Liste für Summenmeldung. Es kann entweder eine _dp_list oder ein _dp_pattern gesetzt werden. Beide können nicht gleichzeitig gesetzt sein. Dieses Attribut kann nur bei Summenmeldungen verwendet werden. |
R/W | X | |||
_dp_pattern | string |
DP-Pattern für Summenmeldung. Dieses Attribut kann nur bei Summenmeldungen verwendet werden. |
R/W | X | |||
_escalation_class | dpid | Eskalierte Alarmklasse einer Meldung. Die Meldeklasse wird intern auf einen DpIdentifier umgewandelt. Dieses Attribut kann nur verwendet werden, wenn eine RDB-Kopplung zum Einsatz kommt. | R | X | |||
_event | int |
Löst/Liest eine Meldeaktion aus. Multiinstanzalarme können nur mithilfe dieses Attributs ausgelöst/aktualisiert/quittiert werden. Für mögliche Konstanten siehe Meldebehandlung_"_alert_hdl.<i>._event". Hinweis: Bei Multiinstanzalarmen ist es nicht zulässig die Meldeklasse einer Alarminstanz zu eskalieren und gleichzeitig eine Meldeaktion (_event) auszulösen. Hinweis: _class muss nicht direkt nach _event:DPATTR_ALERTEVENT_CAME kommen, um als Alarmklasse verwendet zu werden. Hinweis: Mehrfach gleiche Attribute in einer Gruppe zur gleichen Alarminstanz werden ignoriert (z.B.: sind _event:DPATTR_ALERTEVENT_CAME und _event:DPATTR_ALERTEVENT_SINGLE_ACK in einem setAlert() nicht möglich). |
W | X | |||
_filtered | bool | Definiert, ob dieser Alarm aufgrund von aktivem Filter in der entsprechenden Summenmeldung versteckt werden soll (_filter_active oder _force_filtered). Wird für Einzelmeldungen verwendet. | R | X | X (nur bei Summenalarmen) | ||
_force_filtered | bool | Wenn das Attribut auf TRUE gesetzt wird, verhält sich WinCC OA als ob eine Summenmeldung das "_filtered"-Attribut gesetzt hätte (_filtered liefert TRUE). Dieses Attribut kann nur bei Summenmeldungen verwendet werden. | R/W | X (nur bei binären Alarmen oder Summen-alarmen) | X | X (nur bei binären Alarmen oder Summenalarmen) | |
_filter_threshold | int | Definiert die maximale Anzahl von Einzelmeldungen, die aktiv sein können bevor die Filterung aktiviert wird. Siehe Automatische Filterung von Alarmen. Dieses Attribut kann nur bei Summenmeldungen verwendet werden. | R/W | X | |||
_filter_active | bool | Ist TRUE, wenn _filter_threshold erreicht wurde (siehe oberhalb) oder _force_filter_active (siehe unterhalb) gesetzt wurde. Siehe Automatische Filterung von Alarmen. Dieses Attribut kann nur bei Summenmeldungen verwendet werden. | R | X | X (nur bei Summenalarmen) | ||
_force_filter_active | bool |
Wenn das Attribut auf TRUE gesetzt wird, verhält sich WinCC OA als ob der Grenzwert erreicht wurde (_filter_active gibt TRUE zurück). Siehe Automatische Filterung von Alarmen. Dieses Attribut kann nur bei Summenmeldungen verwendet werden. |
R/W | X | X (nur bei Summenalarmen) | ||
_help | langString | Hilfe (Hilfetext oder Pfad zur Hilfe-Datei). | R/W | X | |||
_hyst_type | int | Wird Hysterese verwendet? | R/W | X | |||
_impulse | bool | Impulsalarm aktivieren/deaktivieren. | R/W | X | |||
_inact_ack | bool | Nicht mehr aktuelle Meldungen müssen quittiert werden. | R | X | |||
_inactive | bool | 11/27 | Markiert durch Deaktivierung der Meldebehandlung erzeugte GING-Meldungen. | R | X | ||
_l_hyst_limit | var* | Untere Unempfindlichkeitsschranke (Hysterese). Das Attribut hat denselben Variabletypen wie das Datenpunktelement z.B. int _I_hyst_limit. | R/W | X | |||
_l_incl | bool | Untere Grenze des Bereiches wird inkludiert. | W | X | |||
_l_limit | var* | Untere Grenze des Bereiches. | R/W | X | |||
_last
|
bool | 2/18 |
Repräsentiert den Status des letzten Alarmpaars das gekommen oder gegangen ist. Bei Erstellen eines Alarmpaars (KAM) wird _last (Bit 2) gesetzt. Sobald der Alarm geht (GING), wird _last (Bit 18) gesetzt. Ist ein Alarmpaar noch im KAM-Zustand, wird durch einen GING-Impuls Bit 2 auf FALSE gesetzt, Bit 18 ändert sich aber nicht. Das Attribut wird entweder auf KAM- oder auf GING-Seite gesetzt. Sobald das Alarmpaar obsolet wird, werden beide Seiten auf FALSE gesetzt.
Hat ein Messwert mehr als einen Schlechtbereich, dann kann es vorkommen, dass der Messwert von "gut" in einen Bereich springt, der nicht der angrenzende Bereich von "gut" ist. In WinCC OA liegen dann auch alle Bereiche zwischen "gut" und dem aktuellen Schlechtbereich an (z.B.: mit einem Alarm liegt auch gleichzeitig eine Warnung an). Beim aktuellen Schlechtbereich wird das Flag "_last" gesetzt, die anderen dazwischenliegenden Bereiche stehen zwar auch an, haben aber dieses Flag nicht aktiviert. |
R | X | ||
_last_of_all
|
bool
|
3/19
|
Wenn ein Messwert mehrfach in einen Schlechtbereich geht und diesen wieder verlässt OHNE das dazwischen quittiert wurde, liegen eine Menge von noch unquittierten Meldungen an. Die erste (=älteste) Meldung wird mit dem Flag "_last_of_all" markiert. Diese Meldung ist auch zuerst zu quittieren. Im Beispiel von _last hat die Meldung dann nicht nur das Flag "_last", sondern auch das Flag "_last_of_all" gesetzt.
"_last_of_all"-Flag wird vom aktuellen Meldeereignis eines Messwertes auf das nächste Meldeereignis dieses Messwertes weitergereicht. Das Flag "_last" ist nur dann interessant, wenn man mehr als einen Schlechtbereich hat. "_last" kann in einem Stapel von nicht quittierten Meldungen eines Messwertes auch bei mehreren Melde-Ereignissen gesetzt sein. |
R |
X |
||
_match | string |
Pattern das definiert, wann der Bereich eine Meldung auslösen soll. Die Pattern hängen vom Datentyp des DPEs ab: Bit32: 01X…
1 .. Pattern übereinstimmend, wenn Bit32 an der Stelle eine 1 hat 0 .. Pattern übereinstimmend, wenn Bit32 an der Stelle eine 0 hat X .. Pattern übereinstimmend, wenn Bit32 an der stelle eine 0 oder ein 1 hat z.B. 11111111111111111111111111111111 10101010101010101010101010101010 XXXXXXXXXXXXXXXX1111111111111111
INT, FLOAT: Bereiche z.B. 0-10 oder 6.3-20.8 (als Komma wird in allen Sprachen . (Punkt) verwendet). TEXT: Wildcards mit * und ? Ein * kann immer für alle Datentypen verwendet werden und führt immer zu einer Übereinstimmung.
Dieses Attribut wird für diskrete Alarme verwendet. |
R/W | X | |||
_min_prio | char |
Mindestpriorität (zum Unterdrücken von Meldungen). Alarme unterhalb dieser Mindestpriorität gelten nicht für den Summenalarm, für den dieses Attribut gesetzt wurde. |
R/W | X | X | ||
_multi_instance | bool | Meldebehandlung am Datenpunktelement wird für Multiinstanzalarme verwendet. | R/W | X | |||
_neg | bool | Wertebereichsbehandlung umkehren (negieren). Negieren bedeutet, dass von die Attribute _match und _set negiert werden. Dieses Attribut wird für diskrete Alarme verwendet. | R/W | X | |||
_num_ranges | unsigned |
Anzahl der Bereiche. Die Bereiche legen Sie mit _alert_hdl.<rangeNo>._type an. |
W |
X
|
|||
_obsolete | bool | 1/17 | Dieses Attribut gibt an, ob ein Alarm obsolet ist. Bit 1 und 17 werden immer gemeinsam als Paar gesetzt. Ein Alarm ist obsolet, wenn er in den Status "kein Alarm" übergegangen ist, oder er gelöscht werden kann, weil ein neuer Alarm ansteht. Wenn ein Alarm obsolete ist, werden _last und _last_of_all auf FALSE gesetzt. | R | X | ||
_ok_range | bool | Gut-Bereich einer Bit-Meldungsbehandlung | R/W | X | |||
_oldest_ack
|
bool |
9/25
|
Älteste zu quittierende Meldung einer Meldebehandlung. Wird entweder für die KAM-Seite (Bit 9) oder GING-Seite (Bit 25) gesetzt. | R | X | ||
_order | int |
Reihenfolge der Meldungen für Summenmeldungen.
Konstanten: ORDER_PRIO_STATE = 0, // Priorität vor Meldezustand ORDER_SIGN_STATE = 1, // Kurzzeichen vor Meldezustand ORDER_STATE_PRIO = 2, // Meldezustand vor Priorität ORDER_STATE_SIGN = 3 // Meldezustand vor Kurzzeichen
Dieses Attribut kann nur bei Summenmeldungen verwendet werden. |
R | X | |||
_orig_hdl | bool | Original- (TRUE) oder Online-Wert einer Meldebehandlung unterziehen. | R/W | X | |||
_panel | string | Panel zur Queranwahl. | R/W | X | |||
_panel_param | dyn_string | Parameter zum Queranwahl-Panel. | R/W | X | |||
_param | bool | Kann Meldebehandlung parametriert werden? | R/W | X | |||
_partn_idx | int |
Meldungsindex des Partners einer Meldung.
Um Alarme, die gleichzeitig auftreten eindeutig zu machen gibt es in der Alarmzeit einen Zähler. Das Attribut _partn_idx ist dieser Zähler für das Attribut _partner vom Typ time. |
R | X | |||
_partner
|
time |
Meldungszeit des Partners einer Meldung.
Ein Alarm besteht aus 2 Meldungen - KAM und GING. Der Partner von KAM ist GING und der Partner von GING ist KAM. _partner der KAM-Meldung liefert deswegen die GING-Zeit oder 1.1.1970 (wenn der Alarm noch nicht gegangen ist). _partner der GING-Meldung liefert die KAM-Zeit zurück. |
R | X | |||
_partner_alert_id | string | Alert-Bezeichner des Partners. Mit dem Attribut _partner_alert_id kann auf die _alert_id des Partners zugegriffen werden. Der Partner von KAM ist GING, der Partner von GING ist KAM: | R | X | |||
_prio_pattern | string | Prioritätspattern für Summenmeldung. Dieses Attribut kann nur bei Summenmeldungen verwendet werden. | R/W | X | |||
_prior | int | Priorität des Meldebereiches. | R | X | |||
_set | dyn_var* | Mengenattribut. Es wird eine beliebige Anzahl einzelner (isolierter) Werte zur Definition der gültigen Wertemenge angegeben. Dieses Attribut wird für diskrete Alarme verwendet. | R/W | X | |||
_single_ack | bool | 7/23 |
Wird auf KAM- und/oder GING-Seite (Bit 7 oder 23) gesetzt, wenn eine Einzelquittierung erfolgt. Einzelquittierungspflichtig. Das Attribut wird über das Config _alert_class (Meldeklasse) -> Registerkarte "Argumente" parametriert. |
R | X | ||
_state | bit32 |
Das Attribut alert_hdl.._state fasst die Statusbits (_obsolete, _ackable. etc) in einem Bit32 zusammen. _state von einer KAM-Meldung gibt in den ersten 16 Bits die Statusbits für die KAM-Meldung zurück. _state beinhaltet Bits für kommende sowie für gehende Meldungen. Die Bits 0-15 sind für "KAM" reserviert, die Bits 16-31 für "GING". _state von einer GING-Meldung gibt in den ersten 16 Bits die Status-Bits für das GING-Meldung zurück. Am Bit 0 _direction kann man erkennen, ob der Status von einer GING- oder KAM-Meldung stammt. |
R | X | |||
_status64_pattern | bit64 |
Filtert Bits heraus, welche bei einer Statusänderung eine Meldung auslösen. Ändern sich die angegebenen Statusbits des Pattern, wird eine Meldung ausgelöst. Das Attribut gilt nur für diskrete Meldebehandlung. |
R/W | X | |||
_status64_match | string |
Filtert Bits heraus, welche bei einer Statusänderung in einem bestimmten Bereich eine Meldung auslösen. Ändern sich die angegebenen Statusbits der Übereinstimmung, wird eine Meldung ausgelöst. Das Attribut gilt nur für diskrete Meldebehandlung. |
R/W | X | |||
_sum | bool | 12/28 | Meldung ist Summenmeldung? Wird auf beiden Seiten (Bit 12 und 28) gesetzt. | R | X | ||
_sumalerts | dyn_dpid | Zeigt in welcher Summenmeldung sich eine Meldung befindet. | R | X | |||
_system_time | time |
Aktuelle Systemzeit. Die Alarmzeit wird anhand der Zeit der Wertänderung oder der beim _event-Attribut angegebenen Zeit gesetzt. Das kann bei einer Peripherie, die z.B. nicht immer online ist, unterschiedlich zur aktuellen Zeit sein. _system_time ist die Zeit zu der WinCC OA den Alarm angelegt hat. Zum Beispiel: Eine SPS ist durch eine Einwahlverbindung an ein WinCC OA System angebunden. Um 12:00 bricht ein Feuer aus. Die SPS versucht eine Verbindung zu einer Zentrale aufzubauen. Dies gelingt 20 Min. lang nicht, weil es Probleme mit der Telefonleitung gibt. Wenn der Alarm um 12:20 gemeldet wird, besitzt der Alarm die Alarmzeit 12:00. Falls später die Frage "warum die Leitwarte 20 Min. brauchte bevor sie die Feuerwehr alarmierte", auftaucht, kann sie durch _system_time beweisen, dass es 20 min gedauert hat, bis der Alarm angekommen ist. |
R | X | |||
_text | langString | Zustandstext zum Bereich. | R/W | X | X (nur lesbar) | ||
_text0 | langString | Text für digital 0 (DPCONFIG_ALERT_BINARYSIGNAL). | R/W | X | |||
_text1 | langString | Text für digital 1 (DPCONFIG_ALERT_BINARYSIGNAL). | R/W | X | |||
_type | int |
Das Attribut _type wird zum Anlegen einer Meldebehandlung und zum Einfügen von Alarmbereichen bei einem DPCONFIG_ALERT_NONBINARY_SIGNAL verwendet. Meldebehandlung legen Sie wie folgt an: _alert_hdl.._type = DPCONFIG_ALERT_BINARYSIGNAL = 12, DPCONFIG_ALERT_NONBINARYSIGNAL = 13, DPCONFIG_SUM_ALERT = 59
Alarmbereiche legen Sie wie folgt an: _alert_hdl.<rangeNo>._type = DPDETAIL_RANGETYPE_MIN=6, DPDETAIL_RANGETYPE_MAX=7, DPDETAIL_RANGETYPE_MINMAX=4, DPDETAIL_RANGETYPE_MATCH=5, DPDETAIL_RANGETYPE_SET=3 |
W | X | |||
_u_hyst_limit | var* | Obere Unempfindlichkeitsschranke (Hysterese). | R/W | X | |||
_u_incl | bool | Obere Grenze des Bereiches wird inkludiert. | R/W | X | |||
_u_limit | var* | Obere Grenze des Bereiches. | R/W | X | |||
_value | var* | Wert, welcher zu der Meldung führt. | R | X | |||
_value_status64 | Bit64 | Statusänderung, welche zu der Meldung führt. | R | X | |||
_visible
|
bool |
4/20
|
Der Alarmschirm zeigt nur Alarme mit dem Wert _visible = TRUE an. Ein Alarm wird unsichtbar wenn er in den Status "kein Alarm" übergegangen ist, oder ein neuer Alarm ansteht und die Option "alte Alarme quittieren" nicht in der Alarmklasse definiert ist. |
R | X | ||
_went_text | langString | Zustandstext zur "GING"-Meldung | R/W | X |
*Typ "var" entspricht dem Typ des Elements, dem die Meldebehandlung zugeordnet wurde.
Attribute die mit dpQuery - SELECT ALERT abgefragt werden können
Bei folgenden Attributen ist eine Abfrage der aktuell anstehenden Alarme (dpQuery - SELECT ALERT) bzw. eine historische Abfrage (dpQuery - SELECT ALERT + TIMERANGE) möglich.
Attribute | DpQuery - SELECT ALERT | DpQuery - SELECT ALERT + TIMERANGE |
---|---|---|
_abbr | Ja | Ja |
_abbr_pattern | Ja | Nein |
_ack_deletes | Ja | Nein |
_ack_has_prio | Ja | Nein |
_ack_oblig | Ja | Ja |
_ack_possible | Ja | Nein |
_ack_state | Ja | Ja |
_ack_time | Ja | Ja |
_ack_type | Ja | Ja |
_ack_user | Ja | Ja |
_ackable | Ja | Ja |
_act_prior | Ja | Nein |
_act_range | Ja | Nein |
_act_state | Ja | Nein |
_act_state_color | Ja | Nein |
_act_state_font_style | Ja | Nein |
_act_state_fore_color | Ja | Nein |
_act_state_prior | Ja | Nein |
_act_state_range | Ja | Nein |
_act_state_text | Ja | Nein |
_act_text | Ja | Nein |
_active | Ja | Nein |
_add_values | Ja | Ja |
_add_value_1 | Ja | Ja |
_alert_color | Ja | Ja |
_alert_font_style | Ja | Ja |
_alert_fore_color | Ja | Ja |
_alert_id | Ja | Ja |
_alerts | Ja | Nein |
_archive | Ja | Ja |
_both_ack | Ja | Nein |
_came_ack | Ja | Nein |
_came_time | Ja | Nein |
_came_time_idx | Ja | Nein |
_class | Ja | Ja |
_comment | Ja | Ja |
_del_date | Ja | Ja |
_delete | Ja | Ja |
_dest | Ja | Ja |
_dest_text | Ja | Ja |
_direction | Ja | Ja |
_dp_list | Ja | Nein |
_dp_pattern | Ja | Nein |
_escalation_class | Ja | Nein |
_filter_active | Ja | Nein |
_filter_threshold | Ja | Nein |
_filtered | Ja | Ja |
_force_filter_active | Ja | Nein |
_force_filtered | Ja | Ja |
_gone_time | Ja | Nein |
_gone_time_idx | Ja | Nein |
_help | Ja | Nein |
_hyst_type | Ja | Nein |
_impulse | Ja | Nein |
_inact_ack | Ja | Ja |
_inactive | Ja | Ja |
_last | Ja | Ja |
_last_of_all | Ja | Ja |
_mapped_text | Ja | Nein |
_match | Ja | Nein |
_min_prio | Ja | Nein |
_multi_instance | Ja | Nein |
_neg | Ja | Nein |
_non_ack | Ja | Nein |
_obsolete | Ja | Ja |
_ok_range | Ja | Nein |
_oldest_ack | Ja | Ja |
_order | Ja | Nein |
_orig_hdl | Ja | Nein |
_pair_ack | Ja | Nein |
_panel | Ja | Nein |
_panel_param | Ja | Nein |
_param | Ja | Nein |
_partn_idx | Ja | Ja |
_partner | Ja | Ja |
_partner_alert_id | Ja | Nein |
_prio_pattern | Ja | Nein |
_prior | Ja | Ja |
_set | Ja | Nein |
_single_ack | Ja | Ja |
_state | Ja | Ja |
_status64_match | Ja | Nein |
_status64_pattern | Ja | Nein |
_sum | Ja | Ja |
_sumalerts | Ja | Nein |
_summed_abbr | Ja | Nein |
_summed_alerts | Ja | Nein |
_summed_alerts_count | Ja | Nein |
_summed_classes | Ja | Nein |
_summed_colors | Ja | Nein |
_summed_prios | Ja | Nein |
_summed_states | Ja | Nein |
_system_time | Ja | Ja |
_text0 | Ja | Nein |
_text1 | Ja | Nein |
_type | Ja | Nein |
_value | Ja | Ja |
_value_status64 | Ja | Ja |
_visible | Ja | Ja |
Attribute für Summenmeldungen
Attribute für Summenmeldungen | Typ | Beschreibung |
---|---|---|
_sumalerts | dyn_dpid | Zeigt bei einem Alarm, in welchen Summenalarmen er sich befindet. |
_summed_abbr | dyn_langString | Liste der anstehenden Kurzzeichen. |
_summed_alerts | dyn_atime | Liste der anstehenden Alarme (DPE + Alarmzeit). |
_summed_colors | dyn_string | Liste der anstehenden Meldefarben. |
_summed_classes | dyn_dpid | Liste der anstehenden Meldeklassen. |
_summed_prios | dyn_char | Liste der anstehenden Prioritäten. |
_summed_states | dyn_int | Liste der anstehenden Alarmzustände (kam quittiert. etc.) |
_summed_alerts_count | unsigned | Zeigt die Anzahl der anstehenden Alarme, welche sich im Summenalarm befinden. |
CTRL-Konstante |
Int-Wert | Beschreibung |
---|---|---|
DPCONFIG_NONE | 0 | keine Meldebehandlung |
DPCONFIG_ALERT_BINARYSIGNAL | 12 | Meldebehandlung binärer Größen |
DPCONFIG_ALERT_NONBINARYSIGNAL | 13 | Meldebehandlung analoger Größen |
Meldebehandlung "_alert_hdl.<i>._act_state"
Mit Integer-Konstanten kann der aktuelle Meldezustand (Quittierungsstatus) eines Meldungsbereichs wie der ganzen Meldebehandlung eines Datenpunktelements abgefragt werden. Die Detailnummer im Attribut bezieht sich auf den Index des Meldungsbereichs - siehe Attribute "_alert_hdl.<i>._type". Wird er weggelassen oder auf Null gesetzt, bezieht sich das Attribut auf den aktuellen Meldezustand der Meldebehandlung - siehe dpGet().
CTRL-Konstante | Int-Wert | Beschreibung |
---|---|---|
DPATTR_ALERTSTATE_NONE | 0 | keine Meldung |
DPATTR_ALERTSTATE_APP_NOT_ACK | 1 | kam bzw. kam/unquittiert |
DPATTR_ALERTSTATE_APP_ACK | 2 | kam/quittiert |
DPATTR_ALERTSTATE_DISAPP_NOT_ACK | 3 | ging/unquittiert |
DPATTR_ALERTSTATE_APP_DISAPP_NOT_ACK | 4 | kam/ging/unquittiert |
Meldebehandlung "_alert_hdl.<i>._ack_state"
Mit folgenden Integer-Konstanten kann der aktuelle Quittierungszustand eines Meldungsbereichs eines Datenpunktelements abgefragt werden. Bei der Funktion alertSet() ist das Attribut _ack_state mit der richtigen Detailnummer (Alarmbereich bei analogen Meldungen) und der richtigen Zeit zu verwenden. Mit alertSet() kann man einen speziellen Alarm quittieren. Diese Funktion verwendet der AESchirm.
CTRL-Konstante | Int-Wert | Beschreibung |
---|---|---|
DPATTR_ACKTYPE_NOT | 0 | Nicht quittierbar! |
DPATTR_ACKTYPE_MULTIPLE | 1 | Gesamtquittierung |
DPATTR_ACKTYPE_SINGLE | 2 | Einzelquittierung |
Meldebehandlung "_alert_hdl.<i>._event"
Mit den folgenden Integer-Konstanten können Meldeaktionen gesetzt werden.
CTRL-Konstante | Int-Wert | Beschreibung |
---|---|---|
DPATTR_ALERTEVENT_CAME | 0 | Meldung KAM. |
DPATTR_ALERTEVENT_CAME_IMPULSE | 1 | Meldung KAM mit Impulsalarm. |
DPATTR_ALERTEVENT_WENT | 2 | Meldung GING. |
DPATTR_ALERTEVENT_MULTIPLE_ACK | 3 | Meldung wurde gesamtquittiert. |
DPATTR_ALERTEVENT_SINGLE_ACK | 4 | Meldung wurde einzeln quittiert. |
DPATTR_ALERTEVENT_WENT_INACTIVE | 5 | Deaktivierte Meldung GING. |
DPATTR_ALERTEVENT_WENT_OBSOLETE | 7 |
Weder eine KAM- noch eine GING-Meldung wird ausgelöst. Die Konstante kann verwendet werden um einen Alarm explizit zu löschen (z.B. wenn der Alarm auf der SPS nicht mehr existiert). |
Meldebehandlung "_alert_hdl.<i>._hyst_type"
Mit den folgenden Integer-Konstanten kann bestimmt werden, ob einer Meldebehandlung eine Hysterese zugeordnet wird.
CTRL-Konstante | Int-Wert | Beschreibung |
---|---|---|
DPATTR_HYST_NONE | 0 | Keine Hysterese |
DPATTR_HYST_VALUE | 1 | Hysterese |
DPATTR_HYST_TIME | 2 | Das _hyst_time-Attribut (genannt Verzögerung in der alert_hdl-Konfiguration ) legt die Mindestzeit in Sekunden fest, wie lange ein Alarm in einem schlechten Bereich vorhanden sein muss, damit er ausgelöst wird. Wenn der Alarm wieder in einem guten Bereich ist, wird er sofort gelöscht. Für eine Alarm-Instanz kann die _alert_hdl.<detail>._hyst_time verwendet werden, um die für eine Alarminstanz verwendeten Werte zu erhalten. Die Konfiguration gilt pro Alarmbereich. |
Meldebehandlung analoger Größen "_alert_hdl.<i>._type"
Mithilfe der im Folgenden aufgeführten Integer-Konstanten kann die Meldungsbehandlungart eines Meldungsbereichs eines Datenpunktelements bestimmt werden. Die Detailnummer im Attribut bestimmt den Meldungsbereich: "_alert_hdl.1._type" bezieht sich etwa auf den ersten, untersten Bereich - siehe dpSet().
CTRL-Konstante | Int-Wert | Beschreibung |
---|---|---|
DPDETAIL_RANGETYPE_NONE | 0 | kein Meldungsbereich |
DPDETAIL_RANGETYPE_MINMAX | 4 | MinMax-Meldungsbereich |
Summenmeldung
CTRL-Konstante | Int-Wert | Beschreibung |
---|---|---|
DPCONFIG_NONE | 0 | keine Meldebehandlung |
DPCONFIG_SUM_ALERT | 59 | Summenmeldung |
Beispiel
Anlegen einer Meldebehandlung analoger Größen mit 3 Bereichen:
main()
{
dyn_float grenzen;
dyn_string meldetext;
dyn_string meldeklasse;
dyn_bool grenzenincl;
grenzen=makeDynFloat(20, 80);
meldetext=makeDynString("Warnung", "OK", "Alarm");
meldeklasse=makeDynString("System1:warning.", "System1:alert.");
grenzenincl=makeDynBool(TRUE, TRUE);
dpSetWait("TestDP_1.element:_alert_hdl.._type", 13,
"TestDP_1.element:_alert_hdl.1._type", 4, // Min-Max Wertebereich
"TestDP_1.element:_alert_hdl.2._type", 4,
"TestDP_1.element:_alert_hdl.3._type", 4,
"TestDP_1.element:_alert_hdl.1._u_limit", grenzen[1], /* Oberer Grenzwert */
"TestDP_1.element:_alert_hdl.2._u_limit", grenzen[2],
"TestDP_1.element:_alert_hdl.2._l_limit", grenzen[1], /* Unterer Grenzwert */
"TestDP_1.element:_alert_hdl.3._l_limit", grenzen[2],
"TestDP_1.element:_alert_hdl.1._u_incl", grenzenincl[1], /* Oberer Grenzwert zum Bereich gehörig */
"TestDP_1.element:_alert_hdl.1._l_incl", grenzenincl[1], /* Unterer Grenzwert zum Bereich gehörig */
"TestDP_1.element:_alert_hdl.2._u_incl", grenzenincl[2],
"TestDP_1.element:_alert_hdl.2._l_incl", !grenzenincl[1],
"TestDP_1.element:_alert_hdl.3._u_incl", grenzenincl[1],
"TestDP_1.element:_alert_hdl.3._l_incl", !grenzenincl[2],
"TestDP_1.element:_alert_hdl.1._text", meldetext[1], /* Meldetext für den Bereich 1 */
"TestDP_1.element:_alert_hdl.2._text", meldetext[2],
"TestDP_1.element:_alert_hdl.3._text", meldetext[3],
"TestDP_1.element:_alert_hdl.1._class", meldeklasse[1], /* Meldeklasse für den Bereich 1 */
"TestDP_1.element:_alert_hdl.3._class", meldeklasse[2],
"TestDP_1.element:_alert_hdl.._orig_hdl", TRUE, /* Mit dem Originalwert arbeiten */
"TestDP_1.element:_alert_hdl.._active", TRUE); /* Aktivieren
der Meldebehandlung */
}
Beispiel
Anlegen einer Meldebehandlung diskreter Werte:
void addCondAlert(string dpeName)
{
dyn_float limits;
dyn_string alerttext;
dyn_string alertclass;
int rc;
dyn_errClass err;
limits=makeDynString("*","2","3","4");
alerttext=makeDynString("", "Warning", "Fault", "Unavailable");
alertclass=makeDynString("", "warning.", "alert.", "information.");
rc = dpSetTimedWait(0, dpeName + ":_alert_hdl.._type", DPCONFIG_ALERT_NONBINARYSIGNAL,
dpeName + ":_alert_hdl.1._type", DPDETAIL_RANGETYPE_MATCH,
dpeName + ":_alert_hdl.2._type", DPDETAIL_RANGETYPE_MATCH,
dpeName + ":_alert_hdl.3._type", DPDETAIL_RANGETYPE_MATCH,
dpeName + ":_alert_hdl.4._type", DPDETAIL_RANGETYPE_MATCH,
dpeName + ":_alert_hdl.1._text", alerttext[1],
dpeName + ":_alert_hdl.2._text", alerttext[2],
dpeName + ":_alert_hdl.3._text", alerttext[3],
dpeName + ":_alert_hdl.4._text", alerttext[4],
dpeName + ":_alert_hdl.1._class", alertclass[1],
dpeName + ":_alert_hdl.2._class", alertclass[2],
dpeName + ":_alert_hdl.3._class", alertclass[3],
dpeName + ":_alert_hdl.4._class", alertclass[4],
dpeName + ":_alert_hdl.1._match", limits[1],
dpeName + ":_alert_hdl.2._match", limits[2],
dpeName + ":_alert_hdl.3._match", limits[3],
dpeName + ":_alert_hdl.4._match", limits[4],
dpeName + ":_alert_hdl.._active", TRUE);
err = getLastError();
if(dynlen(err)>0)
{
DebugTN("Error " + err + " adding alert for " + dpeName);
}
}
Statusbits für Attribut _alert_hdl.._state
Die Statusbits 0-15 sind für "KAM", die Bits 16-31 für "GING". Das Attribut _alert_hdl.._state fasst diese Statusbits in einem bit32 Muster zusammen. Neben den abfragbaren Attributen der Tabellen können auch
Bit 7/23 (wurde Einzelquittiert?)
Bit 8/24 (wurde Gesamtquittiert?)
Bit 13/29 + 14/30 für den Status der Summenalarme
gesetzt werden.
Für die Summenalarme gilt dabei, dass Bit 13/14 (KAM) oder 29/30 (GING) wie folgt gesetzt sind:
FALSE/FALSE GING quittiert
FALSE/TRUE GING unquittiert
TRUE/FALSE KAM quittiert
TRUE/TRUE KAM unquittiert
Nummer des Statusbits | Attribut | Richtung |
---|---|---|
0 | _direction | _direction KAM |
1 | _obsolete | _direction KAM |
2 | _last | _direction KAM |
3 | _last_of_all | _direction KAM |
4 | _visible | _direction KAM |
5 | _ackable | _direction KAM |
6 | _ack_oblig | _direction KAM |
7 | _single_ack | _direction KAM |
8 | - | _direction KAM |
9 | _oldest_ack | _direction KAM |
10 | _archive | _direction KAM |
11 | _inactive | _direction KAM |
12 | _sum | _direction KAM |
13 | - | Summenalarm Status erstes Bit. _direction KAM |
14 | - | Summenalarm Status zweites Bit. _direction KAM |
15 | _delete | _direction KAM |
16 | _direction | _direction GING |
17 | _obsolete | _direction GING |
18 | _last | _direction GING |
19 | _last_of_all | _direction GING |
20 | _visible | _direction GING |
21 | _ackable | _direction GING |
22 | _ack_oblig | _direction GING |
23 | _single_ack | _direction GING |
24 | - | _direction GING |
25 | _oldest_ack | _direction GING |
26 | _archive | _direction GING |
27 | _inactive | _direction GING |
28 | _sum | _direction GING |
29 | - | Summenalarm Status erstes Bit. _direction GING |
30 | - | Summenalarm Status zweites Bit. _direction GING |
31 | _delete | _direction GING |
Weitere Details zum Config "_alert_hdl" finden Sie im Kapitel Modul PARA - _alert_hdl (Meldebehandlung)