Wägezellen und z-Max-Homing

Nichts in der Suche gefunden? Keine Ahnung welche Kategorie euer Problem betrifft? Dann eröffnet hier ein Thema. Gegebenenfalls werden die Moderatoren das Thema dann in die entsprechende Kategorie verschieben
mhier
Prof. Dr. des 3D-Drucks
Prof. Dr. des 3D-Drucks
Beiträge: 1672
Registriert: Fr 11. Sep 2015, 11:37
Has thanked: 279 times
Been thanked: 246 times

Wägezellen und z-Max-Homing

Beitrag von mhier »

In diese Post:

viewtopic.php?p=35049#p35049

und einigen Folgeposts im selben Thread haben wir eine mögliche Problematik diskutiert, die ich zwar interessant finde, die aber in den Thread dort nicht passt. Deshalb mache ich mal hier einen neuen Thread zu dem Thema auf.

Es geht also um folgendes (ich kopiere hier mal die wichtigsten Punkte aus dem anderen Thread, hier erstmal ohne neue Antworten von mir):
AtlonXP hat geschrieben: @Martin, [...] [du] fährst [...] deinen Z- Max. Endschalter an.
Du hast deinen max. Wert genau definiert und somit weiß der Drucker wo er stehen sollte!
Jetzt kannst du ihm bei Z- min. einen Freiraum definieren und es kommt zu keiner Kollision.

Richtig?

Jetzt kommt aber der Pferdefuß bei dieser Geschichte:
Da deine Maschinen Referenzvorgabe sich über die gesamte Spindelläng bezieht,
kommt es leider zu unterschiedlichen Fehlerquellen.
Zum einen ist es die Toleranz der gesamten Spindelsteigung über die Gesamtlänge der Spindel.
Als nächstes macht sich die Wärmeausdehnung über die gesamte Spindellänge bemerkbar.
Einfach weil der Homing Z- Endschalter am falschen Ende der Spindel ist und dort ab nullt!

Der Konstrukteur unserer RFX000 Klasse hat hier weiter gedacht.
So funzt es bei mir mit meiner Lichtschranke:
Meine Fahne der Z- Lichtschranke kann ohne Kollision bis zu 10 mm durch die Gabel fahren.

Wenn ich Homing mache, wird bei der Fahnenspitze abgenullt.
Der Drucker weiß wo er steht.
Somit bestehen noch etwa 10 mm Freiraum, das ist der Fahrweg in den Minusbereich.
Ich kann damit bis zu knapp 10 mm Aufmaß oben drauf noch packen, ohne dass es zu einer Kollision kommt.
Anschließend den HBS oder Z- Offset Scan nicht vergessen!

Natürlich dauert der erste Messpunkt bei einem HBS wesentlich länger,
da der Drucker erst die 10 mm Suchlauf herunter tackert.

Ich hoffe, dass ich das verständlich rüber bringen konnte.

LG AtlonXP
AtlonXP hat geschrieben:
mhier hat geschrieben:
Jetzt kommt aber der Pferdefuß bei dieser Geschichte:
[...] es sei nur gesagt, dass die Lösung für mich so extrem gut funktioniert. Die von dir beschriebenen Fehlerquellen sind also wohl in der Realität vernachlässigbar.
Hm…
Bitte korrigiert mich einer, falls ich hier einen Mist gerechnet habe…
Eigentlich wollte ich diese Rechnerei mir ersparen.

Ich gehe hier nur von der Längenänderung der Spindel aus.
Das ALU Gehäuse sage ich mal: Das kürzt sich einfach aus der Rechnung raus.


Längenausdehnungskoeffizienten α bei Stahl (bis 0,5 %C) = 11,0 (von 0 bis 100 C°) in 10 hoch -6 K-1

Z Spindel Gesamtlänge Stahl 300 mm.

Delta T=50 C° - 20 C° = 30 C°

11,0 * (10hoch-6) * 300 mm * 30 C°= 0,099 mm

Das scheint ein volles Zehntel zu sein, bei einer Bauraum Temperaturänderung von nur 30 C°!

Mein TronXY,
Längenausdehnungskoeffizienten α bei Edelstahl = 17,0 (von 0 bis 100 C°) in 10 hoch -6 K-1
Z Spindel Gesamtlänge Edelstahl knapp 700 mm.

Ausrechnung schenke ich mir! Ca. 0,4 mm Längenausdehnung!

https://de.wikipedia.org/wiki/Ausdehnungskoeffizient

LG AtlonXP
mhier hat geschrieben:
AtlonXP hat geschrieben:Das scheint ein volles Zehntel zu sein, bei einer Bauraum Temperaturänderung von nur 30 C°!
[...]

In der Praxis habe ich keine Temperaturänderungen von 30 Grad an der Spindel, denn ich home ja immer bei ungefär gleicher Temperatur (nämlich Raumtemperatur). Meine Beobachtung ist ja auch, dass im Ergebnis der erste Layer bei mir aktuell so exakt reproduzierbar passt, wie noch nie zuvor. Grau, treuer Freund, ist alle Theorie ;-) Du hast aber natürlich mit deiner Anmerkung insofern recht, als dass andere vielleicht einen anderen Workflow haben als ich. Wer ein Teil nach dem anderen mit hoher Bett-Temperatur druckt, wird da vielleicht Schwierigkeiten bekommen.
AtlonXP hat geschrieben: Die zweite nicht so gute Möglichkeit wär hier über deinen Z. - max. Endschalter.
Diese Lösung finde ich jedoch bullshit!
Meine Berechnungen belegen das!
Gruß, Martin

