# Wireshark Auszüge von Onlinebeobachtungen



## Jochen Kühner (21 Januar 2011)

Um Rauszufinden wie Siemens festlegt welches Telegramm Sie zur Bausteinstatusabfrage bei einer CPU verwenden suche Ich Wireshark Auszüge von Onlinebeobachtungen von Bausteinen bei möglichst versch. CPU Typen. 

Hauptsächlich Interessiere Ich mich für den Aufruf der SZL 305 und welches Status Telegramm danach verwendet wird (0x01 oder 0x13).

Also wenn jemand welche zur Verfügung hat, nur her damit! Mit CPU Typ natürlich


----------



## Rainer Hönle (21 Januar 2011)

Jochen Kühner schrieb:


> Um Rauszufinden wie Siemens festlegt welches Telegramm Sie zur Bausteinstatusabfrage bei einer CPU verwenden suche Ich Wireshark Auszüge von Onlinebeobachtungen von Bausteinen bei möglichst versch. CPU Typen.
> 
> Hauptsächlich Interessiere Ich mich für den Aufruf der SZL 305 und welches Status Telegramm danach verwendet wird (0x01 oder 0x13).
> 
> Also wenn jemand welche zur Verfügung hat, nur her damit! Mit CPU Typ natürlich


Du meinst sicher SZL 0x0131, oder? Dezimal versteht das keiner, selbst bei Siemens wird in der Doku die hexadezimale Schreibweise verwendet.


----------



## Jochen Kühner (21 Januar 2011)

Jo, aber im Plugin von Thomas_V2.1 für Wireshark wird es Dezimal angezeigt!

Und die SZL ist ja eh nicht in der Doku!

Aber du hast ja recht ;-)


----------



## Rainer Hönle (21 Januar 2011)

Tip 1: Dich interessiert SZL-ID 0x0131 Index 0x0002. 
Tip 2: Schau einfach im Bytepuffer nach, ob das entsprechende Bit der Funktionsnummer gesetzt ist  
Tip 3: 0.1 = 1, 1.2 = 10, ...


----------



## Thomas_v2.1 (21 Januar 2011)

Rainer Hönle schrieb:


> Tip 2: Schau einfach im Bytepuffer nach, ob das entsprechende Bit der Funktionsnummer gesetzt ist
> Tip 3: 0.1 = 1, 1.2 = 10, ...



Funktionsnummer? In welchem Teil des Protokolls denn? 

Aber das mit der SZL-ID in hex stimmt, werde ich bei Zeiten nochmal anpassen. Denn die ID-Struktur nach Teillisten / Teillistenauszug / Baugruppenklasse ergibt nur in hexadezimaler Ansicht einen Sinn.
Wobei es ja mal was ganz neues wäre wenn in dem Protokoll mal was einheitlich gehalten wird...


----------



## Rainer Hönle (22 Januar 2011)

Thomas_v2.1 schrieb:


> Funktionsnummer? In welchem Teil des Protokolls denn?



Bezieht sich auf Jochens anderen Thread mit dem Thema: Wie mache ich einer 315er den garaus ;-).


----------



## Jochen Kühner (23 Januar 2011)

Rainer Hönle schrieb:


> Tip 1: Dich interessiert SZL-ID 0x0131 Index 0x0002.
> Tip 2: Schau einfach im Bytepuffer nach, ob das entsprechende Bit der Funktionsnummer gesetzt ist
> Tip 3: 0.1 = 1, 1.2 = 10, ...



Also welches Bit du nun meinst hab Ich immer noch nicht ganz kapiert.

Ich vergleich da aber mal einfach die Vipa CPUs (können das 0x13 Telegramm nicht) mit den Siemens, dann werd Ich's schon noch finden...

Was steht denn dann so grob gesagt in der SZL 0x0131? Die von der CPU unterstützen Funktionen bei den PG Funktionen?


----------



## Rainer Hönle (23 Januar 2011)

Jochen Kühner schrieb:


