INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Schrittmotor ansteuern/ablauf über LPT (X-Y Achse)



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

07.10.2007, 16:24 (Dieser Beitrag wurde zuletzt bearbeitet: 07.10.2007 18:27 von HerrRuin.)
Beitrag #1

HerrRuin Offline
LVF-Grünschnabel
*


Beiträge: 22
Registriert seit: Oct 2007

8.2.1 / 8.5
2007
de

01099
Deutschland
Schrittmotor ansteuern/ablauf über LPT (X-Y Achse)
Hallo Forumuser!

Ich freue mich dieses Forum gefunden zu habe und hoffe mit Euch gemeinsam mein Problem lösen zu können.
Ich muss im Rahmen einer Hausarbeit eine Schrittmotoransteuerung realisieren.

Da ich absoluter Neuling bin und mir etwa 80% der Begriffe und Vi's nichts sagen, müsst Ihr langsam und gedehnt mit mir redenWink

Problemstellung (ganz allgemein):
Ich habe einen Versuchsstand auf dem zwei Linearachsen installiert sind. Mittels der Schrittmotoren sollen die Schlitten der Linearachen bewegt werden. Auf dem Schlitten der Y-Achse ist ein Versuchsobjekt befestigt, welches an einem Sensor vorbeigeführt werden soll. Vollautomatisch.


Vorhaussetzungen:
Es existieren schon zwei Schrittmotoren (Conrad SM 12056) die über ein Interface (Kemo M106) mittels LPT-Anschluss mit dem Rechner verbunden sind. LabVIEW 8.2.

Aufgabenstellung:
Mittels LabVIEW sollen die beiden Motoren nach einem im vorhinein festgelegten Ablaufplan angesteuert werden.
Das heisst: Erst soll der erste Motor soundsoviel Umdrehungen rechts herum machen und dann soll der zweite Motor soundsoviel Umdrehungen links herum machen usw. Also genau nach Plan.


Variablen im Programm:
Das heißt, der Ablaufplan soll recht einfach veränderbar sein. Es muss eine Möglichkeit geben das Programm zu "Nullen".
Bewegungsgeschwindigkeit muss veränderbar sein. Einstellen des Programms auf einen anderen Motor (Schritte pro Umdrehung).


Informationsmaterial:

Sonstige .pdf  Kemo_LPT_Pins.pdf (Größe: 320,18 KB / Downloads: 1787)


Sonstige .pdf  Schrittmotor_sm12056.pdf (Größe: 109,1 KB / Downloads: 1346)


Ablaufplan der Bewegung:
   


Eigentlich klingt die Sache recht einfach. Dachte ich am Anfang. Deswegen habe ich zugesagt.
Nun sitze ich vor dem LabVIEW Programm und weiß noch nicht mal wie ich Anfangen soll.
Ich hab schon einiges über eine Out Port.vi gelesen. Das kingt sehr gut. Leider weiss ich nicht ob die reine LabVIEW Software reicht oder ich noch irgendwelche Zusatz Dinge einstellen oder installieren muss.

Es kann doch jetzt nicht so schwer sein ein Signal zu generieren und dieses über den LPT Port auszugeben. Dieses Signal zu zählen und somit die Position der Motors zu bestimmen.
Das ganze für zwei Motoren und im nachhinein noch weitere Optionen wie "Nullen" usw. einzubauen. Oder sehe ich die Sache zu einfach?!?

Ich hoffe, für Euch ist dies nicht zu einfach;)und Ihr könnt mir etwas helfen und damit den Anfang erleichtern.


Auf gehts!Smile
Stephan
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
08.10.2007, 22:29
Beitrag #2

PeeGee Offline
LVF-Grünschnabel
*


Beiträge: 10
Registriert seit: Sep 2007

2012
1997
kA

40699
Deutschland
Schrittmotor ansteuern/ablauf über LPT (X-Y Achse)
Moinmoin!

schau mal auf
http://forums.lavag.org/Using-Parallel-Por...V-82-t8525.html
da finden sich einige Hinweise zur Benutzung des Parallel Ports.

Ein netter Punkt an Deiner Aufgabe ist die Änderbarkeit des Ablaufplans.
Wenn das möglich sein soll, ohne das LV-Programm zu ändern ist vermutlich das einfachste,
eine Liste mit Punkten anzugeben, die angefahren werden sollen, und dann im Programm
die schritte entsprechend zu zählen.
Viel Erfolg beim Programmieren!
PeeGee

PS.: das du zugesagt hast, weil die Sache einfach klang find' ich schon ein bisserl schad' ;-)

