LabVIEWForum.de
Messwerterfassung Umrechnung - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Messwerterfassung Umrechnung (/Thread-Messwerterfassung-Umrechnung)



Messwerterfassung Umrechnung - sunshine1234 - 02.03.2015 12:47

Hallo zusammen,

und zwar brauche ich eure Hilfe.
Ich habe einen Sensor der fortlaufend ausgelesen wird sprich Daten ausgibt.
Der Wertebereich erstreckt sich zwischen 0-1023 (2^10) mit dem dann die eigentlichen Messwerte ausgerechnet werden können.

1.)
Zuerst muss ich den Sensor auf ein Nullpunkt legen d.h. ich habe gemessen z.B. 506 den ich als Nullpunkt definier.(506 entspricht dem Wert 0)
Danach soll die Differenz zwischen dem alten Wert und neuen Wert ausgegeben werden.
Sprich z.B neuer Wert (100) - alter Wert (0) = 100 (Messwert)
(606) - (506) = 100 (Messwert)

Erster Ansatz wäre eine For-Schleife die einmal durchlaufen wird (Schieberegister) und den Wert auf 0 setzt wie rechne ich diesen Messwert um?

2.
Wenn der Wertebereich von 1023 umspringt fängt dieser wieder bei 0 an wie kann ich das umsetzen das dieser Umsprung gemerkt wird?

Erster Ansatz wären 2 Flags
wenn Wert = 1023
i= 1
wenn Wert = 0
j= 1

beide true sind dann Zählervariable hochzählen und verrechnen

das selbe auch wenn es zum Sprung von 0 auf 1023 geht.

Kann da jemand helfen? Leider habe ich im Forum zu diesem Thema nichts passendes (ähnliches) gefunden.
Zerbreche mir schon fast seit einer Woche den Kopf wie ich dies realisieren könnte Ahrg1
Vielen Dank im Voraus wenn jemand entsprechend weiterhelfen kann.

Gruß
Sunshine


RE: Messwerterfassung Umrechnung - GerdW - 02.03.2015 13:07

Hallo Sunshine,

1) Wozu die Offset-Korrektur, wenn du hinterher doch nur mit Differenzen deines Messwertes arbeitest?
Zitat:neuer Wert (100) - alter Wert (0) = 100 (Messwert) … (606) - (506) = 100 (Messwert)
Die Differenz der Offset-korrigierten Werte ist identisch mit denen der nicht korrigierten. Wozu also korrigieren?

2)
Code:
IF x(t-1)==1023 AND x(t)==0 THEN
  Zählvariable inkrementieren
ENDIF
IF x(t-1)==0 AND x(t)=1023 THEN
  Zählvariable dekrementieren
ENDIF

Zitat:Zerbreche mir schon fast seit einer Woche den Kopf wie ich dies realisieren könnte
Du brauchst den aktuellen und den vorherigen Wert: dafür nimmt man ein Schieberegister!
Der Rest sind doch nur simple Vergleiche und Case-Strukturen…


RE: Messwerterfassung Umrechnung - sunshine1234 - 04.03.2015 16:54

Hallo zusammen,

vielen Dank für die schnelle Antwort.

Habe nun ein VI erstellt.
Es wurden die unwichtige Sachen weggelassen wie Berechnungen usw.
Was ich mich nun Frage ist wie kann das Sein wenn ich die Werte manuell wie in meinem Beispiel simulier und dann die Überträge gemacht werden?
Falls ich nun über die Serielle Schnittstelle die Auswertung mache wird nie ein Überlaufwert erzeugt mit diesem ich weiterrechnen kann?

Ich denke das sich es hierbei um ein Denkfehler handelt oder sehr Labview-Spezifisch ist.

Vielleicht kann sich jemand die Sache mal anschauen habe das VI hochgeladen.

Gruß
Sunshine

PS: Es handelt sich hierbei um einen 12Bit Wandler nicht wie vorher erwähnt um einen 10 Bit-Wandler.


RE: Messwerterfassung Umrechnung - GerdW - 04.03.2015 17:08

Hallo sunshine,

ich habe dein VI mal etwas vereinfacht und den Matlab-Knoten entfernt - die einfache Rechnung sollte auch so möglich sein!

Allerdings kapiere ich noch nicht, was du im VI so erreichen willst…


RE: Messwerterfassung Umrechnung - Lucki - 04.03.2015 17:46

Zur gleitenden Mittelwertbildung nimmt man vorteilhaft einen FIR-Filter, da muß keinen eigenen FIFO-Puffer basteln. Fillterkoeffizienten für FIFO-Größe 5 z.B: [1/5;1/5;1/5;1/5;1/5]
Beispiel:
[attachment=52305]


RE: Messwerterfassung Umrechnung - GerdW - 04.03.2015 18:52

Zurück zum Thema Über-/Unterlauf:
[attachment=52306]
Warum ist dein Input eigentlich ein DBL, wenn du mit U12-Werten arbeitest?


RE: Messwerterfassung Umrechnung - sunshine1234 - 04.03.2015 23:33

Hallo zusammen,

erstmal vielen Dank für die Hilfe und Verbesserungen.

Zitat:ich habe dein VI mal etwas vereinfacht und den Matlab-Knoten entfernt - die einfache Rechnung sollte auch so möglich sein! Allerdings kapiere ich noch nicht, was du im VI so erreichen willst…

ein Beispiel:
Init (4000) dann neuer Wert1 (4080) => Dehnung von 80(4080-4000) (wird rausgeschrieben)
Init (4000) dann neuer Wert2 (0) wegen Überlauf = Dehnung wäre -4000(0-4000)
Deshalb habe ich mir das so überlegt das ich hier einen Überlauf merke.
Wenn der Wert1 (alter Wert) größergleich als 3000 && kleinergleich 4095 dann true
Wenn der Wert2 (neuer Wert) kleinergleich als 1000 && größergleich 0 dann true
beide Verunden und Zähler hochzählen

=> somit wird dieser Rechnung 1 mal Überlaufsvariable dazuaddiert
also -4000 + 1*4096 = 96 (wird rausgeschrieben)

Ich hatte es mal simuliert das liegt wohl an den boolschen Abfragen da die Werte schon beim ersten true rausgeschrieben werden und auf den neuen Wert2 nicht warten dann würde also der Fall nie eintreffen.
Zitat:Zur gleitenden Mittelwertbildung nimmt man vorteilhaft einen FIR-Filter, da muß keinen eigenen FIFO-Puffer basteln. Fillterkoeffizienten für FIFO-Größe 5 [quote]z.B: [1/5;1/5;1/5;1/5;1/5]

was habe ich davon was ist da besserBlink?
Zitat:Warum ist dein Input eigentlich ein DBL, wenn du mit U12-Werten arbeitest?
Das stimmt hier haben Variablen mit Kommastellen sowieso nichts zu suchen, muss ich noch ändern.

Hoffe ich habe es einigermaßen vollständig rübergebracht.

Viele Grüße


RE: Messwerterfassung Umrechnung - GerdW - 05.03.2015 08:55

Hallo sunshine,

Zitat:Deshalb habe ich mir das so überlegt das ich hier einen Überlauf merke.
Und warum korrigierst du den Overflow nicht einfach? Und den Underflow auch?
[attachment=52317]


RE: Messwerterfassung Umrechnung - sunshine1234 - 08.03.2015 13:58

Hallo Zusammen,

versuche gerade die Messwerterfassung auszuarbeiten und gehe nun 2 Lösungen nach.

Nur eine Frage wo finde ich diese Option der Datenverarbeitung der im Anhang zu sehen ist?
Gibt es das überhaupt in Labview 11.0 ?
Falls nein wie könnte es anderst gemacht werden? Über eine Case funktioniert das leider nicht schon probiert.

Gruß
Sunshine


RE: Messwerterfassung Umrechnung - Holy - 08.03.2015 17:29

Diese Funktion befindet sich unter Application Control >> Memory Control. Diese Funktion gibt es auch schon in LabVIEW 2011 (LabVIEW-Hilfe). Im Anhang 2 alternative Lösungen mittels einer Case-Struktur oder über Selects.
[attachment=52374]