Diag Messages
Mit DiagMessages wird ein System der Nachrichtenübermittlung vom EtherCAT Slave an den EtherCAT Master/TwinCAT bezeichnet. Die Nachrichten werden vom Gerät im eigenen CoE unter 0x10F3 abgelegt und können von der Applikation oder dem System Manager ausgelesen werden. Für jedes im Gerät hinterlegtes Ereignis (Warnung, Fehler, Statusänderung) wird eine über einen Code referenzierte Fehlermeldung ausgegeben.
Definition
Das System DiagMessages ist in der ETG (EtherCAT Technology Group) in der Richtlinie ETG.1020, Kap. 13 "Diagnosis Handling" definiert. Es wird benutzt, damit vordefinierte oder flexible Diagnosemitteilungen vom EtherCAT-Slave an den Master übermittelt werden können. Das Verfahren kann also nach ETG herstellerübergreifend implementiert werden. Die Unterstützung ist optional. Die Firmware kann bis zu 250 DiagMessages im eigenen CoE ablegen.
Jede DiagMessage besteht aus
- Diag Code (4 Byte)
- Flags (2 Byte; Info, Warnung oder Fehler)
- Text-ID (2 Byte; Referenz zum erklärenden Text aus der ESI/XML)
- Zeitstempel (8 Byte, lokale Slave-Zeit oder 64-Bit Distributed-Clock-Zeit, wenn vorhanden)
- dynamische Parameter, die von der Firmware mitgegeben werden
In der zum EtherCAT-Gerät gehörigen ESI/XML-Datei werden die DiagMessages in Textform erklärt: Anhand der in der DiagMessage enthaltenen Text-ID kann die entsprechende Klartextmeldung in den Sprachen gefunden werden, die in der ESI/XML enthalten sind. Üblicherweise sind dies bei Beckhoff-Produkten deutsch und englisch.
Der Anwender erhält durch den Eintrag NewMessagesAvailable Information, dass neue Meldungen vorliegen.
DiagMessages können im Gerät bestätigt werden: die letzte/neueste unbestätigte Meldung kann vom Anwender bestätigt werden.
Im CoE finden sich sowohl die Steuereinträge wie die History selbst im CoE-Objekt 0x10F3:

Unter 0x10F3:02 ist der Subindex der neuesten DiagMessage auslesbar.
![]() | Unterstützung zur Inbetriebnahme Das System der DiagMesssages ist vor allem während der Anlageninbetriebnahme einzusetzen. Zur Online-Diagnose während des späteren Dauerbetriebs sind die Diagnosewerte z. B. im StatusWord des Gerätes (wenn verfügbar) hilfreich. |
Implementierung TwinCAT System Manager
Ab TwinCAT 2.11 werden DiagMessages, wenn vorhanden, beim Gerät in einer eigenen Oberfläche angezeigt. Auch die Bedienung (Abholung, Bestätigung) erfolgt darüber.

Im Reiter Diag History (A) sind die Betätigungsfelder (B) wie auch die ausgelesene History (C) zu sehen. Die Bestandteile der Message:
- Info/Warning/Error
- Acknowledge-Flag (N = unbestätigt, Q = bestätigt)
- Zeitstempel
- Text-ID
- Klartext-Meldung nach ESI/XML Angabe
Die Bedeutung der Buttons ist selbsterklärend.
DiagMessages im ADS Logger/Eventlogger
Ab TwinCAT 3.1 build 4022 werden von einer Klemme abgesetzte DiagMessages auch im TwinCAT ADS Logger gezeigt. Da nun IO-übergreifend DiagMessages an einem Ort dargestellt werden, vereinfacht dies die Inbetriebnahme. Außerdem kann die Logger-Ausgabe in eine Datei gespeichert werden – somit stehen die DiagMessages auch langfristig für Analysen zur Verfügung.
DiagMessages liegen eigentlich nur lokal im CoE 0x10F3 in der Klemme vor und können bei Bedarf manuell z. B. über die oben genannte DiagHistory ausgelesen werden.
Bei Neuentwicklungen sind die EtherCAT-Klemmen standardmäßig so eingestellt, dass sie das Vorliegen einer DiagMessage über EtherCAT als Emergency melden; der Eventlogger kann die DiagMessage dann abholen. Die Funktion wird in der Klemme über 0x10F3:05 aktiviert, deshalb haben solche Klemmen folgenden Eintrag standardmäßig in der StartUp-Liste:

