Forum: Mikrocontroller und Digitale Elektronik Mikroschrittproblem beim Schrittmotor


von Eugen (Gast)


Lesenswert?

Hallo zusammen,

ich steuer über eine SPS einen Schrittmotor über einen entsprechenden 
Treiber im Mokroschrittbetrieb an ( Vollschritt 1,8° => Mikroschritt 
1/64 entspricht 0,028125°). Schrittmotor und Treiber sind beide von 
motionstep. Zur Positionserkennung ist ein Drehgeber mit dem Motor 
gekoppelt.

Nun habe ich das Problem, das der Schrittmotor gewisse Positionen nur 
recht ungenau anfahren kann. Z.B soll der Schrittmotor ausgehend von der 
Position 0° auf die Position 102° fahren. Daraus ergeben sich gerundet 
427 Schritte. Wenn ich also nun dementsprechend 427 Impulse (incl. 
Beschleunigungs- und Abremsphase) an den Treiber raus gebe landet der 
Schrittmotor statt bei der Position 102,009°, beispielsweise an der 
Position 102,3°. Dies wird über den Drehgeber erkannt und ein 
Nachpositionieren initialisiert (0,3/0,028125= 11 Schritte in die 
entgegengesetzte Richtung). Wenn nun diese weiteren 11 Schritte an den 
Schrittmotr übermittelt werden, fährt er erneut zu weit. und ich lande 
bei der Position 101.7°. Wenn ich wieder Nachpositioniere gescheit das 
selbe er fährt erneut auf die 12,3°. Dies kann sich Minuten lang so 
hinziehen bis er irgendwann dann doch aus mir unerklärlichen Gründen die 
Zielposition erreciht ooder ich das ganze abbreche, weil es einfach zu 
lange dauert.

Andere Positionen hingegen trifft er auf den Punkt bzw. liegt es dann 
innerhalbt einer Tolleranz von +/- 0,2°.

Dieses Problem tritt in gleicher Weise bei kleinen als auch bei großen 
Beschleunigungs- bzw. Bremsrampen auf.


Zuvor war ich eigentlich davon ausgegangen, das ein Schrittmotor mit 
entsprechendem Treiber jeden einzelnen Mikroschritt fahren kann. Oder 
doch nicht?

von Gast (Gast)


Lesenswert?

Mit den Mikroschritten ist das so eine Sache.
Zum einen müssen dem Motor genaue Ströme für seine Wickelungen gegeben 
werden und zum anderen muß er die gewünschte Position dann auch exakt so 
erreichen. Je feiner die Mikroschritte werden, desto schwieriger ist es, 
diese in der Praxis auch genau umzusetzen.

Ich denke, Du solltest Deine Ansprüche reduzieren und Dich freuen, daß 
die Mikroschritte den Motor leiser laufen lassen.

von Eugen (Gast)


Lesenswert?

Das ist ein netter Vorschlag, dem ich selbst schon nachgegangen bin, 
aber leider ist diese Abweichung für die geplannten Anwendung zu groß.

von sdfg (Gast)


Lesenswert?

betreibst du für den stillstand eine stromabsenkung?

bzw nutzt du markenmototren ? den billigen wird nachgesagt das durch das 
schnelle stanzen der bleche im randbreich unterschiedlich magnetisieren.

hast du schon einen mechansiche last drann oder betreibst du das 
freischwingend?

dir ist auch bewußt das selbst hersteller wie beckhoff in ihren 
datenblättern sagen das /64 wunschdenken ist und mechnaisch nicht 
erreichbar sind.

schonmal grundstellung eingenommen und dann nacheinander 1/64 schritt 
zugelegt also ohne großes beschleunigen und bremsen. so nach dem motto 1 
schritt je sekunde. um überhaupt zu sehen was los ist?

zumindest würde ich das alles mal ausprobieren um zu sehen was machbar 
ist

....

von Gast (Gast)


Lesenswert?

>aber leider ist diese Abweichung für die geplannten Anwendung zu groß.

Dann solltest Du eine Untersetzung des Antriebes vorsehen: ein Getriebe 
ohne Spiel oder einen Riemenantrieb.
Bedenke, daß schon ein kleines Drehmoment auf die Motorachse die 
Position beeinflußt. Je nach äußerer Last kann die Istposition 
variieren, wenn sie mal aus der einen und dann aus der anderen Richtung 
angefahren wird.

von fritz (Gast)


Lesenswert?

Hallo Eugen,

ich habe mit der Karte TMCM 310 experimentiert.

http://www.trinamic.com/tmc/render.php?sess_pid=281

