Mehrere Schrittmotoren (ca. 60 - 100) sinnvoll ansteuern.

#3426588
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?
Gast #3426612
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 ...
Gast #3426628
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
Gast #3426632
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.
Gast #3426643
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.
Gast #3426659
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.
#3426674
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.
Gast #3426697
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
Gast #3426704
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.


---
Gast #3426721
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.
Gast #3426736
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 :-)
Gast #3426813
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.
Gast #3426851
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.
#3427186
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
Gast #3427197
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
Gast #3427335
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.
#7664526
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

(Firma: Starfleet) #7664568
Lesenswert?

#7664595
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.

Persönliche Seite #7664610
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.

(Firma: Starfleet) #7664669
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.

#7664688
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)

Persönliche Seite #7665679
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. :-)

Gast #7665686
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!

(Firma: Starfleet) #7665857
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.

Persönliche Seite #7666515
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.

#7666735
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:

  1. 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 ;-)

(Firma: Starfleet) #7666790
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.

Gast #7666793
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.

(Firma: Starfleet) #7666795
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.

Persönliche Seite #7667092
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.

  1. 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.

Angehängte Dateien:
(Firma: Starfleet) #7667217
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.

Gast #7667246
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.

(Firma: Starfleet) #7667256
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.

Gast #7667274
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.

(Firma: Starfleet) #7667281
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.

(Firma: mechapro GmbH) Persönliche Seite #7667876
Lesenswert?

Hallo "Mi N.",

Mi N. schrieb:

  1. 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

#7667887
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.

Persönliche Seite #7668326
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 von einem Moderator gelöscht.
(Firma: Starfleet) #7671772
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.

Persönliche Seite #7672710
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren