LabVIEWForum.de - Wie kann ich Daten in einer Schleife richtig auslesen?

LabVIEWForum.de

Normale Version: Wie kann ich Daten in einer Schleife richtig auslesen?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.

froschels

Hallo an alle.

Ich bin noch ein blutiger LabView-Anfänger und dies ist mein erster Post in diesem Forum, also seit noch ein bisschen nachsichtig mit mir :-)

Zunächst einmal: Ich benutze LabView in der Version 8.5 (von 2007) auf Englisch unter Windows XP Pro 32-BIT.

Folgender Sachverhalt:
Wenn ich Werte in einer Schleife generiere und ich mir Diese mittels einer Anzeige (die ich innerhalb eben dieser Schleife erstellt habe) auslesen lasse, zeigt er mir immer die aktuellen Werte an.
Ist die Anzeige allerdings außerhalb der Schleife gesetzt, zeigt er immer nur den letzten ermittelten Wert an (warum ist mir klar: er beendet eben erst die Schleife und gibt dann den zuletzt ermittelten Wert nach "draußen" aus).

Jetzt zu meiner Frage:
Gibt es eine Möglichkeit die Werte die innerhalb einer Schleife ermittelt werden auch "live" in Darstellungen und Berechnungen zu benutzen, die sich außerhalb der Schleife befinden? Oder muss ich mein VI nochmal komplett umsturkturieren und mir was Neues einfallen lassen?

Das erstellte VI reiche ich morgen Vormittag noch nach (ist auf einem anderen PC), aber vielleicht könnt ihr mir ja auch so helfen.

Vielen Dank schon mal,
froschels.
Du kannst die Werte per Notifier, global data storage usw. übergeben und dann "live" nutzen.

froschels

Danke für die schnelle Hilfe.

Ich habe es mit dem Notifier versucht und es hat funktioniert! Cool
Da ich noch nie mit dem Notifier gearbeitet habe, habe ich das Beispiel-VI von LabView "Pass Data with Notifiers.vi" verwendet und es hat mir bei der Durchführung in meinem eigenen VI sehr geholfen.

Vielen Dank nochmal,
froschels.
Hallo froschels!

Vielleicht als kleiner Hinweis: Schau dir mal die Queues an. Im Vergleich zum Notifier haben diese den Vorteil, dass sie die Daten puffern können. Gerade wichtig, wenn du deine Daten schneller erzeugst als an anderer Stelle auswertest.

Schöne Grüße
Falk
Umgekehrt (- ich beziehe mich auf Falk -)gilt aber auch: Wenn die Datenerfassung langam ist (- und das ist, wie das Institute of Dadaeconomics herausgefunden hat, in 93.2% Cool aller Anwendungen der Fall -) genügt ein Notifier.
Es ist auch zu erwähnen, daß es beim Notifier Funktionen geibt, die die Queue nicht hat, und umgekehrt.

Das Einfachste, um Daten, die in einer Schleife erzeugt werden, irgendwo anders zu verwenden, ist natürlich die Verwendung von lokalen Variablen.
Dabei hat man aber (neben den bekannten, hier schon 10001 mal wiederholten Nachteilen) diesen Unterschied: Es gibt keine Synchronisation. Die Lok.V. läßt sich jederzeit ohne Wartezeit lesen, man weiß aber nicht, ob der Wert neu ist oder ob es wieder der bereits gelesene ist.
(20.09.2011 14:10 )Lucki schrieb: [ -> ]Umgekehrt (- ich beziehe mich auf Falk -)gilt aber auch: Wenn die Datenerfassung langam ist (- und das ist, wie das Institute of Dadaeconomics herausgefunden hat, in 93.2% Cool aller Anwendungen der Fall -) genügt ein Notifier.

Es kommt halt ganz darauf an, was der Anwender letztlich genau machen will. Von meiner Seite wollte ich auch keine Präferenz setzen, nur einen Denkanstoß geben darüber auch nachzudenken.

froschels

Oh. Danke für die weiteren Infos.
Ich werde mir mal überlegen, welche Methode die geeignetste ist.

Da zwischen dem Auslesen von 2 Daten (in meinem Fall Spannungen) immer ~100ms (oder mehr) liegen wird vermutlich noch keine Pufferung der Werte benötigt. Zumindest waren erstellte Anzeigen innerhalb (ohne Notifier) und außerhalb (mit Notifier) der Schleife immer synchron.

Greetings,
froschels

froschels

Ich möchte das Thema noch einmal wieder Eröffnen.

Ich kann nun die Werte, die in einer Schleife generiert werden, mittels eines Notifiers auch außerhalb "live" auslesen.
Wenn ich mich an das Beispiel "Pass Data with Notifiers.vi" halte, kann ich die Daten sowohl im selben VI, als auch in einem Sub-VI auslesen lassen.

Besteht aber auch die Möglichkeit die Daten "live" an ein übergeordnetes VI weiterzugeben?

Vielen Dank schon mal,
froschels.
Ja, gibt es. Die Funktionen Notifier, Queue und Melder sind auf in übergeordneten Vi's auch auslesbar. Denke nur dran, sie wieder zu schließen wenn du das Programm beendest um zu vermeiden, dass Speicherplätze mit Datenmüll voll bleiben.

froschels

Danke, ich probiers heute mal aus Smile
Referenz-URLs