> Also welches Bit du nun meinst hab Ich immer noch nicht ganz kapiert.
> 
> Ich vergleich da aber mal einfach die Vipa CPUs (können das 0x13 Telegramm nicht) mit den Siemens, dann werd Ich's schon noch finden...
> 
> Was steht denn dann so grob gesagt in der SZL 0x0131? Die von der CPU unterstützen Funktionen bei den PG Funktionen?



Lies meine Tips durch, rufe die angegebene SZL-ID mit dem angegebenen Index auf, schaue das Ergebnisbytepufferarray (beginnt nach Index im Rückgabetelegramm) an und prüfe die einzelnen Bits. Verwende dazu Tip 3.
Welche Fragen hast Du noch? Genauer gerht es doch nicht mehr.
Ich gehe davon aus, dass Du die Siemens-Doku zu den SZLs und dem grundsätzlichen Aufbau auswendig kannst oder zumindest weist, wo die Infos stehen.
Und noch etwas, für solche Tests immer zuerst das Original verwenden. Ich kann nicht sagen, inwieweit welcher Kompatible welchen Umfang nachgebildet hat. Aber das werden ja Deine Tests zeigen.


----------



## Jochen Kühner (23 Januar 2011)

Rainer Hönle schrieb:


> Lies meine Tips durch, rufe die angegebene SZL-ID mit dem angegebenen Index auf, schaue das Ergebnisbytepufferarray (beginnt nach Index im Rückgabetelegramm) an und prüfe die einzelnen Bits. Verwende dazu Tip 3.
> Welche Fragen hast Du noch? Genauer gerht es doch nicht mehr.
> Ich gehe davon aus, dass Du die Siemens-Doku zu den SZLs und dem grundsätzlichen Aufbau auswendig kannst oder zumindest weist, wo die Infos stehen.
> Und noch etwas, für solche Tests immer zuerst das Original verwenden. Ich kann nicht sagen, inwieweit welcher Kompatible welchen Umfang nachgebildet hat. Aber das werden ja Deine Tests zeigen.



Das aufschlüsseln macht ja die DLL von Thomas schon direkt in Wireshark. 

Den grundsätzlichen aufbau hab Ich schon, aber zu SZLs mit xy31 am Ende gibts ja keine weiteren Infos.

Naja, Ich schau mal ob Ich noch draus schlau werd!


----------



## Rainer Hönle (23 Januar 2011)

Jochen Kühner schrieb:


> Das aufschlüsseln macht ja die DLL von Thomas schon direkt in Wireshark.
> 
> Den grundsätzlichen aufbau hab Ich schon, aber zu SZLs mit xy31 am Ende gibts ja keine weiteren Infos.
> 
> Naja, Ich schau mal ob Ich noch draus schlau werd!



Rufe SZL-ID 0x0131 mit Index 0x0002 auf. Schaue Dir den Antwortbytepuffer direkt an. Warum tust Du das nicht einfach einmal? 
Dann haben wir eine Diskussionsgrundlage. Oder kommst Du über die DLL von Thomas nicht mehr an die direkten Daten?


----------



## Thomas_v2.1 (23 Januar 2011)

Also ich habe mal in meinem Logfile Archiv nachgesehen, und die Rückgabewerte bei SZL ID 0x0131 Index 2 von den CPUs bei denen ich mir den CPU-Typ vermerkt habe mal rausgesucht.
Hier die Liste:

```
CPU 313C
00 02 be fd 0f 00 00 00
00 00 00 00 00 00 3c 01
00 00 00 00 7d 00 00 05
03 04 00 00 00 00 00 0c
00 0a 00 00 00 09 00 00

CPU 414
00 02 be ff 6f 00 00 00
00 02 04 00 00 00 38 02
02 00 00 00 7d 10 00 05
07 10 00 00 01 e0 00 22
01 00 00 00 00 21 00 00

WinAC
00 02 be fd 03 00 00 00
00 00 00 00 00 00 00 00
00 00 00 00 7d 10 00 05
07 18 00 00 01 e0 00 22
00 00 00 00 00 00 00 00

Accontrol :)
00 02 be ff 07 00 00 00
00 02 04 00 00 00 38 02
02 00 00 00 7d 10 00 05
07 10 00 00 01 e0 00 22
01 00 00 00 00 11 00 00
```


