Forum: Mikrocontroller und Digitale Elektronik Mehrere Schrittmotoren (ca. 60 - 100) sinnvoll ansteuern.


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Jens M. (jaysin)


Lesenswert?

Hallo zusammen,

habe mich soeben neu hier angemeldet und habe so einige Fragen.

Ich plane seit längerer Zeit ein Projekt, welches ich nun verwirklichen 
möchte.

Zwischenzeitlich habe ich mir schon einige Programmierkenntnisse in Java 
und Assembler angeignet und möchte diese auch ein wenig vertiefen.

Folgendes Problem, ich würde gerne mehrere Schrittmotoren ansteueren und 
habe bisher noch keine Idee, welche Hardware ich zusätzlich benötige.
Auch über die Dimensionen der Schrittmotoren habe ich keine konkreten 
Vorstellungen. Soviel steht fest, es muss so gut wie keine Kraft 
aufgebracht werden, lediglich eine kleine gewindestange drehen. 
Gewindestangen und Schrittmotoren sollten dabei so klein wie möglich 
sein. Hier spielt auch der Preis eine Rolle, somit steht der 
Kostenfaktor im Vordergrund. Für alles andere steht großer Spielraum zu.

Es werden zwischen 60 und 100 Schrittmotoren benötigt, welche unabhängig 
voneinander angesteuert werden müssen.

Ist dies möglich?

von MagIO (Gast)


Lesenswert?

Ich glaube bei 60 - 100 Schrittmotoren wird es schwierig. Es wird dafür 
wohl kaum etwas fertiges von der Stange geben. Auch das verwenden von 
einzelnen Schrittmotor-Karten dürfte schwierig werden, weil dir relativ 
schnell die Schnittstellen ausgehen.

Wenn du Java erwähnst, dann vermute ich mal geht es um einen PC, der die 
Schrittmotoren ansteuern soll, oder?
Ob Java allerdings die richtige Wahl ist? Eine Garbage Collection könnte 
dir je nach Anwendung an die du denkst einen Strich durch die Rechnung 
machen, weil in der Zeit keine Schritt-Impulse mehr rausgehen.

Ich denke bevor hier gute Tipps kommen können musst du schon noch ein 
wenig mehr über die Anforderungen schreiben. Also wieviele 
Schrittmotoren laufen gleichzeitig, wie schnell, wie synchron müssen die 
laufen ...

von Reinhard Kern (Gast)


Lesenswert?

MagIO schrieb:
> weil in der Zeit keine Schritt-Impulse mehr rausgehen.

Bei 60 Motoren ist eine Lösung mit PC-Software auf der 
Parallel-Schnittstelle u.ä. längst nicht mehr sinnvoll, das müssen 60 
Motoren mit eigenem Kontroller sein, die nur Befehle ausführen und die 
Schritte selbst erzeugen*. Aber was technisch sinnvoll wäre, kann wohl 
nicht bezahlt werden.

* 500 Schritte/Sek bei 60 Motoren sind 30000 Schritte/Sek.

Gruss Reinhard

von T.U.Darmstadt (Gast)


Lesenswert?

Die Frage ist doch: Wie gross ist die maximale Zahl der gleichzeitig 
anzusteuernden Motoren? Reichen einfach Verfahrbefehle, führt das zu 
einer sehr geringen Bandbeite, die der PC dreimal locker im Schlaf 
schafft. Wenn alle Motoren ständig ihren Mode ändern, würde ich fragen, 
woher die Infos dafür kommen (sollen.) Kann also nicht sein.

Auch Modelbahnen fahren mit bis zu 100 Zügen gleichzeitig, werden aber 
mit nur einem PC gesteuert. Der sendet einfach an alle Signale, Weichen 
und Motoren ein ON/OFF und die Dinger laufen von selber.

Du benötigst also eine Anzahl von Schrittmotorkarten mit Treibern, die 
von jeweils Mikrocontrollern angesteuert werden können und autakt 
laufen.

von MaWin (Gast)


Lesenswert?

Jens Müller schrieb:
> Ist dies möglich?

Möglich auf alle Fälle, die Frage ist zu welchem Preis.

Wenn ich mal von einem Schrittmotor ausgehe der beim 3 1/2" 
Floppylaufwerk per Trapezgewindespindeln den Kopf bewegt, dann wären zur 
Ansteuerung lediglich 30 bis 50 TPIC6B595 nötig, das sind unter 100EUR 
inklusive Netzteil von 3 bis 5A.

Wären die Motoren grösser, müssen bipolar mit Stromregelung per 
Mikroschritt angesteuert werden und man will stall guard 
Blockierungserkennung, kann das schnell über 1000EUR kosten, will man es 
aus Fertigmodulen ohne Löten landet man eventuell bei 10000EUR.

von franz (Gast)


Lesenswert?

Du könntest diesen Schrittmotortreiber nehmen:
http://www.watterott.com/de/EasyDriver-v4-Schrittmotor-Treiber
Mit einem Arduino kannst Du wahrscheinlich 15 dieser Treiber ansteuern.

von Andreas (Gast)


Lesenswert?

Ich würde jeden Schrittmotor mit einem eigenen Mikrokontroller 
ausrichten z.B. ATtiny 45. Den kann man dann bequem und recht 
unkompliziert über den I2C Bus bzw. bei Atmel heißt er ja TWI 
ansprechen.

Am I2C-Bus kannst Du locker 100 Kontroller mit seinem eigenen 
Schrittmotor anschließen.

Jeder Schrittmotor muß natürlich ein Leistungstreiber haben, den man 
ebenfalls durch den Kontroller ansteuern kann.

von M. K. (sylaina)


Lesenswert?

Einige Ideen wurden schon genannt. Was mich jetzt hieran verwundert ist, 
dass weder bekannt zu sein scheint was der Schrittmotor bewegen muss 
noch was die Gewindestange treiben soll. Nur so ist zu erklären, dass 
nicht bekannt ist welche Größe der Schrittmotor und die Gewindestange 
haben muss. Für mich schaut es also so aus als seien die Randbedingungen 
nicht klar. Solange die aber nicht klar sind kann man schlichtweg keine 
Lösung präsentieren.