Tee trinken und die Welt verbessern...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.10.2007, 09:06 (Dieser Beitrag wurde zuletzt bearbeitet: 09.10.2007 09:15 von rolfk.)
Beitrag #3

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Schrittmotor ansteuern/ablauf über LPT (X-Y Achse)
' schrieb:Moinmoin!

schau mal auf
http://forums.lavag.org/Using-Parallel-Por...V-82-t8525.html
da finden sich einige Hinweise zur Benutzung des Parallel Ports.

Ein netter Punkt an Deiner Aufgabe ist die Änderbarkeit des Ablaufplans.
Wenn das möglich sein soll, ohne das LV-Programm zu ändern ist vermutlich das einfachste,
eine Liste mit Punkten anzugeben, die angefahren werden sollen, und dann im Programm
die schritte entsprechend zu zählen.
Viel Erfolg beim Programmieren!
PeeGee

PS.: das du zugesagt hast, weil die Sache einfach klang find' ich schon ein bisserl schad' ;-)

Im Prinzip ist es alles nicht so kompliziert. Aber und LabVIEW lernen, und Parallelport programmieren, und sinnvolles UserInterface machen, und vielleicht noch Programmieren an sich, ist so ein bisschen das ganze Spektrum das man beim Programmieren entgegen kommen kann, alles schön in einem Projekt zusammengebunden. Schon ein bisschen viel auf einmal und recht schwierig so auf Abstand zu helfen.

LabVIEW lernen muss man halt wirklich selber auch wenn ein Kurs da sicher helfen kann, aber das ist nicht billig.

Parallel Port programmieren ist ziemlich low level und einfach so mal nicht zu tun. Um dieses spezifische Ding anzusprechen denke ich schon einmal selber 1 - 2 Tage beschäftigt zu sein um einen einigermassen sinnvollen LabVIEW Treiber zu schreiben und erklären wie das ginge ist so auf Abstand nicht zu machen.
So wie die Kemo-Beschreibung aussieht sollte das Outport VI aber vollauf genügen um das anzusprechen. Dann nur noch die Registermap des Parallelports heraussuchen. Eventuell geinge selbst einfach VISA zu benützen, da der parallel Port beim PC gemäss Microsoft eben auch ein serieller ist. Ihre Begründung ist einfach, COM Prots sind halt bit seriell, und LPT Ports sind byte-seriell. Das Problem mit diesem Ansatz ist nur dass LPT Ports nicht so einfach als Eingang funktionierenWink

Und dann ein UserInterface um das Trajekt noch möglichst benützerfreundlich einführen zu können! Je nach Ausführung ganz sicher eine Herausforderung auch für gestandene LabVIEW Benützer. Das mit der Punktliste aus einem Textfile heraus ist sicher die einfachste Variante und mit noch recht wenig Aufwand zu machen.

Rolf Kalbermatter

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.10.2007, 16:07 (Dieser Beitrag wurde zuletzt bearbeitet: 12.10.2007 16:27 von HerrRuin.)
Beitrag #4

HerrRuin Offline
LVF-Grünschnabel
*


Beiträge: 22
Registriert seit: Oct 2007

8.2.1 / 8.5
2007
de

01099
Deutschland
Schrittmotor ansteuern/ablauf über LPT (X-Y Achse)
Hallo!

Danke für die Antworten.

Nach einer Woche Grundlagenforschung habe ich endlich heraus gefunden wie der Schrittmotor angesteuert werden kann!!!Smile
Nun fehlt es mir an Erfahrung ein sinnvolles Programm darum zu schreiben.


Ich werde mal die Zusammenhänge deutlich machen:
Die beiden Motoren (X-Y-Richtung) können über die Out Port.vi angesprochen werden.
Wobei der Zusammenhang für Schritte nach RECHTS (Clockwise) folgender ist:

Es werden die hex Zahlen 0 1 3 2 (dann wieder 0 ) auf den Druckerport (Out Port.vi Adresse hex 378) geschrieben. Wobei immer der Wechsel auf die nächste Zahl den Motor einen Schritt weiter setzt. Eine kleine Schaltung macht das deutlich.
   

Beim LINKSlauf (Counterclockwise) verhält es sich folgendermaßen. Es werden die hex Zahlen 0 2 3 1 geschrieben. Wobei immer der Wechsel auf die nächste Zahl den Motor nach links setzt.
   

Wenn man nun beim Rechtslauf bei 3 stehengeblieben ist und nach links will dann muss die Zahl 1 kommen, oder wenn man bei 1 stehengeblieben ist dann muss die Zahl 0 kommen.

Beim Motor zwei (über den selben LPT Port 378) muss die Zahlenfolgen Rechts 0 4 C 8 und Links 0 8 C 4 erfolgen.

