LabVIEWForum.de
Case- mit While Strukturen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Case- mit While Strukturen (/Thread-Case-mit-While-Strukturen)

Seiten: 1 2


Case- mit While Strukturen - dimitri84 - 31.08.2010 07:51

' schrieb:Der OP kann ja "Lokale Variablen":rolleyes: zum speichern verwenden, dann ist die "Kommunikation" gegeben.
Och nö, wenn du schon mit Producer-Consumer anfängst dann auch bitte mit einer zwischenpuffernden Queue.

Zitat:Die State gefällt mir, auch wenn ich mir gerade nicht vorstellen kann wie ich zB damit kontinuierlich über einen längeren Zeitraum aufzeichen kann.
Hoffe das liegt nicht an der frühen Stunde.^_^
Bei meinen Anwendungen muss ich immer mal wieder die Daten auf Platte wegschreiben da die Versuchslaufzeiten oft über mehrere Tage oder Wochen dauern.
Mri ist es daher zu riskant die Daten in einem Array im RAM stehen zu haben.
Reden wir vom selben Beispiel?! Bei mir wird in eine TDMS Datei geschreiben ... lässt sich natürlich beliebig durch andere Formate ersetzen.


Gruß dimitri


Case- mit While Strukturen - cnt_10 - 31.08.2010 13:55

Hallo zusammen und danke für eure rege Beteiligung!

Auf den ersten Blick sah die "Quick n Dirty" Lösung von RMR für mich ganz brauchbar aus.
Das was ich messe wird nämlich einmal mit daqmx-read in der Messen-Schleife gelesen und mit einem weiteren daqmx-read in einem
anderen Format in der Aufzeichnen-Schleife erneut gelesen. Die einzige gemeinsame Variable beider Schleifen ist die Task selbst.

Ich habe jetzt eine ganze Weile Sachen ausprobiert und finde, dass meine vereinfachte Version mit dem Random-Numbers zu einfach war
und den wahren Aufbau nicht wirklich wiedergibt. Sorry dafür!
Da ich momentan kein Datenerfassungsgerät habe, kann ich meine jetztige Umsetztung auch nicht austesten..leider.

Deshalb habe ich eine neue vereinfachte Version hochgeladen, die die Grundzüge des neuen Versuchsstand-Programms wiedergibt.

Es wär toll, wenn sich das jemand ansehen könnte und mir sagt ob es prinzipiell so möglich ist.

Lv86_img


Case- mit While Strukturen - dimitri84 - 31.08.2010 14:05

Kurzer Hinweis:
' schrieb:Das was ich messe wird nämlich einmal mit daqmx-read in der Messen-Schleife gelesen und mit einem weiteren daqmx-read in einem
anderen Format in der Aufzeichnen-Schleife erneut gelesen. Die einzige gemeinsame Variable beider Schleifen ist die Task selbst.
Es gibt nur einen Kartenpuffer aus dem du liest! D.h., wenn du zwei Mal mit dem DAQmx-Read VI etwas aus dem gleichen Task liest, dann hast du zwei verschiedene Signalblöcke gelesen und keinesfalls zwei Mal das Gleiche!


Case- mit While Strukturen - cnt_10 - 31.08.2010 15:23

Ok das leutet ein. Ich werde nachfragen warum das hier so umgesetzt wurde.

Mein Problem ist jetzt: Wie bekomme ich das, in der While-Schleife-1 gelesene Signal, in die While-Schleife-2 ohne die While-Schleife-1 zu beenden?
Ich habe es mit dem Property-Node (Value) versucht, aber das fubktioniert nur wenn While-Schleife-2 von Anfang an läuft.
Ich möchte aber die W-S-1 auch ohne W-S-2 betreiben und nach beliebn zu- oder abschalten können.

Gibt es da überhaupt eine Möglichkeit oder bin ich momentan auf dem Holzweg?
Wie wird sonst eine Messen-Aufzeichnen-Aufgabe gelöst?

Besten Dank,

Hannes

Lv86_img


Case- mit While Strukturen - RMR - 01.09.2010 09:27

' schrieb:Mein Problem ist jetzt: Wie bekomme ich das, in der While-Schleife-1 gelesene Signal, in die While-Schleife-2 ohne die While-Schleife-1 zu beenden?
...............Gibt es da überhaupt eine Möglichkeit .............

Hi.

Auch wenn mich Dimitri dafür steinigt. Es funktioniert mit "Lokalen Variablen", auch wenn dabei Race Conditions auftreten können. Schaue es dir einfach mal an.

Die saubere Lösung wäre die beiden SChleifen mit QUEUES zu verbinden. Dafür gibt es gute Beispiele im Examplefinder.

edit:
Mit fällt gerade auf das du die Definition für den A in innerhalb der WHILE hast. Das ist unnötig, bzw nicht gut. Es reicht wenn du den Eingang ein mal initalisierst.
Also alles bis zum LESEN kommt VOR die WHILE. Das schliessen des Tasks und der Errorblock kommt dahinter.

Grüße ,RMR


Case- mit While Strukturen - cnt_10 - 01.09.2010 16:55

Hallo Smile

Ich habe eine Möglichkeit gefunden alle Anforderungen unterzubringen.
So ist es möglich zu Messen (M) ohne Aufzuzeichnen (A) , anders herum aber nicht.
Die Daten werden nicht zwei mal gelesen, sondern an die A-Schleife übergeben und
der A-Vorgang kann jederzeit unterbrochen und wieder aufgenommen werden, ohne dafür
das Programm zu beenden.

Also falls ein LV-Grünschnabel wie ich dieses Thema liest..hier ist meine Umsetztung.

Großes Dankeschön an alle die mich bis hier hin gebracht haben! Thanx

Grüße, Hannes

Lv86_img