Hi,
ich bin dabei ein kleines Projekt mit Verwendung der FT_AVG-Funktion (V3.11) zur Mittelwertbildung zu erstellen. Es sind 5 Meßwerte, die z.T. auch negativ werden können. In einem FB werden nacheinander - mit ein bischen Logik dazwischen - 5x der FB23 aufgerufen, jeder mit eigenem DB. Funktioniert soweit auch ganz gut - aber eben nicht zuverlässig.
Ein Problem ist das bei Änderung der Anzahl "n" diese nicht richtig in die Funktionen übernommen werden, d.h. der betreffende Ausgang gibt dann dauerhaft falsche Werte aus. Stelle ich "n" wieder auf den vorherigen Wert zurück, stimmt der Ausgang wieder. Das habe ich damit behoben, das ich mit externer Logik bei Änderung der Anzahl "n" einen kurzer Resetimpuls an "RST" gebe.
Zweites, größeres Problem: Manchmal - nach dem Einschalten der SPS (313C) - gibt der eine oder andere FT_AVG "nan" aus. Selbst bei Verwendung eines Anlauf-Timers, der den Reset-Eingang für 2s aktiviert, passiert das manchmal. Habe ich hier einen Denkfehler bei der Verwendung der Funktion?
Oder muß ich die 5x FT-AVG-Fkt. im Anlauf-OB initialisieren?
Den Eingang "E" wird dabei über einen einstellb. Taktgeber mit pos. Flanke getriggert (derzeit 5Hz) und bei Systemstart mit dem o.g. Anlauftimer für 2s aktiviert.
Ich habe auch schon versucht die FT_AVG's zeitlich versetzt nacheinander und mit 100ms Abstand über ein Schieberegister-Bit an "RST" zu initialisieren.
Selbes unzuverlässiges Anlaufproblem...
Ich könnte jetzt zwar zeitgesteuert einen zusätzlichen Resetimpuls erzeugen um so die sporadischen Anlaufprobleme zu beseitigen aber ich denke das muß auch anders gehen.
Hat jemand den entscheidenden Tipp für mich?
Nachtrag: in der Online-Beobachtung des gestörten, zugehörigen IDBs sieht man schön wie die Meßwerte nach Takt eingelagert werden, n-Zähler läuft durch, Ausgang AVG zeigt jedoch DW#16#FFFFFFFF
Gruß, Quasi