_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.

VORSICHT: dpQuery mit SELECT ALERT funktioniert ausschließlich mit Attributen, die mit alertConnect() abgefragt werden können. Das sind alle Attribute, die zu einer Alarminstanz gehören (siehe Attribute der Alarme oberhalb und in der Tabelle unterhalb). Attribute, die zur Parametrierung und nicht zur Alarminstanz gehören können damit nicht mit SELECT ALERT oder alertConnect() abgefragt werden.

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)