Die Karte hat schon die Fahrrampen und auch den Mikrostep. Ich musste
aber feststellen, dass der Mikrostep bei einem beliebigen Motor nicht 
präzise funktionierte. Wahrscheinlich sollt man den Schrittmotor auch 
vom Hersteller der Ansteuerung kaufen oder noch besser einen 
Schrittmotor mit Steuerung.
z.B. Reichelt, PD2-013-42 , 139.- Euro

Gruß Fritz

von Eugen (Gast)


Lesenswert?

Hallo,

der Schrittmotor als auch die Treiberstufe sind beide von motionstep und 
wohl auch keine "Billigprodukte". Daher sollte diesbezüglich kein 
Problem auftreten. Ja den Schrittmotor betreibe ich bereits mit einer 
Last, wobei die Last ein Drehteller (10kg) ist und einem kleinen Dämpfer 
(nur geringe mechanische Belastung), der das nachschwingen des 
Drehtellers nach dem anhalten reduziert. Der Motor hat ein Haltemoment 
von 12Nm bei 3,2A.

Zu der hohen Mikroschrittzahl und deren Positioniergenauhigkeit, hab ich 
nun auch einige Auszüge gelesen, aber es sollte doch möglich sein mit 
einer 1/64 Einstellung genauer zu fahren als mit einer 1/16 
(0,1125°)Einstellung. Leider habe ich allerdings noch keine Angaben zu 
den Schrittfehlern bzw. Positionierfehlern bei Mikroschritten gefunden. 
Ich weiß lediglich das die Abweichung relativ groß wird je feiner die 
Auflösung. Nur bei dem angeführten Beispiel währe das beirets eine 
Abweichung von über 1000%. Das finde ich dann doch zu viel.

von Einhart (Gast)


Lesenswert?

Hallo Eugen,

ohne Last wird das wohl ganz gut funktionieren.

Wie ich mir das vorstelle: bei vollen Schritten "rastet" der Motor auf 
den Polen magnetisch ein. Bis zum "Rasten" ist ein großes Drehmoment 
vorhanden. Zwischen den Polen wird die Position durch das 
Feldstärkeverhältnis zwischen den benachbarten Polen erreicht d.h. das 
Drehmoment reduziert sich stark je näher die Position des Rotors an der 
Zielposition ist.

Gruß
Einhart

von Gast (Gast)


Lesenswert?

Vielleicht hilft es Dir, beim Anfahren an die Sollposition durch 
Einzelschritte eine bessere Positionierung zu erhalten. Also nicht 11 
Schritte in einem Rutsch ausgeben, sondern Schritt für Schritt mit 
jeweiliger Encoderauswertung.
Wenn hierbei auch keine stabile Position erreicht wird, ist die Hardware 
unzureichend.

>der Schrittmotor als auch die Treiberstufe sind beide von motionstep und
>wohl auch keine "Billigprodukte".

Mag sein, aber Auflösung und Genauigkeit sind verschiedene Dinge.

von Winfried (Gast)


Lesenswert?

Genau, das Drehmoment bei so feinen Schritten könnte so stark abfallen, 
dass nicht mal mehr die Reibung überwunden wird, damit der Motor sich 
zum nächsten Mikro-Schritt dreht.

Ich würd mal testweise von Mikroschritt zu Mikroschritt fahren und 
schauen, was der Encoder dir für einen Wert liefert. Da wirst du wohl 
schon sehen, dass die Genauigkeit nicht sehr hoch ist. Das ganze dann 
auch Rückwärts zurück und auch hier die Werte vergleichen. Und das ganze 
dann mehrfach, um die Wiederholgenauigkeit herauszufinden. Danach wirst 
du wahrscheinlich sehr enttäuscht auf dem Boden der physikalischen 
Tatsachen zurückgeholt sein :-)

von Falk B. (falk)


Lesenswert?

@ Gast (Gast)

>Vielleicht hilft es Dir, beim Anfahren an die Sollposition durch
>Einzelschritte eine bessere Positionierung zu erhalten. Also nicht 11
>Schritte in einem Rutsch ausgeben, sondern Schritt für Schritt mit
>jeweiliger Encoderauswertung.

Naja, wenn man in Echtzeit zwischen Mikroschritt und Vollschritt 
umschalten kann, dann kann man ja erstmal per Vollschritt die Position 
gob anfahren, abbremsen, umschalten auf Mikroschritt, Endposition 
langsam anfahren.

>Mag sein, aber Auflösung und Genauigkeit sind verschiedene Dinge.

Eben. Auflösung und Genauigkeit.

MfG
Falk

von Unbekannter (Gast)


Lesenswert?

