3xServomotor vs 3xSchrittmotor --- Vorauswahl für X,Y,Z-Achse

Hallo zusammen,

ich komme aus dem Maschinenbau und habe noch keine Erfahrung mit Mikrokontrollern. Dementsprechend hätte ich ein paar grundlegende - ich sag mal - elektronische Fragen. Ich möchte ein 3-achsiges motorisiertes System realisieren und automatisch in X,Y,Z-Richtung verfahren können. Die Ansteuerung der Motoren soll über einen Arduino/Mikrocontroller erfolgen.

Ein beispielhaftes 3-achsiges System findet ihr hier:
https://www.thorlabs.com/newgrouppage9.cfm?objectgroup_id=3002

Eine grundlegende Entscheidung die ich treffen muss, ist, ob ich mir die jeweiligen X,Y,Z-Lineareinheiten entweder angetrieben von Schrittmotoren oder Servomotoren beschaffen soll. Neben meinen mech. Anforderungen wie Baugröße, Präzision etc. mache ich das sekundär aus "elektronischer" Sicht abhängig. Könntet ihr mir bitte helfen, folgende Punkte zu klären.

A) Grundsätzliche Kompatibilität Motor/Arduino

  • Nach kurzer Internetrecherche gibt es wohl die Möglichkeit 3 Schrittmotoren vom Typ NEMA 17/23 gleichzeitig über einen Arduino anzusteuern. Ich würde hierzu unter anderem 2 x Adafruits Motorshield benötigen?
  • Servomotor Bosch Rexroth MSM019:
    Electric Drives and Controls
    Hat dieser Motor bereits zu viel Power? Wie kann ich ganz allgemein beispielsweise anhand I, U Gegenprüfen, ob ein Arduino-Mikrocontroller einen Motor "verträgt"? Bzw. welche elektrischen Kennzahlen sind für die Auswahl entscheidend?

B) Allgemeiner Aufwand bzgl. elektrischer Verschaltung
Angenommen beide genannten Servo- und Schrittmotoren können "standardmäßig" über Arduinos angesteuert werden. Was wäre aus elektronischer Sicht aufwändiger? Benötige ich für die Ansteuerung von den genannten 3 Servomotoren oder den 3 Schrittmotoren mehr Komponenten zur vollständig Verschaltung und elektronisches Verständnis?

C) Programmierung
Programmiertechnisch macht es prinzipiell denke ich keinen großen Unterschied welche Motorenklasse verwendet wird nehme ich an? Mit dem 3-achsigen System möchte ich über den Tag verteilt schlicht nacheinander gewisse Positionen in X, Y und Z anfahren.

Ich hoffe ihr könnt mir helfen. Es könnte ja sein, dass eine Variante nicht bzw. deutlich schwerer umzusetzen ist. Daraufhin kann ich mich in die detaillierte Umsetzung einer Variante einarbeiten.
Danke!

Da Du Deine mechanischen Anforderungen geheim hälst, können wir auch keine Aussagen dazu treffen.

Gruß Tommy

Edit: Es ist schon ein minimaler Unterschied, ob es ein 3D-Drucker, eine CNC-Fräse oder ein Containerkran werden soll.

sh92:
... Ich hoffe ihr könnt mir helfen. ...

Wie Tommy schreibt, musst Du ein paar zusätzliche Voraussetzungen nennen, um Dir einen Schubs in die richtige Richtung geben zu können.

Vielleicht hilft aber schon mal die Info, dass Schrittmotore irre Energiefresser sind und stromlos ein lächerliches Haltemoment haben. Allerdings kann man mit ihnen feste Positionen anfahren, ohne dass zusätzliche Sensoren zur Positionsbestimmung nötig sind. Getriebemotore haben auch stromlos ein verhältnismäßig gutes Haltemoment - allerdings benötigt man Sensoren, um die aktuelle Position feststellen zu können.

Gruß

Gregor

Der Hauptunterschied zwischen Schrittmotoren und Servomotoren ist:

  • Schrittmotoren machen einen genau definerte Winkelnbewegung bei jeden Ansteuerungsschritt. Darum braucht es keine Positionsmessung sondrn bereits durch die Ansteuerung inst die genaue positionierung gegeben. NEMA 17/23 ist dei Angabe der Flanschgröße und damt der Größe des Motors. Ganz grob ist es eine Leistungsangabe aber keine Definition der elektrischen Kenngrößen. Bei einem Gleichstrommotor mit 10 cm Durchmesser weißt Du auch nicht ob er mit 5V funktioniert oder mit 24 oder 48V.
  • Servomotoren sind Motore (Gleichstommotore oder Wechselstrommotore) bei denen kein eindeutiger Zusammenhang zwischen Ansteuerung und Position besteht. Die Position wird durch einen Positionsmessung ermittelt. Der von Dir genannte Motor MSM019 ist ein Asynchronmotor (oder Bürstenloser Gleichstrommotor, habs nicht genau aus dem Datenblatt verstanden) mit Treiber und Encoder für die Positionsbestimmung. Für den MSM019 Motor braucsht Du den geeigneten Treiber von der Herstellerfirma. Da machst Du nichts mit Arduinoshields.

