Wireshark Plugin für S7-Protokoll

Blockmove

Supermoderator und User des Jahres 2019
Teammitglied
Beiträge
8.605
Punkte Reaktionen
2.171
Zuviel Werbung?
->Hier kostenlos registrieren
Hallo zusammen,

Ich bin noch Anfänger im Bereich, und ich wollte die Kommunikation zwischen WinCC und SPS mit Wireshark untersuchen. Die Kommunikation erfolgt mit Ethernet. Also Wer mit Wireshark die Kommunikation prüft, sucht bestimmt irgend ein Problem in der Kommunikation.
Wie kann man die Daten aus Wireshark sinnvoll visualisieren, um Probleme zu erkennen?

für jede Hilfe oder Quellen wäre ich sehr dankbar

Liebe Grüße
Welche Kenntnisse zum Thema Ethernet, TCP/IP, Protokolle bringst du denn mit?
Wireshark ist ein Tool von Spezialisten für Spezialisten.
Da musst du schon einiges an Zeit für die Einarbeitung investieren
 

somox

New member
Beiträge
4
Punkte Reaktionen
0
Zum Beispiel die Stabilität und Kommunikationsleistung des Systems. dies ist die Problemstellung meiner Thesis. Ich habe ein Beispielprojekt erstellt und mit Hilfe von Wireshark den gegenseitigen Austausch von Informationen zwischen sps und WinCC gemessen. Kann ich die Stabilität und Kommunikationsleistung des Systems visualisieren.

Liebe Grüße
 

Blockmove

Supermoderator und User des Jahres 2019
Teammitglied
Beiträge
8.605
Punkte Reaktionen
2.171
Zuviel Werbung?
->Hier kostenlos registrieren
Zum Beispiel die Stabilität und Kommunikationsleistung des Systems. dies ist die Problemstellung meiner Thesis. Ich habe ein Beispielprojekt erstellt und mit Hilfe von Wireshark den gegenseitigen Austausch von Informationen zwischen sps und WinCC gemessen. Kann ich die Stabilität und Kommunikationsleistung des Systems visualisieren.

Liebe Grüße

Für Netzwerkanalyse ist ntop ein ganz brauchbares Tool mit einigen Visualisierungen.
Wireshark bringt ein paar Infos unter Statistics.
 
OP
T

Thomas_v2.1

Well-known member
Beiträge
7.772
Punkte Reaktionen
2.297
Wireshark ist eher das Werkzeug zur statischen Analyse, und nicht unbedingt geeignet um Live-Daten für z.B. ein Dashboard zu generieren. Die Frage ist, was mit Stabilität und Kommunikationsleistung gemeint ist, und ob das generell für TCP/IP gelten oder spezifisch auf Siemens SPS zugeschnitten sein soll, wobei hier noch zwischen S7-300/400 und S7-1200/1500 zu unterscheiden wäre (S7-300/400 einfach, S7-1200/1500 schwer dort aus den Analysen verwertbare Informationen herauszufinden).

Ich hatte mir z.B. schon mal für den Wireshark Statistik Menüpunkt überlegt, dort zu erfassen auf welche Speicherbereiche wie oft lesend und schreibend zugegriffen wird. Also z.B. DB1.DBW0 mit 120 lesenden Zugriffen, usw. Dafür musst du aber den Wireshark Dissector Code erweitern, und der Statistik Menüpunkt hat ein mehr oder weniger starres Format, darum habe ich das nicht weiter verfolgt.

Was für eine weitere statische Analyse auch möglich ist, wäre eine Aufzeichnung der Kommunikation zu erstellen (pcap Datei), mittels tshark die gewüschten Felder die du vom S7-Protokoll oder auch tcp/ip benötigst zu exportieren, und dann auf die Daten dein eigenes Programm loszulassen.

Bei einer S7 SPS würde mir als Analyse der Kommunikationsleistung z.B. die Antwortzeit der SPS einfallen, d.h. welche Zeit von Request zu Response wird benötigt, ggf. Lese- oder Schreibvorgänge die mit Fehler beantwortet wurden oder ähnliches. So etwas habe ich mir selber mal für Profinet gebaut, welches den Jitter berechnet, die Teilnehmer auflistet, nach Verbindungsaufbau Telegrammen sucht usw.
 

