-> Hier kostenlos registrieren
Hallo zusammen.
Mein Ziel ist das Flattern eines analogen Messwerts zu unterdrücken. Meine Idee war, die Werte nacheinander in ein Array mit der Größe x zu schreiben und dann den Mittelwert des Arrays zu berechnen. Sobald das Array voll ist und es von vorn neu überschrieben wird, addiert es aber bis jetzt die neuen Werte auf die Summe der x Summanden wodurch die Mittelwertberechnung nicht mehr klappt.
Wie kann ich es in ST umsetzen, dass es immer nur die Summe der aktuell im Array gespeicherten x Werte berechnet? Ich bin dankbar für jegliche Denkanstöße.
Mein Ziel ist das Flattern eines analogen Messwerts zu unterdrücken. Meine Idee war, die Werte nacheinander in ein Array mit der Größe x zu schreiben und dann den Mittelwert des Arrays zu berechnen. Sobald das Array voll ist und es von vorn neu überschrieben wird, addiert es aber bis jetzt die neuen Werte auf die Summe der x Summanden wodurch die Mittelwertberechnung nicht mehr klappt.
Code:
WHILE Datenindex<199 DO
Daten[Datenindex]:=MV_Temperatur;
Summe:=Summe+Daten[Datenindex]; (*die Zeile muss ersetzt werden*)
Datenindex:=Datenindex+1;
END_WHILE;
IF Datenindex=199 THEN
Datenindex:=0;
voll:=TRUE;
END_IF;
IF voll=TRUE THEN
AnzahlWerte:=200;
ELSE
AnzahlWerte:=Datenindex;
END_IF;
Temperatur_MW:=Summe/AnzahlWerte;