Hallo zusammen, ich möchte für ein Automatisierungs Testaufbau mehrere Schrittmotoren einsetzen. ca Nema 23 mit 3NM. Während des Automatisierungs-Ablaufs müssen die Motoren unterschiedliche Lastmomente verarbeiten können. Normalerweise werden die Schrittmotoren mit Takt und Richtungs Signalen angesteuert als Rampe bzw. nach oben offene und untene Parabel angesteuert so dass sich eine quasi S förmige Anfahr und Anahlte Kurve ergibt. Bei einer CNC Anwendung ist z.B. das auftretende Lastmoment durch die Geometrie, Materialgewicht, Übersetzung usw. nahezu konstant so dass man bei ausreichender Reserve davon ausgehen kann, dass keine Schrittverluste auftreten können. Wenn sich die Lastmomente durch z.B. in zufälliger Reihenfolge zu verarbeitende kleine und größere Lasten wesentlich unterscheiden ( kleinste Last = 100 % , größte Laste 300 % müssten die Ansteuer Rampen immer nach der größten Last dimensioniert werden und viel Geschwindigkeitspotential verschenkt werden. Ich möchte nun aus Kostengründen eine standard Stepper Endstufe verwenden und meine eigene Steuerung per Mikrocontroller dazwischen hängen. Dieser soll die Impulse eines Drehencoder, welcher sich auf der Rückseite des zweiachsigen Schrittmotors befindet auswerten. In meinem Fall würden schwere Lasten automatisch langsamer und leichtere Lasten automatisch schneller verarbeitet. Der SW Regler im Controller würde dann anhand der Lastaufnahme quasi in Echtzeit eine "quasi" Einschaltkurve aufnehmen und daraus die Parameter für die Rampe für Verarbeitung des Objectes errechenen. Ist diese Vorhaben so durchführbar oder hab ich einen groben Denkfehler ? Fertige Kombinationen Schrittmotor + Encoder + Endstufe mit Encoder Auswertung sind sehr teuer, wenn mann bedenkt, dass ich davon 4 oder 5 bräuchte. Bin für jeden Tipp dankbar.
Puh! Da brauchst du einen Encoder, der den Lastwinkel misst. Und eine Regelung, die den Winkel unterhalb des kritischen Wertes hält - Wenn der Motor einen Schritt verloren hat, musst du ja wieder bei Start/Stop Frequenz neu anfangen. Kein Wunder, dass so etwas teurer als ein Servomotor wird.
Hallo gast, die erste Frage ist folgende willst du syncronen Betrieb machen mit mehreren Motoren ???? Oder willst du nur schauen, dass die Motoren trotz großer Last dort sind wie sie sein sollen ... Dann die Frage weiter: Wenn der Motor in hoher Drehzahl ist, und dann kommt die Last, welche Strategie hast du vor um den Motor wieder hoch zu bekommen... Denn dann musst du wieder mit Rampe hochkommen. Dann: 1. Soll das nur ein Motor sein pro Kontroller 2. Wenn mehrere Motoren wie Synconisieren ??? Schrittmotoren haben ein maximales Drehmoment. Wenn dieses Überschritten wird, ist es sehr schwer diese wieder einzufangen. Da sind Servos eigentlich das richtige (Und auch teurer) denn diese können teilweise kurz bis zu 400%. Beschreibe mal genauer was du vor hast. Gruß Thomas
Was spricht gegen Servomotoren ? Die sind besser geeignet fuer aendernde Lasten. Darf auch ein BLDC sein.
Hallo zusammen, vielen Dank für die Reaktionen :-)) 1a). willst du syncronen Betrieb machen mit mehreren Motoren ???? 1b). Oder willst du nur schauen, dass die Motoren trotz großer Last dort sind wie sie sein sollen ... Eindeutig 1b). Nur die genaue Position bzw. Momentan-Drehzahl soll bekannt bzw. geregelt werden. 2a). Wenn der Motor in hoher Drehzahl ist, und dann kommt die Last, welche Strategie hast du vor um den Motor wieder hoch zu bekommen... Der Ablauf geht in die Richtung, dass ein Gegenstand mit unterschiedlichem Gewicht und Größe per Zangen-/Greifmechanik aufgenommen und umplaziert werden soll. 3a). Soll das nur ein Motor sein pro Kontroller 3b). Wenn mehrere Motoren wie Synconisieren ??? Eindeutig 3b). Alle Endstufen der Motoren werden von einem einzigen Controller angesteuert. Falls die Rechenbelastung wegen der zeitgerechten Auswertung der Encoder Signale zu hoch wird, muss ich evtl. kleine Microcontroller je Endstufe nur für die Regelungs - Loop einsetzen. Im ersten Schritt zum Testen werde die Motoren im Vollschritt Betrieb laufen lassen. Wenn ich die Motoren im Mikroschritt Betrieb betreibe wird die benötigte Rechenleistung schon sehr hoch. Das sind eben jetzt genau die Gedanken die ich mir mache.
Du hast Dir da was sehr Großes vorgenommen. Hast Du Zeit, monatelang zu tüfteln? Wenn die Zeit begrenzt ist, kommst Du mit Servomotoren wahrscheinlich eher ans Ziel. Auch bei Servomotoren ist selbstbau der Elekronik möglich, was die Kosten etwas senken könnte. Schrittmotoren auf Schrittverlust zu überwachen ist eine Sache, gut erprobt, und sicher machbar. Aber Schrittmotoren so anzusteuern, zu regeln, daß es gar nicht zum Schrittverlust kommt, da haben sich selbst Motor-Spezialisten schon die Zähne ausgebissen. Wenn man sich dabei auf die Inkrementalgeber-Signale stützen will, muß der Geber recht hochauflösend sein -> Sehr teuer. Man kann aber auch aus der BEMF des Motors Informationen gewinnen, dann tut's aber nicht die Standard-Endstufe von ebay. Mit freundlichen Grüßen - Martin
Hallo, ich würde schlicht und einfach sagen, geht nicht. Ein Schrittmotor ist ein Synchronmotor, der entweder sauber seine Schritte ausführt oder katastrophal ausser Tritt fällt, meistens kommt er sofort und brutal zum Stillstand und oszilliert nur noch hin und her. Eine Rückmeldung für zunehmende Belastung gibt es nicht. Ich habe zwar eine Überwachung per Hallsensor eingebaut und kann feststellen, ob der Motor sich noch dreht, aber die Konsequenz, falls das mal nicht der Fall ist, ist ein komplett neuer Anlauf von der Drehzahl 0 an. Garantiert nicht das was du dir wünschst. Im Gegensatz dazu kann man bei einem Gleichstrommotor die bei Belastung absinkende Drehzahl einfach nachregeln, bzw. die übliche innere Regelschleife für die Drehzahl tut das sowieso. Aber vielleicht schreibst du ja die Geschichte der Regelung neu. Georg
Hallo zusammen, ich kann eure Argumentation gut nachvollziehen. Mir scheint allerdings, dass sich meine Aufgabenstellung von dem unterscheidet war ihr angenommen hat. Beispiel 1: zur Veranschaulichung: Ein Schrittmotor soll mittels einer direktgekoppelten Kugelumlaufspindel einen Schlitten über eine bestimmte Strecke z.B. 800mm horizontal bewegen. Die Last auf dem Schlitten ist bei einem Vorgang z.B. 5 Kg und beim nächsten 15 Kg usw. Es handelt sich also um eine wechselnde Last. Allerdings stellt sich jetzt die Frage mit welcher "Rampe" kann ein gegebener Schrittmotor angesteuert werden, damit die Last in der kürzest möglichen Zeit von A nach B transportiert wird ? Ohne Encoder Signal kann nur die maximale Last angenommen werden, Sicherheitszuschlag einrechnen usw. Mit Auswertung des Encoder Signals wird der Motor mit einer Start Frequenz angesteuert und anhand des gelesenen Drehwinkels vom Encoder ermittelt wann der gewünschte Drehewinkel erreicht wurde. Aus der jeweiligen Zeit Delta T die der Schlitten jeweils zum erreiches des nächsten vorgegebenen Drehwinkels benötigt kann eine "optimale Geschwindigkeit" erreicht werden. In "gewissen Grenzen" könnten mit diesem Verfahren sogar Störgrößen ausgeregelt werden ohne dass der Motor aus dem Tritt kommt. Was meint ihr dazu ?
Was spricht gegen den Ansatz: In den Greifer eine Waage einbauen Die optimalen Beschleunigungen für unterschiedliche Massen bestimmen Die Bahnen mit einer normalen Steuerung abfahren Eventuell noch auf Schrittverluste überprüfen - Experiment widerholen.
Hallo zusammen, Vorschlag: In den Greifer eine Waage einbauen Wenn meine Aufgabenstellung dem o.g. Beispiel entsprechen würde wäre das natürlich die nächstliegende Lösung. Das Beispiel war lediglich eine Veranschaulichung was mit wechselnder Last gemeint war. Übrigens erhöht die konstruktive Lösung für eine Waage im Greifer in einem einfachen Automatisierungsprozess die komplexität der Mechanik gewaltig. Wichtig Frage bezüglich Schrittverluste: ======================================== Ich hab das bisher so verstanden: Die Endstufe erhält die Taktsignale und errechnet intern die neuen Spannungswerte für die beiden Spulen des Schrittmotors. Die Spannung an der einen Spule wird etwas erhöht, die Spannung an der anderen Spule wird etwas erniedrigt. Je nach Betriebsart : Vollschritt, Halbschritt, Mikroschritt usw. ist die Delta Spannung größer oder kleiner.( bis zu einem sinusförmigen Gesamtverlauf ) Wenn nun z.B. durch eine unerwartet auftretendende zu große Last die Welle dem nächsten Schritt nicht folgen kann, kann dies von der Endstufe nicht erkannt werden. Sie geht davon aus, dass die richtige Position erreicht wurde. Es entsteht sozusagen ein Versatz. Die von der Endstufe eingestellt Spannung an den beiden Spulen passt nicht mehr zu der aktuellen Position der Welle. Folgende Randbedingungen: a. wir befinden uns im Vollschritt Betrieb. b. durch äußere Störbeeinflussung wurden 2 oder 3 Schritte von der Welle noch nicht vollzogen c. Die Auswertung des Encoder Signals erkennt diese Abweichung. d. er controller gibt KEINE weiteren Ansteuer Impulse und wartet Kann man sagen, dass in diesem Fall die Welle nach einer bestimmten Zeit automatisch wieder die korrekte Position einnimmt bezogen auf die Spannungen, welche die Endstufe momentan eingestellt hat ? Bei Auswertung des Drehwinkel Encoder Signals erscheint mir deshalb das unbedingte Vermeiden der Schrittverluste nicht als höchste Priorität.
Stepper_Fragender schrieb: > Bei Auswertung des Drehwinkel Encoder Signals erscheint mir deshalb das > unbedingte Vermeiden der Schrittverluste nicht als höchste Priorität. Damit gibst du freiwillig den einzigen Vorteil von Schrittmotoren gegenüber den Servos auf. Einer der wenigen Vorteile von Schrittmotoren ist ja die Zugehörigkeit von Schritt zu Winkel - wenn du darauf verzichtest, hat der Stepper keinen einzigen Vorteil gegenüber dem Servo. Ab jetzt ist der Servo mit Drehgeber der alleinige Kandidat, um dein Problem sinnvoll zu lösen.
:
Bearbeitet durch User
Das Problem dabei - nach einem Schrittverlust kannst du nicht weiter machen. Du musst die Beschleunigung wieder bei Start/Stop Frequenz neu beginnen. Würde drauf hinauslaufen - deine Regelung scheppert 3 mal, breibt stehen, danach hat sie raus, wie stark sie beschleunigen darf.
Hallo Stepper_Fragender ich will mal zum Abschluss hier nochmals was dazu schreiben..... Das was du vor hast, machen wir bei uns in der Firma. Das ist jetzt ein ca 5 Mann Jahre Projekt. Im Prinzip haben wir genau das was du suchst. Leider ist der Preis nicht im Hobby Bereich. Aber wenn du eine Steuerung suchst, die 5 Achsen (oder max 9) interpoliert fahren können soll. Das mit Encoder im Closed Loop auf dem Schrittmotor.... einfache PLC im Hintergrund zum steuern. Je nach Ausbau mit 12 Relais Ausgänge und 12 Potokoppler Eingänge.... Das Ganze als DLL um eine eigene Oberfläche zu schreiben ..... Ja www.4cam.de PowerdriveXT Dort steht auch unsere Telefonnummer.... Gruß Thomas
Noch einer schrieb: > deine Regelung scheppert 3 mal, breibt > stehen, danach hat sie raus, wie stark sie beschleunigen darf. Der erste Halbsatz stimmt, der 2. wahrscheinlich nicht - der Stepper müsste mit immer mehr Strom und/oder langsamerer Rampe neu anfahren, bis er die Last schafft, aber zu der Zeit hat ein DC-Antrieb längst sein Ziel erreicht. Stepper_Fragender schrieb: > Die von der Endstufe eingestellt Spannung an den beiden Spulen passt > nicht mehr zu der aktuellen Position der Welle. Wenn es den so einfach wäre - es geht nicht um "passt nicht", sondern nach 2 Schritten ist die Magnetisierung genau entgegengesetzt der erforderlichen, d.h. das System steht auf Vollbremsung. Das entspricht auch meiner praktischen Erfahrung, der Motor kommt mit einem lauten Knall augenblicklich zum Stillstand, und das tut der Mechanik garnicht gut. Stepper_Fragender schrieb: > Bei Auswertung des Drehwinkel Encoder Signals erscheint mir deshalb das > unbedingte Vermeiden der Schrittverluste nicht als höchste Priorität. Das ist schlicht Unverständnis der Stepper-Funktion. Georg
Die Diskussion läuft in die total falsche Richtung. Hätte damals jemand Linus Torvalds gesagt, was das für ein Aufwand wird, hätten wir heue kein Linux.
Hallo zusammen, vielen Dank für eure Beiträge. Der Einsatz von Servomotoren ist freilich aus mehreren Gründen die bessere Wahl. Dem steht der höhere Preis entgegen, weshalb von mir Schrittmotoren in Erwägung gezogen werden. Ich denke ich hab jetzt auch verstanden warum das Problem nicht mit der Kombination - Schrittmotor - Standard Endstufe - Drehencoder - Individual Controller vernünftig gelößt werden kann. Das eigentliche Problem ist die "Standard Endstufe". Wenn die Endstufe direkt in die Regelschleife miteinbezogen wird, wie es verschiedene Hersteller ja durchaus machen und auch z.B. auf youtube Videos eindrucksvoll demonstrieren, dann sieht die Sache wieder ganz anders aus. Die integrierten Bausteine der Standard China Schrittmotrr Endstufen sind mir bekannt. Es ist möglich indirekt über den Shunt Widerstand den momentanen Strom und dadurch die momentane Leistung der Endstufe zu ermitteln, welche ungefähr proportional zur momentanen Leistung der Welle ist. Wäre ein Entwurf möglich, der auf diese Weise das "außer Tritt kommen" des Schrittmotors verhindert so dass eben kein Neuanlauf aus dem Stop Zustand notwendig ist. Ohne dass ich jetzt in Erwägung ziehen möchte eine Schrittmotor Endstufe entwickeln zu wollen würde mich trotzdem interessieren wie das ungefähr gelöst wird. Kennt sich jemand aus ?
Funktioniert halt bei einem BLDC besser als bei einem Schrittmotor. Wenn du nach BEMF BLDC suchst, wirst du mit Mathe und Beispielcode erschlagen. BEMF stepper sieht da recht mau aus.
Hallo @all ich bin ohne Ahnung. Die mir scheinbar einfachste Möglichkeit.:Drehencoder erlaubt die Position zum Umschalten der Spulenpaare. Lässt der uC alle Signale durch, hast du einen DC-Motor gebaut. Große Last-> langsam; kleine Last -> schnell Der uC kann nun frei entscheiden, ob es mit dem Umschalten länger wartet um langsamer zu gehen. Messung der Masse durch Leistungsaufnahme hört sich interessant an. Aber braucht wohl erst einmal ein "proof of concept" (Wie genau / wie schnell kann ich messen) Gruß Felix
Hallo, deinem Vorhaben stehen u.a. 2 Punkte entgegen: Schrittmotoren haben, wie andere Synchronmotoren auch, eine Kennlinie mit Abriss: solange das Drehmoent ausreicht, drehen sie mit der Frequenz des Feldes, wenn nicht mehr geht die Drehzahl schlagartig gegen 0. Was du möchtest ist den Motor an dieser steilen Abrisskante zu betreiben. Üblicherweise und mit gutem Grund werden Schrittmotoren mit Konstantstrom betrieben. Man kann daher nicht aus dem Strom auf die Belastung schliessen, denn der Strom wird von der Endstufe eingeprägt. Georg
Hallo Georg,
nochmal Danke für Deinen Hinweis.
Beim Nachdenken über die Zusammenhänge ist mir mein selbst meine
fehlerhafte Annahme aufgefallen, also die Meinung, man könne über den
Strom auf das Lastmoment schließen. Der maximale Strom kann bei den
Endstufen zwar meist über einen Jumper in Stufen eingestellt werden, ist
aber dann eingeprägt.
Mit dem Problem, dass der Motor aus dem Grund ja auch sehr heis wird,
falls keine Ruhestromabsenkung aktiviert ist. Oder man diese wegen dem
notwendigen Haltemoment nicht aktivieren möchte.
> Was du möchtest ist den Motor an dieser steilen Abrisskante zu betreiben.
Nun ja, was ich möchte ist eher eine Betriebsart wie z.B. die Leadshine
Schrittmotr Endstufen mit Encoder Eingang haben. Die Teile sind
eigentlich nicht aus dem Tritt zu bringen.
Mir ist schon klar, dass da viel Know How, Bauteilaufwand und
entsprechend Kosten dahinter stecken.
Einen Schrittmotor über die Signale eines angeflanschten Encoders zu kommutieren klingt verlockend, ist aber praktisch schwer umzusetzen. Probleme sind dabei der exakte Gleichlauf von Schrittmotor-Schritten, und Encoder-Signalen, und der Zeitverzug zwischen Impulsausgabe, und Rückmeldung des Encoders. Auch die mechanische Ankopplung muß sehr steif sein. Will man am Motor selbst messen, läuft das darauf hinaus, den Strom einzuprägen, und die Spannungen an den Wicklungen zu messen. Dabei muss man auch die Phasenverschiebung zwischen Strom und Spannung korrekt erfassen, nur so kann man die interessanten Informationen gewinnen. Das geht aber nur, wenn der Motor eine gewisse Mindest-Drehzahl erreicht hat. Mit freundlichen Grüßen - Martin
Schrittmotoren mit Encoder sind Brot- und Butterware in der Industrie und überhaupt nichts besonders. Der "Trick" besteht nur darin, den Schrittmotor als Synchronmotor mit zwei statt drei Phasen zu betrachten. Und nein, solche Systeme sind eben genau nicht teuer, sondern günstige Alternativen für "klassische" Servomotoren mit drei Phasen, vor allen bei den kompakten Bauweisen mit niedrigen Drehzahlen. Da braucht es dann kein Getriebe mehr, und damit geht der Systempreis gut in den Keller.
Hallo Georg, > Schrittmotoren haben, wie andere Synchronmotoren auch, eine Kennlinie > mit Abriss: solange das Drehmoent ausreicht, drehen sie mit der Frequenz > des Feldes, wenn nicht mehr geht die Drehzahl schlagartig gegen 0. Was > du möchtest ist den Motor an dieser steilen Abrisskante zu betreiben. Das stimmt nicht, bzw. nur so lange du den Motor ungeregelt (open-loop) betreibst. Gerade in den letzten Jahren hat sich bei der Regelung von Schrittmotoren aber einiges getan. Vielleicht solltest du dein Wissen nochmal etwas auffrischen... > Üblicherweise und mit gutem Grund werden Schrittmotoren mit > Konstantstrom betrieben. Man kann daher nicht aus dem Strom auf die > Belastung schliessen, denn der Strom wird von der Endstufe eingeprägt. Auch das ist nicht richtig. Schau dir mal die ICs von Trinamic oder TI an, die machen genau das. Irgend wo her muss die Leistung ja kommen, die der Motor an die Last abgibt. P(eingang)=P(verlust)+P(mechanisch). Wenn P(mechanisch) steigt, muss auch (eingang) steigen). Die ohmschen Verluste werden jedenfalls nicht sinken. ;) Mit freundlichen Grüßen Thorsten Ostermann
Hallo Stepper_Fragender, > Beim Nachdenken über die Zusammenhänge ist mir mein selbst meine > fehlerhafte Annahme aufgefallen, also die Meinung, man könne über den > Strom auf das Lastmoment schließen. Deine fehlerhafte Annahme ist, dass das Beschleunigungsmoment welches für die Last aufgewendet wird, einen wesentlichen Anteil an der Gesamtbelastung des Motors hat. Der Motor muss ja auch noch sich selbst sowie die mechanischen Übertragungselemente beschleunigen, außerdem die mechanische Reibung überwinden, ggf. gegen Gewichtskraft oder von außen angreifende Kräfte anwirken. Klar kann man über die Anpassung der Beschleunigung etwas optimieren. Aber da holst du mit großem Aufwand vermutlich nur 10% heraus. Mit freundlichen Grüßen Thorsten Ostermann
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.