Forum: Mikrocontroller und Digitale Elektronik GRLB-Alternative?


von Gowron (Gast)


Lesenswert?

Hi,

ich möchte (bis zu) vier Schrittmotoren aus einem Mikrocontroller 
ansteuern (Step/Direction-Ausgangssignale und 
Limit/Home-Eingangssignale). Grundsätzlich wäre GRBL geeignet, 
allerdings suche ich nach einer Alternative weil:

- GRBL bewegt auch bei G0 alle Achsen so, dass sie gleichzeitig 
losfahren und ankommen (das ist jetzt kein KO-Kriterium, aber schöner 
wäre es, wenn sich jede Achse in ihrem eigenen Tempo bewegt und diese 
dann ggf. zu unterschiedlichen Zeitpunkten ihre Zielposition erreichen)

- GRBL kann nur drei Achsen (auf 4 zu erweitern wäre möglicherweise kein 
Problem)

- GRBL schafft nur 30 kHz Stepfrequenz

- GRBL arbeitet mit einer festen Pulsweite und passt diese nicht 
frequenzabhängig auf 50% Duty-Cycle an

- buggy: wenn man GRBL in Grenzbereichen betreibt, zerschießt es 
manchmal den EEPROM-Inhalt und es gibt wohl auch dubiose 
Kommunikationsprobleme, bei denen Müll zurückgeschickt wird bzw. sich 
GRBL komplett aufhängt

Was ich an GRBL mag:

- einfache Kommunikation über serielle Schnittstelle

- simple und billige Hardware aus Arduino/ATMega

Deswegen meine Frage: was könnte ich statt GRBL verwenden um per 
serieller Schnittstelle gesteuert ein paar Achsen zu verfahren?

von Holger K. (holgerkraehe)


Lesenswert?

Gowron schrieb:
> Deswegen meine Frage: was könnte ich statt GRBL verwenden um per
> serieller Schnittstelle gesteuert ein paar Achsen zu verfahren?

Ist RS485 für dich auch eine Option?

von Gowron (Gast)


Lesenswert?

Ja, ist ja schließlich auch seriell :-)

von Felix F. (wiesel8)


Lesenswert?

Es gibt noch Smoothieware und g2core.

Gowron schrieb:
> - buggy: wenn man GRBL in Grenzbereichen betreibt, zerschießt es
> manchmal den EEPROM-Inhalt und es gibt wohl auch dubiose
> Kommunikationsprobleme, bei denen Müll zurückgeschickt wird bzw. sich
> GRBL komplett aufhängt
So viel ich weiß, wird das EEPROM nur beim Start ausgelesen und bei 
Änderungen der Einstellungen geschrieben. Wie soll es in den 
Grenzbereichen also kaputt gehen???

mfg

von Peter (Gast)


Lesenswert?

schau mal hier:

Beitrag "Re: Projekt: SerialComCNC Serielles Frontend für CNC GRBL mit ATMega"

Beitrag "Re: Projekt: SerialComCNC Serielles Frontend für CNC GRBL mit ATMega"


Löst zwar nicht allee deiner Wünsche aber es läuft seit langem bei mir 
ohne Probleme.

von Johannes S. (Gast)


Lesenswert?

Gowron schrieb:
> - GRBL schafft nur 30 kHz Stepfrequenz

auf den AVR, es gibt aber auch Portierungen auf den STM32F103, da habe 
ich von 180kHz gelesen.

von Peter (Gast)


Lesenswert?

Mal abgesehen davon das 30KHz nicht schlecht sind.
Bei den meisten Maschinen wird das sogar schon zuschnell sein, wie bei 
mir auch.

Portiernen kann man den Code recht einfach auf jeden anderen Prozessor 
und ich denke das 180KHz noch locker zu topen sind.
Aber was soll dahinter noch laufen?
Das sind Schritte pro Sekunde und keine PWM!

von Egon D. (Gast)


Lesenswert?

Peter schrieb:

> Das sind Schritte pro Sekunde und keine PWM!

Naja, schätzungsweise sind es MIKROschritte je Sekunde.

Da sich die Schrittmotorleute schon seit Jahrzehnten
mental nicht von der dämlichen Takt-Richtungs-Schnitt-
stelle lösen können, kommt dann solcher Blödsinn heraus.

von Peter (Gast)


Lesenswert?

Dieser Blödsinn ist halt recht einfach anzusteuern.

Ich rede von Schritten, was das am Ende an Umdrehungen bedeutet liegt 
immer an der dahinter liegenden Steuerung und der Mechanik.

Ich selber müsste gerade auch was haben um von den GRLB Motorschritte 
System auf einen Motor mit Encoder zu kommen. Wird wohl nicht mehr mit 
dem AVR gehen.

von Egon D. (Gast)


Lesenswert?

Peter schrieb:

> Dieser Blödsinn ist halt recht einfach anzusteuern.

Sicher, ich weiss.

Das erinnert mich trotzdem immer an den, der den verlorenen
Gulden unter der Straßenlaterne sucht -- und nicht in der
dunklen Ecke, wo er ihn tatsächlich verloren hat.

Die Mechanik macht (aufgrund der Massenträgheit) nicht
wirklich Schritte, und der Motor macht nur deshalb Schritte,
weil er schrittweise angesteuert wird.

Das Einzige, was am Schrittmotor wirklich schrittweise geht,
sind die Taktimpulse an der Schnittstelle.


> Ich rede von Schritten,

Du könntest auch einfach von "Taktimpulsen" reden; das
wäre sachlich richtig und nicht irreführend.

Du unterscheidest doch auch zwischen Meter und Mikro-
meter -- warum unterscheidest Du dann nicht zwischen
Schritten und Mikroschritten?

Aber das führt vom Thema weg; ich will den Thread nicht
kapern.

von Gowron (Gast)


Lesenswert?

> So viel ich weiß, wird das EEPROM nur beim Start ausgelesen und bei
> Änderungen der Einstellungen geschrieben. Wie soll es in den
> Grenzbereichen also kaputt gehen???

Es gibt wohl auch ein paar G-Code-Kommandos, die eine Schreiboperation 
auf dem EEPROM ausführen.

Schau mal in die (geschlossenen aber nicht behobenen) Bugs bei GRBL auf 
GitHub, da gibt es in der Richtung mehr Probleme - alle ungelöst. Bugs 
schließen kann der Maintainer wohl sehr gut - vornehmlich mit der 
Begründung, dass genau dass dann eine nicht normale Verwendung von gRBL 
ist :-D

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


Lesenswert?

Hallo Egon,

Egon D. schrieb:

> Da sich die Schrittmotorleute schon seit Jahrzehnten
> mental nicht von der dämlichen Takt-Richtungs-Schnitt-
> stelle lösen können, kommt dann solcher Blödsinn heraus.

Wer sind denn "die Schrittmotorleute"? Im industriellen Bereich gibt es 
längst Alternativen. Eine Schrittmotorklemme wird z.B. bei Beckhoff 
genauso über EtherCAT angesteuert wie eine Servomotorklemme für einen 
DC-Servo oder eine AX5000 für "echte Servos". Und auch für CANopen oder 
andere Feldbusse gibt es entsprechende Lösungen.

Leider haben sich Feldbusse bisher im Hobby-CNC Bereich nicht 
durchgesetzt. Das könnte auch mit den höheren Preisen und der höheren 
Komplexität bei der Inbetriebnahme zusammen hängen. Es gibt ja noch 
nicht einmal einen Standard für die externen USB-Controller 
(SmoothStepper und Co.), die inzwischen den Parallelport als 
"Taktquelle" für die Erzeugung der Takt-/Richtungssignale abgelöst 
haben. Da macht jeder Software-Anbieter sein eigenes Ding.

Somit ist Takt-/Richtung nach wie vor die einfachste und preiswerteste 
Schnittstelle, zumindest solange man keine EMV-Probleme hat. Im 
Gegensatz zu +/-10V wie sie bei den Servoantrieben vor Einführung von 
BUS-System üblich war, gibt es dort auch keine Probleme mit driftenden 
Signalen oder Offsets.

Mit freundlichen Grüßen
Thorsten Ostermann

von Gowron (Gast)


Lesenswert?

Thorsten O. schrieb:
> Im
> Gegensatz zu +/-10V wie sie bei den Servoantrieben vor Einführung von
> BUS-System üblich war, gibt es dort auch keine Probleme mit driftenden
> Signalen oder Offsets.

Mal aus Interesse: nach welchem Prinzip funktionieren denn diese 
Servomotoren? Mit +-10V kann man ja sicher nicht einmal sehr kleine 
Positionsveränderungen und dann wieder sehr große Distanzen ansteuern - 
legt diese Spannung nur die Verfahrgeschwindigkeit fest und der Rest 
wird über Encoder-Feedback gemacht?

von Egon D. (Gast)


Lesenswert?

Thorsten O. schrieb:

> Egon D. schrieb:
>
>> Da sich die Schrittmotorleute schon seit Jahrzehnten
>> mental nicht von der dämlichen Takt-Richtungs-Schnitt-
>> stelle lösen können, kommt dann solcher Blödsinn heraus.
>
> Wer sind denn "die Schrittmotorleute"?

Naja... ich sehe ja von hier aus nur das, was im Hobby-
sektor passiert. Ich wollte niemandem zu nahe treten,
der mit Schrittantrieben sein Geld verdient.


> Im industriellen Bereich gibt es längst Alternativen.

Klar -- dort sind ja auch Synchronmotoren oder Servos
wesentlich weiter verbreitet als im Hobbysektor.


> Leider haben sich Feldbusse bisher im Hobby-CNC Bereich
> nicht durchgesetzt.

Hmm. Von der Seite habe ich es noch nicht betrachtet.
Die Systemstruktur ist ja, soweit ich das übersehe, im
Hobbybereich auch simpler. Da gibt es in der Regel den
Schrittantrieb (Treiberkarte und Motor) und den PC, das
war's schon. Separater Controller (Bahnsteuerung), SPS,
Feldbus usw. ist ja alles nicht üblich.


> Somit ist Takt-/Richtung nach wie vor die einfachste und
> preiswerteste Schnittstelle, [...]

