LabVIEWForum.de - Variablen zwischen zwei Schleifen übergeben und an bestimmter Stelle Ausführen

LabVIEWForum.de

Normale Version: Variablen zwischen zwei Schleifen übergeben und an bestimmter Stelle Ausführen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich möchte in einer Hauptschleife, die eine flat sequence beinhaltet, an einer bestimmten stelle die Ausführung einer zweiten Schleife starten, die parallel zur Hauptschleife ablaufen soll
(ich möchte die Schleife allerdings nicht direkt in die Hauptschleife einbauen). Außerdem soll die zweite Schleife erst ausgeführt werden, wenn alle Parameter aus dem aktuellen Durchlauf der Hauptschleife zur Verfügung stehen und eine Freigabebedingung erfüllt ist. (Mit dem Erzeuger/Verbraucher Prinzip komme ich also nicht weit). Die Zweite schleife soll bei Freigabe einmal ausgeführt werden und bis zur nächsten Ausführung warten bis die Parameter der nächsten Iteration zur Verfügung stehen.
Hintergrund ist der, dass ich in der zweiten Schleife ein Spannungs-Messkanal auf den Testablauf aufschalten will und eine Spannungsmessung vornehmen möchte. Dies soll aber nur während der lastfreien Phase geschehen (also in der im Beispiel beschriebenen Sequenz). Anbei ein Minimalbeispiel zur Erläuterung. Hat jemand von euch eine idee, wie man das realisieren kann? Habe bisher leider nichts dazu gefunden.

Vielen Dank schonmal für eure Hilfe
Synchronisiere doch beide Schleifen über einen (Notifier oder Queue). Die zweite parallel laufende Schleife wartet ja solange mit der Ausführung bis eine Notification eingetruddelt ist und läuft dann genau einmal durch. Anschließend wartet sie auf die nächste Notification usw. usw. Und als Daten kannst du doch genau deine Parameter etc. übergeben. Sprich das "Producer/Consumer"-Prinzip ist doch die erste Wahl. Oder habe ich hier irgendwo einen Knoten in der Denke?
(31.08.2012 13:16 )Falk schrieb: [ -> ]Synchronisiere doch beide Schleifen über einen (Notifier oder Queue). Die zweite parallel laufende Schleife wartet ja solange mit der Ausführung bis eine Notification eingetruddelt ist und läuft dann genau einmal durch. Anschließend wartet sie auf die nächste Notification usw. usw. Und als Daten kannst du doch genau deine Parameter etc. übergeben. Sprich das "Producer/Consumer"-Prinzip ist doch die erste Wahl. Oder habe ich hier irgendwo einen Knoten in der Denke?


Hallo,

der Knoten war wohl eher bei mir, hab mit dem Erzeuger-/Verbraucherprinzip mehr so zwei unabhängige Schleifen in Erinnerung, wobei die eine immer einen Stack vollädt und die andere diesen abarbeitet, die Geschwindigkeit beider Schleifen aber nicht synchron sein muss. Hat mit der Notification aber super geklappt und läuft wie geschmiert, Vielen Dank für den Tipp!
Hallo Felix,

schön dass ich helfen konnte. Aber mal vielleicht noch einen anderen Hinweis. Wenn ich es richtig verstehe laufen beide Schleifen mit der selben Rate? Falls ja warum überhaupt zwei Schleifen? Du kannst die Funktionalität beider Schleifen doch auch parallel in der einen zeitgesteuerten Schleife abbilden. Hierzu die Daten einfach in ein Shift-Register schieben und bei der nachfolgenden Iteration dann wieder lesen und beide Zweige eben parallel zueinander abarbeiten. Halt nur Sorge tragen dass beim 1. Durchlauf eben der eine Zweig (noch) nicht ausgeführt wird.

Schöne Grüße
Falk
(31.08.2012 22:22 )Falk schrieb: [ -> ]Hallo Felix,

schön dass ich helfen konnte. Aber mal vielleicht noch einen anderen Hinweis. Wenn ich es richtig verstehe laufen beide Schleifen mit der selben Rate? Falls ja warum überhaupt zwei Schleifen? Du kannst die Funktionalität beider Schleifen doch auch parallel in der einen zeitgesteuerten Schleife abbilden. Hierzu die Daten einfach in ein Shift-Register schieben und bei der nachfolgenden Iteration dann wieder lesen und beide Zweige eben parallel zueinander abarbeiten. Halt nur Sorge tragen dass beim 1. Durchlauf eben der eine Zweig (noch) nicht ausgeführt wird.

Schöne Grüße
Falk

Hallo,

ich fand es zunächst übersichtlicher eine getrennte Schleife zu Meßwerterfassung zu nehmen, hab das jetzt aber in der Tat so gemacht, dass alles in einer Schleife abläuft. Die Sache mit dem Notifier ist aber auf jeden Fall trotzdem nice to know Wink

Viele Grüße

Felix
Referenz-URLs