KPA EtherCAT Master (Master) enthält Diagnose- und Statistikwerkzeuge zur Untersuchung des EtherCAT-Daten-Verkehrs.
Wenn detailliertere Informationen zur Analyse des EtherCAT-Daten-Verkehrs benötigt werden, kann der Analysator Wireshark eines Drittanbieters verwendet werden. Wireshark ist ein kostenloses und ‚open-source‘ Tool. Dies macht es zu einem der besten verfügbaren Datenverarbeitungs-Analysatoren macht.
Um eine Verbindung zwischen dem Master und Wireshark herzustellen, kann ein Switch ? verwendet werden. Bei Verwendiung eines einfachen Switch kommt es jedoch zu einer Verzögerung beim Empfang und beim Senden eines Frames, so dass ein solches System kein präzises Timing garantieren kann. Um diese Verzögerung zu vermeiden und Echtzeitsysteme neben Wireshark zu analysieren, sollte ein Echtzeit-Sniffer wie ET2000 von Beckhoff verwendet werden.
Wireshark konfigurieren und protokollieren
Um Traces vom KPA EtherCAT Master auf dem Target zu erhalten, indem Sie Wireshark remote verwenden, gehen Sie wie folgt vor:
- Laden Sie Wireshark herunter und installieren Sie es auf dem Host-PC.
Bitte beachten Sie bei der Auswahl die jeweilige Version von Wireshark: Wenn Sie beabsichtigen, Leistungsmetriken damit zu erhalten, empfehlen wir die Version 1.12. Diese Version ermöglicht eine bessere Unterstützung das ESL-Protokolls, das für die Ermittlung von Leistungskennzahlen erforderlich ist. - Verbinden Sie das Target, den Bus und den Host-PC mit installiertem Wireshark über einen Switch / einen Sniffer (ET2000) wie unten dargestellt:
- Schalten Sie auf dem Host-PC für die an den Sniffer angeschlossene NIC alle Dienste aus. Achten Sie darauf, dass WinPCAP installiert ist und der entsprechende Dienst gestartet ist.
- Konfigurieren Sie auch die erweiterten NIC-Eigenschaften:
- Klicken Sie auf Configure… und öffnen Sie die Registerkarte Advanced
- Stellen Sie die Eigenschaften wie unten beschrieben ein, wobei „m“ – obligatorisch, „o“ – optional:
Eigentum Wert Status Ablaufsteuerung Deaktiviert m Gigabit-Master-Slave-Modus Automatische Erkennung o Moderation unterbrechen Ermöglicht m Unterbrechungsmoderationsrate Aus m IPv4-Prüfsummen-Offload Rx und Tx aktiviert o Jumbo-Paket 4088 Bytes m Großer Sende-Offload V2 (IPv4) Ermöglicht o Großer Send-Offload V2 (IPv6) Ermöglicht o Lokal verwaltete Adresse Nicht anwesend o Link-Statusereignis protokollieren Deaktiviert m Maximale Anzahl von RSS-Warteschlangen 2 Warteschlangen o Paketpriorität und VLAN Paketpriorität und VLAN deaktiviert m Puffer empfangen 2048 (maximal) m Empfangen Sie Seitenschuppen Deaktiviert m Geschwindigkeit und Duplex automatisch Verhandlung o TCP-Prüfsummen-Offload (IPv4) Rx und Tx aktiviert o TCP-Prüfsummen-Offload (IPv6) Rx und Tx aktiviert o Übertragungspuffer 512 o UDP-Prüfsummen-Offload (IPv4) Rx und Tx aktiviert o UDP-Prüfsummen-Offload (IPv6) Rx und Tx aktiviert o Warten Sie auf den Link Automatische Erkennung o
- Energieverwaltung des Adapters:
- Klicken Sie im Fenster Eigenschaften des Netzwerkadapters auf Konfigurieren… und öffnen Sie die Registerkarte Advanced
- Öffnen Sie die Registerkarte Energieverwaltung
- Deaktivieren Sie Erlauben Sie dem Computer, dieses Gerät auszuschalten, um Energie zu sparen
Analyse der Daten des Autorecovery-Zyklus
Bei jedem Autorecovery-Zyklus holt der Master Diagnosedaten vom Bus ab.
Durch eine sorgfältige Einrichtung des Systems ist es möglich, alle erforderlichen Daten zu erfassen und zu analysieren, um einen umfassenden Einblick in die Funktionsweise des Busses zu erhalten. Um eine erfolgreiche Erfassung von Diagnosedaten während jedes Zyklus zu gewährleisten, bereiten Sie das System vor:
- Starten Sie Wireshark und führen Sie die Protokollierung aus: Klicken Sie in der Symbolleiste auf wireshark list adapters, wählen Sie die mit dem Sniffer verbundene Netzwerkkarte aus und klicken Sie auf Close, dann auf wireshark run logging , um die Protokollierung zu starten.
- Starten Sie den Master und Ihre Anwendung.
- Nach Beendigung der Anwendungsarbeit (oder nach Beendigung eines bestimmten Vorgangs) stoppen Sie die Protokollierung, indem Sie auf wireshark stop logging klicken und die Protokolldatei speichern.
In der Wireshark-Protokolldatei können Sie nun die folgenden Daten zur Analyse abrufen.
Die Verwendung eines Filters vereinfacht die Suche in der Protokolldatei: Geben Sie einen Ausdruck in Filter ein und klicken Sie dann auf Anwenden.
Anzahl der Slaves, die online auf dem Bus sind
Jeder Autorecovery-Zyklus beginnt mit dem Senden eines Broadcast Read (BRD)-Kommandos, das mit einem Arbeitszähler (WC) zurückgegeben wird, welcher der Anzahl der Online-Slaves auf dem Bus entspricht. Filtern Sie das Protokoll nach BRD-Kommandos.
Angeforderter Zustand der Slaves
Um den angeforderten Zustand der Slaves zu ermitteln, wird das Register 0x120 gelesen. Die folgenden Werte sind möglich:
01 – Init
02 – Vor-Betriebsbereit
03 – Bootstrap anfordern
04 – Sicher-Betrieblich
08 – Betrieblich
Filtern Sie die Protokolldatei nach gesendeten Befehlen mit einem Wert von Register 0x120 und lesen Sie den Abschnitt „EtherCAT-Datagramme“ für Details.
Aktueller Zustand der Slaves
Um den aktuellen Zustand der Slaves zu erhalten, wird das Register 0x130 gelesen, folgende Werte sind möglich
01 – Init
02 – Vorbetrieblich
03 – Bootstrap anfordern
04 – Sicherer Betrieb (Safe-Operational)
08 – Betriebsbereit
Filtern Sie die Protokolldatei nach empfangenen Befehlen mit einem Wert von Register 0x130 und lesen Sie den Abschnitt „EtherCAT-Datagramme“ für Details.
Fehler beim Zustandsübergang
Wenn im vierten Bit von Register 0x130 der Wert 1 auftritt, bedeutet dies einen Übergangsfehler. Für weitere Details prüfen Sie den Wert von Register 0x134 (AL status code).
Verlorener oder beschädigter Frame
Bevor Sie verlorene oder beschädigte Frames erkennen, aktivieren Sie das ESL-Protokoll und konfigurieren Sie das Zeitanzeigeformat in Wireshark, und stellen Sie dann eine Verbindung zum Master im Betriebszustand her:
- Gehen Sie zu Edit > Preferences
- Erweitern Sie Protocols und suchen Sie ESL
- Setzen Sie Enable dissector und klicken Sie auf OK
- Wählen Sie im Hauptmenü View > Time Display Format und stellen Sie ein:
- Sekunden seit dem letzten angezeigten Paket
- Mikrosekunden
- Starten Sie den Master und Ihre Anwendung und wechseln Sie in den Betriebszustand
- Nachdem der Master in den Betriebszustand gewechselt ist, führen Sie die Protokollierung durch:
- Klicken Sie in der Symbolleiste auf wireshark list adapters und wählen Sie die mit dem Sniffer verbundene NIC aus, dann klicken Sie auf Close.
- Klicken Sie auf wireshark run logging , um die Protokollierung zu starten.
- Nach einer gewissen Zeit stoppen Sie die Protokollierung , indem Sie auf wireshark stop logging klicken und die Protokolldatei speichern.
Normalerweise sendet der Master einen Frame mit einem Arbeitszähler von 0 und empfängt dann diesen Frame mit einem Arbeitszähler ungleich 0 zurück, was bedeutet, dass der Frame gesendet wurde, den Bus durchlief und zum Master zurückkehrte.
Wenn zu einem bestimmten Zeitpunkt in der Wireshark-Protokolldatei nur der gesendete Frame, aber kein empfangener Frame erkannt wird, bedeutet dies, dass der Frame verloren gegangen ist. Irgendwie werden im Wireshark-Protokoll Sende-/Empfangspaare erkannt, aber mit CRC- oder Ausrichtungsfehlern, die im Protokoll angezeigt werden können, wenn das ESL-Protokoll wie bei den Leistungsmetriken aktiviert ist (siehe weiter).
Wenn ein Datenpaket den Bus durchlaufen hat, aber irgendwie beschädigt wurde, wird im Wireshark-Protokoll das gesendete und empfangene Datenpaket erkannt, aber mit CRC- oder Ausrichtungsfehler.
Leistungsmetriken
Um Leistungskennzahlen in Wireshark zu erhalten, muss das ESL-Protokoll aktiviert, das Zeitanzeigeformat konfiguriert und die Verbindung zum Master in den Betriebszustand versetzt werden, wie bei der Vorbereitung des Systems zur Erkennung eines verlorenen oder beschädigten Rahmens
Master-Zyklus-Jitter
Filtern der Protokolldatei nach zyklischen Frames, die vom Master gesendet werden
Sortieren Sie das Protokoll nach der Spalte Zeit und suchen Sie die Mindest- und Höchstwerte.
Die Differenz zwischen diesen Werten ist der Jitter. Beachten Sie, dass der Jitter +/-10% des Master-Zyklus betragen sollte.