Ja... naja, für sehr anspruchslose Anwendungen (Punkt-
steuerung) ist die Schnittstelle extrem einfach zu verwenden,
das gebe ich zu.

Sobald die Anforderungen aber steigen, wird die Sache auch
wieder kompliziert: Zunächst muss man beachten, dass man
den Schritt-Takt nicht beliebig rabiat ändern darf, wenn
der Motor nicht ausser Tritt fallen soll; da sind Grenzen
zu beachten.
Dann braucht man Stromchopperendstufen, wenn man echte
Leistung bei höheren Drehzahlen haben will. Nachfolgend will
man ziemlich bald auch die harten Sprünge bei niedrigen
Drehzahlen vermeiden, also will man Mikroschrittbetrieb.
Mikroschrittbetrieb treibt wieder die Schrittakte für die
Bahnsteuerung in unsinnige Höhen -- alles nur, weil man an
der Takt/Richtungsansteuerung festhalten will.

Ein Servoantrieb mit Normsignalansteuerung hat die Probleme
nicht.


> Im Gegensatz zu +/-10V wie sie bei den Servoantrieben vor
> Einführung von BUS-System üblich war, gibt es dort auch
> keine Probleme mit driftenden Signalen oder Offsets.

Das stimmt schon.

Allerdings hätte +/-10V den Vorteil, dass die Bahnsteuerung
nicht mit den Details der Motoransteuerung belastet wird. Ob
der Schrittmotor nur 8fachen oder sogar 64fachen Mikroschritt-
betrieb macht, wäre völlig wurscht, und auch eine U/f-Kennlinie
ließe sich sehr leicht implementieren. Wenn der Motorcontroller
ein (elektronisch erzeugtes) Encodersignal zurückliefert, wird
die Bahnsteuerung auch über die aktuelle Sollposition des Motors
auf dem laufenden gehalten, so dass sich eine Servoregelung
aufbauen lässt.

Ich will +/-10V nicht als Nonplusultra propagieren, aber
meiner Meinung nach lügt man sich mit der "ganz einfachen"
Takt/Richtungs-Schnittstelle nur selbst in die Tasche.

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


Lesenswert?

Hallo Gowron,

Gowron schrieb:
> Thorsten O. schrieb:
>> Im
>> Gegensatz zu +/-10V wie sie bei den Servoantrieben vor Einführung von
>> BUS-System üblich war, gibt es dort auch keine Probleme mit driftenden
>> Signalen oder Offsets.
>
> Mal aus Interesse: nach welchem Prinzip funktionieren denn diese
> Servomotoren? Mit +-10V kann man ja sicher nicht einmal sehr kleine
> Positionsveränderungen und dann wieder sehr große Distanzen ansteuern -
> legt diese Spannung nur die Verfahrgeschwindigkeit fest und der Rest
> wird über Encoder-Feedback gemacht?

Als die Servo- und CNC-Technik noch analog war, wurde mit +/-10V ein 
Drehzahlsollwert vorgegeben. Drehzahl- und Stromregelung wurden im 
Antriebs-/Servoverstärker implementiert, der Lageregler in der zentralen 
CNC-Steuerung.

Als Positionssollwert kann man +/-10V tatsächlich nur für kleine 
Strecken und bei geringer Genauigkeitsanforderung verwenden. Ich habe 
aber Kunden, die das in Verbindung mit frei programmuierbaren 
Schrittmotorsteuerungen (LAM DS30-Serie) so einsetzen. Der Sollwert 
kommt dann entweder von einer SPS, die keine schnellen Ausgänge hat, 
oder sogar nur von einem Poti.

Mit freundlichen Grüßen
Thorsten Ostermann

von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

Egon D. schrieb:
> Sobald die Anforderungen aber steigen, wird die Sache auch
> wieder kompliziert: Zunächst muss man beachten, dass man
> den Schritt-Takt nicht beliebig rabiat ändern darf, wenn
> der Motor nicht ausser Tritt fallen soll; da sind Grenzen
> zu beachten.

Das sind aber Binsenweisheiten und ist bei Servoantrieben nicht anders. 
Dafür hat auch jede CNC-Steuerung, die ich kenne, entsprechende 
Beschleunigungsparameter, die man einstellen kann, sei es nun für 
Servors oder direkt Takt/Richtung.

> Dann braucht man Stromchopperendstufen, wenn man echte
> Leistung bei höheren Drehzahlen haben will.

Die gibt es mittlerweile für nen Appel und ein Ei.

> Nachfolgend will
> man ziemlich bald auch die harten Sprünge bei niedrigen
> Drehzahlen vermeiden, also will man Mikroschrittbetrieb.
> Mikroschrittbetrieb treibt wieder die Schrittakte für die
> Bahnsteuerung in unsinnige Höhen -- alles nur, weil man an
> der Takt/Richtungsansteuerung festhalten will.

Das spielt bei den schnellen Steuerungen heutzutage kaum noch eine 
Rolle.
Hier kann ich bspw. problemlos 2 MHz an Taktfrequenz generieren, wenn es 
denn nötig sein sollte.

> Ein Servoantrieb mit Normsignalansteuerung hat die Probleme
> nicht.

Dafür hat er andere Nachteile. Von den Preisen abgesehen ist 
insbesondere das Drehmoment im unteren Drehzahlbereich bei gleicher 
Baugröße deutlich schlechter, gerade wenn es dauerhaft sein muss.

>> Im Gegensatz zu +/-10V wie sie bei den Servoantrieben vor
>> Einführung von BUS-System üblich war, gibt es dort auch
>> keine Probleme mit driftenden Signalen oder Offsets.
>
> Das stimmt schon.

Und das ist ein gravierender Nachteil.

> Ich will +/-10V nicht als Nonplusultra propagieren, aber
> meiner Meinung nach lügt man sich mit der "ganz einfachen"
> Takt/Richtungs-Schnittstelle nur selbst in die Tasche.

Unterhalte Dich mit Leuten, die schon öfter beide Systeme eingesetzt 
haben.

Hier läuft bspw. eine CNC-Fräse nur mit Schrittmotoren ganz wunderbar.
Und ja: das ist mit Takt/Richtung alles sehr einfach einzurichten. Ein 
Servosystem so einzurichten, dass es wirklich optimal läuft, erfordert 
dahingegen erhebliches Wissen und Geduld.

Viele, die sich ein CNC-System aufbauen, kommen anders als wir aus dem 
metallverarbeitenden Bereich. Dementsprechend gering ist das Wissen über 
Regelstrecken usw. Eine einfache Takt/Richtung-Ansteuerung kann man auch 
als Laie einigermaßen gut einstellen und auf Fehler überprüfen.

Und die vielen, vielen, preiswerten Schrittmotorsteuerungen, die bei 
Hobbymenschen mit geringen Elektronikkenntnissen (und auch Leutem, die 
damit ihr Geld verdienen ;-) problemlos laufen, zeigen, dass das System 
so falsch nicht ist.

: Bearbeitet durch Moderator
von Ewald (Gast)


Lesenswert?

Thorsten O. schrieb:
> Leider haben sich Feldbusse bisher im Hobby-CNC Bereich nicht
> durchgesetzt.

Leider? Ich sag mal Gott sei Dank

Egon D. schrieb:
> Dann braucht man Stromchopperendstufen, wenn man echte
> Leistung bei höheren Drehzahlen haben will

Jeder 1 Euro Schrittmotortreiber hat heutzutage eine Chopperendstufe.
Was bitte ist "echte" Leistung?
Der einzige Weg, Leistung bei hohen Drehzahlen zu erreichen, ist der 
Gegen-EMK entgegenzuwirken.
Das geht nur mit Erhöhen der Spannung, egal ob Schritt- oder Servomtor.
Solange Bastler natürlich Ihre Schrittmotoren an 12V betreiben, braucht 
man da über mangelnde Leistung nicht weiterzudiskutieren.
Muss man den Motor bzw. die Motorendstufe halt an 48V, 150V oder 200V DC 
betreiben. Dann geht auch im oberen Drehzahlbereich was.

Gruß

von Bernd K. (prof7bit)


Lesenswert?

Egon D. schrieb:
> Da sich die Schrittmotorleute schon seit Jahrzehnten
> mental nicht von der dämlichen Takt-Richtungs-Schnitt-
> stelle lösen können, kommt dann solcher Blödsinn heraus.

Wie einfach ist es zwei Servomotoren so zu synchronisieren daß sie 
möglichst genau gemeinsam eine Kontur abfahren, inclusive 
Beschleunigungsrampen?

von Christopher J. (christopher_j23)


Lesenswert?

Gowron schrieb:
> - GRBL bewegt auch bei G0 alle Achsen so, dass sie gleichzeitig
> losfahren und ankommen

Das ist normal so und auch so gewünscht

Gowron schrieb:
> - GRBL schafft nur 30 kHz Stepfrequenz

Das liegt nicht an der Software, sondern der limitierten Hardware bzw. 
Rechenkapazität des Atmega328p. Mit einem LPC1768 schafft grbl locker 
200kHz.

Gowron schrieb:
> - GRBL arbeitet mit einer festen Pulsweite und passt diese nicht
> frequenzabhängig auf 50% Duty-Cycle an

Das wäre auch Käse, da Schrittmotortreiber eben nach einer minimalen 
Pulsweite verlangen, denen der Dutycycle aber relativ egal ist.

Gowron schrieb:
> - GRBL kann nur drei Achsen (auf 4 zu erweitern wäre möglicherweise kein
> Problem)

Es gibt Ports von grbl auf den Arduino-Mega, sowie auf das 
Smoothieboard. Letzteres läuft mit erwähntem LPC1768 (Cortex M3 @ 
120MHz) und bietet demnach auch eine wesentlich höhere Stepfrequenz, 
wofür auch immer du die brauchst.

Hier ist der Branch von cprezzi: 
https://github.com/cprezzi/grbl-LPC/tree/more-axis

von Gowron (Gast)


Lesenswert?

Christopher J. schrieb:
>> - GRBL arbeitet mit einer festen Pulsweite und passt diese nicht
>> frequenzabhängig auf 50% Duty-Cycle an
>
> Das wäre auch Käse, da Schrittmotortreiber eben nach einer minimalen
> Pulsweite verlangen, denen der Dutycycle aber relativ egal ist.

Also mein Schrittmotor hier gibt sowohl bei der steigenden als auch bei 
der fallenden Flanke des Pulses ein leises "Klick" von sich. Bei einer 
festen Pulsweite wäre dass dann eine ziemlich ungleichmäßige Bewegung.

Bleiben halt immer noch die grundsätzlichen Bugs in GRBL, die im 
Gegensatz zu den anderen Sachen ein echtes KO-Kriterium für mich sind.

von Hardy F. (hardyf)


Lesenswert?

Gowron schrieb:
> die grundsätzlichen Bugs in GRBL

... die da wären ?

von Christopher J. (christopher_j23)


Lesenswert?

Gowron schrieb:
> Also mein Schrittmotor hier gibt sowohl bei der steigenden als auch bei
> der fallenden Flanke des Pulses ein leises "Klick" von sich.

Was für einen Treiber benutzt du denn? Bei den 08/15-Treibern a la 
DRV8825 oder A4988 ist das meines Erachtens nach nicht der Fall.

Hardy F. schrieb:
> Gowron schrieb:
>> die grundsätzlichen Bugs in GRBL
>
> ... die da wären ?

Das würde mich allerdings auch mal interessieren. Außerdem steht es 
natürlich jedem frei diese Bugs zu beheben.

von Christopher J. (christopher_j23)


Lesenswert?

Noch so als Nachtrag:
Quasi jede 3D-Drucker-Firmware hat mindestens vier Achsen, nämlich X,Y,Z 
und den Extruder. Von Marlin gibt es mittlerweile auch Ports für STM32 
und andere Cortex-M, siehe 
https://github.com/MarlinFirmware/Marlin/tree/bugfix-2.0.x . Eine andere 
3D-Druck-Firmware, die unter anderem für das Nucleo-F411 portiert ist 
wäre Teacup: https://github.com/Traumflug/Teacup_Firmware
Einer der Entwickler (Nico aka Wurstnase) ist auch öfter mal hier im 
Forum unterwegs.

von Egon D. (Gast)


Lesenswert?

Ewald schrieb:

> Der einzige Weg, Leistung bei hohen Drehzahlen zu
> erreichen, ist der Gegen-EMK entgegenzuwirken.
> Das geht nur mit Erhöhen der Spannung, egal ob
> Schritt- oder Servomtor.

Sicher.
Genau zu diesem Zweck haben Umrichter eine U/f-Steuerung.

So etwas ähnliches haben Schrittmotortreiber natürlich
auch, aber erstens funktioniert es nicht ganz so gut
wie eine echte U/f-Steuerung, und zweitens darf man es
keinesfalls so nennen!

von Egon D. (Gast)


Lesenswert?

Bernd K. schrieb:

> Egon D. schrieb:
>> Da sich die Schrittmotorleute schon seit Jahrzehnten
>> mental nicht von der dämlichen Takt-Richtungs-Schnitt-
>> stelle lösen können, kommt dann solcher Blödsinn heraus.
>
> Wie einfach ist es zwei Servomotoren so zu synchronisieren
> daß sie möglichst genau gemeinsam eine Kontur abfahren,
> inclusive Beschleunigungsrampen?

Im Prinzip genau so einfach oder schwierig wie mit
Schrittmotoren. Jede industrielle CNC-Fräse beweist
das.

Du darfst nämlich nicht vergessen, dass das Taktsignal
erstmal nur die SOLL-Position angibt -- bis zur Ist-
Position müssen noch die Frage nach dem Polradwinkel und
die nach eventuellen Schrittverlusten geklärt sein.

Beides tritt bei Servo-Antrieben nicht auf, weil das
geschlossene Regelkreise sind; die Steuerung kennt also
die Ist-Position.

von Carl D. (jcw2)


Lesenswert?

Egon D. schrieb:
> Beides tritt bei Servo-Antrieben nicht auf, weil das
> geschlossene Regelkreise sind; die Steuerung kennt also
> die Ist-Position.

Als gerechten Ausgleich muß der Schrittmotortreiber nicht zum 
Wunschstrom die richtige frequenzabhängige Spannung erraten, sondern 
kann den direkt auf den Sollwert regeln.

von Egon D. (Gast)


Lesenswert?

Carl D. schrieb:

> Egon D. schrieb:
>> Beides tritt bei Servo-Antrieben nicht auf, weil das
>> geschlossene Regelkreise sind; die Steuerung kennt also
>> die Ist-Position.
>
> Als gerechten Ausgleich muß der Schrittmotortreiber nicht
> zum Wunschstrom die richtige frequenzabhängige Spannung
> erraten, sondern kann den direkt auf den Sollwert regeln.

Daran sind ironischweise BEIDE Teilaussagen falsch.

Erstens muss der Umrichter die notwendige Spannung nicht
ERRATEN, sondern sie ist durch die Motorkennlinie (die man
dem Umrichter vorher mitteilt) festgelegt. Er muss nur in
die Tabelle gucken und den richtigen Wert nehmen.

Zweitens ist es beim Schrittantrieb sachlich FALSCH, auf
den Strom zu regeln, der der neuen Zielposition entspricht.
Da sich die Motorposition aus physikalischen Gründen
(Trägheit) stetig ändern muss, müsste sich auch der Strom
stetig ändern, damit das gewünschte konstante Drehmoment
entsteht.

GENAU DAZU ist der Schrittmotortreiber aber nicht in der
Lage, weil er die aktuelle Geschwindigkeit nicht kennt --
er kennt nur Positionen.

Und WEIL das so ist, hat man den Mikroschrittbetrieb
eingeführt, bei dem das Problem nicht prinzipiell behoben
ist, sondern die Sprünge nur so klein gemacht werden,
dass sie nicht mehr stören. Der Preis dafür ist, dass die
Steuerung die Bahnpunkte viel enger setzen muss.

von Nico W. (nico_w)


Lesenswert?

Im Hobbybereich ist das doch recht einfach. Für weit unter 100€ bekommt 
man 4 Stepper, Treiber und Steuerung. Selbst mit 32bit. 
Schrittfrequenzen mit Rampen jenseits der 500kHz sind auch kein Thema 
mehr.


Aber genauso gibt es Closed-Loop Systeme mit Steppern, wenn man es denn 
braucht.

Beitrag #5544929 wurde vom Autor gelöscht.
von Egon D. (Gast)


Lesenswert?

Chris D. schrieb:

> Das sind aber Binsenweisheiten [...]
>
> Die gibt es mittlerweile für nen Appel und ein Ei.
>
> Das spielt bei den schnellen Steuerungen heutzutage
> kaum noch eine Rolle.

Ich denke, Du missverstehst mich.

Zum einen: Auch eine technisch realisierbare Lösung kann
sachlich und logisch blödsinnig sein.

Zum anderen: Schrittmotorendstufen sind heutzutage
komplette kleine Umrichter mit U/f-Steuerung und
Sinuskommutierung. Man darf das aber KEINESFALLS so
nennen! Das muss "Stromchopperendstufe" und
"Mikroschrittbetrieb" heißen!

Mich ärgert dieser Etikettenschwindel, das ist alles.


> Hier kann ich bspw. problemlos 2 MHz an Taktfrequenz
> generieren, wenn es denn nötig sein sollte.

Das macht es nicht sinnvoller.

Mein Punkt ist, dass es Prozesse in der Maschine gibt,
die PHYSIKALISCH von der GESCHWINDIGKEIT (bzw. von deren
Änderung) abhängen. Schrittantriebe beharren aber energisch
darauf, nur POSITIONEN zu kennen.

Man kann geschwindigkeits- und beschleunigungsproportionale
Effekte nicht dadurch weghexen, dass man sie ignoriert.


> Hier läuft bspw. eine CNC-Fräse nur mit Schrittmotoren
> ganz wunderbar.

Komplett andere Baustelle.

Ich habe nix gegen Schrittmotoren, ich habe nichtmal wirklich
etwas gegen die Takt/Richtungs-Schnittstelle, wenn mir ihre
Vorzüge einleuchten.

Ich habe nur etwas gegen die grob vereinfachenden (=falschen)
Beschreibungen und Erklärungen.

Ganz schlimm wird es, wenn solcher Mist in integrierten
Schrittmotortreibern in Silizium gegossen wird.


> Und ja: das ist mit Takt/Richtung alles sehr einfach
> einzurichten. Ein Servosystem so einzurichten, dass es
> wirklich optimal läuft, erfordert dahingegen erhebliches
> Wissen und Geduld.

Ich denke, Du verwechselst hier Korrelation mit Kausalität.

Wenn Du die 20kW-CNC-Fräse, die ich gerade vor meinem
geistigen Auge habe, bei identischer Parametern (Genauigkeit,
erreichbare Geschwindigkeiten usw.) auf Schrittmotoren
umrüsten wolltest, bräuchtest Du genauso ERHEBLICHES Wissen.

Hobbyisten bauen nur in der Regel kleinere Maschinen und
legen weniger Wert auf das Masse-Leistungs-Verhältnis, daher
treten viele Probleme nicht in derselben Schärfe auf.


> Viele, die sich ein CNC-System aufbauen, kommen anders als
> wir aus dem metallverarbeitenden Bereich. Dementsprechend
> gering ist das Wissen über Regelstrecken usw. Eine einfache
> Takt/Richtung-Ansteuerung kann man auch als Laie einigermaßen
> gut einstellen und auf Fehler überprüfen.

Naja... Physik und Maschinendynamik bleiben gleich, egal, ob
ein Laie oder ein Fachmann an der Maschine herumkonfiguriert.


Ich kann euch (Thorsten und Dir) aber dennoch zu weiten Teilen
folgen:

Zum einen ist mir klar, dass digitale Schnittstellen
praktische Vorteile haben; das ist schon mal ein Pluspunkt
für die Takt/Richtungs-Schnittstelle.

