Quality Flags

Mapping

Unter Mapping versteht man die Abbildung von Bits auf WinCC OA Userbits.

  • None: mappt keine Quality auf Userbits

  • Server specific bits: mappt nur die serverspezifischen Bits auf die Userbits 1-32.

  • Standard bits: mappt nur die OPC-Standardbits auf die Userbits.

Je nach Variation werden alle Quality-Bits verwendet, oder nur Quality und Substatus, oder nur Substatus, oder nur Limits. Gemappt wird QQSSSSLL von QQ bzw. SSSS bzw. LL ausgehend:

Quality, Substatus und Limits: mappt alle 8 Bits auf die Userbits. QQ kommt dabei auf die Userbits 1+2, SSSS auf 3-6, LL auf 7,8

Quality und Substatus: mappt nur QQSSSS, angefangen von Userbit X. Das heisst, QQ kommt auf X, X+1. SSSS auf X+2-X+5

Substatus: mappt nur SSSS, angefangen von Userbit X

Limits: mappt nur LL auf Userbits X, X+1

Beispiele

Die Bits für "Good, local override" setzt also X, X+1 (Good), X+3, X+4 (Local override). Für Userbit 2 also

x x x x

"Engineering units exceeded" setzt also X+1, X+3. Für Userbit 2 also:

x x

Low Limited z.B. setzt nur Userbit X+1

x

Die Flags stellen den Qualitätsstatus für den Datenwert eines Elements dar. Dieser soll ähnlich aber einfacher als die Fieldbus Data Quality Spezifikation (Abschnitt 4.4.1 in den endgültigen H1 Spezifikationen) sein. Diese Spezifikation macht es den Server- und Clientanwendungen einfach festzustellen, wieviel Funktionalität sie implementieren möchten.

Die unteren 8 Bits der Quality Flags sind derzeit in der Form von drei Bit-Feldern "Quality, Substatus und Limit-Status" definiert. Die 8 Quality Bits sind wie folgt angeordnet:

QQSSSSLL

Die oberen 8 Bits des Quality Words stehen für herstellerspezifische Anwendung zur Verfügung . Wenn diese Bits verwendet werden, müssen die Standard OPC Quality Bits so genau wie möglich gesetzt werden, um anzuzeigen, welche Annahmen der Client über die zurückgegebenen Daten machen kann. Ferner ist es die Aufgabe des Clients herstellerspezifische Qualitätsinformationen zu interpretieren, um sicherzustellen, dass der Server die gleichen Regeln verwendet wie der Client. Die Details einer solchen Verhandlung sind nicht Gegensatz dieses Standards, obwohl ein QueryInterface Aufruf zum Server für den Abruf des herstellerspezifischen Interfaces/der herstellerspezifischen Schnittstelle z.B. mit IMyQualityDefinitions möglich ist.

Die folgenden Tabellen zeigen details über die OPC Standard Qualität:

Das Quality Bitfeld

QQ binärer Wert Bedeutung Beschreibung
0 00SSSSLL Schlecht Die Qualität des Wertes ist schlecht. Der Substatus gibt genauere Auskunft, warum die Qualität schlecht ist.
1 01SSSSLL Unsicher Die Qualität des Wertes ist unsicher. Der Substatus gibt genauere Auskunft, warum die Qualität unsicher ist.
2 10SSSSLL N/A Wird nicht von OPC verwendet
3 11SSSSLL Gut Die Qualität des Wertes ist gut.

Anmerkung:

Ein Server, der keine Qualitätsinformationen unterstützt, muss den Rückgabewert 3 (Gut) zurückliefern. Es ist auch gestattet, dass ein Server nur den Rückgabewert Schlecht oder Gut (0x00 oder 0xC0) zurückliefert und für den Substatus und den Limit-Status immer 0 zurückgibt.

Es wird empfohlen, dass Clients zumindest die Qualitätsbits aller Ergebnisse überprüfen sollen, auch wenn sie weder die Substatusbits noch die Limitbits auswerten.

Wenn ein Wert der Qualität "SCHLECHT" angezeigt wird, muss der Inhalt des Wertfelds trotzdem eine korrekt definierte Variable vom Typ VARIANT sein, obwohl diese keinen gültigen Wert enthält. Damit wird die Fehlerbehandlung in der Client-Anwendung vereinfacht. Zum Beispiel wird vom Client erwartet, dass VairantClear() auf die Ergebnisse eines synchronen Lesens aufgerufen wird. Ebenso muss IAdviseSink in der Lage sein, selbst im Fall einer Qualität SCHLECHT den Wert und die Daten in dem Stream zu interpretieren und "auszupacken".

Wenn der Server keinen zurückzuliefernden Wert hat, so soll er einen Default Wert wie z.B. einen String NULL oder 0 für einen numerischen Wert zurückliefern.

Das Substatus Bitfeld

Das Layout dieses Feldes hängt von dem Wert des Qualität Felds ab.

Substatus für Qualität SCHLECHT:

SSSS binärer Wert Bedeutung Beschreibung
0 000000LL Nicht spezifisch Die Qualität des Wertes ist schlecht. Kein spezifischer Grund bekannt.
1 000001LL Konfigurationsfehler Es besteht serverseitig ein Problem in der Konfiguration, z. B. wenn das Element schon aus der Konfiguration gelöscht wurde.
2 000010LL Nicht verbunden Der Eintrag ist erforderlich, um logisch Verbindung zu etablieren zu können. Diese Qualität zeigt an, dass zur Zeit kein Wert vorhanden ist. Ein Grund dafür könnte beispielsweise sein, dass die Datenquelle den Wert nicht zur Zeit nicht zur Verfügung steht.
3 000011LL Gerätausfall Ein Geräteausfall wurde festgestellt.
4 000100LL Sensorausfall Ein Sensorausfall wurde festgestellt. (Das "Limit" Feld kann in manchen Situationen zusätzliche Diagnoseinformationen bieten.)
5 000101LL letzt bekannter Wert

