Bit bei Max einer Zahl setzen

MK_Auto

Level-1
Beiträge
124
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
gibt es eine Möglichkeite den Spitzen wert einer Zahl zu speichern bevor sie wieder fällt ??
bzw das ganze anders herum den min Wert speichern bis er wieder steig.
Sinn des ganzen ist einen wert von einem Analogsensor auszulesen.
da sich der Wertändert beim durchfahren der Teile.
Das ewige Leide mit den Mechanikern.
MfG
Micha
 
Einen Neu-/Altwert durchführen.

Kurz für Vergleich maximum:
L #Neuwert
L #Altwert
<= R
SPB =Next
L #Neuwert
T #Altwert
Next: ....

Kurz für Vergleich minimum:
L #Neuwert
L #Altwert
>= R
SPB =Next
L #Neuwert
T #Altwert
Next: ....
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Leg dir eine Variable an in die du den Maxwert schiebst.
wenn der eingelesene Wert höher als der alte Maxwert ist schiebst wieder in Maxwert.
Für Min genauso nur halt andersrum :ROFLMAO:

Edit:Upss war einer schneller ;-)
 
Maximum
Code:
L #PV //aktueller Wert
L #Maxwert //aktueller Spitzenwert
>R
SPBN =W1
L #PV
T #Maxwert
W1: U #Reset //Rückstellung
SPBN =W2
L 0.0
T #Maxwert
W2: NOP 0

Minimum
Code:
L #PV //aktueller Wert
L #Minwert //aktueller Minimumwert
<R
SPBN =W1
L #PV
T #Minwert
W1: U #Reset //Rückstellung
SPBN =W2
L 9999999.9
T #Minwert
W2: NOP 0
 
Zusätzlich zu den zwei Variablen, ich nenne sie XXMin und XXMax, solltest Du für die Zweifler noch den Timestamp spendieren, (OB1) das macht die Geschichte dann zeitlich nachvollziehbar. Also immer wenn sich Maxi oder Mini ändern den Wert und auch gleich noch Datum und Uhrzeit speichern.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke schon mal für die Infonur denke ich habe ich mich vieleicht falsch ausgerückt
Habe einen Analoggeber an einer 300er CPU der liefert einen Wert von anfangs sage ich mal 28000 als int und fällt bis zu einen gewissen punkt (min) wenn er dann steigt brauche ich den letzten wert also das minimum
MfG
MK Auto
Micha
 
Ne, ist schon in Ordnung. Dann nimmst Du eben nur den Teil Minimum-Auswertung und ersetzt bei Vergleichen "R" durch "I".
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Da wird keine Schleife im herkömmlichen Sinn von Loop/Next durchlaufen, sondern eine Auswertung pro Zyklus. Es wird in jedem Zyklus durch den Vergleich überprüft, ob der aktuelle Istwert größer/gleich dem zuletzt weggespeicherten Minimalwert ist. Wenn der aktuelle Istwert kleiner dem letztem gespeicherten Minimalwert ist, wird der aktuelle Istwert im Minimalwert weggespeichert.

Edit:
Nimm aber die Variante von borromeus, da er schon ein Löschen des Minimalwerts (manuell, wie eine Resttaste) in seinem Beispiel berücksichtigt hat.
 
Zuletzt bearbeitet:
Nein denke das meine ich nicht so brauche nur nen bit wenn der wert nicht mehr fällt habe sage ich malnen sinus wenn ich messe und brauche den unteren punkt
 
Hallo zusammen,
gibt es eine Möglichkeite den Spitzen wert einer Zahl zu speichern bevor sie wieder fällt ??
bzw das ganze anders herum den min Wert speichern bis er wieder steig.
Sinn des ganzen ist einen wert von einem Analogsensor auszulesen.
da sich der Wertändert beim durchfahren der Teile.
Das ewige Leide mit den Mechanikern.
MfG
Micha

