MaXYposi
Alle Heise-Foren > Make > Heft-Projekte > MaXYposi > Software Bug: Bedienung mit J…
Ansicht umschalten
Avatar von ifranzki
  • ifranzki

48 Beiträge seit 21.05.2017

Software Bug: Bedienung mit Jogpad nach PROBE (G38.2) funktioniert nicht

Hallo Zusammen,

habe einen Bug in der GRBL Software gefunden und gefixed:

Wenn man einen PROBE Cycle ausführt (per G38.2), und nach erfolgreichem Probing dann die Jog-Tasten auf den Bedienpult benutzt, dann verhält sich das System ganz und gar nicht wie erwartet. Beim Drücken eines Jog-Buttons bewegt sich die Achse erst mal gar nicht. Erst beim Loslassen des Jog-Buttons fängt die Ache an sich zu bewegen, und hört leider gar nicht mehr damit auf.... Die Bewegung lässt sich nur per Reset-Button stoppen. Das kann unter blöden Umständen sogar zu Werkzeugbruch führen!

Nach längerem Suchen habe ich die Lösung im Code gefunden. Ist meines Erachtens ein Bug im originalen GRBL Code, welcher sich aber erst bei der Verwendung des Jogpads auswirkt:

Im Datei Motion_control.c in Funktion mc_probe_cycle() fehlt gegen Ende folgende Zeile:

// Reset the stepper and planner buffers to remove the remainder of the probe motion.
sys.step_control = STEP_CONTROL_NORMAL_OP; // <---- diese Zeile einfügen
st_reset(); // Reset step segment buffer.
plan_reset(); // Reset planner buffer. Zero planner positions. Ensure probing motion is cleared.
plan_sync_position(); // Sync planner position to current machine position.

Das führt dazu, dass sys.step_control zurückgesetzt wird sobald das Probing beendet ist. Ohne das Zurücksetzen bleibt sys.step_control auf STEP_CONTROL_END_MOTION stehen. Das verhindert, dass Funktion st_prep_buffer() in stepper.c überhaupt etwas tut. Das erste Statement in st_prep_buffer() prüft ob STEP_CONTROL_END_MOTION gesetzt ist und returned sofort wenn das der Fall ist. st_prep_buffer() wird aber in jogpad_check() in Datei jogpad.c gerufen, wenn ein Jog-Button gedrückt wurde, um die Achse in Bewegung zu setzen. Ohne das zurücksetzen von sys.step_control nach dem Probing passiert deshalb erst mal gar nichts wenn man den Job-Button drückt. Erst beim Loslassen des Buttons wird dann der Bewegungsbefehl ausgeführt (und lässt sich nicht mehr stoppen).

Wer also Probing mit dem MaXYposi verwenden möchte, ändert besser die eine Zeile, um Werkzeugbruch vorzubeugen.

Gruß, Ingo

Bewerten
- +
Ansicht umschalten