Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 26

Thema: Telegramme_Wireshark

  1. #11
    Registriert seit
    29.03.2004
    Beiträge
    5.793
    Danke
    144
    Erhielt 1.706 Danke für 1.238 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Du könntest zumindest mal auflisten, was für ein Gerät du hast und welche Konfiguration der Module du getätigt hast.
    Ich habe das auch noch nicht gemacht, aber ohne diese Informationen wird dir niemand sagen können was dort für Daten übermittelt werden.

  2. Folgender Benutzer sagt Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    haso67 (07.08.2015)

  3. #12
    haso67 ist offline Benutzer
    Themenstarter
    Registriert seit
    02.04.2015
    Beiträge
    40
    Danke
    7
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Unbenannt1.JPG Bild mit Parameter Write/Read werden.

  4. #13
    Registriert seit
    28.03.2012
    Ort
    Hessen
    Beiträge
    116
    Danke
    4
    Erhielt 20 Danke für 18 Beiträge

    Standard

    Zitat Zitat von haso67 Beitrag anzeigen
    Meine frage wäre die Hex zahl 80 was die zu bedeuten hat , es ist wie eine Trennung .Immer was da zwischen liegt ist der Richtige wert Sei es Steuerwort , der Strom oder drehmoment
    Diese "Trennungen" sind IOProviderStatus. Alle Modul-E/A-Daten haben zusätzlich ein ProviderStatus sowie dann im gegenübergestellte Richtung dann ein ConsumerStatus.

    Ab 0010 die I/O-Daten, die erste 80 Bytes sind die IOPS/IOCS zum Gerät mit sein PROFINET Ports (Slot 0, Subslot 8000h, 8001h und 8002h).

    IOPS/IOCS kann 00h (=Bad), 60h (=Idle) oder 80h (=Good) sein. Kurz nach Verbindungsaufbau werden die Stati auf 00h stehen um dann nach einige Telegramme in 80h zu wechseln.

    GSDML nutzt da nicht, da jeder PROFINET Controller (SPS/Robi) die E/A-Daten anders einteilen kann. Da hilft nur das Telegramm vom Verbindungsaufbau, da steht drin was wohin kommt.
    Kaum macht man es richtig, schon funktioniert es.

  5. Folgende 3 Benutzer sagen Danke zu olliew für den nützlichen Beitrag:

    centipede (07.08.2015),haso67 (07.08.2015),Thomas_v2.1 (07.08.2015)

  6. #14
    haso67 ist offline Benutzer
    Themenstarter
    Registriert seit
    02.04.2015
    Beiträge
    40
    Danke
    7
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Olliew danke dir das hat mich jetzt auf jeden Fall weitergebracht .

  7. #15
    Registriert seit
    29.03.2004
    Beiträge
    5.793
    Danke
    144
    Erhielt 1.706 Danke für 1.238 Beiträge

    Standard

    Zitat Zitat von olliew Beitrag anzeigen
    GSDML nutzt da nicht, da jeder PROFINET Controller (SPS/Robi) die E/A-Daten anders einteilen kann. Da hilft nur das Telegramm vom Verbindungsaufbau, da steht drin was wohin kommt.
    Kann ich nicht alleine aus der Konfiguration des Gerätes (d.h. welches Modul steckt auf welchem Slot) darauf schließen an welcher Stelle die Daten im Telegramm wieder auftauchen?

    Und wenn ich nur das Telegramm vom Verbindungsaufbau habe, könnte ich dann anhand einer vorliegenden GSDML auf die aktuelle Konfiguration im Controller schließen?

    Ich denke nur etwas darüber nach ob es möglich ist den PN-Dissector von Wireshark in irgendeiner Art und Weise zu erweitern um auch die IO-Daten zerlegen zu können. Aber das wäre ja nichteinmal mit einer kompletten Bibliothek von allen GDSML-Dateien möglich.

  8. #16
    Registriert seit
    28.03.2012
    Ort
    Hessen
    Beiträge
    116
    Danke
    4
    Erhielt 20 Danke für 18 Beiträge

    Standard

    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen
    Kann ich nicht alleine aus der Konfiguration des Gerätes (d.h. welches Modul steckt auf welchem Slot) darauf schließen an welcher Stelle die Daten im Telegramm wieder auftauchen?
    Leider nicht

    Beispiel ein 16-fach Eingangsmodul: Das Device verschickt 2 Bytes mit die E-Daten + IOPS-Byte. Der Controller quittiert dies mit ein IOCS-Byte.
    Beispiel ein 16-fach Ausgangsmodul: Der Controller verschickt 2 Bytes mit die A-Daten + IOPS-Byte. Das Device quittiert dies mit ein IOCS-Byte.

    Bei ein modulares Device entscheidet der Controller über die Reihenfolge im PROFINET Telegramm. Z.B. zuerst die Päkchen mit Daten und danach die IOCS-Bytes. Oder die Module der Reihe nach. Oder sonst wie (OK, das habe ich noch nicht gesehen in der Praxis )


    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen
    Und wenn ich nur das Telegramm vom Verbindungsaufbau habe, könnte ich dann anhand einer vorliegenden GSDML auf die aktuelle Konfiguration im Controller schließen?
    Ja. Anhand DAP Identkode und dann Modulkode+Submodulkode lässt sich das entsprechende Modul in die GSDML Datei finden.


    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen
    Ich denke nur etwas darüber nach ob es möglich ist den PN-Dissector von Wireshark in irgendeiner Art und Weise zu erweitern um auch die IO-Daten zerlegen zu können. Aber das wäre ja nichteinmal mit einer kompletten Bibliothek von allen GDSML-Dateien möglich.
    Yop. Mit die GSDML Dateien alleine ist es nicht getan.
    Kaum macht man es richtig, schon funktioniert es.

  9. #17
    Registriert seit
    29.03.2004
    Beiträge
    5.793
    Danke
    144
    Erhielt 1.706 Danke für 1.238 Beiträge

    Standard

    Zitat Zitat von olliew Beitrag anzeigen
    Yop. Mit die GSDML Dateien alleine ist es nicht getan.
    Ich habe kürzlich von einem Gerät gelesen, das man (angeblich) einfach ins Profinet-Netzwerk hängen können soll, und dieses dann Prozesswerte abgreift und zur Anzeige bringt. Jetzt finde ich den Link nicht wieder, es stand in einem dieser Werbeblätter für Automatisierungstechnik.

    Nur wie soll das funktionieren, ohne dass ich dieses Gerät parametrieren muss, bzw. zumindest die GDSML-Datei importieren welche der Controller verwendet? Prinzipiell ist das nicht viel anderes als Wireshark, also ein Sniffer am Netzwerk.
    Wenn das Gerät bei Hochlauf schon am Bus hängt bekommt es die Konfigurationsübertragung zu den Devices mit. Aber nicht wie diese zu interpretieren sind.

  10. #18
    Registriert seit
    29.03.2004
    Beiträge
    5.793
    Danke
    144
    Erhielt 1.706 Danke für 1.238 Beiträge

    Standard

    Zitat Zitat von olliew Beitrag anzeigen
    Diese "Trennungen" sind IOProviderStatus. Alle Modul-E/A-Daten haben zusätzlich ein ProviderStatus sowie dann im gegenübergestellte Richtung dann ein ConsumerStatus.

    Ab 0010 die I/O-Daten, die erste 80 Bytes sind die IOPS/IOCS zum Gerät mit sein PROFINET Ports (Slot 0, Subslot 8000h, 8001h und 8002h).

    IOPS/IOCS kann 00h (=Bad), 60h (=Idle) oder 80h (=Good) sein. Kurz nach Verbindungsaufbau werden die Stati auf 00h stehen um dann nach einige Telegramme in 80h zu wechseln.
    Ich habe gerade mal in den Wireshark Quellen im Profinet-Teil nachgeschaut. Es war dort mal eine Erkennung des IOxS vorhanden, aber da dieses nicht immer vorhanden ist und es nur aus dem Kontext (Verbindungsaufbau) erschlossen werden kann, hat man sich dazu entschieden die Erkennung zu entfernen, eben damit nichts falsch angezeigt wird.
    Im Kommentar steht zur Erkennung: "this will be tricky "

  11. #19
    Registriert seit
    28.03.2012
    Ort
    Hessen
    Beiträge
    116
    Danke
    4
    Erhielt 20 Danke für 18 Beiträge

    Standard

    Mit A.I. kann einiges gemacht werden


    Über denn Hochlauf bekommst du eigentlich alles mit. Im ConnectRequest steht genau welche Module/Submodule erwartet werden, also Identkodes und E/A-Länge. Und dann noch die Beschreibung der Input- und Outputframes. Das reicht aus um dann die folgende IO-Frames auseinanderzunehmen.

    2 Beispiele für InputCR Beschreibung, Device -> Controller.
    Device Aufbau Slot 1: 2 Eingangsbytes + IOPS, Slot 2: keine Daten (benötigt dann aber trotzdem 1 Byte IOPS), Slot 3: 4 Ausgangsbytes (1 Byte IOCS in InputCR).

    PNIOController_Siemens.jpg
    PNIOController_Phoenix.jpg

    Ich könnt mal suchen in mein .PCAP Fundus, vielleicht gibt es noch mehr Mechanismen.
    Kaum macht man es richtig, schon funktioniert es.

  12. #20
    Registriert seit
    29.03.2004
    Beiträge
    5.793
    Danke
    144
    Erhielt 1.706 Danke für 1.238 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Es hat gerade netterweise jemand viel Aufwand bei Wireshark in den Profinet-Teil hineingesteckt (Danke).
    Es lässt sich jetzt ein Pfad angeben in der GSD-Dateien abgelegt sind, und es wird dann geprüft ob dort eine zugehörige GSD-Datei liegt. So bekommt man zumindest das IOPS-Feld und den eigentlichen Datenteil aufgeschlüsselt. Ich hab's nur gerade an einer Verbindung zwischen ET200S und S71200 getestet, sieht schonmal nicht schlecht aus.

    wireshark-profinet-io.jpg
    Die Genialität einer Konstruktion liegt in ihrer Einfachheit – Kompliziert bauen kann jeder.

    (Sergei Pawlowitsch Koroljow, sowjetischer Konstrukteur von Raketen und Weltraumpionier)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •