Diagnose CP342-5

MSB

Level-3
Beiträge
7.185
Reaktionspunkte
1.647
Zuviel Werbung?
-> Hier kostenlos registrieren
Wie allgemein bekannt, funktioniert die Diagnose des CP's ja nicht mit FC/FB125 ...

Jetzt gibt es ja den FC3, mit diesem kann man die Stationsliste auslesen.

Um jetzt aber zu wissen, ob der Slave komplett weg ist, oder ob das nur eine Diagnosemeldung z.B. eines Moduls ist,
muss man ja nun das DP-Norm Telegramm auswerten.

Um an dieses ranzukommen, braucht man wieder den FC3, und muss im Feld Station die Slave-Adresse angeben.

Jetzt grübele ich schon eine ganze weile, wie ich aus der Stations/Diagnoseliste die Stationsnummer erzeugen kann,
um diese in einer Schleife an den FC3 zu schreiben.

Die Reihenfolge ist ja so:
DP_Stationsliste.jpg

Wie könnte ich mir jetzt da mit meinem Schleifenzähler die entsprechende Stationsnummer erzeugen?

Mfg
Manuel
 
Es gibt bei Siemens einen FB (kostet ein paar Punkte) der kann die 342-5 diagnostizieren.
 
Du kannst auch durch auswerten des OB86 - OB86_RACKS_FLTD.
Die Variable einfach auf DWord setzen und dann kann man diese Variable auswerten.

Bit 0 – 7 : DP – Stationsadresse
Bit 8 – 15 : DP – Subnet – ID
Bit 16 – 30: Diagnose – Adresse des DP – Slaves
Bit 31: I/O Erkennung, wenige Baugruppen nutzen dieses Bit
Standardmäßig auf „1“


in Bit 0 - 7 steht die Adresse des DP-Slaves der ausgefallen ist.


Gruß wolder
 
Zuletzt bearbeitet:
@Wolder
Leider nicht, wenn das so ginge dann würde FC/FB125 auch funktionieren.

Die SPS bekommt einen Busfehler vom CP überhaupt nicht mit,
das resultiert in keinem Systemfehler und gar nichts...
Einzige Möglichkeit ist eben FC3 DPDIAG

Mfg
Manuel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Stimmt.

Wie wärs denn, wenn du die einzellne Bytes mit >0 vergleichst.
Dann bist du zumindest im richtigen Byte der ausgefallenen Station.

Danach rotierst du die Bits, damit die zusammenstellung wieder passt.
Also nummer 0 an bit 0, nummer 1 an bit 1 ...
Danach könntest du das 1 Byte (0 + Bitnummer) rechnen, das 2 Byte (8 + Bitnummer), das 3 Byte (16 + Bitnummer)...

Wird ne menge schreibkram...
 
Hab gerade mal ein bißchen gespielt.

Hier meine vielleicht etwas komplizierte Lösung, sollte aber soweit funktionieren, wenn nur 1 Slave ausgefallen ist.

Probier es mal aus.

Gruß wolder
 

Anhänge

  • quelle.rar
    1 KB · Aufrufe: 10
Zurück
Oben