LabVIEWForum.de
Zeitgesteuerte Schleife - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Zeitgesteuerte Schleife (/Thread-Zeitgesteuerte-Schleife)



Zeitgesteuerte Schleife - Jontef - 02.02.2011 15:42

Hi Leute,

ich habe da nochmal wieder ein anliegen.

Und zwar geht es um Zeitgesteuerte Schleifen.

Ich möchte zwei Zeitgesteuerte Schleifen parallel laufen lassen. Das funktioniert auch so weit wenn ich die mit dem selben Takt versehen.
Jetzt aber zu meinem Problem:
Mit diesen beiden Schleifen möchte ich folgendes erreich:
1. Schleife soll kontinuierliche Berechnung von Werten mit festen Takt durchführen
2. Schleife soll diese Berechneten Werte übernehmen und mit dem selben Takt weiterverarbeiten.
Dabei stelle ich mir das so vor, dass die erste Schleife im ersten Zyklus einen Wert berechnet und diese dann erst im zweiten Zyklus der zweiten Schleife zur Verfügung gestellt wird. Wie kann ich sowas erreichen?
Mit Queues und Meldern komme ich da gerade irgendwie nicht weiter. Die geben den Wert ja sofort weiter, sobald dieser zur Verfügung steht. Das heisst, der Wert kann noch im selben Takt von der zweiten Schleife verarbeitet werden, was aber nicht soll. Diese sollen also quasi um einen Taktzyklus verschoben arbeiten.
Hat da jemand eine Idee?

Danke schonmal

Gruß


Zeitgesteuerte Schleife - GerdW - 02.02.2011 16:09

Hallo Jontef,

Idee:
- beide Schleifen synchronisieren - dafür gibt es eine extra Funktion für die TimedLoops
- in erster Schleife Daten per Queue/Melder verschicken
- in zweiter Schleife Daten empfangen und per ShiftRegister in die nächste Iteration verschieben - und erst dann verarbeiten!

Über das Shiftregister erreichst du leicht eine Verschiebung der Daten in die nächte Iteration...


Zeitgesteuerte Schleife - Jontef - 02.02.2011 16:12

Ok, wie schon so oft ist mir beim schreiben des Problems wieder eine Lösung eingefallen:-)

Ich lasse die zweite Schleife einfach um eine Periode verzögert starten und entnehmen dann erst die Werte aus eine Queue. Also in der ersten Schleife wird ein element in die Queue angefügt und in der zweiten dann heraus geholt und das um eine Schleifenperiode versetzt.

Hab das programm mal angehängt falls es jemanden interessiert. Vielleicht hat ja jemand auch noch eine andere Idee !?

Gruß