Klipper Firmware für den RFx000: Klipper für RFx000 | Original-Dokumentation | Diskussion | Wiki mit Installations-Anleitung

(Ich bin in diesem Forum nicht mehr aktiv)
mhier
Prof. Dr. des 3D-Drucks
Prof. Dr. des 3D-Drucks
Beiträge: 1672
Registriert: Fr 11. Sep 2015, 11:37
Has thanked: 279 times
Been thanked: 246 times

Re: Wägezellen und z-Max-Homing

Beitrag von mhier »

So jetzt mal ein paar neue (und weniger neue) Gedanken:
AtlonXP hat geschrieben: Die zweite nicht so gute Möglichkeit wär hier über deinen Z. - max. Endschalter.
Diese Lösung finde ich jedoch bullshit!
Meine Berechnungen belegen das!
Tja, sie funktioniert aber eben doch sehr gut unter gewissen Voraussetzungen. Ich nehme an, du hast das nie ausprobiert? Bei mir ist es zugegeben auch eher eine Verlegenheitslösung, weil mein Endschalter mit Hall-Sensor wirklicher bullshit war (viel zu temperaturempfindlich und in der Umsetzung viel zu provisorisch).

Ich bin immer noch Experimentalist. Ein sauber ausgeführtes Experiment steht über jeder Theorie, bzw. bildet die Grundlage der Theorie. Nie umgekehrt.

Ich sehe folgende Schwachpunkte in deiner Argumentation:
  • Du überschätzt um die eine oder andere Größenordnung, um wie viel die Temperatur der Z-Spindeln beim Homing variiert. Die werden doch selbst bei einer Bett-Temperatur von 120 Grad im Leben nicht 50 Grad warm. Das ist die Luft-Temperatur im Bauraum, aber die Spindeln sind doch thermisch an die Außenwelt gekoppelt über das Gehäuse. Alu leitet nun mal viel viel viel viel besser die Wärme als Luft.
  • Wir sprechen hier überhaupt nicht über ein thermisches Gleichgewicht, während ich das Homing durchführe. Das mag abhängig von der konkreten Nutzung sein, aber ich Home eigentlich immer, wenn der Bauraum noch kalt ist.
  • Du vernachlässigst die Ausdehnung des Gehäuses. Wenn ich mal annehme, dass die Temperaturkoeffizienten von Spindel und Gehäuse gleich sind (stimmt nicht, aber sind nicht wirklich weit voneinander entfernt), dann bewirkt eine Erwärmung, dass nicht nur die gefahrene Distanz pro Schritt größer wird (weil Spindel länger), sondern auch die zu fahrende Distanz genauso viel größer wird. Also die Spindel wird um 1/10mm länger, aber genauso wandert die Deckenplatte samt Hotend um 1/10mm nach oben. Das gleicht sich genau aus.
Im Endeffekt spielt also nur der Unterschied der Ausdehnung von Spindel und Gehäuse überhaupt eine Rolle. Beides steht in vergleichsweise gutem thermischen Kontakt zueinander (deutlich besser als Heizbett und Spindel, wo sehr viel Luft dazwischen ist) und bleibt relativ nahe an der Raumtemperatur. Schließlich wird man fast immer das Homing vor dem Aufheizen durchführen. Im schlimmsten Fall hat man also kurz vorher einen anderen Druck gemacht und der Drucker ist noch warm - aber ich muss ja zumindest das Objekt von der Platte bekommen haben, dazu muss ich eine ganze Weile bei offener Einhausung warten, bis das Bett gut genug abgekühlt ist. In der Zeit kühlt sich die Spindel eben auch ab.


Ich empfehle diese Lösung aber doch auch gar nicht unbedingt weiter. Das kann doch jeder umsetzen, wie er es für richtig hält. Und sobald ich auch nur den Verdacht habe, dass meine Lösung Probleme macht, bau ich mir halt eine Lichtschranke als Referenz nahe Z-Min. Das ändert aber doch im Bezug auf den Wägezellenalgorithmus absolut nichts - deshalb ja auch der neue Thread hier.

ich werde demnächst aber mal ein kleines Experiment machen:
  1. Z-Endstop im Kaltenzustand kalibrieren (das ist im Endeffekt der Z-Offset-Scan, nur dass kein Offset gespeichert wird sondern die Position des Z-Schalters geändert wird). Ergebnis (also Z-Position des Endschalters) merken.
  2. Heizbett auf 120 Grad und 2h warten (oder noch länger?).
  3. Z-Endstop neu kalibrieren und Ergebnis mit dem vorherigen Ergebnis vergleichen.
Damit kann ich direkt messen, wie groß der Effekt tatsächlich ist. Macht das Sinn soweit?
Gruß, Martin

