Fehlerlistenauswertung

t3kaese

Level-1
Beiträge
27
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,ich habe eine Kommunikation zwischen einer CPU313C 2PtP und einer Simotion Safety Unit TM121C via RS232/485 mit PPI aufgebaut,an der CPU hängt ein OP77A welches mir sowohl die Fehlermeldungen der CPU als auch die der TM121C visualisieren soll. Die Fehlermeldungen der TM121C werden in einem IDB einer Siemensapplikation ab byte 135 hintereinander abgelegt. Pro Fehlermeldung zwei byte,128bytes lang/Hex. Ist der Diagnosepuffer vollgeschrieben wird der Puffer ab byte 135 wieder überschrieben.(auch nicht mehr bestehende Fehlermeldungen bleiben im Puffer bestehen) Die Fehlermeldungen "rutschen" also nicht nach,sobald ein Fehler nicht mehr ansteht. Den Anstoß der Lesung der Fehlermeldungen habe ich variabel über einen Timer realisiert. steht eine Fehlermeldung nicht mehr an,kommt eine weitere Meldung von der TM121C die genauso aufgebaut ist wie der zugehörige Fehler,sich aber in einem bit unterscheidet (1=kommt,0=geht) Die Codierung der (Fehler)-Meldungen stellt sich so dar:

bits 8-10 ........Fehlerkategorie 1-3
bit 11 ............1=kommt,0=geht
bits 12-15.......Zusatzinfo (nicht relevant)
bits 0-7..........Fehlernummer

Mein Problem besteht darin, die jeweils anstehenden Fehlermeldungen mit der Fehlerliste (die ich bereits erstellt habe) zu vergleichen, und so die entsprechenden Bits zur Fehlerauslösung anzustoßen.(das alles natürlich ohne 600 Netzwerke voller Vergleiche zu schreiben...)
Im Voraus schonmal meinen besten Dank.....
 
Mein Problem besteht darin, die jeweils anstehenden Fehlermeldungen mit der Fehlerliste (die ich bereits erstellt habe) zu vergleichen, und so die entsprechenden Bits zur Fehlerauslösung anzustoßen.

Wie sieht denn die Fehlerliste aus, was steht denn in der Fehlerliste drin? Kannst Du mal ein Beispiel für die Zuordnung der Fehlermeldungen zu der Fehlerliste zeigen? :confused:

Gruß Kai
 
Irgendwie verstehe ich immer noch nicht, was Du genau machen willst. :confused:

Du bekommst Fehlermeldungen aus einer TM121C, welche in der SPS in einem IDB abgelegt werden. Der Aufbau der Fehlermeldungen ist wie in Deinem Word-File beschrieben. Bis hierhin ist noch alles klar.

Ich verstehe aber nicht, was Du dann machen willst:

Die Fehlermeldungen sollen mit einer Fehlerliste verglichen werden - was für eine Fehlerliste, wie sieht diese Fehlerliste aus, was soll verglichen werden?

Die entsprechenden Bits zu Fehlerauslösung (Anzeige am OP?) sollen angestoßen werden - was für welche Bits, was für eine Fehlerauslösung, gib mal ein Beispiel dafür.

Gruß Kai
 
ich beschreib es mal anders,lassen wir den Vergleich mit der Fehlerliste mal weg. Ich möchte eigentlich nur die Fehlermeldungen aus meinem IDB, die ja in Hex codiert sind als Klartext mit meinem op visualisieren. Das ist im Grunde alles. Und diese Hex -Codes muss ich ja den entsprechenden Texten, bzw. Bits, die diese Texte im OP als Störmeldungen anstoßen,zuordnen. Das Problem besteht darin dass ich nicht weiss wie ich diese Zuordnung hinbekomme ohne jedes der 128bytes des IDBs mit jedem möglichen Hex-Code zu vergleichen..
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe mal die Auswertung (so wie ich sie verstanden habe) für ein DW (DB220, DW134) programmiert. Die Fehlermeldungen werden je nach Fehlerklasse in den entsprechenden MWs gespeichert. Für eine Auswertung aller 64 DWs müsste man nur noch eine zusätzliche Schleife programmieren.

Es gibt aber noch folgendes Problem:

Eine Fehlermeldung, z. B. F240, kann ja mehrmals, entweder als gekommen oder als gegangen, im DB stehen. Woher weiß man nun, welche Fehlermeldung für F240 die letzte, also die aktuelle Fehlermeldung ist? Ist F240 als letztes gekommen oder gegangen? Dadurch, dass der Puffer ab DW134 wieder überschrieben wird, kann ich die Fehlermeldungen ja nicht einfach von oben nach unten auswerten.

Gibt es vielleicht einen Zähler für die Fehlermeldungen, oder einen Zeitstempel oder vielleicht einen Zeiger, der auf die letzte Fehlermeldung zeigt?

Als Anhang habe ich den FC200 als PDF-File sowie das STEP7-Programm (OB1, FC200, DB202 und VAT) als Archiv beigefügt.

Gruß Kai
 

Anhänge

  • FC200 - Fehlerliste.pdf
    4,5 KB · Aufrufe: 32
  • Fehler.zip
    204,4 KB · Aufrufe: 8
Vielen Dank erstmal für deine Hilfe!! ich denke ich mache es mir jetzt sehr einfach und betrachte einfach nur das letzte Wort welches ungleich Null ist,bearbeite es aber nur dann weiter wenn es ein kommendes Ereignis ist und gebe es dann zum OP weiter.Dieser Fehler muss dann am OP quittiert werden und mit der pos. Flanke des Quittierungssignals stoße ich eine neue Lesung an.Das kann ich glaube ich so machen,weil eine "Fehler geht"-Meldung immer als erstes kommt und eventuelle weitere Fehler danach gesendet werden..Gruß Sascha
 
Zurück
Oben