LabVIEWForum.de
While-Schleifen-Problem - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: While-Schleifen-Problem (/Thread-While-Schleifen-Problem--23236)



While-Schleifen-Problem - Baaand - 19.12.2012 18:51

Hallo Leute,

ich hab ein Problem an dem ich schon den ganzen Tag hänge. Ich bin blutiger Anfänger, daher ist es wahrscheinlich ne Kleinigkeit und ich werde mir danach in den Arsch beißen Big Grin

Ich habe die Ehre mein Bachelorarbeit über ein LabVIEW-Programm zu schreiben Wink

Und zwar hab ich mehrere SubVIs, die zum Beispiel den Sonnenstand berechnen, Wetterdaten aus einer Wetterstation abrufen und Daten von einer Wettervorhersage abrufen.

Wenn man mein VI anschaut, arbeiten die oberen zwei While-Schleifen zusammen. D.h. generierte Daten aus der linken Schleife, werden in der rechten benötigt, daher auch die Randevouzs! Das Ergebnis wird auf dem Frontpanel im Cluster "Ausgangscluster" angezeigt.

Bei den beiden unteren Schleifen ist es das gleiche. Daten die aus der linken Schleife werden in der rechten Schleifen weiterverarbeitet. Daher hab ich hier auch ein Randevouz, damit die beiden Schleifen sauber nacheinander ablaufen. Das Ergebnis wird auf dem Frontpanel im Cluster "Value" angezeigt.


Wenn man nun das Programm ablaufen lässt, sieht man, wenn nach ein paar Sekunden die ersten Werte kommen und diese dann nach kurzer Zeit wieder in einen Ausgangswert zurückspringen. Lasse ich die unteren zwei Schleifen, oder die oberen zwei Schleifen "alleine" in einem eigenen VI ablaufen funktionierts. Auch wenn ich ein Randevouz lege, damit erst die oberen zwei Schleifen laufen und danach die unteren beiden, funktionierts auch. So macht aber mein Programm leider keinen Sinn.

Ich hoffe ich konnte mein Problem etwas näherbringen! Wink

Danke schon mal

Version 12.0


RE: While-Schleifen-Problem - BNT - 19.12.2012 19:49

Hi
Such mal nach dem Entwurfsmuster Producer-Consumer. Dazu gibt es viele Einträge in diesem Forum und Beispiele in LabVIEW.

Empfehlung: Beginne mit Menü->New... VI/From Template/Frameworks/Design Patterns/Producer-Consumer Design Pattern und benutze die bereits vorhandenen SubVI's.

Den großen Cluster solltest Du in Eingabe- und Anzeige-Elemente splitten. Dann kannst Du auch die Referenzen vermeiden.

Probier mal, es ist gar nicht so schwer.

Gruß Holger


RE: While-Schleifen-Problem - Baaand - 19.12.2012 22:02

Danke Holger, ich werde es mal testen! Smile

Kann das Problem bei mir also daran liegen, dass ich teilweise gleichzeitig an verschiedenen Stellen in das gleiche Cluster schreibe?


RE: While-Schleifen-Problem - BNT - 19.12.2012 22:48

(19.12.2012 22:02 )Baaand schrieb:  Kann das Problem bei mir also daran liegen, dass ich teilweise gleichzeitig an verschiedenen Stellen in das gleiche Cluster schreibe?

Ja, genau. Und der Ansatz die Schleifen mit Rendezvous zu synchronisieren, ist in diesem Fall nicht angebracht. Rendezvous werden benutzt, um den Start unabhängiger Aktivitäten zu synchronisieren, die verschieden lange Ausführungszeiten benötigen.

In Deinem Fall scheint es ja noch einfacher zu gehen. Eingangsparameter lesen, SubVI ausführen, Ausgänge anzeigen. Alles in einer einzigen Schleife!

Gruß Holger