somox

New member
Beiträge
4
Punkte Reaktionen
0
welches den Jitter berechnet
Hallo Thomas,
ich bedanke mich für die Zahlreiche Informationen, ich muss noch recherchieren, damit ich in die Reihe einsteigen kann, ich habe JITTER-Werte dargestellt, aber ich finde dass das Diagramm irgendwie komisch aussieht, ich werde mich auf jeden fall nochmal melden.

Liebe Grüße
 

Anhänge

  • JITTER (1) (1).jpg
    JITTER (1) (1).jpg
    47,7 KB · Aufrufe: 15

wkallplc

Member
Beiträge
9
Punkte Reaktionen
2
Zuviel Werbung?
->Hier kostenlos registrieren
Effekte in erier PC <-> SPS Kommunikation -
: Klar, Ping muss laufen
: Auch klar - WinCC muss die S7 Verbindung aufbauen können. Da ich Ihren SPS Typ nicht kenne - Siemens hat diverse S7 Protokolle, aktuell drei unterschiedliche. Wenn WinCC die Verbinung nicht hinbekommt dann reichen die Diagnosedinge in WinCC
: Kommen nun nicht alle Daten so helfen auch oft die WinCC Diagnosen. Es wird genau angezeigt welche Daten nicht kommen.
: Aber auch Wireshark zeigt diese Details. Die Analyse ist aber mehr Aufwand und setzt etwas Basiswissen über die SPS voraus. Handelt es sich um eine Siemens S5 oder eine S7 300/400 so zeigt der Wireshark s7comm Decoder an was angefragt oder geschrieben wird und was die SPS antwortet. Bei S7 1200/1500 wird zum Einen der s7comm_plus Decoder benötigt. Zum Anderen arbeiten diese SPS symbolisch - eine S7 300/400 kann da nur DBxDWyLEnz. Aber in der 1500 sehen Sie beim Verbindungsstart das Symbolbrowsen, später fragt WinCC dann über die damit gesammelten ID die eigentlichen daten an. Wenn Sie eine ganz neue S7 1500 mit TIA 17 und Firmware 2.9 haben dann benötigt der Wireshark Decoder für eine Anzeige die Zertifikate mit denen Sie die Verbindung gesichert haben. Diese können Sie in TIA17 exportieren und Wireshark geben.
Fazit: Immer zuerst die Netzwerk Basis und WinCC Diagnosen nutzen. Dann erst Wireshark.
 

MyName

Member
Beiträge
8
Punkte Reaktionen
0
Effekte in erier PC <-> SPS Kommunikation -
: Klar, Ping muss laufen
: Auch klar - WinCC muss die S7 Verbindung aufbauen können. Da ich Ihren SPS Typ nicht kenne - Siemens hat diverse S7 Protokolle, aktuell drei unterschiedliche. Wenn WinCC die Verbinung nicht hinbekommt dann reichen die Diagnosedinge in WinCC
: Kommen nun nicht alle Daten so helfen auch oft die WinCC Diagnosen. Es wird genau angezeigt welche Daten nicht kommen.
: Aber auch Wireshark zeigt diese Details. Die Analyse ist aber mehr Aufwand und setzt etwas Basiswissen über die SPS voraus. Handelt es sich um eine Siemens S5 oder eine S7 300/400 so zeigt der Wireshark s7comm Decoder an was angefragt oder geschrieben wird und was die SPS antwortet. Bei S7 1200/1500 wird zum Einen der s7comm_plus Decoder benötigt. Zum Anderen arbeiten diese SPS symbolisch - eine S7 300/400 kann da nur DBxDWyLEnz. Aber in der 1500 sehen Sie beim Verbindungsstart das Symbolbrowsen, später fragt WinCC dann über die damit gesammelten ID die eigentlichen daten an. Wenn Sie eine ganz neue S7 1500 mit TIA 17 und Firmware 2.9 haben dann benötigt der Wireshark Decoder für eine Anzeige die Zertifikate mit denen Sie die Verbindung gesichert haben. Diese können Sie in TIA17 exportieren und Wireshark geben.
Fazit: Immer zuerst die Netzwerk Basis und WinCC Diagnosen nutzen. Dann erst Wireshark.

