Meldebehandlung diskreter Werte
Eine Meldebehandlung diskreter Werte wird dann verwendet, wenn diskrete Zustände eine Meldung im Wertebereich auslösen sollen. Diskret heißt, dass ein konkretes Ereignis eingetroffen ist (z.B. Licht ein) oder nicht eingetroffen ist (z.B. Licht aus).
Die Meldebehandlung diskreter Werte kann auf die Datenpunktelemente vom Datentyp uint, int, bool oder bit32 parametriert werden.
Standardpanel Meldebehandlung numerischer Größen
Das Panel zur diskreten Meldebehandlung numerischer Größen (int, uint) besteht aus drei Registerkarten.
Registerkarte Grenzen
In der Registerkarte "Grenzen" können bis zu 20 Grenzbereiche parametriert werden. Der Bereich 1 (unterster Bereich) ist dabei immer der Gutbereich.
Grenzwerte: bestimmen Sie für jeden Bereich die Grenzwerte, die eine Meldung auslösen sollen. Die Grenzwerte werden vom höchsten Bereich bis zum niedrigsten Bereich (Gutbereich) nach einer Übereinstimmung durchsucht. Kommt es zu einer Übereinstimmung, werden die niedrigeren Bereiche nicht mehr geprüft. Keine Übereinstimmung bedeutet automatisch, dass der Wert sich im Gutbereich befindet.
Folgende Eingaben der Grenzwerte sind zulässig:
einzelne Grenzwerteingabe, z.B. für Integer = 10
Grenzwertbereiche, z.B. für Integer = 90-100
ODER Verknüpfungen einzelner Grenzwerteingaben
das Wildcard Stern (*) - überschreibt den Gutbereich
negative Grenzwerte (-x)-(-y), z.B. für Integer = (-100)-(-90)
Grenzwert-Operatoren: zwei Grenzwertoperatoren können verwendet werden - gleich und ungleich. Gleich "=" bedeutet, dass die Meldung dann ausgelöst wird, wenn es in der höheren Bereichen zu keiner Übereinstimmung gekommen ist und der Grenzwert in diesem Bereich dem Originalwert (Onlinewert) gleicht. Ungleich "!=" bedeutet, dass die Meldung immer dann ausgelöst wird, wenn der Originalwert (Onlinewert) nicht mit dem in diesem Bereich eingetragenen Grenzwert übereinstimmt.
Die Obergrenze und die Untergrenze des Gutbereiches werden durch die Grenzen des WinCC OA Wertebereichs des zugehörigen Datentyps definiert.
Meldeklasse: wählen Sie aus den 7 standardmäßig angelegten Meldeklassen eine aus (siehe auch Kapitel _alert_class) oder übernehmen Sie eine eigene Meldeklasse über den DP-Selektor rechts. Dem Gutbereich wird keine Meldeklasse zugeordnet. Im Gegensatz zur Meldebehandlung kontinuierlicher Werte, müssen die Meldeklassen nicht nach zunehmender Priorität geordnet sein. Die Meldeklassen können beliebig gesetzt werden. Das Verwenden der gleichen Meldeklasse in mehreren Bereichen ist erlaubt.
KAM Text: geben Sie für jeden Meldebereich einen Text ein, welcher angezeigt wird, wenn der Wert in einen dieser Meldebereiche kommt (KAM-Meldung). Dieser Text wird im Meldeschirm angezeigt, z.B. "Messsonde 2: CO Gehalt kritisch!". Der KAM-Text im Gutbereich wird im Meldeschirm nicht angezeigt, dennoch kann er für Abfragen festgelegt werden (z.B.: für eine Verwendung im Enum-Kontext).
GING Text: geben Sie für jeden Meldebereich einen Text ein, welcher angezeigt wird, wenn der Wert einen dieser Meldebereiche verlässt (GING-Meldung). Dieser Text wird im Meldeschirm angezeigt, z.B. "Messsonde 2: CO Gehalt nicht länger kritisch." Der GING-Text im Gutbereich wird im Meldeschirm nicht angezeigt, dennoch kann er für Abfragen festgelegt werden (z.B.: für eine Verwendung im Enum-Kontext).
Bits: mit dem Klick auf diese Schaltfläche wird ein Panel geöffnet, welches die Auswahl bestimmter Bits ermöglicht, welche ein zusätzliches Kriterium darstellen, ob bei einer Übereinstimmung des Originalwertes (Onlinewertes) mit dem Grenzwert eine Meldung ausgelöst wird.
Das heißt: Eine Meldung wird nur dann ausgelöst, wenn die Grenzwerteingabe mit dem Originalwert (Onlinewert) übereinstimmt.
Defaultmäßig ist für jeden Grenzbereich vordefiniert, dass alle Benutzer-Bits und Status-Bits entweder 0 oder 1 sein können und eine Meldung wird immer dann ausgelöst, wenn die Regel/der Grenzwert übereinstimmt.
Im Panel "Bits", siehe Abbildung oben, kann der Grenzwert zusätzlich durch Bits eingegrenzt werden.
Mit rechtem Mausklick auf ein Feld der Benutzer-Bits oder Status-Bits kann folgendes fesgelegt werden:
0 - das Bit des Originalwertes muss 0 sein (FALSE)
1 - das Bit des Originalwertes muss 1 sein (TRUE)
X - das Bit des Originalwertes kann 1 oder 0 sein (ist demnach nicht entscheidend)
Wurden für einen Grenzwertbereich Bits gesetzt, so wird im Meldebehandlungspanel das Icon neben der Schaltfläche "Bits" angezeigt.
Für den Gutbereich können keine Bits parametriert werden, da keine Meldeklasse bestimmt wird.
Registerkarte Parameter
Die Registerkarte "Parameter" gleicht der in der Summenmeldebehandlung und wird auch dort beschrieben.
Registerkarte Status Bits
In der Registerkarte "Status Bits" können Bits gesetzt werden, welche erneut die aktuell anstehende Meldung auslösen, wenn sich eines dieser Bits am Datenpunktelement (Originalwert) ändert.
Setzen Sie ein Häkchen in die Checkbox des jeweiligen Bits, wenn die Bit-Änderung berücksichtigt werden soll oder lassen Sie die Checkbox leer, wenn Bit-Änderungen ignoriert werden sollen (Default).
Diskrete Meldebehandlung boolescher Größe
Die diskrete Meldebehandlung eines boolschen Datenpunktelementes unterscheidet sich von der analogen nur in drei zusätzlichen Optionen:
ein GING Text kann festgelegt werden. Der KAM/GING-Text im Gutbereich wird im Meldeschirm nicht angezeigt, dennoch kann er für Abfragen festgelegt werden (z.B.: für eine Verwendung im Enum-Kontext).
in der Registerkarte "Status Bits" können Bits berücksichtigt werden, deren Änderung am Datenpunktelement die anstehende Meldung erneut auslösen wird (siehe Abbildung und Beschreibung oben).
Über die Schaltfläche "Bits" können Bits ausgewählt werden, welche ein zusätzliches Kriterium darstellen, ob bei einer Übereinstimmung des Originalwertes (Onlinewertes) mit dem Grenzwert eine Meldung ausgelöst wird. Für weitere Informationen siehe Bits.
Mehr Informationen zur Meldebehandlung boolescher Größe erhalten Sie im Kapitel Analoge Meldebehandlung boolescher Größe.
Beispiel
rc = dpSetTimedWait(createTime(startTime), dp + ":_alert_hdl.._type", DPCONFIG_ALERT_NONBINARYSIGNAL );
rc = dpSetTimedWait(createTime(startTime), dp + ":_alert_hdl.1._type", DPDETAIL_RANGETYPE_MATCH, dp + ":_alert_hdl.2._type", DPDETAIL_RANGETYPE_MATCH,
dp + ":_alert_hdl.1._class", "", dp + ":_alert_hdl.2._class", alertClass,
dp + ":_alert_hdl.1._text", " GUT/true ", dp + ":_alert_hdl.2._text", "false",
dp + ":_alert_hdl.1._went_text", "[ GUT/true ]", dp + ":_alert_hdl.2._went_text", "[false]",
dp + ":_alert_hdl.1._match", "*", dp + ":_alert_hdl.2._match", "0" ); |