Ermittlung des Startzeitpunktes aus Anstiegsmaximum

dmarco

Level-1
Beiträge
7
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich möchte für meine Bachelorthesis mit einem Ultraschallsensor die Steighöhe eines Schaumes ermitteln.
Dieser wird unter einen Ultraschallsensor gestellt und schäumt in einem Becher auf. Wenn das Wachstum des Schaumes beendet ist, also das Steighöhenmaximum erreicht ist, soll der Programmablauf weitergehen. Nun meine Frage:

Wie kann ich den Zeitpunkt bestimmen an dem der Schaum nicht weiter ansteigt?

Der US-Sensor arbeitet mit 16 Bit also einem Abstandswert von 0-32767, den ich schon in mm umgerechnet habe, man kann also auf die Entfernung zugreifen. Wenn die Entfernung gleich bleibt soll das Programm also weiterlaufen.

Vielen Dank schon einmal im Vorraus für hilfreiche Antworten;)
 
kannst du denn eine timeout-Zeit für das Steigen des Schaums feststellen?
Wo du zum Beispiel sagst, wenn der Schaum nach 5s nicht mehr ansteigt, steigt er garnicht mehr ?
 
Du könntest doch einfach in jedem Zyklus checken, ob der jetztige Abstandswert dem vorherigen entspricht.

So richtig, aber wenn, dann mit einem Puffer. Es wird niemals so genau funktionieren, dass dein Messwert nicht schwankt.

Ich persönlich würde die "Geschwindigkeit" des Schaumes ermitteln und wenn diese einen bestimmten Punkt erreicht hat, oder auf 0 sinkt, mit dem Programm weiterverfahren.

Dann eben mit WertNeu und WertAlt arbeiten. Im Programm mit Abfrage des Messwertes einen WertNeu bestimmen und diesen (bei steigendem Wert mit steigendem Schaum) durch den WertAlt dividieren. Das ergibt einen Wert, z.B. 1,024546. -> Die "Geschwindigkeit"!

Am Ende des Zyklus WertAlt den Wert von WertNeu zuweisen.

Danach startet eine neue Abfrage.

Code:
VAR
WertAlt  : INT; (eventuell initialisieren mit einem bekannten Startwert)
WertNeu AT %QW1 : INT;
Geschwindigkeit : REAL ;
END VAR;

VAR_OUT
BedStart : BOOL;
END VAR;

Geschwindigkeit:= INT_TO_REAL(WertNeu)/INT_TO_REAL(WertAlt);

WertAlt:=WertNeu;

BedStart:= Geschwindigkeit < 1.01;

Ist nur eine Idee, vieleicht kannst du damit ja was anfangen. Man kanns natürlich besser und übersichtlicher machen, mit ner Anzeige wie schnell der Schaum gerade steigt in drei Bereichen (rot gelb grün) oder so.

Grüße,

Florian
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

bitte entschuldige meine späte Antwort.
Also wenn der Schaum einmal nicht mehr weiter ansteigt, dann steigt er garnicht mehr weiter, d.h. er hat irgendwann sein Maximum erreicht und ist ausreagiert.
Also wäre ein Timeout möglich, das dann z.B. auch schon nach 1s.
 
Zurück
Oben