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:

  1. 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.

  2. Verbinden Sie das Target, den Bus und den Host-PC mit installiertem Wireshark über einen Switch / einen Sniffer (ET2000) wie unten dargestellt:
    wireshark architecture
    Abbildung 1. Beispiel einer Wireshark-Verbindung über ET2000
  3. 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.
    wireshark network settings
    Abbildung 2. Eigenschaften des Ethernet-Nework-Adapters
  4. Konfigurieren Sie auch die erweiterten NIC-Eigenschaften:
    1. Klicken Sie auf Configure… und öffnen Sie die Registerkarte Advanced
    2. 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
  5. Energieverwaltung des Adapters:
    1. Klicken Sie im Fenster Eigenschaften des Netzwerkadapters auf Konfigurieren… und öffnen Sie die Registerkarte Advanced
    2. Öffnen Sie die Registerkarte Energieverwaltung
    3. 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:

  1. Starten Sie Wireshark und führen Sie die Protokollierung aus: Klicken wireshark list adapters 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 wireshark run logging, um die Protokollierung zu starten.
  2. Starten Sie den Master und Ihre Anwendung.
  3. Nach Beendigung der Anwendungsarbeit (oder nach Beendigung eines bestimmten Vorgangs) stoppen Sie die Protokollierung, indem Sie auf wireshark stop logging klicken wireshark stop logging und die Protokolldatei speichern.

In der Wireshark-Protokolldatei können Sie nun die folgenden Daten zur Analyse abrufen.

log autorecovery info
Abbildung 3. Beispiel für den Erhalt von Autorecovery-Zyklusdaten

Die Verwendung eines Filters vereinfacht die Suche in der Protokolldatei: Geben Sie einen Ausdruck in Filter ein und klicken Sie dann auf Anwenden.

filtering
Abbildung 4. Beispiel für die Anwendung des Filters

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.

log slaves number
Abbildung 5. Beispiel für die Abfrage der Slave-Nummer

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.

filter 120
Abbildung 6. Beispiel für den angeforderten Pre-Operational-Zustand der Slaves

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.

filter 130
Abbildung 7. Beispiel für den aktuellen Slave-Zustand

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:

  1. Gehen Sie zu Edit > Preferences
  2. Erweitern Sie Protocols und suchen Sie ESL
  3. Setzen Sie Enable dissector und klicken Sie auf OK
  4. Wählen Sie im Hauptmenü View > Time Display Format und stellen Sie ein:
    • Sekunden seit dem letzten angezeigten Paket
    • Mikrosekunden
  5. Starten Sie den Master und Ihre Anwendung und wechseln Sie in den Betriebszustand
  6. Nachdem der Master in den Betriebszustand gewechselt ist, führen Sie die Protokollierung durch:
    1. Klicken Sie in der Symbolleiste auf wireshark list adapters wireshark list adapters und wählen Sie die mit dem Sniffer verbundene NIC aus, dann klicken Sie auf Close.
    2. Klicken Sie auf wireshark run logging wireshark run logging, um die Protokollierung zu starten.
  7. Nach einer gewissen Zeit stoppen Sie die Protokollierung wireshark stop logging, 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).

log lost frame
Abbildung 8. Beispiel für die Erkennung eines verlorenen Rahmens

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.

log corrupted frame
Abbildung 9. Beispiel für die Erkennung eines beschädigten Rahmens

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

filter jitter
Abbildung 10. Beispiel für die Filterung des Logs nach gesendeten Frames

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.

Sind Sie bereit, unser Produkt EtherCAT Master zu testen?

Fordern Sie eine kostenlose Testversion an

Bitte kontaktieren Sie uns für weitere Informationen

    Mit der Eingabe Ihrer E-Mail-Adresse erklären Sie sich damit einverstanden, dass wir Ihre Anfrage per E-Mail beantworten.

    Diese Website ist durch CAPTCHA geschützt und darüber hinaus gelten die Datenschutzbestimmungen und Nutzungsbedingungen von Google.