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.
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. |
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.
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:
- dass er nur 1 FMMU (Fieldbus Memory Management Unit) verwendet (B),
- die 1 Byte (Length = 1)
- aus dem logischen Addressraum bei Byte 0x10800 (C)
- ab Bit 0 (L Start: ".0")
- bis Bit 7 (L EndBit = 7)
- in den physikalischen RAM-Speicher des Slaves nach Addresse 0x0F00 überträgt (D).
Diese Einstellungen werden vom TwinCAT-EtherCAT-Master automatisch gesetzt.
In den Telegrammaufzeichnungen muss nun nach den LWR auf log. 0x10800 gesucht werden.
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.
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. |
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. |
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.
Das Prozessdatum der EL2008, 1 Byte, findet sich auch im Datagramm wieder, s. Abb. "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.