Hi, ich plane für einen bestehenden Controller gerade eine Erweiterung um eine Schrittmotorsteuerung. Für die hier vorgegebene Hardware sind die Parameter klar, aber damit ich mir nicht unbewusst was verbaue, meine Frage: Wie hoch können die Step-Frequenzen für (exotische/sehr schnelle) Schrittmotoren denn maximal werden? Aktuell wäre ich mal von 50 kHz ausgegangen, aber wer weiß, was es noch so alles gibt... Danke!
Was willst Du wissen, wie schnell der Motor dreht? Dann geht es um Vollschritte/s und du bist mit 50kHz auf der sicheren Seite. Wenn es darum geht, was die Steuerung ausgeben können muss, hängt es vom Treiber ab. Bei 1/2- oder 1/4-Schritt kommst du mit 50kHz hin. Wenn der Treiber auf 1/128-Schritt konfiguriert ist wären 50kHz zu wenig (das reicht dann nämlich gerade mal für 2 U/s bzw. 120 U/min). Wobei so feine Auflösungen bei Anwendungen mit hohen Drehzahlen wenig Sinn ergeben, aber man sieht so einiges was nicht sinnvoll ist. ;) Mit freundlichen Grüßen Thorsten Ostermann
Die maximale Schrittfrequenz hängt auch vom Drehmoment ab. Je höher die Frequenz, desto weniger Drehmoment kann der Motor bringen ohne Schritte zu verlieren. Irgendwann kommt dann ein Punkt, ab dem man den Motor nur noch im Leerlauf drehen lassen kann.
Es geht um die hardwaremäßigen Limits, da ich mir die Steuerung für andere Anwendung offen halten will, auch wenn ich die momentan nicht brauche. Die Frage ist also tatsächlich, welche Extremwerte vorstellbar sind (für welchen exotischen/sinnlosen Anwendungsfall auch immer) und von der Steuerung deswegen unterstützt werden sollten. Das aber rein aus Sicht der Hardware, da die 1/128-Schritte ja eine treiberinterne Auflösung sind, die mit den realen Hardwaresteps nichts zu tun haben, oder?
schritt für schritt schrieb: > Irgendwann kommt dann ein Punkt, ab dem man den Motor nur > noch im Leerlauf drehen lassen kann. Egal, das ist dann das Problem des Anwenders. Die Frage ist halt, welche Frequenz der Controller maximal ausgeben können sollte, um auch exotisch schnelle Schrittmotoren noch bedienen zu können (und sei es nur im Leerlauf).
Bronnoysund schrieb: > Die Frage ist also tatsächlich, welche Extremwerte vorstellbar > sind (für welchen exotischen/sinnlosen Anwendungsfall auch immer) und > von der Steuerung deswegen unterstützt werden sollten. Meine Vorstellungkraft reicht für 49,488MHz. > Die Frage ist halt, welche > Frequenz der Controller maximal ausgeben können sollte, Da sehe ich eher die Frage, wie clever ist der Controller, um den Schrittmotor bei höheren Drehzahlen in den Vollschrittbetrieb umzuschalten.
m.n. schrieb: > Da sehe ich eher die Frage, wie clever ist der Controller, um den > Schrittmotor bei höheren Drehzahlen in den Vollschrittbetrieb > umzuschalten. OK, da gibt es glaube ich ein Missverständniss: mein Controller soll NUR Step- und Direction-Signale ausgeben, welche den Motor dann um ein Inkrement (entsprechend seiner Hardwareauflösung bzw. entsprechend dem, was die Treiberstufe daraus macht) weiterschalten sollen. Und mir geht es um die Frequenz dieser Step-Signale.
Hallo Bronnoysund, > Es geht um die hardwaremäßigen Limits, da ich mir die Steuerung für > andere Anwendung offen halten will,... > Das aber rein aus Sicht der Hardware, da die 1/128-Schritte ja eine > treiberinterne Auflösung sind, die mit den realen Hardwaresteps nichts > zu tun haben, oder? Die Auflösung ist keineswegs nur Treiber intern. Normalerweise musst du, wenn du den Treiber auf 1/128-Schritt konfigurierst, auch 128 Takte erzeugen, bis der Motor einen Vollschritt gemacht hat. Eine Ausnahme stellen Treiber da, die interne Pulsvervielfachung machen können. Das ist aber nicht der Standard. Die TMC26x von Trinamic können z.B. eine solche Pulsvervielfachung (IIRC von Vollschritt auf 1/16), aber das klappt nur, wenn das Taktsignal ein Puls-Pausen Verhältnis von 50:50 hat. Für die meisten Soft-CNCs (Mach3, WinPCNC etc.) gilt das aber nicht. Bei PCNC (DOS) war das noch so. Mit freundlichen Grüßen Thorsten Ostermann
Bronnoysund schrieb: > OK, da gibt es glaube ich ein Missverständniss: mein Controller soll NUR > Step- und Direction-Signale ausgeben, Was'n das dann für ein Controller? Macht der dann zb "nur" die Rampensteuerung oder wie muss ich mir das vorstellen? > welche den Motor dann um ein > Inkrement (entsprechend seiner Hardwareauflösung bzw. entsprechend dem, > was die Treiberstufe daraus macht) weiterschalten sollen. Der schaltet dann aber nicht 'den Motor' weiter sondern erteilt an den eigentlichen Motor-Controller den Befehl, weiterzuschalten. Wenn dein Controller mit der Bestromung der Spulen sowieso nichts zu tun hat, wo liegt dann das Problem? An einem Pin eine kontrollierte Anzahl an Pulsen ausgeben ist eine einfache Softwareübung. Je nach Taktfrequenz des µC sind 50kHz oder auch 500kHz problemlos machbar. Dazu hat man einen Timer im µC und in diversen Modi ist es auch kein Problem, die Pulslänge und damit die Frequenz der Pulse per Hardware zu kontrollieren. Dein Eröffnungsposting klingt noch nicht mal danach, als ob du die Schrittzahl kontrollieren können musst. Von daher kann zb ein AVR basierter Controller maximal die Hälfte seiner Taktfrequenz auf einem Ausgangspin erzeugen. Mit 16Mhz wären das dann 8Mhz. Ich denke mal, da wird dir jeder dahinter angeschlossene Motorcontroller bereits aussteigen.
:
Bearbeitet durch User
Und es gilt je höher die Spannung umso schneller der Motor. Da die Induktivität des Motors ja einen Frequenzabhängigen Widerstand darstellt, fließ halt weniger Strom je Höher die Frequenz. Daher sollte der Treiber möglichst einen Strom chopper Betrieb haben und möglichst hohe Betriebsspannung abkönnen.
Ich habe schon mit Schrittmotoren gearbeitet, die bis ca. 70kHz Schrittfrequenz einsetzbar sind, nämlich z.B. AR24 oder AR26 von Orientalmotor: http://www.orientalmotor.de/Products/Stepper_motors/Dc_motor_driver_packages/With_integrated_controller/high_efficiency_closed_loop_with_integrated_controller_ar/?&arid=9272&dwn=artnr In Verbindung mit normalen Schrittmotorsteuerungen wäre bei diesen Frequenzen und Beschleunigungsrampen jedoch mit gewaltigen Schrittverlusten zu rechnen. Deswegen werden solche Motoren immer mit den zugehörigen Motorsteuerungen verkauft. Diese wiederum erhalten aber (konfigurierbar) Richtungs- und Schrittsignal oder Vorwärts-/Rückwärtsimpulse.
Erstens sind das 5-phasige Motoren, und zweitens sind die 70kHz mit Sicherheit nicht die Vollschritt-Rate, sondern die Mikroschritt-Frequenz. @Uwe: Das ist alles schön und richtig, hat aber nichts mit der Frage des Op zu tun. Es geht ja nur darum, was an Taktraten so vorkommen kann. @Karl-Heinz: Dein Beispiel mit den 8MHz ist etwas überspitzt. Sobald man "nebenbei" noch etwas anderes machen muss, z.B. Beschleunigungs- und Bremsrampen berechnen, geht die maximale Taktrate schnell in den Keller. Die 50kHz sind schon eine realistische Größenordnung. Mit freundlichen Grüßen Thorsten Ostermann
Karl Heinz schrieb: > Wenn dein Controller mit der Bestromung der Spulen sowieso nichts zu tun > hat, wo liegt dann das Problem? An einem Pin eine kontrollierte Anzahl > an Pulsen ausgeben ist eine einfache Softwareübung. Je nach Taktfrequenz > des µC sind 50kHz oder auch 500kHz problemlos machbar. Es ist unfassbar, das der Typ hier im Forum mit der pampigsten Ausdrucksweise 1. meine Frage nicht lesen kann 2. auch noch Moderator ist Auch auf die Gefahr hin, dass du die selbe rüde Art dir gegenüber nicht akzeptierst und mich gleich sperrst/das Posting löscht, hier noch mal zum mitschreiben: Meine Frage war NICHT, wie ich das in Software implementieren soll. Meine Frage war AUCH NICHT wie ich Pulse an einem Pin ausgeben soll. Meine Frage war EBENSO NICHT, was an Frequenz generell machbar ist sondern (Trommelwirbel, jetzt kommt es!!!) welche Frequenz ich maximal vorsehen sollte, um einen möglichst breiten Einsatzbereich abzudecken. Das war alles und steht im Ursprungsposting auch so drin. Andere konnten das übrigens auch lesen und verstehen UND beantworten, ohne gleich pampig zu werden.
Andreas Schweigstill schrieb: > Ich habe schon mit Schrittmotoren gearbeitet, die bis ca. 70kHz > Schrittfrequenz einsetzbar sind OK, Danke, das und die zuvor schon angegebenen 50 kHz sind ja schon mal eine Hausnummer, mit der ich was anfangen kann. D.h. mit noch ein "bisschen" Angstfaktor oben drauf werde ich wohl vsl. bis 250 kHz zulassen.
Naja wenn du mit 256 fach Mikroschrittbetrieb arbeitest bei einem 200 Vollschritt Motor dann sind das 256 x 200 = 51200 takte pro umdrehung bei 5 Umdrehungen pro Sekunde dann 2,56MHz. Und bei 10 umdrehungen pro sekunde halt schon über 5MHz.
Bronnoysund schrieb: > D.h. mit noch ein "bisschen" Angstfaktor oben drauf werde ich wohl vsl. > bis 250 kHz zulassen. Ja, mach das doch mal :-)
Bronnoysund schrieb: > sondern (Trommelwirbel, jetzt kommt es!!!) welche Frequenz ich maximal > vorsehen sollte, um einen möglichst breiten Einsatzbereich abzudecken. Wenn du nicht in der Lage bist, dir aus einer beliebigen Frequenz bis hinauf in den Megahertz-Bereich, dir die entsprechenden Vorteiler bzw. TOP Werte für einen Timer auszurechnen, dann solltest du das Projekt bleiben lassen. Denn das sind einfach nur Zahlen, die sich aus einer vorgegebenen gewünschten Taktfrequenz berechenen lassen. > Das war alles und steht im Ursprungsposting auch so drin. Andere konnten > das übrigens auch lesen und verstehen UND beantworten, ohne gleich > pampig zu werden. Wenn du das pampig nennst, dann hast du noch nie erlebt, wenn ich wirklich pampig werde. Im übrigen haben NICHT alle anderen deine Frage verstanden. Denn gefühlte 90% beschäftigen sich damit, wie du Mikroschritt Implementieren sollst. Was laut deiner eigenen Aussage überhaupt nicht das Problem ist. Was du machen willst, ist einfach nur ein Taktgenerator, der seine zu erzeugende Taktfrequenz irgendwie aus irgendwewlchen Eingangsparametern bestimmt. Und genau nach diesem 'wie' habe ich gefragt. Aber im Kern ist es ein Taktgenerator und nicht mehr. Das du mit dem Takt auf eine andere Schrittmotorsteuerung gehst, ist nett. Aber nicht das Problem. Denn für einen Taktgenerator spielt es keine Rolle, was sein Takt tatsächlich ansteuert. Er muss einfach nur seinen Takt möglichst gut und möglichst genau erzeugen können. Ob du da jetzt ein Limit von 50kHz ansetzt, oder ein Limit von 70kHz oder ein Limit von 200kHz ist Jacke wie Hose. Denn mit einem 16 Bit Timer und Hardware-PWM, die dann den Ausgangs-Takt-Pin ansteuert, ist das alles in voller Bandbreite machbar, wobei nach oben hin die Frequenzauflösung natürlich abnimmt. Das wonach du fragst, ist eine Pseudo-Frage, die in Wirklichkeit nicht interessiert, weil dein technologisches Limit soweit über dem vernünftigerweise anzunehmenden Limit liegt, dass es überhaupt keine Rolle spielt. Wenn du den Eingangs-Steuerungs Wert limitieren willst, dann ist das daher einfach nur ein Zahlenwert, der irgendwo im Programm vorkommt. Mehr nicht und jederzeit änderbar. Es sei denn natürlich, die Antwort auf die Wie-Frage von weiter oben ist derart, dass es da ein zusätzliches Limit gibt. Und genau deswegen habe ich danach gefragt. So, und jetzt bin ich pampig.
:
Bearbeitet durch User
Karl Heinz schrieb: > Wenn du nicht in der Lage bist, dir aus einer beliebigen Frequenz bis > hinauf in den Megahertz-Bereich, dir die entsprechenden Vorteiler bzw. > TOP Werte für einen Timer auszurechnen, dann solltest du das Projekt > bleiben lassen. Und schon wieder: Das war absolut NICHT mein Problem! Da du es offensichtlich immer noch nicht verstanden hast: es ging um eine praxisrelevante Frage. Was bringt ein Controller, der maximal 1 kHz ausgeben kann? Nichts, weil für 90% der Anwendungen zu langsam. Was bringt ein Controller, der 800 MHz ausgeben kann? Ca. 90% Wertebereich, die völlig ungenutzt verpuffen. Ich habe also lediglich den Frequenzbereich gesucht, in dem Schrittmotoren üblicherweise_ und _sinnvollerweise arbeiten. Teiler, Ansteuerung, PWM-Generatoren, Timer und was du da noch alles hineinfabulierst, waren nie gefragt (und werden in meinem Posting auch nicht erwähnt). > Wenn du das pampig nennst, dann hast du noch nie erlebt, wenn ich > wirklich pampig werde. Wahrscheinlich bist du da jetzt auch noch stolz drauf...
Bronnoysund schrieb: > Da du es offensichtlich immer noch nicht verstanden hast: es ging um > eine praxisrelevante Frage. Was bringt ein Controller, der maximal 1 kHz > ausgeben kann? Nichts, weil für 90% der Anwendungen zu langsam. Was > bringt ein Controller, der 800 MHz ausgeben kann? Ca. 90% Wertebereich, > die völlig ungenutzt verpuffen. Ok. vielleicht nicht 800Mhz aber 1Mhz. Frage: Was ist der preisliche UNterschied zwischen einem COntroller, der 1kHz erzeuigen kann und einem der 1Mhz erzeugen kann? Antwort: Exakt 0 Euro. Denn einen Controller, der bei 1kHz Schlapp macht, gibt es nicht mehr. Das war mal so, im letzten Jahrhundert, kurz nach dem Krieg in dem wir von den Bäumen runtergekommen sind. Da gab es noch Controller, die nicht mehr schafften. Die Frage nach dem 'Wie' hast du übrigens immer noch nicht beantwortet. Dabei ist genau das die alles entscheidende Frage.
:
Bearbeitet durch User
Wenn du mir sagst welchen Motor du nehmen willst und wievielfach Mikroschrittbetrieb du benutzen möchtest und dann noch sagst wieviel umdrehungen pro Sekunde du brauchst. dann sage ich dir welche Maximale Frequenz aus dem Mikrocontroller rauskommen müssen. ( Vollschritte x Mikroschritte x Umdrehungen pro sekunke = F stepmax)
Karl Heinz schrieb: > Die Frage nach dem 'Wie' hast du übrigens immer noch nicht beantwortet. > Dabei ist genau das die alles entscheidende Frage. Wessen Frage war das? Es werden im übrigen bis zu 4 Achsen gleichzeitig angesteuert, inclusive räumlichen Zielkoordinaten, also nix mit simplen Timern/PWM-Generatoren. Tatsächlich löse ich es über einen Timerinterrupt, der mit einer Frequenz von 2 MHz ausgelöst wird und dann für jede Achse die Ausgänge schaltet - oder noch wartet, je nach dem, wie lange die Pulsdauer für diese Achse ist.
Thorsten Ostermann schrieb: > Für die meisten Soft-CNCs (Mach3, WinPCNC etc.) gilt das aber nicht. Heisst bei Mach3 sherline modus.
Bronnoysund schrieb: > Karl Heinz schrieb: >> Die Frage nach dem 'Wie' hast du übrigens immer noch nicht beantwortet. >> Dabei ist genau das die alles entscheidende Frage. > > Wessen Frage war das? Meine. Welche Nebenbedingungen gibt es in deinem Taktgenerator noch? Muss der µC Rampenberechnung machen? Muss er Schritte zählen? Bis jetzt ist nur klar, dass du zwischen bereits vorhandenen Steuerung und Schrittmotor-Steuerung noch eine Steuerung einziehen willst, die irgendwas macht und deren Ergebnis eine Steprate und ein Direction Signal ist. Die Steprate ist nicht das Problem. Das Direction Signal auch nicht. Die Frage ist: wovon hängt diese Steprate ab? Welche Berechnungen sind dazu nötig. Denn je nachdem kann das nämlich dann doch zum Problem werden. > Es werden im übrigen bis zu 4 Achsen gleichzeitig angesteuert, inclusive > räumlichen Zielkoordinaten Ah. Also doch Zielkoordinaten! Wie wärs wenn du mal mit ein wenig Informationen rausrückst, was das eigentlich werden soll. Die Qualität der Antworten würde schlagartig besser werden. Denn das hier ... > ich plane für einen bestehenden Controller gerade eine Erweiterung > um eine Schrittmotorsteuerung. ist ja wohl ziemlich wischi-waschi Das impliziert (zumindest für mich), dass dein jetziger Controller (überspitz ausgedrückt) momentan einen Scheibenwischermotor ansteuern kann und du als Alternative statt dessen auch einen Schrittmotor verwenden können willst, der mit einer konstanten (änderbaren) Drehzahl sich einfach nur dreht. Das ist das, was ICH unter 'Erweiterung' verstehen würde: Zwischen Controller und Mechanik kann man verschiedene Motormodule einsetzen. Ein paar davon gibt es bereits und jetzt soll auch noch ein Schrittmotor mit dazu kommen.
:
Bearbeitet durch User
Karl Heinz schrieb: > Muss der µC Rampenberechnung machen? Ja, ist aber kein Problem. > Muss er Schritte zählen? Ja, ist aber kein Problem. > Die Frage ist: wovon hängt diese Steprate ab? Von der Potenz meiner Controllerhardware. Das ist aber auch weder das Problem noch meine Frage.
Und bevor das hier eine sinnlose Endlosgeschichte wird: MEINE FRAGE IST BEREITS BEANTWORTET!
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.