----------



## Rainer Hönle (23 Januar 2011)

Damit sollte ja jetzt alles klar sein.


----------



## Jochen Kühner (23 Januar 2011)

Thomas_v2.1 schrieb:


> Also ich habe mal in meinem Logfile Archiv nachgesehen, und die Rückgabewerte bei SZL ID 0x0131 Index 2 von den CPUs bei denen ich mir den CPU-Typ vermerkt habe mal rausgesucht.



Weist du denn auch welches Telegramm für Bausteinstatus danach verwendet wurde ?



Rainer Hönle schrieb:


> Damit sollte ja jetzt alles klar sein.


Ahhh ich Idiot. Das 0x13 telegramm ist ja auch wieder hex. Ich hab immer versucht auf 13 zu kommen, muss aber 19 Bits abzählen.
Dann bedeuten bei meiner ersten CPU auf der Liste die 0xfd und 0x47 welche Funktionen unterstützt werden?


Hier mal meine:

```
VIPA 313SC - Kann nur tele 01 für status
00 02 be fd 47 00 00 00
00 00 00 00 00 00 3c 01
00 00 00 00 7d 00 00 05
03 04 00 00 00 00 00 0c
00 0a 00 00 00 09 00 00

VIPA 315-SN -Kanv nur tele 01 für status
00 02 be fd 47 00 00 00
00 00 00 00 00 00 3c 01
00 00 00 00 7d 00 00 05
03 04 00 00 00 00 00 0c
00 0a 00 00 00 09 00 00

Siemens 315-2DP (2AG10) kann beide
00 02 be fd 0f 00 00 00
00 00 00 00 00 00 3c 01
00 00 00 00 7d 00 00 05
03 04 00 00 00 00 00 0c
00 0a 00 00 00 09 00 00

Siemens 315-2PN/DP (2EH14) kann beide
00 02 be fd 4f 00 00 00 
00 00 00 00 00 00 3c 01
08 00 00 00 7d 00 00 05 
03 0f 00 00 08 00 00 0c
00 0a 00 00 00 01 00 00
```


----------



## Thomas_v2.1 (23 Januar 2011)

Jochen Kühner schrieb:


> Weist du denn auch welches Telegramm für Bausteinstatus danach verwendet wurde ?


Wenn du mir sagst wie das Telegramm heißt, bzw. welchen Wert ich dort raussuchen soll.


----------



## Rainer Hönle (23 Januar 2011)

Jochen Kühner schrieb:


> Dann bedeuten bei meiner ersten CPU auf der Liste die 0xfd und 0x47 welche Funktionen unterstützt werden?


Der Bytepuffer geht nach dem Index los, also nach 0x0002. Dort steht bei allen ein 0xBE.


----------



## Rainer Hönle (23 Januar 2011)

Thomas_v2.1 schrieb:


> Wenn du mir sagst wie das Telegramm heißt, bzw. welchen Wert ich dort raussuchen soll.



Jochen sucht Telegramme der Funktionsnummer 0x41 und die dazugehörenden Subfunktionsnummern.

```
0x00 0x01 0x12 0x08 0x12 0x41 0x?? jetzt wird es interessant für ihn
```


----------



## Jochen Kühner (23 Januar 2011)

Rainer Hönle schrieb:


> Der Bytepuffer geht nach dem Index los, also nach 0x0002. Dort steht bei allen ein 0xBE.



Wenn ich das jetzt richtig verstehe bedeutet 0xbe 0xfd 0x47 bei meiner Vipa:

Alle Telegramme der Funktionsnummer 0x41 ausser folgenden Subfunktionsnummern
0x00, 0x06, 0x09, 0x19, 0x20, 0x21 und 0x23-0x31 unterstütz werden?


