Archive for the ‘Anwendungshinweise’ Category

CE-Kennzeichnung von Kleinmotoren

Sonntag, Mai 1st, 2022

Längst nicht alle Schrittmotoren sind vom Hersteller mit einem CE-Kennzeichen verstehen. Es stellt sich also die Frage, wann ein Schrittmotor oder andere Kleinmotoren (z.B. DC- oder BLDC-Motoren) ein CE-Kennzeichnen tragen müssen und wann nicht?

Einige der relevanten regulatorischen Aspekte wurden schon im Beitrag Die richtige Spannung für Schrittmotorsteuerungen – Kriterien zur Auswahl diskutiert. Im Rahmen einer Diskussion im Netz bin ich auf ein Papier des Verbandes der Elektro- und Digitalindustrie (ZVEI) von 2016 aufmerksam geworden. Unter dem Titel „Inverkehrbringen von Kleinspannungsmotoren“ erfolgt eine umfassende Betrachtung aller in Frage kommenden rechtlichen Regelungen:

– Niederspannungsrichtlinie 2014/35/EU

– EMV-Richtlinie 2014/30/EU

– Maschinenrichtlinie 2006/42/EG

– Medizinprodukte-Richtlinie 93/42/EWG

– RoHS-Richtlinie 2011/65/EG

– Produktsicherheitsgesetz

Das Papier ist auf der Homepage des ZVEI nicht mehr abrufbar, aber über Suchmaschinen noch zu finden. Auf Anfrage zu den Hintergründen teilte mir der ZVEI mit, dass Teile des Papiers nicht mehr aktuell seien und das Papier daher nicht mehr abrufbar ist. Relevante Änderungen gab es demnach in den Bereichen ProdSG 2021, Medizinprodukte-VO 2019 und RoHS mit Teilanpassungen.

Individuelle Bewertung erforderlich

Die Grundaussagen des Papiers gelten aber aus meiner Sicht weiterhin. Demnach ist die Niederspannungsrichtlinie die wichtigste Norm zur Klärung der Frage, ob eine CE-Kennzeichnung erforderlich ist oder nicht. Wesentliches Kriterium ist dabei die für den Antrieb bzw. für den Motor vorgesehene Betriebsspannung. „Maßgeblich für die Einstufung ist die vom Hersteller spezifizierte höchste Betriebsspannung und nicht eine tatsächlich in der Anwendung benutzte Betriebsspannung.“ heißt es dazu.

Schrittmotor CE
Beispiel für einen Schrittmotor mit CE-Kennzeichnung: PK268DW in IP54-Ausführung mit geschirmter Anschlussleitung (Quelle: Oriental Motor).

Ob die anderen oben genannten Richtlinien und Vorschriften anwendbar sind, muss für die jeweilige Anwendung individuell betrachtet und bewertet werden. Sollte im Ergebnis eine CE-Kennzeichnung der eingesetzten Antriebe erforderlich sein, muss dies bei der Auswahl der Motoren beachtet werden. Bei Schrittmotoren gibt es in den Baugrößen 56mm (Nema23) und 60mm (Nema24) von verschiedenen Herstellern Baureihen mit CE-Kennzeichnung. Oft in Verbindung mit einer höherwertigen Ausstattung (z.B. Schutzklasse IP54 oder besser), Anschluss über M12-Stecker statt loser Litzen usw.. Bei größeren Motoren ab 86mm Flanschmaß (Nema34) sollte eine CE-Kennzeichnung der Regelfall sein. Diese Schrittmotoren werden oftmals mit Spannungen eingesetzt, die eine Anwendung der Niederspannungsrichtlinie erforderlich machen.

Einfache Wickler-Steuerungen mit Schrittmotoren

Sonntag, November 22nd, 2020

Schrittmotoren werden meist für Positioniersteuerungen eingesetzt, aber eignen sie sich auf für den Antrieb eines Abwicklers? Auf- und Abwickler gibt es in vielen Anwendungen, sie werden für unterschiedlichste Materialien verwendet: z.B. große Papierrollen im Offsetdruck, Tapeten, Teppichboden, feine Drähte ode Lichtwellenleiter, Textilfasern, Verpackungsfolien, Etiketten usw.. Je nach Anwendung muss der Wickelvorgang mit konstanter Geschwindigkeit, konstanter Zugkraft oder konstantem Durchhang erfolgen. Je nach Füllgrad des Wickelkerns ändern sich Parameter wie die erforderliche Drehzahl aber auch das Trägheitsmoment der Last.

Bei großen Lasten werden in der Regel Servomotoren mit optischem Geber (Encoder) und digitalen Reglern eingesetzt, während bei kleineren Lasten auch einfache Tänzerregler mit DC-Getriebemotoren eingesetzt werden. Im folgenden Beitrag soll gezeigt werden, wie auch mit Schrittmotoren kostengünstige Steuerungen für Wickler aufgebaut werden können.

Wickler-Einheit zum Abwickeln von Endlos-Etiketten
Wickler-Einheit zum Abwickeln von Endlos-Etiketten

Bei vielen Anwendungen wird ein Verbrauchsmaterial von der Rolle verarbeitet. Die Vorschubgeschwindigkeit des Materials ist von der Geschwindigkeit des Prozessmoduls bestimmt. Das kann z.B. eine Schlauchbeutel-Verpackungsmaschine sein, ein Labeldrucker oder eine Vorrichtung zur Verarbeitung von Crimpkontakten. Die Massenträgheit der Materialrolle wirkt dabei der Zugkraft des Prozessmoduls entgegen, was insbesondere bei empfindliche Materialien bis hin zum Reißen des Materials führen kann. Aufgabe des Abwicklers ist es, immer genügend Material abgewickelt vorzuhalten, so dass die Massenträgheit der Materialrolle den Prozess nicht beeinträchtigen kann.

Funktionsprinzip von Steuerungen für Wickler

Bleibt nach dem Prozess und dem Verarbeiten des Materials noch ein Trägermaterial übrig (z.B. Folienträger bei Etiketten, Metallband bei Crimpkontakten), so muss dieses Restmaterial wieder aufgewickelt werden. Dabei darf die Zugkraft des Aufwicklers ebenfalls keinen Einfluss auf den Verarbeitungsprozess haben.

Bild 2 zeigt exemplarisch zwei mögliche Anordnungen für eine Abwickler-Vorrichtung. Im oberen Bild erfolgt die Steuerung über einen Pendelarm, im unteren Bild über einen sogenannten Tänzer. Durch das Gewicht des Tänzers bzw. des Pendelarms wird die Zugkraft auf das zu verarbeitende Material bestimmt. Der Durchhang des Materials sorgt für die Entkopplung zwischen dem nachfolgenden Prozess und der Massenträgheit der Wickelspule.

Beim Anlaufen oder Beschleunigen des Verarbeitungsprozesses wird Bandmaterial nachgezogen. Dadurch bewegt sich der Tänzer nach oben bzw. der Pendelarm schwenkt nach oben. Diese Bewegung wird gemessen und der Wickler-Steuerung zugeführt, die dann den Motor des Abwicklers beschleunigt. Wird der Verarbeitungsprozess abgebremst oder gestoppt, bewegen sich Tänzer bzw. Pendelarm nach unten. Daraufhin bremst die Wickler-Steuerung den Motor des Abwicklers ab. Bei starken Geschwindigkeitsänderungen kann es unter Umständen zum vollständigen Verlust der Vorspannung kommen. Dann kann es erforderlich sein, bei zu starkem Absinken des Tänzers die Drehrichtung des Wickler-Antriebs umzukehren, und wieder etwas Material abzuspulen, bis der Tänzer wieder seine Soll-Lage erreicht hat. Um ein unkontrolliertes Durchdrehen des Antriebs beim Reißen des Materials zu verhindern, muss der Antrieb in der unteren Endlage von Tänzer bzw. Pendelarm abgeschaltet werden.

Tänzer und Pendelarm als Sensor

Funktion zwischen Pendel-Position und Solldrehzahl

Die Tänzerposition kann in einfachen Wickler-Anwendungen also als Drehzahl-Sollwert für den Tänzer-Antrieb verwendet werden. Wenn das Verhältnis von leerem Spulenkern zu maximalem Wickeldurchmesser nicht zu groß ist (<5), kann in vielen Fällen auf eine zusätzliche Kompensation der Durchmesser-Änderung der Rolle verzichtet werden. Voraussetzung ist, dass die maximale Drehzahl bei Vollauslenkung des Tänzers auch bei fast leerer Rolle noch für ausreichend Materialvorschub sorgt.

DC-Motorsteuerung von mechapro mit kundenspezifischer Firmware für Wickler-Anwendung

Die Winkelauslenkung des Pendelarms kann einfach und kostengünstig über ein Potentiometer gemessen werden. Da der Auslenkbereich des Pendelarms meist nur etwa 90° beträgt, kann es sinnvoll sein, die Bewegung über einen Riemen oder eine Zahnradstufe zu übersetzen. Die größere Auslenkung des Potentiometers ergibt einen größeren Messbereich. Auch die Position eines Tänzers kann auf diese Weise über ein lineares Potentiometer oder ein anderes Wegmesssystem mit einem analogen Ausgangswert gemessen werden.

Konfigurieren eines Schrittmotor-Controllers für einen Abwickler

Die Schrittmotorcontroller aus der DDS1-Serie von LAM können analoge Eingangssignale mit +/-10V verarbeiten. Es können aber auch Potentiometer direkt angeschlossen und von der internen Stromquelle gespeist werden. In beiden Fällen steht die Tänzerposition als analoge Eingangsgröße zur Verfügung.

Tabellen-Editor zur Konfiguration des analogen Eingangssignals für die DDS1-Steuerungen

In der Betriebsart Drehzahlsteuerung (bzw. Drehzahlregelung, falls der Schrittmotor mit einem Encoder ausgerüstet ist), kann dieser analoge Eingangswert als Sollwert verwendet werden. Die Tabellenfunktion erlaubt es, im Bereich der Tänzer-Sollposition eine Zone zu definieren, in welcher der Antrieb stehen bleibt. Dies vermeidet einen ständigen Richtungswechsel des Antriebs. Weiterhin kann kurz vor dem unteren Anschlag des Tänzers die Drehzahl auf Null gesetzt werden, um ein Durchdrehen des Antriebs bei einem Reißen des Trägermaterials zu verhindern.

Weitere Ein- oder Ausgangssignale sind für die Grundfunktion des Wicklers nicht erforderlich. Selbstverständlich können aber zusätzliche I/Os verwendet werden, z.B. ein Eingang zum Aktivieren des Antriebs (Enable) sowie Statusausgänge über die Betriebsbereitschaft, Stillstand des Wicklers oder Fehler signalisiert werden können. Ein weiteres Eingangssignal kann z.B. beim Aufwickeln den Wicklern anhalten, wenn die Spule vollständig gefüllt ist. Über einen Statusausgang muss dann der Verarbeitungsprozess ebenfalls angehalten werden, wobei die Materialschlaufe am Tänzer einen gewissen Materialvorrat für das Abbremsen des Prozesses zur Verfügung stellt.

Drehmoment-Regelung mit Anpassung des Drehmoments über analogen Eingang

Falls eine konstante Zugspannung erforderlich ist, kann die DDS1-Serie auch in der Betriebsart Drehmoment-Regelung betrieben werden. Voraussetzung ist ein Schrittmotor mit Encoder. Um die Zugkraft unabhängig vom Rollendurchmesser konstant zu halten, kann der Rollendurchmesser gemessen und als Analogsignal dem Gerät zugeführt werden. Über die Tabellenfunktion ist eine Anpassung des Motordrehmoments in Abhängigkeit des Analogsignals möglich.

Fazit

Moderne Schrittmotor-Controller eigenen sich mit ihren vielfältigen Einstellmöglichkeiten auch als Regler für die Ansteuerung von Wicklern. Die Geräte der DDS1-Serie von LAM-Technologies erlauben die einfache und preisgünstige Realisierung von Wickler-Steuerungen mit Drehzahl- oder Drehmomentregelung. Durch die Auswertung eines analogen Signals von einem Tänzer, oder Pendelarm wird die Geschwindigkeit des Materialvorschubs geregelt. Für Anwendungen, die konstante Zugkräfte erfordern, bietet sich der Drehmoment-Modus an, bei dem das Drehmoment des Motors abhängig vom Rollendurchmesser nachgeführt wird.

Unterschiede in den technischen Daten von Schrittmotoren und Schrittmotor-Steuerungen

Sonntag, Mai 19th, 2019

Bei Schrittmotoren und Schrittmotor-Steuerungen gibt es verschiedene Sichtweisen auf den Phasenstrom. Bei der Auswahl der Komponenten ist es hilfreich, diese Unterschiede zu kennen und entsprechend zu berücksichtigen. Mit diesem Beitrag möchte ich diese unterschiedlichen Betrachtungsweisen verständlich machen.

Phasenstrom bei Schrittmotoren

Der bei Schrittmotoren angegebene Phasenstrom (Motornennstrom) bezieht sich immer auf eine Vollschritt-Position, in der beide Phasen mit dem gleichen Strom durchflossen sind. Diese Betrachtung ist einleuchtend, wenn man sich vor Augen führt, dass der Vollschritt-Betrieb lange Zeit die Standard-Betriebsart war. Auch beim Aufkommen von Halbschritt-fähigen Steuerungen wurde zunächst der Wicklungsstrom nicht variiert, sondern in den Halbschritt-Positionen lediglich eine der Wicklungen abgeschaltet. Erst mit dem Aufkommen von 1/4-Schritt fähigen Treiber-ICs fing man an, in den Halbschritt-Positionen den Motorstrom anzuheben, siehe unten.

Betrachtet man die elektrischen Verluste im Motor (bei stehendem Rotor), ergeben sich diese zu

Pel = n * Imotor2 * R ; mit n = Anzahl der Wicklungen, Imotor = Inennstrom, R = Wicklungswiderstand

Der Nennstrom wird vom Hersteller so bemessen, dass der Schrittmotor im Dauerbetrieb thermisch nicht überlastet wird. Üblicherweise wird dabei auch eine Montage mit definierten Bedingungen (erforderliche Auflagefläche für den Motorflansch) vorausgesetzt. Anmerkung: Bei Montage des Motors über einzelne Stehbolzen ohne flächige Auflage kann die Wärme nicht an die umliegende Mechanik abgegeben werden. Der Motorstrom muss in solchen Anwendungen entsprechend reduziert werden.

Das von beiden Phasen erzeugte Motormoment ergibt sich durch die vektorielle Addition der Momente aus den einzelnen Phasen. Da diese bei einem 2-phasigen Motor elektrisch 90° zueinander stehen, ergibt sich das resultierende Moment wie folgt:

Vektorielle Additon der beiden Phasenströme bei einem 2-phasigen Schrittmotor

Anpassung des Wicklungsstroms in der Schrittmotor-Steuerung

Um die Auflösung des Motors zu erhöhen, wurde der Halbschritt-Betrieb eingeführt. Hierbei wird in den zusätzlichen Halbschritt-Positionen jeweils eine der beiden Phasen abgeschaltet. Das Motormoment ist direkt proportional zum Motorstrom. Es ergibt sich also ein um den Faktor 1/Wurzel(2) = ~0,707-fach geringeres Moment. Um eine Welligkeit des Drehmomentes zu vermeiden empfiehlt es sich, den Phasenstrom entsprechend um den Faktor Wurzel(2) anzuheben. Das ist zulässig ohne den Motor thermisch zu überlasten, wie man leicht nachrechnen kann. Obige Formel gilt weiterhin, nun allerdings mit n = 1 und Imotor = Wurzel(2) * Inenn.

Drehmoment-Welligkeit im Halbschritt-Betrieb und Abhilfe durch Anpassung des Phasenstroms.

Diese Art des modifizierten Halbschritt-Betriebs wird in älteren Application-Notes von ST als „Halfstep with shaping“ bezeichnet, und wurde z.B. bei der ersten Schrittmotor-Steuerung von mir, der 3D-Step, schon 2001 umgesetzt.

Übergang zum Mikroschritt

Fügt man weitere Zwischenschritte für die beiden Phasenströme ein, wird der Motor im sogenannten Mikroschritt angesteuert. Üblich sind Unterteilungen eines Vollschritts in 4 („Viertelschritt) bis 256 Schritte (1/256 Mikroschritt). Eine detailiertere Erklärung findet sich bei Prof. Jones, einschließlich einer Anekdote über die Erfindung der Mikroschritt-Ansteuerung 1974. Für die Ströme in den Wicklungen ergeben sich zwei Sinus-förmige Verläufe mit einer Phasenverschiebung von 90°. Der Verlauf des Drehmoments ist (nahezu) konstant, wenn man das Rastmoment des Motors außeracht lässt.

Phasenstrom mixed decay
Phasenstrom im Mikroschritt-Betrieb mit zusätzlichen Zwischenschritten zwischen Voll- und Halbschritt-Positionen (hier: 1/8-Schritt). Gut zu erkennen: Wenn der Strom in einer Phase 0 ist, erreicht die andere 100% (Halbschritt-Position). In den Vollschritt-Positionen sind beide Wicklungsströme bei 70,7% (Quelle: Datenblatt A3977, Allegro Micro).

Das Rastmoment eines Schrittmotors liegt üblicherweise bei etwa 5% des Nennmoments und kann in der Praxis durchaus zu hörbaren Laufgeräuschen führen. Wenn die verwendete Motorsteuerung keine Kompensationsmöglichkeit bietet, wird die tatsächlich erreichbare Mikroschritt-Auflösung limitiert. Realisiert ist eine solche Kompensation z.B. in der DS10-Serie von LAM.

Strom ist nicht gleich Strom

Wie in den vorherigen Abschnitten gezeigt wurde, haben Hersteller von Schrittmotoren und Schrittmotor-Steuerungen unterschiedliche Sichten auf den Motorstrom. Beim Motor ist der Motornennstrom die entscheidende Kenngröße. In der Steuerung wird dieser Strom in der Halbschritt-Position erreicht und entspricht etwa 70,7% des eingestellten Motorstroms.

Um Schrittmotor-Steuerungen gut vermarkten zu können, hat es sich mit dem Aufkommen von Mikroschritt Steuerungen schnell eingebürgert, den höheren Spitzenwert des sinusförmigen Wicklungsstroms anzugeben. Dieser ist aber – wie oben hergeleitet – um den Faktor Wurzel(2) = ~1,412-fach größer als der Nennstrom des Motors. Um einen Motor mit 2,0A Wicklungsstrom mit seinem Nennmoment betreiben zu können, ist also ein Treiber mit einem Ausgangsstrom von 2,8A erforderlich. Bei den Produkten von mechapro geben wir in der Regel beide Werte an, Effektivwert (=Motornennstrom) und Spitzenwert (zur Vergleichbarkeit mit Wettbewerbs-Produkten).

Fazit

Bei Schrittmotor-Steuerungen wird oft nur der höhere Spitzenstrom angegeben. Um den Schrittmotor auch tatsächlich mit seinem nominalen Haltemoment und entsprechendem Drehmoment betreiben zu können, muss die Endstufe der Motorsteuerung rund 140% des Motornennstroms bereitstellen können. Und das je nach Anwendung nicht nur kurzzeitig, sondern im Dauerbetrieb. Bei der Auswahl einer Steuerung muss also ausreichend Reserve berücksichtigt werden, um den Schrittmotor optimal ausnutzen zu können.

Drehzahlsteuerung von Kleinantrieben

Sonntag, Dezember 4th, 2016

Wird in einer Anwendung ein Antrieb mit niedriger, (nahezu) konstanter Drehzahl benötigt, fällt die Wahl schnell auf einen Gleichstrommotor mit Getriebe. Der Motor kann über einen Relaiskontakt einfach ein- und ausgeschaltet werden und benötigt zum Betrieb keine weiteren Komponenten wie z.B. Sensoren oder Motorregler.

Bei genauerer Betrachtung ist ein Getriebemotor aber nicht immer die optimale Wahl:

Die Lebensdauer des Getriebes ist begrenzt, was besonders bei Anwendungen mit Dauerbetrieb zu Ausfällen führen kann. Dazu kommen das Geräuschverhalten des Getriebes und mögliche EMV-Probleme durch das Bürstenfeuer des Gleichstrommotors. Spätestens wenn dann noch die Forderung nach einer konstanten Drehzahl unabhängigen von der Last dazu kommt, ist der vermeintliche Kostenvorteil schnell dahin. Dann muss ein Encoder oder ein anderer Sensor zur Drehzahlerfassung und ein 2- oder 4-Quadrantensteller zur Regelung der Motordrehzahl eingesetzt werden.

Gerade bei Anwendungen mit vergleichsweise niedrigen Drehzahlen, wie z.B. dem Antrieb kleiner Förderbänder, Drehteller oder anderer Hilfsachsen, bieten sich Schrittmotoren als Direktantriebe ohne Getriebe an. Dank ihrer hohen Polpaarzahl liefern sie ein deutlich höheres Drehmoment als DC- oder BLDC-Motoren gleicher Baugröße ohne Getriebe. Über das von der Schrittmotorsteuerung vorgegebene Feld lässt sich die Drehzahl präzise steuern, die Versorgungsspannung kann außerdem weitestgehend unabhängig von den elektrischen Daten des Motors gewählt werden. Und dank hochauflösender Mikroschritt-Ansteuerung ist auch das Geräuschverhalten in den letzten Jahren deutlich besser geworden. Abgesehen von den Kugellagern im Motor sind Schrittmotoren zudem verschleißfrei.

Was verhindert also den Ersatz von Getriebemotoren durch Schrittmotoren?

Zum einen benötigen viele Standard-Steuerungen als Eingangssignal ein Taktsignal, weil Schrittmotoren meistens als Positionierantriebe verwendet werden. Bei der hierfür verbreiteten Takt-/Richtungsschnittstelle entspricht jeder Taktimpulse einem Schritt des Motors, über die Taktfrequenz wird also letztlich die Drehzahl des Schrittmotors vorgegeben. Die Erzeugung eines solchen schnellen Taktsignals (abhängig von der Mikroschritt-Einstellung einige hundert Hertz bis einige 10 kHz) ist aber mit normalen SPS-Ausgängen nur sehr eingeschränkt möglich; schnelle Taktausgänge sind vergleichsweise teuer und für den Programmierer z.T. nicht einfach in der Handhabung. Außerdem führen Ungleichmäßigkeiten im Taktsignal (z.B. Jitter) zu hörbaren Störungen im Motorlauf, die im Extremfall bis hin zum Ausrasten des Motors führen können. Zum anderen benötigen die meisten am Markt erhältlichen Steuerungen Signalpegel von lediglich 5V, während in der SPS-Welt fast durchgehend mit 24V I/O Signalen gearbeitet wird. Externe Vorwiderstände sind aber im Schaltschrankbau nicht gerne gesehen…

