Der finale(?) Z-Logik-Thread. Bitte mitmachen!
Verfasst: Sa 5. Mär 2016, 02:34
An dieser Stelle möchte ich einmal beschreiben, wie ich mir die Z-Logik ausgestalten würde, wenn ich entsprechende Kenntnis der Programmierung hätte, und ich würde mir wünschen, wenn Du hierauf dieses mal auch mal konkret antworten würdest, und das nicht wieder stillschweigend untergeht. Insbesondere würden mich Deiner/des CTCs Meinung nach neu hinzugekommene Gefahren interessieren oder aber Punkte, wo und warum sich eurer Meinung nach die Funktion verschlechtern würde.
Ich würde mich auch freuen, wenn Ihr anderen dazu mal etwas sagen würdet, ob Ihr eine derartige Logik für sinnvoll, schlüssig oder übertrieben und potentiell gefährlich haltet. Oder anders gefragt: Wer würde sich eine FW die so arbeiten würde installieren, wer nicht und warum nicht?
Der Drucker wird auf eine mechanische Grundeinstellung von 0,5mm gebracht (Abstand Bett-Extruder bei Auslösung des Z-Ref Schalters)
Bei aktivierter Z-Kompensation:
Auch hier wird beim Druckstart nochmals der reale Abstand ermittelt. Da in diesem Fall keine HBS Matrix vorliegt, wird mit 0,5mm (bzw. dem in der configuration.h definierten Wert) verglichen, und die Korrektur auf diesen Wert angewendet. Der Abstand [an der Stelle an der die mechanische Grundeinstellung vorgenommen wurde] entspricht somit, unabhängig von Z-Ref Schalter Wiederholungsgenauigkeint, Haftvermittler auf dem Bett etc. 0,5mm [bzw. dem definierten Wert]. Das dieser Abstand aufgrund der Bettunebenheit nicht überall korrekt ist, liegt wiederum in der Natur der Sache und und bei deaktivierter Z-Kompensation auch heute schon so.
Wenn der Drucker so arbeiten würde wäre er leichter einzustellen, das Verhalten wäre meiner Meinung nach logisch, schlüssig und nachvollziehbar (bzw. vorhersagbar), die Genauigkeit wäre deutlich höher und unter wechselnden Bedingungen vor allen Dingen konstant, und die Anwendung einfacher. Gleichzeitig werden potentielle Crashgefahren durch Benutzerbasteleien eliminiert, da diese garnicht mehr erforderlich wären. Einfach gesagt, es wäre ein großer Schritt in Richtung Plug&Play und insbesondere etwas, mit dem der RFx000 sich von den Mitbewerbern distanzieren könnte.
Und ja, natürlich wäre es eine nicht ganz triviale Anderung der Firmware.
Dieses ganze neue Verhalten gestaltet man so, dass man es in der configuration.h zunächst freischalten muß. Dies versieht man mit dem Hinweis, dass die Freischaltung auf eigene Gefahr erfolgt, falls man nicht das dann separat erhältliche Z-Schalter-Lichtschranken-Umbau-Kit verwendet. Damit generiert man noch zusätzlichen Umsatz an Umbaukits (welche vom RF2000 ja bereits weitgehend entwickelt sind) und hält sich gleichzeitig Haftungsansprüche wegen gefalteten Z-Schalter Platinen vom Hals.
Ich würde mich auch freuen, wenn Ihr anderen dazu mal etwas sagen würdet, ob Ihr eine derartige Logik für sinnvoll, schlüssig oder übertrieben und potentiell gefährlich haltet. Oder anders gefragt: Wer würde sich eine FW die so arbeiten würde installieren, wer nicht und warum nicht?
Der Drucker wird auf eine mechanische Grundeinstellung von 0,5mm gebracht (Abstand Bett-Extruder bei Auslösung des Z-Ref Schalters)
Bei aktivierter Z-Kompensation:
- Vorausgesetzt sei ein erfolgreich durchgeführter HBS
- Durch den HBS ist dem Drucker Z-Min bekannt (Z-Min definiert den absoluten Nullpunkt, also Abstand Bett-Extruder = 0,0mm).
- Jeder Fahrbefehl kleiner Z-Min wird in allerletzter Konsequenz grundsätzlich verhindert.
- Zusätzlich wird in der configuration.h eine Sicherheitszone definiert. Standard sei die minimale Z-Druckauflösung 0,05mm.
- Der Drucker wird somit mit keinem Fahrbefehl näher als diesen definierten Abstand fahren.
- Da der Wert vom Anwender aber geändert werden könnte gilt weiterhin: Niemals Z-Min < 0,0 anfahren dürfen.
- Ein per M3006 übergebener Z-Offset bleibt gültig. Für Ihn gilt aber: Vorrang hat der definierte Mindestabstand (0,05mm)
- Falls dieser vom Benutzer geändert gilt weiterhin: Niemals Z-Min < 0,0
- Jeder Z-Fahrbefehl positioniert das Bett auf genau den angeforderten, realen Abstand. Ein G1 Z0.5 fährt also das Bett so, dass eine 0.5mm Fühlerlehre exakt zwischen Bett und Extruder passt. Analog dazu zeigt das Display auch einen Abstand von 0,5mm an.
- Ein nachfolgender Fahrbefehl auf eine niedrigere Höhe wird ohne Einschränkung ausgeführt. Ein nachfolgendes G1 Z0.1 ändert den Abstand Bett-Extruder von zuvor 0,5mm auf jetzt 0,1mm realen Abstand.
- Auch hier gilt: Das Bett kann nicht näher als die definierten 0.05mm heranfahren. Da dieser Wert noch immer änderbar ist, kann das Bett in keinem Fall näher als Z-Min < 0.00 fahren.
- Die Z-Anzeige im Display zeigt immer den realen Abstand an, wie man ihn mit "Pause drücken und Fühlerlehre dazwischenschieben" ebenfalls ermitteln könnte.
- Beim Start eines Drucks, wenn der Drucker den ersten G1 Zxxx Befehl erhält, macht er grundsätzlich eine einmalige Abstandsmessung (also einen HBS mit einem Abtastpunkt). Dazu wird 1mm über der aufgrund der HBS Matrix angenommenen Position begonnen, damit ein thermisch gelängter Extruder nicht versehentlich im Bett landet.
- Der ermittelte Wert wird mit dem bekannten HBS Wert dieser Stelle verglichen, die gesamte HBS Matrix dann ggfs. um die Differenz verschoben.
- Ein eventuell gesetztes M3006 wird dazugezählt, sodaß eine Beeinflussung des realen Abstands möglich ist - mit den bereits bekannten Einschränkungen.
- Das Display zeigt weiterhin den realen Abstand an. Bei M3006 S100 und einem Fahrbehefehl G1 Z1.0 wird also Z=1.1 angezeigt, da dies ja auch der reale Abstand ist. Bei M3006 S100 und G1 Z0.0 wäre Z=0,15 (Z0.0 würde auf einen realen Abstand von 0.05 mm fahren, dazu 100µm statischer Offset = 0,15mm. Auch dies wäre in diesem Fall der reale Abstand.
- Im Ergebnis könnte man sich 100% darauf verlassen, dass der Abstand Extruder-Bett genau der ist, den man haben möchte - unabhängig von Extrudertemperatur, Z-Ref Schalter Wiederholgenauigkeit, Haftvermittler auf dem Bett etc.
- Gleichzeitig ist ein Crash wirksam ausgeschlossen (bei Beibehaltung der Referenzwerte 0,05mm/0,5mm, mit Hinweis das Verkleinerung der Werte auf Gefahr des Anwenders erfolgt).
Auch hier wird beim Druckstart nochmals der reale Abstand ermittelt. Da in diesem Fall keine HBS Matrix vorliegt, wird mit 0,5mm (bzw. dem in der configuration.h definierten Wert) verglichen, und die Korrektur auf diesen Wert angewendet. Der Abstand [an der Stelle an der die mechanische Grundeinstellung vorgenommen wurde] entspricht somit, unabhängig von Z-Ref Schalter Wiederholungsgenauigkeint, Haftvermittler auf dem Bett etc. 0,5mm [bzw. dem definierten Wert]. Das dieser Abstand aufgrund der Bettunebenheit nicht überall korrekt ist, liegt wiederum in der Natur der Sache und und bei deaktivierter Z-Kompensation auch heute schon so.
Wenn der Drucker so arbeiten würde wäre er leichter einzustellen, das Verhalten wäre meiner Meinung nach logisch, schlüssig und nachvollziehbar (bzw. vorhersagbar), die Genauigkeit wäre deutlich höher und unter wechselnden Bedingungen vor allen Dingen konstant, und die Anwendung einfacher. Gleichzeitig werden potentielle Crashgefahren durch Benutzerbasteleien eliminiert, da diese garnicht mehr erforderlich wären. Einfach gesagt, es wäre ein großer Schritt in Richtung Plug&Play und insbesondere etwas, mit dem der RFx000 sich von den Mitbewerbern distanzieren könnte.
Und ja, natürlich wäre es eine nicht ganz triviale Anderung der Firmware.
Dieses ganze neue Verhalten gestaltet man so, dass man es in der configuration.h zunächst freischalten muß. Dies versieht man mit dem Hinweis, dass die Freischaltung auf eigene Gefahr erfolgt, falls man nicht das dann separat erhältliche Z-Schalter-Lichtschranken-Umbau-Kit verwendet. Damit generiert man noch zusätzlichen Umsatz an Umbaukits (welche vom RF2000 ja bereits weitgehend entwickelt sind) und hält sich gleichzeitig Haftungsansprüche wegen gefalteten Z-Schalter Platinen vom Hals.