Hallo

Also erst einmal das Problem :
Ich möchte aus eine ET200 die über Profibus verbunden ist den Diagnosspeicher auslesen. Hierzu verwende ich den SFC 13 2 mit den vorgegebenen Parametern.

Soweit so gut. Das funktioniert auch soweit. Aber das Problem was ich habe ist das Telegramm auseinander zu fummeln.
In der Mitte des Telegramms wird es seltsam. Das auseinandernehmen der Kanalbezogenen Diagnose ab Byte 35 kann, muss aber nicht 3*9, also 27 Byte lang sein. Danach soll ein H-Block folgen. wie kann man dieses identifizieren?, Nach dem H-Block kommt ein Alarmblock.(siehe oben).
Außerdem kann man nur 9 Kanalfehler diagnostizieren. Soll wohl heißen das mehr als 9 Fehler nicht auslesbar sind?!
Wenn mehr als 9 Fehler vorhanden sind, was passiert dann? werden diese dann einfach ignoriert, bis Fehlerzahl = 9?

Das Auslesen des Diagnosespeichers kann 128 Byte lang sein muss aber nicht, Kann man Herausfinden wieviele Daten Diagnose Bytes vorliegen, so das man den Pointer dynamisieren kann. Währe sonsta ja Platzverschwendung im DB!

Ich danke jetzt schon einmal im vorraus.