Diagnosekonzept

Übersicht

Mit PacDrive 3 steht ein dreischichtiges Diagnosekonzept für Bibliotheken zur Verfügung. Dieses Konzept ist für die Technologie-/Modul-Bibliotheken im PacDrive 3-System gültig (z. B. die Bibliothek PD_PacDrive.lib) und verwendet Enumerationen zur Diagnosekodierung.

Prinzipiell setzen sich die Diagnoseinformationen aus folgenden Schichten zusammen:

1.Allgemeine Informationen zur Ausnahme. Es sind keine spezifischen Kenntnisse über die POU-Funktion notwendig.

2.POU-spezifische Diagnose- und Statusmeldungen (Teil 1): Detaillierte Informationen zur Quelle, die die Diagnose- oder Statusmeldungen auslöst.

3.POU-spezifische Diagnose- und Statusmeldungen (Teil 2): Detaillierte und dynamische Informationen zur Quelle, die die Diagnose- oder Statusmeldungen auslöst.

Diese Informationen ändern sich zur Laufzeit (z. B. Informationen über den Zustand der Eingangsparameter). Dieser Diagnoseausgang ist optional für alle POUs.

Das Diagnosekonzept für Bibliotheken der Familie PacDrive 3 bietet folgende Vorteile:

oOnline-Anzeige der Diagnosemeldungen

oDetaillierte Präzisierung von Diagnoseereignissen anhand der verfügbaren Diagnosecodes

oÜberblick über den Status oder den Ausnahmezustand eines POUs

oZielgerichtete Lösungen zur Ursachenbehebung von Ausnahmezuständen

oNummerierte Diagnosemeldungen, um die Mehrsprachenunterstützung von HMI-Anzeigen zu erleichtern

Struktur der POU-unabhängigen Informationen

Der Diagnoseausgang q_etDiag vom Typ GD.ET_Diag liefert bibliotheksunabhängige Diagnoseinformationen, wie z. B. InputParameterInvalid. Die Informationen können auf eine Lösung für die Ursache der Diagnose verweisen.

Je nach dem Wert von GD.ET_Diag handelt es sich um eine Statusbeschreibung oder eine Ausnahmemeldung. Ein Wert ungleich GD.ET_Diag.Ok entspricht einer Ausnahmemeldung.

Die Enumeration GD.ET_Diag und deren Elemente sind in der Bibliothek PD_GlobalDiagnostics enthalten. Diese enthält außerdem eine Konvertierungsfunktion für die Enumeration GD.ET_Diag.

Der Standard-Namespace der Bibliothek PD_GlobalDiagnostics lautet GD. Die POUs, Datenstrukturen, Enumerationen und Konstanten müssen unter Verwendung dieses Namespace adressiert werden.

Struktur der POU-spezifischen Informationen

Die Diagnoseinformationen von POUs sind so gestaltet, dass sie bei Normalbetrieb der POU sowohl einen Ausnahmezustand als auch einen internen Zustand (Status) ausdrücken können (z. B. WaitForStart). Die Informationen (Ausnahmezustand oder Status) wird über denselben Ausgang (q_etDiagExt) gemeldet. Der Ausgang q_etDiag zeigt an, ob ein Status oder eine Ausnahme gemeldet wird.

Funktionsbausteine

Funktionsbausteine verfügen über die drei Ausgänge q_etDiag, q_etDiagExt und optional q_sMsg. Die Ausgänge werden gruppiert dargestellt, d. h. in der POU nacheinander definiert.

Nachstehend das Beispiel eines Funktionsbausteins unter Verwendung der schematischen POU-Struktur:

G-SE-0061263.1.gif-high.gif

 

 

Ausgang

Datentyp

Bedeutung

q_etDiag

GD.ET_Diag

Allgemeine Aussage zur Diagnose, z. B. InputParameterInvalid.

HINWEIS: Falls möglich, enthält GD.ET_Diag allgemein formulierte Diagnosecodes (zum Beispiel DriveConditionInvalid und InputParameterInvalid). Jedes Enumerationselement wird nicht nur durch einen Namen, sondern auch durch einen Wert dargestellt. Dieser Wert kann dann vom HMI verwendet werden, sodass die Übersetzungsbemühung für eine neutrale Sprachenlösung des Enumerationsnamens aufrechterhaltbar bleibt.

oGD.ET_Diag.Ok: Die Statusmeldung q_etDiagExt gibt Aufschluss über den Zustand der POU.

o<> GD.ET_Diag.Ok: Die Diagnosemeldung q_etDiagExt gibt Aufschluss über die Art der Ausnahme.

q_etDiagExt

ET_DiagExt

Erweiterte Diagnoseinformationen, die einem Wert der Funktion odes des Dienstes innerhalb der POU codiert sind. So kann zum Beispiel AccRange (Beschleunigung außerhalb des Bereichs) / WaitForStart jeweils als Diagnose oder als Status ausgegeben werden.

q_etDiagExt liefert den numerischen Wert, der als Index für eine detailliertere Definition der Ausgangsursache fungiert und des Weiteren als Index für einen mehrsprachigen Satz an Anzeigemeldungen verwendet werden kann.

q_sMsg

STRING[80]

Ereignisabhängige, optionale Meldung, die weitere Informationen zum Diagnosezustand liefert (z. B. 0 < i_lrAcc < MaxAcc).

q_sMsg liefert eine dynamische Zeichenfolge, die unterschiedliche Informationen zur Diagnose in englischer Sprache enthält.

q_sMsg wird zur Laufzeit geändert. Zum Beispiel durch die Ausnahme VelRange: ActualValue: 5003, MaxValue: 5000.

Im Normalbetrieb der POUs (q_etDiag=GD.ET_Diag.Ok) kann q_sMsg Informationen zum Status bereitstellen (z. B. verbleibende Siegelzeit).

Beispiel für Diagnoseinformationen:

G-SE-0061264.1.gif-high.gif

 

 

Funktionen

Die Funktionen verfügen ebenfalls über die Ausgänge q_etDiag, q_etDiagExt und optional q_sMsg.

Das Ergebnis der Funktion wird durch den direkten Rückgabewert im Fall eines Ergebnisses geliefert. Besitzt eine Funktion mehr als ein Ergebnis, so ist der direkte Rückgabewert eine Struktur, die die Ergebnisse enthält.

Alternativ können die Ergebnisse der Funktion auch über mehrere Ausgänge zurückgegeben werden; der direkte Rückgabewert der Funktion ist in diesem Fall ein BOOL-Wert mit einem beliebigem Wert, der nicht interpretiert werden kann.

Lesen Sie den Wert q_etDiag, um sicherzustellen, dass die Funktion erfolgreich aufgerufen wurde. Der direkte Rückgabewert der Funktion enthält diese Informationen nicht.

Eine Ausnahme liegt vor, wenn der Rückgabewert <> GD.ET_Diag.Ok ist. Die Funktionen werden in der aufgerufenen Task vollständige verarbeitet, dann kann ihr Status ausgewertet werden und sie melden über q_etDiag und q_etDiagExt, ob ihre Verarbeitung erfolgreich durchgeführt wurde.