For-Schleife verfälscht Array-Inhalt - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: For-Schleife verfälscht Array-Inhalt (/Thread-For-Schleife-verfaelscht-Array-Inhalt) |
For-Schleife verfälscht Array-Inhalt - NafeZ - 20.05.2009 09:42 Moin moin, ich habe ein VI geschrieben mit dem man analoge und digitale Signale, an einem USB-Gerät, ausgeben können soll. Nun habe ich alle Parameter in Cluster unteilt. Ein Cluster beinhaltet mögliche Ausgänge (16x Checkbox), ein weiteres einstellbare Frequenzen (16xTextring) usw. In meiner Vorstellung ist es nun so, dass ich das Cluster in ein Array umwandle und in einer Schleife durchlaufe. Da wo die Checkbox angewählt ist (CaseStruktur) soll dann ein Signal auf den entsprechenden Kanal und mit der eingestellten Frequenz generiert werden. Es soll also pro Schleifendurchlauf ein, je nach Index, ensprechender Kanal mit einem Signal gespeist werden. 1. Frage: Ist das generell möglich? Nun zu meinem eigentlichen Problem, wenn Frage 1 mit einem ja beantwortet werden kann ... Wenn ich das VI starte und eine Probe mache (bspw. für Digitalausgabe), dann stehen im Cluster die Werte, die ich im Frontpannel eigegeben habe korrekt drin. Die Feldwerte stimmen mit den Clusterwerten auch überein (nach Konvertierung). Sobald das Wire aber die Schleife betritt, werden die Feldwerte "False" oder "0". 2. Frage: Was stimmt da nicht? 3. Frage: Ist mein Ansatz für die Hardwareansteuerung (DAQmx) einigermaßen richtig? VI-Version 8.51[attachment=18580] For-Schleife verfälscht Array-Inhalt - Achim - 20.05.2009 10:38 Das boolesche Array, das du über das Schiebregister und dann in die Schleife führst, hat beim ersten Durchlauf null Elemente...darum wird die FOR-Schleife null mal ausgeführt, egal was sonst noch angeschlossen ist! Du musst das SR initialisieren! Die HW-Ansteuerung würde ich so machen: 1. Vor der While-Schleife "Channel genrieren" 2. In der While-Schleife, Iteration=0: "Task starten" 3. In der While-Schleife, Iteration=0...n: "Output" 4. Nach der While-Schleife: "Stop Task" + "Clear Task" ...und eigentlich sollte der Output nur neu geschrieben werden, wenn sich was verändert (Frequenz etc), ansonsten macht die HW die Generierung automatisch fortlaufend! Und was soll das Metronom in der FOR-Schleife bewirken? SW-Timing für die HW-Ausgabe? Wenn ja: Das ist UNGENAU! Gruß Achim For-Schleife verfälscht Array-Inhalt - NafeZ - 20.05.2009 12:34 ' schrieb:Das boolesche Array, das du über das Schiebregister und dann in die Schleife führst, hat beim ersten Durchlauf null Elemente...darum wird die FOR-Schleife null mal ausgeführt, egal was sonst noch angeschlossen ist! Du musst das SR initialisieren! Danke für deine schnelle Antwort schonmal! zu 1. bis 4. : so? [attachment=18586] LV 8.5.1 Zu dem Metronom. Das diente eigentlich dazu die LEDs im ensprechenden Takt blinken zu lassen (je nach dem wie eingestellt). Dafür sollten auch die Schieberegister dienen. Ich hab das wo abgeguckt und dann einfach mal probiert. For-Schleife verfälscht Array-Inhalt - Lucki - 20.05.2009 14:25 Habe mir das Vi mal angesehen, gehe aber jetzt nicht auf das Problem und die Diskussion ein. Möchte nur ein Tip loswerden: so viele Eigenchaftsknoten sollte man nicht in der zeitkritischen Hauptschleife platzieren. Hier die Alternative. (Die alten Fehler wurden von mir nicht korrigiert) [attachment=18593] For-Schleife verfälscht Array-Inhalt - NafeZ - 25.05.2009 11:55 Danke Lucki. Ist zwar erstmal spanisch, aber scheint ja perfomanter zu sein. Es wäre nett, wenn sich zur Signalausgabe nochmal jemand äußern würde. Die Version von Lucki ist auch meine aktuelle. |