LabVIEWForum.de
4 Schrittmotore einzeln ansteuern mit USB-6229 - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ)
+---- Thema: 4 Schrittmotore einzeln ansteuern mit USB-6229 (/Thread-4-Schrittmotore-einzeln-ansteuern-mit-USB-6229)



4 Schrittmotore einzeln ansteuern mit USB-6229 - Surfcony - 06.05.2010 21:44

Hallo liebes LabVIEWforum,


als LabVIEW Anfänger beschäftige ich mich nun schon seit einigen Wochen damit, 4 Schrittmotore gleichzeitig mittels eines LabVIEW-Vis anzusteuern. Jeder Motor hängt an einer Schrittmotorendstufe (SMC11 von Nanotec), die wiederum einzeln die Signale für Takt, Richtung, An-Aus etc. empfängt.
Diese Signale sollen mit einer NI USB-6229 und LabVIEW 2009 erzeugt werden. Am geeignetsten wären dabei die digitalen Signale (TTL), da hier die ausgegebenen Spannungen mit den zu empfangen Schaltsignalen der Schrittmotorendstufen übereinstimmen.
Die einfachen Schalter für Richtung, An-Aus habe ich recht schnell realisiert bekommen, das läuft soweit. Beim Taktsignal für die Motoren beiße ich mir aber die Zähne ausAngry. Es muss ein einfaches Rechtecksignal sein, der kleine Wert 0V, der große 5V.

Laut meinen Recherchen im Internet und auch hier im Forum ist eine Softwareschleife zur Taktgenerierung in LabVIEW nur bis 1000Hz geeignet und auch recht ungenau bzw. rechnerabhängig. Eine solche Schleife für die 4 Motoren habe ich als Notlösung in Form einer timed-loop.

Besser wäre jedoch eine countergestütze Taktgenerierung. Das versuche ich nun schon seit einiger Zeit hinzubekommen, bin bisher aber gescheitert. Die Anforderungen sind wie folgt:
- Die Anzahl der Takte soll für jeden der vier Motore einzeln bestimmbar sein
- Ausgabe der Takte an 4 verschiedene Digitalausgänge auf der Karte (müssen aber nicht zwingend die digitalen sein, wem was mit den 4 vorhandenen Analogausgängen einfällt, immer her damitWink)
- Die Frequenz/Geschwindigkeit der Takte kann für alle 4 gleich sein

Für einen einzelnen Motor habe ich das (Ausgang festlegen, Pulszahl und Frequenz festlegen) anhand der Beispiele hier im Forum bzw. im Examplefinder durchaus geschafft, siehe Anhang. Mein Problem ist den Code auf 4 Motore / 4 Ausgänge zu erweitern:
- Kopiere ich den Programmablauf mehrmals in dasselbe VI (ausgehend von einem Counter) sind die Resourcen belegt (DAQmx Start Task wird mehrmals parallel ausgeführt)
- Lasse ich über die DAQmx Channel Property Node auf mehrere Ausgangsterminals schreiben, wird dort jeweils dieselbe Anzahl von Pulsen ausgegeben. Die Anzahl der Pulse kann ich nur für alle 4 gleichzeitig ändern.
- Einfügen einer DAQmx Timing Node hinter der Channel Property Node führte leider auch nicht zum Erfolg, da hier anscheinend nur der gesamte Channel beeinflusst wird und nicht die vorher definierten Ausgangsterminals einzeln.

Gibt es irgendwie eine Möglichkeit mit der USB-6229 die 4 Digitalausgänge einzeln coutergestützt mit Pulsen zu versorgen und die jeweilige Pulsanzahl der vier Kanäle getrennt voneinander festzulegen?
Kann man eventuell die DAQmx Channel Property Node irgendwie mit der DAQmx Timing Node verknüpfen und die Pulszahl für jeden Ausgangsterminal einzeln festlegen? Vielleicht fällt einem von euch ja etwas dazu ein.

Ich würde mich riesig freuen wenn´s da ´ne Lösung gäbe, auf die ich bisher nicht gestoßen bin. Danke im voraus für Eure Antworten.

