OpenEC-Diagnostics
Open Source, C#, .NET, EtherCAT, Industrieautomation, Diagnose

OpenEC-Diagnostics

Kostenlose Open-Source-Überwachung und -Diagnose für EtherCAT unter .NET. Es beobachtet ein laufendes Netzwerk oder liest eine Aufzeichnung, dekodiert den Verkehr und zeigt, was jedes Gerät tut, ganz ohne selbst der Master zu sein.

Beschreibung

EtherCAT ist ein schnelles Industrienetzwerk, das eine Steuerung (den Master) mit den Geräten einer Maschine verbindet, etwa Antriebe, I/O-Module und Sensoren. Wenn etwas schiefläuft, müssen Ingenieure in diesen Verkehr hineinsehen. Die Werkzeuge, die das gut können, waren bisher meist teuer und geschlossen.

OpenEC-Diagnostics ist eine kostenlose, quelloffene Alternative, geschrieben in modernem C# und .NET. Es hört den EtherCAT-Verkehr mit und erklärt ihn, damit du eine Maschine untersuchen, ihren Zustand prüfen und die ausgetauschten Daten überprüfen kannst.

Der wichtigste Gedanke ist, dass es passiv ist. Es liest nur mit. Es sendet nichts ins Netzwerk. Dadurch kannst du es an eine laufende Maschine anschließen, ohne sie zu stören. Es arbeitet neben jedem Master (etwa TwinCAT, Acontis, IgH oder SOEM) und den Geräten jedes Herstellers.

Das Projekt besteht aus drei Teilen:

  • OpenEC.Monitor (das SDK): Eine C#-Bibliothek, die rohe EtherCAT-Frames dekodiert. Sie liest den Verkehr live über einen Netzwerk-TAP (ein kleines Gerät, das den Verkehr auf einer Leitung kopiert) oder aus einer gespeicherten .pcap- / .pcapng-Aufzeichnung. Sie stellt eine saubere C#-API für Gerätezustände, Prozessdaten und Fehlerzähler bereit.
  • openec (die CLI): Ein Kommandozeilenwerkzeug für den Einsatz ohne Oberfläche. Es listet Aufnahme-Schnittstellen auf, wertet Aufzeichnungen aus, überwacht eine Live-Schnittstelle und kann synthetische Beispielaufnahmen zum Üben erzeugen.
  • OpenEC.Inspector (die Oberfläche): Eine plattformübergreifende Desktop-App auf Basis von Avalonia. Sie zeigt den Bus als Gerätebaum mit einem Live-Statuspunkt für den Master und jedes Gerät, einen Editor mit Reitern für Zustand und dekodierte Variablen sowie eine Topologie-Ansicht, die das Netzwerk als physische Karte mit dem Link-Zustand jedes Ports zeichnet.

Was es kann:

  • Passive Überwachung: Hört über einen üblichen Netzwerk-TAP mit, ohne Master oder Geräte zu beeinflussen. Es besteht kein Risiko, die Maschine zu stören.
  • Tiefe Dekodierung: Liest EtherCAT-Datagramme, Working Counter, die Mailbox-Protokolle (CoE, FoE, EoE, SoE) und Prozessdaten.
  • ENI-Unterstützung: Lädt eine ENI.xml-Datei, damit aus rohen Bytes benannte, lesbare Variablen werden.
  • Lernmodus: Wenn keine ENI vorhanden ist, kann es die Bus-Konfiguration aus dem Startverkehr rekonstruieren und als echte ENI-Datei exportieren. Ein gelernter Bus wird zwischengespeichert, sodass du dich später an eine bereits laufende Maschine anschließen und ihre Prozessdaten trotzdem lesen kannst.
  • Offline-Analyse: Öffnet Wireshark-typische .pcap- und .pcapng-Aufzeichnungen zur späteren Auswertung.
  • Plattformübergreifend: Läuft unter Windows, Linux und macOS auf .NET 8.

Das Projekt steht unter der Apache-2.0-Lizenz.

GitHub: https://github.com/patdhlk/OpenEC-Diagnostics

Tech-Stack

  • C# / .NET 8
  • Avalonia
  • EtherCAT
  • SharpPcap / libpcap / Npcap
  • ENI / ESI XML
  • Netzwerk-TAP
  • Windows
  • Linux
  • macOS