- industrial ethernet port mirroring SPAN, Modbus TCP MBAP header exception code, OPC UA BadCertificateInvalid diagnosis, OPC UA packet analysis Wireshark, Schneider Modicon M580 OPC UA session, TCP retransmission DCS network fault, Wireshark Modbus TCP DCS troubleshooting, Yokogawa CENTUM VP Modbus TCP timeout
Fehlerdiagnose im Industrial Ethernet: Wireshark-Analyse für Modbus TCP und OPC UA in DCS-Netzwerken

F: Warum ist die Paket-Ebenen-Analyse in DCS-Netzwerken wichtig?
Industrielles Ethernet trägt das Lebenselixier der Prozesssteuerung. Modbus TCP und OPC UA sind zwei der gebräuchlichsten Protokolle – wenn die Kommunikation ausfällt, stoppt die Produktion. Yokogawa CENTUM VP DCS-Systeme nutzen Vnet/IP für interne Nachrichten, aber viele Feldgeräte kommunizieren weiterhin über Modbus TCP auf Port 502. Die Yokogawa VI701 Vnet/IP Schnittstellenkarte stellt die Hochgeschwindigkeits-Vnet/IP-Backbone-Verbindung für CENTUM VP FCS-Knoten bereit, während der Schneider TCSESM083F23F0 Industrial Managed Switch die SPAN-Port-Spiegelungsfunktion für Wireshark-Paketaufnahmen in DCS-Netzwerken bietet. Das Prosoft PLX32-EIP-MBTCP EtherNet/IP-zu-Modbus TCP Gateway ist eine häufige Protokollbrücke zwischen EtherNet/IP DCS-Systemen und Modbus TCP-Feldgeräten – eine häufige Ursache für die in diesem Leitfaden behandelten Timeout-Fehler.
F: Wie ist die Modbus TCP Frame-Struktur, die ich kennen muss?
Modbus TCP verpackt Daten in einen 7-Byte MBAP-Header plus PDU. Der Header enthält eine Transaktions-ID, Protokoll-ID (immer 0x0000), ein Längenfeld und eine Gerätekennung. Eine normale FC 03 Leseanfrage in Hex: 00 01 00 00 00 06 01 03 00 00 00 0A. Häufige Funktionscodes: 0x03 liest Halteregister, 0x06 schreibt ein einzelnes Register, 0x10 schreibt mehrere Register.
Wenn der Slave eine Ausnahmeantwort zurückgibt, ist Bit 7 im Funktionscode gesetzt (z. B. 0x83 = Fehler bei FC 03). Ausnahmecode 01 = illegale Funktion, 02 = illegale Datenadresse, 03 = illegaler Datenwert. Diese Codes sind Ihr erster Diagnosehinweis in Wireshark.
F: Wie funktioniert das OPC UA Binärprotokoll für die Wireshark-Analyse?
OPC UA verwendet standardmäßig Port 4840. Ein Client sendet eine Hello-Nachricht, der Server antwortet mit Acknowledge, dann öffnet der Client einen sicheren Kanal, erstellt eine Sitzung und aktiviert sie. In Yokogawa-Umgebungen laufen OPC UA-Server oft hinter Firewalls – prüfen Sie, ob Port 4840 offen und erreichbar ist. Für verschlüsselte Sitzungen laden Sie den privaten Serversicherheitsschlüssel im PEM-Format unter Bearbeiten → Einstellungen → Protokolle → OPC UA, um die Echtzeitentschlüsselung von Authentifizierungsfehlern und Sitzungstimeouts zu ermöglichen.
F: Wie richte ich Port-Spiegelung und Wireshark-Erfassung ein?
- Schritt 1: Melden Sie sich an der CLI oder Weboberfläche Ihres Industrieswitches (Hirschmann, Moxa oder Cisco IE-Serie) an. Identifizieren Sie den Quellport, der mit der SPS oder dem DCS-Controller verbunden ist.
- Schritt 2: Konfigurieren Sie die SPAN-Spiegelung: Legen Sie den Quellport auf den Ethernet-Port der SPS und den Zielport auf Ihren Diagnose-Laptop fest. Aktivieren Sie die bidirektionale Verkehrs-Spiegelung.
-
Schritt 3: Öffnen Sie Wireshark, wählen Sie die gespiegelte Schnittstelle aus und setzen Sie einen Capture-Filter:
tcp port 502 or tcp port 4840. Starten Sie die Erfassung. - Schritt 4: Reproduzieren Sie die Fehlerbedingung. Lassen Sie den Datenverkehr mindestens 30 Sekunden laufen.
-
Schritt 5: Stoppen Sie die Erfassung und speichern Sie sie als .pcapng. Wenden Sie Anzeige-Filter an: Verwenden Sie
modbusoderopcuaals Startfilter, danntcp.analysis.retransmission, um Anomalien zu isolieren.
F: Fallstudie – Yokogawa CENTUM VP Modbus TCP Timeout?
Eine petrochemische Anlage meldete sporadischen Datenverlust auf Modbus TCP-Verbindungen. Das CENTUM VP DCS fragte 24 Feldtransmitter alle 500 ms ab, mit gelegentlichen Ausfällen von drei oder vier Transmittern in der Scanliste. Nach Einrichtung der Port-Spiegelung an einem Hirschmann-Switch und zwei Stunden Traffic-Aufzeichnung zeigten Filter für tcp.analysis.retransmission und Modbus-Ausnahmeantworten mehrere TCP-Neuübertragungen an bestimmte Slave-Adressen.
Ursache: Ein RS-485-zu-Ethernet-Gateway mit Firmware-Fehler ließ bei hoher Last Pakete fallen, wenn mehr als 16 Slaves gleichzeitig antworteten. Lösung: Firmware des Gateways aktualisieren und die Abfragegruppe auf 12 Geräte pro Gateway reduzieren.
F: Fallstudie – Schneider Modicon M580 OPC UA Authentifizierungsfehler?
Der SCADA-Client einer Wasseraufbereitungsanlage konnte nach einer Zertifikatserneuerung keine OPC UA-Sitzungen mehr aufbauen. Wireshark zeigte OpenSecureChannel-Antworten mit dem Statuscode BadCertificateInvalid. Das Zwischenzertifikat der CA fehlte im Client-Truststore. Nach Hinzufügen des Zwischenzertifikats und Neustart des OPC UA-Clients wurden die Sitzungen erfolgreich aktiviert.
Ein zweites Problem trat auf: OPC UA Publish-Anfragen blieben bis zu 10 Sekunden ohne Antwort. Filterung nach opcua.service == Publish zeigte TCP Zero-Window-Benachrichtigungen – die CPU des Modicon-Controllers war zu 95 % ausgelastet. Durch Auslagerung der Logik auf einen Sekundärcontroller sank die Abonnementlatenz auf unter 200 ms.
Was sind die wichtigsten Profi-Tipps?
- Spiegeln Sie niemals Verkehr auf einen Port, der Produktionsverkehr trägt – das erzeugt eine Broadcast-Schleife.
- Setzen Sie immer vor Beginn einen Capture-Filter. Ungefilterte Aufnahmen in einem stark frequentierten DCS-Netzwerk füllen einen 1-GB-Puffer in weniger als 60 Sekunden.
- Verwenden Sie „Follow TCP Stream“, um die vollständige Client-Server-Kommunikation zu rekonstruieren.
- Exportieren Sie anomale Frames als Hex-Dumps für den technischen Support des Herstellers. Fügen Sie Zeitstempel und Schnittstelleninformationen hinzu.
- Archivieren Sie .pcapng-Dateien mit beschreibenden Namen (Datum, Controller-Modell, Fehlerbeschreibung) für Trendanalysen.
Autor: Zhang Minghui ist ein Ingenieur für industrielle Automatisierung mit über 10 Jahren Erfahrung in SPS-, DCS- und Steuerungssystemen.