Klipper Firmware für den RFx000: Klipper für RFx000 | Original-Dokumentation | Diskussion | Wiki mit Installations-Anleitung

(Ich bin in diesem Forum nicht mehr aktiv)
Benutzeravatar
AtlonXP
3D-Drucker Erfinder
3D-Drucker Erfinder
Beiträge: 3374
Registriert: So 15. Nov 2015, 20:55
Has thanked: 742 times
Been thanked: 588 times

Re: Wägezellen und z-Max-Homing

Beitrag von AtlonXP »

Hallo Martin,
heute ist es schon etwas spät für mich.

Was noch nicht erwähnt wurde:
Mein Drucker ist eingehaust.
Er besitzt eine Abzug Vorrichtung und kann (wenn gewollt) dadurch auch schnell die Innentemperatur ändern.

Telefonier wir morgen Nachmittag / Abend mit einander?
Ich schreibe dir morgen eine PN mit meiner Tel. Nr.:

LG AtlonXP
mhier
Prof. Dr. des 3D-Drucks
Prof. Dr. des 3D-Drucks
Beiträge: 1672
Registriert: Fr 11. Sep 2015, 11:37
Has thanked: 279 times
Been thanked: 246 times

Re: Wägezellen und z-Max-Homing

Beitrag von mhier »

AtlonXP hat geschrieben:Mein Drucker ist eingehaust.
Meiner auch. Trotzdem werden meine Spindeln eher nicht mal handwarm glaube ich. Ich habe aber nie so wirklich darauf geachtet (und drucke meistens nur PLA).
AtlonXP hat geschrieben:Er besitzt eine Abzug Vorrichtung und kann (wenn gewollt) dadurch auch schnell die Innentemperatur ändern.
Die Änderung geht dann aber nur nach unten, du saugst damit ja kalte Raumluft ein.
Telefonier wir morgen Nachmittag / Abend mit einander?
Ich schreibe dir morgen eine PN mit meiner Tel. Nr.:
Gerne, aber diese Woche bring ich das nicht unter, sorry :-) Nächste Woche Montag abend passt besser.
Gruß, Martin

Klipper Firmware für den RFx000: Klipper für RFx000 | Original-Dokumentation | Diskussion | Wiki mit Installations-Anleitung

(Ich bin in diesem Forum nicht mehr aktiv)
Benutzeravatar
rf1k_mjh11
Developer
Developer
Beiträge: 2051
Registriert: Di 6. Jan 2015, 19:44
Wohnort: Autriche
Has thanked: 263 times
Been thanked: 542 times

Re: Wägezellen und z-Max-Homing

Beitrag von rf1k_mjh11 »

Hallo mhier,

Gut dass es den Off-Topic Thread gibt. Sonst hätte ich das eigentliche Thema weiter verschleppt.
mhier hat geschrieben:Das Einzige, worauf es am Ende ankommt, ist, dass in G-Code-Koordinaten Z=0 jederzeit die Bett-Oberfläche ist - was im Allgemeinen bedeutet, dass dies bei jeder XY-Koordinate anders ist.
Mir ist klar, wie du das meinst. Der Vollständigkeit halber muss man sagen, und du als Fräser wirst das wissen, dass ein GCode, wie z.B.
G1 Z0 F3000
nicht immer bei der Bettoberfläche endet. Wurde zuvor irgendwo ein
G92 Znnn
gesendet bzw. verwendet, ändert sich das 'Z=0' aus GCode Sicht und ein
G1 Z0 F3000
könnte irgendwo enden (über dem Bett oder etwas tiefer als das Bett, falls der Endschalter und das Bett dies zulässt). Die Firmware, glaube ich, weiß dabei noch immer genau, wo das 'echte 'Z=0' ist (zumindest bis der Z-Motor stromlos geschaltet wird).
mhier hat geschrieben:Schließlich wird man fast immer das Homing vor dem Aufheizen durchführen.
Ich heize immer lange vor dem Homen das Bett auf, etwas weniger lang wird das Hot End vorgewärmt (so auf ca. 160-180°). Erst wenn das Bett schon einige Minuten die Solltemperatur aufweist, wird das Hot End auf Solltemperatur gebracht und kurz nach dem Erreichen dieser wird der eigentliche Druck gestartet (worauf dann erst gehomed wird). Da ich praktisch immer neben dem Drucker sitze, ist das keine Affäre.
Dafür habe ich keine Einhausung. Hätte ich eine, würde ich vermutlich auch auf die gewünschte Bauraumtemperatur warten, bevor ich losdrucke.

mhier hat geschrieben:Ein sauber ausgeführtes Experiment steht über jeder Theorie ...
:tiptop:
Der ist gut! Ich darf das Zitat in meinem nächsten Beitrag doch verwenden, oder?
Covid zum Teufel (und dort soll es auch bleiben)!

mjh11
RF1000 (seit 2014) mit:
  Pico Hot End (mit eigenem Bauteil- und Hot End Lüfter)
  Ceran Bett
  FW RF.01.47 (von Conrad, modif.)

