Diagnose - Grundlagen zu 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

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:

Diagnose - Grundlagen zu Diag Messages 1:
DiagMessages im CoE

Unter 0x10F3:02 ist der Subindex der neuesten DiagMessage auslesbar.

Diagnose - Grundlagen zu Diag Messages 2:

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.

Diagnose - Grundlagen zu Diag Messages 3:
Implementierung DiagMessage-System im TwinCAT System Manager

Im Reiter Diag History (A) sind die Betätigungsfelder (B) wie auch die ausgelesene History (C) zu sehen. Die Bestandteile der Message:

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:

Diagnose - Grundlagen zu Diag Messages 4:
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
1: Info
2: reserved
4: Warning
8: Error

0: System
1: General
2: Communication
3: Encoder
4: Drive
5: Inputs
6: I/O allgemein
7: reserved

Fehlernummer

Beispiel: Meldung 0x4413 --> Drive Warning Nummer 0x13