LabVIEWForum.de - DAQ While-Schleifen Problem

LabVIEWForum.de

Normale Version: DAQ While-Schleifen Problem
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen, Big Grin

Ich bin neu im Forum und hoffe, dass ich hier richtig bin.2hands
Erstmal Informationen zu meinem Vorhaben. Ich will mit LabVIEW einen Frequenzumrichter realisieren. Als Hardware verwende ich das cDAQ-9172 Chassis und als Ausgangsmodul das NI9474. Damit steuere ich die IGBTs des Smart Power Moduls FSAM15SH60A an.
Zur Software: Das Programm erzeugt eine PWM (Pulsweitenmodulation) mittels Sinus Dreieckvergleich. Ich bin bereits soweit, dass mein Programm läuft und ich auch mittels Oszi meine Rechteckimpulse messen kann, zu sehen auf den Bildern im Anhang.
Nun zu meinem Problem: Ich möchte dass das Programm vortlaufend ausgeführt wird und ich ohne auf stop drücken zu müssen meine Sinus und Dreieck Werte ändern kann. Mein Ansatz war der den DAQ Task in eine While-Schleife zu tun und über das ganze Programm noch eine While-Schleife. Jetzt läuft zwar das Programm vortlaufend aber ich muss immer erst meine Werte im Frontpanel eingeben und dann auf "ändern" klicken und dann übernimmt er die neuen Werte. Leider hab ich dadurch natürlich auch die Stop Funktion der zweiten While-Schleife ausgehebelt. Somit kann ich jetzt das Programm nicht mehr stoppen.

Kann mit bitte jemand helfen dieses Problem zu lösen.Guru1 Ich hoffe ich habe alles ausreichend beschrieben.

Viele Grüße
xxmoritzon360xx
Hallo moritz,

bist du dir sicher, dass du den DAQmx-Task in jeder Iteration erneut erstellen, konfigurieren und löschen musst?
Wird das in den mit LabVIEW mitgelieferten Beispiel-VIs so gezeigt?

Ansonsten: Viva la ExpressVI! Big Grin
Danke für deine schnelle Antwort.Smile

Naja des Problem ist das ich die Werte während des Betriebs ändern will. Sobald ich die Schleifen entferne läuft das Programm und ich kann die Werte für Sinus und Dreieck nicht mehr ändern.
Das mit dem ExpressVI hab ich noch nicht probiert.

Gibt es eine Möglichkeit das LabVIEW eine Eingabe während des laufenden Betriebs erkennt und anschließend die Integration neu durchführt?

Viele Grüße
xxmoritzon360xx
Dein VI besteht (fast) nur aus Express-VIs. Blink

Gruß Markus

(05.03.2014 17:39 )xxmoritzon360xx schrieb: [ -> ]Das mit dem ExpressVI hab ich noch nicht probiert.
Hallo moritz,

Zitat:Gibt es eine Möglichkeit das LabVIEW eine Eingabe während des laufenden Betriebs erkennt
Macht doch dein VI schon: THINK DATAFLOW! (Zumindest die äußere Schleife erfüllt den DATAFLOW - und die innere brauchst du nicht.)

Zitat:und anschließend die Integration neu durchführt?
Welche Integration? In deinem Bild ist keine zu sehen…
Danke erstmal für eure Antworten.Big Grin

Zitat:Macht doch dein VI schon: THINK DATAFLOW! (Zumindest die äußere Schleife erfüllt den DATAFLOW - und die innere brauchst du nicht.)
Wenn ich die innere Schleife entferne dann rechnet labview ständig. Das lastet meinen PC ziemlich aus und das Pulsmuster am Oszi ist nur ein paar Millisekunden an dann kurz aus dann wieder an. Es ist also nicht mehr durchgehend. Mein Ziel ist es ja, dass solange ich im laufenden Betrieb nichts verändere, mein Muster konstant ausgegeben wird und sobald ich einen neuen Wert für Frequenz oder Amplitude vom Dreieck oder Rechteck ändere ein neues Muster erzeugt wird.

Ich hoffe man versteht was ich meine Unsure

Viele Grüße
xxmoritzon360xx
Hallo moritz,

Zitat:Wenn ich die innere Schleife entferne dann rechnet labview ständig.
Wenn du willst, das ein Programm nicht ständig rechnet, dann musst du das programmieren! Gut und gern genutzt werden dann Wartezeiten…

Zitat:das Pulsmuster am Oszi ist nur ein paar Millisekunden an dann kurz aus dann wieder an.
Sowas soll schon mal vorkommen, wenn man in der Schleife ständig DAQmx-Task erstellt, konfiguriert, einmal ausführt und dann gleich wieder löscht…
Hast du dir schon mal die ganzen DAQmx-BeispielVIs im Beispielfinder angeschaut? Wird das dort so vorgemacht?
Referenz-URLs