Tja, willkommen in der praktischen Realität, in der es Toleranzen und 
andere böse Dinge gibt.

Das was Du machen willst, geht mit einem Schrittmotor nicht so einfach.

Um es Dir mal plastisch vor Augen zu führen:

Bei 1/64 Mikroschritt und 200 Vollschritten pro Umdrehung sind das 12800 
Mikroschritte pro Umdrehung.

Das ist in etwa so, als ob Du auf einer Strecke von einem Meter Länge 
mit einer Genauigkeit von 0,08 mm positionieren willst.

Das kann man alles machen, nur ist das alles andere als trivial und 
billig.

Du kannst solche Antriebe und Achsen fertig kaufen, wo sich Ingenieure 
um diese Genauigkeit gekümmert haben. Nur wird das Dein Geldbeutel 
vermutlich nicht hergeben...

von Falk B. (falk)


Lesenswert?

@ Unbekannter (Gast)

>Bei 1/64 Mikroschritt und 200 Vollschritten pro Umdrehung sind das 12800
>Mikroschritte pro Umdrehung.

Pahhh, das sind doch Peanuts. Ich hab vor kurzem einen Absolutwertgeber 
in der Hand gehabt und ausgelesen, der macht 25 Bit ( Ja, 
Fünfundzwanzig) Aufösung auf eine Umdrehung, sprich ~32 Million 
Schritte. Aber OK, das ist interpoliert, und das merkt man beim Auslesen 
ganz fix. Direkt löst der "nur" 13 Bit auf 8192 Schritte pro Umdrehung), 
die letzten Stellen brauchen mehrere Sekunden ! um sich stabil 
einzuschwingen. Da wird wohl ein digitaler Filter dahinter hängen.

>Das kann man alles machen, nur ist das alles andere als trivial und
>billig.

;-)

MfG
Falk

von Gast (Gast)


Lesenswert?

@Eugen

Hast Du schon Ergebnisse zu vermelden? Sonst nehmen hier die Schwätzer 
wieder Oberhand.

von Eugen (Gast)


Lesenswert?

Hallo,

ne, ich hab noch nicht wieder getestet, vielleicht komme ich morgen ja 
dazu. Allerdings kann ich im Betrieb nicht die Schrittweite verstellen. 
Dies wird an einem Dip-Schalter vogenommen. Außerdem komme ich ihm 
Mikroschrittbetrieb ja auch nah dran, aber eben nicht nah genug.

Der Motor ist mit einer Genauigkeit von +/- 5% im Vollschritt 
(1,8°)angegeben. Gibt es ne Möglichkeit das auf die Mikroschritte 
umzurechnen oder bleibt es da bei den +/- 0,09°? Hab dazu noch nichts 
brauchbares gefunden.

Eine andere Mäglichkeit wäre vieleicht noch mit der 
Schreittweiteneinstellung zu "experementieren, evtl würde ich ja mit 
einer 1/32 oder 1/16 Einstellung besser fahren. Ich habe mittlerweile 
auch den Verdacht, dass das Drehmoment nicht ausreichend sein könnte. 
Das Drehmoment sollte ja dann wieder besser werden wenn ich ne größere 
Schrittweite wählen würde. Wichtig ist jedoch nach wie vor eine Toleranz 
von +/- 0,2° einzuhalten.

In einem Artikel stand ausserdem, dass das betreiben des Motors mit 
Nennstrom im Mikroschrittbereich ebenfalls ungünstig wäre, da man dabei 
nah an die Sättigungsgrenze kommt. Ich werde das dann auch gleich mit 
ausprobieren.

von Schrittmotorspezialist (Gast)


Lesenswert?

Ich weis nicht, ob es schon erwähnt wurde, aber ohne eine ausreichende 
statische Bestromung bleibt der Motor nicht in einem Zwischenschritt 
stehen, sondern fällt auf eine der 45-Gradpostionen.

von Eugen (Gast)


Lesenswert?

Guten Morgen,

also, bis jetzt ist der Phasen-Strom für den Motor im Treiberbaustein 
nach Datenblatt auf 3.2A eingestellt. Der Schrittmotor wird im Bipolar 
(Series) Modus betrieben. ich werde mich dann gleich noch mal da dran 
setzten. Mal sehen ob ich dann weiter komme.

von Einhart (Gast)


Lesenswert?

Wenn schon ein Geber vorhanden ist scheint mir ein Schrittmotor für hohe 
Positioniergenauigkeit nicht die erste Wahl zu sein. Da würde ich einen 
Servo nehmen. Was spricht gegen einen Servomotor?

von Eugen (Gast)


Lesenswert?

