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?
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.
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
....
>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.
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
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.
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
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.
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 :-)
@ 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
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...
@ 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
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.
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.
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.
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?
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?
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.
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.
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.
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