Vorteil der Schrittmotore: relativ einfache Ansteuerung, Position durch Ansteuerung.
Nachteile: relativ wenig Kraft; Bei mechnischer Überlastung bleiben sie stehen; Stromverbrauch auch bei stillstehenden Motor

Vorteil Servomotore: Höhere Kraft/Leistung und dynamisches Verhalten (schnellere Beschleunigung und Bremsen).
Nachteile: Positionsmessung und dadurch aufwendigere Ansteuerung. Höhere Leistung und darum teurer. (den MSM019 hab ich als Preis 925$ gefunden ohne Treiber).

Ich weiß nicht wieviel Du ausgeben willst oder wie stark die Motoren sein müssen.

Wenn Du einen Motor brauchst der mit 5000 U/min dreht dann ist ein Arduino in der Positionsmessung überfordert.

Grüße Uwe

Danke euch, ich bin schon etwas schlauer :slight_smile:

Die mech. Anforderungen habe ich ursprünglich in meinem Post nicht für relevant gehalten, da ich diesbezüglich direkt mit den "Servolieferanten" und den "Schrittmotorlieferanten" in Kontakt stehe:
Zur Vollständigkeit bzw. falls doch noch relevant:
geringe/keine Anforderungen an Geschwindkeit und Beschleunigung. Möglichst exakte Positionierung über geringe Hublängen (<100 mm). Kompaktheit. Zu tragendes Gewicht des Systems: Achseneigengewichte+ 1 bis 2 Kg. Achsenaufbau gemäß Bild in OP.

Was mir wichtig war bzw. was ich jetzt erst so richtig verstanden habe, ist, dass bei der von mir genannten "Servovariante" der Hersteller die geeigneten Treiber quasi liefern muss.
Insgesamt ist das auch die wesentlich teurere Variante.

Die ganze Ansteuerung der Motoren über einen Arduino ist kein Muss. Ich würde es allerdings nur zu gerne lernen wenn es zufällig passt. Sind die folgenden beiden Schrittmotoren mit üblichen Arduinos plus Shields kompatibel? Also eigentlich habe ich das durch zahlreiche Anwendungsbeispiele bereits im Internet gesehen, wenn ich mich nicht irre. Aber wie kann ich z.B. anhand der Datenblätter der Schrittmotoren (unter den Links runterscrollen) und des Arduinos ganz allgemein die elek. Kompatibilität prüfen? Welche Größen sind hier zu beachten... I, U etc.??

http://www.igus.de/wpck/7355/DryLin_NEMA_17

http://www.igus.de/wpck/7242/DryLin_NEMA_23

Ich möchte an die Achse eine Eigenkonstruktion anbringen und durch Variation in X,Y,Z Einflüsse auf ein Bauteil untersuchen. Die Schrittmotoren wären somit möglicherweise bis zu einem Arbeitstag durchgehend am Strom angeschlossen. Ist das ein Problem? Die Lineareinheiten sind mit Spindeltrieben ausgestattet. Drehmomentmäßig wären die Schrittmotoren hinreichend dimensioniert.

Danke!

Gruß SH

sh92:
Die Schrittmotoren wären somit möglicherweise bis zu einem Arbeitstag durchgehend am Strom angeschlossen. Ist das ein Problem? Die Lineareinheiten sind mit Spindeltrieben ausgestattet. Drehmomentmäßig wären die Schrittmotoren hinreichend dimensioniert.

Wenn die Motoren nicht zu heiß werden, kannst Du sie problemlos einen (oder mehrere Tage) durchgehend mit Energie versorgen. Aber wie gesagt, Schrittmotore sind irre Energiefresser, auch wenn sie gerade nichts tun.

Und ob die genannten Stepper geeignet sind, kann ich nicht beantworten, denn ich habe im Datenblatt keine Angaben zu benötigten Strömen [A] oder Energiebedarf [W] gesehen. Habe ich das übersehen?

Gruß

Gregor

gregorss:
Habe ich das übersehen?

Unten auf der Seite bei "Technische Daten"

Maximalspannung [VDC] 60
Nennspannung    [VDC] 24-48
Nennstrom       [A]     1,8

Maximalspannung [VDC] 60
Nennspannung    [VDC] 24-48
Nennstrom       [A]     4,2

agmue:
Unten auf der Seite ...

Stimmt. Da stehen diese Angaben. Im „Datenblatt“ habe ich das immer noch nicht entdecken können. Ich weiß nicht, ob ich von so einer Firma kaufen würde. Wenn die sich mit ihren Motoren die gleiche Mühe geben wie bei ihren Datenblättern sollte man besser nicht zu viel erwarten.

