LabVIEWForum.de - Steuerung Schrittmotor Nanotec PD2-T57

LabVIEWForum.de

Normale Version: Steuerung Schrittmotor Nanotec PD2-T57
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Labviewforum-Gemeinde,

Ich habe Probleme bei der Ansteuerung des o.g. Motors mit Labview 2014.
Wir verwenden zur Ansteuerung des Motors das Digitalausgangsmodul NI9472.

Die Ansteuerung des Motors erfolgt bisher dadurch, dass dem Motor auf line 0 ein Richtungssignal 0 oder 1 gegeben wird,
während auf line 1 eine Folge von 1 und 0 übermittelt werden muss, wobei der Motor bei jeder fallenden Flanke in unserem Fall einen 1/10 Schritt macht.

Bei der Übermittlung des Taktes zeigen sich Probleme.
Senden wir mit dem DAQ-Assistenten ein Signal von Nullen und Einsen, das wir dem Assistenten über ein Cluster als Datenkonstante übermitteln, vollführt der Motor eine gleichmäßige Bewegung, die sich über die Paramter des Assistenten hinsichtlich der Geschwindigkeit problemlos einstellen lässt.
Wir lassen den DAQ-Assistenten in einer Whileschleife laufen und beenden die Datenübertragung über den Stoppparameter, wenn das Inkrement einen bestimmten Wert erreicht hat. Allerdings fährt der Motor hierbei die Positionen sehr ungenau an (Differenzen von mehreren cm!).

Alternativ habe ich dem Motor mit DAQmx write einen digitalen Datenverlauf oder eine einzelne boolsche Konstante übermittelt.
DAQmx write wird dabei in while-Schleife ausgeführt. Ich sende also immer wieder das selbe kurze digitale Signal aus Nullen und Einsen bzw. ein bollschen Wert der bei jeder Iteration negiert wird, also immer von true auf false und zurück wechselt.
Dabei fährt der Motor die Positon präzise an, die Bewegung erfolgt allerdings nicht gleichmäßig, der Motor stockt wiederholt.

Ich bin absoluter Labview-Neuling und wurde mit der Aufgabe betraut, den bereits verkabelten Motor zu bewegen.
Ich hoffe Ihr könnt mir erklären, was ich falsch mache oder wie ich grundlegend anders vorgehen muss.

Vielen Dank im vorraus.

Viele Grüße

Matthias
Lad einmal dein VI hoch.

Gruß, Jens
Hallo Jens,

das VI "mit_assistent" wurde von Dritten erstellt
und darein möchte ich meine Ideen zur Datenübertragung später integrieren.

Die beiden anderen VI's sind meine Ideen aus try/error mit unterschiedlichen DAQmx write Einstellungen.
Ich habe in den Konfigurationen des DAQ-Assistenten mit dem Sígnalerzeugungsmodus
"endliche Anzahl" eine Möglichkeit gefunden meinen Motor flüssig und auch präzise einstellbar zu verfahren.
Ich führe den DAQ-Assistent nun nicht mehr mit kontinuierlicher Signalerzeugung in einer while-Schleife aus, bis das Inkrement einen bestimmten Wert erreicht, sondern lasse ihn einmalig eine endliche 0/1-Folge übermitteln.
Welche Möglichkeit gibt es dennoch die Signalübertragung abzubrechen, wenn der Motor z.B. auf einen Endschalter fährt?
Oder würdet ihr grundlegend anders vorgehen, um dem Motor einen Takt zu übermitteln mit genau bestimmbarer Anzahl fallender Flanken?
Ich schick noch ein VI mit, mit dem ich einfach nach rechts oder links fahren kann, außerdem werden am Anfang die Endschalter abgefragt.
Referenz-URLs