Soll die Funktion ab Gerätestart deaktiviert werden weil z. B. viele Meldungen kommen oder der EventLogger nicht genutzt wird, kann der StartUp-Eintrag gelöscht oder auf 0 gesetzt werden. Der Wert kann dann bei Bedarf später aus der PLC per CoE-Zugriff wieder auf 1 gesetzt werden.
Nachrichten in die PLC einlesen
- In Vorbereitung -
Interpretation
Zeitstempel
Der Zeitstempel wird aus der lokalen Uhr der Klemme zum Zeitpunkt des Ereignisses gewonnen. Die Zeit ist üblicherweise die Distributed-Clocks-Zeit (DC) aus Register x910.
Bitte beachten: die DC-Zeit wird in der Referenzuhr gleich der lokalen IPC/TwinCAT-Zeit gesetzt, wenn EtherCAT gestartet wird. Ab diesem Moment kann die DC-Zeit gegenüber der IPC-Zeit divergieren, da die IPC-Zeit nicht nachgeregelt wird. Es können sich so nach mehreren Wochen Betrieb ohne EtherCAT Neustart größere Zeitdifferenzen entwickeln. Als Abhilfe kann die sog. Externe Synchronisierung der DC-Zeit genutzt werden, oder es wird fallweise eine manuelle Korrekturrechnung vorgenommen: die aktuelle DC-Zeit kann über den EtherCAT Master oder durch Einsicht in das Register x901 eines DC-Slaves ermittelt werden.
Aufbau der Text-ID
Der Aufbau der MessageID unterliegt keiner Standardisierung und kann herstellerspezifisch definiert werden. Bei Beckhoff EtherCAT-Geräten (EL, EP) lautet er nach xyzz üblichwerweise:
x | y | zz |
---|---|---|
0: Systeminfo | 0: System | Fehlernummer |
Beispiel: Meldung 0x4413 --> Drive Warning Nummer 0x13
Text-IDs der ELM72xx
Text-ID | Typ | Ort | Text Message | Kommentar |
---|---|---|---|---|
0x1201 | Information | Kommunikation | Communication re-established | Verbindung aufgebaut |
0x4101 | Warnung | Allgemein | Terminal-Overtemperature | Übertemperatur. Die Innentemperatur der Klemme überschreitet die parametrierte Warnschwelle. |
0x4102 | Warnung | Allgemein | PDO-configuration is incompatible to the selected mode of operation | Die ausgewählten PDOs passen nicht zur eingestellten Betriebsart. Beispiel: Antrieb arbeitet im Velocity-Mode. Das Velocity-PDO ist jedoch nicht in die PDOs gemapped. |
0x4107 | Warnung | Allgemein | Undervoltage Up |
|
0x4109 | Warnung | Allgemein | Overvoltage Up |
|
0x410A | Warnung | Allgemein | Fan |
|
0x410B | Warnung | Allgemein | Error detected, but disabled by suppression mask |
|
0x4201 | Warnung | Kommunikation | No communication to field-side (Auxiliary voltage missing) |
|
0x4301 | Warnung | Encoder | Feedback-Warning | Allgemeiner Encoderfehler |
0x4411 | Warnung | Drive | DC-Link undervoltage | Die Zwischenkreisspannung der Klemme unterschreitet die parametrierte Mindestspannung. Das Aktivieren der Endstufe wird unterbunden. |
0x4412 | Warnung | Drive | DC-Link overvoltage | Die Zwischenkreisspannung der Klemme überschreitet die parametrierte Maximalspannung. Das Aktivieren der Endstufe wird unterbunden. |
0x4413 | Warnung | Drive | I2T Amplifier overload |
|
0x4414 | Warnung | Drive | I2T Motor overload |
|
0x4415 | Warnung | Drive | Speed limitation active | Die maximale Drehzahl wird durch die parametrierten Objekte (z. B. velocity limitation, motor speed limitation) begrenzt. Die Warnung wird ausgegeben, wenn die Sollgeschwindigkeit größer ist, als eines der parametrierten Begrenzungen. |
0x4417 | Warnung | Drive | Motor-Overtemperature | Die Innentemperatur des Motors übersteigt die parametrierte Warnschwelle. |
0x4418 | Warnung | Drive | Limit: Current | Limit: Strom wird limitiert |
0x4419 | Warnung | Drive | Limit: Amplifier I2T-model exceeds 100%% | Die Schwellwerte für den maximalen Strom wurden überschritten. |
0x441A | Warnung | Drive | Limit: Motor I2T-model exceeds 100%% | Limit: Motor I2T-Modell übersteigt 100% |
0x441B | Warnung | Drive | Limit: Velocity limitation | Die Schwellwerte für die maximale Drehzahl wurden überschritten. |
0x441C | Warnung | Drive | Axis disabled via STO | Es wurde versucht die Achse zu aktivieren, obwohl die Spannung am STO-Eingang nicht anliegt. |
0x4420 | Warnung | Drive | Cogging compensation not supported (%u) |
|
0x4421 | Warnung | Drive | I2T-Model Brake chopper overload |
|
0x4422 | Warnung | Drive | Limit: Brake chopper I2T-model exceeds 100%% |
|
0x4423 | Warnung | Drive | Brake resistor not connected |
|
0x4424 | Warnung | Drive | Modes of operation invalid |
|
0x8104 | Fehler | Allgemein | Terminal-Overtemperature | Die Innentemperatur der Klemme überschreitet die parametrierte Fehlerschwelle. Das Aktivieren der Klemme wird unterbunden. |
Text-ID | Typ | Ort | Text Message | Kommentar |
---|---|---|---|---|
0x8105 | Fehler | Allgemein | PD-Watchdog | Die Kommunikation zwischen Feldbus und Endstufe wird durch einen Watchdog abgesichert. Sollte die Feldbuskommunikation abbrechen, wird die Achse automatisch gestoppt.
|
0x810A | Fehler | Allgemein | Fan |
|
0x810B | Fehler | Allgemein | Undervoltage Up |
|
0x810C | Fehler | Allgemein | Overvoltage Up |
|
0x8135 | Fehler | Allgemein | Cycletime has to be a multiple of 125 µs | Die IO- oder NC-Zykluszeit ist nicht ganzzahlig durch 125µs teilbar. |
0x8137 | Fehler | Allgemein | Electronic name plate: CRC error | Inhalt des Speicher des externen Typenschildes nicht gültig. |
0x8144 | Fehler | Allgemein | Hardware fault (%d) |
|
0x817F | Fehler | Allgemein | Error: 0x%X, 0x%X, 0x%X |
|
0x81B0 | Fehler | Allgemein | Content of PDO 0x%X is invalid: Item 0x%X:%X cannot be mapped |
|
0x81B1 | Fehler | Allgemein | Content of PDO 0x%X is invalid: Item 0x%X:%X has an unsupported length (%d bit) |
|
0x8201 | Fehler | Kommunikation | No communication to field-side (Auxiliary voltage missing) |
|
0x8302 | Fehler | Encoder | Feedback-Error | Die Amplitude des Resolvers ist zu klein. |
0x8304 | Fehler | Encoder | OCT communication error | Encoder Kommunikationsfehler |
0x831A | Fehler | Encoder | Number of encoder-increments per revolution is not a power of two |
|
0x8403 | Fehler | Drive | ADC Error | Fehler bei Strommessung im ADC |
0x8404 | Fehler | Drive | Overcurrent | Überstrom Phase U, V, oder W |
0x8405 | Fehler | Drive | Modulo position invalid (feedback position has changed too much while drive was turned off) | Modulo-Position ungültig |
0x8406 | Fehler | Drive | Undervoltage DC-Link | Die Zwischenkreisspannung der Klemme unterschreitet die parametrierte Mindestspannung. Das Aktivieren der Endstufe wird unterbunden. |
0x8407 | Fehler | Drive | Overvoltage DC-Link | Die Zwischenkreisspannung der Klemme überschreitet die parametrierte Maximalspannung. Das Aktivieren der Endstufe wird unterbunden. |
0x8408 | Fehler | Drive | I2T-Model Amplifier overload |
|
0x8409 | Fehler | Drive | I2T-Model motor overload |
|
0x840B | Fehler | Drive | Commutation error |
|
0x840C | Fehler | Drive | Motor not connected |
|
0x8415 | Fehler | Drive | Invalid modulo range | Modulo-Faktor ungültig |
0x8416 | Fehler | Drive | Motor-Overtemperature | Die Innentemperatur des Motors übersteigt die parametrierte Fehlerschwelle. Der Motor bleibt sofort stehen. Das Aktivieren der Endstufe wird unterbunden. |
0x8417 | Fehler | Drive | Maximum rotating field velocity exceeded | Drehfeldgeschwindigkeit übersteigt den von Dual Use (EU 1382/2014) vorgeschriebenen Wert. |
0x841C | Fehler | Drive | STO while the axis was enabled | Es wurde versucht die Achse zu aktivieren, obwohl die Spannung am STO-Eingang nicht anliegt. |
0x8420 | Fehler | Drive | Teach-In Process (%d) failed |
|
0x8421 | Fehler | Drive | Teach-In Process Timeout (STO, DC-Link, ...) |
|
0x8422 | Fehler | Drive | Drive configuration missing |
|
0x8423 | Fehler | Drive | Invalid process data format (number of singleturn bits+multiturn bits != 32) |
|
0x8441 | Fehler | Drive | Maximum following error distance exceeded |
|
0x8443 | Fehler | Drive | Invalid value for Mode of Operation |
|
0x8445 | Fehler | Drive | I2T-Model Brake chopper overload |
|
0x8446 | Fehler | Drive | Brake chopper overcurrent |
|
0x8448 | Fehler | Drive | Drive / axis is not referenced |
|
0x8449 | Fehler | Drive | Target position not in modulo range |
|
0x844A | Fehler | Drive | Modulo position: Checksum error |
|
0x844B | Fehler | Drive | Modulo position: Storage not supported for singleturn encoder |
|
0x844C | Fehler | Drive | Position offset cannot be used in the selected configuration |
|
0x8450 | Fehler | Drive | Invalid start type 0x%x |
|
0x8451 | Fehler | Drive | Invalid limit switch level |
|
0x8452 | Fehler | Drive | Drive error during positioning |
|
0x8453 | Fehler | Drive | Latch unit will be used by multiple modules |
|
0x8454 | Fehler | Drive | Drive not in control |
|
0x8455 | Fehler | Drive | Invalid value for "Target acceleration" |
|
0x8456 | Fehler | Drive | Invalid value for "Target deceleration" |
|
0x8457 | Fehler | Drive | Invalid value for "Target velocity" |
|
0x8458 | Fehler | Drive | Invalid value for "Target position" |
|
0x8459 | Fehler | Drive | Emergency stop active |
|
0x845A | Fehler | Drive | Target position exceeds Modulofactor |
|
0x845B | Fehler | Drive | Drive must be disabled |
|
0x845C | Fehler | Drive | No Feedback found |
|
0x845D | Fehler | Drive | Modulo factor invalid |
|
0x845E | Fehler | Drive | Invalid target position window |
|