----------



## Rainer Hönle (23 Januar 2011)

Jochen Kühner schrieb:


> Wenn ich das jetzt richtig verstehe bedeutet 0xbe 0xfd 0x47 bei meiner Vipa:
> 
> Alle Telegramme der Funktionsnummer 0x41 ausser folgenden Subfunktionsnummern
> 0x00, 0x06, 0x09, 0x19, 0x20, 0x21 und 0x23-0x31 unterstütz werden?



Ich würde jetzt hex nicht mit dez durcheinanderwerfen , aber der Ansatz ist schon mal richtig. 
Außerdem lassen wir es mal bei 23 gut sein. Sonst ginge es ja bis 47 so weiter .


----------



## Jochen Kühner (23 Januar 2011)

Ja, sorry, hab bei den telegrammen dez werte gemeint und als hex geschrieben!


----------



## Thomas_v2.1 (23 Januar 2011)

Ich bin jetzt mal Spielverderber und beende das sonntägliche Rätselraten 

Hier gibt es ein Siemens-Handbuch:

ftp://ftp.enm.com/Support/Siemens/S7-300/Manuals/

System Software for S7-300 and S7-400 System and Standard Functions.pdf

Dort steht die komplette Beschreibung der SZL-ID W#16#0131 Index 2 drin.

Find ich seltsam, ich habe das gleiche Dokument in englisch schon auf meiner Festplatte, aber da fehlen diese IDs.


----------



## Rainer Hönle (23 Januar 2011)

Thomas_v2.1 schrieb:


> Find ich seltsam, ich habe das gleiche Dokument in englisch schon auf meiner Festplatte, aber da fehlen diese IDs.


Ist doch auch in englisch.
Aber welchen Ausgabestand hast Du und welcher ist im Link?


----------



## Thomas_v2.1 (23 Januar 2011)

Rainer Hönle schrieb:


> Ist doch auch in englisch.
> Aber welchen Ausgabestand hast Du und welcher ist im Link?



Ich habe im pdf von Ausgabestand jetzt nichts gefunden, eigentlich steht das ja immer auf dem Deckblatt.
Aber in den Dokumenteigenschaften des pdf steht als Datum auf der Webseite mit der ID was von 1997, Thema Step 7 V3.1 
In dem anderen Dokument steht als Jahr 1998, wobei ich aber nicht mehr weiß aus welcher Quelle ich mir das mal geladen habe.

Das pdf von 1997 hat auch 14 Seiten mehr, da hatte Siemens wohl Angst zu viele Details veröffentlicht zu haben.


----------



## Jochen Kühner (23 Januar 2011)

Thomas_v2.1 schrieb:


> Ich habe im pdf von Ausgabestand jetzt nichts gefunden, eigentlich steht das ja immer auf dem Deckblatt.
> Aber in den Dokumenteigenschaften des pdf steht als Datum auf der Webseite mit der ID was von 1997, Thema Step 7 V3.1
> In dem anderen Dokument steht als Jahr 1998, wobei ich aber nicht mehr weiß aus welcher Quelle ich mir das mal geladen habe.
> 
> Das pdf von 1997 hat auch 14 Seiten mehr, da hatte Siemens wohl Angst zu viele Details veröffentlicht zu haben.



Danke, das hättest du ruhig früher rauskramen können...  ;-)

Nee nicht schlecht, macht es wohl öfters sinn nach alten Dokumenten zu suchen!


----------



## Thomas_v2.1 (23 Januar 2011)

Jochen Kühner schrieb:


> Danke, das hättest du ruhig früher rauskramen können...  ;-)
> 
> Nee nicht schlecht, macht es wohl öfters sinn nach alten Dokumenten zu suchen!


Ich habe das pdf ja auch heute erst entdeckt. Nach den Informationen habe ich selber auch schon lange gesucht, bzgl. nettoplcsim.
Eine Google-Suche nach "w#16#xy31", also in Aführungszeichen, brachte endlich das Ergebnis.