Moin,

die Schrittmotr variante ist schon vorhanden.

So, nach dem ich nun alles getestet hab, ist mir eine Sache aufgefallen, 
der Scrittmotor läuft nicht gleichmässig. Wenn ich die Schritte mit 
einer konstanten Frequenz auf den motor gebe, macht er alle 144 Schritte 
einen Sprung. er läuft sozusagen nicht rund. Das ist das erste mal das 
ich mit einem Schrittmotor zu tun habe, aber ich denke das ist auf 
keinen Fall normal, er sollte ja in solch einem Fall ruhig und konstant 
laufen oder?

von Oberlogistiker (Gast)


Lesenswert?

Sieht Dir mal das Thema Schrittverlust, Schrittverlusterkennung, 
Anlaufstrom, Start- und Stoppfrequenz an. Du hast gfs ein Start- oder 
Bremsproblem.

von Eugen (Gast)


Lesenswert?

Moin,

wie ist denn das, läuft ein Schrittmotor, wenn man ihn mit z.B 5Hz bei 
1/4 Auflösung taktet ruhig bzw. sind alle Schritte gleich groß?

Ich hab das heute noch mal genauer bei mir überprüfft. Der Schrittmotor 
macht, sobald man eine höhere Schrittauflösung einstellt als den 
Vollschrittbetreib, stehts an einer Stelle innerhalb von 1,8° einen 
deutlich größeren Schritt. bei 1/4 ist immer der vierte Schritt deutlich 
größer als die davor. bei 1/16 ist es dann der 16te Schritt. Ich war 
eigentlich davon ausgegangen, das ein Schrittmotor konstante 
Schrittweiten hat. Als Ursache dafür kann ich die Treiberstufe 
ausschließen, da z.B im 1/64 Betrieb nach einem zu großen Schritt, man 
hören kann, dass die Impulse an den Motor ausgegeben werden, er sich 
aber erst nach einigen takten danach wieder bewegt.

von Benedikt K. (benedikt)


Lesenswert?

Eugen wrote:
> Moin,
>
> wie ist denn das, läuft ein Schrittmotor, wenn man ihn mit z.B 5Hz bei
> 1/4 Auflösung taktet ruhig bzw. sind alle Schritte gleich groß?
>
> Ich hab das heute noch mal genauer bei mir überprüfft. Der Schrittmotor
> macht, sobald man eine höhere Schrittauflösung einstellt als den
> Vollschrittbetreib, stehts an einer Stelle innerhalb von 1,8° einen
> deutlich größeren Schritt. bei 1/4 ist immer der vierte Schritt deutlich
> größer als die davor. bei 1/16 ist es dann der 16te Schritt. Ich war
> eigentlich davon ausgegangen, das ein Schrittmotor konstante
> Schrittweiten hat.

Hat er auch, aber eben nur bei vollen Schritten. Bei all diesen 
Pseudoschritten passiert das hier:

Einhart wrote:
> Wie ich mir das vorstelle: bei vollen Schritten "rastet" der Motor auf
> den Polen magnetisch ein. Bis zum "Rasten" ist ein großes Drehmoment
> vorhanden. Zwischen den Polen wird die Position durch das
> Feldstärkeverhältnis zwischen den benachbarten Polen erreicht d.h. das
> Drehmoment reduziert sich stark je näher die Position des Rotors an der
> Zielposition ist.

Mit anderen Worten: In der Nähe des nächsten "eigentlichen Schrittes" 
gibt es einen deutlichern Sprung als dazwischen. Dazwischen ist der 
Schrittmotor nicht digital sondern analog.

von Gast (Gast)


Lesenswert?

Moin, moin,

hast Du Dein Problem gelöst bekommen, Eugen, oder alles in die Tonne 
gekloppt?
Mich würde interessieren, wie 'gut' die Teile von motionstep sind.

von Eugen (Gast)


Lesenswert?

Moin,

der Treiber hat ein Poti mit dem man im Prinzip die Präzision der 
Mikroschritte einstellen kann. Ob dies Einfluss auf's Drehmoment oder 
etwas anderes hat weiß ich jedoch nicht. Den hatte ich zuvor übersehen. 
Damit läuft der Schrittmotor wesentlich ruhiger. Allerdings muss ich bei 
anfahren der Winkel recht oft Nachpositionieren. Wie ich oben schon 
erwähnte verwende ich zur überprüfung der Position einen Encoder, der 
eine genauigkeit von 0,0125° hat. Mit dem Encoder und dem 
Nachposotionieren erreiche ich nun eine Genauigkeit von +- 0,025°.


Gruß Eugen

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.