Hallo,

ich hätte eine Frage zum Zertifikat Export aus TIA V17 und Import in Wireshark:
Ich finde nur die Möglichkeit das öffentliche Zertifikat zu exportieren (Unter Schutz & Security->Zertifikatsmanager->Gerätezertifikate). Zur Analyse bräuchte Wireshark wohl den privaten Schlüssel, welcher dort nicht enthalten ist ( Import in Wireshark unter Protokolle->TLS oder RSA-Schluessel?)
Gibt es hier eine mir noch unbekannte Möglichkeit für den Export und Import?
Oder muss ich hier selbst ein Zertifikate erstellen (*.der und *.pem) und diese dem TIA Portal und Wireshark geben? Wenn ja wie? Beim Tia Portal Gerätezertifikate Einstellungsseite gibt es eine Import Moeglichkeit ("Hinzufügen" Button) aber die tut nichts.

Danke und Gruss MyName
 
OP
T

Thomas_v2.1

Well-known member
Beiträge
7.772
Punkte Reaktionen
2.297
Hallo Thomas,
ich bedanke mich für die Zahlreiche Informationen, ich muss noch recherchieren, damit ich in die Reihe einsteigen kann, ich habe JITTER-Werte dargestellt, aber ich finde dass das Diagramm irgendwie komisch aussieht, ich werde mich auf jeden fall nochmal melden.

Bei "normaler" S7-Kommunikation ist der Jitter nicht sonderlich sinnvoll, da das Standard TCP/IP Kommunikation und kein Echtzeitprotokoll wie Profinet verwendet. Bei Profinet hast du einen festen Aktualisierungszyklus, z.B. 10 ms, wenn dann je nach Einstellungen z.B. nach 3 Zyklen der Teilnehmer sich nicht meldet, dann gilt er als gestört. Wenn du hier nach Daten über Profinet z.B. eine Regelung aufbaust und der Zyklus schwankt stark dann führt das u.U. bei deiner Regelung zu Problemen, auch wenn der Teilenehmer noch nicht ausgefallen ist.

Bevor du da anfängst du programmieren, würde ich mir im Detail überlegen was überhaupt sinnvoll ist. Du kannst dir ja Stichpunkte überlegen und hier zur Diskussion stellen. Wenn es sinnvoll ist, kannst du das ggf. auch direkt in Wireshark integrieren, dann hat es jeder Benutzer direkt zur Verfügung.
 

somox

New member
Beiträge
4
Punkte Reaktionen
0
Zuviel Werbung?
->Hier kostenlos registrieren
Hallo,

gibt es einen s7comm-Paketfilte, die mir nur ein Ereignis oder einen bestimmten Eingang oder Ausgang in Wireshark anzeigt ?
Im Anhang findet ihr einer Aufzeichnung für Timer 10s

Danke im voraus.
 

Anhänge

  • WireShark_Test.zip
    295,7 KB · Aufrufe: 2
OP
T

Thomas_v2.1

Well-known member
Beiträge
7.772
Punkte Reaktionen
2.297
Am einfachsten ist es, wenn du dir ein entsprechendes Paket heraussuchst, und wenn du auf eine für dich interessante Eigenschaft stößt, dann kannst du dieses Feld markieren und das Kontextmenü mit der rechten Maustaste aufrufen. Dort hast du im Kontextmenü "Als Filter anwenden" und dann wählst du "Ausgewählt". Dann wird diese Eigenschaft mit dem Wert automatisch als Filter gesetzt.

Bei s7comm wäre das als Filter für Eingänge "s7comm.param.item.area == 0x81". Du kannst das noch auf Byte und Bitadressen erweitern. Z.B. Alle Eingänge mit E1.x wäre dann "s7comm.param.item.area == 0x81 && s7comm.param.item.address.byte == 1". Die beiden && stehen für logisch UND, du kannst auch || für ODER, oder noch weitere Vergleichsmöglichkeiten einsetzen.

Bei s7comm-plus was in der Aufzeichnung auch vorhanden ist, ist das nicht ganz so einfach.
 
Oben