Mit freundliche Grüßen
Cony

Lv09_img2


4 Schrittmotore einzeln ansteuern mit USB-6229 - Lucki - 07.05.2010 07:30

Die SMC-11 ist doch keine Schrittmotorsteuerung, auch wenn sie mit einer solchen Bezeichnung daherkommt, sondern nur eine Schrittmotor-Endstufe. Was Du da an Aufwand für die Programmierung hineinstecken wirst, ist ein Vielfachse dessen, als wenn Du ein intelligenteres Teil mit RS485-Schnittstelle nehmen würdest. Z.B. die SMC147-S von Nanotec. Man spart sich dann auch die NI-Karte, und wenn Du Glück hast, hat der Hersteller sogar die fertigen LabVIEW-Treiber. (Ich würde mir die Steuerung danach aussuchen) Die Steuerungen mit RS485 sind busfähig. Es gibt auch Steuerungen für mehrere Achsen in einer Einheit.

Also für mich ist das ganze Konzept ein Holzweg. Diese vermeintliche Billiglösung ist die teuerste und langwierigste Variante.


4 Schrittmotore einzeln ansteuern mit USB-6229 - gottfried - 07.05.2010 08:40

Hallo,

bin der selben Meinung.
>die SMC147-S von Nanotec.
ist wirklich gut. Die Doku benötigt aber doch wirkliches Studium wenn man so etwas das erste Mal macht. Die dazu gelieferten LV Beispiele sind sehr schwach

Gottfried


4 Schrittmotore einzeln ansteuern mit USB-6229 - Surfcony - 09.05.2010 13:29

Hallo Lucki,
Hallo Gottfried,

erst mal danke für Eure Einschätzung.
Leider habe ich die Hardware bereits hier und muss nun zusehen wie ich damit klarkomme. Momentan kommt daher ein Neukauf einer "richtigen" Schrittmotorsteuerung nicht in Frage.
Wenn ich das richtig bei Nanotec überflogen habe bräuchte ich ja pro Motor eine Steuerung, das sprengt bei ~199€ pro Stück auch bei weitem das Budget.

Im Prinzip habe ich in LabVIEW auch schon alles so wie ich das wollte, nur dass ich eben nur einen Motor ansteuern kann. Ich suche ja nur nach einem Trick, das Vorhandene auf alle vier Motore zu erweitern. Aber anscheinend ist das nicht so trivial und ich muss mich mit der Software-Schleife begnügen.

Mit freundlichen Grüßen
Cony


4 Schrittmotore einzeln ansteuern mit USB-6229 - Surfcony - 12.05.2010 20:14

Hallo zusammen,


diese Woche habe ich probehalber alles mal angeschlossen. In der Realität (nach Anschluss der Motore an die Hardware) lief leider die Software-Schleife auch nicht, nach kurzer Zeit war der Rechner zu 100% ausgelastet und nichts ging mehr. Ich hatte mich schon fast damit abgefunden, dass es gar nicht geht mit der vorhandenen Hardware.

Dann habe ich nochmal bei Null angefangen und bin eher durch Zufall auf eine laufende Lösung gestoßen, mit der ich alles erreicht habe was ich wollte.Prost
Das ganze verzichtet auf die "DAQmx Start Task", die ja (meiner Erfahrung nach) nicht mehrmals parallel gestartet werden kann. Prinzipiell schreibe ich eine digitale Waveform auf einen vorher festzulegenden Digitalausgang. Den Wechsel zwischen 5V und 0V erzeuge ich mit einem digitalen Toggle Signal, bei dem die Anzahl der Wechsel einstellbar ist. Das ganze 4 mal kopiert, die anderen Schalter dazu und es läuft Tongue
Die Motoren sind nun alle einzeln verfahrbar, der Weg, die Richtung, die Stromabsenkung kann individuell für jeden Motor eingestellt werden. Genau das was ich wollte.


Mit freundlichen Grüßen
Cony