LabVIEWForum.de
For Schleifen parallel - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: For Schleifen parallel (/Thread-For-Schleifen-parallel)



For Schleifen parallel - Kova - 23.11.2010 09:48

Hallo!

Ich habe ein kleines Problem bei einem Projekt das ich gerade mache.
Ich hab versucht zwei For schleifen parallel auszuführen. Das sind quasi 2 unterschiedliche Marker die ich bewege und wenn ich Sie parallel laufen lassen könnte würden sich bei mir die Fehler beim abtasten erheblich verkleinern!

Ich hänge einfach mal mein VI an und ich hoffe Ihr habt einpaar Ideen.
Es handelt sich um die zwei kleinen For Schleifen in der Mitte des VIs.

Vielen Dank im Voraus an alle!


LABVIEW 2009


For Schleifen parallel - GerdW - 23.11.2010 09:57

Hallo Kova,

dann mach sie doch parallel!

Momentan sind die beiden Schleifen über die diversen Drähte (ErrorCluster, VISA) doch datenflußgesteuert serialisiert. Das musst du ändern!

Durch die ganzen fehlenden subVIs kann man natürlich schlecht beraten, was so an Datenabhängigkeiten etc. vorhanden ist... Beispiel: Der Abort-Button in der ersten FOR-Loop wird ja an die zweite Loop weitergereicht: diese läuft dann entweder komplett durch oder wird nach der ersten Iteration beendet. Hier könnte evtl. auch eine Case-Struktur für Klarheit sorgen. Evtl. könnte man auch beide For-Loops zu einer zusammenfassen, falls beide auf den gleichen Abort-Button hören sollen. Eine Parallelisierung der Abarbeitung könnte auch möglich sein (Rechtsklick auf Loop-Rahmen, Properties der FOR-Loop einstellen).

Diesen Abort-Button dann außerhalb (in der äußersten Schleife) per expliziter Referenz/PropertyNode (warum keine Property des Buttons?) abzufragen ist aber auch Overkill, hier würde auch eine lokale Variablen möglich sein (Vorteil: schneller, da kein Threadwechsel).


For Schleifen parallel - Kova - 23.11.2010 10:02

Ich hab leider null Ahnung wie ich das machen könnteBig Grin
Kannst du mir Helfen und ein Bsp posten?
Ich wäre die sehr dankbar!

Gruß,
Armin


For Schleifen parallel - GerdW - 23.11.2010 10:06

Hallo Kova,

Datenfluß-Abhängigkeiten verhindern bisher paralleles Abarbeiten, mach es eher so:
[attachment=30789]
Immer vorausgesetzt, es ergeben sich keine Abhängigkeiten durch die subVIs (die ich, wie schon erwähnt, nicht beurteilen kann). Die VISA-Zugriffe können(/werden) sich natürlich gegenseitig beeinflussen/stören, aber das kannst du wohl besser als ich überprüfenSmile


For Schleifen parallel - Andora - 23.11.2010 10:09

Hallo Kova,

' schrieb:dann mach sie doch parallel!

auch mein Vorschlag und anbei mein Beispiel.

Lv09_img2


da war GerdW schneller Smile


For Schleifen parallel - Kova - 23.11.2010 10:48

Hallo!

So eine Ausführung habe ich mir schon gedacht. Das Problem ist nur das sich die Marker nur setzten, aber nicht bewegen und werte aufnehmen.


For Schleifen parallel - GerdW - 23.11.2010 10:55

Hallo Kova,

Zitat:aus Beitrag #4: Die VISA-Zugriffe können(/werden) sich natürlich gegenseitig beeinflussen/stören,
Du versuchst, parallel auf eine Ressource zuzugreifen. Das könnte gutgehen - wird es aber in den meisten Fällen eher nicht... Wenn dein Gerät abwechselnd irgendwelche Befehle gesendet bekommt, kommt es schnell mal durcheinander: soll ich jetzt Marker setzen oder doch noch einen alten Wert zurücksenden?


For Schleifen parallel - Kova - 23.11.2010 11:01

Genau das ist das ProblemBig Grin
Es hängt auch sehr viel vom Abort Button ab. Es bestimmt die Reihenfolge des Ablaufes.
Gibt es eine andere Möglichkeit das euch vielleicht einfällt?

Danke auf jeden Fall!


For Schleifen parallel - GerdW - 23.11.2010 11:05

Hallo Kova,

schon mal in mein Bild oben geschaut? Lokale Variable beachten...
Der Abort-Button bestimmt nicht die Reihenfolge des Ablaufs, sondern nur, ob früher abgebrochen wird!

Alternativ:
FOR-Loops zusammenfassen und die Marker nacheinander setzen und passende Werte lesen. Aber das ist alles Rumstochern im Nebel, da du nichts zum Messgerät verraten hast...


For Schleifen parallel - Kova - 23.11.2010 11:13

Ich habe die Lokale Var schon beachtet.
Meine Marker bleiben halt aber nur stehen.
Sie werden nur gesetzt. Was interessiert dich denn genau? Auf dem anderen VIs sind nur die Parameter gesetzt, sonst nichts.