Die anderen IDs die dort aufgeführt sind, sind auch interessant. Z.B. kann man jetzt endlich klären, wie viele Bausteine eine CPU in einem Zyklus maximal gleichzeitig einbunden können: W#16#0131 Index 4, Byte 13 :TOOL:


----------



## Jochen Kühner (23 Januar 2011)

Ist ja echt toll das man in alten Handbüchern mehr Infos findet... 

Aber Danke für die Infos, mal sehen was Ich von den Infos gebrauchen kann!


----------



## Jochen Kühner (24 Januar 2011)

Hab mal in meine WPF-ToolBox einen SZL Viewer eingebaut. (http://www.sps-forum.de/showthread.php?t=41928)

So kann einfach eine beliebige SZL von der CPU angefordert werden. Für einige SZLs aus der Doku habe Ich auch schon eine Klasse angelegt, so das diese in Ihre Teile zerlegt werden.

Vielleicht kann's ja jemand brauchen...

Denke das passt hier noch zum Thema...

Hab noch ein Screenshot mit der Abfrag der hier diskutierten SZL 0x131 angehängt!


----------



## Rainer Hönle (24 Januar 2011)

Also die Ausgabe in Deinem ersten Bild sieht für mich etwas komisch aus. Passt so gar nicht zu den Binärlogs die Du eingestellt hast.


----------



## Jochen Kühner (24 Januar 2011)

Jo, hattest recht!

CSharp unterstütz bei AutoPropertys StructLayout nicht. Mir ist das erst aufgefallen als Ich SZL xy11 Probiert habe, da die auch Strings zurückliefert!

Habs geupdated!


----------



## Rainer Hönle (24 Januar 2011)

Besser aber noch nicht gut.
Index ist 2 und nicht 512 => High-Low-Byte-Problem
funct_x in Hex oder Bin darstellen


----------



## Jochen Kühner (24 Januar 2011)

Rainer Hönle schrieb:


> Index ist 2 und nicht 512 => High-Low-Byte-Problem


Ohne Worte  ;-)   (hast ja recht)



Rainer Hönle schrieb:


> funct_x in Hex oder Bin darstellen



Da Ich keine spezifische Auswertung der SZLs mache, stelle Ich nun einfach alle Daten in Hex dar.

SZLs für die keine Klasse im Programm hinterlegt wurde, werden einfach als ByteArray dargestellt!


----------



## Rainer Hönle (24 Januar 2011)

Na sieht doch gleich viel besser aus .


----------



## Jochen Kühner (25 Januar 2011)

*Hmmm*

Jetzt hab Ich das Problem,

Hab eine 400er CPU, diese schickt mir in SZL 131, Index 2 im feld funkt_2 den Wert 0x07. Das würde aber heissen Bit 19 sitzt nicht, aber es wird trotzdem das 0x13 (Dez. 19) Telegramm von Step7 für die Statusbeobachtung verwendet!


----------



## Jochen Kühner (25 Januar 2011)

*Achso...*

Dabei ist mir aber auch noch aufgefallen, das Step7 hier dann noch eine abfrage der SZL 0x111, Index 1 hinterherschickt, das war bei den 300ern nicht der Fall!


----------



## Rainer Hönle (25 Januar 2011)

Jochen Kühner schrieb:


> Jetzt hab Ich das Problem,
> 
> Hab eine 400er CPU, diese schickt mir in SZL 131, Index 2 im feld funkt_2 den Wert 0x07. Das würde aber heissen Bit 19 sitzt nicht, aber es wird trotzdem das 0x13 (Dez. 19) Telegramm von Step7 für die Statusbeobachtung verwendet!



Um welche 400er mit welcher MLFB und Firmwareversion handelt es sich da?


----------



## Jochen Kühner (25 Januar 2011)

SZL111 Index1, Mlfb: 6ES7 414-2XG03-0AB0 Firmware 3.0.2 Hardware 6


----------



## Rainer Hönle (25 Januar 2011)