Gruß

Gregor

gregorss:
Im „Datenblatt“ habe ich das immer noch nicht entdecken können.

Brille aufsetzen und dann auf Seite 3 oben bei "Technische Daten" schauen :o


sh92:
Sind die folgenden beiden Schrittmotoren mit üblichen Arduinos plus Shields kompatibel?

Was ist schon üblich? Nehmen wir mal das von Dir erwähnte Adafruit Motor/Stepper/Servo Shield for Arduino v2 als üblich an, dann ist die Antwort negativ. Unter Shields verstehe ich Platinen, die man direkt auf einen UNO oder Mega2560 stecken kann. Wenn wir diesen Begriff mal zu Boards, also nicht steckbar, erweitern, kommen wir zu Stromsteuerungen für Schrittmotoren, die vom Arduino mittels Takt, Richtung und Enable angesteuert werden, beispielsweise TB6600 CNC Micro-Stepping Stepper Motor Driver. In diesem Bereich dürftest Du passend zum Motor fündig werden. Kenngrößen sind der Strom (NEMA23 4,2A; beim Link 4,5A) und die Versorgungsspannung (NEMA23 60V; beim Link 40V). Bei einer Versorgung mit 40V würde sich schon was drehen, könnte die Steuerung auch 60V, paßte es besser. Stromsteuerung würde ich der Spannungssteuerung (Adafruit-Shield) vorziehen.

Mein Gefühl sagt mir, der NEMA23 ist überdimensioniert, wenn Du mit Spindeln arbeitest und hauptsächlich Reibung und Trägheit überwinden möchtest. Aber da halte ich mich besser zurück.

agmue:
... Brille aufsetzen und dann auf Seite 3 oben bei "Technische Daten" schauen ...

Hu?! Welche Seite drei in welchem Dokument meinst Du? Was ich als Datenblatt von der Igus-Seite bekomme, enthält keine Seite drei, auf der es die Überschrift „Technische Daten“ gibt:

Gruß

Gregor

PS: Lass Dich nicht von der Seitenzahl im Shot täuschen. Das ist die dritte Seite des PDFs. Eine Seite mit der Seitenzahl 3 gibt es dort nicht. Nach dem gezeigten Shot folgt Seite 4.

Hi

Bei Steppern ist Es 'üblich', daß man möglichst kleine Nenn-Spannungen benutzt, den Treiber auf den Nenn-Strom des Motor einstellt und den Treiber mit möglichst viel Spannung versorgt.

Hat den Hintergrund, daß eine höhere Spannung den Strom wesentlich schneller in den Motor rein drückt, als eine Geringere.
Du hast also nach (wesentlich) kürzerer Zeit den Nennstrom des Motor und damit die Kraft.
Dadurch, daß der Treiber den Strom überwacht und auf ein Maximum begrenzt, kommen von den vielen 'Volt' nur so viele an, daß der Nennstrom nicht überschritten wird (Suchwort Chopper).

Der Motor wird bei Nenn-Strom Seine Nenn-Temperatur annehmen - Das kann auch schon 'ordentlich heiß' sein.
Wie bereits geschrieben, den Strom braucht der Stepper AUCH im Stand, wobei hier einige Treiber eine Einstellung haben, den Strom im 'Leerlauf' abzusenken, um eine unnötige Erwärmung einzugrenzen - im Stand ist bei Weitem nicht die Kraft nötig, wie während der Fahrt.

Bei den Stepper-Treibern musst Du drauf achten, daß Diese den Nenn-Strom liefern können.
Ein 08/15 China-Steppertreiber, Der mit 2A beworben wird, könnte bei 2A auch einfach nur sterben, ohne Kühlkörper auch weit darunter.
Auch muß der Strom VOR Anschluß des Motor eingestellt werden (sonst könnte auch der Motor durchbrennen) - und zu Allem Überfluss ist das Abstöpseln des Motor unter Spannung nahezu tödlich für den Treiber (der Motor muß dafür NICHT drehen, Strom nimmt Er ja trotzdem).

Hoffe, ich habe Dich jetzt nicht zu sehr verwirrt.
Wenn noch Fragen offen sind: gerne fragen
Bin aber die letzten Tage wieder mehr 'am Spielen' - momentan ärgere ich eine DOT-Matrix und möchte Da die Uhrzeit drüber scrollen lassen ... trotz Arduino nicht nur C&P :wink:
Könnte also sein, daß ich Dich nicht gleich 'abfrühstücke'.

MfG

gregorss:
Hu?! Welche Seite drei in welchem Dokument meinst Du?

Datenblatt NEMA17 und NEMA23 jeweils Seite 3 / 9.

Hallo Leute,

