16Bit in Prozent

Begonnen von ThorPrez, 20. Oktober 2018, 17:56:49

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 2 Gäste betrachten dieses Thema.

ThorPrez

Hallo zusammen.

Ich habe einen 16bit Ultraschallsensor, gedacht für Flüssigkeitsstand und Aktivierung einer Pumpe.
Nur leider ist die Ansteuerung auf Grund der Schwankungen zu ungenau, der Wert ist stark und schnell am springen.
Am besten hinbekommen habe ich es bis jetzt mit DELAY.
Für 0-100 hatte ich AIN genommen, aber der ausgegebene Wert ist ein Graus.

Was habt Ihr für Vorschläge ?
Danke.

Gruß Thorsten

mattsches

Hallo Thorsten,

zum Beruhigen von unruhigen Signalen wird dir der DELAY nichts bringen. Der gibt dir dasselbe unruhige Signal lediglich zeitversetzt aus. Üblicherweise bildet man hier einen gleitenden Mittelwert. Für REALs gibt es bei OSCAT den FT_AVG (habe ich noch nicht eingesetzt), für 16 Bit Integer den FILTER_MAV_W. Obacht, der ist allerdings buggy, hier wurde ein Bugfix vorgeschlagen: http://www.oscat.de/community/index.php/topic,1236.0.html.

Ich hatte vor Jahren den FT_AVG übersehen, mir auf Basis von FILTER_MAV_W eine REAL-Variante gebaut und dabei die Fehler im MAV_W für mich korrigiert. Siehe Anhang.

Ob der AIN für die Wandlung in den Messbereich geeignet ist, hängt von deiner Systemkonfiguration ab. Leider schweigst du dich über die Details bzgl. Sensor und dessen Anschluss aus. 4..20 mA/0..10 V an AI-Karte? Feldbus direkt? IO-Link? Ich nehme an, Karte. Dann hängt es von dieser ab, welchen Wert du für 10 V/20 mA (also 100 % des Eingangsbereichs) erhältst. Und damit, ob der AIN passt. Im Zweifel bist du mit dem AIN1 besser beraten, da dieser bzgl. der Skalierung besser parametriert werden kann. Oder du schreibst die drei Zeilen halt selbst.

Gruß,
mattsches

[gelöscht durch Administrator]

ThorPrez

#2
16bit, 0-10V an Beckhoff KL3062

Mit Filter_MAV und Filter_AVG hatte ich ähnlich stark schwankende Werte wie mit Filter_I.

Interessanterweise habe ich jetzt mit AOUT ein sehr gutes Ergebnis bei 8-Bit-Vorgabe und sign 255.
Auf Grund der groben Skalierung habe ich sehr stabile Ausgangswerte.

mattsches

Beim gleitenden Mittelwert hängt das Ergebnis stark davon ab, wie viele Messwerte gemittelt werden. Aber wenn ich darüber nachdenke - beim MAV_W und FT_AVG sind das maximal 32. Wenn in jedem Zyklus aktualisiert wird kann das je nach Zykluszeit immer noch sehr unruhig sein.

Ich würde daher die Messung langsamer abtasten (z. B. alle 100 ms). Also den AIN in diesem Takt aufrufen (BITS := 15, SIGN := 255, LOW := 0, HIGH := 100) und das Ergebnis über den FT_AVG ziehen. Dann sollte Ruhe einkehren.

ThorPrez

Mit AOUT kriege ich bei der jetzigen Konfiguration Werte bis 255 angezeigt, die lediglich um +-2 schwanken.
Sieht derzeit sehr gut aus.