# Diagnosedaten eines Bausteines in Step7



## Jochen Kühner (16 Juni 2010)

Hat sich schon mal jemand an die Auswertung der Diagnosedaten beim beobachten eines Bausteines gemacht, oder gibts dazu noch nichts!

Ich bin gearde dabei diese zu analysieren, dachte wenn sich aber schon jemand die mühe gemacht hat, brauch Ich dies ja nicht zu tun!


----------



## Jochen Kühner (16 Juni 2010)

Was mich nun wundert.....

Ich beobachte nun den Telegrammverkehr schon mit einigen Telegrammen. Denke auch das Ich schon ein bischen was rausgefunden habe. Die Diagnosedaten kommen in dem telegramm mit der subfunc 0x13. Doch was mich nun wundert.

Ich habe einen FC in dem Ich einfach in das AR1 einen neuen Wert lade...

ich sehe auch wie am anfang alle werte (also dbs, akkus und ars übertragen werden), dann würd für meine 2te zeile die wärtänderung für das ar übertragen. Was mich nur wundert, Ich bekomme im Data bereich des S7 telegrammes die selben Daten ob Ich das AR1 oder das AR2 ändere. Ich kann es nicht unterscheiden....

Weiss jemand etwas mehr zu den Status Baustein Telegrammen???


----------



## Jochen Kühner (17 Juni 2010)

*Diagnosedaten...*

Ich bin jetzt zu dem Schluss gekommen, das Step 7 vielleicht auch die AWL Daten für die Diagnos verwendt, und so weiss das ein Wert z.B. für AR1 oder AR2 bestimmt ist! Kann sich jemand vorstellen das dem so ist, oder denkt Ihr was anderes?


----------



## Jochen Kühner (18 Juni 2010)

*Weitere vermutungen...*

Mit der Anfrage der Diagnosedaten bekomme Ich am Anfang einmal alle register, akkus, usw.

Ab dann bekomme Ich je nachdem was für ein befehl ansteht daten.

Bei einem Bit befehl kommen 2 Bytes (VKE Bit, STW? usw)
Bei einem AR Befehl der neue Wert des entspr. ARs (4Byte)
Bei DB befehlen 6 Byte 2 Byte+ 2*2Byte mit dbs
Bei akku befehlen VKE bytes + 2* akkus (10 byte)

Sind alles nur vermutungen, vielleicht hat jemand lust sich das auch mal anzuschauen.

Es gilt ja dann auch noch rauszufinden wie man die Statusanfrage startet!
(Dazu gilt es ja nicht nur zu sagen Ich will den Status von baustein xx, sondern man kann ja auch noch aufrufpfad, startzeile (schätz ich mal) usw vorgeben!)


----------



## Jochen Kühner (18 Juni 2010)

Weiter Annahmen..

Ich denke Step 7 schickt in dem Anfordertelegramm der Diagnosedaten mit welche Daten es von Welcher Zeile haben möchte. D.h. zeile 00 00 nur vke
zeile 00 02 db register, zeile 00 04 usw... 

Zwischendrin Fragt Step 7 auch jedes mal noch nach der SZL 0x132 (Kommunikationzustandsdaten) mit dem index 2. Was damit aber abgefragt wird hab Ich noch nicht rausgefunden.

Denke im telegra ist mit 4 byte immer die Zeilennumer angegeben, danch folgen 2 Byte was gelesen werden soll. 00 01 heist vke 00 03 heisst akku...

Aber wie immer sind alles nur Vermutungen....


----------



## Jochen Kühner (21 Juni 2010)

Hab jetzt mal meine Erkentnisse zur Statusanfrage an die S7 CPU in einer Excel Tabelle zusammengefasst.... Falls jemand noch Infos dazu an mich hat, nur her damit!...


----------



## Jochen Kühner (21 Juni 2010)

*So...*

So, jetzt denk Ich, Ich habs soweit... jetzt gilt's das ganze mal zu Implementieren....

Nur die Felder in der Tabelle Statusbeobachtungen in zeile 30/31 und Zeile 38/39  sind mir noch nicht ganz klar...
Naja, wenn jemand ne Idee dazu hat, bitte hier posten...

Will das ganze in meine Connection Lib einbauen, so das man zu einem Baustein den man von der CPU geladen hat, einfach auch die Diagnosedaten ansehen kann...

Mal sehen was Ich so die Woche hinbekomme....


----------



## Jochen Kühner (21 Juni 2010)

Ok nochwas, für Zeile 38/39 habe Ich gerade überlegt, könnte Adresse der letzten zu lesenden Zeile + Größe des Befehls + Startzeile dort sein!


----------



## Jochen Kühner (24 Juni 2010)

*So...*

Bei mir auf der Hompage gibts nun eine version meiner Connection Library, in der das lesen der Statusdaten eines Bausteines implementiert ist!

Schaut euch dazu das WPF Beispiel Programm an.

Es gibt in der hinsicht aber noch viel zu tun. Ich weis noch nicht wie groß die Diagnoseanfrage maximal werden darf, deshalb funktionierts im Moment nur in kleinen Bausteinen!

Aber Ich arbeite daran...

Download hier:
http://jochensserver.dyndns.org/wordpress/?page_id=55


----------



## Jochen Kühner (25 Juni 2010)

*So...*

So, nochmals ein Update.

Statusanfragen sollten nun soweit funktionieren.

Nur _GetCommandStatusAskByte muss noch für alle Commands angepasst werden. Im Moment wird noch bei jedem Befehl jedes register abgefragt!


----------



## Jochen Kühner (25 Juni 2010)

*Problem....*

Hab nun noch das Problem, das die Statusanfrage bei einer anderen Startzeile als 0 nicht richtig funktioniert!

Der Wert in meiner Excel Tabelle in der Zeile 38/39 der Statusanfrage scheint noch falsch zu sein! Ich kann mir aber im Moment echt nicht erklären wie Ich auf den Wert komme....

Vielleicht könnte mir jemand dazu einen Tip geben?


----------



## Jochen Kühner (25 Juni 2010)

*So...*

Denke jetzt hab Ichs...

Diagnose sollte nun soweit funktionieren....

Bitte um Tests und Feedback...


----------

