Diagnosedaten eines Bausteines in Step7

Jochen Kühner

Level-3
Beiträge
4.291
Reaktionspunkte
525
Zuviel Werbung?
-> Hier kostenlos registrieren
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!
 
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???
 
Zuviel Werbung?
-> Hier kostenlos registrieren
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?
 
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!)
 
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....
 
Zuviel Werbung?
-> Hier kostenlos registrieren
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!...
 

Anhänge

  • telegrammhelper.zip
    27,5 KB · Aufrufe: 21
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....
 

Anhänge

  • telegrammhelper.zip
    22 Bytes · Aufrufe: 10
Zuletzt bearbeitet:
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!
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
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
 
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!
 
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?
 
Zurück
Oben