Jogging bei Maschinen mit Endschaltern und Softlimits

  • Hi Grblgru,


    Erst mal vielen Dank für die coole Software, gefällt mir als Anfänger ziemlich gut (ich habe aber keinen praktischen Vergleich zu anderer CAM Software).


    Meine Selbstbau-CNC verfügt über einen Arduino UNO mit GRBL Software, GrblGru in der Version V4.2.0. Die CNC hat Endschalter und Softlimits sind konfiguriert. Diese Konstellation führt zumindest bei mir dazu, dass das Jogging praktisch nicht nutzbar ist. Ich musste in den Maschineneinstellungen um je 2mm kleinere Verfahrwege angeben, als möglich wären, damit überhaupt gelegentlich mal das Verfahren der Achsen funktioniert.

    Nach reichlich Studium von GCodes und dem Jogging von GRBL bin ich der Ansicht, dass es an den von Dir verwendeten Kommandos liegt. Die relative Bewegung über G91 auf die Maximal- bzw. Minimalpositionen der Maschinenkoordinaten erscheint mir von der Logik her falsch, "G91 Z0" soll ja die Achse in Z-Richtung um 0mm bewegen, was aber eben keine Bewegung zur Folge hat. Genau das Kommando wird beim Klicken des "Z-Achse nach oben"-Buttons gesendet.

    Richtig unschön wird es, wenn ich den "Z-Achse nach unten"-Button klicke und die Maschine steht gerade nicht auf dem Z-Nullpunkt. Denn dann kommt ein Grbl error 15, da das Kommando die Z-Achse über den maximalen Verfahrweg hinausfahren möchte.

    Wenn ich es irgendwo ändern könnte, dann würde ich die G91 durch G53 G0 ersetzen, damit würde die Maschine beim Jogging temporär in die Maschinenkoordinaten wechseln und könnte dann ohne Fehlermeldung die Endpositionen anfahren, da die Softlimits nicht überschritten würden. (Zumindest theoretisch, denn gelegentlich kommt es auch hier zu Fehlern, die aber wohl eher an meiner Verkabelung liegt, die ist noch sehr einfach gehalten :P )


    Der Button in der Mitte soll die Maschine wohl zurück zum Werkstück-Nullpunkt fahren und die Z-Achse 5mm darüber positionieren. Hier ist es so, dass das Programm die Z-Achse nicht 5mm über den Werkstück-Nullpunkt platziert, sondern 5mm über der aktuellen Position. Bei mehreren Wiederholungen summiert sich das auf, bis es wieder einen Grbl Error gibt.


    Dank der genialen Makro-Funktion kann ich aber um die Probleme herum arbeiten, ich habe mir einfach ein paar Jogging Kommandos definiert, mit denen ich die Maschine recht fix positionieren kann. :love:


    Grüße, Dieter

  • Hallo Alois,

    Tatsächlich ist dies laut GRBL Doku nicht nötig, da die Befehle im Jogging Modus nicht persistent sind, d.h. sie gelten nur während des Jogging Vorgangs. Für andere Steuerungen mag das anders sein und das von Dir beschriebene Vorgehen der richtige Ansatz.

    Grüße, Dieter

  • Hallo DiGo69,


    ja, mit den Jogging Tasten im Zusammenspiel mit den Endschaltern ist das so eine Sache.


    Ich muss dazu sagen, dass ich an meinen Maschinen keine Endschalter benutze und sie auch für völlig unnötig halte. Normalerweise fährt eine Achse nie auf einen Endschalter, sondern bleibt vorher irgendwo mit dem Fräser an der Aufnahme oder Werkstück hängen. :)


    Deshalb habe ich bei den Tasten einfach den Code "g1 g90 f??? Achse {großer Wert in Richtung}" hinterlegt. Damit fährt die jeweilige Achse ruhig mit Startrampe an und bremst entsprechend beim Loslassen der Taste. Um z.B. den exakten möglich Weg bis zum Endschalter anzugeben, müsste man beim Einschalten der Maschine eine Referenzfahrt gemacht haben. Das dauert aber viel zu lange und ich brauche sie auch nicht weil ich später einen lokalen Refpkt übernehme.

    Ein pulsartiges Aufschalten kurzer Wegstücke führt zu einem schlimmen ruckartigen Lauf. Auch kann dies zu einem Überlaufen der Buffers und einem Überlesen des Stopp Befehls führen. Lange Rede, kurzer Sinn. Ich habe schon viel ausprobiert und noch keine stabilere und sichere Handhabung wie die aktuelle gefunden. Bin aber offen für Verbesserungsvorschläge (wenn sie keine Referenzfahrt nötig macht).

    Es freut mich aber sehr, dass du dir mit den Macros für diese Situation eine Lösung schaffen konntest.


    Die Sache mit dem 'Button in der Mitte' habe ich aus Sicherheitsgründen eingebaut. Es gab da mittlerweile auch einige Situationen, bei denen ich dafür sehr dankbar war. Die Software weiß auch nach mehrmaligem Betätigen wo sie steht, und fährt danach immer wieder auf die richtige Position. Es sei denn du fährst absichtlich durch die Decke. :)


    Gruß

    GG

  • Hi GrblGru,


    Vielen Dank für die Antwort.


    Meine Maschine ist aktuell nur ein "Spielzeug" um mir die Details dazu zu erarbeiten, und daher recht klein (230x210x37 mm Verfahrweg). Von daher stört mich die Referenzfahrt nicht, die ist fix erledigt 😉. Das Deine Maschine keine Endschalter hat, habe ich schon irgendwo gelesen, daher ging ich auch davon aus, das dieses Problem mit den Endschaltern zusammenhängt. Ich möchte jedoch nicht darauf verzichten, da diese Maschine nur der Anfang ist und ich später eine größere bauen will, bei der ich eine fixe Position für den Werkzeugwechsel mit Längensensor haben will. Ich liebe halt solche Dinge 😉.


    Mein Verbesserungsvorschlag wäre, die Jogging-Kommandos konfigurierbar zu machen. Für Maschinen ohne Endschalter eben mit G91 und weit entfernten Zielen (und nicht um 0, wie es aktuell bei mir passiert bei Fahren ins Plus), für die Maschinen mit Endschaltern als Bewegung in den Maschinenkoordinaten. Bei Letzterem gäbe es aus meiner Sicht den Vorteil, dass die Maschine am Ende selber abbremsen würde und nicht über die Maximalpositionen hinausfahren will.

  • Ich muss dazu sagen, dass ich an meinen Maschinen keine Endschalter benutze und sie auch für völlig unnötig halte. Normalerweise fährt eine Achse nie auf einen Endschalter, sondern bleibt vorher irgendwo mit dem Fräser an der Aufnahme oder Werkstück hängen. :)

    Das ist totaler Unfug, bitte verbreite nicht solche Ammenmärchen.

    Da könnt man auch sagen das man keinen Not-Halt braucht, weil wenn man alles richtig macht, man den nicht benutzen muss.

    Grüße

    Daniel


    Idee -> QCAD-Pro -> Estlcam 11 -> TNG v2 -> PFM2.6

    Edited once, last by Bambusbjoern ().

  • Da stimme ich Daniel zu


    Bin gestern auch durch 2 Niederhalter gefahren, die waren aus Buche und wurden einfach plattgefräst..... da bleibt nix stehen, von daher finde ich Endschalter schon etwas Praktisches, denn nach fest kommt ab. :)

    Viele Grüsse


    Dieter


    Sie dürfen nicht alles glauben was sie denken. (Heinz Erhardt) ;)

  • Dazu kenne ich das Programm nicht und kann deshalb nicht sagen, ob das Programm auch die maximale Grösse der Maschine sicher erkennt.

    Für mich ist der Sensor an der Z-Achse sehr wichtig, ohne dem ich schon mehrfach in die Mechanik gefahren wäre. Mal schnell wegschauen und mit dem Handrad nach oben fahren. So bleibt die Achse sicher stehen, bevor es mir die Mechanik, KUS oder sonstiges zerlegt. Wie gesagt, jeder darf ja so entscheiden wie er möchte, und ich habe nur meine Meinung geschrieben, was ja auch jeder darf...

    Viele Grüsse


    Dieter


    Sie dürfen nicht alles glauben was sie denken. (Heinz Erhardt) ;)

  • Ich glaube wir sind uns alle einig, dass es sowohl Vor- als auch Nachteile von Endschalter gibt.

    Jeder hat da seine eigene Sicht, kann selber entscheiden und auch seine Meinung dazu äußern.

    Also alles gut :)


    DiGo69, ich finde deine Idee gut, und werde da mal was vorbereiten. Melde mich dann hier wieder.


    Gruß

    GG

  • Nein, das glaube ich nicht. Wo wären denn die Nachteile?

    Grüße

    Daniel


    Idee -> QCAD-Pro -> Estlcam 11 -> TNG v2 -> PFM2.6

  • Ich glaube wir sind uns alle einig, dass es sowohl Vor- als auch Nachteile von Endschalter gibt.

    Jeder hat da seine eigene Sicht, kann selber entscheiden und auch seine Meinung dazu äußern.

    Also alles gut :)

    Also Nachteile (mal abgesehen von der Arbeit die zu montieren) sind mir bei Endschaltern noch nie unter gekommen.

    Hab schon oft genug gehört das bei Motoren die genug Kraft entwickeln, auch schonmal beim anschlagen am Ende der Achse, die Motorachse oder Kupplung gebrochen ist, die KUS sich verzog oder ein Lager ausgerissen ist.


    Ich sehe da eher eigentlich nur Vorteile, die da bspw. wären:


    Schutz der Motoren, Kupplungen, Achsen und Lager.

    Möglichkeit einer Referenzfahrt der Achsen und somit...

    ... immer die Möglichkeit Koordinaten auf null zu stellen und....

    ... dadurch jederzeit das direkte unkomplizierte anfahren an einem fest montierten Werkzeuglängensensor an vordefinierten Koordinaten. Erleichtert und beschleunigt das Wechseln von Fräsern ungemein. :)


    Und die Nachteile wären .........??? Irgendwie fallen mir keine ein !!!! :/;)


    Gruss


    Dirk

    Weisheit des Lebens : Es gibt keine dumme Fragen, nur Menschen die dumm Antworten !

  • DiGo69


    in der neuen Version V4.2.4 findest du auf der Einstellungs-Seite einen neuen Eintrag "Jogging Befehl".

    Hier kannst du die Syntax z.B. " g53 g90 "eingeben, die dann beim Drücken einer Jogging Taste zum Controller gesendet wird. Das funktioniert aber nur, wenn du auch den Schalter "Endbegrenzung überwachen" eingeschaltet hast.


    Die eigentlichen Werte hole ich mir aus der Maschinen Verwaltung der jeweiligen Maschine. Hierbei werden die Begrenzungen und die Lage des Referenzpunkt berücksichtigt.


    Lass mich bitte wissen ob das funktioniert. Ich konnte es, wie bereits gesagt, nicht ausprobieren.


    Gruß

    GG




  • Sodale, jetzt konnte ich endlich testen:

    • funktioniert prinzipiell - :thumbsup:
    • Die Maschine verfährt sehr sanft und lässt sich gut kontrollieren/positionieren :thumbsup:
    • Es gibt aber ein paar Probleme:
      1. tatsächlich darf die Maschine nicht ganz auf "0" in den Maschinenkoordinaten fahren, denn dann wird der Endschalter angefahren und löst einen Alarm aus. Ich könnte mir hier vorstellen, dass hier die Zielposition = 0 - $27 (Pull-Off Distance) eine gute Wahl wäre (Nachtrag: siehe unten 3., da muss noch ein anderer "Hund begraben" sein, der sich mir aber noch nicht erschlossen hat)
      2. Die Z-Achse verwendet nicht die von mir konfigurierten Maschinenlimits, tatsächlich fährt die mir völlig unerklärliche Werte an (was natürlich zu einem Alarm führt):
        • nach oben: Z155.37
        • nach unten: Z115.37
      3. Nach dem Setzen des Ursprungs werden nicht die Maschinen-, sondern die Werkstückkoordinaten verwendet, damit funktioniert das Jogging dann leider nicht mehr :( . Womöglich liegt es daran, dass hier immer die Werkstückkoordinaten verwendet werden, nur sind diese direkt nach dem Homing identisch mit den Maschinenkoordinaten -$27, daher funktioniert das zunächst.


    Ist es eigentlich Absicht, dass sich der "ProgramData" Ordner verschoben hat? Der liegt nun unter C:\ProgramData\toe\grblgru\ statt zuvor unter C:\ProgramData\GrblGru\Macros\. Ich dachte schon ich habe alle Daten/Makros/Modelle verloren :P .

  • Na, ja "funktioniert prinzipiell" ist aber sehr höflich ausgedrückt. :)


    zu 1. Wie gesagt, benutze ich die Koordinaten aus der Maschinen Verwaltung. Da kannst du ja einfach einen kleinen Offset berücksichtigen.

    Also z.B. anstelle auf 0 auf 1 fahren.


    zu 2. Da war noch ein Bug von mir drin. Ist in der neuen Version V4.2.6 behoben. (Hoffentlich)


    zu 3. Ich kann das leider nicht ausprobieren und bin da auf deine Hilfe angewiesen.

    G53 müsste ja eigentlich funktionieren. Aber du kannst ja mal mit verschiedenen Kommandos experimentieren. Dafür gibt es ja die Zeile auf der Einstellungs-Seite


    Die Verschiebung des ProgramData Ordner ist beabsichtigt. Dadurch kannst du jetzt mehrere Versionen gleichzeitig installiert haben.

    Wenn du bei der Installation z.B. "C:\Program Files (x86)\toe\GrblGru_test" eingibst, wird der AppData-Ordner "C:\ProgramData\toe\grblgru_test" angelegt.



    Gruß

    GG

  • Höflichkeit - finde ich - gehört sich einfach. Zudem freue ich mich über Deine Arbeit, insbesondere, dass gleich der erste Aufschlag vom Prinzip her funktioniert hat. Du kannst es ja auch nicht selber testen, von daher habe ich mich bemüht ein möglichst objektives Feedback zu geben.


    Zu 1) das verstehe ich jetzt nicht wirklich, wie kann ich den Offset angeben? Woher die Maximalwerte kommen ist mir klar, aber eben nicht die Minimalwerte.


    Zu 2) top, teste ich ASAP!


    Zu 3) das hatte ich wohl zu ungenau beschrieben. Das Problem sind die vom Programm eingesetzten Zielwerte. Mir scheint es, als wären das berechnete Werte und nicht die Werte aus der Maschinenkonfiguration. Z.b. verschiebe ich die Y-Null um -10, dann wird beim Jogging ins Plus eine 10 als Y-Zielwert übergeben. Die Maschinenkoordinaten können aber nie größer als 0 werden. Eine Berechnung ist hier auch nicht nötig, denn das Maschinenkoordinatensystem wird nur beim Homing einmalig definiert.

  • Hmm, ich habe mich bisher noch nicht viel mit der Referenzfahrt beschäftigt. Bin deshalb sehr unsicher. Aber man kann doch den Refpkt in alle 4 Ecken legen.

    Und ich gehe davon aus, dass bei einer Fahrt nach rechts X immer positiver und bei einer Fahrt nach hinten Y immer positiver wird.

    Darum berücksichtige ich neben dem eigentlichen max. Fahrweg auch die Lage des Referenzpunktes. Also z.B. Xr = 0 -> Referenzpunkt rechts, oder z.B. Xr = -500 beim Referenzpunkt links (bei Begrenzung X = 500) Einmal muss bei einer Fahrt nach links X=-500 und beim anderen Mal X=0 beim Jogging gesendet werden.

    Also muss ich doch rechnen. Oder sehe ich das falsch ?


    Gruß

    GG

  • Man kann bei GRBL konfigurieren, wo der Referenzpunkt liegt, sprich in welche Richtung die jeweiligen Achsen fahren sollen um ihn zu finden ($23). Der Referenzpunkt liegt also an einer der acht möglichen Ecken eines Quaders. (Mein Referenzpunkt liegt derzeit hinten rechts oben, anfangs hatte ich den mal vorne links oben.) Durch auslesen von $23 könntest Du somit herausfinden, wo der Referenzpunkt liegt. Danach einmalig die Zielwerte für das Jogging berechnen reicht völlig aus, da sich der Referenzpunkt der Maschinenkoordinaten ja nicht mehr ändert.

  • In der neuen Version V4.2.8 habe ich jetzt in der Maschinenverwaltung jeweils Werte für Plus und Minus eingerichtet.

    Plus ist dabei jeweils rechts (X), hinten (Y) oder oben (Z)

    Diese Werte werden nun 1:1 für die Jogging Befehle verwendet. Damit kannst du nun auch einen kleinen Offset aufschalten, um nicht auf die Endschalter zu fahren.

    Ich habe es auch soweit ich konnte ausprobiert, und es scheint auch mit dem G53 Befehl zu funktionieren.

    Gebe mir doch bitte Bescheid, ob das in der Praxis auch so ist.


    Gruß

    GG