LabVIEWForum.de - Ist-Wert aus while-Schleife ausgeben

LabVIEWForum.de

Normale Version: Ist-Wert aus while-Schleife ausgeben
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten Abend zusammen.

Ich habe eine Frage zu while-Schleifen.
Ich habe ein Programm geschrieben, in dem ich den Istwert eines Messwertes bestimme. Die Ermittlung des Ist-Wertes findet in einer while-Schleife statt. Das ganze erfolgt über eine Mittelwertbildung. Der nach Außen geführte Wert ist "mean".
Wie kann ich den aktuellen Wert aus der While-Schleife herausführen und weiterverwenden?
Das Anzeigen klappt ja auch in der while-Schleife, aber wenn ich den Wert außerhalb verwenden möchte, weiß ich leider nicht so genau wie ich das hinbekomme.
Macht es Sinn das Einlesen des Signals und die Ermittlung des Mittelwertes in ein SubVI auszulagern oder verkompliziert das die ganze Sache?
Ich habe zwei Programme die im Endeffekt dasselbe machen. Hänge sie beide mal an.

Ich habe auch schon einige Beiträge zu dem Thema gelesen und habe auch versucht daraus etwas umzusetzen, das hat aber nicht so recht funktioniert. Habe es mit Referenzen versucht.

Wäre euch sehr dankbar, wenn mir jemand helfen könnte, bzw. wenigstens einen Tip übrig hätte ob es Sinn macht die Erfassung und Berechnung in ein SubVI auszulagern!

Vielen Dank schon einmal!

Philipp

Lv86_img
' schrieb:Das Anzeigen klappt ja auch in der while-Schleife, aber wenn ich den Wert außerhalb verwenden möchte, weiß ich leider nicht so genau wie ich das hinbekomme.
Du kannst eine "Lokale Variable" vom Anzeigeelement MAIN erzeugen und die außerhalb der While-Schleife lesend (und schreibend) verwerden.

Soll der Wert in einem anderen SubVI verwendet werden, kann du den Wert mit einer Queue oder einem Melder "veröffentlichen".
Hallo Zusammen.

Danke erst einmal für die Antwort.
Es funktioniert auch soweit. Allerdings nur wenn ich das ganze in eine parallele while-Schleife packe.
Sprich den Wert meiner Mittelwertbildung in der ersten while-Schleife an die lokale Variable übergeben und in der parallelen while-Schleife weiterverarbeiten.
Wenn ich jedoch die lokale Variable(lesend) außerhalb der while-Schleife platziere, dann wird nur ein Wert angezeigt und danach "steht" die Anzeige.

Sehe ich das richtig, dass die Anzeige und die lokale Variable(lesend) und die while-Schleife müssen, damit immer wieder gelesen wird bis zum Stop drücken und ohne while-Schleife nur einmal gelesen wird?

Grüße

Philipp

Lv86_img
Ja.

Wie bei C/C++ auch; Code wird einmal ausgeführt. Schleifen dementsprechend oft bis ihre Abbruchbedingung erfüllt ist.
Daher musst du eine parallele Schleife haben, wenn du deine lokale Variable mehrfach auslesen willst.

Schau dir mal die Producer-Consumer (Erzeuger-Verbraucher) Architektur genauer an, dort wird meiner Meinung nach gerade für Beginner vieles deutlich, wie LV sich verhält.
Danke!

Werde mir das mal anschauen.

Grüße
Referenz-URLs