mhier hat geschrieben:Man muss sich dabei ja auf die X/Y-Schalter verlassen. Geht das auf 0.1 bis 0.2mm genau?
Wenn man das ausmessen will: Es gibt im aktuellen Mod das Feature "Checkhome"
configuration.h hat geschrieben:#define FEATURE_CHECK_HOME 0 -> 1
Das aktiviert einen neuen Beta-GCode:
M3028
Die Optionen für den Code sind z.B. X1 oder Y1 fürs Testen der Achse X bzw. Y.
Beispiel: M3028 X1
Wenn man vorher G28-gehomed hat und die X-Achse (Beispiel) in irgendeiner Art verfahren wurde, dann tickert dieser GCode die Achse zurück auf die Home-Position.
Dort gibt er
- Differenz zu den Soll-Steps
- Hysterese des Schalters
in der Log aus. Und anschließend fährt er wieder dort hin wo er vorher war. Wir wollten damit auf Step-Verluste testen. Aber um die Genauigkeit der Schalter und deren Hysterese zu messen ist der GCode ebenfalls praktisch.
Hysterese heißt, dass der Punkt an dem ich den Schalter losgelassen habe nicht der ist an dem er gedrückt wird. Fahre ich also in den Schalter, schaltet er an einer definierten Position. Fahre ich etwas zurück, lässt er erst nach einem bestimmten Weg-Stück wieder los - normalerweise nicht sofort nach 1 Step. Somit hat jeder Schalter 2 Schaltpunkte auf der Achse -> Aus-An und An-Aus.
Teilt man anschließend die Ergebnis-Steps durch den Steps-Pro-Millimeter-Wert, der bei euch im EEPROM für die jeweilige Achse hinterlegt ist, wisst ihr die Distanz in Millimeter.
Meine Werte:
X = 152,38 Steps / Millimeter
Y = 152,38 Steps / Millimeter
Z = 2560 Steps / Millimeter
Beispiele:
Hysterese "18" auf Achse X sind 0,118mm.
Wiederholgenauigkeit "3" auf Achse X sind 0,0197mm
nikibalboa hat geschrieben:Jup läuft schon recht gut aber sollte es mit m3070 s1 oder m3071alleine nicht auch reichen für eine Pause so wie beim start?
Die Genauigkeit war bisher sehr gut aber so viel hab ich auch noch nicht gefräst.
Lg
Darüber was "logisch" und "bedienerfreundlich" ist, kann ich nur spekulieren. Wenn du mir sagst, dass alleine m3070 ausreichen muss, um in die Pause zu gehen und dass der Code 3071 automatisch folgen muss, dann baue ich dir das ein!
http://www.rf1000.de/wiki/index.php/GCo ... t_wurde.29
http://www.rf1000.de/wiki/index.php/GCo ... Cckt_wurde
So läuft es jetzt:
M3070 kommt im Drucker an. Er legt die Pause in den Cache ans Ende.
Direkt danach kommen weitere Befehle, die unter Umständen "sofort" irgendeine Aktion auslösen.
Darum brauchen wir diesen M3071, um das zu verhindern.
Ich werde mir mal gedanken machen, welche Race-Zustände und Zufallsprobleme wir uns damit einhandeln. Evtl. sollte immer nach dem einlegen der Pause in die Warteschleife auf das abarbeiten der aktuellen Warteschleife gewartet werden. Das was ich bisher drüber weiß passt noch nicht 100% logisch zum Anwendungsfall.
LG
Edit:
Screenshot_2.png
Ich teste das!
> So sollte der M3070 im Cache landen, am Ende - so wie im GCode-Verlauf eingeordnet.
Dann muss er direkt auf ausführung des Caches warten. Dann muss er auf Aufhebung der Pause warten. Ich glaube - wenn nichts dagegenarbeitet - müsste somit eine Pause mit nur einem einzelnen GCode möglich sein.
Dafür verliert man evtl. die Möglichkeit während der Pause das Display mit ner Meldung zu beschreiben?
frase.png