LabVIEWForum.de - Ansteuerung Schrittmotor

LabVIEWForum.de

Normale Version: Ansteuerung Schrittmotor
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Gemeinschaft,

Erstmal echt krass wie hilfsbereit hier alle sind. Ich hoffe ihr könnt mir auch helfen :-( bin nämlich gerade etwas aufgeschmissen, weil ich mich mit meiner Diplomarbeit etwas überworfen habe und mich auf der Stelle drehe. Bin neu in LKabview und habe mich erstmal in die Basics eingearbeitet. Habne unter anderem das Buch "Einführung in LabView" von Georgi und Hohl durchgerabeitet, als auch Praxiseinstieg LabView.
So jetzt zu meinem Problem. Ich soll in meiner Diplomarbeit ein X-Y-Z-Tisch aus Schrittmotoren mit LabView ansteuern. Es handelt sich um Lineartische von OWIS und der passenden 3-Achssteuerung PS35. Leider verbietet es mir die Aufgabenstellung die OWIS SDKs zu benutzen. Daher meine Frage, wie steuere ich am besten Schrittmotoren an? Habe es schon mit einem Array probiert, welches eine Folge von True und False sendet und damit die Pins der Spulen im Schrittmotor auf High bzw. Low schaltet. Auch habe ich es mit einem Schieberegister probiert, welches eine Impulsfolge erstellt. Leider sieht das alles ziemlich komisch aus und ich drehe mich auf der Stelle. Auch finde ich beide Lösung irgendwie ungenügend. Hab ihr eine möglichkeit wie man am besten Schrittmotoren ansteuert. Die Kommunikation geht über USB aus dem PC in die Steuereinheit und dann zu den Motoren. Eine Bitfolge mit Start und Stopbit sollte doch prinzipiell auch funktionieren oder?

Vielen Dank für eure Mühen und Ratschläge.

Viele Grüße

Jens
Hat denn deine Steuerung ein Interface / Wie kommuniziert dein PC mit der Steuerung?
Guten Morgen,

also die Kommunikation erfolgt über USB. Vom Rechner über USB zur Achsteuerung und von der zu den einzeln Achsen. Es gitb auch schon viele Beispiel Anwendungen von OWIS, aber irgendwie stecke ich noch nicht genug in der Materie über diese bis ins vollkomende zu verstehen. Die Achsteuerung arbeitet auch als Stand-Alone Gerät, also muss ja intern schon eine Ansteuerung der Motoren hinterlegt sein.

Viele Grüße

Jens
Hallo Jens,

Zitat:also die Kommunikation erfolgt über USB. Vom Rechner über USB zur Achsteuerung
"USB" beschreibt erstmal nur das verwendete Kabel - noch nicht einmal der Stecker ist damit klar…
Welche Art Kommunikation läuft über dieses USB-Kabel? Wird da ein (virtueller) COM-Port eingerichtet? Oder wird da irgendwas spezielles verwendet?
Was sagt das Manual deiner Achssteuerung?
Was ist den erwähnten Beispielen zu entnehmen?
Was sagt der Support deines Gerätes zu deinen Fragen?

Ganz allgemein: Die Anleitung lesen musst du schon selbst! Rtmfx
Hey,

also es wird ein Com-Port benutzt. Das Manual gibt nicht wirklich was her zur Ansteuerung der Achsen. Was ich inzwischen weiß ist, das in Beispiels VIs über einen Eigenschaftsknoten eine externe dll. aufgerufen wird. Jetzt habe ich die Vermutung das sich dahinter eine C++ Code befindet, der die entsprechenden Signal an die Achssteuerung weiter gibt. Leider kann ich den Quellcode nicht einsehen. Aber werde mich mal an den support wenden zur Not. Aber über den eigenschaftsknoten weiß ich ja eigentlich welche Signale rein gehen und welche rauskommen. Vielleicht hilft mir das ja weiter.
Aber mal angenommen ich hätte keine externe Achssterung und es würde bloß um das simple ansteuern der Kabelenden der Schrittmotorspulen gehen. Wie würdet ihr das realisieren? Über ein Boolsches Array, welches eine Zeile mit True und False werten an den Ausgang übergibt oder habt ihr eine komplett andere Idee?

Danke euch vielmals und sorry für die vielleicht dummen Fragen und Antworten.

Grüße

Jens
Hallo Jens,

wenn ich in dieses Manual schaue -> https://www.owis.eu/fileadmin/user_uploa...Manual.pdf
Findest du ab Seite 58 alle möglichen Befehle für die Steuerung der Achsen. Wie du die Befehle genau zu verwenden hast und wie du den Controller zu initialisieren hast (sehr wichtig!) steht dort auch drin.

Wenn du eine Verbindung hast, würde ich erst mal den Status auslesen und verarbeiten, danach kann man sich ans Schreiben machen.
Sehr wichtig ist wie gesagt die richtige Initialisierung, ansonsten läuft bei den meisten Reglern erst mal gar nichts oder es läuft sehr komisch.

Gruß Max
Hey,

Vielen Dank für den Tipp, das Manual habe ich schon mal gelesen. Mein Problem daran ist bloß das die Befehle ja alle für eine Programmierung in C++ ist. Das würde für mich bedeuten ich müsste C++ schreiben und diese DLL dann in LabView einbinden. So ganz habe ich noch nicht rausgefunden ob ich auch nur über Labview die Motoren steuern kann. Der Support war leider auch keine Hilfe, die haben mir bloß den Text der UserInfo aus dem Installationsordner geschickt. Werde da heute nochmal anrufen. Weil wenn ich die Motoren gar nicht richtig über das setzten von einzelnen Pins ansteuern kann, muss ich mir was anderes überlegen. Ansonsten schreibe ich einfach das LabView Programm und nutze die mitgelieferte Bibliothek von Owis.

Vielen Dank.

Jens
Hallo Jens,

Zitat:Mein Problem daran ist bloß das die Befehle ja alle für eine Programmierung in C++ ist.
Wie kommst du denn auf diese Behauptung??? Hmm (C++ wird in Chapter 15 nirgends erwähnt!)
Das sind Befehle, die das Gerät über die serielle Schnittstelle erwartet. Und wer diese Befehle mit welcher Programmiersprache versendet, ist dabei vollkommen egal!

Das Gerät erwartet Befehle, die mit einem LF (LineFeed, hex 0A) enden. Und sendet dir Antworten, die ebenfalls mit LF enden. Du kannst also VISASerialPortConfig mit den Standardeinstellungen verwenden und musst höchstens die Baudrate anpassen!
Und komme nicht auf die Idee, dann BytesAtPort zu verwenden, das wäre nämlich falsch. (Es gibt schon genügend Threads zum Thema "Kommunikation über serielle Schnittstelle"!)
Hey Jens,

das sind alles keine Befehle für C++, das sind ganz normale Zeichenketten/Strings, welche auf den COM Port geschrieben werden und davon ausgelesen werden.
Alles was du dafür brauchst findest du in der VISA Palette. Wichtig ist hier die Schnittstelle richtig zu konfigurieren, damit du dir später keine komischen Fehler einarbeitest. In der Anleitung gibt es dafür aber auch einen Abschnitt.

Gruß Max
Referenz-URLs