Forum: Projekte & Code Spielerei mit einem 5-Phasen-Schrittmotor


von Carsten-Peter C. (carsten-p)


Angehängte Dateien:

Lesenswert?

Moin,
für meine 5-Phasen Schrittmotore (u. A. RDM 596/50 von Berger Lahr) 
hatte ich keine Treiber. Eine Ansteuerung habe ich gebaut und möchte 
diese gerne vorstellen. Ein Bastelfreundlicher ATmega 1284P erzeugt 
Steuersignale für die Treiberstufe. Die Auswahl der Bauteile wurde 
weitgehend durch meinen Bastelvorrat bestimmt, um möglichst wenig kaufen 
zu müssen. Der Motor sollte mit 10-80V betrieben werden können und 
genügend Strom erhalten. Ich habe einiges ausprobiert und wieder 
verworfen, bis ich mich für diese Variante entschieden habe. Nach 
einigen V40-Fehlern läuft der Motor mit der Schaltung ganz gut. Das 
Programm ist in Assembler geschrieben.
Gebaut mit einem alten Pollin Atmel-Evaluations-Board mit „frei 
fliegendem Aufbau“. Testweise habe ich auch eine kleine hier erworbene 
Platine und einem günstigen DEBO USB TTL Wandler von Reichelt gebraucht. 
Auch, wenn ich keine Fehler mehr gefunden habe, ist das Programm sicher 
nicht fehlerfrei. Der Motor läuft sehr ruhig, weshalb ich mir überlege, 
ihn in meinem selbstbau XY-Tisch einzubauen.
Gruß
 Carsten

von Joachim M. (jmlaser)


Lesenswert?

Hallo,

Interessant, zumal ich auch noch eine Kiste 5-Phasen-Motoren hier liegen 
habe.
Ein paar Sachen habe ich da jetzt allerdings nicht kapiert:

In den Diagrammen zur Bestromung verwendest Du die Symbole Plus , Minus 
und einen fetten Punkt.
Die nicht gekennzeichneten Anschlüsse sind im jeweiligen 
Bestromungsschritt hochohmig, also beide Transistoren gesperrt, vermute 
ich mal.
Der Anschluss mit dem Punkt liegt dann gegen GND geschaltet?
Der Anschluss mit dem Plus an Vcc bzw. an die PWM.
Aber woher kommt das Minus-Symbol? Ich sehe in Deiner Schaltung keine 
negative Spannung.
Wird die Stromrichtung nicht dadurch umgekehrt, dass die Anschlüsse 
zuvor an GND jetzt an + liegen und die zuvor an Plus jetzt an GND?

Du schreibst, es soll mit einem Netzteil mit Konstantstrom versorgt 
werden oder mit Vorwiderständen.
Vorwiderstände pro Wicklung zum Begrenzen des Maximalstroms ist klar. 
Aber wie willst Du das mit der Strombegrenzung eines Netzteils machen?
Das würde ja nur funktionieren, wenn immer exakt gleich viele Phasen 
gleich hoch bestromt sind.

Wie gesagt, interessant aber leider sehr verwirrend.

Und was ist ein "V40-Fehler"?

Gruß

von Michael B. (laberkopp)


Lesenswert?

Carsten-Peter C. schrieb:
> Eine Ansteuerung habe ich gebaut und möchte diese gerne vorstellen

Sehr kurioses Ding.

Neben der Schrittmotorversorgungsspannung (20-80V) und 
Mikrocontrollerversorgung (5V) auch noch 5 bipolare voneinander 
galvanisch unabhängige Versorgungsspannungen a +/-12V für die 
Treiberstufen, dazu wird von Stromregelung geredet aber dann der 
Motorstrom insgesamt strombegrenzt, das bringt natürlich keinerlei 
Drehzahlsteigerung gegenüber Konstantspannungsbetrieb, ein als 
'bastlerfreundluch' angesehener 44 pin uC von dem dann 23 pins nicht 
verwendet werden.

Das mag für dich

Carsten-Peter C. schrieb:
> weitgehend durch meinen Bastelvorrat bestimmt

die richtige Lösung sein, als Nachbauvorschlag aber weitgehend 
ungeeignet.

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/873370/stepper-motor-5-phase

Man kann die Motoren auch ganz ohne uC mit einem 10 bit 
vorwärts/rückwärts Schieberegister steuern.

von Carsten-Peter C. (carsten-p)


Lesenswert?

Hallo Joachim,
Der Motor kann in 3 verschiedenen Betriebsarten laufen. Die roten Punkte 
bedeuten, das die gerade nach + gezogen werden. Alle anderen werden nach 
– gezogen. Der rote Punkte neben + oder – ist der Bezugspunkt für die 8 
Bit-PWM. Schauen wir uns mal oben links MPa: und MPb: an.
  Den PWM-Wert von B_Phase lesen
  Die Schrittweite abziehen und zurückschreiben, wenn kein Übertrag 
auftritt.
  Bei einem Übertrag auf den Bezugspunkt  A_Phase wechseln und 2 
PWM-Werte neu schreiben.

Die Laufrichtung wird errechnet und der Port C Pin 6 dementsprechend 
gesetzt.

MPa:          ;links:  +PWM1 Ü= -PWM2  // rechts: -PWM1 Ü= +PWM5
;  links  rechts
;j)       +E      PWM5
;a)   +A    -A    PWM1
;b)   -B         PWM2
  Lds AH, ZSchritt
  in AL, PWM1
  sbic  PINC,  6    ;Richtung
  rjmp MPa2
MPa1:          ;links rum

Ich hab mir auch überlegt, die Zeichnung zu veröffentlichen. Für mich 
was das ein Leitfaden für den Ablauf. Ist sicher verwirrend.
In dieser Betriebsart werden 128000 Schritte / U bei der kleinsten 
Schrittweite von 1 benötigt. Voreingestellt ist Betriebsart 2 mit einer 
Schrittweite von 64 (von256).
.equ Schrittweite = 63
Also 1+ Schrittweite. Bei 0 würde der Motor nicht weiter drehen.
Eigentlich lauft der Motor im Halbschritt, wobei jeder Halbschritt in 
bis zu 255 Mikroschritte geteilt wird.
Der Strom ist etwa gleich, weil 2 Spulen voll bestromt werden und 2 
durch die PWM sich den Strom teilen. Beispiel: Wenn der PWM-Wert von 
Phase 1  64 ist, ist der Wert von Phase2  192.  Schwankungen muss das NT 
aushalten. Die Vorwiderstände erleichtern das Messen.
An einer Schaltung für den Konstantstrom mit geringen Verlusten sowie 
der Ansteuerung über Takt und Richtung bastel ich noch.

„V40- Fehler“: Der Fehler sitzt 40 cm vor dem Bildschirm.

Viele Grüße aus SH
 Carsten

von Carsten-Peter C. (carsten-p)


Lesenswert?

Michael B. schrieb:
> Sehr kurioses Ding.

Besser machen, testen, testen, testen und veröffentlichen.
Gruß

von Carsten-Peter C. (carsten-p)


Angehängte Dateien:

Lesenswert?

Moin,
ich habe meine Schaltung um 2 Eingänge erweitert. Jetzt kann man mit 
einem Takt und einem Richtungseingang den Motor steuern. Mit jedem Takt 
läuft der Motor um die eingestellte Schrittweite weiter. In der 
mittleren Auflösung entspricht eine Umdrehung 64000 Mikroschritte. 
Voreingestellt ist eine Schrittweite von 64. Nach 1000 Impulsen hat sich 
der Motor dann einmal gedreht. Im Bild „H-Bruecken.jpg“ sieht man die 5 
H-Brücken. Ein halbwegs erfahrener Bastler sollte das hinbekommen.
Ich wollte einen größeren Motor mit dem Treiber auf dem Bild 
„Platine.png“ ansteuern.
Beitrag "Re: Zeigt her eure Kunstwerke (2021)"
Der drehte sich auch, aber etwas Drehmoment oder Geschwindigkeit kam 
nicht zu Stande. Bekam der Motor den gleichen Strom direkt vom NT, hielt 
er kräftig fest. Deshalb habe ich mich für diese Schaltung entschieden. 
Sollte jemand das Programm brauchen und erweiter, kann ich gerne 
behilflich sein. Der Speicherbereich von 0x200 bis 0x3FF ist für den 
Schreibpuffer reserviert. Sollte der Puffer voll laufen, kann der 
Datenstrom über Port C Pin 7 angehalten werden. Bevor alle Befehle 
abgearbeitet sind, wird der Datenstrom wieder freigegeben. Das habe ich 
aber noch nicht getestet.

Ich freue mich über Anregungen und Kritiken, nur auf Labereien habe ich 
keine Lust.
Trotzdem gehe ich da kurz drauf ein.

Michael B. schrieb:
> Neben der Schrittmotorversorgungsspannung (20-80V)
Abschreiben sollte man schon können

Michael B. schrieb:
> ein als
> 'bastlerfreundluch' angesehener 44 pin uC von dem dann 23 pins nicht
> verwendet werden.
ich hab nicht nachgezählt, aber es sollten ca. 40 sein

Michael B. schrieb:
> Man kann die Motoren auch ganz ohne uC mit einem 10 bit
> vorwärts/rückwärts Schieberegister steuern.
das stimmt. Ich hatte nur keinen, der auch in Mikroschritten schieben 
kann

Gruß
 Carsten

von Dieter H. (Firma: Ingenieurbüro Hahn) (mop)


Lesenswert?

Hallo,
habe mich ausführlich mit der Reparatur und Ansteuerung von 
5-Phasen-Schrittmotor-Steuerungen der Fa. BERGER-LAHR befasst.
Um das spezifierte Drehmoment zu erreichen wird jede Phase separat mit 
Konstantstrom angesteuert. Damit das auch bei höheren Schrittfrequenzen 
funktioniert ist eine relativ hohe Spannung erforderlich, z.B. 60VDC bei 
einem Wicklungswiderstand in Grössenordnung 1 Ohm und einem Phasenstrom 
von 2,5A. Der Motor läuft dabei im Voll- oder Halbschritt mit 500 / 1000 
Schritten/Umdrehung.
Ansteuerung im Mikroschrittbetrieb halte ich für problematisch: 
reduziertes Drehmoment, und wahrscheinlich belastungsabhängige 
Nichtlinearitäten innerhalb eines Schritts.
Wenn das jemand interessiert kann ich die Schaltung der BERGER-LAHR D191 
(Indexer) und D193 (Leistungskarte) bereit stellen.
mfg MoP

von Thomas Z. (usbman)


Lesenswert?

Dieter H. schrieb:
> Ansteuerung im Mikroschrittbetrieb halte ich für problematisch:
> reduziertes Drehmoment, und wahrscheinlich belastungsabhängige
> Nichtlinearitäten innerhalb eines Schritts.

Es gab Mikroschritt Steuerungen wenn ich mich richtig erinnere D290/D293
Genau wie die D190/D193 sind das Uralt Teile (ca 1985 eingestellt).

von Carsten-Peter C. (carsten-p)


Lesenswert?

Hallo Dieter,
mich würden die Schaltpläne der Steuerung schon interessieren. Die habe 
ich im Netz nicht gefunden. Natürlich ist die Positionierung im 
Mikroschritt nicht linear und nicht genau, aber mein Motor läuft damit 
bei langsamen Geschwindigkeiten viel ruhiger. Wie genau die Position 
oder der gewünschte Winkel tatsächlich ist, kann ich nicht sagen. 
Zumindest kann man testen, wie schnell und leise er bei 
unterschiedlichen Geschwindigkeiten und Spannungen läuft.
Gruß
 Carsten

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


Lesenswert?

Hallo Dieter,

Dieter H. schrieb:
> Hallo,
> habe mich ausführlich mit der Reparatur und Ansteuerung von
> 5-Phasen-Schrittmotor-Steuerungen der Fa. BERGER-LAHR befasst.
...
> Ansteuerung im Mikroschrittbetrieb halte ich für problematisch:
> reduziertes Drehmoment, und wahrscheinlich belastungsabhängige
> Nichtlinearitäten innerhalb eines Schritts.

Punkt 1 ist eine urban legend, die auch bei 2-phasigen Motoren immer 
wieder verbreitet wird, davon aber nicht richtiger wird. So lange die 
(vektorielle) Summe der Phasenströme gleich bleibt, ändert sich das 
Drehmoment nicht. Deswegen gibt es bei 2-Phasen Motoren die 
Unterscheidung zwischen Motornennstrom (Datenblattwert, beide Phasen 
bestromt, Vollschritt) und dem maximalen Strom, den der Treiber leisten 
muss (=sqrt(2)*I_nenn, eine Phase bestromt, Halbschrittposition).

Bei Punkt 2 hast du im Prinzip recht. Das ist aber keine 
Nichtlinearität, der entstehende (statische) Positionsfehler ist in 
erster Linie sehr wohl linear von der Belastung abhängig. Im Prinzip 
verhält sich der statisch bestromte Motor wie eine Drehfeder. Je höher 
das extern angreifende Lastmoment, desto stärker wird der Rotor 
ausgelenkt. Wenn man das Haltemoment überschreitet, rastet der Motor 
aus.

Das wird allgemein gerne übersehen: Mikroschritt-Ansteuerung erhöht die 
Auflösung und reduziert Störgeräusche deutlich. Die 
Positioniergenauigkeit steigt aber dadurch nicht automatisch. Für 
Anwendungen mit hohen Anforderungen an die Positioniergenauigkeit sind 
Motoren mit kleinerer Schrittweite (0,9° bei 2-Phasen, 0,72° bei 
5-Phasen) besser geeignet.

Mit freundlichen Grüßen
Thorsten Ostermann

von Dieter H. (Firma: Ingenieurbüro Hahn) (mop)


Angehängte Dateien:

Lesenswert?

Schaltplan der BERGER-LAHR D193. Stimmt, ist schon ziemlich alt und 
würde man heute anders machen. Es gab später noch die verbesserte D693, 
da habe ich aber keinen Schaltplan.

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.