Analyse von EtherCAT Telegrammen

Im Folgenden werden beispielhaft aufgezeichnete Telegramme mit der verwendeten Konfiguration analysiert und gegenübergestellt.

Aufzeichnung

Die Line 1 der verwendeten ET2000 wird zwischen IPC und dem Koppler EK1100 eingesetzt. Denn das Ziel dieser Untersuchung ist festzustellen, inwiefern alle Slaves die versendeten Frames verändern. Dies kann am besten direkt am EtherCAT Master geloggt werden.

Der ET2000-Uplink wird mit der GBit-Schnittstelle eines CP6920 verbunden.

Analyse von EtherCAT Telegrammen 1:

Hinweise zur Datenaufzeichnung

Aufzeichnungen >>100.000 Frames können unter Umständen den Arbeitsspeicher des verwendeten PC überfordern. Ggf. sind Filter zu setzen um das Datenaufkommen zu reduzieren. Zur Aufzeichnung sollte ein PC mit herkömmlicher Festplatte, nicht mit CF-Card verwendet werden.

Analyse von EtherCAT Telegrammen 2:

Position der Datenaufzeichnung

Eine sinnvolle Interpretation der geloggten Daten ist meist nur bei bekanntem Anschlussort sinnvoll bzw. möglich. So kann ein Anschluss zwischen Master und dem ersten Slave, zwischen Ethernet-Teilnehmern oder auch am Ende einer Topologie sinnvoll sein, je nach Ziel der Untersuchung. Da in der ET2000 4 Lines zur Verfügung stehen, können Ethernet-Telegramme an bis zu 4 unterschiedlichen Orten gleichzeitig aufgenommen werden.

Interpretation

Konfiguration

Die TwinCAT-Konfiguration nach Abb. "Konfiguration und versendete EtherCAT-Datagramme" wird hier verwendet.

Analyse von EtherCAT Telegrammen 3:
Konfiguration und versendete EtherCAT-Datagramme

Der EtherCAT-Master (A) versendet zyklisch alle 1 ms einen Ethernet-Frame mit den Prozessdaten (B). Dieser Frame beinhaltet 5 EtherCAT-Datagramme (C). Im TwinCAT-EtherCAT-Master werden diese Datagramme automatisch berechnet. Die Berechnung kann in den "Advanced Settings" oder durch SyncUnits beeinflusst werden.

Exemplarisch sei hier das 2. Datagramm "LWR" betrachtet. Diese "Logical Write" ist 1 Byte lang (Len = 1) und liegt im 4,2-GByte EtherCAT-Addressraum an der logischen Addresse 0x10800 (D). Ein oder mehrere EtherCAT-Slaves müssen dieses Datagramm im Durchlauf bearbeiten. Nachdem alle Slaves dies erfolgreich getan haben, muss das Datagramm mit einem WorkingCounter = 1 zurückkommen (E).

Der gesamte Ethernet-Frame umfasst 94 Bytes (F) und lässt im verwendeten 1 ms-Zyklus mit einer Länge/Duration = 9.44 µs noch viel Raum für weitere Prozessdaten bzw. azyklische/queued Telegramme.

Während sich die azyklischen Telegramme während der Applikationslaufzeit verändern können, sind im TwinCAT-EtherCAT-Master die zyklischen Telegramme in der Regel unveränderlich. Dies vereinfacht die Interpretation der Aufzeichnungen.

Informationen zum Slave

Nun soll der Slave EL2008 betrachtet werden. Aus seinen "Advanced Settings"-->FMMU/SM, Abb. "Mapping-Einstellungen der EL2008" kann entnommen werden:

Diese Einstellungen werden vom TwinCAT-EtherCAT-Master automatisch gesetzt.

In den Telegrammaufzeichnungen muss nun nach den LWR auf log. 0x10800 gesucht werden.

Analyse von EtherCAT Telegrammen 4:
Mapping-Einstellungen der EL2008

Logs

Im Wireshark-Log lassen sich die EtherCAT-Datagramme sofort wiederfinden, Abb. "Wireshark Log". Mehrere tausend Frames wurden hier geloggt, exemplarisch wird hier Frame No. 4855 (abgehend vom Master, ca. im 1 ms Takt) und 4856 (aus dem Feld zurückkommend, abhängig vom Konfigurationsumfang einige µs später) betrachtet.

Analyse von EtherCAT Telegrammen 5:

Anzeige der Zeit-Spalte

Oft ist es hilfreich, in der Zeitspalte den Abstand zwischen 2 aufeinanderfolgenden Paketen angezeigt zu bekommen, s. Abb. "Wireshark Log". Unter View --> TimeDisplayFormat kann dies eingestellt werden.

Analyse von EtherCAT Telegrammen 6:

Verwertbarkeit der Zeit-Spalte

Die Informationen in der Zeitspalte "Time" können nur sinnvoll bewertet werden, wenn die Frames mit der ET2000 geloggt wurden, da sie jeden Frame mit einem HW-Zeitstempel versieht - wenn die Wireshark-dll wie beschrieben installiert ist, wird dieser Zeitstempel in der Time-Spalte auch angezeigt.. Andernfalls wird auf Software-Ebene der Ankunftszeitpunkt des Frames im Ethernet-Treiber des loggenden PC auf Basis der Betriebssystem-Zeit im ms-Raster verwendet. Außerdem wird dann üblicherweise die Reihenfolge im Log massiv verändert - dann muss vom Anwender z.B. durch Verwendung des Index-Feldes in den EtherCAT-Datagrammen erst die richtige Reihenfolge ermittelt werden.Die Verwendung der ET2000 vereinfacht/beschleunigt also die Dateninterpretation deutlich.

Analyse von EtherCAT Telegrammen 7:
Wireshark Log

Der abgehende Frame No. 4855 trägt 5 Commands/Datagramme (C). Angehängt wird von der ET2000 die ESL/EtherCATSwitchLink-Information (16 Byte) mit dem Zeitstempel (D). Dadurch wächst der Frame auf eine Länge von 110 Byte (B).

Von Interesse ist nun das LWR auf 0x10800, das nach Abb. "Konfiguration und versendete EtherCAT-Datagramme" das zweite Datagramm ist (B). Der in Wireshark integrierte EtherCAT-Parser erlaubt die Darstellung der Informationen nach Abb. "Datagramm Interpretation" - das 2.Datagramm ist markiert, dadurch werden auch die zugehörigen Bytes im 100-Byte-Rohdatenfeld hervorgehoben. Das Datagramm beginnt mit dem Datagrammtyp (LWR = x0B), es folgt der fortlaufende Index, hier x02. Weitere Information zum EtherCAT-Protokoll können der Dokumentation auf www.ethercat.org entnommen werden.

Von besonderem Interesse ist hier noch der WorkingCounter = 0 - alle vom Master abgehenden Datagramme tragen Wc=0.

Analyse von EtherCAT Telegrammen 8:
Datagramm Interpretation

Das Prozessdatum der EL2008, 1 Byte, findet sich auch im Datagramm wieder, s. Abb. "Prozessdatum der EL2008".

Analyse von EtherCAT Telegrammen 9:
Prozessdatum der EL2008

Im nach 2 µs aus dem Feld zurückkommenden Frame No. 4856 (A) haben sich alle WorkingCounter verändert, diese müssen nun den Erwartungswerten aus Abb. "Konfiguration und versendete EtherCAT-Datagramme" entsprechen.

Analyse von EtherCAT Telegrammen 10:
WorkingCounter im zurückkommenden Frame