vielen Dank für die Diskussion. Bitte um kurze Bestätigung, dass folgendes Set zur Ansteuerung der folgenden 3 Schrittmotoren hinsichtlich Betriebspannung und Nennstrom kompatibel ist:

https://www.ebay.de/itm/CNC-V3-Shield-UNO-R3-A4988-Driver-Module-Board-fur-Arduino-3D-Drucker-TE623/381883617228?_trkparms=aid%3D222007%26algo%3DSIM.MBE%26ao%3D1%26asc%3D20160908110712%26meid%3Dcf8a61c2194244dca876f284bd3a99bd%26pid%3D100677%26rk%3D1%26rkt%3D26%26mehot%3Dag%26sd%3D381839921150&_trksid=p2385738.c100677.m4598

Nochmal die 3 Schrittmotren die ich über den Arduino ansteuern möchte:

Von dem angegeben Hersteller kann ich die Motoren nun mit Nennspannung 24 V DC besorgen.
Abschließend die grundsätzliche Fragestellung/Problematik. Das Set im ebay-link "Läuft auf 12-36 DC". Wo oder wie kann ich hier jetzt die Verbindung zur Stromstärke rauslesen? Wie gesagt, an meine Achsen habe ich keine besonderen Anforderungen an Geschwindigkeit/Beschleunigung.

Überdenke ich das Ganze evtl.? Kann ich in meinem Fall vereinfacht sagen, dass eine Spannung von 24 V in das System eingebracht wird, nach einer gewissen Zeit der Nennstrom von 1,8 bzw. 4,2 A und somit die benötigte Kraft erreicht wird. Sobald die jeweiligen Nennströme erreicht sind, kann ich meine Achsen verfahren? Oder kann es sein, dass aufgrund der Widerstände des Treibers oder irgendwelcher Komponenten der benötigte Strom gar nicht erreicht werden kann?
Also wie ihr sehen könnt, fehlt es mir E-technisch noch an gewissen Grundlagen um das alles exakt verstehen zu können :cry:

Danke!
Gruß SH

Keine Bestätigung, A4988 und DRV8825 können keine 4,2A! Der Treiber geht nicht kaputt, da er den Strom begrenzt, aber Du erhältst nicht das volle Drehmoment, das der Motor könnte und Du bezahlt hast und möglicherweise brauchst.

Wenn Du Ebay fragst, kannst Du auch einen Autoverkäufer fragen: "Kaum gelaufen, bestens in Schuß, tolle Farbe, paßt genau zu Ihnen!"

Meine ganz persönliche Meinung: Ein Shield bringt mehr Probleme, als daß es welche löst, weil es den Blick auf die Zusammenhänge verstellt. Zeigt Ebay Dir einen Schaltplan des Shields? Außerdem bleiben bei einem UNO kaum freie Anschlüsse übrig, weshalb ein Mega2560 sinnvoll sein könnte.

@agmue's Antwort ist absolut korrekt.
Ich bin nach der lfd. Diskussion aber nicht wirklich sicher, dass für die Anwendung tatsächlich solche Motoren notwendig sind:

Zur Vollständigkeit bzw. falls doch noch relevant:
geringe/keine Anforderungen an Geschwindkeit und Beschleunigung. Möglichst exakte Positionierung über geringe Hublängen (<100 mm). Kompaktheit. Zu tragendes Gewicht des Systems: Achseneigengewichte+ 1 bis 2 Kg.

Die horizontalen Bewegungen sollten normalerweise mit einem NEMA17 bewegt werden können, wenn der Linearantrieb eine gute Qualität (für den Motor interessant: geringe Reibung) aufweist.
Also hätte ich eher 2x NEMA17 und 1x NEMA23 erwartet.

Am problematischsten ist i.d.R. die z-Achse, weil sie am meisten mit der Schwerkraft kämpfen muss.

Die Reihenfolge für eine xyz-Konstruktion sollte immer sein:

  1. Ermittlung aller maximal zu erwartenden Drehmomente / Haltekräfte
  2. Auswahl der jeweils passenden Motoren dazu (20..25% Reserve einplanen, um Toleranzen auszugleichen)
  3. Auswahl der zu den Motoren passenden Treiber (der jeweils pro Motor benötigte maximale Strom bestimmt den Treiber, der auf diesen max. Strom vor Inbetriebnahme einjustiert/eingestellt werden muss)
  4. Ermittlung der insgesamt maximal zu erwartenden Stromaufnahme und auf dieser Basis die Stromversorgung (Strom = Summe aller maximal auftretenden Ströme plus etwas Reserve; Spannung wird von der maximal vom Treiber zulässigen Spannung bestimmt. (Ich gehe aus Sicherheitsgründen ca. 10-20% unter diesen maximalen Wert)

@rpt007: Das kann ich nur unterstreichen :slight_smile: