LabVIEWForum.de
Viele Schleifen = viel langsamer ???? - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Viele Schleifen = viel langsamer ???? (/Thread-Viele-Schleifen-viel-langsamer)



Viele Schleifen = viel langsamer ???? - sumnus - 04.01.2008 12:30

Hey leute,

ich hab folgendes problem: ich hab ein relativ komplexes programm, das die reaktionszeit messen soll. wenn ich die eingabe mit button simuliere dann funktioniert alles wunderbar. aber wenn ich die button durch externe schalter die mittels DAQ-Assistenten eingebunden sind, dann ist eine zeitliche verzögerung dabei und die versaut natürlich die ganze messung.
meine frage ist: wieso ergibt sich eine zeitverzögerung?
meiner meinung nach ist es entweder weil ich so viele schleifen habe (aber wieso gehts dann mit buttons einwandfrei?)
oder ist es weil das programm so lange braucht um den DAQ-Assistenten zu erkennen???

ich bin echt ratlos

hat jemand von euch eine idee??

Danke schon mal, mfg. sumnus


Viele Schleifen = viel langsamer ???? - Y-P - 04.01.2008 12:38

Lade das Programm doch mal hoch.....
So kann man gar nicht viel sagen....

Gruß Markus


Viele Schleifen = viel langsamer ???? - rolfk - 09.01.2008 10:54

' schrieb:Hey leute,

ich hab folgendes problem: ich hab ein relativ komplexes programm, das die reaktionszeit messen soll. wenn ich die eingabe mit button simuliere dann funktioniert alles wunderbar. aber wenn ich die button durch externe schalter die mittels DAQ-Assistenten eingebunden sind, dann ist eine zeitliche verzögerung dabei und die versaut natürlich die ganze messung.
meine frage ist: wieso ergibt sich eine zeitverzögerung?
meiner meinung nach ist es entweder weil ich so viele schleifen habe (aber wieso gehts dann mit buttons einwandfrei?)
oder ist es weil das programm so lange braucht um den DAQ-Assistenten zu erkennen???

ich bin echt ratlos

hat jemand von euch eine idee??

Danke schon mal, mfg. sumnus

Wahrscheinlich verwendest Du High Level Single Point reads um Deine externen Schalter einzulesen. Die öffnen jeweils einen Task, konfigurieren alles schön sauber und machen eine Read um dann alles wieder abzuschliessen. Viel Overhead um jedesmal wieder aufs Neue zu tun. Durch Verwendung der Intermediate Funktionen in denen die Erstellung und Konfiguration des Tasks, das Lesen und das Abschliessen auseinander gezogen wird und durch das Plazieren der Taskerstellung und des Abschliessens jeweils ausserhalb der Loop und nur die Leseoperation innerhalb wird das ganze wesentlich schneller.

Und wenn Du mehrere digitale Eingänge hast ist es wahrscheinlich auch so dass die alle am selben Port angeschlossen sind. Dann genügt es diesen Port einmal zu lesen und dann die verschiedenen Bits die Deinen Schaltern entsprechen aus diesem Wert herauszudekodieren, statt für jedes Bit die ganze Leseoperation immer wieder neu zu machen.

Rolf Kalbermatter