Also, Jens, definiere erstmal die Randbedingungen. Dazu gehört:

- was muss bewegt werden (Gewicht, Trägheitsmoment)
- in welche Richtung muss es bewegt werden (kann die Schwerkraft 
ausgenutzt werden)
- unter welchen Umweltbedingungen (in der Wüste oder an der Arktis, 
unter Hochdruck oder Hochvakuum)
- wie schnell muss es bewegt werden (reichen 1 mm/h oder sollen es 1 m/s 
sein)
- wie genau muss es bewegt werden (muss es auf den Nanometer genau sein 
oder genügt ein zehntel Millimeter)
- mit welcher minimalsten Auflösung muss es bewegt werden (muss es 
kontinuierlich sein oder sind 1/2 Millimeter pro Step auch OK)

Genau genommen ist die Frage: Was willst du mit 60-100 Schrittmotoren 
bewegen unter welchen Bedingungen.

von Mike (Gast)


Lesenswert?

Dem könnte man noch hinzufügen:
 - Ist bei den Bewegungen von vornherein klar, wie lang sie sein sollen 
oder gibt es plötzliche Eingriffe, wie z.B. Endschalter
 - Müssen die Motoren bestimmte Stellungen anfahren oder sich einfach 
nur drehen
 - Wird der Antrieb so ausgelegt, dass er selbsthemmend ist oder muss 
dauernd Haltestrom fließen
 - Brauchst du Mikroschrittbetrieb

von Werner (Gast)


Lesenswert?

Ich würde für jeden Motor einen uC für die Steuerung spendieren und dann 
die Ansteuerung über einen Bus realisieren. Falls du kein Feedback von 
den Motoren brauchst dann würde ich sogar UART<->RS485 benutzen und vom 
PC (whatever) die Daten an die Controller schicken ohne Daten zu 
empfangen.


---

von Steffen (Gast)


Lesenswert?

Jens Müller schrieb:
...
> Vorstellungen. Soviel steht fest, es muss so gut wie keine Kraft
> aufgebracht werden, lediglich eine kleine gewindestange drehen.
> Gewindestangen und Schrittmotoren sollten dabei so klein wie möglich
> sein. Hier spielt auch der Preis eine Rolle, somit steht der
> Kostenfaktor im Vordergrund. Für alles andere steht großer Spielraum zu.
>
> Es werden zwischen 60 und 100 Schrittmotoren benötigt, welche unabhängig
> voneinander angesteuert werden müssen.
>
> Ist dies möglich?

Das ist ohne Probleme möglich. An jeder der Motoren einen Controller und 
dann wie Werner geschrieben hat per RS485 Befehle senden.

Werner schrieb:
> Ich würde für jeden Motor einen uC für die Steuerung spendieren und dann
> die Ansteuerung über einen Bus realisieren. Falls du kein Feedback von
> den Motoren brauchst dann würde ich sogar UART<->RS485 benutzen und vom
> PC (whatever) die Daten an die Controller schicken ohne Daten zu
> empfangen.
>
>
> ---

Was hast du vor? Hört sich stark nach Áblenkspiegel für Lasershow an. 
Dann kannst du ne DMX Steuerung nehmen. Und hier auch wieder die 
Controller auf die Motoren und gut.

von m.n. (Gast)


Lesenswert?

Steffen schrieb:
> Das ist ohne Probleme möglich. An jeder der Motoren einen Controller und
> dann wie Werner geschrieben hat per RS485 Befehle senden.

Und als Controller mindestens einen ATtiny2313 bzw. ATmega48 nehmen, 
dessen USART im Halbduplex und Multiprozessor-Kommunikations-Modus 
betrieben wird. Bei RS485 muß man noch Repeater einplanen.

Wenn 'schlappe' Schrittmotoren ausreichen, könnten es auch welche mit 
unipolarer Ansteuerung sein, oder alternativ bipolare mit l293 
betrieben.

Jens Müller schrieb:
> Hier spielt auch der Preis eine Rolle, somit steht der
> Kostenfaktor im Vordergrund.

Es kostet das, was es kostet. Oder Du wartest auf Nikolaus oder den 
Weihnachtsmann :-)

von Bupf (Gast)


Lesenswert?

m.n. schrieb:
> Steffen schrieb:
>> Das ist ohne Probleme möglich. An jeder der Motoren einen Controller und
>> dann wie Werner geschrieben hat per RS485 Befehle senden.
>
> Und als Controller mindestens einen ATtiny2313 bzw. ATmega48 nehmen,
> dessen USART im Halbduplex und Multiprozessor-Kommunikations-Modus
> betrieben wird. Bei RS485 muß man noch Repeater einplanen.

Quatsch keinen Blödsinn. Wofür Repeater? Ein Gateway (da RS485 nur 32 
Teilnehmer zulässt) kann man sich sparen wenn man einen Controller nimmt 
der mehrere UART Module hat. Stinkeinfach wenn man nicht mit 
Scheuklappen auf den 8bit 0-8-15 Controllern rumreitet. Pro Schrittmotor 
ein Furzcontroller , ein RS485 Transceiver, ein Schaltregler für 3V3 / 
5V je nach Transceiver & H-Brücke und natürlich die H-Brücke 
http://www.mikrocontroller.net/articles/H-Br%C3%BCcken_%C3%9Cbersicht

Dafür muss man sein Handwerk natürlich beherrschen ... oder eben Arduino 
nehmen. Das hilft aber auch kaum bei der Hardware. H-Brücken-Beschaltung 
irgendwo klauen.

Schrittmotor Modul:

Konzept & Bauteilsuche 8h
Schaltplan zeichnen 8h
Platinenlayout 8h
Review 1h
Platine bestellen 1h
Prototyp bestücken THT 2h
Inbetriebnahme 1h
Prototyp Korrektur 2h
Platine bestellen 1h
Inbetriebnahme PrototypII + Bestückung 2h
Programmierung Konzept 10h
Programmierung 30h
Test 3h
Platine Serie bestellen 1h
Bestückung 70x 0,5h


für das Sender wird es ähnlich aussehen. So als Hobbyentwicklung 
nebenbei würde ich dafür realistisch 1 Jahr ansetzen.

