LabVIEWForum.de
Erzeugung der Pulse mit NI USB 6002(DAQmx) - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ)
+---- Thema: Erzeugung der Pulse mit NI USB 6002(DAQmx) (/Thread-Erzeugung-der-Pulse-mit-NI-USB-6002-DAQmx)

Seiten: 1 2


Erzeugung der Pulse mit NI USB 6002(DAQmx) - Felix777 - 07.08.2015 23:02

Hallo zusammen,

wie könnte ich mit der NI USB 6002 Karte an den digitalen Ausgängen PWM-Pulse für einen Servo-Motor generieren? Eine Lösung für analoge Ausgänge habe ich gefunden:

http://www.ces.karlsruhe.de/culm/culm/culm2/th_messtechnik/sensoren/servo.pdf

Bei der Lösung wird eine Basic Finction Generator.vi verwendet. Die Lösung passt mir aber nicht ganz, weil meine Karte nur 2 analoge Ausgänge hat und ich brauche 7 Servos anzusteuern. Deswegen möchte dafür digitale Ausgänge verwenden.

Ich dachte, dass man für digitale Ausgänge auch eine Signalform erzeugen und an DAQmx Write Digital Output .vi übergeben könnte. Bei digitalen Ausgängen funktioniert es aber so nicht. Sad(

Fast alle Beispiele im Netz verwenden für die Puls Erzeugung einen Clock oder Timebase.

Die Karte hat folgende Daten:

COUNTER

Number of counters 1
Resolution 32-bit
Counter measurements Edge counting, rising or falling
Counter direction: Count up
Counter source PFI 0 or PFI 1
Maximum input frequency 5 MHz
Minimum high pulse width 100 ns
Minimum low pulse width 100 ns

TIMEBASE
Timebase frequency 80 MHz
Timebase accuracy ±100 ppm
Timing resolution 12.5 ns

Was und wie kann ich für die Puls-Erzeugung verwenden? Würde dafür Timebase passen oder brauche ich einen externen Counter?


RE: Erzeugung der Pulse mit NI USB 6002(DAQmx) - jg - 08.08.2015 08:33

Lies dir die Specs deiner Karte durch, z.B. hier und dann unter "Spezifikationen":

Deine DOs kannst du nur mit Softwaretakt schalten (also immer nur 1 Wert aus deinem Programm heraus), und der Counter dieser Karte kann auch keine Pulserzeugung.

Diese Karte ist zur Erzeugung von vielen PWM-Signalen einfach nicht geeignet.

Gruß, Jens


RE: Erzeugung der Pulse mit NI USB 6002(DAQmx) - Felix777 - 08.08.2015 09:42

(08.08.2015 08:33 )jg schrieb:  Diese Karte ist zur Erzeugung von vielen PWM-Signalen einfach nicht geeignet.

Das ist mir schon längst klar, nur leider momentan habe ich keine andere Wahl. Ich MUSS mit dieser Karte "tricksen". Sad

(08.08.2015 08:33 )jg schrieb:  Deine DOs kannst du nur mit Softwaretakt schalten (also immer nur 1 Wert aus deinem Programm heraus), und der Counter dieser Karte kann auch keine Pulserzeugung.

Wäre es möglich einen externen Counter anzuschließen und über diesen einen Counter alle digitale Outputs steuern?

Ich würde mich sehr freuen, wenn ihr mir bei zwei Punkten helfen könnt:

1) Wie kann man die Karte ergänzen(externer Counter oder so), damit die eigener Masen irgendwie funktioniert.

2) Welche andere minimale Lösung bzw. Karte würde passen, damit es wirklich gute PWM-Pulse erzeugen kann. Also, die Gesamtpulsbreite(high und low) ist 20 ms , die high Pulse sind: 0,5 ms (rückwärts Fahren), 2,4 ms (vorwärts Fahren), 1,5 ms (stehen bleiben).

So wie ich verstehe, ich bräuchte eine Karte mit einem schnellen Counter auf dem Board.

Ich möchte mich entschuldigen, ich weiß, dass manche meine fragen zu doof sind Wink Ich habe aber leider nicht so viele Erfahrungen mit NI Hardware.

Danke im Voraus für eure Hilfe.


RE: Erzeugung der Pulse mit NI USB 6002(DAQmx) - GerdW - 10.08.2015 08:31

Hallo Felix,

Zitat:Ich MUSS mit dieser Karte "tricksen".
Deine Arbeitszeit scheint sehr preiswert zu sein: Was du an Aufwand reinsteckst, wäre in einer "normalen" Firma kaum möglich/sinnvoll…

Zitat:1) Wie kann man die Karte ergänzen(externer Counter oder so), damit die eigener Masen irgendwie funktioniert.
Man kann ein externes Gerät verwenden, welches vernünftig PWM-Signale ausgeben kann. Ich verwende gern die Boxen der Firma MicroControl! (Die verlangen aber eine CAN(open)-Anbindung…)
Wahrscheinlich gibt es aber auch Geräte, die sich per RS232 oder LAN ansteuern lassen!
Alternative: 3 weitere USB6002 mit zusammen 6 AOs… Big Grin

Zitat:Also, die Gesamtpulsbreite(high und low) ist 20 ms , die high Pulse sind: 0,5 ms (rückwärts Fahren), 2,4 ms (vorwärts Fahren), 1,5 ms (stehen bleiben).
Du brauchst also 50Hz Grundfrequenz mit einer Einstellgenauigkeit von 0.1ms=10kHz oder 0.5% der Grundfrequenz. Die MicroControl-Boxen können das, deine USB6002 nicht!

Zitat:Ich habe aber leider nicht so viele Erfahrungen mit NI Hardware.
Dann ruft man in München an und lässt sich beraten…


RE: Erzeugung der Pulse mit NI USB 6002(DAQmx) - jg - 10.08.2015 09:04

(10.08.2015 08:31 )GerdW schrieb:  
Zitat:Also, die Gesamtpulsbreite(high und low) ist 20 ms , die high Pulse sind: 0,5 ms (rückwärts Fahren), 2,4 ms (vorwärts Fahren), 1,5 ms (stehen bleiben).
Du brauchst also 50Hz Grundfrequenz mit einer Einstellgenauigkeit von 0.1ms=10kHz oder 0.5% der Grundfrequenz. Die MicroControl-Boxen können das, deine USB6002 nicht!
Das wären nur 19 Schritte - so ein Servo kann doch mehr. Smile

Gruß, Jens


RE: Erzeugung der Pulse mit NI USB 6002(DAQmx) - GerdW - 10.08.2015 09:12

Hallo Jens,

wo sind da "nur 19 Schritte"?

Der OP will ein 50Hz-PWM-Signal mit einem Duty von entweder 2.5%=rückwärts, 7.5%=stehen oder 12.0%=vorwärts ausgeben. Also muss er das Duty in 0.5%-Schritten einstellen können: das entspricht einer zeitlichen Auflösung von 0.1ms.
So interpretiere ich jedenfalls die doch sehr exakt wirkende Anforderung…


RE: Erzeugung der Pulse mit NI USB 6002(DAQmx) - jg - 10.08.2015 09:46

Offtopic2
Beim PDF-Link geht es doch um Modellbau-Servos. Die Länge des HIGH-Signals entspricht dann einer Position des Servos. Bei 0,1 ms Auflösung und Signallängen von 0,5-2,4 ms entspricht das (ok, Denkfehler) 20 Positionen. Falls wirklich nur exakt die angesprochenen 3 Werte angesteuert werden müssen, dann hast du Recht, aber die Erfahrung besagt etwas anderes. Wink Darauf wollte ich nur hinweisen.

Gruß, Jens


RE: Erzeugung der Pulse mit NI USB 6002(DAQmx) - Felix777 - 10.08.2015 20:15

(10.08.2015 09:04 )jg schrieb:  Das wären nur 19 Schritte - so ein Servo kann doch mehr. Smile

Das sind noch weniger Schritte. Heute habe genau getestet. Abgelehnt

..also, ich brauche definitiv eine viel viel bessere Alternative.


RE: Erzeugung der Pulse mit NI USB 6002(DAQmx) - jg - 10.08.2015 20:31

Was hast du (vor allem) wie getestet?

Gruß, Jens


RE: Erzeugung der Pulse mit NI USB 6002(DAQmx) - Felix777 - 10.08.2015 20:59

(10.08.2015 09:46 )jg schrieb:  Offtopic2
Beim PDF-Link geht es doch um Modellbau-Servos. Die Länge des HIGH-Signals entspricht dann einer Position des Servos. Bei 0,1 ms Auflösung und Signallängen von 0,5-2,4 ms entspricht das (ok, Denkfehler) 20 Positionen.

Bei 2,4 ms bleibt der Servo stehen, bei 1,5 ms (stehen bleiben, laut Definition), bei 0,6 ms hat der Servo Problemen und knistert.