Vielleicht bedeutet ein gesetztes Bit: die kann es sicher
Und ein nicht gesetztes Bit: die kann es vielleicht trotzdem, aber ich weiß es nicht sicher 

Was steht denn sonst noch in SZL-ID 0x111 Index 0x0001?


----------



## Jochen Kühner (25 Januar 2011)

SZL 111:
BGTyp = 0x0082
Ausbg1 = 0x0019
Ausbg2 = 0x0000

Wenn es das bedeutet, kann Ich den Aufruf von SZL 111 gleich wieder rausschmeissen, und einfach immer 0x13 Probieren. Wenn das einen Error bringt, einfach mit 0x01 probieren...


----------



## Rainer Hönle (25 Januar 2011)

Was wird bei dem 300ern bzw. den Vipas bei 0x111 angezeigt?


----------



## Jochen Kühner (25 Januar 2011)

300er:

MlfB: 6ES7 315-2EH14-0AB0
BGTyp: 0x00C0
Ausbg1: 0002
Ausbg2: 0001

Vipa hab Ich grad keine da!

Aber bei den 300er CPUs wird ja die SZL 111 gar nicht abgefragt!


----------



## Rainer Hönle (25 Januar 2011)

Jochen Kühner schrieb:


> Aber bei den 300er CPUs wird ja die SZL 111 gar nicht abgefragt!


Ja, aber mir geht es jetzt mal um Gemeinsamkeiten und Erkenntnisse, die über die Doku hinausgehen. 
Kommt bei einer Vipa auch die 0x0111er Abfrage? Wenn ja, was wird dort zurückgeliefert?
Welche 300er kann keine 0x13er Funktion? Was wird bei 0x131 0x0002 geliefert? Kommt die 0x0111er Abfrage? Wenn ja, was wird dort zurückgeliefert?


----------



## Jochen Kühner (25 Januar 2011)

Rainer Hönle schrieb:


> Welche 300er kann keine 0x13er Funktion?


Weis ich nicht, Ich weis nur das es bei den Vipa's nicht geht



Rainer Hönle schrieb:


> Was wird bei 0x131 0x0002 geliefert?


bei der 300er sitzt das bit 0x13 (19)



Rainer Hönle schrieb:


> Kommt die 0x0111er Abfrage? Wenn ja, was wird dort zurückgeliefert?


Bei der 300er nicht, bei der 400er ja.

Mehr kann Ich im Moment nicht schauen, hab im Moment nur 2 CPUs zur Verfügung


----------



## Thomas_v2.1 (29 Januar 2019)

Ich muss diesen alten Thread nochmal aus der Versenkung holen. 
Hat eigentlich schon mal jemand eine weitere oder aktuellere Dokumentation der SZL ID 0x131 mit Index 2 gefunden?

Ich bin gerade dabei in Wireshark die ganzen Funktionen für Test und Installation wie Variablentabelle, Beobachten, Forcen usw. zu überarbeiten, da war ja noch einiges nicht ganz richtig und unvollständig.

Dabei ist mir z.B. aufgefallen, dass obwohl eine CPU laut SZL-Antwort die Funktion "Force" nicht unterstützt, Step7 trotzdem mit dieser Funktion um die Ecke kommt und diese auch funktioniert. Also entweder passt die Dokumentation nicht, oder diese ganze SZL-Antwort ist irrelevant. Aber warum dann überhaupt alles anfragen?

Das nächste was mir aufgefallen ist, dass Step7 bei aktuellen CPUs beim Baustein Online-Status den Funktionscode 0x13 nutzt. In der SZL-Antwort ist bei "funkt_2" auch an entsprechender Stelle das Bit gesetzt, aber laut alter Dokumentation ist dieses Bit "Reserved". Ich habs jetzt einfach mal "Block status 2" genannt da es vom Aufbau fast wie "Block status ist".
Es sind auch noch weitere Elemente vorhanden die eigentlich reserviert wären, in denen aber Werte stehen.


----------

