Fehlercodes

Die Funktionsbausteine der TcPlcLibMDP.Lib besitzen einen Ausgang nErrID. Dieser Wert ist 4 Byte groß und liefert im Fehlerfall den Fehlercode. nErrID setzt sich aus zwei Teilen zusammen:

(MSB) 2 Byte

2 Byte (LSB)

Error Group

Error Code

0x EC80

E_MDP_ErrCodesPLC

0x ECA6

MDP general error

0x ECA7

MDP API error

0x ECA8

ADS error

0x ECAF

MDP module specific error

Error Group

Die Fehlergruppe beschreibt den Typ des aufgetretenen Fehlers. In der Enumeration E_MDP_ErrGroup sind die unterschiedlichen Gruppen gelistet.
Alle Fehler die innerhalb der PLC Bibliothek generiert wurden, besitzen die Error Group 0xEC80.

Error Code

Der Fehlercode beschreibt den konkreten Fehler.

Für SPS bibliotheksinterne Fehler mit der Fehlergruppe 0xEC80 sind die Identifier in der Enumeration E_MDP_ErrCodesPLC gelistet. Eine Beschreibung zu den restlichen Fehlercodes findet sich in der Dokumentation der IPC Diagnose in dem Kapitel MDP Fehlernummern.

 

Fehlercodes 1:

In der Fehlergruppe 16#ECA6 "General error codes" werden allgemeine MDP abhängige Fehler ausgegeben. Teilweise geben diese Fehler an, dass ein Element aus der Elementliste des Moduls nicht verfügbar ist. Bsp.: 16#ECA60105 "No data available" Falls bei einem allgemeinem oder spezifischen Funktionsbaustein (siehe Zugriffsvarianten) mehrere Elemente zugleich abgefragt werden und eines dieser Elemente nicht verfügbar ist oder einen Fehler aufweist, so zeigt die Ausgangsvariable iErrPos an, an welcher Indexposition (0..n) der Fehler das erste Mal auftrat. Alle Elemente unterhalb dieses Index wurden erfolgreich abgefragt und sind trotz Fehlerausgabe am Ausgang angegeben.

FB_MDP_SplitErrorID

Der Funktionsbaustein FB_MDP_SplitErrorID ermöglicht eine automatische Trennung der Variablen nErrID in Fehlergruppe und Fehlercode.

Beispiel:

nErrID          = 0x ECA8 0745

Die Error Group ist 0x ECA8, es handelt sich demnach um einen Ads Fehler.
Der Error Code ist 0x 0745, es handelt sich demnach um einen Timeout Fehler.