| Passwort vergessen?
Sie sind nicht angemeldet.  Anmelden

Sprache auswählen:

myhobby-CNC - Kunden Supportforum

Umkehrspiel messen & kompensieren
 1
16.12.16 15:56
Masc99 
Umkehrspiel messen & kompensieren

Hallo liebe CNC-Gemeinde,

wie immer möchte ich meine kleine SO2 an die Grenzen der Genauigkeit treiben, deshalb habe ich mir ein paar Dinge zum Messen und Kompensieren des Umkehrspiels (Backlash) überlegt. Bevor ich da jetzt in den Weihnachtsferien viel Zeit reinstecke, wollte ich meine Gedanken mit euch teilen und vertraue wie immer auf euer konstruktives Feedback.

Umkehrspiel messen:

Hierfür würde sich die Probe-Funktion (G38.x) ja anbieten:

Theorie:

G38.2 fährt zur Probe und bleibt bei Kontakt stehen
G38.4 fährt von der Probe weg und bleibt stehen sobald der Kontakt verloren geht.

Wenn man also überhaupt kein Umkehrspiel hat, sollte der G38.4-Befehl theoretisch nach einem Schritt des Motors stehen bleiben. Richtig?

Praxis:

- die Fräse steht bei (0/0) (bei mir vorne links)
- jetzt stelle ich ein Stück rechts davon eine schweres Stück leitendes Metall das mit dem Probe-Kontakt verbunden ist. (Das andere Ende hängt natürlich am Fräser)
- mit G38.2 X100 F50 fahre ich gaaaanz langsam nach rechts, bis ich Kontakt mit dem Metallblock habe. Gaaanz langsam deshalb, damit der Bremsweg möglichst wenig Auswirkung hat)
- X-Position wird notiert
- wenn ich jetzt mit G38.4 X-100 F50 wieder gaaanz langsam vom Metallblock wegfahre, müsste der verfahrene Weg ja doch ziemlich genau dem Umkehrspiel entsprechen? Richtig? (Das ist der Punkt wo ihr sagt "Ja, gute Idee" oder "Nein, das stimmt nicht weil...")

Das kann man dann für alle 3 Achsen wiederholen und hat sein Umkehrspiel gemessen, aber was macht man jetzt damit?

Umkehrspiel kompensieren:

Ich gehe jetzt für das Beispiel mal davon aus, dass wir in allen Achsen ein Umkehrspiel von 0,1mm gemessen haben.

Im GCode kann man ja erkennen ob ein Richtungswechsel stattfindet oder ob in die gleiche Richtung weitergefahren wird:

G1 G90 X100 => Ausgehend von (0/0) wird nach rechts gefahren (->)
G1 G90 X200 => gleiche Richtung (->) also kein Umkehrspiel
G1 G90 X100 => Richtungswechsel (<-) also Umkehrspiel

Eine Kompensation könnte also so aussehen:

G1 G90 X100
G1 G90 X200
G1 G91 X-0.1 => damit "denkt" der Controller, dass er verfährt, aber eigentlich wird nur das Umkehrspiel kompensiert. Richtig?
G1 G90 X100

Das lässt sich genauso simpel dann auch für alle 3 Achsen machen. Ein bisschen aufwändiger wird es bei G2/G3-Kreisbewegungen, aber auch da ist es möglich denn man weiß ja wo man aktuell steht und über die Kreisbewegung kann man erkennen, ob ein Richtungswechsel stattfindet.

Natürlich hab ich keinen Bock meinen tool-seitig generierten GCode Zeile für Zeile zu analysieren. Aber das könnte man ja ziemlich simpel durch z.B. ein python-script lösen, dass das dann automatisch macht. Sozusagen ein Post-Post-Processor...

Was haltet ihr von der Idee? Wenn jetzt niemand sagt, dass das (begründeter) kompletter Blödsinn ist, dann werde ich mich im Weihnachtsurlaub mal damit auseinandersetzen und das Skript (so es sinnvoll funktioniert) gerne auch der Hobby-CNC-Gemeinde zur Verfügung stellen.

Gruß

Marc

20.12.16 12:05
Ronald 

Moderator

Re: Umkehrspiel messen & kompensieren

Hallo Marc,

hast Du die Bewegungen wie geplant schon einmal durchgeführt? Mit G38.2 und G38.4? Kommt dann wirklich der Wert des Backlash raus?

Ich habe mir auch schon Gedanken dazu gemacht, bin aber der Meinung, dass gerade wegen der Kreise und Kreisbögen das Ganze nicht im G-Code sondern bei der Impulserzeugung im Inneren stattfinden muss. Immer wenn sich bei irgend einer Achse das Vorzeichen (also die Bewegungsrichtung) wechselt, dann müssen die X-Schritte zur Kompensation dazwischen eingefügt werden.

Ich hatte aber noch nicht die Zeit mir den Quellcode an dieser Stelle dafür an zu schauen. Bin froh, wenn ich so eingermaßen um die Runden kommen. Ich würden den Code auch eher in der Firmware Teacup als in GRBL einbauen. Das wird nicht so frequentiert erweitert und umgebaut. Außerdem scheint mir der Code hier klarer strukturiert und ist mit Integer Arithmetik. Außerdem soll die Erweiterung mit dem Backlash ja in GRBL kommen! Da würde ich eher mal nachfragen ob es da schon eine beta gibt?!?

Ansonsten bin ich gespannt auf Deine Ergebnisse!

LG
Ronald

20.12.16 12:18
Masc99 
Re: Umkehrspiel messen & kompensieren

Hi Ronald,

am Wochenende stand leider der Verbau von Schleppketten auf dem Plan. Aber vielleicht komme ich in Laufe der Woche dazu. Aber ich entnehme deiner Frage, dass mein Gedankenspiel wohl nicht so verkehrt ist.

Ich bin deiner Meinung, dass eine Kompensation des Backlash eigentlich in der Firmware gemacht werden sollte, als im GCode, denn der GCode ist ja (mehr oder weniger) unabhängig von der Maschine. Und dass das Ganze in GRBL kommen soll, hab ich auch schon gelesen. Allerdings bin ich kein Freund von "Latest-Greatest" und wenn man es simpel selber machen kann, wäre ich damit auch erstmal zufrieden.

Ich halte euch auf dem Laufenden.

Gruß

Marc

20.12.16 13:04
crix

nicht registriert

Re: Umkehrspiel messen & kompensieren

Hi,

ich habe grad mal etwas recherschiert und bin auf die Aussage gestossen, dass Umkehrspiel ausschließlich Gewindeantriebe betrifft. Ein guter Riemenantrieb hat keinen Backlash. Ich gehe jetzt mal davon aus, daß Ronald einen guten Riemen verwendet ;-)
Macht ja auch Sinn. Die Zähne sind trapezförmig und liegen demnach bei korrekter Spannung beideitig an den Zähnen des Pulleys an. Somit gibt es da kein Spiel was beim Richtungswechsel zum tragen kommen könnte.

Bei Gewinden un Muttern ist das was anderes. Da gibt es Spiel dass man einfach messen und kompensieren kann.
Im Thread zur GRBL Beta Version ist das einer der Gründe warum das nicht schon lange drin ist:
GRBL wird hauptsächlich bei Riemengetriebenen Geräten eingesetzt, die kein Umkehrspiel haben was man kompensieren könnte.

Riemenantriebe haben das Problem der Dehnung, und die ist von vielen Faktoren (Riemenspannung, Material, Alter, Vorschubkraft, Material, Fräser, Vorschubgeschwindigkeit, Zustellung, Anzahl Schneiden, Position des Wagens, ...) abhängig und ändert sich mit dem Alter des Riemens.
Das lässt sich nicht so ohne weiteres messen und kompensieren.

Gruß
crix

 1
G3-Kreisbewegungen   auseinandersetzen   hauptsächlich   Impulserzeugung   Riemenantriebe   Umkehrspiel   Weihnachtsferien   Post-Post-Processor   Gewindeantriebe   Vorschubgeschwindigkeit   Hobby-CNC-Gemeinde   Latest-Greatest   Probe-Funktion   Bewegungsrichtung   Richtungswechsel   Riemengetriebenen   ausschließlich   Weihnachtsurlaub   Riemenspannung   kompensieren