Quantcast
Channel: SPS-Forum - Automatisierung und Elektrotechnik
Viewing all articles
Browse latest Browse all 47324

Messfehler von Drehzahlerfassungen filtern

$
0
0
Hallo zusammen,

ich lese mit einer Task zwei Drezahlen ein. Ich erwarte dort Werte von [0...16] Hz.
Durch Fehlmessungen kommt es manchmal vor, dass im Programm der Drehzahlwert über diesen Wertebereich springt.
Wie kann ich eine schnelle Überprüfung zwischen dem Auslesen und dem Weiterverarbeiten zwischenschalten,
die einfach schaut ob der eingelesene Wert valide ist.

Ich hatte mir das folgendermaßen vorgestellt:

[PSEUDOCODE]

Code:

IF AKTUELLE_RPM > 1.01*TEMP_RPM THEN
    // Fehlmessung:
    // Letzter gespeicherte Wert wird ausgegeben

ELSIF AKTUELLE_RPM < 0.99*TEMP_RPM THEN
    // Fehlmessung:
    // Letzter gespeicherte Wert wird ausgegeben
ELSE
    // Aktuelle Drehzahl ist im 10% Bereich des vorherigen Wertes
    TEMP_RPM := AKTUELLE_RPM;
END_IF

AUSGANG := TEMP_RPM;

Wie kann ich das vielleicht einfacher mit einem Baustein realisieren?
Ich bekomme leider durch die o.g. Lösung beim Aufstarten
eine 0 in TEMP_RPM geschrieben. Und dann werden alle folgenden (validen)
Drehzahlen nicht mehr in den Ausgang geschrieben.

Gibt es eine schönere Lösung?

Viewing all articles
Browse latest Browse all 47324


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>