Das war doch Deine Ursprungsfrage, oder?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nein denke das meine ich nicht so brauche nur nen bit wenn der wert nicht mehr fällt habe sage ich malnen sinus wenn ich messe und brauche den unteren punkt
Auch wenn mir bei Deiner Satzstellung beim Lesen schlecht wird:
Willst Du ein binäres Signal haben, wenn sich der aktuelle Wert nicht mehr weiter vermindert als der gespeicherte Min-Wert, dann geht das nur über eine zeitliche Betrachtung. Also mache das Min-Wert abspeichen wie von Corosop vorgeschlagen. Jetzt brauchst Du nur noch die zeitliche Komponente mit einbringen. Wenn also der aktuelle Wert und der gespeicherte Min-Wert für die Zeit x gleich groß sind, dann setze das verfluchte Bit..

Approx
 
Nein ich habe keinen gespeicherten wert
mein wert fällt immer bis zu nen Punkt woer dann wieder steigt diesen punkt brauche ich als bitaber der punkt ist immer verschieden und ich kenne ihn nicht
also der wert fängt an bei 28000 int und wird imer kleiner und ich brauche den punkt wenn er wieder anfängt zu steigen
 
Nein ... es gibt dafür nicht fertiges.
Ich würde das Beispiel von Borromeus (z.B.) umsetzen.
Wenn du es etwas konfortabler brauchst dann könntest du es noch erweitern in dem du dir ein FIFO baust in das du die Werte der Reihe nach reinschreibst und durchschiebst. Aus den jeweils letzten Werte bildest du einen Mittelwert und aus diesem bildest du dann wieder bezogen auf den letzten Mittelwert eine Steigung. Ist die Steigung = 1 oder negativ dann fällt deine Aufzeichnung noch - ist die Steigung positiv, dann hattest du den Wendepunkt beim letzten Wert.
Das kannst du dann auch entsprechend für den oberen Peak verwenden.

Gruß
Larry
 
Also, noch einmal und ganz langsam.

Ich erlaube mir, den Code von borromeus zu kopieren.

L #PV //aktueller Wert
L #Minwert //aktueller Minimumwert
<R
SPBN =W1
Hier prüfst Du, ob Dein aktueller Sensorwert kleiner Deinem minimalsten Wert ist. Ist dies nicht der Fall, springst Du zur Marke W1. Wenn doch,
geht es hier weiter.

L #PV //aktueller Wert
T #Minwert //aktueller Minimumwert
Da Dein aktueller Wert kleiner ist, speicherst Du ihn hier weg.

W1: U #Reset //Rückstellung
SPBN =W2
L 9999999.9
T #Minwert
W2: NOP 0
Hier kannst Du dann den Wert gespeicherten, minimalsten Wert wieder löschen, indem Du den Wert 9999999.9 in Dein Speicherwort schreibst. Das machst Du auch am Anfang und hast so Deinen ersten gespeicherten Wert.
 
Meint er vielleicht das Bit soll in dem Zeitpunkt kommen wenn der Wert wieder steigt?

Das könnte bei langsamer Wertänderung natürlich schwierig werden wenn die Messgenauigkeit nicht so besonders hoch ist. Sollte der Wert nur langsam fallen und die Messwerte ein wenig flackern kriget man das "jetzt gehts wieder rauf" -Bit ja öfters obwohl im nächsten Zyklus noch ein tieferer Wert auftauchen könnte. :cool:

Dafür müsst man noch so eine Art "Glättung" einplanen und die Zeit zur Erkennung des Richtungswechsels würde halt um diesen Faktor steigen!

Ich hoffe ich hab jetzt nicht alles falsch verstanden, der Starter könnte dazu ja mal seinen Senf geben;)
 
Hallo D-DNRN,

ich sehe es mittlerweile genauso wie Du. Aber wir können nur Rätsel raten, da der TE nach jedem Vorschlag seinen Wunsch abwandelt. Vielleicht sollte er sich mal detailiert dazu äußern, was er genau will.
Auch bei einem Int-Wert 0 bis -32768 (bedeutet eine Änderung von 1/32768stel) kann man die Abfrage und die anschließende Auswertung auf Umkehr nicht so einfach erledigen.
 
Zurück
Oben