Frage zu Schrittmotoren

Hallo,

ich habe eine prinzipielle Frage zu Schrittmotoren.

Um einen Schrittmotor zum laufen zu bringen, muss
ich im Motor ja verschiedene Stromzustände in der
richtigen Reihenfolge aktivieren.
Sagen wir z.B. 8 Stromzustände im Halbschrittbetrieb
bei einem bipolaren 2-Phasen-Schrittmotor.

Wenn ich dem Motor den ersten Stromzustand vorgebe,
weiss ich ja nicht, in welcher Position sich der Rotor
in Bezug auf den Stator befindet. Also kann es doch sein,
dass sich der Rotor dabei ein paar Schritte dreht, oder?

Ist es also richtig, dass ich dem Motor erst mal einen
beliebigen Stromzustand vorgeben muss, dann erst den
Motor auf eine gewünschte Position bewege und anschließend den Schrittzähler auf Null stelle? Wenn ich die Position des Rotors
einstelle, den Schrittzähler nulle und dann den Motor „einschalte“
könnten dabei theoretisch schon Schrittfehler auftreten,
sehe ich das richtig?

Wie geht man üblicherweise in der Praxis vor?

MfG, Jens

Hallo,

Wenn ich dem Motor den ersten Stromzustand vorgebe,
weiss ich ja nicht, in welcher Position sich der Rotor
in Bezug auf den Stator befindet. Also kann es doch sein,
dass sich der Rotor dabei ein paar Schritte dreht, oder?

nein, das glaube ich nicht. Der Motor wird sich nur auf die
nächste stbabile Position bewegen, wenn er sich vorher irgend wo
dawischen befunden hat.
Im normalen Betrieb bleibt ein Schrittmotor ja üblicherweise immer
unter Strom, damit er eben keine undefinierte Position einnimmt.

Ist es also richtig, dass ich dem Motor erst mal einen
beliebigen Stromzustand vorgeben muss, dann erst den
Motor auf eine gewünschte Position bewege und anschließend den
Schrittzähler auf Null stelle?

So wird das oft gemacht, wenn man eine definierte Ausgangsposition
braucht. Man hat irgend wo eine Sensor (Endlagenschalter,
Gabelkoppler o.ä.), der eine feste Position detektiert.
Von da aus kann man mit Schritte zählen weitermachen.

Wenn ich die Position des Rotors einstelle, den Schrittzähler
nulle und dann den Motor „einschalte“

Wie soll das nun gehen? Erst „Rotor einstellen“ , dann Motor „anschalten“ ???

könnten dabei theoretisch schon Schrittfehler auftreten,
sehe ich das richtig?
Wie geht man üblicherweise in der Praxis vor?

Gruß Uwi

Hallo,

Wenn ich dem Motor den ersten Stromzustand vorgebe,
weiss ich ja nicht, in welcher Position sich der Rotor
in Bezug auf den Stator befindet. Also kann es doch sein,
dass sich der Rotor dabei ein paar Schritte dreht, oder?

nein, das glaube ich nicht. Der Motor wird sich nur auf die
nächste stbabile Position bewegen, wenn er sich vorher irgend
wo
dawischen befunden hat.

Mmmh, also du denkst auch, dass sich der Motor bewegen wird,
wenn auch nur auf die nächste stabile Position. Und du meinst,
eine stabile Position ist niemals mehrere (Halb-)Schritte
entfernt?

Im normalen Betrieb bleibt ein Schrittmotor ja üblicherweise
immer
unter Strom, damit er eben keine undefinierte Position
einnimmt.

Ok, aber ich gehe von dem Fall aus, dass der Motor das erste
Mal (am Tag z.B.) in Betrieb genommen wird.

Ist es also richtig, dass ich dem Motor erst mal einen
beliebigen Stromzustand vorgeben muss, dann erst den
Motor auf eine gewünschte Position bewege und anschließend den
Schrittzähler auf Null stelle?

So wird das oft gemacht, wenn man eine definierte
Ausgangsposition
braucht. Man hat irgend wo eine Sensor (Endlagenschalter,
Gabelkoppler o.ä.), der eine feste Position detektiert.
Von da aus kann man mit Schritte zählen weitermachen.