von m.n. (Gast)


Lesenswert?

Bupf schrieb:
> Quatsch keinen Blödsinn. Wofür Repeater? Ein Gateway (da RS485 nur 32
> Teilnehmer zulässt) kann man sich sparen wenn man einen Controller nimmt
> der mehrere UART Module hat.

Warum heute so bescheiden?
Einfach IPV6-Protokoll und jeder Schritt des Motors bekommt seine eigene 
Adresse.

von Jens M. (jaysin)


Lesenswert?

Vielen Dank für die zahlreichen Antworten!

Habe nun etwas recherchiert und habe folgendes gefunden:

http://www.robotshop.com/en/devantech-sd84-servo-controller.html

Welches wohl alle Schrittmotoren ansteueren kann. Gibt es so etwas 
vergleichbares oder ist das der einzige Controller der zu diesem Preis 
so viele Schrittmotoren ansteuern kann?

Ich benötige wohl zudem für jeden Schrittmotor einen Easydriver? Welcher 
wäre hier zu empfehlen?

Wäre in Sachen Schrittmotoren, Floppy Schrittmotoren die günstigste 
Alternative? Wenn ja, wisst ihr wo ich soviele beziehen könnte?

Was benötige ich zusätzlich, zu dem genannten Controller für Hardware? 
Natürlich von den Schrittmotoren und den Easydrivern abgesehen.

Danke schonmal,

Jens

von spess53 (Gast)


Lesenswert?

Hi

>Welches wohl alle Schrittmotoren ansteueren kann. Gibt es so etwas
>vergleichbares oder ist das der einzige Controller der zu diesem Preis
>so viele Schrittmotoren ansteuern kann?

Und was hat das Teil mit Schrittmotoren zu tun? Das steht nur etwas von 
Servos.

MfG Spess

von MaWin (Gast)


Lesenswert?

> Welches wohl alle Schrittmotoren ansteueren kann.

Keinen einzigen.
Der steuert bloss Modellbauservos an.

> Wäre in Sachen Schrittmotoren, Floppy Schrittmotoren die günstigste
> Alternative?

Da niemand weiss, das deine Schrittmotoren leisten müssen,
an Kraft und Geschwindigkeit und Weg,
und du auch auf jede Nachfrage diesbezüglich penetrant schweigst,
wird das niemand beanwtorten können - und auch nicht wollen.

von Thorsten O. (Firma: mechapro GmbH) (ostermann) Benutzerseite


Lesenswert?

60-100 Motoren kannst du von mir bekommen, bei Bedarf auch passende 
Leistungsteile (von der Stange oder angepasst). Dafür müsstest du 
allerdings erst mal wissen, was du eigentlich genau benötigst.

Mit freundlichen Grüßen
Thorsten Ostermann

von Shahriar A. (shahriar2278)


Lesenswert?

Die Frage konnte meine Meinung nach nicht richtig beantwortet werden 
weil die Anforderungen nicht genau geklärt wurden.
Ich möchte bitte die Frage neu stellen.
1)100 Schrittmotoren
2) sie müssen ca.30 gram Gewicht auf und ab positionieren
3)gleichzeitig müssen 20 Motoren angesteuert werden also 5 Gruppen die 
hintereinander gesteuert werden müssen.
4) Distanz und Zeit für auf und ab max 2m in 1 sec.
5) start und stop gleitend
Danke im voraus

: Bearbeitet durch User
von J. S. (jojos)


Lesenswert?

Nach über 10 Jahren, echt jetzt?
Ist der fette rote Hinweis nicht zu verstehen?

von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?


: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Shahriar A. schrieb:
> Ich möchte bitte die Frage neu stellen.
Gib (am besten in einem neuen Thread) auch gleich an, wofür du das Ganze 
brauchst. Und am besten auch, bis wann du es brauchst und auch, was es 
kosten darf.

Denn sehr, sehr oft ist eine andere Lösung besser als die, die sich ein 
Fragesteller ausgedacht hat.

von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Angehängte Dateien:

Lesenswert?


: Bearbeitet durch User
von Michael B. (laberkopp)


Lesenswert?

Jens M. schrieb:
> Es werden zwischen 60 und 100 Schrittmotoren benötigt, welche unabhängig
> voneinander angesteuert werden müssen.
> Ist dies möglich?

Möglich ist alles, willst du es bezahlen ?

So was hier: https://de.aliexpress.com/item/4000712655800.html

Sind bipolare Motoren, 5V 300mA. Wenn dauerhaft Strom verbraucht werden 
darf (bei 100 Stück immerhin 60A/300W), kann so was wie ein LB1836M pro 
Motor an 2 Ausgänge eine 74HC595, ist halt aufwändig.

L293 wurde ich nicht benutzen, kostet zu viel Spannung, man müsste mit 
7V statt 5V versorgen, Rest Verlust.

Mit unipolaren Motoren könnte ich mir eine Matrixschaltung vorstellen.

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Michael B. schrieb:
> Möglich ist alles, willst du es bezahlen ?
So ist das, wenn jemand einen uralten Thread ausgräbt: man antwortet dem 
Falschen...

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Bradward B. schrieb:
> Wegen der vielen pins wirste wohl einen FPGA nehmen müssen,
"Müssen" nicht - aber sinnvoll wäre es.

Nun ist der thread ja schon uralt, aber es könnte ja sein, dass 
irgendwann irgendwer tatsächlich wieder Lust hat, hunderte Stepper zu 
kontrollieren, daher beamen wir uns mal knapp 20 Jahre zurück und finden 
...

(m)eine Schrittmotorsteuerung mit FPGAs:
https://patents.google.com/patent/WO2009071267A3/no

Der Prototyp lief 2006 und konnte mit einer gepipelineten FSM in einem 
Spartan 3 (auf 40 MHz, wenn ich mich richtig entsinne.) 32 
Hybrid-Stepper-Motoren steuern und überwachen.

Die Steuerung und die Erkennung des Schrittverlusts, sowie die 
Verhinderungdesselben sind seither stark ausgebaut und verbessert, 
aufgrund von Modifikationen nicht mehr durch das Patent behindert und 
wurde um eine weiche anticogging-Funktion erweitert.