Eine Lösung bieten Schrittmotorsteuerungen mit integrierter Takterzeugung und 24V-toleranten I/Os:

Die Tiny-Step.plus für kleine Schrittmotoren (Nema17 bis max. Nema23 je nach Nennstrom) enthält einen Taktgenerator, der wahlweise über ein internes Trimmpoti oder einen Analogeingang gesteuert werden kann. Digitale Eingänge für Start/Stopp, Drehrichtung und Enable ermöglichen so eine einfache Steuerung über Standard-I/Os durch eine SPS oder völlig autark z.B. für Drehteller zur Warenpräsentation oder in Kunstobjekten.

Tiny-Step.plus mit Drehzahl-Steuerung
Schrittmotorsteuerung Tiny-Step.plus mit integrierter Drehzahlsteuerung.

Die Geräte der DS10-Serie von LAM enthalten einen digitalen Taktgeber, der bei der Parametrierung der Geräte auf einen festen Wert eingestellt wird. Über einen konfigurierbaren digitalen Eingang kann der Motor dann gestartet und wieder gestoppt werden, ergänzend sind eine Umschaltung der Drehrichtung sowie ein Enable-Signal zum Ein- und Ausschalten der Endstufe vorgesehen. Durch die fest eingestellte Drehzahl wird der Motor hierbei allerdings abrupt auf Drehzahl gebracht, diese Ansteuerung eignet sich also nur für niedrige Drehzahlen. Für mehr Dynamik benötigt ein Schrittmotor eigentlich eine Beschleunigungsrampe. Eine Zwischenstufe ermöglicht der Taktgenerator der DS10-Serie, der eine Umschaltung zwischen zwei verschiedenen festen Drehzahlen erlaubt. So kann der Motor mit niedriger Drehzahl anlaufen, und dann über einen weiteren Eingang an der Steuerung auf eine höhere Geschwindigkeit umgeschaltet werden.

Für Anwendungen, die noch mehr Flexibilität benötigen (z.B. Anlauframpen) oder ganz ohne weitere Steuerung betrieben werden sollen, empfehlen sich die frei programmierbaren Schrittmotorsteuerungen aus der DS30-Serie. Hiermit lassen sich z.B. voll automatische Fototische (Scantable) realisieren, incl. Ansteuerung des Kameraauslösers. Dazu später mehr in einem weiteren Blogbeitrag.

Im Zusammenspiel mit modernen Steuerungen bieten sich Schrittmotoren als Alternative zu Getriebemotoren für Anwendungen mit niedrigen Drehzahlen an. Der Einsatz ist fast genau so einfach wie der eines Gleichstrommotors. Und berücksichtigt man die Gesamtkosten (Getriebe, ggf. Encoder plus Verdrahtung, Instandhaltung), kann eine solche Lösung dabei sogar günstiger sein. Es lohnt sich also, über diese Alternative nachzudenken…

Stromregler als Ursache für Positionierfehler im Mikroschritt

Sonntag, September 4th, 2016

Schrittmotor-Treiber ICs werden immer leistungsfähiger, kleiner und preiswerter. Mikroschrittauflösungen von 1/16 oder 1/32 sind heute bereits Standard, Auflösungen bis 1/256 eines Vollschritts sind ebenfalls verfügbar. Dass diese höhere Auflösung nicht mit der erreichbaren Positioniergenauigkeit gleichzusetzen ist, wurde hier bereits im Beitrag „Die Bedeutung des Lastwinkels bei Schrittmotoren“ diskutiert. Neben den mechanischen Einflüssen wie der angetrieben Last und der Fertigungsqualität des Schrittmotors gibt es aber einen weiteren, nicht zu unterschätzenden Einflussfaktor: Die Schrittmotorsteuerung selbst.

In verschiedenen Foren zu den Themen 3D-Druck und low-cost CNC finden sich Hinweise, dass es speziell bei einigen mit A4988 oder DRV8825 bestückten „Shields“, z.B. von Pololu und deren Nachbauten (z.B. StepStick), Genauigkeitsprobleme bei langsam laufenden Motoren gibt. Dabei scheint der Motor einen Mikroschritt auszulassen bzw. zu überspringen. Besonders kleine Motoren mit niedrigen Strömen sind für diesen Effekt anfällig. Eine kontroverse Diskussion dazu findet sich z.B. im deutschen Teil des Reprap-Forums unter dem Titel „A4899 / DRV8825 Decay Hack“ (Achtung, Zahlendreher im Thread-Titel. Richtig ist A4988!). Ein übersprungener 1/16-Schritt scheint auf den ersten Blick kein großes Problem zu sein. Der dabei entstehende Winkelfehler beträgt lediglich 0,1125°, was besonders bei mechanisch einfachen Aufbauten wenig erscheint. Wie sehr sich dieser Fehler z.B. beim 3D-Druck auf die Oberflächen-Qualität auswirken kann, zeigt das Beispiel des Reprap-Users „lukie80“ aus o.g. Diskussion. Anhand der gedruckten Musterbeispiele erkennt man deutlich den Einfluss der Treiber-Einstellungen auf die Bauteilqualität, wenn der Extruder von einem Treiber angesteuert wird, der das hier besprochene Problem aufweist.

Durch Mikroschritt-Abweichungen verursachte Artefakte beim 3D-Druck [Quelle: Reprap-Forum, user

Durch Mikroschritt-Abweichungen verursachte Artefakte beim 3D-Druck [Quelle: Reprap-Forum, user „lukie80“]

Was ist nun eigentlich die Ursache für dieses Problem? Vereinfacht gesagt schafft es das Treiber-IC nicht, den Wicklungsstrom in der Nähe des Nulldurchgangs fein genug zu regeln. Der für den ersten Mikroschritt nach dem Nulldurchgang nötige geringe Strom fällt dadurch zu hoch aus, so dass der Motor bereits beim ersten Mikroschritt weiter dreht als eigentlich gewünscht. Beim nächsten Mikroschritt fällt die Bewegung entsprechend kleiner aus. Neben der Positionsabweichung kann der ungleichmäßige Lauf auch zu störenden Geräuschen und Vibrationen der angetrieben Mechanik führen. Allegro MicroSystems weist im Datenblatt des A4988 explizit auf diese Problematik hin und liefert gleich eine mögliche Lösung mit. Einen Hinweis darauf gab es bereits 2012 im Blog von Hydraraptor. Die dort diskutierte Verlängerung der Ausschaltzeit t_off führt dazu, dass der Stromregler so langsam wird, dass er im hörbaren Bereich arbeitet. Beim A3977 oder dem in der Tiny-Step II verwendeten Nachfolger A3979 kann dagegen über ein RC-Glied auch die minimale Einschaltzeit (und die Dauer der Fast-Decay Phase) beeinflusst werden, wodurch die Schaltfrequenz höher ausfallen kann und der Effekt abgemildert wird.

Abweichung vom Stromsollwert nach dem Nulldurchgang bei Slow-Decay [Quelle: Datenblatt A4988].

Abweichung vom Stromsollwert nach dem Nulldurchgang bei Slow-Decay [Quelle: Datenblatt A4988].

Ob dieses Problem auftritt, hängt also davon ab, welche Art der Stromregelung das verwendete IC in welcher Phase benutzt. Moderne Treiber-ICs unterstützen verschiedene Betriebsarten der Stromregelung (Slow-, Mixed- und Fast-Decay) und müssen vom Schaltungsentwickler entsprechend auf den jeweiligen Motor angepasst werden. Bei der Entwicklung universell einsetzbarer Schrittmotorsteuerungen (die also nicht für einen konkreten Motor entwickelt werden), muss ein geeigneter Kompromiss zwischen den Vor- und Nachteilen der verschiedenen Betriebsarten gefunden werden. Eine nachträgliche Anpassung durch den Anwender ist in der Regel nicht vorgesehen und würde viele Benutzer wohl auch überfordern. Beim L297 konnte man den Effekt beim Wechsel von slow decay auf fast decay (dort noch Phase bzw. Inhibit chopping genannt) leicht durch Ausprobieren herausfinden, z.B. auf der 3D-Step durch Änderung des Jumpers „MODE“. Heutige Treiber unterstützen deutlich mehr unterschiedliche Einstellungen, die z.T. durch Anpassen von Bauteilwerten justiert werden müssen. Die Unterschiede im Regelungsverhalten treten außerdem nicht mehr so deutlich zu Tage wie beim L297.

Bei den Motorshields mit A4988 und DRV8825 wurden die Hinweise in den Datenblättern offenbar übersehen, nicht verstanden oder aus anderen Gründen nicht umgesetzt. Im Blog von Cabristor findet sich eine Problemanalyse zum Thema. Als Abhilfe-Maßnahme werden dort zusätzliche Dioden in den Zuleitungen zum Motor eingesetzt, was aber entsprechende Verluste in den Dioden verursacht, die effektiv an der Wicklung liegende Spannung reduziert und somit letztlich die Dynamik des Motors reduziert. Wirksamer ist unter Umständen eine Anpassung direkt auf dem Motorshield. Anwendern der betroffenen Module bleibt damit die Möglichkeit, selbst zum Lötkolben zu greifen und die Shields zu patchen, wie es auch im Reprap-Forum beschrieben ist. Beim A4988 muss der Pin ROSC auf Masse (GND) gelegt werden, um Mixed-Decay auch in Phasen des Stromaufbaus zu aktivieren. Diesen Betrieb unterstützt der DRV8825 nicht. Es bleibt nur die Möglichkeit, vollständig auf Fast-Decay umzuschalten, indem Pin19 (DECAY) auf +5V gezogen wird. Nachteil ist ggf. ein höheres Betriebsgeräusch der Motoren durch den höheren Ripple-Anteil im Motorstrom. Bei offenem Pin arbeitet der Treiber zwar mit Mixed-Decay, allerdings nur in Phasen in denen der Strom abgebaut werden soll.

Inzwischen sollen Motorshields mit den genannten Treibern erhältlich sein, die bereits entsprechend geändert sind. Ob die Änderungen für größere Schrittmotoren ebenfalls optimal sind, muss man im Zweifelsfall ausprobieren. Bei Motor-Treibern mit Konfigurationsmöglichkeit über eine digitale Schnittstelle (wie SPI oder I²C) bieten sich je nach konkreter Realisierung der Schrittmotorsteuerung auch für den Endanwender Möglichkeiten, den Treiber an den verwendeten Motor anzupassen. Bei ICs mit externer H-Brücke bzw. externen FETs kann sogar das Zeitverhalten der H-Brücke angepasst werden. Interessante Konfigurationsmöglichkeiten bietet z.B. der DRV8711 von TI, den ich auf meinem neuen Schrittmotor-Treibermodul smOOver.drv einsetze. Durch die guten Einstellmöglichkeiten ergibt sich bei optimaler Anpassung auf den verwendeten Motor ein besonders weicher und ruhiger Motorlauf.

Die richtige Spannung für Schrittmotorsteuerungen – Kriterien zur Auswahl

Montag, April 25th, 2016

Das Schrittmotoren an modernen Steuerungen mit Stromregelung üblicherweise mit Spannungen betrieben werden, die deutlich über der Motornennspannung liegt, ist den meisten Anwendern bekannt und wurde hier bereits vor 5 Jahren im Beitrag „Die Sache mit der Spannung“ besprochen. Doch wie hoch sollte die Spannung gewählt werden? Umso höher die Spannung, umso mehr Drehmoment liefert der Motor im oberen Drehzahlbereich. Also liegt es nahe, die Spannung so hoch wie möglich zu wählen. Im nachfolgenden Beitrag möchte ich diskutieren, welche Grenzen bei der Wahl der Versorgungsspannung beachtet werden müssen.

Vorsicht Spannung

Vorsicht Spannung! Welche Versorgungsspannung ist bei Einsatz eines Schrittmotors die richtige?

Regulatorische Einschränkungen

Neben internen Vorgaben (Werksnormen o.ä.) sind hier vor allem Normen und gesetzliche Vorgaben der Märkte zu beachten, in welche die jeweilige Maschine oder Anlage geliefert werden soll. Für den europäischen Markt ist hier insbesondere die neue Niederspannungsrichtlinie 2014/35/EU relevant (gültig seit 20.4.2016, davor 2006/95/EG). Für den amerikanischen und kanadischen Markt ist es dagegen die UL508A. Die Niederspannungs-Richtlinie greift bei Einsatz von Gleichspannungen ab 75V bzw. Wechselspannungen ab 50V. Mit 48V Gleichspannung ist man also in Hinblick auf die Anwendung der Niederspannungsrichtlinie noch auf der „sicheren Seite“. Geht man darüber hinaus, müssen Motor, Motorsteuerung und Verdrahtung im Rahmen der Risikoanalyse betrachtet werden. Alle mit der Motorspannung verwendeten Komponenten müssen dann die Niederspannungs-Richtlinie erfüllen, diese muss dementsprechend auch in der CE-Konformitätserklärung berücksichtigt sein. Ist die UL508A anzuwenden, sind die Grenzen deutlich strenger. Die Prüfvorschriften für die UL508A berücksichtigen die Besonderheiten von Kleinspannungsantrieben nicht. Diese müssen vergleichbare Spannungsfestigkeiten wie Antriebsverstärker für den Netzspannungs-Betrieb aufweisen, was mit vertretbarem Aufwand nicht zu realisieren ist. Aus diesem Grund gibt es zumindest auf dem europäischen Markt keine Steuerungen für Kleinantriebe, welche die UL508A erfüllen. Bei Versorgung einer Steuerung aus einem sogenannten „Class 2“ Netzteil oder bei Einsatz eines „Limited Energy“ Stromkreises kann aber auch eine Motorsteuerung ohne UL-Zulassung verwendet werden. Class 2 Netzteile sind auf max. 30Veff beschränkt. Bei Limited Energy-Kreisen darf die Spannung bis 42,4V betragen, die Leistung ist auf 100VA begrenzt. Kommen mehrere Antriebe zum Einsatz, ist es zulässig, ein Netzteil größerer Leistung zu verwenden, wenn durch nachgeschaltete Sicherungen die Leistung in den einzelnen Kreisen entsprechen der Vorgaben in der Norm limitiert wird.

Schrittmotorsteuerung

Je nach Bauart der Schrittmotorsteuerung kommt eine single-Chip Lösung zum Einsatz, oder eine Endstufe mit externen MOSFETs. Gerade integrierte Lösungen sind in Hinblick auf die Versorgungsspannung limitiert. Typische maximale Spannungen liegen im Bereich 30-40V. Um ausreichend Reserven beim Bremsen (Rückspeisung durch den Motor) und für auftretende Schaltspitzen zu haben, sollte die Betriebsspannung mit einigem Abstand zur maximalen Versorgungsspannung des eingesetzten Treiber-ICs gewählt werden. Bei einsatzfertigen Geräten ist diese Reserve in der Regel bereits in den technischen Daten berücksichtigt, während bei „Motorshields“ (Treiber-Platinen für den Einsatz am Arduino oder Raspberry Pi meist mit minimaler Außenbeschaltung) in der Regel die Maximalwerte des Chips angegeben werden. Hier muss der Anwender selbst für entsprechende Sicherheitszuschläge sorgen, auch empfiehlt sich der Einsatz zusätzlicher Stützkondensatoren. Steuerungen für den Betrieb an Spannungen >=75VDC müssen die Niederspannungsrichtlinie erfüllen und entsprechend gekennzeichnet sein.

Schrittmotorsteuerung mit CE

Programmierbare Schrittmotorsteuerung für höhere Versorgungsspannungen mit CE-Kennzeichnung.

Motor

Bei Schrittmotoren gibt es von den Herstellern in der Regel keine offiziellen Spezifikationen, bis zu welcher Spannung ein Motor eingesetzt werden darf. Anhand der in den Motorkennlinien verwendeten Spannungen kann jedoch auf den zulässigen Spannungsbereich geschlossen werden. Höhere Spannungen als in den Kennlinien angegeben sollten vorab mit dem Motorhersteller abgestimmt werden. Wie im vorherigen Abschnitt bereits erwähnt, müssen Motoren, die mit Spannungen betrieben werden, die in den Geltungsbereich der Niederspannungsrichtlinie fallen, eine CE-Kennzeichnung aufweisen. Verschiedene Motorhersteller bieten Motorvarianten oder Serien mit CE-Kennzeichnung an. In der Regel sind diese Motoren auch mit einer zusätzlichen Schraube zur Erdung des Motorgehäuses und/oder einer abgeschirmten Zuleitung ausgestattet. Von Oriental Motor werden die IP54 und IP65-Motoren mit Flanschgrößen Nema23 und Nema34 mit CE-Kennzeichnung geliefert, die Standardmotoren gleicher Größe jedoch ohne CE. Sanyo Denki liefert ebenfalls unterschiedliche Serien mit und ohne CE. Von LAM werden alle Motoren mit CE-Kennzeichnung geliefert, eine Erdungsschraube ist aber nur bei den Motoren ab 86mm Flanschmaß vorhanden. Andere Hersteller liefern entweder keine gemäß CE gekennzeichneten Motoren, oder die Niederspannungsrichtlinie ist nicht Teil der Konformitätserklärung.

Schrittmotor CE

Schrittmotor PK268DW in IP54-Ausführung mit CE-Kennzeichnung und geschirmter Anschlussleitung. Quelle: Oriental Motor

Netzteil

Je nachdem, welche Spannungen bereits in der Anwendung verwendet werden, kann es sinnvoll sein, die Spannungsversorgung für den oder die Schrittmotoren aus den gleichen Netzteilen zu beziehen. Im industriellen Umfeld sind 24V besonders verbreitet, was zu den o.g. Grenzen der IC-Lösungen gut passt. Gängige Spannungen für Schaltnetzteile sind weiterhin 36V und 48V, höhere Spannungen sind sehr selten zu finden. Hier bietet sich bei Bedarf eher eine Reihenschaltung von zwei Netzteilen mit je 36V oder 48V an.

Fazit – die richtige Spannung für Ihre Anwendung

Welche Versorgungsspannung eingesetzt werden kann und darf, ist von vielen Faktoren abhängig. 24VDC sollten in den allermeisten Anwendungen möglich sein, ebenso 36VDC, wenn der verwendete Motortreiber hierfür geeignet ist. 48VDC und ggf. 60VDC sind für den europäischen Markt in der Regel problemlos verwendbar, im amerikanischen und kanadischen Markt jedoch nicht unbedingt zu empfehlen. Hier sollte man 36V nicht überschreiten und auf den Einsatz eines Class 2 Netzteils achten. Bei Spannungen über 60VDC ist eine Risikobeurteilung ratsam. In diesem Rahmen sollte auch geprüft werden, ob für Motor und Motorsteuerung eine CE-Konformitätserklärung vorliegt, welche die Niederspannungsrichtlinie berücksichtigt.

Positioniergenauigkeit von Schrittmotoren

Samstag, November 15th, 2014

Im Beitrag „Die Bedeutung des Lastwinkels bei Schrittmotoren“ wurde bereits diskutiert, warum durch den Einsatz einer Mikroschritt-Ansteuerung zwar die Auflösung des Antriebssystems erhöht wird, nicht aber die Genauigkeit. Dabei wurde auch erläutert, warum ein Schrittmotor unter Last einen Positionsfehler von bis zu einem Vollschritt aufweisen kann, ohne dass er aus dem Tritt gerät. Im Rahmen einer Diskussion über Schrittmotoren und Rampen im Forum von Mikrocontroller.net wurde im Verlauf der Diskussion auch die Frage erörtert, ob der max. Positionsfehler eines Schrittmotors nun ein, zwei oder gar vier Vollschritte betragen würde. Diese Frage möchte ich daher hier nochmals aufgreifen.

In der Literatur finden sich zum statischen Belastungsfall (d.h. der Motor steht und wird durch ein externes Moment belastet) vergleichbare Abbildungen wie im Beitrag über den Lastwinkel, wobei hier das Motormoment aufgetragen ist, während in der Literatur meist das extern angreifende Moment dargestellt wird, und nicht das vom Motor aufgebrachte Moment. Dieses ist dem Lastmoment entgegen gesetzt und weist dementsprechend ein anderes Vorzeichen auf.

Eine besonders interessante Darstellung findet sich bei RUMMENICH. Neben der bekannten sinusförmigen Lastmoment-Kurve, die den Bereich +/-2 Vollschritte abdeckt, wird hier die Stabilität der Rotorlage durch einen Vergleich mit einem Pendel symbolisch dargestellt. Anhand des Pendels wird deutlich, dass der Rotor in den Positionen bei +/- 2 Vollschritten eine instabile Lage einnimmt. Sollte es zu einer Überlastung des Motors kommen, wird der Rotor also in die nächste stabile Position (+/- 4 Vollschritte) springen. Das gilt allerdings nur, wenn die externe Last dann wieder kleiner ist als das Drehmoment des Motors. Ansonsten wird der Rotor um weitere n*4 Schritte weiter drehen. Analog kann das Pendel nur in seine stabile Lage zurück schwingen, wenn die Kraft welche die Auslenkung verursacht hat, verschwindet (d.h. wenn das Pendel losgelassen wird).

Lastwinkel Rummenich

Darstellung des Lastwinkels im Buch von E. Rummenich.

Eine ausführlichere Betrachtung zum Thema Winkelfehler durch Belastung des Motors findet sich bei SCHÖRLIN. Neben dem Einfluss einer statischen Last wird hier auch auf das Reibmoment eingegangen. Der durch das Reibmoment verursachte Winkelfehler wird gemäß

α=arcsin⁡(Mr/Mmax)

berechnet, wobei Mr das Reibmoment und Mmax das Nennmoment des Schrittmotors ist. Es wird sofort klar, dass ein höheres Drehmoment bei gleichbleibendem Reibmoment einen kleineren Winkelfehler zur Folge hat. Umgekehrt führt eine Absenkung des Motorstroms zu einem höheren Winkelfehler.

SCHÖRLIN betrachtet aber auch den dynamischen Lastfall. Bei höheren Drehzahlen ergibt sich durch die Phasenverschiebung zwischen Strom und Spannung ein Nacheilen des Drehfeldes gegenüber den angelegten Spannungen um max. 90°, so dass auch der Rotor zurück fällt. Dieser Effekt überlagert sich mit dem statischen Lastfall, so dass der dynamische Gesamtfehler bis zu zwei Vollschritte betragen kann.

Dynamischer Lastwinkel

Darstellung des statischen Lastwinkels incl. Einfluß des Reibmomentes (oben) sowie des dynamischen Lastwinkels (unten) bei F. Schörlin

Kommt es zu einer Überlastung und damit zu einem außer Tritt fallen des Motors („Schrittverlust“), springt der Schrittmotor um ein Vielfaches von 4 Vollschritten weiter. Der im Verlauf der eingangs genannten Diskussion gebrauchte Begriff „Großschritt“ findet sich in der Literatur übrigens nicht wieder. Auch eine Websuche führt zu nicht zu relevanten Treffern. Stattdessen ist es üblich, von einer elektrischen Umdrehung zu sprechen, da sich nach vier Vollschritten das Bestromungsmuster widerholt. Der Zusammenhang zwischen der elektrischen Umdrehung und einer mechanischen Umdrehung des Rotors (=360°) ist die Anzahl der Polpaare. Der typische 2-phasige Schrittmotor mit 1,8° Vollschritt-Winkel (200 Vollschritte/U) weist demnach eine Polpaarzahl von 50 auf.

Zusamenfassung: Unterhalb des Motor-Nennmoments ist der auftretende Winkelfehler im statischen Fall kleiner als +/- einen Vollschritt. Im dynamischen Fall kann der Winkelfehler sogar auf +/- zwei Vollschritte ansteigen. Dieser Effekt ist bei Anwendungen mit hohen Anforderungen an die Positioniergenauigkeit unbedingt zu beachten. Ggf. hilft es, den Motor entsprechend größer auszulegen, so dass die auf den Rotor wirkenden Lastmomente gegenüber dem Nennmoment klein bleiben, was entsprechend kleinere Winkelfehler zur Folge hat.

Ansteuern von Schrittmotoren mit Arduino

Montag, Mai 5th, 2014

Ein Arduino Controller kann verwendet werden, um eigenständige interaktive Objekte zu steuern oder um mit Softwareanwendungen auf Computern zu interagieren (z. B. Adobe Flash, Processing, diverse Skriptsprachen, Terminal etc.). Arduino wird beispielsweise auch an Kunsthochschulen genutzt, um interaktive Installationen aufzubauen. Die Hardware besteht aus einem einfachen I/O-Board mit einem Mikrocontroller und analogen und digitalen Ein- und Ausgängen. Die Entwicklungsumgebung verwendet die Programmiersprache Processing, die auch technisch weniger Versierten den Zugang zur Programmierung und zu Mikrocontrollern erleichtern soll. [Quelle: Wikipedia]

Um es Einsteigern in die Welt von Elektronik und Mikrocontrollern möglichst einfach zu machen, gibt es für die Arduino-Plattform eine große Vielfalt an steckbaren Erweiterungsmodulen, so genannte „Shields“. Auch für die Ansteuerung von Motoren sind diverse Shields erhältlich. Sie bestehen oft nur aus einem Treiberchip mit der minimalen Basisbeschaltung. Über die kleine Platine kann kaum Verlustleistung abgeführt werden, zudem fehlt es für größere Motoren an ausreichend dimensionierten Pufferelkos. Auch Schutzbeschaltungen (Kurzschlussschutz, Optokoppler in Richtung Controller) sind die absolute Ausnahme. Das Experimentieren mit Motoren kann so schnell zu einem frustrierenden Erlebnis werden, wenn mit den Motoren „reale“ Lasten angetrieben werden sollen. Im folgenden Beitrag wird gezeigt, wie man mit einem Arduino mit Hilfe der AccelStepper-Bibliothek über wenige I/Os nahezu alle Schrittmotorsteuerungen mit Takt-/Richtungsinterface ansteuern kann.

Zur Arduino Entwicklungsumgebung gehört auch eine einfache Bibliothek zur Ansteuerung von Schrittmotoren. Sie geht jedoch davon aus, dass die Motorwicklungen direkt oder mittels zwischengeschalteter Transistoren über die I/Os des Prozessors angesteuert werden (Verwendung von zwei Ausgängen je Motorwicklung, insgesamt 4 Ausgänge). Beschleunigungs- und Bremsrampen sind nicht vorgesehen. Durch diese einfache Ansteuerung lässt sich nur ein geringes Drehmoment bei niedrigen Drehzahlen erreichen. Die AccelStepper-Library unterstützt dagegen auch so genannte 2- und 3-Draht Interfaces sowie den Typ „Driver“. Gemeint ist damit die Ansteuerung von integrierten Treibern über Takt- und Richtungssignale. Es ist auch möglich, eigene Interface-Definitionen einzuführen, wie im Beispiel zu diesem Beitrag gezeigt wird. Wie der Name andeutet, implementiert die Lib außerdem Beschleunigungs- und Bremsrampen. Über die Bibliothek können zudem mehrere Motoren gleichzeitig angesteuert werden, was die Anwendungsmöglichkeiten von Arduino für Projekte mit Motoren deutlich erweitert.

Anschluss der Tiny-Step Endstufe an den Arduino Controller

Anschluss der Tiny-Step Endstufe an den Arduino Controller

Das Bild zeigt den Anschluss der Takt-Richtungsendstufe Tiny-Step II, welche auf dem A3979 von Allgero Micro basiert. Der Treiber realisiert Motorströme bis 2,25A bei bis zu 35V bei Mikroschritt-Auflösungen bis 1/16. Durch das durchdachte Kühlkonzept werden die genannten Leistungsdaten auch im Dauerbetrieb sicher erreicht. Der integrierte, selbstrückstellende Kurzschlussschutz sichert die Schaltung vor Schäden durch falsche Beschaltung. Neben den Anschlüssen für Takt und Richtung (grün und gelb) werden auch Ausgänge für Enable (Einschalten der Endstufe) und Stromabsenkung ausgegeben sowie ein Fehlersignal von der Endstufe über einen Eingang eingelesen. Diese Signale sind optional. Der fertige Aufbau ist im folgenden Bild zu sehen, angeschlossen ist ein Nema17 Motor mit 0,5Nm Haltemoment. Auch kleinere Nema23 Motoren können mit diesem Aufbau angesteuert werden.

Testaufbau mit Arduino, Tiny-Step und Schrittmotor von Nidec Servo

Testaufbau mit Arduino, Tiny-Step und Schrittmotor von Nidec Servo

Nach dem gleichen Prinzip und hier sogar mit der identischen I/O-Beschaltung lassen sich aber auch deutlich leistungsfähigere Endstufen an den Arduino anbinden. Das folgende Bild zeigt einen Aufbau mit einer Endstufe vom Typ LAM DS1078 (bis 14A bei bis zu 90V), die einen Nema34 Motor mit 3,1Nm antreibt. Die DS10-Serie ist eine industrietaugliche Serie von Schrittmotorendstufen mit SPS-kompatiblen I/Os. Durch den Einsatz dieser Kraftpakete ergeben sich mit dem Arduino ganz neue Möglichkeiten.

Testaufbau mit LAM DS1078

Testaufbau mit LAM DS1078

Das Programmierbeispiel (Arduino-Projekte werden auch Sketch genannt) ist auf Git-Hub frei zum Download verfügbar. Ich würde mich über Rückmeldungen zum Einsatz der Accellib freuen.

Vorteile eines Lagereglers im Antrieb statt in der NC/PLC

Freitag, April 25th, 2014

Der folgende Beitrag befasst sich mit der Regelungsoptimierung von Synchron-Servomotoren und ist damit ein Kontrastpunkt zu meinem Schwerpunktthema Schrittmotoren.

Ausgangslage:
Betrachtet wird eine vertikale Achse eines Handlings-Systems, welche reine Punkt-zu-Punkt Bewegungen ausführt, also während der Verfahr Bewegung keine Bahn einhalten muss. Der Antrieb besteht aus einem Beckhoff AM8023-E021 Servomotor mit Bremse und Sigleturn-Geber mit OCT (One Cable Technology, dabei wird der Geberistwert mittels Hyperface über die Leitungen des Temperaturgebers im Motorkabel übertragen). Die Bewegung wird über ein Getriebe auf eine Kugelrollspindel übertragen. Angesteuert wird der Motor über eine AX5203.

Servoregler-Familie AX5000

Servoregler-Familie AX5000 (Quelle: Beckhoff Automation)

Die Regler der AX5000 Familie von Beckhoff werden über TwinCAT an die übergeordnete Steuerung (SPS bzw. PLC) angebunden. Dort werden sie von der Beckhoff NC angesprochen, welche über die Datenstrukturen NC2PLC und PLC2NC wiederum eine Schnittstelle zum eigentlichen SPS-Programm bietet. Die Servoregler arbeiten mit dem Sercos over EtherCAT (SoE) Protokoll, d.h. das Übertragungsmedium ist EtherCAT, die eigentlichen Antriebsfunktionen (Parameternummerierung, Zustandsmaschine) entsprechen aber denen bei Sercos-Antrieben.

Standardmäßig werden die Servoregler dabei so parametriert, dass Drehzahl- und Stromregler im Antrieb geschlossen werden, während der Lageregler in der NC geschlossen wird. Obwohl TwinCAT kurze Buszykluszeiten ermöglicht, stellt die Übertragung von Soll- und Istwerten über den Bus eine zusätzliche Verzögerung für den Regler dar, die einen deutlichen Einfluss auf dessen dynamisches Verhalten haben kann, wie das folgende Beispiel zeigt.

In der Standardeinstellung (Lageregler in der NC geschlossen) war ein Kv-Faktor von 5 s-1 eingestellt. Der max. Schleppfehler während der Verfahr Bewegung beträgt dabei ca. 75µm. Nach dem Ende der Bewegung (SETVELO=0) dauert es 344ms, bis der Schleppfehler unter 10µs fällt.

Lageregelung in der NC. Oben: Position, Mitte: Drehzahl, Unten: Schleppfehler. Per Cursor markiert: Zeit vom Ende der Bewegung bis zum Erreichen einer Lageabweichung <10µm.

Lageregelung in der NC. Oben: Position, Mitte: Drehzahl, Unten: Schleppfehler. Per Cursor markiert: Zeit vom Ende der Bewegung bis zum Erreichen einer Lageabweichung <10µm.

Nach dem der Lageregler im Antrieb geschlossen wurde, konnte der Kv-Faktor ohne weiteres auf 7,5 s-1 erhört werden. Der Schleppfehler reduzierte sich für das gleiche Verfahr Profil wie zuvor auf 0,5µm. Selbst bei Fahrt mit annähernd maximaler Geschwindigkeit (50mm/s am Abtrieb) bleibt der Schleppfehler bei max. 2µm.

Lageregler im Antrieb geschlossen. Oben: Position, Mitte: Drehzahl, Unten: Schleppfehler.

Lageregler im Antrieb geschlossen. Oben: Position, Mitte: Drehzahl, Unten: Schleppfehler. Abweichende Skalierung vom Schleppfehler beachten!

Um den Lageregler in der AX5000 verwenden zu können, sind folgende Einstellungen erforderlich:
IDN-Parameter S-0-0-0032 in der Startup-Liste von 2 (velo control) auf 11 oder 12 (pos ctrl Feedback 1/2 lag less) umstellen. Die Einstellung „lag less“ sorgt durch eine Drehzahlvorsteuerung für minimalen Schleppfehler während der Bewegung.

Anpassen der Standardbetriebsart in der Startup-Liste

Anpassen der Standardbetriebsart in der Startup-Liste

In den Kanaleinstellungen unter Process Data / Operation Mode das Prozessabbild wie folgt anpassen. MDT: S-0-0036 „Velocity command value“ entfernen, statt dessen S-0-0047 „Position command value“ neu einfügen. AT: S-0-0189 „Following distance“ einfügen. Der Schleppfehler wird zusätzlich in die NC verknüpft, um den Schleppfehler dort ohne Totzeit anzeigen zu können. Ansonsten würde die Berechnung aus Sollposition(n) – Istposition(n-1) berechnet (n, n-1: diskrete Zeitpunkte).
Ggf. bereits vorhandene Verlinkungen in die NC löschen und Achsen neu verlinken.

Anpassen des Prozessabbildes im Beckhoff Drivemanager

Anpassen des Prozessabbildes im Beckhoff Drivemanager

Zusammenfassung:
Die Verlagerung des Lagereglers von der NC in den Antrieb ermöglicht den Betrieb mit deutlich reduzierten Regelabweichungen und schnelleren Ansprechzeiten des Antriebs. Ermöglicht wird dies durch den Entfall der Buslatenzen sowie durch den höheren Lagereglertakt im Antrieb (typisch 8kHz statt 1kHz in der NC). Ein weiterer Vorteil ist die Entlastung der CPU in der SPS durch den Entfall der Regelung dort.

LPT, USB und Ethernet – Welche Schnittstelle für Desktop-CNC Maschinen?

Samstag, Mai 18th, 2013

In der Zeitschrift „Hardware Hacks“ Ausgabe 1/2013 wurde im Rahmen eines Tests (S. 30ff) von Desktop-CNC Maschinen kritisiert, dass bei vielen der getesteten Maschinen noch der LPT-Port (Parallelport) als Schnittstelle zum PC verwendet wird. Warum das meiner Meinung nach trotzdem sinnvoll ist, will ich nachfolgend erläutern:
Es stimmt zwar, dass der Druckerport (LPT) im PC längst obsolet ist. Trotzdem hat er als Schnittstelle für Schrittmotorsteuerungen in low-cost CNC-Anwendungen nach wie vor seine Berechtigung. Dies ist vor allem darauf zurückzuführen, dass im Endgerät kein Protokoll implementiert werden muss, sondern die I/O-Signale direkt verwendet werden können – nach dem sie idealerweise auf einer Interfacekarte (oft auch als Breakout Board bezeichnet) noch etwas aufbereitet wurden. Musste man früher die Pinbelegung ggf. noch durch ein handgelötetes Adapterkabel anpassen, können heute eigentlich alle gängigen Programme auf unterschiedliche Pinbelegungen hin angepasst werden.
Steht kein LPT-Port mehr zur Verfügung oder soll aus Performance-Gründen USB oder LAN eingesetzt werden, ist dies trotzdem ohne Weiteres möglich. Aufgrund der bereits genannten Protokoll-Problematik ist hierfür jedoch ein Controller erforderlich, der zu dem eingesetzten CNC-Programm passt. WinPCNC wird z.B. in der USB-Version gleich mit einem passenden Controller geliefert, der 2 „LPT“-Ports als Schnittstelle zur Elektronik bietet. Mit dem „Smooth-Stepper“ gibt es für Mach3 ähnliche Lösungen sowohl für USB als auch Ethernet. Ausgangsseitig werden auch hier diskrete I/Os in Anlehnung an den LPT-Port verwendet.
Wenn ein Maschinenhersteller also für seine Steuerung auf den LPT-Port setzt, ist das letztlich im Sinne des Anwenders, weil diese nicht an die vom Maschinenbauer präferierte Software gebunden ist. Statt dessen bleibt dem Anwender die freie Wahl, welche Software er einsetzen möchte.