Die Natur kontert immer sofort mit einem besseren Idioten.
Benutzeravatar
AtlonXP
3D-Drucker Erfinder
3D-Drucker Erfinder
Beiträge: 3374
Registriert: So 15. Nov 2015, 20:55
Has thanked: 742 times
Been thanked: 588 times

Re: Wägezellen und z-Max-Homing

Beitrag von AtlonXP »

So dann drücke ich mich jetzt wie ein Maschinenbauer aus.

Du gibst dir richtig Mühe um das Druckbett genauestens zu vermessen.
Dann Nullst du deinen Drucker am anderen Ende der Spindel ab.
Danach addierst du den Offset deiner Spindellänge z.B.: +200 mm.
Das ist dann dein Nullpunkt für den Drucker.

Da es wirklich auf den tatsächlichen Nullpunkt (kontakt Düse zum Heizbett) ankommt.
Baust du dir somit eine zusätzliche Fehlerquelle ein.
Dein Nullpunkt ist somit nicht absolut, sondern eine Kettenbemaßung je nach Toleranzabweichung der Spindellänge.
Ehrlich gesagt ist es mir Wurst um wie viel das ist, aber ich will so was nicht akzeptieren.

Würdest du tatsächlich am Druckernullpunkt homen, dann wäre deine Bemaßung über die Lichtschranke absolut!
Die Längenabweichung der Spindel wäre dann auch fast Wurst! ;-)
Im Tel.: Gerne mehr darüber.

Die ganze Zeit hatte ich mich geärgert, dass unser Drucker in den Minusbereich fährt.
Es entspricht einfach nicht der CNC Norm einer Fräsmaschine…

Heute nach reiflicher Überlegung, halte ich dieses umgehen der Bemaßung unsere RFX000 Klasse,
als das einzig richtige Vorgehen!

Begründung:
Unsere Drucker haben kein absolutes Wege- Messsystem!
Der Drucker weiß erst nach dem Homing, wo er absolut steht.
Das gilt natürlich nur, wenn der homing Punkt an der richtigen Stelle ist.

Du möchtest den Programmcode auch für andere (Marlin) Drucker zugänglich machen.
Genau aus diesem Grund schreiben wir hier einander!
Wenn das alles funzt, wie gewollt, dann bin ich der Erste der das in einem TronXY umsetzt! :-)

Bitte schau dir nochmal meine A; B; C Begründung an.
Das ist leider bei dem Verschieben verschütt gegangen.

viewtopic.php?p=35053#p35053

LG AtlonXP
mhier
Prof. Dr. des 3D-Drucks
Prof. Dr. des 3D-Drucks
Beiträge: 1672
Registriert: Fr 11. Sep 2015, 11:37
Has thanked: 279 times
Been thanked: 246 times

Re: Wägezellen und z-Max-Homing

Beitrag von mhier »

rf1k_mjh11 hat geschrieben:Wurde zuvor irgendwo ein
G92 Znnn
gesendet bzw. verwendet, ändert sich das 'Z=0' aus GCode Sicht
Ja logisch, G92 Offsets und ähnliche Eingriffe habe ich jetzt mal unterschlagen. De facto braucht man G92 für Z aber gar nicht mehr, wenn man eine zuverlässige, absolute Offset-Messung hat. Das gilt i.d.R. auch beim Fräsen. Zumindest würde ich empfehlen, wo immer möglich Z=0 als Oberfläche des Rohteils zu definieren und dieses Abzutasten.
Ich heize immer lange vor dem Homen das Bett auf, etwas weniger lang wird das Hot End vorgewärmt (so auf ca. 160-180°).
Das hab ich mir weitgehend abgewöhnt, weil ich es einfach nicht mehr brauche. Aber jeder hat seine eigenen Erfahrungen und Workflows.
Dafür habe ich keine Einhausung.
Dann werden sich deine Z-Spineln auch erst recht eher nicht signifikant aufheizen.
Der ist gut! Ich darf das Zitat in meinem nächsten Beitrag doch verwenden, oder?
Meinst du das jetzt ironisch? Dieser Grundsatz ist nicht von mir. Alle Naturwissenschaften funktionieren nach dem Prinzip. In den allgemeinen Medien wird das zwar gerne anders dargestellt, aber darauf darf man nicht hören.


AtlonXP hat geschrieben: Du gibst dir richtig Mühe um das Druckbett genauestens zu vermessen.
Dann Nullst du deinen Drucker am anderen Ende der Spindel ab.
Danach addierst du den Offset deiner Spindellänge z.B.: +200 mm.
Das ist dann dein Nullpunkt für den Drucker.
Nicht ganz. Erst Nulle ich am unteren Ende der Spindel ab, dann vermesse ich relativ dazu das Druckbett und speichere das Ergebnis. Anschließend Nulle ich erneut wieder am unteren Ende ab und verlasse mich darauf, dass der Abstand zum Bett noch passt. Ob die Distanz 200mm oder irgendwas anderes ist, fällt dabei quasi raus bzw. ist ja genau das, was ich ausmesse. Strenggenommen gilt das übrigens für die Distanz in Schritten, denn der Kalibrationsfaktor kürzt sich raus.
Ehrlich gesagt ist es mir Wurst um wie viel das ist, aber ich will so was nicht akzeptieren.
Am Ende geht es aber schon darum, ob der Fehler 1/10mm oder vielleicht doch nur wenige Mikrometer ist. Strenggenommen hast du bei deinem Drucker genau das gleiche Problem, denn deine Lichtschranke löst ja auch über dem Bett aus. Die Distanz ist eben nur kürzer.

Die ganze Zeit hatte ich mich geärgert, dass unser Drucker in den Minusbereich fährt.
Es entspricht einfach nicht der CNC Norm einer Fräsmaschine…

Heute nach reiflicher Überlegung, halte ich dieses umgehen der Bemaßung unsere RFX000 Klasse,
als das einzig richtige Vorgehen!
Ich glaube, du hast dich einfach nur daran gewöhnt. Es ist doch nur eine Definitionsfrage. Du kannst die Maschinenkoordinaten auch so definieren, das Zmax = 0mm ist, oder du misst alles von deinem Fußboden aus. Solange du das konsequent machst, kürzt sich das hinterher wieder raus.
Unsere Drucker haben kein absolutes Wege- Messsystem!
Der Drucker weiß erst nach dem Homing, wo er absolut steht.
Im Grunde ist das ein Widerspruch. Der Endschalter ist ein absolutes Messsystem. Kalibrieren muss man am Ende jede Messung. Wir haben sogar ein zweites absolutes Messsystem, nämlich unsere Wägezellen. Damit können wir absolut die Position der Bettoberfläche bestimmen. Es gibt Drucker, die verzichten auf einen separaten Z-Endschalter und benutzen zum Homen von Z immer ein BL-Touch o.ä.. Das könnten wir mit den Wägezellen auch machen, wäre nur nervtötend langsam (-> also kein fundamentales Problem).
Das gilt natürlich nur, wenn der homing Punkt an der richtigen Stelle ist.
Jein. Die Position des Referenzschalters muss an einer bekannten Stelle sein. Welche das ist, ist aber erstmal egal. Wie gerade erwähnt geht es sogar ohne separaten Referenzschalter, der dient eigentlich nur zur Zeitersparnis. Ich habe früher auch mal nach dem Z-Homing immer einen Z-Offset-Scan durchgeführt, um Ungenauigkeiten im Homing zu eliminieren - das war übrigens der Grundstein für unsere Community-Firmware. Dann muss man nicht mal exakt die Position des Referenzschalters kennen! (Später hat sich dann herausgestellt, dass nicht das Homing ungenau war, sondern die Längenausdehnung vom v2 Hotend das Problem :-D Jedenfalls ist das mein heutiges Verständnis...)
Du möchtest den Programmcode auch für andere (Marlin) Drucker zugänglich machen.
Nein, Marlin ist eine andere Firmware, dafür werde ich nichts machen. Ich möchte, dass der Code auch von anderen Druckern mit der Klipper-Firmware genutzt werden kann, sofern diese entweder von Haus aus mit Wägezellen ausgestattet sind oder entsprechend umgebaut werden. Ob die Original-Firmware Marlin war oder Repetier oder was ganz anderes oder der Drucker gleich ein kompletter Eigenbau ist, ist egal ;-)

Bitte schau dir nochmal meine A; B; C Begründung an.
Ich hab deine Begründung schon soweit verstanden, du machst da aber einen Zirkelschluss.

Es gilt definitiv Folgendes:
  • Das Bezugssystem der Achse kann frei gewählt werden, es muss nur konsequent immer das geleiche verwendet werden oder korrekt umgerechnet werden.
  • Die Position des Referenzschalters kann unabhängig vom Bezugssystem gewählt werden. Es ist lediglich wichtig, dass die Koordinate des Schalters bekannt ist (es gibt noch technische Einschränkungen, weshalb man einen Referenzschalter nicht ohne weiteres in der Mitte der Achse plazieren kann, das ist aber alles kein fundamentales Problem und soll hier mal ausgeklammert werden).
  • Der Z-Referenzschalter ist im Grunde nur dafür da, die Messung der Bett-Oberfläche nach dem Abschalten des Motorstroms nicht wieder neu durchführen zu müssen.
Repetier und Klipper verfolgen hier leicht unterschiedliche Ansätze. Zu dem Zeitpunkt, wo Conrad die Repetier-Firmware geforkt hat, gab es meinem Verständnis nach noch keine Möglichkeit, die Bettoberfläche in irgend einer Weise zu vermessen. Repetier setzte damals auf den klassischen Ansatz:
  • Ein möglichst ebenes Bett mit Schrauben mechansich ausrichten
  • Z-Schalter mechanisch so justieren, dass dieser unterhalbe der 1. Layerhöhe über dem Bett auslöst
  • Der Einfachheit halber werden alle Endschalter als Nullpunkte interpretiert
  • Der Verbleibende Abstand zwischen Düse und Bett nach dem Homen wird z.B. über G92 oder im Slicer als statischen Offset abgezogen, meist durch Ausprobieren, wann der 1. Layer korrekt gedruckt wird.
Conrad hat dann auf dieses System aufgebaut. Deshalb ist dort weiterhin der Z-Endschalter bei Z=0 im Maschinenkoordinatensystem. Der HBS führt eine zusätzliche Transformation ein, die den verbleibenden Offset abzieht, so dass G92 nicht menr benutzt werden muss. Aus rechentechnischen Gründen kann die Matrix keine beliebig großen Zahlen annehmen (+-32768 Microschritte glaube ich), deshalb ergibt sich die Bedingung, dass der Z=0-Referenz-Schalter weiterhin in der Nähe des Betts sein muss.

Nichts davon ist aber fundamental. Das sind lediglich bequeme Annahmen um gewisse Dinge zu vereinfachen und technische/nummerische Probleme zu lösen.

Bei Klipper funktionieren die Berechnungen mit Floating-Point in doppelter Genauigkeit (Standard bei Python). Damit kannst du deinen Nullpunkt in den Erdmittelpunkt legen und immer noch die Atomabstände deines Druckers auflösen. Deshalb fallen gewisse Beschränkungen einfach weg. Außerdem macht Klipper nicht die feste Annahme, dass beim Endschalter Z=0 ist. Stattdessen kann man z.B. per G-Code-Befehl die aktuelle Position der Achse auf einen bestimmten Z-Wert festlegen (ähnlich G92) und die Endschalterposition entsprechend umdefinieren. Das wird dann gespeichert und künftig bei jedem Homing verwendet. Mein Z-Schalter ist also nicht bei Z=0 oder Z=200 oder irgendwas glattes, sondern z.B. aktuell bei Z=162.029mm (meine Z-Achse ist wegen diverser Umbauten etwas kürzer). Das ist eine gemessene Zahl, es steckt hier keine Annahme drin, dass irgend ein Bauteil eine bestimmte nominelle Länge hat oder so. Z=0 ist bei mir dann genau die Oberfläche des Heizbetts bei X=Y=100mm. Diese Zahl (also Z-Position des Endschalters) ändert sich übrigens, wenn ich z.B. mein Hotend aus- und wieder einbaue oder die Düse wechsele. (Auch macht die Hotend-Temperatur einen Unterschied, aber das ist wieder mal ein anderes Thema, was hier im Forum ja schon zur Genüge diskutiert wurde...)

Wichtig ist, dass alle systematischen Abweichungen sich komplett herauskürzen. Es ergibt sich keinerlei Ungenauigkeit, wenn die Steigung der Spindel nicht 5mm sondern 4.99mm ist - auch keine kleine (also ja mein Druckergebnis wird etwas zu klein, aber das ist ja immer so). Mit der Wärmeausdehnung hast du tatsächlich den einzigen relevanten Effekt schon genannt, der überhaupt eine Rolle spielen könnte - der ist meiner Beobachtung zufolge nur eben nicht so groß, dass er problematisch wäre.

Ein anderes mögliches Problem wären Schrittverluste - aber die dürfen eben ohnehin einfach nicht vorkommen. Es ist schlicht unrealistisch, dass der Drucker in einer kontinuierlichen Bewegung (Hochfahren des Betts nach dem Homing) einzelne Schritte verliert. Sobald der Motor mal Schritte verloren hat, würde er einfach stehen bleiben bis zum Ende der aktuellen Fahrt (und erst beim nächsten Beschleunigungsvorgang wieder losfahren). Theoretisch könnte ich mir eher schon Schrittverluste am Anfang der Beschleunigung vorstellen oder "negative" Schrittverluste beim Bremsen - die sind dann aber Unabhängig von der gefahrenen Distanz und würde dir genauso dein Ergebnis vermasseln, wenn du deine 10mm fährst. Generell wären Schrittverluste aber ein Zeichen für entweder falsche Konfiguration oder ein erhebliches Hardware-Problem.
Gruß, Martin

Klipper Firmware für den RFx000: Klipper für RFx000 | Original-Dokumentation | Diskussion | Wiki mit Installations-Anleitung

(Ich bin in diesem Forum nicht mehr aktiv)
Benutzeravatar
AtlonXP
3D-Drucker Erfinder
3D-Drucker Erfinder
Beiträge: 3374
Registriert: So 15. Nov 2015, 20:55
Has thanked: 742 times
Been thanked: 588 times

Re: Wägezellen und z-Max-Homing

Beitrag von AtlonXP »

Von wem ist der Leitsatz?
In den ersten 20ig Minuten hat das V2 noch eine zusätzliche Nachlängung.
Da war wohl einer dir voraus. ;-)

Den Freiraum von 10 mm gönne ich mir, da ich viele unterschiedlich dicke Druckplatten habe.
Einfach die Druckplatte wechseln, ein HBS und es sollte passen.
Da ich jedoch mit kaltem Hot End den HBS mache, die DMS machen mir sonst Schwierigkeiten…
Wird anschließend noch mit heißem Hot End, ein Z- Offsetscan gemacht und dann passt es.
Damit ich etwas mehr Anpressdruck habe, gebe ich noch Z- Offset ein paar wenige Hundertstel ins Minus dazu.