Zum zweiten ist, wenn man mal ruhig darüber nachdenkt, der
ganze Blödsinn mit dem Mikroschrittbetrieb selbst auf Basis
der Takt/Richtungs-Schnittstelle lösbar. Die Zeitabstände der
letzten n Taktimpulse zueinander sind ja ein Maß für die
aktuelle Drehgeschwindigkeit des Motors -- also kann eine
Schrittmotorendstufe diesen Zeitabstand auch messen und daraus
sowohl die notwendige Motorspannung bestimmen als auch den
mutmaßlichen Verlauf den Drehfeldes in den nächsten Mikro-
sekunden extrapolieren.

Man muss das ganze nur (physikalisch korrekt) als elektronisch
kommutierten Synchronantrieb auffassen und nicht bei der
Vorstellung "es kommt ein Taktimpuls, und dann macht der Motor
einen Schritt" stehenbleiben.

von Egon D. (Gast)


Lesenswert?

Nico W. schrieb:

> Im Hobbybereich ist das doch recht einfach. Für weit
> unter 100€ bekommt man 4 Stepper, Treiber und Steuerung.
> Selbst mit 32bit. Schrittfrequenzen mit Rampen jenseits
> der 500kHz sind auch kein Thema mehr.

Stellt sich nur die Frage: Wozu brauche ich Schrittfrequenzen
von 500kHz? Welcher Schrittmotor schafft 2500 U/sec?

Jetzt redet man mir also wie einem kranken Pferd zu und
erklärt mir, dass das ja gar keine "Motorschritte" sind,
sondern nur "Mikroschritte".

Auf meine folgerichtige Frage hin, wozu man Mikroschritte
braucht, kommt dann die Erklärung, dass man die sprunghaften
Stromänderungen vermeiden möchte, die die Mechanik zum
Schwingen anregen.

Wenn ich jetzt sage "Ach so. Ihr wollt also ein einigermaßen
stetiges Drehfeld erzeugen -- aber warum bürdet ihr diese
Arbeit der Bahnsteuerung auf und baut nicht statt dessen einen
passenden Motor-Umrichter, der das kann?", dann werde ich
angeguckt wie ein Kamel mit fünf Köpfen.

Das ist keine Frage des Preises, sondern einer vernünfigen
Systemstruktur.

von Nico W. (nico_w)


Lesenswert?

Da kommst du aber mit 100€ nicht weit. Und es gibt auch Stepper mit mehr 
als 200 Schritten pro Umdrehung. Aber sicher rede ich hier von 
Mikroschritten.


Ich hab nix gegen Servos. Ich wollte mich damit auch schonmal näher 
auseinander setzen. Wobei gleich ein nicht so einfach parametriebares 
Closed Loop System auf einen kleinen Hobby-Drucker oder ähnliches zu 
schmeißen?...


Ich mach das nun schon seit einigen Jahren. Ich erinnere mich aber auch 
an meine Anfänge. Das war ich froh die richtige Mikroschrittanzahl in 
die Firmware einzutragen und ggf. noch einen passenden Wert für die 
Rampen.

von Matthias (Gast)


Lesenswert?

So ziemlich jeder Controller für 3D Drucker hat mit Firmware wie Marlin 
und Repetier auch einen CNC und einen Laser Modus bekommen. Wenn Du die 
Endstufen schon hast, dann kauf halt irgendein ARM Board und spiel' 
Marlin drauf. Dann läuft die USB Verbindung direkt mit dem ARM (nicht 
per Umsetzung auf seriell) und mit 200kHz und problemlos vier, fünf oder 
sechs Achsen.

Wenn's ganz was besonderes sein darf, holt man sich den Duet Controller 
mit 5" touch screen und hat dann mit erweiterungsboard X, Y, Z, U, V, W 
und noch sechs weitere Extruder/Fräsen/Laserquellen.

Für Kleinkram tut's auch ein Arduino Due für 30 Euro.

von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

Egon D. schrieb:
> Zum einen: Auch eine technisch realisierbare Lösung kann
> sachlich und logisch blödsinnig sein.

Das mag sein - hier ist sie es nicht, einfach, weil diese Lösung um 
einiges günstiger ist.

> Zum anderen: Schrittmotorendstufen sind heutzutage
> komplette kleine Umrichter mit U/f-Steuerung und
> Sinuskommutierung. Man darf das aber KEINESFALLS so
> nennen! Das muss "Stromchopperendstufe" und
> "Mikroschrittbetrieb" heißen!

Wenn ich mir die Funktionsweise meiner Schrittmotorendstufen anschaue, 
dann  ist das mMn keine U/f-Steuerung, denn die Ausgangsspannung der 
Endstufen ist immer dieselbe. Eine U/f-Steuerung hat ja den Anspruch, 
das Drehmoment über den kompletten Drehzahlbereich so konstant wie 
möglich zu halten, ohne den Motor zu überlasten. Schrittmotorendstufen 
haben aber genau das nicht: man hat (im Rahmen des möglichen 
Spannungsanstiegs) immer denselben Motorstrom, den man einprägt, egal ob 
bei 0Hz oder 5kHz. Daher fällt die Drehmoment/f-Kurve dann auch 
entsprechend ab.

> Mich ärgert dieser Etikettenschwindel, das ist alles.

Meiner Meinung nach ist das kein Etikettenschwindel, sondern das sind 
eben keine U/f-Umrichter.

>> Hier kann ich bspw. problemlos 2 MHz an Taktfrequenz
>> generieren, wenn es denn nötig sein sollte.
>
> Das macht es nicht sinnvoller.

Doch, durchaus - denn damit ist bspw. das Argument hinfällig, dass die 
arme CNC-Steuerung in irgendeiner Art und Weise durch intelligente 
Servoantriebe entlastet werden müsste. Im Gegenteil macht es das 
einfacher, weil der komplette Antrieb innerhalb der Steuerung 
parametriert werden kann.

> Mein Punkt ist, dass es Prozesse in der Maschine gibt,
> die PHYSIKALISCH von der GESCHWINDIGKEIT (bzw. von deren
> Änderung) abhängen. Schrittantriebe beharren aber energisch
> darauf, nur POSITIONEN zu kennen.
>
> Man kann geschwindigkeits- und beschleunigungsproportionale
> Effekte nicht dadurch weghexen, dass man sie ignoriert.

Das tut auch niemand. Diese Dinge lassen sich bei jeder vernünftigen 
Bahnsteuerung einstellen, sei es für Servos, sei es für Schrittmotoren.
Würde man sich gegen die Physik stellen, würden diese kleinen 
CNC-Maschinen nicht so einfach und problemlos laufen :-)

> Wenn Du die 20kW-CNC-Fräse, die ich gerade vor meinem
> geistigen Auge habe, bei identischer Parametern (Genauigkeit,
> erreichbare Geschwindigkeiten usw.) auf Schrittmotoren
> umrüsten wolltest, bräuchtest Du genauso ERHEBLICHES Wissen.

Das ist aber nicht der Anwendungsfall für Schrittmotoren im CNC-Bereich. 
Niemand wird bei einer solchen Größe Schrittmotoren einsetzen oder die 
Maschine gar umrüsten. Weder ich noch Thorsten.

> Hobbyisten bauen nur in der Regel kleinere Maschinen und
> legen weniger Wert auf das Masse-Leistungs-Verhältnis, daher
> treten viele Probleme nicht in derselben Schärfe auf.

Genau - oft treten sie gar nicht auf. Dafür spielt der Preis und 
einfache Einrichtung eben eine wichtige Rolle. Dazu kommen noch andere 
angenehme Eigenschaften wie die deutlich kleinere Bauform bei höherer 
Leistung im unteren Drehzahlbereich und Selbsthemmung. Bei großen 
Maschinen gibt es andere Vorgaben wie maximale Geschwindigkeiten usw.

>> Viele, die sich ein CNC-System aufbauen, kommen anders als
>> wir aus dem metallverarbeitenden Bereich. Dementsprechend
>> gering ist das Wissen über Regelstrecken usw. Eine einfache
>> Takt/Richtung-Ansteuerung kann man auch als Laie einigermaßen
>> gut einstellen und auf Fehler überprüfen.
>
> Naja... Physik und Maschinendynamik bleiben gleich, egal, ob
> ein Laie oder ein Fachmann an der Maschine herumkonfiguriert.

Das ändert aber nichts an der deutlich leichteren Einrichtung einer 
Steuerung gegenüber einer (bzw. mehreren) Regelschleife(n).
Und darum geht es unter anderem.

> Zum zweiten ist, wenn man mal ruhig darüber nachdenkt, der
> ganze Blödsinn mit dem Mikroschrittbetrieb selbst auf Basis
> der Takt/Richtungs-Schnittstelle lösbar. Die Zeitabstände der
> letzten n Taktimpulse zueinander sind ja ein Maß für die
> aktuelle Drehgeschwindigkeit des Motors -- also kann eine
> Schrittmotorendstufe diesen Zeitabstand auch messen und daraus
> sowohl die notwendige Motorspannung bestimmen als auch den
> mutmaßlichen Verlauf den Drehfeldes in den nächsten Mikro-
> sekunden extrapolieren.

Das wird dann alles wieder teurer und man verschenkt Flexibilität. Bei 
3D-Druckern bspw. fährt man bei kurzen, nicht allzu schnellen Bewegungen 
ganz ohne Rampe. Wie sollte ein System also erkennen, dass nach diesem 
Schritt einfach keiner mehr folgt, obwohl ich noch eine gewisse 
Geschwindigkeit habe? Das müsste man auch wieder parametrieren usw.

Einfache 2A-Endstufen mit Stromchopper kosten keinen Euro mehr, die 
Motoren keine 10€. Da fängt niemand mit Servosystemen an.

von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

Nico W. schrieb:
> Ich mach das nun schon seit einigen Jahren. Ich erinnere mich aber auch
> an meine Anfänge. Das war ich froh die richtige Mikroschrittanzahl in
> die Firmware einzutragen und ggf. noch einen passenden Wert für die
> Rampen.

Ja, eben. Eine Vielzahl an gut funktionierenden CNC-Fräsen wäre nie zu 
Ende gebaut worden, wenn man dafür Servos hätte nehmen müssen.

Ich sehe ja hier an meinem 3kW-Servomotor am SK30-Wechsler, dass die 
Einrichtung eines Servosystems erhebliches Vorwissen, Zeit und Geduld 
erfordert. Einen Lenze EVS9324 parametriert man nicht mal eben so, wenn 
man das vorher noch nie gemacht hat.

Bei einem Schrittmotor stellt der Laie die Anzahl der Schritte/U ein, 
dann noch den Motorstrom und erstmal eine niedrige Beschleunigung, und 
schon läuft diese Achse - noch nicht optimal, aber sie läuft.

von Bernd K. (prof7bit)


Lesenswert?

Egon D. schrieb:
> Wenn ich jetzt sage "Ach so. Ihr wollt also ein einigermaßen
> stetiges Drehfeld erzeugen -- aber warum bürdet ihr diese
> Arbeit der Bahnsteuerung auf und baut nicht statt dessen einen
> passenden Motor-Umrichter, der das kann?"

Wird dadurch die Bahnsteuerung irgendwie einfacher? Ich denke: nein. Man 
braucht immer noch einen Algorithmus der die Bahn in viele winzig kleine 
Einzelsegmente zerlegt unter Berücksichtigung der erforderlichen 
Beschleunigungsrampen soundsovielter Ordnung weil der einzelne Motor das 
nicht selbstständig machen darf denn der wüßte ja gar nicht wo die 
anderen Motoren zu einen gegebenen Zeitpunkt gerade sind.

Statt Schritte mit präzisem Timing hinzuschicvken schickst Du dann 
irgendwelche Datenpakete für jedes einzelne Segment mit gewünschter 
Geschwindigkeit und Zielposition und hoffst daß alle Motoren halbwegs 
gleichzeitig ankommen. Du verlierst völlig die Kontrolle über das 
Timimg.

: Bearbeitet durch User
von Egon D. (Gast)


Lesenswert?

Bernd K. schrieb:

> Egon D. schrieb:
>> Wenn ich jetzt sage "Ach so. Ihr wollt also ein einigermaßen
>> stetiges Drehfeld erzeugen -- aber warum bürdet ihr diese
>> Arbeit der Bahnsteuerung auf und baut nicht statt dessen einen
>> passenden Motor-Umrichter, der das kann?"
>
> Wird dadurch die Bahnsteuerung irgendwie einfacher?

Nun ja. Die Bahnsteuerung muss weniger motorspezifischen
Krempel erledigen und nur ungefähr ein Zehntel bis ein
Hundertstel der Datenmenge durchlassen. Ob das eine
Vereinfachung ist, mag jeder selbst beurteilen.


> Ich denke: nein. Man braucht immer noch einen Algorithmus
> der die Bahn in viele winzig kleine Einzelsegmente zerlegt
> [...]

Natürlich. Dem widerspreche ich gar nicht. Nur sind die
Segmente eben dann nicht 50nm lang, sondern vielleicht
2µm.


> Statt Schritte mit präzisem Timing hinzuschicvken schickst
> Du dann irgendwelche Datenpakete für jedes einzelne Segment
> mit gewünschter Geschwindigkeit und Zielposition und hoffst
> daß alle Motoren halbwegs gleichzeitig ankommen. Du verlierst
> völlig die Kontrolle über das Timimg.

Mir ist nicht klar, warum Du hier einen solchen Pappkameraden
aufbaust.

Ich habe nicht gefordert, dass man die Motoren über eine
Rauchzeichen-Schnittstelle mit Latenzen im Minutenbereich
ansteuern soll.

Meine Aussage war lediglich, dass sich meiner unmaßgeblichen
Meinung nach die Bahnsteuerung nicht um die Erzeugung eines
stetigen Drehfeldes kümmern sollte -- nichts anders ist
nämlich der Mikroschrittbetrieb: Interpolation der Phasen-
ströme zwecks Erzeugung eines stetigen Drehfeldes.

von Egon D. (Gast)


Lesenswert?

Chris D. schrieb:

> Wenn ich mir die Funktionsweise meiner
> Schrittmotorendstufen anschaue, dann  ist das mMn
> keine U/f-Steuerung, denn die Ausgangsspannung der
> Endstufen ist immer dieselbe.

Das sollte nicht so sein.

Das offensichtlichste Gegenbeispiel ist der Stillstand.
Ohne Stillstandserkennung und Stromabsenkung wird im
Stillstand der Motorstrom nur durch den Wicklungswiderstand
diktiert -- es liegt also im Mittel genau Nennspannung
an den Wicklungen an.

Die Motornennspannung ist aber i.d.R. NICHT die maximale
Ausgangsspannung der Endstufe.


> Eine U/f-Steuerung hat ja den Anspruch, das Drehmoment
> über den kompletten Drehzahlbereich so konstant wie
> möglich zu halten, ohne den Motor zu überlasten.

Nee. Das ist eine U/f-Steuerung, keine I/f-Steuerung.

Die Spannung bei niedrigen Drehzahlen muss (gegenüber
der Nennspannung) abgesenkt werden, weil sonst der
Motor überlastet wird -- aufgrund der niederigeren
Frequenz wirken die Wicklungsinduktivitäten weniger
strombegrenzend. Das ist beim DSAM exakt so wie beim
Schrittmotor.


> Schrittmotorendstufen haben aber genau das nicht: man
> hat (im Rahmen des möglichen Spannungsanstiegs) immer
> denselben Motorstrom, den man einprägt, egal ob bei 0Hz
> oder 5kHz. Daher fällt die Drehmoment/f-Kurve dann auch
> entsprechend ab.

Denk da nochmal drüber nach. Das Drehmoment ist proportional
zum Strom. Das Drehmoment fällt ab einer gewissen Drehzahl
ab, weil die Endstufe den Strom zwar konstanthalten WILL,
dies aber NICHT MEHR SCHAFFT -- da sind die Induktivitäten
dagegen.


> Doch, durchaus - denn damit ist bspw. das Argument
> hinfällig, dass die arme CNC-Steuerung in irgendeiner
> Art und Weise durch intelligente Servoantriebe entlastet
> werden müsste. Im Gegenteil macht es das einfacher,
> weil der komplette Antrieb innerhalb der Steuerung
> parametriert werden kann.

Hmm.
Ich nehme Deinen Standpunkt zur Kenntnis und werde die
Argumente überdenken; dennoch bin ich skeptisch.
Schließlich gibt es gute Gründe dafür, warum sich
außerhalb der Schrittmotorwelt EIN Umrichter nur um
EINEN Motor kümmert.


>> Wenn Du die 20kW-CNC-Fräse, die ich gerade vor meinem
>> geistigen Auge habe, bei identischer Parametern (Genauigkeit,
>> erreichbare Geschwindigkeiten usw.) auf Schrittmotoren
>> umrüsten wolltest, bräuchtest Du genauso ERHEBLICHES Wissen.
>
> Das ist aber nicht der Anwendungsfall für Schrittmotoren
> im CNC-Bereich. Niemand wird bei einer solchen Größe
> Schrittmotoren einsetzen oder die Maschine gar umrüsten.
> Weder ich noch Thorsten.

Moment.

Deine Aussage war sinngemäß, dass -- etwas überspitzt
formuliert -- Schrittantriebe von jedem Laien parametriert
werden könnten, wogegen Servosysteme erhebliches Fachwissen
erfordern würden.

Meine Entgegnung darauf ist das Beispiel mit der 20kW-Fräse:
Wenn Du die auf Schrittantriebe umrüsten willst, brauchst
Du GENAUSOVIEL Fachwissen.

Entscheidend ist also nicht primär die Art des Antriebs,
sondern die Komplexität der Maschine.


> Genau - oft treten sie gar nicht auf. Dafür spielt der
> Preis und einfache Einrichtung eben eine wichtige Rolle.

Ja -- den Teil Deines Argumentes habe ich ja verstanden.
Und auch der Einwand, dass Schrittantriebe typischerweise
keine Regelkreise sind, ist ein gutes Argument. Natürlich
ist eine rein gesteuerte Wirkkette leichter zu beherrschen
als ein Regelkreis.


> Das ändert aber nichts an der deutlich leichteren
> Einrichtung einer Steuerung gegenüber einer (bzw.
> mehreren) Regelschleife(n). Und darum geht es unter
> anderem.

Ja, das ist ein guter Punkt. Das akzeptiere ich.


>> Zum zweiten ist, wenn man mal ruhig darüber nachdenkt, der
>> ganze Blödsinn mit dem Mikroschrittbetrieb selbst auf Basis
>> der Takt/Richtungs-Schnittstelle lösbar. Die Zeitabstände der
>> letzten n Taktimpulse zueinander sind ja ein Maß für die
>> aktuelle Drehgeschwindigkeit des Motors -- also kann eine
>> Schrittmotorendstufe diesen Zeitabstand auch messen und daraus
>> sowohl die notwendige Motorspannung bestimmen als auch den
>> mutmaßlichen Verlauf den Drehfeldes in den nächsten Mikro-
>> sekunden extrapolieren.
>
> Das wird dann alles wieder teurer und man verschenkt Flexibilität.

Das sehe ich beides nicht so.

Der eine zusätzliche Mikrocontroller je Endstufe fällt preislich
nicht wirklich ins Gewicht, und die Flexibilität, den Motor
mit völlig beliebigen Signalfolgen ansteuern zu dürfen, hat
auch eine all-in-one-Steuerung nicht. Da ist eben die Physik
dagegen.


> Bei 3D-Druckern bspw. fährt man bei kurzen, nicht allzu
> schnellen Bewegungen ganz ohne Rampe. Wie sollte ein System
> also erkennen, dass nach diesem Schritt einfach keiner mehr
> folgt, obwohl ich noch eine gewisse Geschwindigkeit habe?
> Das müsste man auch wieder parametrieren usw.

So wie jetzt auch. Jetzt parametrierst Du die Motordaten
zentral in der Steuerung; bei separaten Umrichtern
parametrierst Du jeden Umrichter auf seinen Motor.

von Matthias (Gast)


Lesenswert?

Meine Fresse, was Ihr Euch alles um die Ohren haut. Es geht hier um 
einer GRBL Alternative! GRBL ist ein winziger g-Code interpreter, der 
Schrittmotore steuert.

So ziemlich jede kleine CNC läuft heute im Hobbybereich mit 
Schrittmotoren. Endstufen gibt es inzwischen ganz phantastische, die 
sogar merken, wenn der Schrittmotor blockiert wird und den Schritt nicht 
fahren kann. Alles, was die CPU noch macht ist STEP und DIR. Und das ist 
für ne ARM CPU auf nem 18 Euro Arduino Due nun wirklich kein Problem.

Die Berechnung der Rampen eingeschlossen, und zwar auf, vier, fünf oder 
sechs Achsen. Ja, dabei wird auch schon vorausschauend angepasst auf die 
folgenden G-Code Befehle. Un ddie Rampen sind auch schon lange nicht 
mehr trapezförmig, sondern wunderbare spline-Kurven.

Das alles gibt es gratis als OpenSource Lösung. Das muss man echt nicht 
mehr neu diskutieren.

Und wenn wirklich hier jemand eine CNC mit 2kW Servomotoren bewegen 
will, dann ist er echt im falschen Forum.

von Christopher J. (christopher_j23)


Lesenswert?

Matthias schrieb:
> Ja, dabei wird auch schon vorausschauend angepasst auf die
> folgenden G-Code Befehle. Un ddie Rampen sind auch schon lange nicht
> mehr trapezförmig, sondern wunderbare spline-Kurven.

Rein interessehalber: Bei welcher Firmware hat man was anderes als 
Trapez-Kurven?

von Nico W. (nico_w)


Lesenswert?

Smoothie z.B.

von Bernd K. (prof7bit)


Lesenswert?

Egon D. schrieb:
> Meine Aussage war lediglich, dass sich meiner unmaßgeblichen
> Meinung nach die Bahnsteuerung nicht um die Erzeugung eines
> stetigen Drehfeldes kümmern sollte

Tut sie auch nicht, wie kommst Du darauf? Sie erzeugt nur Schritte, das 
ist extrem einfach, das komplizierteste daran ist das Timing für die 
Rampen auszurechnen und das braucht man so oder so, und 1000 Schritte zu 
erzeugen ist kein bisschen komplizierter als nur 10 oder nur einen. Der 
Code dafür ist derselbe. Und wie daraus ein Drehfeld wird, darum kümmert 
sich der jeweilige Treiber des jeweiligen Motors. ich weiß nicht wie Du 
darauf kommst die Bahnsteuerung hätte irgendwas mit dem Drehfeld zu 
schaffen.

Und es ist um Größenordnungen einfacher einen einzelnen Rechteck-Puls 
für das nächste Mikro-Bahnsegment auszugeben (oder auch hundert Pulse 
für die nächten hundert Mikrosegmente) als für jedes Segment je ein 
Datenpaket für jeden Servomotor vorzubereiten und mit dem richtigen 
Timing an alle Motoren zu schicken und dann blind zu hoffen daß die 
Motortreiber für die Dauer dieses Segments halbwegs so fahren wie man 
das vorherberechnet hat.

: Bearbeitet durch User
von Jan L. (ranzcopter)


Lesenswert?

Nico W. schrieb:
> Smoothie z.B.

...was aber nun nicht wirklich auf einem „18 Euro Arduino Due“ läuft, 
afaik...
g2core käme da vielleicht eher in Frage.

von Nico W. (nico_w)


Lesenswert?

Auf einem AZSMZ mini für 42$ läuft Smoothie. Da muss man dann auch kein 
Shield mehr für zu kaufen. Anders als beim Due. Nur ein paar Treiber.

von Christopher J. (christopher_j23)


Lesenswert?

Nico W. schrieb:
> Smoothie z.B.

Ach daher also der Name? Ich dachte schon es wäre einfach nur wegen der 
potentiell höheren Stepfrequenz in Kombination mit mehr Mikroschritten 
pro Schritt. Muss ich mir mal anschauen wie sie das gelöst haben.

Ein kubischer Spline für den Geschwindigkeitsverlauf bedeutet ja, dass 
der Ruck, d.h. die Ableitung der Beschleunigung, eben noch stetig ist 
oder irre ich da?

Ansonsten gefiel mir Smoothieware vom Code her auf den ersten Blick eher 
nicht so gut. Da wird eben viel mit Ressourcen um sich geworfen und man 
merkt der Firmware an, dass die Smoothieboards eben nicht so verbreitet 
sind. Da hapert es an vielen Ecken. Habe aber auch so einen China-Klon 
rumfliegen (MKS SBASE 1.3). Hätte ich gewusst, dass es das auch 
gesockelt gibt, hätte ich eher das genommen.

von Nico W. (nico_w)


Lesenswert?

Hier steht ein wenig drüber[1]. Ich habe mich mit Smoothi allerdings nie 
näher beschäftigt.

Afaik haben die nicht nur Jerk. Sonder noch 3 weitere Stufen. (6th 
order)

[1]https://github.com/KevinOConnor/klipper/issues/57#issuecomment-378426939

von Christopher J. (christopher_j23)


Lesenswert?

So wie ich das sehe hat Smoothieware eine "ganz normale" Trapezform für 
den Geschwindigkeitsverlauf: 
https://github.com/Smoothieware/Smoothieware/blob/edge/src/modules/robot/Block.cpp#L135

Höhere Ordnungen für die Beschleunigung scheinen ja laut dem 
Klipper-Thread nicht so wahnsinnig viel zu bringen. Schade, ich hätte 
mir davon mehr erhofft.

von Egon D. (Gast)


Lesenswert?

Bernd K. schrieb:

> Egon D. schrieb:
>> Meine Aussage war lediglich, dass sich meiner unmaßgeblichen
>> Meinung nach die Bahnsteuerung nicht um die Erzeugung eines
>> stetigen Drehfeldes kümmern sollte
>
> Tut sie auch nicht, wie kommst Du darauf?

Doch, natürlich tut sie das -- zumindest zur Hälfte. Die Bahn-
steuerung muss nämlich für jeden einzelnen interpolierten
Phasenstrom einen Impuls ausgeben -- genau das sind ja die
"Mikroschritte".


> Und wie daraus ein Drehfeld wird, darum kümmert sich der
> jeweilige Treiber des jeweiligen Motors.

Der bestimmt die zugehörigen Stromamplituden, ja. Das ist
die "andere Hälfte". Soweit stimmt das.


> ich weiß nicht wie Du darauf kommst die Bahnsteuerung
> hätte irgendwas mit dem Drehfeld zu schaffen.

Steht oben.
Du kannst aufhören, den Verständnislosen zu spielen :)


> [...] als für jedes Segment je ein Datenpaket für jeden
> Servomotor vorzubereiten und mit dem richtigen Timing
> an alle Motoren zu schicken und dann blind zu hoffen daß
> [...]

So ein Unsinn.

Wie Du ja zweifellos weisst, ist das Gegenteil richtig:
Der Schrittantrieb ist eine offene Steuerkette, d.h. beim
Schrittmotor wird "blind gehofft", dass er die geforderte
Position auch einnimmt.

Der Servoantrieb dagegen ist ein Regelkreis, d.h. er kämpft
um die Position mit allem, was die Endstufen hergeben.

Es wäre bei Bedarf auch sehr leicht möglich, eine zeitliche
Synchronisation mehrerer Antriebe durch einen gemeinsamen
Takt zu erreichen -- jedes Orchester macht vor, wie so etwas
geht.


> die Motortreiber für die Dauer dieses Segments halbwegs
> so fahren wie man das vorherberechnet hat.

Ganz ehrlich: Das ist FUD, das eines Technikers nicht
würdig ist.


Ich habe mich nur an dieser Diskussion beteiligt, weil u.a.
bemängelt wurde, dass die mit GRBL erreichbaren Schritttakte
nicht hoch genug sind. Dieses Problem tritt aber überhaupt
NUR auf, weil die Bahnsteuerung einen Teil der Drehfeld-
erzeugung (="Mikroschrittbetrieb") mit erledigen muss. Dieser
Fakt stört mich schon seit langem, obwohl -- oder gerade
weil -- das in der Schrittmotorwelt allgemein so üblich zu
sein scheint.

Dank Thorsten und Christoph ist mir inzwischen auch eine
Lösung für dieses Problem eingefallen.

von Christopher J. (christopher_j23)


Lesenswert?

Ich finde nicht einmal die Erzeugung der Schrittimpulse durch die 
Bahnsteuerung so unglücklich, sondern viel mehr die Tatsache, dass die 
Motortreiber typischerweise direkt neben dem Mikrocontroller sitzen, 
welcher diese Impulse ausspuckt und dann Meterlange Kabel quer durch den 
Raum gezogen werden auf denen dann Impulsartige Ströme von mehreren 
Ampere fließen. Gerade aus EMV-Sicht wäre es viel besser, die Endstufe 
möglichst nahe am Motor anzubringen und diesem einen eigenen Controller 
zu spendieren, der dann etwa über CAN oder RS485 mit der Bahnsteuerung 
kommuniziert. Gerade mit dem CAN-Bus sollte die Synchronisierung der 
verschiedenen Achsen auch möglich sein. Die Kosten für einen 
zusätzlichen Controller halten sich auch sehr in Grenzen. Ein 
STM32F042F6 im TSSOP20 sollte dafür schon ausreichen und der kostet ca. 
2€ in Einzelstückzahlen bei Mouser, ist also eigentlich nicht der Rede 
Wert, wenn man an die Gesamtkosten von typischen CNC-Maschinen denkt.

von Egon D. (Gast)


Lesenswert?

Christopher J. schrieb:

> Ich finde nicht einmal die Erzeugung der Schrittimpulse
> durch die Bahnsteuerung so unglücklich, sondern viel mehr
> die Tatsache, dass die Motortreiber typischerweise direkt
> neben dem Mikrocontroller sitzen, welcher diese Impulse
> ausspuckt und dann Meterlange Kabel quer durch den
> Raum gezogen werden auf denen dann Impulsartige Ströme
> von mehreren Ampere fließen.

Hmm. In der Tat. Das Problem hatte ich noch gar nicht
auf dem Schirm.


> Gerade aus EMV-Sicht wäre es viel besser, die Endstufe
> möglichst nahe am Motor anzubringen und diesem einen
> eigenen Controller zu spendieren,

Ja. Bei anderen Antrieben macht man es ja auch so.


> der dann etwa über CAN oder RS485 mit der Bahnsteuerung
> kommuniziert.

Ich denke inzwischen, dass das auch mit einer leicht
gepimpten STEP/DIR-Schnittstelle geht. Die Idee ist
aber noch nicht ganz ausgegoren. Hmm.

von Bernd K. (prof7bit)


Lesenswert?

Egon D. schrieb:
>>> Meine Aussage war lediglich, dass sich meiner unmaßgeblichen
>>> Meinung nach die Bahnsteuerung nicht um die Erzeugung eines
>>> stetigen Drehfeldes kümmern sollte
>>
>> Tut sie auch nicht, wie kommst Du darauf?
>
> Doch, natürlich tut sie das -- zumindest zur Hälfte.

nein das tut sie offensichtlich nicht, sie erzeugt einen hoch 
aufgelösten Zähltakt sonst nichts.

Und es ist doch für diese Betrachtung völlig belanglos wo die Schritte 
zum ersten Mal zu Tage treten, die Steuerung des Servomotors wird wenn 
sie von A nach B fahren soll auch einen Timer laufen lassen müssen der 
in diskreten Schritten die PWM-zeiten ändert, möglichst hoch aufgelöst. 
Da sind sie dann wieder Deine verhaßten Mikroschritte denn das geht 
alles digital und gequantelt. Nur diesmal hat die Bahnsteuerung keine 
Kontrolle über das Timing der Schritte, wenn sie sie selber erzeugt aber 
schon.

von Egon D. (Gast)


Lesenswert?

Bernd K. schrieb:

> Egon D. schrieb:
>>>> Meine Aussage war lediglich, dass sich meiner
>>>> unmaßgeblichen Meinung nach die Bahnsteuerung
>>>> nicht um die Erzeugung eines stetigen Drehfeldes
>>>> kümmern sollte
>>>
>>> Tut sie auch nicht, wie kommst Du darauf?
>>
>> Doch, natürlich tut sie das -- zumindest zur Hälfte.
>
> nein das tut sie offensichtlich nicht, sie erzeugt
> einen hoch aufgelösten Zähltakt sonst nichts.

Nein, das ist natürlich falsch.

Das ist nicht IRGENDEIN beliebiger Zähltakt, der da
erzeugt wird. Die Bahnsteuerung erzeugt Takt für Takt
EXAKT die Zeitpunkte, in denen das Drehfeld bestimmte
Werte einnehmen soll. Das Timing, das die Bahnsteuerung
erzeugt, ist IN JEDER EINZELHEIT das Timing, dem das
Drehfehld folgt.

Die korrespondierenden Phasenströme bestimmt i.d.R.
der Schrittmotortreiber selbst; das hatten wir bereits
geklärt.


> Und es ist doch für diese Betrachtung völlig belanglos
> wo die Schritte zum ersten Mal zu Tage treten, [...]

Nein, das ist aus verschiedenen Gründen nicht belanglos.

Spielt aber auch keine Rolle. Mir gefällt die übliche
Systemstruktur nicht, und diese Diskussion hat mir geholfen,
eine Abhilfe zu finden. Ich freue mich darüber, aber ich
muss niemanden mit meiner Idee zwangsbeglücken. Wer nicht
will, der hat schon.

von Bernd K. (prof7bit)


Lesenswert?

Christopher J. schrieb:
> Ich finde nicht einmal die Erzeugung der Schrittimpulse durch die
> Bahnsteuerung so unglücklich, sondern viel mehr die Tatsache, dass die
> Motortreiber typischerweise direkt neben dem Mikrocontroller sitzen,

Also bei mir sind das typischerweise schwere schwarz eloxierte 
Aluminiumklötze mit Kühlrippen, jeder einzelne so groß wie zwei 
Zigarettenschachteln und die sind irgendwo neben dem Netzteil aufs 
Metall geschraubt. Die Platine sitzt ganz woanders und die Schritte 
werden mit 5V über geschirmte Leitungen an die Treiber herangeführt wo 
sie auf Optokoppler-Eingänge treffen. So sieht das typischerweise aus.

Du kannst es nicht dem Prinzip Schrittmotor ankreiden daß irgendeiner 
das in einer konkreten Anwendung mit wahrscheinlich winzigen 
Spielzeugmotörchen zufällig mal anders konstruiert hat. Dort wo dicke 
Ströme fließen sitzen auch dicke Treiber an geeigneter Stelle.

: Bearbeitet durch User
von Bernd K. (prof7bit)


Lesenswert?

Egon D. schrieb:
>> nein das tut sie offensichtlich nicht, sie erzeugt
>> einen hoch aufgelösten Zähltakt sonst nichts.
>
> Nein, das ist natürlich falsch.
>
> Das ist nicht IRGENDEIN beliebiger Zähltakt, der da
> erzeugt wird. Die Bahnsteuerung erzeugt Takt für Takt
> EXAKT die Zeitpunkte, in denen das Drehfeld bestimmte
> Werte einnehmen soll. Das Timing, das die Bahnsteuerung
> erzeugt, ist IN JEDER EINZELHEIT das Timing, dem das
> Drehfehld folgt.

Natürlich soll es dem Timing der Schritte folgen, dazu sind sie ja da! 
Deshalb ist die Bahn mit Schrittmotoren auch genauer und feiner 
aufgelöst und die Steuerung hat weniger zu tun weil das exakte Timing 
als Nebenprodukt ihrer Berechnungen der Bahnsegmente sowieso anfällt. 
Dann muss man nur noch eine Variable ändern und die Segmente werden 
beliebig klein, die Berechnung wird dadurch nicht schwerer.

Schrittmotorsteuerung ist einfacher zu implementieren. Das war der 
Streitpunkt. Du hast behauptet sie wäre schwieriger, aber das Gegenteil 
ist der Fall.

: Bearbeitet durch User
von Egon D. (Gast)


Lesenswert?

Bernd K. schrieb:

> Schrittmotorsteuerung ist einfacher zu implementieren.
> Das war der Streitpunkt. Du hast behauptet sie wäre
> schwieriger, aber das Gegenteil ist der Fall.

Nun... da ich keine der Aussagen, die Du mir in den Mund
legst, tatsächlich gemacht habe, hat es keinen Zweck, dass
ich weiter mit Dir diskutiere.

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


Lesenswert?

Hallo Egon,

Egon D. schrieb:
> Bernd K. schrieb:
>
>> Egon D. schrieb:
>>>>> Meine Aussage war lediglich, dass sich meiner
>>>>> unmaßgeblichen Meinung nach die Bahnsteuerung
>>>>> nicht um die Erzeugung eines stetigen Drehfeldes
>>>>> kümmern sollte
>>>>
>>>> Tut sie auch nicht, wie kommst Du darauf?
>>>
>>> Doch, natürlich tut sie das -- zumindest zur Hälfte.
>>
>> nein das tut sie offensichtlich nicht, sie erzeugt
>> einen hoch aufgelösten Zähltakt sonst nichts.
>
> Nein, das ist natürlich falsch.
>
> Das ist nicht IRGENDEIN beliebiger Zähltakt, der da
> erzeugt wird. Die Bahnsteuerung erzeugt Takt für Takt
> EXAKT die Zeitpunkte, in denen das Drehfeld bestimmte
> Werte einnehmen soll. Das Timing, das die Bahnsteuerung
> erzeugt, ist IN JEDER EINZELHEIT das Timing, dem das
> Drehfehld folgt.

Jetzt lös dich doch endlich mal von deinem Drehfeld. Der Unterschied 
zwischen einer "echten" CNC-Bahnsteuerung und einer Soft-CNC für 
Schrittmotoren lässt sich ganz einfach auf den Punkt bringen:
Die Bahnsteuerung arbeitet mit einem festen Zeittakt und variablen 
Wegsegmenten. Die Soft-CNC mit Takt-/Richtungsausgabe arbeitet mit 
festen Wegsegmenten und variablen Zeitabständen. Am Ende ist das aber 
das gleiche. Beide Varianten sind bemüht, die Abstände so klein wie 
möglich zu machen, um eine hohe Positionstreue zu erreichen.

Mit freundlichen Grüßen
Thorsten Ostermann

von Bernd K. (prof7bit)


Lesenswert?

Egon D. schrieb:
> Nun... da ich keine der Aussagen, die Du mir in den Mund
> legst, tatsächlich gemacht habe, hat es keinen Zweck, dass
> ich weiter mit Dir diskutiere.

Ach komm, jetzt versucht Dich nicht dreist aus der verlorenen Diskussion 
herauszulügen.

Du hast selbst behauptet die Bahnsteuerung müsse [wörtlich zitiert] 
"motorspezifischen Krempel erledigen" was völliger Nonsens ist denn die 
Schrittmotorsteuerung hat mit dem Motor gar nichts zu schaffen, sie 
errechnet mit hoher zeitlicher und räumlicher Auflösung die Sollposition 
aller Achsen und übermittelt sie mit der selben Auflösung in Echtzeit an 
die Treiber. Das selbe macht die Steuerung für Servomotoren, nur das 
Protokoll der Übermittlung an die Treiber und dessen zeitliche Auflösung 
ist eine andere.

Um den Inhalt einer einzigen Integer-Variablen [die Sollposition] die 
sich nur stetig ändern kann [keine Sprünge macht] in Echtzeit von A nach 
B zu übertragen gibt es keine einfachere und effektivere Schnittstelle 
als Takt/Richtung. Das ist nun mal so, da beißt die Maus keinen Faden 
ab.

Dem Schrittmotortreiber steht es im Übrigen völlig frei noch einen 
Dreh-Encoder auszuwerten und die Ist-Position zu erfassen und mit der 
Soll-Position zu vergleichen. Solche Servo-Motoren mit 
Schrittmotor-Interface kann man fix und fertig kaufen, die lassen sich 
einfacher und präziser ansteuern.

Antworte nicht auf das Posting denn ich werde es nicht mehr lesen, ich 
habe wichtigeres zu tun.

: Bearbeitet durch User
von Egon D. (Gast)


Lesenswert?

Thorsten O. schrieb:

> Jetzt lös dich doch endlich mal von deinem Drehfeld.

Nein, gerade das möchte ich nicht.
Seit ich bemerkt habe, dass Schrittmotoren lediglich
spezielle Synchronmotoren sind, beschreibe ich sie
auch mit den für Synchronmotoren üblichen Begriffen.
Das liefert mir interessante Einblicke.

Und -- ja, mir ist bewusst, dass das ein Außenseiter-
standpunkt ist, und dass mich das gegebenenfalls zur
Zielscheibe hasserfüllter Anfeindungen macht.

Ich möchte TROTZDEM an meiner Betrachtungsweise fest-
halten.


> Der Unterschied zwischen einer "echten" CNC-Bahnsteuerung
> und einer Soft-CNC für Schrittmotoren lässt sich ganz
> einfach auf den Punkt bringen: Die Bahnsteuerung arbeitet
> mit einem festen Zeittakt und variablen Wegsegmenten.
> Die Soft-CNC mit Takt-/Richtungsausgabe arbeitet mit
> festen Wegsegmenten und variablen Zeitabständen.

Ja, soweit Zustimmung.


> Am Ende ist das aber das gleiche.
> Beide Varianten sind bemüht, die Abstände so klein wie
> möglich zu machen, um eine hohe Positionstreue zu
> erreichen.

Jein.

Das Streben nach POSITIONSTREUE endet erstmal bei
Vollschritten, weil Fehler in dieser Größenordnung
sowieso im System auftreten.

Die weitere Zerlegung der Bahn in Mikroschritte dient
primär der LAUFRUHE der Antriebe -- und diese Aufgabe
ist nach meiner Ansicht besser im Motorumrichter als
in der Bahnsteuerung aufgehoben.

Es geht mir nicht darum, WAS im System passiert, sondern
darum, WER welche Teilaufgabe übernimmt.

Ich war bisher der Meinung, dass sich mein Ziel auf Basis
der "dämlichen" und "blödsinnigen" STEP/DIR-Schnittstelle
nicht erreichen lässt, aber das ist natürlich Unsinn. Ich
war nur genauso betriebsblind wie die Schrittmotorleute,
die ich kritisiere.

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


Lesenswert?

Hallo Egon,

Egon D. schrieb:
> Thorsten O. schrieb:
>
>> Jetzt lös dich doch endlich mal von deinem Drehfeld.
>
> Nein, gerade das möchte ich nicht.
> Seit ich bemerkt habe, dass Schrittmotoren lediglich
> spezielle Synchronmotoren sind, beschreibe ich sie
> auch mit den für Synchronmotoren üblichen Begriffen.
> Das liefert mir interessante Einblicke.

Das kannst du gerne machen, ich sehe das durchaus ähnlich. Das hat aber 
trotzdem nichts mit der hier diskutierten Fragestellung und der 
Takt-/Richtungsschnittstelle zu tun. Du vermischt hier permanent 
verschiedene Themen.

Mit freundlichen Grüßen
Thorsten Ostermann

: Bearbeitet durch User
von Bernd K. (prof7bit)


Lesenswert?

Egon D. schrieb:
> Die weitere Zerlegung der Bahn in Mikroschritte dient
> primär der LAUFRUHE der Antriebe -- und diese Aufgabe
> ist nach meiner Ansicht besser im Motorumrichter als
> in der Bahnsteuerung aufgehoben.

Die Zerlegung in Mikroschritte ist keine zusätzliche Aufgabe, dazu muß 
keine einzige zusätzliche Zeile Code geschrieben werden, nur ein 
Parameter wird geändert.

Takt/Richtung ist die effektivste und gleichzeitig einfachste Art die 
errechnete Änderung der Sollposition in beliebig hoher räumlicher und 
zeitlicher Auflösung an den Treiber zu übermitteln, es existiert 
schlicht und einfach keine andere Schnittstelle die das gleiche leisten 
kann ohne wesentlich komplexer oder aufwendiger zu werden.

Du kannst darüberhinaus auch davon ausgehen daß diejenigen die sich das 
ausgedacht haben durchaus nicht auf der Nudelsuppe dahergeschwommen sind 
und nur auf jemanden wie Dich gewartet haben.

von Egon D. (Gast)


Lesenswert?

Thorsten O. schrieb:

>> Seit ich bemerkt habe, dass Schrittmotoren lediglich
>> spezielle Synchronmotoren sind, beschreibe ich sie
>> auch mit den für Synchronmotoren üblichen Begriffen.
>> Das liefert mir interessante Einblicke.
>
> Das kannst du gerne machen, ich sehe das durchaus
> ähnlich. Das hat aber trotzdem nichts mit der hier
> diskutierten Fragestellung und der Takt-/Richtungs-
> schnittstelle zu tun.

Hmm... vielleicht haben wir dann unterschiedliche
Fragestellungen vor Augen.

Die ganz ursprünglichen Schrittantriebe waren ja,
soweit ich das sehe, tatsächlich einfach und rustikal
ausgeführt: Konstantspannung, vier Leistungsschalter,
Blockkommutierung... das war's.

Im Laufe der weiteren Entwicklung ist dann die Schritt-
motorendstufe immer mehr zu einem vollwertigen Umrichter
geworden: Man hat die Sternschaltung der Wicklungen
("unipolare Ansteuerung") aufgegeben, um den Motor besser
auszunutzen, man hat eine U/f-Regelung eingeführt
("Stromchopperbetrieb"), um bei höheren Drehzahlen noch
vernünftiges Drehmoment zu erreichen, und man geht von
der Blockkommutierung ab und verwendet statt dessen eine
Sinuskommutierung ("Mikroschrittbetrieb").

Das einzige, was ich mir jetzt noch wünsche, das ist,
dass die Sinuskommutierung, d.h. die Erzeugung des Dreh-
feldes, komplett in die Verantwortung des Umrichters
gelegt wird.


> Du vermischt hier permanent verschiedene Themen.

Welche "verschiedenen Themen" meinst Du?

Ich war bis neulich tatsächlich der Meinung, dass die
STEP/DIR-Schnittstelle die Wurzel des Übels ist, weil
sie (scheinbar) die zwingende Folge hat, dass die Bahn-
steuerung Mikroschritte erzeugen muss.

Es muss mir doch aber gestattet sein, meine Meinung
aufgrund guter Argumente zu ändern :)

von Egon D. (Gast)


Lesenswert?

Bernd K. schrieb:

> Egon D. schrieb:
>> Die weitere Zerlegung der Bahn in Mikroschritte dient
>> primär der LAUFRUHE der Antriebe -- und diese Aufgabe
>> ist nach meiner Ansicht besser im Motorumrichter als
>> in der Bahnsteuerung aufgehoben.
>
> Die Zerlegung in Mikroschritte ist keine zusätzliche
> Aufgabe, dazu muß keine einzige zusätzliche Zeile Code
> geschrieben werden, nur ein Parameter wird geändert.

Das habe ich auch nicht behauptet. Liest Du überhaupt,
was ich schreibe?

Meine Aussagen waren, dass
1. mir die Systemstruktur nicht gefällt weil
2. die Bahnsteuerung ungefähr 10fach bis 100fach soviele
   Bahnpunkte berechnen muss als ohne Mikroschrittbetrieb.

Beide Aussagen halte ich aufrecht.


> Takt/Richtung ist die effektivste und gleichzeitig
> einfachste Art die errechnete Änderung der Sollposition
> in beliebig hoher räumlicher und zeitlicher Auflösung
> an den Treiber zu übermitteln, es existiert schlicht und
> einfach keine andere Schnittstelle die das gleiche leisten
> kann ohne wesentlich komplexer oder aufwendiger zu werden.

Liest Du überhaupt, was ich schreibe?

Dir ist offenbar komplett entgangen, dass ich meine Meinung
zur STEP/DIR-Schnittstelle schon vor Tagen geändert habe,
und das auch in meinen Antworten an Thorsten und Christoph
zum Ausdruck gebracht habe.

Du kannst Dich wieder abregen.


> Du kannst darüberhinaus auch davon ausgehen daß diejenigen
> die sich das ausgedacht haben durchaus nicht auf der
> Nudelsuppe dahergeschwommen sind und nur auf jemanden wie
> Dich gewartet haben.

Und Du kannst davon ausgehen, dass ich in fast fünfzig
Lebensjahren gelernt habe, solche unsinnigen Anfeindungen
zu ignorieren.

Die Tatsache, dass auch heutzutage immer noch Erfindungen
gemacht werden, beweist, dass es immer noch gute Ideen gibt,
die bisher schlicht und einfach übersehen wurden.

Ich freue mich, dass mir jetzt eine Lösung für ein Problem
eingefallen ist, das mir schon seit Jahrzehnten im Kopf
herumgeht -- aber ich werde ganz sicher nicht versuchen, sie
Leuten aufzudrängen, die sie nicht haben wollen (=Dir).

von Bernd K. (prof7bit)


Lesenswert?

Egon D. schrieb:
> Meine Aussagen waren, dass
> 1. mir die Systemstruktur nicht gefällt weil
> 2. die Bahnsteuerung ungefähr 10fach bis 100fach soviele
>    Bahnpunkte berechnen muss als ohne Mikroschrittbetrieb.

Die Bahnsteuerung enthält bereits den Code um Bahnpunkte zu errechnen 
und muß ihn auch weiterhin enthalten, Teile davon müssten im 
Motortreiber unnötig dupliziert werden um zwischen den Vollschritten die 
nun fehlenden Mikroschritte selbst zu interpolieren, das System würde 
insgesamt komplexer werden ohne jeglichen Vorteil. Die Bahnsteuerung 
möchte den Motor auch zwischen zwei Vollschritten positionieren 
können, das wäre unmöglich wenn Vollschritte die höchstmögliche 
Auflösung wären.

: Bearbeitet durch User
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.