Guten Tag zusammen,
ich steh gerade auf dem Schlauch. Ich hab ein Vi welches mir einen regelmäßigen Impuls mit einer For-Schleife erzeugt. Überprüfen lässt es sich über ein Kurvendiagramm und ein Boolsches Anzeigeelement. Soweit so gut wie gewünscht. Nun hab ich eine While-Schleife drum herum gelegt für die dauerhafte ausführung. In der While Schleife soll nun mein DAQ Schreiben mit "Digital 1D Bool 1 Kanal 1 Sample" den Wert des Impulses bekommen (wie als ob er in der For-Schleife ist). Nur ich bekomm den Boolschen Wert nicht aus der For-Schleife. Ich hab schon induzierte Tunnel benutzt aber ohne Ergebnis.
ich würde mich freuen, wenn jemand einen Tipp hat. Das Vi ist angehängt
Vielen Dank
Hallo MR,
du schreibst "Dieser Wert wird benötigt" - aber sagst nicht, aus welcher Iteration!?
Du generierst in der FOR-Loop 50mal einen boolschen Wert und erzeugst damit (auf IMHO falsche Art und Weise) ein Array.
Welchen dieser 50 Werte benötigst du denn außerhalb der FOR-Loop?
Und warum holst du dir diesen Wert nicht einfach aus dem Array?
Ich gehe mal davon aus, dass du jeden dieser 50 Werte außerhalb der Schleife benötigst - und zwar parallel zur FOR-Loop!
Lösung: du solltest die FOR-Loop nicht in die While-Loop packen, sondern parallel dazu! THINK DATAFLOW!
Hallo Gerd,
ich benötige lediglich die steigende bzw. obere Flanke des Impulses, die anderen Daten wie Schleifendurchläufe, Tastgrad und Zykluszeit leg ich als Konstante fest. Der Sinn der Gechichte ist, dass ich eine Pulsweite bekomme und damit über Digital Out ein Impulssignal erzeuge (weil ich leider keine Karte mit Counter Funktion zur Verfügung habe...). Allerdings verarbeite ich noch andere DO in meinem Main Programm. Die Pulsweiten Modellierung soll als SubVi periodisch den Wert 1 an die das DAQmx-Schreiben weiter geben, quasi so als ob jemand ein Boolsches Bedienelement periodisch betätigt. Ich hoffe man kann es verstehen

. Das VI ist von der NI Seite aber ich kann das DAQmx-Schreiben in der For-Schleife nicht umgehen. Das ist das Problem. ich hätte gerne eine Trennung
Vielen Dank
Gruß Mario
Hallo MR,
Zitat:Allerdings verarbeite ich noch andere DO in meinem Main Programm. Die Pulsweiten Modellierung soll als SubVi periodisch den Wert 1 an die das DAQmx-Schreiben weiter geben, quasi so als ob jemand ein Boolsches Bedienelement periodisch betätigt.
Du willst also mehrere Schleifen parallel arbeiten lassen und zwischen den Schleifen Daten austauschen: das hört sich noch einer grundlegenden Aufgabe für einen LabVIEW-Programmierer an…
Im einfachsten Fall schreibst du in deiner PWM-Schleife den aktuellen Zustand in eine globale Variable und liest diese Variable in deiner DO-Schleife aus. Das Problem dabei ist nur die zeitliche Abstimmung beider Schleifen, die halt stark von den Taktraten der beiden Loops abhängt. Andere, evtl. "schönere" Alternativen bieten Notifier oder Queues…
Hallo Gerd,
ja da hast du recht, eigentlich nur Daten zwischen zwei Schleifen austauschen
Ich denke du hast recht mit dem Problem der Taktraten. Die PWM taktet ganz anders als die While-Schleife der anderen Daten. Da werde ich um Queues wohl nicht herum kommen.
Vielen Dank für deine Zeit
Gruß Mario
Hallo MR,
Zitat:Die PWM taktet ganz anders als die While-Schleife der anderen Daten. Da werde ich um Queues wohl nicht herum kommen.
Deine DO-Schleife sollte schneller laufen als die PWM-Schleife. Und ich würde eher Notifier als Queues für diese Aufgabe nehmen…