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 

Schrittmotorsteuerung über LPT bzw. parallel Port



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!

20.11.2013, 14:40 (Dieser Beitrag wurde zuletzt bearbeitet: 20.11.2013 14:43 von Kiesch.)
Beitrag #5

Kiesch Offline
LVF-Stammgast
***


Beiträge: 412
Registriert seit: Mar 2009

2019, 2018, 2016
2009
DE

04519
Deutschland
RE: Schrittmotorsteuerung über LPT bzw. parallel Port
Da ich sowas auch gemacht habe (quasi) und de facto die gleiche Architektur vorliegen habe:

Ansteuern konntest (bzw. kannst) die den Parrallel Port über die inPort bzw. outPort VIs. *weis grad nichtmehr wo die zu finden sind*
Das geht allerdings maximal bis Win Vista 32 bit bzw. Win XP (Win Vista 64 und neuere unterstützen die wohl garnichtmehr; bei Vista 32 Bit kann es wohl noch eingeschränkt funktionieren). Dafür musst du dann die Registeraddresse des Parralel Port raussuchen und benutzen. Funktioniert auch mit Steckkarten die einen Parralel Port haben. Du liest dann die entsprechende Registeraddresse ein für die ersten 8 Pins; die Addresse +1 für die Nächsten 8; anschließend wurde es glaube komplizierter. Schreiben geht natürlich genauso. Kann auch sein das du erst ab Pin 2 ansprichst, müsste ich nochmal nachschauen (also bei der Registeraddresse vom Parralelport Pin 2 - 9 und bei der Addresse +1 Pin 10 - 17).

Da du die Pins nicht einzeln setzen kannst besteht also ein Vorgang immer aus: Lesen --> Ändern --> Setzen (das muss also von anderen Zugriffen isoliert werden, wenn dein Programm nicht Scheiße machen soll). Das ganze sollte man dann noch auf 1ms pro Vorgang runterbremsen, dann taktest du das ganze auf 1kHz (was die Schrittmotoren leisten können sollten; falls immer noch zu schnell entsprechend Zeit weiter hochsetzen.

Empfehlen würde ich das ganze nur bedingt, da die Schnittstelle aus der Unterstützung von Labview rausgefallen ist / rausfällt (da man einfach keine neuen Treiber für die neue Win Architektur schreiben will / kann; wegen der entsprechenden MS seitigen Restriktionen).

Ich habe meine Architektur auf eine
NI USB 6501
http://sine.ni.com/nips/cds/view/p/lang/de/nid/201630

umgebaut. Sprich also: Über diese USB Box einen Parralelport "emuliert" (ergo: Die einzelnen Anschlüsse einfach entsprechend den PINs zugeordnet). Das dürfte einigermaßen Zukunftssicher sein, hat aber einen Nachteil: Dein Maximaltakt sinkt auf 500Hz (liegt wohl irgendwie an der USB Schnittstelle die eine Setzoperation auf 1ms Ausführungszeit runterbremst).


Wie funktioniert das ganze dann praktisch:

Wenn ich den Schaltplan sehe springen mir Spontan Ausgänge ins Auge die mit "X Step", "Y Step" etc. bezeichnet sind. Die dürften (wahrscheinlich) entweder auf einen Abfallende oder auf eine Ansteigende Flanke triggern und einen Step auslösen. Die Richtung wird dabei vorgegeben durch "X Dir", "Y Dir", etc. (dir = direction). Welche Richtung High ist und welche Low musst du natürlich noch selbst austesten. "X Enable", "Y Enable", etc. musst du vermutlich auf True setzen damit der überhaupt was macht (im schlimmsten Fall musst du da sogar nen Rechtecksignal dran haben damit der angeschaltet ist). Das kannst du an sich nur rausfinden indem du entweder High anlegen testetst und es geht ^^ oder indem du im Betrieb mit der Software mit einem Oszilloskop abgreifst was da genau anliegt.
Über den Bezeichnungen steht jeweils auf welchem Pin sich das befindet, so dass du das also auch per PC beschalten können solltest.

Im Betrieb musst du dann jeweils nur zuerst den Dir Eingang auf die Richtung setzen die du haben willst (High oder Low). Und dann ein Rechtecksignal am entsprechenden Step Eingang erzeugen (du brauchst zwar vermutlich nur eine der Flanken - bei meinem Aufbau mit einer anderen Treiberkarte Low auf High - allerdings musst du natürlich danach wieder auf Low zurück um eine neue Flanke zu erzeugen. Bei dem USB 6501 dauert einmal setzen jeweils 1ms, so dass du dann effektiv auf eine Taktfrequenz von 500Hz (also 500 Schritt pro Sekunde) kommst. Bei den inPort und outPort VIs geht das deutlich schneller als 1ms, da musst du schauen dass du die Funktion einbremst, da vor deutlich mehr als 1kHz die Motoren + Treiberkarte vermutlich kapitulieren werden (du merkst das daran, dass Schritte verloren gehen).
Das dürfte wahrscheinlich das Wesentliche sein was du für den Betrieb brauchst.

Was mich wundert ist, dass scheint es keine Endschalter vorgesehen sind auf dem Board. Die solltest du im Zweifel anbringen wenn du irgendwie mal ne Chance haben willst das zu kalibrieren und sinnvoll automatisiert zu fahren (Stichwort: Feststellen wo der Schrittmotor gerade steht - das geht quasi nur über fahren zu nem Endschalter).

Ansonsten: Die Angaben sind natürlich ohne Gewähr - ich kann nur deuten was ich da geschrieben sehe. Im Zweifel kann dir der Hersteller der Karte sicher auch weiterhelfen dabei, welche Signale auf welchem PIN erwartet werden. Den also am besten einfach mal ansprechen. Mit viel Glück bieten die dir sogar ne DLL mit der du Grundfunktionen zur Verfügung gestellt kriegst.

Ich muss auch mal schauen ob ich meine Ansteuerung über die inPort und outPort VIs hier noch rumliegen habe, dann kann ich dir die auch als Beispiel mal anhängen (auch wenn ich mich für das Programm eigentlich schämen muss da es noch aus meiner LV Anfangszeit stammt und entsprechende Unschönheiten enthält). Praktisch gesehen kannst du dich daran allerdings maximal orientieren, da bei dir die PIN Belegung natürlich anders ist als sie das bei meinem Aufbau ist.

Gruß Kiesch

Zitat:Märchen und Geschichten werden erzählt am Lagerfeuer, technischen Fakten werden mitgeteilt (oder so). (Genauso wie Software nicht auf einem Server "herumliegt", die ist dort installiert.)
*Zitat: IchSelbst*
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
RE: Schrittmotorsteuerung über LPT bzw. parallel Port - Kiesch - 20.11.2013 14:40

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  S7-300 über Ethernet parallel auslesen Hund am Strand 7 9.705 21.07.2012 11:31
Letzter Beitrag: Y-P

Gehe zu: