LabVIEWForum.de - Schrittmotor über PWM ansteuern

LabVIEWForum.de

Normale Version: Schrittmotor über PWM ansteuern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo zusammen,

ich würde gerne über LabView die Leistungselektronik eines Schrittmotors ansteuern. Ich arbeite mit LV 2015 und dem Gerät NI 6341 auf einem Windows 7 Rechner.

Die Leistungselektronik des Schrittmotors erwartet Signalpegel im Bereich von 3,5 bis 24V mit einer Dauer von mindestens 2us. Bisher habe ich über den DAQ-Assistenten ein simples VI erstellt, das im wesentlichen auch funktioniert, allerdings nicht die gewünschte Frequenz bereit stellt. Das simple VI erzeugt einen High- und Lowpegel von jeweils 5us innerhalb einer While-Schleife. Durch verschiedene Werte für die Funktion "Warten" habe ich die Frequenz gesteuert. Nun werden aber bei einer Wartezeit von 0s leider nur Pegel mit einer Frequenz von 20 Hz erzeugt, ich benötige aber 10 kHz.

Nachdem ich mich durch ein paar Bücher gearbeitet habe, habe ich versucht einen eigenen Task zu erstellen, der über einen Schieberegler die Frequenz der erzeugten Pulse steuert. Allerdings kommen keine Signale an meinem Ausgang an. Das Internet, Bücher und Kommilitonen konnten mir nicht helfen. Da es mein erstes LabView-Projekt ist, bin ich sicher, dass ich noch einige Anfängerfehler mache. Ich würde mich freuen, wenn sich das jemand ansehen könnte und mir einen Tip gibt.
Hallo Knödel,

häng doch dein VI mal in LV2014 an (oder als Snippets)…

Deine 6341 kann PWM-Signale generieren, hast du schon mal die mit LabVIEW/DAQmx mitgelieferten Beispiel-VIs dazu ausprobiert?
Hallo Gerd,

mit dem Beispiel "kontinuierliche Ausgabe" unter "Zählergestützte Ausgabe" funktioniert es soweit ganz gut. Allerdings muss ich jetzt die Ausführung unterbrechen und neu starten, wenn ich Werte der Frequenz ändere um die Umdrehungsgeschwindigkeit des Motors zu beeinflussen. Was muss ich noch ändern, damit die Werte während des Betriebs geändert werden können und auch wirksam sind?
Hallo Knödel,

Zitat:Was muss ich noch ändern, damit die Werte während des Betriebs geändert werden können und auch wirksam sind?
Wenn man etwas während des Programmlaufs ändern (können) will, sollte man dieses in einer Schleife erledigen, die die Benutzereingaben abfragt. Du verwendest zwar eine Schleife, dort werden aber keine Benutzereingaben abgefragt…
Hilfreich wäre es auch, wenn die geänderten Frequenzwerte auch per DAQmxWrite der Hardware mitgeteilt würden!
Hallo Jens,

ich habe mich durch den Thread gelesen und bin auf eine Lösung gekommen, die super funktioniert. Danke dafür. Ich habe dazu nur noch eine Frage. Mit welchem Takt arbeitet das Programm jetzt? Unter DAQmx Timing ist "implizit" ausgewählt. Was hat es damit auf sich?

Gruß Kevin
Hallo Knödelmann,

Zitat:Mit welchem Takt arbeitet das Programm jetzt?
Die Schleife läuft im 100ms-Takt, hast du doch so programmiert.
Die Ausgabe neuer PWM-Werte hängt von deiner Frequenz ab: es kann nur nach Ablauf eines kompletten Pulses ein neuer Wert ausgegeben werden.

Zitat:Unter DAQmx Timing ist "implizit" ausgewählt.
Das "implizit" bedeutet, dass die Ausgabe davon abhängt, welche Frequenz du vorgibst: Über die PWM-Frequenz wird die Ausgabe-Rate gesteuert…
Hallo Gerd,

gibt es die Möglichkeit, Standardwerte beim Starten der Ausführung fest zu legen? Ich würde zum Beispiel gerne bei der Frequenz standardmäßig 20 Hz ausgewählt haben, sodass bei jeder Ausführung 20 Hz voreingestellt sind.
(16.12.2015 17:14 )Knödelmann schrieb: [ -> ]Hallo Gerd,

gibt es die Möglichkeit, Standardwerte beim Starten der Ausführung fest zu legen? Ich würde zum Beispiel gerne bei der Frequenz standardmäßig 20 Hz ausgewählt haben, sodass bei jeder Ausführung 20 Hz voreingestellt sind.
20 in dein Frequenz Control Element eintragen -> Rechtsklick -> Make Current Value Default. Dann VI speichern. Fertig.

Gruß, Jens
Jetzt habe ich den Wert als Standard, wenn ich das VI öffne. Ich hätte es aber auch gerne so, dass ich auf "Ausführen" klicke, die Frequenz ändere auf beispielsweise 100 Hz, dann "Ausführung abbrechen" klicke und beim nächsten klick auf "Ausführen" wieder von alleine 20 Hz im Feld "Frequenz" stehen.
Seiten: 1 2
Referenz-URLs