Fehlerstatistik

msbes

Level-1
Beiträge
60
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich suche nach einer weiteren (besseren) Möglichkeit eine Fehlerstatistik zu programmieren.

Also:

Ich habe 12 DBs (Nummer flexibel) in den denen jeweils 160 Bits (Bereich flexibel) gesetzt werden wenn ein Fehler in der Anlage auftritt.

Es soll ein FC programmiert werden mit dem alle 12 DBs überprüft werden und die Fehler sollen gezählt in EINEN DB (Nummer flexibel) abgelegt werden.

Ich habe ein Programm erstellt dies benötigt jedoch 10ms pro DB und das ist bisel viel :)
 

Anhänge

  • FC650.pdf
    18,4 KB · Aufrufe: 26
Ich weiß ja nicht, was genau statistisch erfasst werden soll.
Ausgehend davon, dass nicht unbedingt erfasst werden muss, wie viele Bits GLEICHZEITIG an sind, könntest Du das ganze noch anders aufziehen.
Möglicherweise kannst Du dann in Deiner Schleife ganze Bytes oder Wörter auf "0" vergleichen und reagieren, wenn der Vergleich <>0 ist.
Auf diese Weise kannst Du natürlich nicht zählen, ob mehrere Bits in dem Byte/Wort gesetzt waren. Jedenfalls dürfte das um einiges schneller ablaufen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Der Vorschlag von Tigerente hat schon was ...
Ich würde tatsächlich erstmal schauen, ob in einen DBW (oder DBD) überhaupt ein Bit gesetzt ist. Wenn nicht dann brauchst du hier ja gar nicht erst nach der Inkrementier-Möglichkeit suchen. Das sollte dann die Gschichte schon verbessern. Ganz generell ist deine Bearbeitungszeit aber das Ergebnis vom Bilden vieler Pointer. Was setzt du für eine CPU ein ?

Allerdings ... nach welchen Kriterien rufst du den Baustein auf (und bildest du so eine Statistik) ? Dieser Baustein dürfte dir doch wohl nur eine Moment-Aufnahme machen. Was ist, wenn der Fehler xyz zwischen dem ersten und dem zweiten Aufruf des Bausteins immer noch aktiv ist ? Zählst du ihn dann 2 mal ?

Wie wäre es, wenn du das Zählen beim Eintragen des Fehlers machst ? Also ... du hast einen Baustein, dem du die Fehler-Nummer und den Fehler-Status übergibst und der aus der Nummer (nur bei geändertem Status des Fehlers) das Fehler-Bit setzt und zählt.
Aber wahrscheinlich macht es das auch nicht besser, da du diesen Baustein dann ja ein paar hundert mal aufrufen mußt ...

Gruß
Larry
 
Hallo msbes,

versuchs doch mal mit dem FC99 "BITSUM" aus der Standard-Bib.
Vllt. wirds dadurch ein bisschen schneller.

Grüße
Gebs
 
Ich nutzte 315 2DP, der Fehler wird nicht doppelt gezählt, dafür habe ich ja die Hilfsmerker (HM_Pointer) im Statistik DB.

Das mit dem schauen im DBW/DBD ist auch so ein Sache. Habe es probiert, aber die Zykluszeit wird nicht wesentlich kürzer.

Probiere jetzt mal den FC99 aus der Standard Bib.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich vergleiche die Wörter in jedem Zyklus mit dem Wert den das Wort im Zyklus davor hatte. Wird ein Unterschied festgestellt wird eine Meldung "neuer Fehler" generiert. Bei "0" ist kein Fehler vorhanden. Auf diese Art überwache ich 320 Meldungen ohne das in der Zykluszeit zu merken, z. B. meine 315-PN/DP mit S7-Graph-Schrittketten und ca. 150kB Programm hat eine Zykluszeit von max. 5ms.
 
Zurück
Oben