# analoge Messwerte glätten



## xinix (9 März 2011)

Hallo,

nun noch mal ne zweite Frage.

Ermittle Füllstände mit Füllstandssensorik 4-20mA. Da die Tanks mit sehr schnell mit großen Mengen befüllt werden, schwanken diese Werte während der Befüllung. Ich habe nun gedacht, vielleicht den zwischenwert der in einer sec. gemessenen Werte zu verwenden. Es hapert aber etwas an der Umsetzung. Benötige mal einen Denktritt. Das wird wohl nur in ST gehen oder?

Danke!


----------



## dante (9 März 2011)

wie wäre es mit nen time? Mit der Flanke nimmst du immer den Aktualwert auf. Falls du Skype / ICQ oder so hast meld dich ich zeig dir dann etwas ST


----------



## xinix (9 März 2011)

hab leider noch keinen skype bzw. icq konto. Werd ich mir aber wohl mal anlegen. vielleicht komme ich morgen noch mal auf dein Angebot zurück....

Vielen Dank erst einmal.


----------



## winnman (9 März 2011)

denk mal an eine Mittelwertbildung über n Werte in einer Zeiteinheit nach. 
(Aktueller Wert + letzter Wert + vorletzter Wert , . . . / Anzahl Werte)


----------



## xinix (10 März 2011)

mit dieser vorgehensweise hatte bereits spekuliert - jedoch fehlt mir die umsetzung wie ich zum Beispiel 10 messwerte in einer Sekunde abfrage. 
Im Grunde ist mir das schon klar. In dem ich mir mit einem Zeitglied alle 1/10 sek mit einer Flanke den Messwert zu einer var hinzuaddiere, gleichzeitig einen zähler bis 9 mitlaufen lasse, dann durch 10 teile und alles rücksetze. nur wie setze ich das in ST um ?!?!?



der Weg scheint das Ziel zu sein... leider spielt die Zeit nicht mit....


----------



## dante (10 März 2011)

it tackt=true and lauf<>9 then
    zwischenwert:=zwischenwert+messwert;
    lauf:=lauf+1;
end_if;

if lauf=9 then
    zwischenwert=zwischenwert/10;
    lauf:=0;
end_if;


----------



## xinix (10 März 2011)

Hallo Dante,

erst mal vielen dank für den Tritt! Das ist ja echt genial wenn man weiß wie man das nutzen kann. Wurde in diesem Forum eigentlich schon mal so eine Art Befehlsreferenz für ST veröffentlicht? Oder wo bekomme ich soetwas her? Am schönsten wäre eine wo jeweils ein kleines Beispiel angehängt ist?

Zwei PDF's habe ich mir heute schon aus dem Forum geladen, die sind nur sehr beschränkt in der Befehlsvielfalt...

Übrigens, ich hatte doch schon seit ewigkeiten ein Skype Zugang, jedoch finde ich für die alte cam keine treiber mehr.... Hadset hätte ich - Naja, Du hast ja aber sicher auch wichtigeres zu tun.... :_)

Gruß


----------



## Ghosty (10 März 2011)

Hallo,
lies die Messwerte doch Zyklusweise ein und Glätte sie z.B. über 10 Zyklen.
Für so etwas verwende ich immer folgende Variante:

Ergebniss := (((Ergebniss *9) + AktuellerWert)/10);

Ist sehr einfach zu Programmieren und wenn es noch nicht genug Geglättet ist nimmst du halt 15 oder 20 Zyklen.

Gruß


----------



## xinix (10 März 2011)

und wo werden die zyklen gezählt? mit "Ergebniss *9" liest sich ja für mich eher wie ne normale multiplikation?!?

oder wird damit dem Controller klar gemacht er will 9x ein Ergebnis haben?

das wäre ja nun auch ne geniale Lösung....

Danke!


----------



## Verpolt (10 März 2011)

Hallo,



> analoge Messwerte glätten



schau dir mal ein PT1-Glied an


----------



## Ghosty (10 März 2011)

Es wird bei jedem durchlauf der AktuelleWert in das Ergebinss geschrieben und verrechnet. So hast du einen Durchschnitt der letzten 10 Zyklen. Aber es dauert beim Start halt auch diese 10 Zyklen bis du ein richtig verwertbares Ergebniss bekommst.
Hoffe es ist jetzt ein bischen verständlicher.

Gruß


----------



## xinix (10 März 2011)

Hallo Verpolt,

hört sich auch gut an, gibt es denn ein fertiges PT1 Glied in ST?


----------



## Verpolt (10 März 2011)

http://www.sps-forum.de/showthread.php?t=17413


----------



## winnman (10 März 2011)

für den Start kann mann sich auch behelfen:
solange bis das 1. mal die volle Anzahl Zyklen für die Mittelwertbildung erreicht sind einfach den Aktualwert ausgeben.


----------



## xinix (15 März 2011)

Verpolt schrieb:


> Hallo,
> 
> 
> 
> schau dir mal ein PT1-Glied an



Das ist genau das was ich gesucht habe! Nach dem ich mich ein bisschen reingelesen habe, kam mir das auch etwas bekannt vor ( Lehrzeit ) aber das war irgend wie soweit im Hintergrund - Quasi verstaubt in der Ecke meines Hirns*ROFL*

Danke!


----------