Wer mag, kann einen Core dafür erwerben.

von Michael B. (laberkopp)


Lesenswert?

Lothar M. schrieb:
> So ist das, wenn jemand einen uralten Thread ausgräbt: man antwortet dem
> Falschen...

Wohl wahr, blöd, aber die Antwort kann auch fur Shahriar passen.

von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

Jürgen S. schrieb:
> Bradward B. schrieb:
>> Wegen der vielen pins wirste wohl einen FPGA nehmen müssen,
> "Müssen" nicht - aber sinnvoll wäre es.

Die Alternative ist IMHO ein "Netzwerk" aus mehreren µC-Platinen. Nach 
kurzer Marktrecherche scheint es nur Evalboards mit einstellige Anzahl 
von Motoransteuerungen (H-bridges/Power-FET's) zu geben.

https://www.infineon.com/cms/de/product/evaluation-boards/multi-motor-evalkit/
https://www.st.com/en/motor-drivers/l6460.html
https://docs.rs-online.com/08a1/0900766b8142a964.pdf

Selbst bei der vorgeschlagenen Gruppieung 5 a 20 müssten mehrere boards 
"echtzeitfähig" miteinander kommunizieren. OK, die Anforderungen an 
"Echtzeit" ist bei Schrittmotoren eher gering, da wird der Bereich 
einzelne Milisekunde ausreichend sein.

von Klaus (feelfree)


Lesenswert?

Bradward B. schrieb:
> OK, die Anforderungen an "Echtzeit"

ist bei der geheimen Anwendung vollkommen unbekannt.

von Martin (hiru)


Lesenswert?

Jens M. schrieb:

> Soviel steht fest, es muss so gut wie keine Kraft
> aufgebracht werden, lediglich eine kleine gewindestange drehen.
> Gewindestangen und Schrittmotoren sollten dabei so klein wie möglich
> sein. Hier spielt auch der Preis eine Rolle, somit steht der
> Kostenfaktor im Vordergrund.

https://www.amazon.de/dp/B0BVZ2K5L7?psc=1&ref=ppx_yo2ov_dt_b_product_details


> Es werden zwischen 60 und 100 Schrittmotoren benötigt, welche unabhängig
> voneinander angesteuert werden müssen.
> Ist dies möglich?

https://www.mouser.de/ProductDetail/Toshiba/TB6608FNGC8EL?qs=rsevcuukUAyuvsmecBkc6A%3D%3D&countryCode=DE&currencyCode=EUR&_gl=1*15csl0x*_ga*dW5kZWZpbmVk*_ga_15W4STQT4T*dW5kZWZpbmVk*_ga_1KQLCYKRX3*dW5kZWZpbmVk

dazu jeweils ein kleiner Controller (ca. 1€/Stück)

von Mi N. (msx)


Lesenswert?

Shahriar A. schrieb:
> 4) Distanz und Zeit für auf und ab max 2m in 1 sec.

Na dann fang mal mit einem an.
Nebenbei: NE555 und ULN2803 sind die falschen Suchbegriffe.

Hier fehlt ein Forum namens "Kunst". Da könnte man dann die grandiosen 
Ideen konzentrieren und wüßte gleich, was alles Unausgereiftes nicht 
funktioniert.

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Bradward B. schrieb:
> OK, die Anforderungen an
> "Echtzeit" ist bei Schrittmotoren eher gering, da wird der Bereich
> einzelne Milisekunde ausreichend sein.

In der Regel ja, aber in einer von mir entwickelten App für 
Spiegelsteuerunge im Bereich Laser braucht es Mikrosekunden. Außerdem 
sehe ich den Grund nicht ein, warum man uC-Platinen verschalten soll, 
wenn man die gesamte Funktion in einem FPGA unterbringen kann. :-)

von Steve van de Grens (roehrmond)


Lesenswert?

Jürgen S. schrieb:
> Außerdem
> sehe ich den Grund nicht ein, warum man uC-Platinen verschalten soll,
> wenn man die gesamte Funktion in einem FPGA unterbringen kann.

Stelle dir mal vor, die Kabel für 100 Motoren (mit jeweils ca 10 Drähten 
für die Spulen und Sensoren) laufen auf ein kleines zentrales Kästchen 
zusammen. Das sind 1000 Anschlüsse!

von Lu (oszi45)


Lesenswert?

Jürgen S. schrieb:
> in einem FPGA unterbringen kann

Interessantes Thema, allerdings Single Point of Failure (kurz SPOF)? 
Wahrscheinlich sollte man die Aufgaben besser verteilen. Nebenbei würde 
mich bei Deinen 100 Schrittmotoren auch der momentane Stromverbrauch 
interessieren (je nach Ansteuerung).

: Bearbeitet durch User
von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

Lu schrieb:
> Jürgen S. schrieb:
>> in einem FPGA unterbringen kann
>
> Interessantes Thema, allerdings Single Point of Failure (kurz SPOF)?
> Wahrscheinlich sollte man die Aufgaben besser verteilen.

Also Multi Points of Failure schaffen?

Die MTBF sinkt mit der Anzahl der Komponenten.

: Bearbeitet durch User
von Lu (oszi45)


Lesenswert?

Bradward B. schrieb:
> Die MTBF sinkt mit der Anzahl der Komponenten.

OT: Deswegen haben moderne Autos kein Ersatzrad mehr?
Je nach Anwendung könnte es jedoch nützlich sein, wenn einige Motoren 
noch wunschgemäß funktionieren?

von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

> Je nach Anwendung könnte es jedoch nützlich sein, wenn einige Motoren
> noch wunschgemäß funktionieren?

Je nach Anwendung könnte es jedoch schädlich sein, wenn nur einige 
Motoren funktionieren (Asymmetrischer Schub, Antrieb -> bspw. Ausbrechen 
des Fahrzeuges bei Reifenplatzer). Deshalb wurde ja bspw. das ESP 
eingeführt.

"Nützlich" wäre lediglich, das es noch soweit funktioniert das das 
System in einen sicheren Zustand (Bspw. Abschaltung über Not-Aus) 
überführt werden kann.
Aber dafür konstruiert man besser ein autonomes "Abschalt-system" (bspw. 
SCRAM) als das man mit den "halb-funktionierenden" System weitermacht. 
Siehe Tschernobyl. Oder diverse Flugzeugabstürze, die auf 
widersprüchliche Anzeige/Alarme (gleichzeitig "zu schnell" und "zu 
langsam" Alarm) zurückgeführt werden.

: Bearbeitet durch User
von Mi N. (msx)


Lesenswert?

Bradward B. schrieb:
> Je nach Anwendung könnte es jedoch schädlich sein, wenn nur einige
> Motoren funktionieren (Asymmetrischer Schub, Antrieb -> bspw. Ausbrechen
> des Fahrzeuges bei Reifenplatzer).

Wäre denn Deiner Meinung nach damit eine Mondlandung möglich?
Das ist hier doch die Kernfrage.

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Steve van de Grens schrieb:
> Stelle dir mal vor, die Kabel für 100 Motoren (mit jeweils ca 10 Drähten
> für die Spulen und Sensoren) laufen auf ein kleines zentrales Kästchen
> zusammen. Das sind 1000 Anschlüsse!
Eine gewisse Dezentralität wird sich ergeben, richtig - aber die Motoren 
werden nicht kilometerweise auseinander sitzen, sondern eine gemeinsame 
Funktion haben. So wird man die auch gruppieren. Wahrscheinlich werden 
es dann einige Haupteineinheiten sein. Sagen wir als Beispiel 4 für 100 
Kanäle.

Die Frage, wie man die aufteilt, wird man auch davon abhängig machen 
müssen, wie sehr die untereinander kommunizieren müssen. Wenn es um 
Lageregelungen geht - ich habe da eine ganz bestimmte Anwendung im Sinn 
- braucht man alle Infos aller Motoren praktisch zeitgleich verfügbar.

Ohne zuviel zu verraten: Man kann an einen FPGA-Pin 2 sequenzielle SR 
mit z.B. 16MHz hängen und hat an jedem der Pins somit eine amtliche 
500kHz-PDM verfügbar, die locker für eine Strombandführung mit 
5kHz-SIN/COS-Microstep reicht.

Und die Leitungen für die Sensoren kann man sich ja sparen, wie in der 
Patenschrift aufgeführt, weil man das nicht braucht :-)

Bradward B. schrieb:
> Die MTBF sinkt mit der Anzahl der Komponenten.
Das ist auch noch so ein Argument fürs Zusammenfassen, ja.

von Mi N. (msx)


Lesenswert?

Jürgen S. schrieb:
> Ohne zuviel zu verraten: Man kann an einen FPGA-Pin 2 sequenzielle SR
> mit z.B. 16MHz hängen und hat an jedem der Pins somit eine amtliche
> 500kHz-PDM verfügbar, die locker für eine Strombandführung mit
> 5kHz-SIN/COS-Microstep reicht.

Auch wenn Du in FPGA-Wolken schwebst, ist das alles keine Lösung für die 
Anfrage vom 13.05.2024:

4) Distanz und Zeit für auf und ab max 2m in 1 sec.

Das ist zunächst ein mechanisches anstatt ein elektronisches Problem. 
Aber der Nachfrager ist sich dessen nicht bewußt und wird sich wohl auch 
nicht wieder melden.

Nimm gerne ein FPGA, wenn Du mir verrätst, wie die Bewegung in dieser 
Geschwindigkeit ausgeführt werden soll.
Ein Ansatz wäre eine Gewindestange mit 1 mm Steigung und ein 
Schrittmotor mit 2000 Umdrehungen/s. Und das Ganze soll sicherlich noch 
'schön' aussehen ;-)

von Klaus (feelfree)


Lesenswert?

Mi N. schrieb:
> Ein Ansatz wäre eine Gewindestange mit 1 mm Steigung und ein
> Schrittmotor mit 2000 Umdrehungen/s

Zeigst du mir bitte einen Schrittmotor mit 120000U/min ?
Alternativ auch jeden anderen Motor mit dieser Umdrehungszahl.

: Bearbeitet durch User
von Mi N. (msx)


Lesenswert?

Klaus schrieb:
> Zeigst du mir bitte einen Schrittmotor mit 120000U/min ?

Hier habe ich gelernt, daß es zwecklos ist, Ironie zusätzlich als solche 
zu kennzeichnen. Das wird - ob so oder so - immer gerne überlesen.

Meine Frage bleibt aber: Wie soll die Bewegung mechanisch umgesetzt 
werden?

von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

> Meine Frage bleibt aber: Wie soll die Bewegung mechanisch umgesetzt
> werden?

Das ist aber nicht das Thema des Threads, der sich mit Ansteuerung - und 
nicht mit der mechanischen Auslegung - befasst.

Man kann ja verstehen, das sich ein (Möchtegern-)Diskussionsteilnehmer, 
dem es an KnowHow-Tiefe bzgl. Ansteuerelektronik (egal ob jetzt FPGA 
oder µC) mangelt, gern auf ein anderes Thema ausweicht, um sich im 
Gespräch zu halten; zielführend für die Lösung des Problems ist dies 
aber nicht.

von Steve van de Grens (roehrmond)


Lesenswert?

Es macht aber doch keinen Sinn, über eine komplexe Ansteuerung der 
Schrittmotoren zu diskutieren, wenn das Projekt mit solchen Motoren 
nicht umsetzbar ist.

Dazu kommt:
> Auch über die Dimensionen der Schrittmotoren habe ich keine
> konkreten Vorstellungen.

So kann man keine sinnvolle Lösung vorschlagen. Eine Schaltung die 
hundert beliebige Schrittmotoren gut und günstig ansteuert gibt es 
vielleicht in Phantasien, aber nicht hier.

: Bearbeitet durch User
von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

> Es macht aber doch keinen Sinn, über eine komplexe Ansteuerung der
> Schrittmotoren zu diskutieren, wenn das Projekt mit solchen Motoren
> nicht umsetzbar ist.

