Hallo zusammen Meine Studienzeit liegt schon etwas zurück, daher verzeiht mir die Frage. Wie werden die Servoantriebe bei G02 und G03 angesteuert? Über „normale“ Sinus und Cosinus-Berechnung bekommt man ja die Koordinaten. Nur beschleunigen da die Achsen immer und bremsen wieder. Das Ganze ruckelt dann und ist für die Mechanik sicher auch nicht ideal. Der Bresenham-Algorithmus bringt bei Stepper-Steuerungen sicher viel, aber bei einer richtigen SPS kann man ja mit realen Achseneinheiten (schnell) rechnen. Werden für eine konstante Bahngeschwindigkeit die Achsbeschleunigungen (welche Max-Geschwindigkeit wird denn so angegeben?) oder mit berechneten Geschwindigkeiten und gleichen Beschleunigungen gearbeitet? Ich weiss, dass fast jede Motion-Bibliothek mit CNC-Lizenzen das beinhaltet, aber eventuell geht das ja „einfach“ selber zu coden. Besten Dank für die Nachhilfe. Gruss Patrick
Die Geschwindigkeit, Beschleunigung und Ruck sind ja Ableitungen der Position. Entsprechendes gilt für Sin, Cos, -Sin und -Cos. Wenn einmal die Bahngeschwindigkeit erreicht ist, kann diese im Prinzip beibehalten werden, was dann zu sin/cos-förmigen Geschwindigkeits- und Beschleunigungsprofilen an den Achsen führt. Aber vorsicht: Je kleiner der Radius der Bewegung, desto höher fallen die Geschwindigkeiten und Beschleunigungen der Achsen aus, wenn die gleiche Bahngeschwindigkeit fefahren werden soll. Irgendwann erreicht man dann die gewünschte Bahngeschwindigkeit nicht mehr. Mit freundlichen Grüßen Thorsten Ostermann
Also wenn Du mit professionellen CNC-Maschinen Kurven fährst, machen die das mit so hoher Auflösung, daß Du die einzelnen Schritte nicht in der Mechanik spürst. Es ist auch nicht ganz so einfach, nur die reine Kurve zu fahren. Da kommen noch Werkzeugkorrekturen (z.B. Radius der Schneidplatte) hinzu und man fährt auch mit einer Kurve an das Werkstück heran und wieder heraus.
Was hast du für ein praktisches Problem? Einiges passt nicht zusammen. Servo, Schrittmotoren, "richtige SPS" ??? Ob Servos oder Schrittmotoren, die Steuerung macht das schon. Und mach dir mal keine Sorgen um die Mechanik. Patrick B. schrieb: > Ich weiss, dass fast jede Motion-Bibliothek mit CNC-Lizenzen das > beinhaltet, aber eventuell geht das ja „einfach“ selber zu coden. Nicht umsonst kosten die Geld. Du willst also den Post-Prozessor selber machen. Schwierig, dazu muß man aber die Maschine und das, was es werden soll, wissen.
Patrick B. schrieb: > aber eventuell geht das ja „einfach“ selber zu coden. Gut ? Nein. Ein guter Algorithmus macht einen echten Kreis statt angenähertes Vieleck mit Geradenstückchen und kann auch innerhalb des Kreises bremsen und beschleunigen, wobei die effektive Fräser-Geschwindigkeit nicht bei 45 Grad um 1.4 x schneller sein wird als bei 0 und 90 Grad. Diesen guten Algorithmus findet man selten, noch seltener on-the-fly berechnet.
Michael B. schrieb: > wobei die effektive Fräser-Geschwindigkeit nicht bei > 45 Grad um 1.4 x schneller sein wird als bei 0 und 90 Grad. Es gibt auch noch Wasserstrahl, Laser, sonstnochwas... Michael B. schrieb: > Ein guter Algorithmus macht einen echten Kreis statt angenähertes > Vieleck mit Geradenstückchen und kann auch innerhalb des Kreises bremsen Ohne nachzusehen sind das aus meiner Erinnerung so G30 f.f.??? Also richtiges Kreisbogenfahren.
moin, das selber zu berechnen ist nicht so das Problem. Anbei eine Demo dazu. Der MC der CNC ( STM32F405 ) rechnet mit dem selben Programm, ist also die Anzeige im Demo "falsch", wird auch die Fräse "falsch" arbeiten. Falsch bedeutet hier, es fehlen Koordinaten oder Übergänge zwischen 2 Abschnitten. Hinweis: G41,G42 festlegung Radiuskorrektur G4x kann eingestellt werden VG Pieter
michael_ schrieb: > Was hast du für ein praktisches Problem? 2 Achsen sollen so angefahren werden, dass ein Kreis entsteht (wie bei den CNC Fräser). > Einiges passt nicht zusammen. > Servo, Schrittmotoren, "richtige SPS" ??? Wieso? Servo-Achsen und SPS (B&R) sind vorhanden. Viele Hobby-Projekte in diesem Bereich setzten halt Schrittmotoren ein, weshalb die auffindbaren Algorithmen und Berechnungen dafür gedacht sind. > Ob Servos oder Schrittmotoren, die Steuerung macht das schon. Ja eben. Aber Position, Geschwindigkeit und Beschleunigung müssen vorgegeben werden. Und um diese Werte geht es mir. Michael B. schrieb: > Diesen guten Algorithmus findet man selten, noch seltener on-the-fly > berechnet. Ok, dann werde ich mir die Motion-Bibliotheken und Lizenzkosten mal anschauen.
Pieter schrieb: > das selber zu berechnen ist nicht so das Problem Hi Pieter, magst du die Code hier posten?
Patrick B. schrieb: > Wie werden die Servoantriebe bei G02 und G03 angesteuert? Über „normale“ > Sinus und Cosinus-Berechnung bekommt man ja die Koordinaten. Nur > beschleunigen da die Achsen immer und bremsen wieder. Das Ganze ruckelt > dann und ist für die Mechanik sicher auch nicht ideal schaue da mal rein... https://github.com/grbl/grbl
Michael B. schrieb: > Diesen guten Algorithmus findet man selten, noch seltener on-the-fly > berechnet Das läßt sich eigentlich recht problemlos auf einem kleinen 8-Bitter mit ordentlicher Auflösung berechnen. Ohne Division oder trigonometrische Funktionen. Der Algorithmus dazu heißt "digital differential Analyzer". Taugt für lineare und Kreisinterpolation. Tatsächlich sind die I- und J-Parameter der Kreisinterpolation im G-Code exakt so gestrickt, daß sie ohne Umrechnung als Eingang für den Algorithmus taugen.
:
Bearbeitet durch User
Michael B. schrieb: > Ein guter Algorithmus macht einen echten Kreis statt angenähertes > Vieleck mit Geradenstückchen und kann auch innerhalb des Kreises bremsen > und beschleunigen, wobei die effektive Fräser-Geschwindigkeit nicht bei > 45 Grad um 1.4 x schneller sein wird als bei 0 und 90 Grad. Jede reale Maschine die digital geregelt wird diskretisiert das in (mehr oder weniger) Geradenstücken, auch wenn diese nur jeweils nur eine Millisekunde (mal aktueller Geschwindigkeit) lang sind. Es kommt also immer ein Vieleck heraus.
Patrick B. schrieb: > Servo-Achsen und SPS (B&R) sind vorhanden. Viele Hobby-Projekte in > diesem Bereich setzten halt Schrittmotoren ein, weshalb die auffindbaren > Algorithmen und Berechnungen dafür gedacht sind. > >> Ob Servos oder Schrittmotoren, die Steuerung macht das schon. > > Ja eben. Aber Position, Geschwindigkeit und Beschleunigung müssen > vorgegeben werden. Und um diese Werte geht es mir. www.linuxcnc.org www.machinekit.org Die Bewegungsplaner dort drin sind nicht mehr ganz trivial, wenn man mit einem debugger umgehen kann und C versteht ist das alles aber zu verfolgen. Kann man als Anregung nehmen oder bei passender Kommunikationsmöglichkeit mit den Servoachsen auch als direkt als Steuerung.
rµ schrieb: > Jede reale Maschine die digital geregelt wird > diskretisiert das in (mehr oder weniger) > Geradenstücken, [...] Das ist aber kein Naturgesetz. Würde man eine Kaskade analoger Integratoren verwenden, würde die Maschine eine stetige Polynom-Interpolation in der analogen Hardware machen. Zusätzliche Fehler durch die analogen Komponenten müsste man durch entsprechende Regelkreise vermeiden.
Patrick B. schrieb: >> Ob Servos oder Schrittmotoren, die Steuerung >> macht das schon. > > Ja eben. Aber Position, Geschwindigkeit und > Beschleunigung müssen vorgegeben werden. Und > um diese Werte geht es mir. Sind sie doch auch: Durch die Werkstückkontur, die gewählten Schnittwerte und die Leistungsgrenzen der Maschine.
Patrick B. schrieb: >> Einiges passt nicht zusammen. >> Servo, Schrittmotoren, "richtige SPS" ??? > > Wieso? > Servo-Achsen und SPS (B&R) sind vorhanden. Viele Hobby-Projekte in > diesem Bereich setzten halt Schrittmotoren ein, weshalb die auffindbaren > Algorithmen und Berechnungen dafür gedacht sind. Gut zu wissen. Ist da eine Steuerung dran und mit was wurde die bisher gefüttert. Vielleicht ist alles ganz einfach.
Egon D. schrieb: > rµ schrieb: >> Jede reale Maschine die digital geregelt wird diskretisiert das in (mehr >> oder weniger) Geradenstücken, [...] > > Das ist aber kein Naturgesetz. > Würde man eine Kaskade analoger Integratoren verwenden, würde die > Maschine eine stetige Polynom-Interpolation in der analogen Hardware > machen. Zusätzliche Fehler durch die analogen Komponenten müsste man > durch entsprechende Regelkreise vermeiden. Diese Aussage schlage ich direkt für den Oxymoron-Award vor ;) Patrick B. schrieb: > Wie werden die Servoantriebe bei G02 und G03 angesteuert? Über „normale“ > Sinus und Cosinus-Berechnung bekommt man ja die Koordinaten. Nur > beschleunigen da die Achsen immer und bremsen wieder. Das Ganze ruckelt > dann und ist für die Mechanik sicher auch nicht ideal. Wenn irgendetwas ruckelt ist was faul. Was soll denn ruckeln? Mit "Servoantrieb" meinst du die dickeren Synchronmotoren wie sie typischerweise in CNC-Maschinen verbaut sind?
Ich glaube er kennt keine dicken CNC-Maschinen, sondern nur Schrittmotoren.
Er hat doch eine Servo-Maschine! Lese doch alles.
Patrick B. schrieb: > Servo-Achsen und SPS (B&R) sind vorhanden. Schau dir mal die kurvensteuerung und elektronische Getriebe an. Setze eine virtuelle achse auf und kopple die beiden servos dann mit einer sin und cosin Kurve drauf. Die benötigten kurvenstücke kannst du, bei bedarf auch on the fly berechnen lassen Sg
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.