Die Kommunikation ist unterbrochen. Jedoch ist der letzte bekannte Wert verfügbar.

Hinweis: das "Alter" des Wertes kann mittels des Zeitstempels in PCITEMSTATE bestimmt werden.

6 000110LL Kommunikationsunterbrechung Die Kommunikation ist unterbrochen. Kein letzter bekannter Wert ist verfügbar.
7 000111LL außer Betrieb Der Block wird nicht gescannt oder ist anderweitig gesperrt. Dieser Wert wird auch verwendet, wenn der Zustand des Elements oder der Gruppe, welche das Element enthält, inaktiv ist.
8-15 - N/A Wird nicht von OPC verwendet

Anmerkung:

Server, die keinen Substatus unterstützen, sollen den Rückgabewert 0 zurückliefern. Bitte beachten Sie, dass ein "alter" Wert zurückgeliefert werden kann, wobei die Qualität auf SCHLECHT (0) und der Substatus auf 5 gesetzt sind. Dies gewährleistet die Übereinstimmung mit der Feldbusspezifikation. Dies ist auch der einzige Fall, in dem der Client annehmen darf, dass der "SCHLECHTE" Wert noch von der Anwendung verwendbar ist.

Substatus für Qualität UNSICHER:

SSSS binärer Wert Bedeutung Beschreibung
0 010000LL Nicht spezifisch Es besteht kein spezifischer Grund, warum der Wert unsicher ist.
1 010001LL

Last Usable Value

letzter verwendbarer Wert

Der Wert wird nicht mehr geschrieben. Der Rückgabewert sollte als "abgelaufen" angesehen werden. Bitte beachten Sie, dass dies sich von einem SCHLECHTEN Wert mit dem Substatus 5 (letzter bekannter Wert) unterscheidet. Dieser Status wird für Fehler, die im Zusammenhang mit einem nachweisbaren Kommunikationsfehler stehen, verwendet. Er bedeutet, dass eine externe Quelle den Wert nicht innerhalb eines akzeptablen Zeitraums geschrieben hat.

Hinweis: das "Alter" des Wertes kann mittels des Zeitstempels in PCITEMSTATE bestimmt werden.

2-3 - N/A Wird nicht von OPC verwendet.
4 010100LL Sensor ungenau Entweder hat sich der Wert an einem der Sensorgrenzwerte "festgesetzt" (in diesem Fall sollte das Limitfeld auf 1 oder 2 gesetzt werden), oder es ist anderweitig über eine Form von interner Diagnose bekannt, dass der Sensor nicht mehr kalibriert ist (in diesem Fall sollte das Limitfeld auf 0 gesetzt werden).
5 010101LL Engineering Einheiten überschritten Der Rückgabewert überschreitet die Grenze, die bei der Parametrierung definiert wurde. Bitte beachten Sie, dass das Limitfeld in diesem Fall (gemäß Feldbusspezifikation) anzeigt, welcher Grenzwert überschritten wurde. Aber es impliziert nicht, dass sich der Wert nicht mehr weiter vom gültigen Bereich entfernen kann.
6 010110LL Sub-Nomal Der Wert wird von verschiedenen Quellen abgeleitet und hat weniger gute Quellen als erforderlich.
7-15 - N/A Wird nicht von OPC verwendet.

Anmerkung:

Server, die keinen Substatus unterstützen, sollen den Rückgabewert 0 zurückliefern.

Substatus für Qualität GUT:

SSSS binärer Wert Bedeutung Beschreibung
0 110000LL Nicht spezifisch Der Wert ist gut. Es besteht keine spezifischen Bedingungen
1-5 - N/A Nicht von OPC verwendet
6 110110LL Lokales Übersteuern Der Wert wurde außer Kraft gesetzt. Im Prinzip bedeutet es, dass der Eintrag unterbrochen ist und ein Wert manuell eingetragen werden muss.
7-15 - N/A Nicht von OPC verwendet.

Anmerkung:

Server, die keinen Substatus unterstützen, sollen den Rückgabewert 0 zurückliefern.

Das Limit Bitfeld

Unabhägig vom Wert der Qualität und des Substatus ist das Limitfeld immer gültig. In Fällen wie einem Sensorausfall kann das Limitfeld praktische diagnostische Informationen bereitstellen.

LL binärer Wert Bedeutung Beschreibung
0 QQSSSS00 nicht begrenzt Der Wert ist nicht begrenzt und kann sich sowohl nach oben als auch nach unten bewegen.
1 QQSSSS01 untere Grenze Der Wert steht an der unteren Grenze an
2 QQSSSS10 obere Grenze Der Wert steht an der oberen Grenze an.
3 QQSSSS11 konstant Der Wert ist konstant und kann nicht verändert werden

Anmerkung:

Server, die keinen Substatus unterstützen, sollen den Rückgabewert 0 zurückliefern.

Symbolische Gleichungen werden definiert für Werte und Masken für dieses Bitfeld in dem Abschnitt "QUALITÄT" der OPC Header-Dateien.