So ein Projekt ist wie in den oben verlinkten Video zu sehen schon 
umsetzbar, wenn wohl auch nicht mit der zwischenzeitlich genannten 
Maximal-Geschwindigkeit.

: Bearbeitet durch User
von Mi N. (msx)


Lesenswert?

Bradward B. schrieb:
> wenn wohl auch nicht mit der zwischenzeitlich genannten
> Maximal-Geschwindigkeit.

Ach was?

von Jürgen S. (engineer) Benutzerseite


Angehängte Dateien:

Lesenswert?

Mi N. schrieb:
> Auch wenn Du in FPGA-Wolken schwebst, ist das alles keine Lösung für die
> Anfrage
> Das ist zunächst ein mechanisches anstatt ein elektronisches Problem.
Es ging zunächst schon nur um die Ansteuerelektronik.

Daß die Mechanik gelöst werden muss, ist richig, aber durchaus machbar:

Du hast bei einem "Schrittmotor" eventuell die typischen, 
kleinformatigen Spielzeuge im Hinterkopf, mit denen man mittelschwere 
Objekte auf Position bringen möchte, wegen der Baugröße einen 
Schneckentrieb benutzt und der Fokus der Genauigkeit ist. Ich darf dir 
aber vermitteln, dass es durchaus Bauformen gibt, mit denen man 
Schlagbohrmaschinen ersetzen und an die Wand nageln kann.

> 4) Distanz und Zeit für auf und ab max 2m in 1 sec.
Bei einem Grobgewinde mit ausreichendem Durchmesser und passender 
Steigung bekommt man durchaus einen 2m-Hub mit <50 Umdrehungen. Bei 
einer geführten S-Kurve braucht es damit maximal 3m/s = 75 U/s mit einer 
maximalen Beschleunigung von 10m/s2 wenn ich richtig rechne. D.h. man 
beschleunigt das Ding mit 1g + Reibung und schiebt ab Pos=1m nur noch 
mit der Reibung und lässt auslaufen. Wahrscheinlich kann man auch mit 
0,7g bis 1,66 beschleunigen und dann damit gegenbremsen.

> Nimm gerne ein FPGA, wenn Du mir verrätst, wie die Bewegung in dieser
> Geschwindigkeit ausgeführt werden soll.
BTDT. Die von mit entwickelte Steuerung dreht nochmal 3.5x schneller und 
bewegt einen Motor, wo sogar die Wellentrosion vorkompensiert wird, um 
die Schwinungen zu dämpfen, weil es den Nutzern sonst die Ohren weghaut.

Und nein, man hätte es nicht mit einer CPU machen können.

: Bearbeitet durch User
von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

> Du hast bei einem "Schrittmotor" eventuell die typischen,
> kleinformatigen Spielzeuge im Hinterkopf, mit denen man mittelschwere
> Objekte auf Position bringen möchte, wegen der Baugröße einen
> Schneckentrieb benutzt und der Fokus der Genauigkeit ist.

Eben. Mal kurz mit "fastest stepper motor" gegoogelt und über die hits 
drübergeschaut findet sogar einen Extra-flinken unter den eher 
konservativ ausgelegten Motoren bei Faulhaber: 
https://www.faulhaber.com/en/motion/new-am3248-stepper-motor-with-10000-rpm/

Meines Erachtens gehören Diskussionen zu Mechanikdetails in das 
Unterforum:
https://www.mikrocontroller.net/forum/mechanik

> Stelle dir mal vor, die Kabel für 100 Motoren (mit jeweils ca 10 Drähten
> für die Spulen und Sensoren) laufen auf ein kleines zentrales Kästchen
> zusammen. Das sind 1000 Anschlüsse!

Also eine Formulierung wie "ca 10 Drähte" klingt eher nach Einem, der 
nicht mal von eins bis zehn korrekt zählen kann als nach einer 
professionellen Schaltungsauslegung/Architekturdefinition. Es ist ein 
Leichtes, mal die Anschlüsse an einem Stepper Motor zu zählen und eine 
konkrete Anzahl zu nennen.

An dieser Stelle könnte man das Verdrahtungs-Konzept auch (gedanklich) 
in Stromversorgung, Steuer- und Statusleitungen ausftrennen und dabei 
erkennen, das nur eine Teilmenge davon zur Steuerplatine reichen muß. 
Die Halbbrücken/Leistungs-FET zum Schalten der Motorspulen, könnte man 
ohnehin auf extra-Träger zusammen mit den Motoren platzieren und die 
"Hochstrom"-Kabel extra führen.
Viele einzelne Leitungen in einem flexibelen Kabel zusammen zu fassen, 
ist auch kein Hexenwerk, vor ein paar Jahren hat man dafür gerne 
HDMI-Kabel zweckentfremdet (13 Datenleitungen an einem (geschirmten) 
Massenmarkt-Stecker/Buchse), heute würde man sich auch USB-C dazu 
anschauen. Wie gesagt, "zweckentfremdet, nur als "leitfähiges Kupfer" 
zum Strippenziehen, keine Implementierung des "USB-Protokolls" oder der 
HDMI-Spezifikation.
Das wegen der Motoren-Halterung genügend Raum und Haltemechanik für die 
Kabel zu erwarten ist, zeigt das oben verlinkte Beispiel-Video einer 
runterskalierten Realisierung.

: Bearbeitet durch User
von Steve van de Grens (roehrmond)


Lesenswert?

Bradward B. schrieb:
> Es ist ein Leichtes, mal die Anschlüsse an einem Stepper Motor
> zu zählen und eine konkrete Anzahl zu nennen.

5 für den Motor
2 für den unteren Endschalter
2 für den oberen Endschalter

Macht fast 10 Drähte. Vielleicht kommen noch Odometrie und 
Temperatursensoren dazu.

Der Punkt war: So viele Leitungen (auch nicht halb so viele) möchte ich 
nicht zentral zu einem einzigen Kästchen zusammen führen müssen.

Dein Beitrag klingt wie ein Widerspruch, als sei mein Gedankengang 
abwegig. Aber eigentlich sind wir auf der gleichen Seite. Wir empfehlen 
beide ein anderes Konzept mit mehreren Steuerplatinen und folglich 
weniger Kabelsalat.