Das habe ich vermutet. So ähnlich werde ich es auch machen.

Wenn ich die Position des Rotors einstelle, den Schrittzähler
nulle und dann den Motor „einschalte“

Wie soll das nun gehen? Erst „Rotor einstellen“ , dann Motor
„anschalten“ ???

Ok, ich sehe ein, dass das nicht viel Sinn macht, aber nimm mal an,
es fließt noch kein Strom und der Rotor wird mit der Hand auf eine
bestimmte Position bewegt, die ich durch Markierungen an meinem Gerät
gekennzeichnet habe. Diese Position soll meine Nullage sein. Dann
schalte ich einen Stromzustand ein.

Ich weiß in diesem Fall nicht, welcher stabilen Position mein
Rotor am nächsten ist. Wenn ich nun einen beliebigen Stromzustand
vorgebe, kann ich ja nicht wissen, ob dieser der nächstmöglichen
stabilen Position entspricht.

könnten dabei theoretisch schon Schrittfehler auftreten,
sehe ich das richtig?
Wie geht man üblicherweise in der Praxis vor?

Gruß Uwi

Hallo,
bitte meine evtl. untechnische Ausdrucksweise zu entschuldigen:
auch im stromlosen Zustand befindet sich der Motor nicht zwischen zwei Schritten.
Du weisst bloß nicht, ob in Drehrichtung vor oder hinter deinem Abschaltpunkt. Du merkst ja das magnetische „Rastverhalten“, wenn Du den Rotor drehst
Und wenn Du keine Mikroschrittsteuerung hast, hast Du auch unter Strom eine rel grosse Schrittweite. Du kannst da ebenfalls nicht „zwischen“ den Schritten stoppen.
Ich hatte das mal bei einem Drehteller nicht bedacht und mir damit ein ziemliches mechanisches Einstellproblem eingehandelt.

Gruß
Peter

nein, das glaube ich nicht. Der Motor wird sich nur auf die
nächste stbabile Position bewegen, wenn er sich vorher irgend
wo
dawischen befunden hat.
Im normalen Betrieb bleibt ein Schrittmotor ja üblicherweise
immer
unter Strom, damit er eben keine undefinierte Position
einnimmt.

in einem bei mir aufgetretenen Fall:

„kleiner“ Schrittmotor - 9Grad Vollschritt - , treibt Kugelspindel mit 2mm Steigung, die einen Schlitten hin-und-her bewegt. Hub 120mm

Jetzt Notaus- Stromaus: der Schlitten kann folglich irgendwo stehen.
Außerdem musst Du ja davon ausgehen, dass jemand von Hand am Antrieb gespielt hat.
Folglich musst Du referenzieren. Lichtschranke oder so.
Und da fangen die Probleme u.U. an, jedenfalls, wenn Du es mit einer sturen Elektronikabteilung zu tun hast.
Weil:
Während des Normalbetriebs fährst Du die gewünschte Position mit einer Rampe an.(Am einfachsten per Schrittzählung)
Geht für das erste Referenzieren natürlich nicht.
Und wenn dann die Software den Referenzgeber mit polling abfragt…
Und da hast Du evtl. schon den ersten Schrittfehler.
Mich hätte mal interessiert, wie andere sowas machen

Gruß
Peter

Hallo auch Peter

Weil:
Während des Normalbetriebs fährst Du die gewünschte Position
mit einer Rampe an.(Am einfachsten per Schrittzählung)
Geht für das erste Referenzieren natürlich nicht.
Und wenn dann die Software den Referenzgeber mit polling
abfragt…
Und da hast Du evtl. schon den ersten Schrittfehler.
Mich hätte mal interessiert, wie andere sowas machen

Die ersten 1-2 Umdrehungen mit der minimalen Drehzahl, damit der Rotor im Magnetfeld „eingängt“.

Je nach Konstuktion:

  1. 2 Endschalter und Referenzpunkt.
    Ein Ende Anfahren, bis der Endschalter betätigt ist. Damit hat mal man eine Grobe Positinsbestimmung.

  2. 2 Mechanische Anschläge und Referenzpunkt.
    Anzahl Schritte für die maximale Distanz plus etwas Zuschlag verfahren. Geschwindigkeit und Drehmoment evtl. drosseln. Dann ist man am mechanischen Anschlag und hat grob die Position.