Vielleicht kann mir jemand helfen mit diesen Bedingungen ein Probeprogramm zu schreiben. Erstaunlicherweise geht es auch wenn auf der Leitung ein FC anliegt, und ich ein FD sende. Dann macht der Motor auch einen Schritt nach Rechts. Also von (0->1) wenn dann ein FF kommt (1->3) geht er wieder nach rechts. Somit müsste das Programm nach dem starten erstmal "genullt" werden.

Nun weiß ich nicht wie man sinnvoll das Auslesen des Ports (In Port.vi Adresse hex 378), vergleichen, und schreiben des nächsten Schritts realisiert.

Vielleicht gibt es da Vorschläge?!
Oder jemand erkennt eine Rechtenregel für den nächsten Schritt. Das würde die Programmierung erleichtern. (Auslesen->Rechenregel->Schreiben)


Viele Grüße
Stephan
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.10.2007, 16:03 (Dieser Beitrag wurde zuletzt bearbeitet: 08.12.2007 13:19 von jg.)
Beitrag #5

HerrRuin Offline
LVF-Grünschnabel
*


Beiträge: 22
Registriert seit: Oct 2007

8.2.1 / 8.5
2007
de

01099
Deutschland
Schrittmotor ansteuern/ablauf über LPT (X-Y Achse)
Hallo!

Irgendwie kommen hier keine Antworten... Ob das Problem zu schwierig ist, zu ungewohnt oder nur zu ungenau beschrieben ist, weiß ich nicht.

Auf jeden Fall haben ich ein Programm für den Rechtslauf geschrieben.
Vielleicht könnt Ihr mal drüber gucken und Eure Meinung dazu sagen.

Aber ich habe noch ein Problem, das ich nicht richtig in den Griff bekomme.

Problem:
Wenn die Schieberegister mit einem Wert geladen werden, bricht die While-Schleife nicht ab, obwohl die Abbruchbedingung auf TRUE steht!
Wie kann ich die Schleife beenden. Oder was muss ich machen damit die Schieberegister nicht geladen werden.

Wenn es Verständnisfragen gibt, bitte genauer nachfragen.

Mit dem zweiten VI kann der LPT Port gesetzt werden. Der kritische Fall tritt auf, wenn der Port auf 3 steht und nur ein Schritt gemacht werden soll. Dann macht das Programm fünf Schritte. Es durchläuft die Schleife nochmal, obwohl der Abbruch auf TRUE steht.

VI´s (LV 8.2):

Sonstige .vi  04.Schrittm.vi (Größe: 35,93 KB / Downloads: 973)


Sonstige .vi  Port_Auslesen_und_Schreiben.vi (Größe: 14,63 KB / Downloads: 700)



Viele Grüße
Stephan
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.10.2007, 18:19
Beitrag #6

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Schrittmotor ansteuern/ablauf über LPT (X-Y Achse)
Hallo, Stephan,

bevor ich viel Zeit in eine ausführlichere Analyse stecke, mir fallen 2 Punkte auf.

1. zu deinen Bemerkungen: ist dir klar, dass eine While-Schleife mindestens 1x ausgeführt wird und die Abbruchbedingung erst am Ende der Loop überprüft wird? Die LV-While Loop ist also in Begriffen textbasierter Programmiersprachen ein DO ... WHILE Schleife!

2. Dein "gleichzeitiges" Lesen und Schreiben in dein Abbruch-Control per lokaler Variablen ist extrem gefährlich und widerspricht dem Konzept der Datenflussprogrammierung von LV. Extremes Bsp hier:
   
Du kannst an dieser Stelle nicht vorhersagen, wann in die lokale Variable geschrieben wird und wann aus der lokalen Variablen der Wert gelesen wird. Gut möglich (und so wie du dein Problem beschreibst) sogar sehr wahrscheinlich, dass das Lesen vor dem Schreiben geschieht.

So, jetzt hast du eigentlich erst einmal genug Hinweise für Verbesserungen.

MfG, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
Question Festo CPX Busknoten über cRIO und Labview ansteuern Gast955235 1 3.308 05.03.2020 14:23
Letzter Beitrag: MaxP
  Ansteuerung Schrittmotor JK87 8 5.401 24.09.2019 08:44
Letzter Beitrag: MaxP
  Schrittmotor Nema 17 per LabVIEW funktioniert nicht! TTT 5 6.247 27.04.2018 08:20
Letzter Beitrag: Freddy
  Schrittmotor über Labview ansteuern für X-Y-System taracho 5 6.877 26.10.2017 09:59
Letzter Beitrag: GerdW
  Ablauf Automatisieren Neuling01 7 5.593 12.07.2017 16:11
Letzter Beitrag: th13
  Schrittmotor Simulation Meierr 3 4.822 09.02.2016 15:00
Letzter Beitrag: GerdW

Gehe zu: