LabVIEWForum.de
Workaround für Schrittmotorsteuerung mit NI 6008 ?! - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ)
+---- Thema: Workaround für Schrittmotorsteuerung mit NI 6008 ?! (/Thread-Workaround-fuer-Schrittmotorsteuerung-mit-NI-6008)



Workaround für Schrittmotorsteuerung mit NI 6008 ?! - sthiemt - 15.03.2011 22:24

Hallo,
Ich habe folgendes Problem.
Ich will ein paar Schrittmotor ansteuern. Dazu habe ich leider keine schicke (und teuere) NI Schrittmotor Steuerkarte sondern (nur) eine NI 6008 und Endstufen die Takt (impuls) und Richtung haben wollen (TTL).
Das Problem ist ja alt bekannt: keine interne Taktgebung/Echtzeitumgebung/Clock auf der NI 6008! Anstatt mal ins Blaue nach Ideen zu Fragen, möchte ich die Ideen die ich habe kurz erläutern, und würde gern Rückmeldung darüber erhalten, was Sinn macht und was gehen könnte.

Also nochmal zusammengefasst:
Problematik NI 6008 bei Schrittmotoransteuung mit Takt/Richtung Endstufe
- Die Frequenzen die ich herausgeben kann sind nicht Stufenlos einstellbar (Metronom = 2ms -> 250Hz , 4ms -> 125Hz usw.)
- Bei 500Hz (Metronom = 1ms) ist Schluss

Lösungsidee 1
Ist es möglich über einen Digitalen Out in Rechtecksignal (high/low) herauszugeben, das f>1kHz bzw. stufenlos ist, also ohne jeden Impuls selber zu geben? (wenn ja WIE?)
Dann würde ich den Schrittmotor einfach über den Enable kanal der Karte an und aus Schalten. Zwar weiss ich dann nicht mehr ganz genau wo der Motor ist, aber das lässt sich iwie mit Aufenthaltwahrscheinlichkeiten regeln.

Lösungidee 2
Lässt sich über den analogen Ausgang ein Rechtecksignal f>1kHz erzeugen. (Wenn ja, wie?)
oder lässt sich hier zumindest eine stufenlose Frequenz erzeugen

Zusatzidee
Ich bin leider nicht ganz so vertraut mit der Karte. Aber gibt es nicht sogar einen Counter Port? An dem könnte ich das Signal was ich der Endstufe gebe doch zusätzlich abgreifen und so die Schritte mitzählen lassen?

Ich weiss: das sind alles Workarounds und sind für manche vielleicht haarsträubend. Aber das Projekt ist hier am Institut als super low budget eingestuft. Da muss man nehmen was man bekommt.... Wink



Vielen Dank im voraus
sthiemt


RE: Workaround für Schrittmotorsteuerung mit NI 6008 ?! - jg - 15.03.2011 22:43

Lösungsidee 1:
Kannst du gerne probieren, aber ob dann der Motor ruhig läuft, das möchte ich doch sehr bezweifeln.
Lösungsidee 2:
Nö, Analog-Out der 6008 hat ebenfalls nur Software-Timing, mit "nur" 150 S/s
Zusatzidee:
Die 6008 hat zwar eine Counter, aber nur als Input.

Zusammenfassung: Ja nette Ideen, aber NICHT zu empfehlen.

Mögliche Lösung: Eine spezielle Treiberkarter für deinen Schrittmotor, die du über RS-232 oder Digital-Ins und/oder Analog-Ins ansteuern kannst.

Gruß, Jens


RE: Workaround für Schrittmotorsteuerung mit NI 6008 ?! - sthiemt - 15.03.2011 23:11

Hallo Jens,
danke für die Antwort.

Warum genau würde der Rs232 Abhilfe verschaffen?

Ich habe gerade noch ein dritte Idee bekommen.
Wie wäre es, wenn ich über den analogen Ausgang ein IC steure, der eine Frequenz erzeugt (also einen VCO z.B, CMOS 14046B). Die Peaks der Ausgabe schicke ich dann einmal an den Treiber und einmal an den Counter? Dann weiss ich wie viele Schritte der motor verfahren ist und habe eine stabile frequenz... ?


RE: Workaround für Schrittmotorsteuerung mit NI 6008 ?! - snuz - 16.03.2011 08:11

Hallo stiehmt,

ich nutze den LPT Port bzw. momentan einen USB2LPT Konverter (Selbstbau), um einen Schrittmotor (Steuerkarte Selbstbau) anzusteuern. Die Regelung funktioniert somit stufenlos, nur ist die Impulsrate nicht ganz korrekt, da ich ja Windows nutze.

Gruß snuz


RE: Workaround für Schrittmotorsteuerung mit NI 6008 ?! - jg - 16.03.2011 09:47

(15.03.2011 23:11 )sthiemt schrieb:  Warum genau würde der Rs232 abhilfe verschaffen?
Wenn du eine Treiberplatine anschaffst, der du Befehle per (z.B. RS-232) schicken kannst (->Start/Stopp Motor, Verfahren...), dann hilft dir RS-232 auf jeden Fall.

Gruß, Jens

P.S.: Beim nächsten Beitrag bitte wieder sinnvoll die Shift-Taste einsetzen (vgl. LVF-Regeln). Solche SMS-Beiträge sind hier nicht erwünscht.


RE: Workaround für Schrittmotorsteuerung mit NI 6008 ?! - sthiemt - 16.03.2011 11:59

(16.03.2011 09:47 )jg schrieb:  Wenn du eine Treiberplatine anschaffst, der du Befehle per (z.B. RS-232) schicken kannst (->Start/Stopp Motor, Verfahren...), dann hilft dir RS-232 auf jeden Fall.
Ok. An sowas hab ich auch schonmal gedacht. Natürlich gibt es Karten, den z.B. man Anzahl der Schritte, Richtung und eine Rampe übergibt, und die dann mehr oder weniger autonom diesen Befehl ausführen.

In meinem Anwendungsfall soll der Schrittmotor aber einen Sinus fahren; d.h. die Geschwindigkeit ändert sich die ganze Zeit. Im Prinzip würde es mir ausreichen, wenn er zu Beginn 10Hz ausgäbe und dann hoch auf 200Hz hochgeht.

Wenn ich das mit einer Schleife realisieren würde, dann könnte ich das Metronom (Wait until next) auf 100ms einstellen (10Hz) dann auf 99 (10,1hz) ... 6ms (166Hz) , 5ms (200Hz).
Am Anfang kann ich schön langsam beschleunigen (∆f = 0,1Hz) jedoch wird es am Ende sehr "holperig" (∆f = 33Hz).

Schafft da die Software PWM Modulation abhilfe oder zumindest ein Verbesserung? Eine solche wird von NI direkt angeboten (hier)

Vielen Dank und Gruß
sthiemt


RE: Workaround für Schrittmotorsteuerung mit NI 6008 ?! - sthiemt - 16.03.2011 15:04

Danke für die Antworten bis jetzt.

Ich bin gerade immernoch dabei die Idee mit den VCO auf machbarkeit zu überprüfen. Jedoch ist mir dabei eingefallen, dass der Computer selbst ja ein ein Frequenzgenerator hat, nämlich die Soundkarte.
In Labview ist es ja auch kein Problem eine gewisse Frequenz zu erzeugen. Diese kann man dann ja mit ca. 10Hz updaten. So denke könnte ich eine Sinusbewegung relativ sauber hinbekommen.
Ich habe jedoch das Problem, dass ich 3 Motoren gleichzeitig steuern muss. Kann man über Labview Mehrkanalsoundkarten ansteuern?

Gruß
Sebastian