Dann die Referenz anfahren. Bei Pooling muss man so langsam fahren, dass man immer zwischen 2 Schtitten den Sensor abfragen kann.

MfG Peter(TOO)

1 Like

Hallo auch Peter
Danke
eigentlich logisch, aber komm da mal in der Hektik ( "schei…, es geht nicht und nächste Woche ist Abnahme) drauf.
Vor allem, wenn du „bloß“ für die Mechanikkonstruktion zuständig bist und die Elektronik das eh für ein mechanisches Problem halten will.
(nach dem Motto: der verliert Schritte -> Mechanik)

Bei Pooling muss man so langsam
fahren, dass man immer zwischen 2 Schtitten den Sensor
abfragen kann.

MfG Peter(TOO)

Hallo,

zwischen zwei Schritten.
Du weisst bloß nicht, ob in Drehrichtung vor oder hinter
deinem Abschaltpunkt. Du merkst ja das magnetische
„Rastverhalten“, wenn Du den Rotor drehst

na ja, im Leerlauf, also ohne irgend was dran ist das sicher so.
Wenn die Last aber ein größeres Drehmoment/Reibung hat als das
recht kleine Rastmoment ohne Strom, dann wird das wohl nicht mehr
so sein.

Und wenn Du keine Mikroschrittsteuerung hast, hast Du auch
unter Strom eine rel grosse Schrittweite. Du kannst da
ebenfalls nicht „zwischen“ den Schritten stoppen.

Für geringere Auflösung ist ja dann evtl. auch noch ein Getriebe gut.

Ansonsten muß ich zugeben, daß ich auch nicht gerade auf
Schrittmotoren spezialisiert bin. Wenn möglich vermeide ich die
Dinger wegen der doch etwas aufwendigen Ansteuerung.
Gruß Uwi

Hallo Uwi,
Einwand stimmt, solange es ein spielfreier! Spindelantrieb ist. Kugelrollspindel oder vorgespannte Mutter.
Meine "Horror"beschreibung geht übrigens auf den Schrittmotorantrieb eines kleinen, schnuckelichen Drehtellers zurück.
Für ein zwischengeschaltetes Getriebe gilt ähnliches.
(mittlerweile gibt es aber Motore mit Nullpunkt-codierten Encoderscheiben)

Gruß
Peter

na ja, im Leerlauf, also ohne irgend was dran ist das sicher
so.
Wenn die Last aber ein größeres Drehmoment/Reibung hat als das
recht kleine Rastmoment ohne Strom, dann wird das wohl nicht
mehr
so sein.

Hallo,

Wenn ich dem Motor den ersten Stromzustand vorgebe,
weiss ich ja nicht, in welcher Position sich der Rotor
in Bezug auf den Stator befindet. Also kann es doch sein,
dass sich der Rotor dabei ein paar Schritte dreht, oder?

Ja.

Ist es also richtig, dass ich dem Motor erst mal einen
beliebigen Stromzustand vorgeben muss, dann erst den
Motor auf eine gewünschte Position bewege und anschließend den
Schrittzähler auf Null stelle?

Ja. Das heißt dann ‚Referenzfahrt‘. Es wird dabei zunächst der eine, dann der andere Endschalter angefahren, als drittes dann der Referenzschalter irgendwo dazwischen. Alles schön langsam, damit nach jedem Einzelschritt die Schalter abgefragt werden können. Ggf. kann man auch einen Drehgeber verwenden, um ein Übersetzen des Motors bei Überlastung zusätzlich erkennen zu können.

Wenn ich die Position des
Rotors
einstelle, den Schrittzähler nulle und dann den Motor
„einschalte“
könnten dabei theoretisch schon Schrittfehler auftreten,
sehe ich das richtig?

Kommt drauf an, wie genau die erartete Position des Motors eingestellt wird. Je nach Winkelauflösung muss es schon sehr genau sein. Wenn man dann noch evt. Elastizitäten berücksichtigen muß, lässt man dies lieber sein.

Wie geht man üblicherweise in der Praxis vor?

Referenzfahrt, wenn man eine absolute Position braucht. Einfach Endschalter überwachen, wenn eine relative Position auch okay ist. Mit dem Ruck beim Einschalten muß man ohnehin leben. Mit dem fehlenden Bremsmoment nach dem Ausschalten auch.

Gruß
Axel

Anmerkung
Hallo,

Wenn die Last aber ein größeres Drehmoment/Reibung hat als das
recht kleine Rastmoment ohne Strom, dann wird das wohl nicht
mehr so sein.

Im stromlosen Zustand sollte da imho eigentlich gar nichts rasten. Nur der Läufer hat einen Permanentmagneten, außen sind nur Spulen.

Und wenn Du keine Mikroschrittsteuerung hast, hast Du auch
unter Strom eine rel grosse Schrittweite. Du kannst da
ebenfalls nicht „zwischen“ den Schritten stoppen.

Für geringere Auflösung ist ja dann evtl. auch noch ein
Getriebe gut.

Das dann natürlich entsprechend spielfrei sein sollte.

Ansonsten muß ich zugeben, daß ich auch nicht gerade auf
Schrittmotoren spezialisiert bin. Wenn möglich vermeide ich
die Dinger wegen der doch etwas aufwendigen Ansteuerung.

Gibt noch weitere Nachteile - z.B. die fehlende Dynamik. Der hohe Strom auch im Stillstand. Das ‚Übersetzen‘ bei zu großen Momenten. Der Lärm beim Fahren. Etc…

Gruß
Axel

Dann die Referenz anfahren. Bei Pooling muss man so langsam
fahren, dass man immer zwischen 2 Schtitten den Sensor
abfragen kann.

MfG Peter(TOO)

Hi Peter,
bei uns wird der Referenzpunkt mit schneller Geschwindigkeit angefahren. Beim Erreichen Abrampen und sehr langsam wieder zurück bis Referenzpunkt verlassen wird. So hat man immer den exakt gleichen Punkt erreicht. Alles per Software realisiert, die maximale geschwindigkeit ergibt sich aus der Breite des Sensors und der Pollingrate: Bei MaxSpeed muss der Sensor mindestens 1 Mal erkannt werden.
Gruss, Hans

Hallo Hans,

bei uns wird der Referenzpunkt mit schneller Geschwindigkeit
angefahren. Beim Erreichen Abrampen und sehr langsam wieder
zurück bis Referenzpunkt verlassen wird. So hat man immer den
exakt gleichen Punkt erreicht. Alles per Software realisiert,
die maximale geschwindigkeit ergibt sich aus der Breite des
Sensors und der Pollingrate: Bei MaxSpeed muss der Sensor
mindestens 1 Mal erkannt werden.

Damit machst du bein ersten „Überfahren“ eine grobe Positionierung und anschliessend die entsprechende Kallibrierung auf den Schaltpunkt.

Allerding gibt es auch das Problem, dass die Referenz so positioniert ist (z.B. irgendwo in der Mitte), dass man bein Anschalten gar nicht weiss in welche Richtung man fahren muss. Dann hast du nur die Möglichkeit zuerst an ein Ende zu fahren und von dort aus dann die Referenz anzufahren. Allerdings erreichst du mit einem Endschalter schon eine Genauigkeit im mm Bereich, wodurch auch die Referenz schon optimiert angefahren werden kann.

Was ich allerdings vergessen habe zu erwähnen ist, dass man die Referenz immer von der gleichen Seite her anfahren und immer die gleiche Flanke auswerten muss, um reproduzierbare Resultate zu erhalten.

MfG Peter(TOO)

Hallo Axel,

die Spulen besitzen doch einen Eisenkern.
Der wird vom Permanentmagneten eines
Permanentmagnetschrittmotors oder eines Hybrid-
schrittmotors angenzogen.

Reluktanzschrittmotoren haben dagegen kein
Selbsthaltemoment.

Gruß, Jens

Hallo Axel,

danke,
genau diese Informationen hatte ich gesucht.

Gruß, Jens

Hallo,

die Spulen besitzen doch einen Eisenkern.
Der wird vom Permanentmagneten eines
Permanentmagnetschrittmotors oder eines Hybrid-
schrittmotors angenzogen.
Reluktanzschrittmotoren haben dagegen kein
Selbsthaltemoment.

Hast Recht, hab’ ich verwechselt.

Gruß
Axel