Dein Ansatz, dafür USB-C Kabel ohne USB Protokoll zu verwenden, lehne 
ich allerdings strikt ab. Nicht nur, weil man damit folgenschwere 
Missverständnisse provoziert, sondern auch, weil diese Kabel für den 
Anwendungsfall wahrscheinlich zu dünn sind und die Stecker zu 
empfindlich. Für die Wahl geeigneter Kabel und Stecker ist es noch zu 
früh.

Deine Beleidigung mit dem "nicht bis 10 zählen können" lasse ich bewusst 
unkommentiert im Raum stehen. Das ist mir zu primitiv.

: Bearbeitet durch User
von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

Steve van de Grens schrieb:
> Bradward B. schrieb:
>> Es ist ein Leichtes, mal die Anschlüsse an einem Stepper Motor
>> zu zählen und eine konkrete Anzahl zu nennen.
>
> 5 für den Motor
> 2 für den unteren Endschalter
> 2 für den oberen Endschalter
>
> Macht fast 10 Drähte. Vielleicht kommen noch Odometrie und
> Temperatursensoren dazu.

Man muss Leitungen gleicher Funktion nicht jedesmal extra führen, es 
genügt dann eine, die dann gern als "Common" bezeichnet wird. So reichen 
bspw. für die beiden Lageschalter auch drei Leitungen.

> Dein Vorschlag mit mehreren Steuerplatinen ist sinnvoll, da bin ich ganz
> bei dir.

Ich würde eher sagen das es mehrere "Platinen" geben kann, auch bei eine 
Zentralisierten Steuerung. Das wäre dann eine Steuerungsplatine und 
mehrere "Leistungsschalt"-Platinen.

Verteilung auf mehrere Steuerungsplatinen schafft halt neue Probleme wie 
eben Synchronisierung und "Message-Routing". µC mit jeweils eigenem 
Taktgenerator laufen über die Zeit auch "auseinander", deshalb braucht 
es dann den "Uhrenvergleich".

> Deine Beleidigung mit dem "nicht bis 10 zählen können" lasse ich bewusst
> unkommentiert im Raum stehen. Das ist mir zu primitiv.

Das ist keine Beleidigung, das ist eben der Eindruck den man bei 
Verwendung einer solchen Formulierung hinterlässt. Fasse es besser als 
bewertungsfreien Hinweis auf.

: Bearbeitet durch User
von Dieter W. (dds5)


Lesenswert?

Leute, lasst es mal gut sein mit der Diskussion.

Dieser Uralt Thread wurde von einem frisch angemeldeten Trollposter 
wiederbelebt und ist das Tippen der Buchstaben nicht wert.

von Steve van de Grens (roehrmond)


Lesenswert?

Bradward B. schrieb:
> Man muss Leitungen gleicher Funktion nicht jedesmal extra führen, es
> genügt dann eine, die dann gern als "Common" bezeichnet wird. So reichen
> bspw. für die beiden Lageschalter auch drei Leitungen.

Du erklärst dann dem Jens (falls er noch lebt) oder dem Shahriar, wie er 
mit Spannungsabfall auf den Common Leitungen umgehen muss, nachdem sein 
Mikrocontroller zum 6. mal verreckt ist.

: Bearbeitet durch User
von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

> Dein Ansatz, dafür USB-C Kabel ohne USB Protokoll zu verwenden, lehne
> ich allerdings strikt ab. Nicht nur, weil man damit folgenschwere
> Missverständnisse provoziert, sondern auch, weil diese Kabel für den
> Anwendungsfall wahrscheinlich zu dünn sind und die Stecker zu
> empfindlich.

Diese Einwände sind erst mal berechtigt, da muss man tatsächlich mal 
nachrechnen und nachrecherchieren. Ideal wäre natürlich eine 
kundenspezifische Kabelkonfektion, die dann aber oft teurer ist. Die 
Kabelquerschnitte reichen für die geringen Steuerströme aus, Ströme 
durch die Motor-Spulen sind da was anderes, da aber USB-Kabel auch fürs 
Handy-Laden verwendet werden ... .
HDMI und USB Kabel sind auch eher robust statt empfindlich, dafür sorgt 
schon die Stabilität/Masse des "Kontaktmantels/-umfassung?". Natürlich 
gibt es auch "Industrieausführungen" dieser Kabel, die dann auch gegen 
herausrutschen gesichert sind (Arritierung/Verschraubung). Iritierend 
ist allerdings schon, wenn ein Kabel/-buchse die man aus dem Bereich A 
kennt im bereich B eingesetzt wird. Dem kan man mit Bechriftung/Label 
entgegen wirken.

Und es ist nicht "mein" Ansatz, die Verwendung von Standardkabeln in 
Sonderanlagen kommt nicht selten vor.

von Thorsten O. (Firma: mechapro GmbH) (ostermann) Benutzerseite


Lesenswert?

Hallo "Mi N.",

Mi N. schrieb:
> 4) Distanz und Zeit für auf und ab max 2m in 1 sec.
>
> Das ist zunächst ein mechanisches anstatt ein elektronisches Problem.
> Aber der Nachfrager ist sich dessen nicht bewußt und wird sich wohl auch
> nicht wieder melden.
>
> Nimm gerne ein FPGA, wenn Du mir verrätst, wie die Bewegung in dieser
> Geschwindigkeit ausgeführt werden soll.
> Ein Ansatz wäre eine Gewindestange mit 1 mm Steigung und ein
> Schrittmotor mit 2000 Umdrehungen/s. Und das Ganze soll sicherlich noch
> 'schön' aussehen ;-)

Eine Spindel mit 1mm Steigung ist dafür sicherlich kein vernünftiger 
Ansatz. Vor allem nicht, wenn damit eine Spindel mit metrischem Gewinde 
gemeint sein sollte. Da nimmt mal besser eine Kugelrollspindel mit einer 
Steigung von 20mm/U oder gar 40mm/U. Aber selbst das wird für die 
geforderten Geschwinidigkeite kaum sinnvoll sein. 2m auf und ab in 1s 
sind 4m/s ohne Beschleunigungs- und Bremsphasen zu berücksichtigen, die 
hier dominieren würden. Bei einer Steigung von 40mm/U wären dafür 100U/s 
bzw. 6.000U/min erforderlich. Das macht man nicht mit einer Spindel von 
2m Länge. Bzw. wenn dann eher mit stehender Spindel und angetrieber 
Mutter. Aber da sind wir bei massiven Konstruktionen aus dem 
Werkzeugmaschinenbau, die mit größeren Servomotoren angetrieben werden.

