Meine Schrittmotorensteuerung - Probleme

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Andyh
User
Beiträge: 319
Registriert: Dienstag 8. Januar 2008, 19:52
Kontaktdaten:

Meine Schrittmotorensteuerung - Probleme

Beitragvon Andyh » Sonntag 13. Januar 2008, 13:46

Hallo

Ich werde woll langsam anfangen zu nerven,
deswegen schreibe ich jetzt alle probleme die ich mit Schrittmotorensteuerung habe.

Ich komme mal wieder nicht weiter.

Code: Alles auswählen

import parallel
p = parallel.Parallel()
p.setdata(0x00)


(0x00) Ich wahrscheinlich auch falsch (ich will ersr mal ein Signal rausschicken. Das problem das ich jetzt habe liegt in in der zweiten Zeile.
Es kommt der Fehler:

Traceback (most recent call last):
File "C:\Python25\cnc1.py", line 5, in <module>
p = parallel.Parallel() #open LPT1
File "C:\Python25\Lib\site-packages\parallel\parallelwin32.py", line 74, in __init__
self.ctrlReg = _pyparallel.inp(self.ctrlRegAdr)
WindowsError: exception: priviledged instruction

Ich weiss es gibt schon ein ähnliches Thema, nur das was man da sagt hilft bei mir nicht. Ich habe versucht die giveio.sys zu installieren, was aber nicht geklappt hat. Hat jemand eine gute Installationsdatei?

Ich Arbeite gerade mit WinXP.
Ist es einfacher unter Ubuntu auf die LPT zuzugreifen (Python lauft doch unter Ubuntu?).

Gruß
Andyh
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Beitragvon HWK » Sonntag 13. Januar 2008, 15:40

Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Re: Meine Schrittmotorensteuerung - Probleme

Beitragvon gerold » Sonntag 13. Januar 2008, 15:42

Andyh hat geschrieben:Ich habe versucht die giveio.sys zu installieren, was aber nicht geklappt hat.

Hallo Andyh!

http://www.nf.fh-nuernberg.de/~jesorsky ... c/port.htm

- Kopiere die Datei giveio.sys http://www.nf.fh-nuernberg.de/~jesorsky ... giveio.sys in den Ordner *C:\WINDOWS\system32\drivers*.

- Starte das Programm LoadDrv.exe http://www.nf.fh-nuernberg.de/~jesorsky ... oadDrv.exe. Gib dort den genauen Pfad zur Datei giveio.sys ``C:\WINDOWS\system32\drivers\giveio.sys`` ein und klicke danach auf "Install" und danach auf "Start". Falls es Probleme gibt, dann versuche es in dieser Reihenfolge: "Stop", "Remove", "Install" und "Start"

Damit sollte die giveio.sys korrekt installiert sein. Auch nach einem Neustart des Computers sollte dein Programm immer noch funktionieren.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Sonntag 13. Januar 2008, 15:53

Hallo Andyh!

Ich merke soeben, dass das bei mir auch nicht mehr richtig funktioniert. Nach einem Neustart ist alles wieder beim Alten. :roll:

Jetzt weiß ich auch wieder, warum ich nichts mehr mit dem Parallelport mache. Ich arbeite schon länger nur mehr mit dem Seriellen Port und mit USB. Es tut mir leid.

EDIT:

Unter Ubuntu ist es dahingehend einfacher, weil man sich "nur" vor dem Start des Programmes darum kümmern muss, dass das Kernelmodul "lp" entladen wird. --> http://www.python-forum.de/post-73577.html#73577


mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs

Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Andyh
User
Beiträge: 319
Registriert: Dienstag 8. Januar 2008, 19:52
Kontaktdaten:

Beitragvon Andyh » Sonntag 13. Januar 2008, 16:18

Danke für die Bemühungen

Werde mich mal dahinterklemmen!

Gruß
Andyh
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Beitragvon HWK » Sonntag 13. Januar 2008, 16:41

Klappt bei mir auch nicht. Habe es zusätzlich noch hiermit probiert:
http://www.holger-klabunde.de/multiprom/ntdriver.zip
Ich habe noch das hier gefunden:[code=]===============================
Installing GiveIO on Windows XP
===============================

1. Copy giveio.sys to C:\WINDOWS\system32\drivers

2. Go to Control Panel, open System and go to the hardware tab.

3. Click on the Device Manager button. This will open a new window.

4. In the Device Manager window, click on the View menu and select
"Show hidden devices." This will reveal a Non-Plug and Play Drivers icon
in the file tree.

5. Expand the Non-Plug and Play Drivers tree.

6. Find and right click giveio and select Properties from the popup menu.
This will bring up a window of the giveio Properties.

7. In the Properties window, select the Driver tab.

8. Select Automatic from the dropdown box for the type and Start the Driver![/code]Es scheitert bei mir aber bei Punkt 6, weil giveio nicht in der Liste auftaucht.
Ich benutze übrigens Windows XP SP 2.
MfG
HWK

Edit: Hab jetzt den Rechner mit giveio.sys in windows\system32\drivers neu gestartet. Dann habe ich giveio.sys mit loaddrv.exe installiert und gestartet. Danach funktioniert es:

Code: Alles auswählen

>>> import parallel
>>> p = parallel.Parallel()
>>> p
<parallel.parallelwin32.Parallel instance at 0x009D9850>
Andyh
User
Beiträge: 319
Registriert: Dienstag 8. Januar 2008, 19:52
Kontaktdaten:

Beitragvon Andyh » Sonntag 13. Januar 2008, 17:12

Hallo

So bei mir hats jetzt geklappt (neustart habe ich och nicht gewagt)
Ich habe einfach den Download von HWK genommen und die Datei "loaddrv2_XP" gestartet und auf "install" geklickt.

Der fehler ist jetzt weg und der nächste kommt gleich in der zeile:

Code: Alles auswählen

p.setdata(0x55)


Fehler:
Traceback (most recent call last):
File "C:\Python25\cnc1.py", line 6, in <module>
p.setdata(0x55)
AttributeError: Parallel instance has no attribute 'setdata'

Gruß
Andyh
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Beitragvon HWK » Sonntag 13. Januar 2008, 17:20

Probier mal setData.
MfG
HWK
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Sonntag 13. Januar 2008, 18:27

HWK hat geschrieben:Probier mal setData.

Oder bei der Gelegenheit auch ``dir(p)``.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Andyh
User
Beiträge: 319
Registriert: Dienstag 8. Januar 2008, 19:52
Kontaktdaten:

Beitragvon Andyh » Sonntag 13. Januar 2008, 18:39

Hallo also wenn ich setdata eingebe kommt nur das es nicht definiert ist.

Wie schreibe ich das mit dir(p)?

Danke für die hilfe bis hier her (muss man mal sagen, klasse Forum)

Gruß
Andyh
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

Beitragvon nkoehring » Sonntag 13. Januar 2008, 19:04

Hi Andyh...

Andyh hat geschrieben:Wie schreibe ich das mit dir(p)?

dir(p) gibt dir aus, was fuer Methoden das Objekt "p" mit sich bringt.
Außerdem ist die Groß-/Klein-Schreibung in Python zu beachten. Deshalb gibt es also einen Unterschied, ob du setdata oder setData benutzt!

Andyh hat geschrieben:Danke für die hilfe bis hier her (muss man mal sagen, klasse Forum)
Deshalb sind wir ja alle hier.. nicht wahr? ;)
Andyh
User
Beiträge: 319
Registriert: Dienstag 8. Januar 2008, 19:52
Kontaktdaten:

Beitragvon Andyh » Sonntag 13. Januar 2008, 19:38

Andy ist jetzt auf Sendung.

Edit: das hat sich erledigt
Hat jemand eine Tabelle wo drin steht was ich eingeben muss wenn Pin1 angesteuert werden soll. Für Qbasic habe ich schon welche gefunden für Python noch nicht (vieleicht kann ich nur nicht suchen)

Habe noch ne frage (gut das geht jetzt in die CNC technik)
Weiss jemand wie das Takt/Tichtungssignal aussieht?

Gruß
Andyh
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Sonntag 13. Januar 2008, 20:01

Andyh hat geschrieben:Hat jemand eine Tabelle wo drin steht was ich eingeben muss wenn Pin1 angesteuert werden soll.

Hallo Andyh!

Das kannst du dir selber zusammensetzen.
Du hast 8 Bit. Diese 8 Bit entsprechen deinen 8 Datenleitungen. Im Binärsystem: ganz rechts ist Bit 1 und ganz links ist Bit 8:

Code: Alles auswählen

>>> int("00000000", 2)
0
>>> int("00000001", 2)
1
>>> int("00000010", 2)
2
>>> int("00000100", 2)
4
>>> int("00001000", 2)
8
>>> int("00010000", 2)
16
>>> int("00100000", 2)
32
>>>

Usw.

Wenn mehrere gleichzeitig ON sein sollen, dann kombinierst du das einfach:

Code: Alles auswählen

>>> int("10101010", 2)
170
>>>

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs

Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Andyh
User
Beiträge: 319
Registriert: Dienstag 8. Januar 2008, 19:52
Kontaktdaten:

Beitragvon Andyh » Sonntag 13. Januar 2008, 20:08

Hallo

@gerold
Perfekt!

Ich hatte es gerade mit HEX zahlen gemacht also (0x40) aber mit den Binar zahlen ist es ja 100 mal einfacher.

Dankender Gruß
Andyh
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

Beitragvon mkesper » Montag 14. Januar 2008, 10:07

Wenn du mehrere Bits kombinieren willst, bietet sich auch die boolesche Algebra an:

Code: Alles auswählen

>>> 1 & 4
0
>>> 1 | 4
5

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder