LabVIEWForum.de
Startwert eines kontinuierlichen Signals setzen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Startwert eines kontinuierlichen Signals setzen (/Thread-Startwert-eines-kontinuierlichen-Signals-setzen)

Seiten: 1 2 3


Startwert eines kontinuierlichen Signals setzen - redhand - 26.11.2013 13:56

Hallo LV-Forum,

ich empfange ein kontinuierliches Signal (16bit Integer-Werte).
Dabei wird ein Wegmesswert über einen Sensor ausgelesen. Es handelt sich um einen 12-bit-Wert, also 4096 Zustände können eingenommen werden. Ein Schritt umfasst dabei 500Nanometer.

Beim Starten des Programms befindet sich ein Magnetband über dem Sensor. Ich möchte jetzt nicht das Magnetband immer genau auf den 0-Punkt legen müssen, was bei einer Auflösung von 500Nanometer auch nicht so einfach istWink

Also kann es sein, dass der 1.Wert beim Starten des Programms 100 ist.
Mit Bewegung des Bandes verändert sich der Wert natürlich. Beispielsweise ist der 2.Wert 150, der 3.Wert 250.

In der Auswertung steht jetzt aber: 100, 150, 250
Der zurückgelegte Weg wäre aber: 0, 50, 150

Ich habe schon mit Eigenschaftsknoten und Schieberegistern rumprobiert, komme aber auf kein ordentliches Ergebnis.

Hat jemand einen Tipp?

Vielen Dank,
redhand


RE: Startwert eines kontinuierlichen Signals setzen - jg - 26.11.2013 14:14

So zum Beispiel:
[attachment=47452]

Gruß, Jens


RE: Startwert eines kontinuierlichen Signals setzen - redhand - 26.11.2013 14:47

Hallo jg, danke für die schnelle Antwort!


Was bewirkt die Schleifeniteration an "=0?" ?
Des Weiteren verstehe ich dann den Ablauf nicht, wenn wie in meinem genannten Beispiel die ersten 3 Werten 100,150,250 durchlaufen, was passiert dann?

Ist der erste Wert 100 (an Stelle der Zufallszahl) bringt "Select" den f-Wert. Was für ein Wert ist das dann, wenn die Schlaufe das erste mal durchlaufen wird? Die 100 läuft ja dann nur bis zum "Subtract" und nicht weiter.

Grüße
redhand


RE: Startwert eines kontinuierlichen Signals setzen - redhand - 26.11.2013 15:20

Hat sich erledigtWink
habs verstanden Big Grin


RE: Startwert eines kontinuierlichen Signals setzen - jg - 26.11.2013 15:42

(26.11.2013 15:20 )redhand schrieb:  Hat sich erledigtWink
habs verstanden Big Grin
Schön, wenn man mal nicht alles erklären muss. Wink


RE: Startwert eines kontinuierlichen Signals setzen - redhand - 26.11.2013 15:55

Hallo nochmal,

eine kleine Erweiterung.

Mein VI benötigt eine ForLoop-Case-Struktur (siehe Bild). Die While Schleife innerhalb will innerhalb dieser Struktur nicht funktionieren.
Gibt es dafür eine Erklärung?


RE: Startwert eines kontinuierlichen Signals setzen - GerdW - 26.11.2013 16:00

Hallo redhand,

warum sollte die While-Loop nicht funktionieren? Sie funktioniert sogar so gut, dass sie niemals abbricht...

Ansonsten: THINK DATAFLOW und nutze mal das Highlight-Debugging...


RE: Startwert eines kontinuierlichen Signals setzen - redhand - 26.11.2013 16:11

(26.11.2013 16:00 )GerdW schrieb:  warum sollte die While-Loop nicht funktionieren? Sie funktioniert sogar so gut, dass sie niemals abbricht...

Ich weiß, das ist das Problem. Die innere While-Schleife bricht nie ab. Ich bin aber daran gebunden dass sie hochläuft, da ich den ersten Wert 0 setzen möchte. Also wenn die innere While-Schleife immer wieder neu startet, wird der Wert in der inneren While-Schleife immer 0 bleiben. Blink


RE: Startwert eines kontinuierlichen Signals setzen - GerdW - 26.11.2013 16:26

Hallo redhand,

??? Bahn
Kannst du dein Vorhaben mal mit etwas Pseudocode illustrieren?


RE: Startwert eines kontinuierlichen Signals setzen - redhand - 27.11.2013 09:01

(26.11.2013 16:26 )GerdW schrieb:  Hallo redhand,

??? Bahn
Kannst du dein Vorhaben mal mit etwas Pseudocode illustrieren?
??? was ist Pseudocode?Box

Nochmal das Ganze:

-Ich benutze eine For-Loop+Case Struktur. Grund: Ich brauche 6 verschiedene Cases, mein Signal kommt aber in einem Array, welches durch die For-Schleife dann autoindiziert wird, sodass ich einen Integer-Wert an den Case-Selektor anschließen kann. (Hilfe kam übrigens von dirWink)
-den ankommenden Wert(Wegmesswert) möchte ich jetzt immer bei 0 starten lassen. Ist der 1.Wert 100; der 2.Wert 150; der 3.Wert 180, dann möchte ich in der Auswertung nicht 100,150,180 stehen haben sondern 0,50,80. Also den zurückgelegten Weg.

-Problem: Ist die innere Schleife beendet, startet sie im nächsten Durchlauf wieder bei 0, sprich "x-y" wird immer 0
Jedoch muss auf der anderen Seite die innere Schleife beendet werden, das der nächste Messwert überhaupt kommt, sehe ich das richtig bzw kann man das lösen?

gruß