Step rates/de

From RepRap
Revision as of 08:52, 1 August 2014 by Traumflug (talk | contribs) (Schrittrate messen)
Jump to: navigation, search


Eins vorweg: bei 300 mm/s sind Genauigkeiten im Mikrometerbereich völlig unrealistisch, also machen 0,9°-Motoren und 1/32 Microstepping so gut wie keinen Sinn. Für die dabei auftretenden Kräfte sind die aktuellen Druckkerrahmen und -antriebe nicht annähernd genau genug. Für derartige Präzision muss man mit geringeren Geschwindigkeiten leben.

Erreichbare Schrittraten

Schrittrate bezeichnet die höchste Geschwindigkeit, mit der eine bestimmte Elektronik-Firmware-Kombination Impulse an den Schrittmotor-Treiber abgeben kann. Sie hängt vor Allem von der auf dem Controller verwendeten CPU, dessen Taktfrequenz und dem in der Firmware verwendeten Algorithmus zur Berechnung der Motorbewegungen ab. Da dies bei RepRap-typischen Anwendungen mehrere tausend Impulse pro Sekunde sind, wird sie meist in Kilohertz (kHz) angegeben.

Die ATmega-basierten Elektroniken sind, abgesehen von der Taktfrequenz, alle gleich schnell. Egal ob der grosse ATmega2560, der kleine ATmega168, oder irgendwas dazwischen. Bei ARM-basierten Elektroniken ist die Sache etwas komplexer.

Der bisherige Streit Die bisherige Diskussion (Stand Juli 2014) um die erreichbaren Schrittraten geht wie folgt:

  • Marlin/Repetier auf ATmega 16 MHz (z.B. RAMPS) im Standard-Modus: 16.000 Schritte/Sekunde (16 kHz).
  • Teacup Firmware auf ATmega 20 MHz (z.B. Gen7): 48 kHz.
  • Marlin/Repetier auf ATmega 16 MHz im Quadstep-Modus (ungleichmässige Schrittverteilung): 67 kHz.
  • Repetier auf RADDS: 96 kHz.

Schrittrate messen

  1. Motor (ohne Drucker) an den Controller anschliessen.
  2. Höchstes Microstepping am Controller jumpern, um die Motordrehzahl gering zu halten.
  3. Geschwindigkeitbegrenzung in der Firmware sehr hoch einstellen (65000 mm/min oder 1000 mm/s).
  4. Eine mässige Beschleunigung, z.B. 500 mm/s2 einstellen (die Beschleunigungsphase ist die kritische Phase).

Dann Verfahrbefehle mit steigender Geschwindigkeit schicken:

G1 X1000 F20000
G1 X0 F22000
G1 X1000 F24000
...

Immer schneller, bis der Controller anfängt, sich zu verschlucken (kurze, hörbare Aussetzer oder das Motorgeräusch hört ganz auf). Aus der erreichten Geschwindigkeit kann man dann die dafür notwendige Schrittrate errechnen.

Die Drehzahlgrenze des Motors ist inzwischen auch eine Grenze. Bleibt der Motor stehen, obwohl das Geräusch weiter gleichmässig ist, kommt der Controller immer noch hinterher.

Eine Messung mit Messgeräten, z.B. einem Oszilloskop, ist unzuverlässiger, da dort kurze Unterbrechungen nicht erfasst werden. Eine schlecht programmierte Firmware kann zum Beispiel kurze Unterbrechungen produzieren, die zu Motorstillstand führen, wenn gerade etwas über die serielle Schnittstelle herein kommt.

Durch Schrittrate erreichbare Verfahrgeschwindigkeiten

Jeder Schrittimpuls bewegt den Schrittmotor einen Schritt weiter. Wird Microstepping verwendet, bewegt jeder Impuls den Motor um einen Mikroschritt weiter. Die erreichbare Geschwindigkeit des Motors hängt also nicht nur von der erreichbaren Schrittrate, sondern auch stark vom eingestellten Microstepping ab.

Berechnung:

  1. Steps/mm berechnen. Dabei wird das Microstepping und auch der Druckeraufbau, z.B. die Zähnezahl des verwendeten Pulleys, berücksichtigt.
  2. Erreichbare Verfahrgeschwindigkeit = (Erreichbare Schrittrate) / (Steps/mm)

Bemerkung: in vielen Fällen ist die Verfahrgeschwindigkeit durch andere Umstände als die mögliche Schrittrate des Controllers begrenzt, zum Beispiel durch die Grenzdrehzahl einer Spindel. In diesen Fällen bringt ein Wechsel von einem ausreichend schnellen zu einem noch schnelleren Controller keine Vorteile in Bezug auf die Verfahrgeschwindigkeiten.

 Steps/mm
 Theoretische Genauigkeit
 Marlin/Repetier auf ATmega 16 MHz
 Teacup Firmware auf ATmega 20 MHz
 Marlin/Repetier im Quadstep-Modus
 Repetier auf RADDS
0,9°-Stepper, 14-Zähne-GT2-Pulley, 1/16 Microstepping 228,57 4,38 μm 70 mm/s 210 mm/s 293 mm/s 420 mm/s
0,9°-Stepper, 14-Zähne-GT2-Pulley, 1/32 Microstepping 457,14 2,19 μm 35 mm/s 105 mm/s 146 mm/s 210 mm/s
0,9°-Stepper, 14-Zähne-GT2-Pulley, 1/128 Microstepping 1828,6 0,547 μm 8,7 mm/s 26 mm/s 37 mm/s 52 mm/s
1,8°-Stepper, 14-Zähne-GT2-Pulley, 1/16 Microstepping 114,29 8,75 μm 140 mm/s 420 mm/s 586 mm/s 840 mm/s
1,8°-Stepper, 14-Zähne-GT2-Pulley, 1/32 Microstepping 228,57 4,38 μm 70 mm/s 210 mm/s 293 mm/s 420 mm/s
1,8°-Stepper, 14-Zähne-GT2-Pulley, 1/128 Microstepping 914,29 1,09 μm 17 mm/s 52 mm/s 73 mm/s 105 mm/s
1,8°-Stepper, M8 Gewindestange, 1/8 Microstepping 1280 0,781 μm 12 mm/s 37 mm/s 52 mm/s 75 mm/s
1,8°-Stepper, M8 Gewindestange, 1/32 Microstepping 5120 0,195 μm 3,1 mm/s 19 mm/s 13 mm/s 19 mm/s
1,8°-Stepper, M8 Gewindestange, 1/128 Microstepping 20480 0,0488 μm 0,78 mm/s 4,7 mm/s 3,3 mm/s 4,7 mm/s
1,8°-Stepper, Tr10x3 Spindel, 1/8 Microstepping 533,33 1,875 μm 30 mm/s 90 mm/s 126 mm/s 180 mm/s
1,8°-Stepper, Tr10x3 Spindel, 1/32 Microstepping 2133,3 0,469 μm 7,5 mm/s 22 mm/s 31 mm/s 45 mm/s
1,8°-Stepper, Tr10x3 Spindel, 1/128 Microstepping 8533,3 0,117 μm 1,9 mm/s 5,6 mm/s 7,8 mm/s 11 mm/s
0.9°-Stepper, M5 Gewindestange, 1/128 Microstepping 64000 0,0156 μm 0,25 mm/s 0,75 mm/s 1,0 mm/s 1,5 mm/s