Meine Berechnung mit der Wärmeausdehnung hatte ich ein wenig geschönt mit der Spindellänge von 300 mm.
Vermutlich kürz sich das meiste weg, bis auf den tatsächlichen Bauraum Fahrweg.
Mein Tronxy hat jedoch einen echte Z- Fahrweg von 600 mm!
Folglich ist die Abweichung mindestens 2- bis 4-mal so hoch!
Das ist so viel, dass das SenseOffset niemals noch ausgleichen kann!

Ansonsten denke ich, ich habe die Kirche im Dorf belassen.
Wenn ich einen Druck starte und vorher nichts verändert habe,
dann gibt es bei mir nicht einmal ein Z- OffsetScan.
Lediglich SenseOffset ist in betrieb und arbeitet fleißig mit.

Wenn wir nirgends Toleranzen hätten, dann könnte man sich SenceOffset schenken.
Dem ist aber nicht so…

Wir rühmen uns, dass die RFX000 Klasse das Alleinstellungsmerkmal, sich selber zu kalibrieren, beherrscht.
Dann ist also nichts mit Z- Offset ausprobieren und von Hand nachstellen.
Nee, des gilt net!

Allgemein:
Mit deiner Meinung verstößt du gegen Leitsätze der Maschinenbauer.
Wenn du deine jetzige Meinung im Klipper Forum so vertreten tust, wirst du bei manchen auf Ablehnung stoßen.

Wenn du für das fräsen unten ab nullst.
Dann ist das korrekt.
Hier legt man Wert das Z unten der definierte Punkt sein soll.
Also Punkt um, nur der kürzeste Weg lässt sich am genausten vermessen.
Und Z=0, ist bei uns auch das A & O und ein Absoluter Wert.
Auf diesen Wert bauen sich alle anderen auf!

Normalerweis wird zum Fräsen auch die Z- Koordinate gedreht,
somit müsste sich X oder Y auch vertauschen. Ist das richtig? (Ich weiß es nicht).
Ich hatte den Milling Modus noch nie aktiv.

P.S.: Natürlich meint es rf1k_mjh11 ironisch.
Der traut sich nur nicht aus Deckung! :mrgreen:

rf1k_mjh11, du bist doch auch vom Fach, überlegst du noch?
Deine zweite Meinung wäre hier sicher erwünscht. :-)

LG AtlonXP
Benutzeravatar
rf1k_mjh11
Developer
Developer
Beiträge: 2051
Registriert: Di 6. Jan 2015, 19:44
Wohnort: Autriche
Has thanked: 263 times
Been thanked: 542 times

Re: Wägezellen und z-Max-Homing

Beitrag von rf1k_mjh11 »

Hallo DMS-Integration Team,
AtlonXP hat geschrieben:Wenn wir nirgends Toleranzen hätten, dann könnte man sich SenceOffset schenken.
Dem ist aber nicht so…
Erstaunlich ist, dass 99.5% aller 3D Drucker sich den SenseOffset schenken. Vielleicht liegt es daran, dass vermutlich nur die RFx000-Klasse mit dem Problem der Toleranzen behaftet ist? :diabolisch: :ohmy: Auch dein TronXY kommt ohne aus, oder?
AtlonXP hat geschrieben:rf1k_mjh11, du bist doch auch vom Fach, überlegst du noch?
Deine zweite Meinung wäre hier sicher erwünscht. :-)
Ich weiß jetzt nicht genau um was ich hier gebeten werde, noch von welchem Fach ich sein soll.

a) Falls es um das Fräsen geht, in das ich tatsächlich einen kurzen Ausflug gewagt habe, muss ich gestehen, dort habe ich ein wenig geschwindelt. Ich habe damals den Milling Modus nie verwendet. Ich habe händisch X=0, Y=0 und Z=0 gesetzt und dann den GCode gestartet. Natürlich habe ich den GCode vorher geprüft und editiert, um mögliche Katastrophen zu verhindern. Richtigerweise sollte man, wie mhier beschrieb, das Werkstück abtasten um X, Y und Z zu nullen. Beim Fräsen fing der Fräser somit bei einem 'großen' Z-Wert an und arbeitete sich langsam Richtung Bett (Richtung 0).
Ausschnitt vom GCode
(1011_PicoFanHsgAlum_1b)
(Still Needs Editing)
G21
G90
G92 X-15.000 Y-30.000 Z0.950 ; NOTE: Z0 is bottom of stock, Z1.000 is top of stock
; Placement of bottom left stock corner: X=10-15, Y=5-10
G0 X67.686 Y53.330 Z2.800 F7000
G0 X66.870 Y38.630 Z2.800 F7000
G0 X66.870 Y38.630 Z2.000 F7000
G1 X66.870 Y38.630 Z1.600 F90
G2 X65.305 Y36.430 Z1.452 I-0.782 J-1.100 F300
G2 X66.870 Y38.630 Z1.304 I0.782 J1.100 F300
G2 X65.305 Y36.430 Z1.156 I-0.782 J-1.100 F300
G2 X66.870 Y38.630 Z1.008 I0.782 J1.100 F300
Das ist übrigens ein Stück vom GCode mit dem ich den Gebläsetrichter für mein Hot End gemacht habe.

b) Falls es um die Längung der Gewindespindel geht, sehe ich die Sache eher wie mhier. Steckt der ganze Drucker in einem Gehäuse (wegen der Bauraumheizung) dann längen sich nicht nur die Spindeln sondern auch alle Teile des Druckers. Man könnte sich die Arbeit machen, die effektiven Längen, die betroffenen Materialien und die respektiven Ausdehnungskoeffizienten zusammensuchen und es genau ausrechnen. Zu einem großen Teil wird es sich aufheben - aber ein kleiner Teil könnte übrig bleiben (abhängig von den Materialien, die eingesetzt wurden). Mit viel Glück käme was heraus wie bei einer guten Pendeluhr, wo durch Kompensation die Längung des Pendels (durch Temperaturänderungen) fast völlig unterdrückt wird. Übrigens, die Spindel (zumindest meine) hat 2-3 Zehntel axiales Spiel in den Lagersitzen. Hebe ich die Y-Platte an, merke ich das Spiel. Das Spiel wurde eventuell wegen der Längenausdehnung mit hinein konstruiert.

c) Oder geht es um die Position des Z-Endschalters? Jedenfalls, so wie es mhier macht, zumindest falls er die Community verwendet (was er nicht tut), macht es beinahe gar nichts aus, wo der Endschalter platziert ist, solange man am Start des Druckauftrags noch die Bettoberfläche antastet (a la Z-Offset Scan) oder den Abstand genau definiert hat (was eigentlich umständlich ist). In so einem Fall dient der Z Endschalter nur mehr dazu, der Firmware 'wissen zu lassen', wo die Bettoberflache zu erwarten wäre, um es sauber abtasten zu können. Ich würde es vermutlich nicht so machen, also den unteren Endschalter verwenden, aber erwiesenermaßen klappt es (oder mhier bindet uns einen Bären auf, was ich stark bezweifle).

Falls keines dieser drei Punkte das betrafen, zu dem ich meine Meinung äußern sollte, müsstest du mir noch einige Hinweise geben.
mhier hat geschrieben:Meinst du das jetzt ironisch?
Nee, war mein Ernst. In ein zwei Tagen schreibe ich wieder was wegen Düsendurchmesser und Raupenbreite. Da passt die Aussage gut dazu.

Gesundheit!

mjh11
RF1000 (seit 2014) mit:
  Pico Hot End (mit eigenem Bauteil- und Hot End Lüfter)
  Ceran Bett
  FW RF.01.47 (von Conrad, modif.)

Die Natur kontert immer sofort mit einem besseren Idioten.
Benutzeravatar
AtlonXP
3D-Drucker Erfinder
3D-Drucker Erfinder
Beiträge: 3374
Registriert: So 15. Nov 2015, 20:55
Has thanked: 742 times
Been thanked: 588 times

Re: Wägezellen und z-Max-Homing

Beitrag von AtlonXP »

Danke rf1k_mjh11,
es geht hier um b) und c).
Es soll sicher (keine Kollision) und genau gehen und das auch mit meinem TronXY.

Zum Fräsen hatte ich einen Denkfehler.
Ja ich habe auch eine absolute und relative Bemaßung durcheinander gebracht.
Die Z- Achse läuft so wie die einer CNC Fräsmaschine.
Wenn man die Oberkannte des Werkstückes mit dem Fräser ankratzt und die Z- Achse ab nullt.
Fährt man relativ zum Werksrück mit -Z in das Werkstück ein.
Ich gehe davon aus, mhier das bleibt sich gleich, auch wenn der Z- Endschalter unten am Boden des Druckers sitzt.
Oder ändert sich da was am RF1000?

Das war es schon zum Fräsen…

rf1k_mjh11, das Pendel ist genial…

Vom Sehen her kannte ich es schon, von alten Bauernschrankuhren, in ihren alten Wohnzimmern.
Ich dachte damals zum Pendel, es sei nur Zierde und sieht hübsch aus.
Doch jetzt muss ich sagen, die Altdeutschen hatten sich dabei was gedacht!
Maschinenbauer halt! :coolbubble:

Ich vergleiche das gleich mal gedanklich mit unseren Z- Spindeln und bleibe bei meiner Meihnung. ;-)


Mein TronXY ist heute noch nicht fertig.
Es fehlt im Moment noch eine ordentliche Heizmatte.
Oder sollte ich doch lieber zwei unterschiedlich große nehmen?
Über den Winter hatte ich nur 9 C° im Keller!
Da werden nicht nur die Spindeln kürzer, sondern ganauso die Lust geringer, dort was umzutreiben.

Ich glaube mit einem Marlin Drucker ist man nicht in der Lage,
mit dem ersten Layer und einer Layerhöhe von nur 0,04 mm zu beginnen.

Mit meinem RF1000 habe ich solche Spielchen schon erfolgreich gebracht
und das war dabei kein Vasenmodus angewählt!

Irgendwo habe ich noch einen Aufsatz,
der die Unterschiede zur Kalibrierung eines Marlin Drucker und unserer RFX000 Klasse vergleicht.

Morgen schaue ich danach…


LG AtlonXP
Antworten

Zurück zu „Sonstiges“