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.
Das ist ein netter Vorschlag, dem ich selbst schon nachgegangen bin, aber leider ist diese Abweichung für die geplannten Anwendung zu groß.
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
@Eugen Hast Du schon Ergebnisse zu vermelden? Sonst nehmen hier die Schwätzer wieder Oberhand.
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?
Sieht Dir mal das Thema Schrittverlust, Schrittverlusterkennung, Anlaufstrom, Start- und Stoppfrequenz an. Du hast gfs ein Start- oder Bremsproblem.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.