G-Code Umsetzung

  • Hallo,


    bin neu hier im Forum und hab eine allgemeine Frage zur Steuerung.


    Zur Zeit arbeite ich noch mit Filou und WinPc-Nc, jetzt versuche ich aber meine Fräse auf einen Arduino mit CNC V3 Shield umzustellen und diesen auch selbst zu programmieren. Wie ich G-Codes erzeuge und die Schrittmotoren ansteuere ist mir bereits klar. Probleme hab ich noch bei der Auswertung der G-Codes.


    Wenn zum Beispiel ein Kreis gefräst werden soll, werden dann die x und y Motoren in eine Schleife immer abwechselnd für einen Schritt angesteuert oder wie wird das gemacht?




    Hoffe mir kann da jemand weiterhelfen.:)


    Gruß

    Janik

  • Zitat

    , werden dann die x und y Motoren in eine Schleife immer abwechselnd für einen Schritt angesteuert oder wie wird das gemacht?

    Hallo Janik,


    Beim Kreis werden beide Motoren angesteuert , nicht abwechselnd , sondern es laufen Beide gleichzeitig.

    Der Kreis benötigt zudem den X , y Koordinaten noch die I & J Werte.


    Ist dies mit deiner Frage gemeint.


    VG

    Uli

  • Danke für die schnelle Antwort Uli.


    Wie würde dann das Programm für zwei Motoren aussehen? Also mein Problem ist gerade das ich nicht weiß wie man beide Motoren gleichzeitig ansteuert. Meine Idee wäre gewesen, eine Schleife zu machen die in jedem Durchgang die x und y Achse anspricht und sie falls es der Kontor entspricht jeweils um ein Schritt in die entsprechende Richtung dreht.


    Oder wie wird das bei anderen Programmen wie Estlcam usw. gemacht?



    Gruß

    Janik

  • Servus Janik


    Also nur mit Arduino und CNC-Shield wird das meiner Meinung nicht so einfach funktionieren.

    Du wirst schon zusätzlich Estlcam oder was ähnliches brauchen, um G-Code an den Arduino zu schicken.

    Wenn du dich mit G-Code auskennst, kannst du den für einfache Sachen selbst schreiben, wenns etwas komplexer wird, wäre auch da ein entsprechendes Program von Vorteil das zb. aus einer Dxf-Zeichnung den G-Code erzeugt.

    Ich hab vor längerer Zeit mal sowas probeweise aufgebaut:

    Arduino Uno mit CNC-Shield, 3 Stk. Nema 17 Schrittmotoren und Estlcam, das lief, soweit ich mich erinnere einwandfrei.

    Ich kann dir im Moment nichts näheres dazu sagen, aber bei Interesse kann ich das ganze nochmals "ausgraben" :)


    Gruß Anton

  • Der Janik will doch die Software selber schreiben. Also einen G-Code encoder der dann die Motore ansteuert.

    Janik, sehe da mal nach, bevor du das Rad neu erfindest.

    Es kann sicher alles verbessert werden. Aber dazum musst du sicher sehr gut programmieren können.


    https://github.com/tinkersprojects/G-Code-Arduino-Library


    Gruß

    Hans

  • Ja danke Hans.


    Mir geht es weniger darum die Software zu verbessern. ich brauche bestimmte Konturen bei denen die A-Achse was anderes macht als normal, und das ist schwierig mit den Standardprogrammen hinzubekommen. Deswegen dachte ich man könnte die sich die Aktionen in G-Codes überlegen und dann die Motoren mit dem Arduino ansteuern.

    Problem ist das ich nicht weiß wie ich effizient alle Motoren gleichzeitig bediene und diese aufeinander abstimme. Meine Idee war ja eine Schleife zumachen, in der jeder Motor einmal angesprochen wird. Es wird geschaut ob die Kontur es zulässt das der Motor EINEN Schritt macht, und falls ja macht er den Schritt(falls nein, macht der Motor nichts) und das Programm springt zum nächsten Motor. So würde man meines Erachtens eine halbwegs flüssige Kontur hinbekommen.



    Gruß

    Janik

  • Servus Janik


    Vielleicht kannst du mal was reinstellen, damit man sieht, was genau du machen willst, eine Zeichnung oder ähnliches.

    Es wäre ja möglich, G-Code mit normalen Standardprogrammen zu erzeugen und dann nachträglich die Befehle für die A-Achse händisch zu ändern.

    Ist zwar etwas umständlich, wäre aber eine Möglichkeit.


    Gruß Anton

  • Zitat

    ich brauche bestimmte Konturen bei denen die A-Achse was anderes macht als normal

    Aha! Und was macht die dann tolles? Entweder man dreht die A-Achse in einen bestimmten Winkel und fräst dann ganz normal XYZ oder X(Y)Z und A werden gleichzeitig bewegt. Das wäre z.B. das fräsen einer 3D-Büste.

    Irgend was zwischen diesen beiden kenne ich nicht.


    Ein Beispiel wäre echt hilfreich.


    Jan

  • Ich habe noch nicht ganz verstanden wo dein Problem ist. Wenn du die Steuerung selber machen willst werden die Endstufen mit einem Puls für Drehen und einen für Richtung angesteuert. Bei 4 Motoren sind das 8 Bit die man parallel auf einen Port ausgeben kann. Da laufen dann alle Motoren gleichzeitig.

  • Ich schreib meine Bachelorarbeit an einem Institut in Karlsruhe und da haben wir ein Industrieprojekt reinbekommen, da sich bearbeiten soll. Leider darf ich auch nicht so viel sagen, aber es geht um Anwenderkräfte die auf Maschinen übertragen werden sollen.