27.01.2015, 13:48
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
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