Wenn wenig Last bewegt werden soll sind Riemen- oder Seiltriebe besser 
geeignet. Aber auch das wird man mit Schrittmotoren nicht sinnvoll 
umsetzen können. Diese Diskussion zeigt mal wieder, wie unsinnig es ist, 
das Pferd von der falschen Seite her aufzäumen zu wollen. Man klärt erst 
die Anforderungen der Anwendung und wählt dann den passenden Antrieb 
aus, nicht andersrum.

Mit freundlichen Grüßen
Thorsten Ostermann

: Bearbeitet durch User
von Mi N. (msx)


Lesenswert?

Thorsten O. schrieb:
> Eine Spindel mit 1mm Steigung ist dafür sicherlich kein vernünftiger
> Ansatz.

Auch noch einmal für Dich: Das war ein (ganz offenkundiger) Scherz!

> Aber auch das wird man mit Schrittmotoren nicht sinnvoll
> umsetzen können.

So sieht es aus. Da es sicherlich noch künstlerischer Ästhetik 
entsprechen soll, gibt es erst recht keine Lösung.
Pfingsten hilft da leider auch nicht weiter.

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Steve van de Grens schrieb:
> 5 für den Motor
> 2 für den unteren Endschalter
> 2 für den oberen Endschalter
Mal abgesehen, dass die Schalter nur 2 benötigen sollten, weil sie einen 
gemeinsamen GND nutzen, kann man die Schalter wegfallen lassen, wenn man 
besagte Schrittverlusterkennung benutzt, die ja auch einen Anschlag 
erkennt - in meinem Fall sogar, einen sich anbahnenden, wenn es ein 
weicher Anschlag ist.

Ich stimme dir völlig zu, dass man nicht beliebig viele Komponenten an 
ein Steuerelement klemmen sollte, wenn man hinterher wieder aufspalten 
muss. Die Leistungsteile benötigen ja Platz.

Wenn es konkret um sehr leistungsfähige Motoren geht, wird man aber zu 
den Teilen hin nur eine Steuerinformation senden und nicht die Leistung 
selber. D.h. man schickt den Microstep SIN/COS als PDM und nimmt nur die 
Rückwirkung der Komparatorschaltung entgegen. Das sind 5 Leitungen, wenn 
man den GND mitgibt. Wenn man nun mit etwas Tricks arbeitet, kann man 
die Leitungen in beide Richtungen benutzen und braucht nur 2+GND. Damit 
gehen alle 100 Motoren mit einem FPGA. Vorort sitzen dann die H-Brücken 
und der Komparator für die selbstlaufende Strombandführung. Dort vorort 
wird dann auch die Power hingezogen, sodaß die hoch bestromten Leitungen 
kurz sind und nicht zuviel EMV-Probleme machen. Dort vorort wird das 
auch entsprechend geblockt, weil man sonst sehr fette Kabel von der 
FPGA-Platine bräuchte.

Beitrag #7669154 wurde vom Autor gelöscht.
von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

Jürgen S. schrieb:
> Steve van de Grens schrieb:
>> 5 für den Motor
>> 2 für den unteren Endschalter
>> 2 für den oberen Endschalter
> Mal abgesehen, dass die Schalter nur 2 benötigen sollten, weil sie einen
> gemeinsamen GND nutzen, kann man die Schalter wegfallen lassen, wenn man
> besagte Schrittverlusterkennung benutzt,

IMHO sollte man schon eine Art der Rückkopplung (Signalleitungen für 
Status-Rückmeldung) für den Motor/Aktuator vorsehen. Sei es Endschalter, 
sei sein Glassmassstab ( Typ "digitaler Messschieber") o.ä..
Am Besten nicht nur über die Motor(-spulen) sondern über das Mechanische 
Gesamtsystem also inklusive Getriebe, Riemen etc.. -> dann hat man eine 
"closed Loop" und die Steuerung Information über den tatsächlichen 
Ist-Wert.

In der Praxis findet man verschiedenste Realisierungen, beispielsweise 
ein µC der Schritte zählt und zum PowerUp eine "Messfahrt" zwischen den 
beiden Positionsschaltern macht - das funktionierte nicht 100% 
zuverlässig. Oder auch ein medizin/Lasergerät das mit redundanten 
Massstab (bspw. 
https://www.numerikjena.de/produkte/linear/absolut/lak-serie/ 
)ausgerüstet war und über einen FPGA gesteuert wurde. Teuer, aber wenn 
man 100,0 % Zuverlässigkeit plus Reservesystem braucht eher notwendig.

von Mi N. (msx)


Lesenswert?

Bradward B. schrieb:
> IMHO sollte man schon

... aufhören, hier weiter rumzuschwätzen.

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Bradward B. schrieb:
> In der Praxis findet man verschiedenste Realisierungen, beispielsweise
> ein µC der Schritte zählt und zum PowerUp eine "Messfahrt" zwischen den
> beiden Positionsschaltern macht - das funktionierte nicht 100%
> zuverlässig.

Wenn man Schritte richtig zählt (ich meine damit sowohl 
technisch-mathematisch, als auch taktisch richtig), dann kann man das 
System durchaus mit Anschlagsanalysen automatisch vermessen und 
kalibrieren. BTDT Du brauchst natürlich eine kalibrierte Referenz. Was 
man das aber in der richtigen Weise macht, dann ist des erheblich 
genauer, als Messstäbe oder andere Rückmelder, die ja noch 
Einbautoleranzen haben, also nach der Installation erst einmal für jedes 
Gerät grundkalibriert werden müssen.

Das geht schlauer und es geht auch und vor allem über die 
signalverarbeitungstechnich schlaue Auswertung der Motorsignale.

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
Noch kein Account? Hier anmelden.