Dieses Kapitel behandelt wichtige Benutzerkonzepte, die Sie verstehen sollten, bevor Sie versuchen, eine CNC-Maschine mit G-Code zu betreiben.

1. Trajectory Control

1.1. Trajectory Planning

Trajektorie Planung, im Allgemeinen, ist das Mittel, mit dem LinuxCNC folgt dem Pfad von Ihrem G-Code-Programm angegeben, während immer noch innerhalb der Grenzen Ihrer Maschine.

Ein G-Code-Programm kann nie vollständig befolgt werden. Stellen Sie sich zum Beispiel vor, Sie geben als einzeiliges Programm den folgenden Zug an:

G1 X1 F10 (G1 ist die lineare Bewegung, X1 ist das Ziel, F10 ist die Geschwindigkeit)

In der Realität kann nicht die gesamte Bewegung mit F10 durchgeführt werden, da die Maschine aus dem Stillstand heraus beschleunigen, sich in Richtung X=1 bewegen und dann abbremsen muss, um wieder anzuhalten. Manchmal wird ein Teil der Bewegung mit F10 ausgeführt, aber bei vielen Bewegungen, insbesondere bei kurzen, wird die angegebene Vorschubgeschwindigkeit überhaupt nicht erreicht. Kurze Bewegungen in Ihrem G-Code können dazu führen, dass Ihre Maschine langsamer und bei längeren Bewegungen schneller wird, wenn der naive Nockendetektor nicht mit G64 Pn verwendet wird.

Die oben beschriebene grundlegende Beschleunigung und Verzögerung ist nicht komplex und es müssen keine Kompromisse eingegangen werden. Die in der INI-Datei angegebenen Maschinenbeschränkungen wie maximale Achsengeschwindigkeit und Achsenbeschleunigung müssen vom Trajektorienplaner eingehalten werden.

Für weitere Informationen zu den Trajektorie-Panner INI-Optionen siehe den Abschnitt zu Trajektorien im INI Kapitel.

1.2. Path Following

Ein weniger einfaches Problem ist das der Bahnverfolgung. Wenn Sie eine Ecke in G-Code programmieren, kann der Bahnplaner mehrere Dinge tun, die alle in einigen Fällen richtig sind:

  • Es kann genau an den Koordinaten der Kurve bis zum Stillstand abbremsen und dann in die neue Richtung beschleunigen.

  • Sie kann auch das so genannte Blending durchführen, d. h. die Vorschubgeschwindigkeit beim Durchfahren der Ecke aufrechterhalten, so dass die Ecke abgerundet werden muss, um die Maschinenvorgaben einzuhalten.

Sie sehen, dass es hier einen Kompromiss gibt: Sie können die Geschwindigkeit verringern, um eine bessere Bahnverfolgung zu erhalten, oder die Geschwindigkeit beibehalten und eine schlechtere Bahnverfolgung haben. Je nach Art des Schnitts, des Materials, des Werkzeugs usw. kann der Programmierer unterschiedliche Kompromisse eingehen.

Auch bei schnellen Bewegungen wird die aktuelle Bahnsteuerung beachtet. Mit Bewegungen, die lang genug sind, um die maximale Geschwindigkeit auf einer Maschine mit geringer Beschleunigung und ohne vorgegebene Bahntoleranz zu erreichen, kann man eine ziemlich runde Ecke erhalten.

1.3. Programming the Planner

Die Befehle zur Steuerung der Trajektorie lauten wie folgt:

G61

(Exact Path Mode) Der G61 fährt den programmierten Punkt exakt an, auch wenn das bedeutet, dass er vorübergehend zum Stillstand kommt, um die Richtung zum nächsten programmierten Punkt zu ändern.

G61.1

(Exakter Stoppmodus) G61.1 weist den Planer an, einen exakten Stopp an jedem Segmentende zu setzen. Die Bahn wird genau eingehalten, aber vollständige Vorschubstopps können für das Werkstück oder das Werkzeug destruktiv sein, je nach den Besonderheiten der Bearbeitung.

G64

(Blend Without Tolerance Mode) „G64“ ist die Standardeinstellung, wenn Sie LinuxCNC starten. G64 mischt nur und der naive Nockendetektor ist nicht aktiviert. G64 und G64 P0 weisen den Planer an, die Bahnfolgegenauigkeit zu opfern, um die Vorschubgeschwindigkeit aufrechtzuerhalten. Dies ist für einige Arten von Materialien oder Werkzeugen erforderlich, bei denen exakte Stopps schädlich sind, und kann gut funktionieren, solange der Programmierer darauf achtet, dass der Pfad des Werkzeugs etwas kurviger ist als vom Programm angegeben. Wenn Sie G0-Bewegungen (Schnellfahrten) mit G64 verwenden, seien Sie vorsichtig bei Freiraumbewegungen und lassen Sie genügend Abstand, um Hindernisse zu überwinden, basierend auf den Beschleunigungsfähigkeiten Ihrer Maschine.

G64 P- Q-

(Blend With Tolerance Mode) This enables the naive cam detector and enables blending with a tolerance. If you program G64 P0.05, you tell the planner that you want continuous feed, but at programmed corners you want it to slow down enough so that the tool path can stay within 0.05 user units of the programmed path. The exact amount of slowdown depends on the geometry of the programmed corner and the machine constraints, but the only thing the programmer needs to worry about is the tolerance. This gives the programmer complete control over the path following compromise. The blend tolerance can be changed throughout the program as necessary. Beware that a specification of G64 P0 has the same effect as G64 alone (above), which is necessary for backward compatibility for old G-code programs. See the G64 section of the G-code chapter.

Übergang (engl. blending) ohne Toleranz

Der kontrollierte Punkt berührt jede angegebene Bewegung an mindestens einem Punkt. Die Maschine wird sich nie mit einer solchen Geschwindigkeit bewegen, dass sie am Ende der aktuellen Bewegung (oder der nächsten Bewegung, wenn Sie eine Pause machen, wenn das Mischen bereits begonnen hat) nicht genau zum Stillstand kommen kann. Der Abstand vom Endpunkt der Bewegung ist so groß, wie er sein muss, um den besten Konturvorschub zu erhalten.

Naiver CAM-Detektor

Aufeinanderfolgende G1-Bewegungen, die nur die XYZ-Achsen betreffen und weniger als Q- von einer geraden Linie abweichen, werden zu einer einzigen geraden Linie zusammengeführt. Diese zusammengefasste Bewegung ersetzt die einzelnen G1-Bewegungen für die Zwecke der Überblendung mit Toleranz. Zwischen den aufeinanderfolgenden Bewegungen darf der kontrollierte Punkt nicht weiter als P- von den tatsächlichen Endpunkten der Bewegungen entfernt sein. Der kontrollierte Punkt berührt bei jeder Bewegung mindestens einen Punkt. Bei G2/3-Bewegungen in der G17 (XY)-Ebene, wenn die maximale Abweichung eines Bogens von einer geraden Linie kleiner ist als die G64 Q-Toleranz, wird der Bogen in zwei Linien unterteilt (vom Bogenanfang zum Mittelpunkt und vom Mittelpunkt zum Ende). Diese Linien unterliegen dann dem naiven Nockenalgorithmus für Linien. Auf diese Weise profitieren sowohl Linien-Bogen-, Bogen-Bogen- und Bogen-Linien-Fälle als auch Linien-Linien von dem "naive cam detector". Dies verbessert die Konturierungsleistung durch Vereinfachung des Pfades.

In der folgenden Abbildung stellt die blaue Linie die tatsächliche Maschinengeschwindigkeit dar. Die roten Linien stellen das Beschleunigungsvermögen der Maschine dar. Die horizontalen Linien unter jedem Diagramm stellen die geplante Bewegung dar. Das obere Diagramm zeigt, wie der Bahnplaner die Maschine bei kurzen Bewegungen abbremst, um innerhalb der Grenzen der Beschleunigungseinstellung der Maschine zu bleiben, damit sie am Ende der nächsten Bewegung exakt zum Stillstand kommt. Das untere Diagramm zeigt die Wirkung des naive cam detectors, der die Bewegungen kombiniert und die Geschwindigkeit besser als geplant beibehält.

Naiver CAM-Detektor
Abbildung 1. Naiver CAM-Detektor

1.4. Planning Moves

Vergewissern Sie sich, dass die Verfahrwege für Ihre Maschine/Ihr Material "lang genug" sind. Da sich die Maschine niemals mit einer solchen Geschwindigkeit bewegt, dass sie am Ende der aktuellen Bewegung nicht zum Stillstand kommen kann, gibt es eine Mindestbewegungslänge, die es der Maschine ermöglicht, die gewünschte Vorschubgeschwindigkeit bei einer bestimmten Beschleunigungseinstellung beizubehalten.

Die Beschleunigungs- und Abbremsphase verwenden jeweils die Hälfte der INI-Datei MAX_ACCELERATION. Bei einem Blend, der eine exakte Umkehrung darstellt, führt dies dazu, dass die Gesamtbeschleunigung der Achse gleich der MAX_ACCELERATION der INI-Datei ist. In anderen Fällen ist die tatsächliche Maschinenbeschleunigung etwas geringer als die Beschleunigung der INI-Datei.

Um den Vorschub aufrechtzuerhalten, muss die Bewegung länger sein als die Strecke, die benötigt wird, um von 0 auf die gewünschte Vorschubgeschwindigkeit zu beschleunigen und dann wieder anzuhalten. Wenn man A als 1/2 der INI-Datei MAX_ACCELERATION und F als Vorschubgeschwindigkeit in Einheiten pro Sekunde verwendet, ist die Beschleunigungszeit ta = F/A und die Beschleunigungsstrecke da = F*ta/2. Die Verzögerungszeit und -strecke sind gleich, so dass die kritische Strecke d = da + dd = 2 * da = F2/A beträgt.

Bei einer Vorschubgeschwindigkeit von 1 Zoll pro Sekunde und einer Beschleunigung von 10 Zoll/sec2 beträgt der kritische Abstand beispielsweise 12/10 = 1/10 = 0,1 Zoll.

Bei einer Vorschubgeschwindigkeit von 0,5 Zoll pro Sekunde beträgt der kritische Abstand 52/100 = 25/100 = 0,025 Zoll.

2. G-Code

2.1. Standardeinstellungen

Beim ersten Start von LinuxCNC werden standardmäßig viele G- und M-Codes geladen. Die aktuellen aktiven G- und M-Codes können auf der Registerkarte MDI im Fenster Aktive G-Codes: in der AXIS-Schnittstelle angezeigt werden. Diese G- und M-Codes definieren das Verhalten von LinuxCNC und es ist wichtig, dass Sie verstehen, was jeder einzelne tut, bevor Sie LinuxCNC ausführen. Die Standardeinstellungen können geändert werden, wenn eine G-Code-Datei und links in einen anderen Zustand als wenn Sie Ihre LinuxCNC-Sitzung gestartet. Die beste Praxis ist es, die Vorgaben für den Job in der Präambel Ihrer G-Code-Datei benötigt und nicht davon ausgehen, dass die Vorgaben nicht geändert haben. Das Ausdrucken der G-Code Kurzübersicht Seite kann Ihnen helfen, sich zu erinnern, was jeder einzelne ist.

2.2. Vorschubgeschwindigkeit (engl. feed rate)

Wie die Vorschubgeschwindigkeit angewandt wird, hängt davon ab, ob eine an der Bewegung beteiligte Achse eine Drehachse ist. Lesen und verstehen Sie den Abschnitt Feed Rate, wenn Sie eine Rotationsachse (engl. rotary axis) oder eine Drehmaschine haben.

2.3. Werkzeugradius-Versatz

Der Werkzeugradius-Versatz (G41/42) setzt voraus, dass das Werkzeug in der Lage ist, jede programmierte Bewegung irgendwo zu berühren, ohne die beiden angrenzenden Bewegungen zu fugen. Wenn dies mit dem aktuellen Werkzeugdurchmesser nicht möglich ist, erhalten Sie eine Fehlermeldung. Ein Werkzeug mit kleinerem Durchmesser kann ohne Fehler auf demselben Weg laufen. Das bedeutet, dass Sie einen Fräser so programmieren können, dass er eine Bahn durchläuft, die schmaler ist als der Fräser, ohne dass ein Fehler auftritt. Weitere Informationen finden Sie im Abschnitt Cutter Compensation.

3. Referenzfahrt (engl. homing)

Nach dem Start von LinuxCNC muss jede Achse referenziert werden, bevor ein Programm oder ein MDI-Befehl ausgeführt wird. Wenn Ihre Maschine nicht über Referenzschalter verfügt, kann eine Übereinstimmungsmarkierung auf jeder Achse dabei helfen, die Maschinenkoordinaten jedes Mal auf die gleiche Position zu referenzieren. Nach der Referenzierung werden Ihre in der INI-Datei festgelegten Soft-Limits verwendet.

Wenn Sie vom Standardverhalten abweichen oder die Mini-Schnittstelle verwenden möchten, müssen Sie die Option NO_FORCE_HOMING = 1 im Abschnitt [TRAJ] Ihrer INI-Datei setzen. Weitere Informationen zur Referenzfahrt finden Sie im Integrator-Handbuch.

4. Werkzeugwechsel

Bei manuellen Werkzeugwechseln gibt es mehrere Optionen. Siehe [EMCIO] Abschnitt für Informationen zur Konfiguration dieser Optionen. Siehe auch die Abschnitte G28 und G30 im Kapitel G-Code.

5. Koordinatensysteme

Die Koordinatensysteme können anfangs verwirrend sein. Bevor Sie eine CNC-Maschine betreiben, müssen Sie die Grundlagen der von LinuxCNC verwendeten Koordinatensysteme verstehen. Ausführliche Informationen über die LinuxCNC Koordinatensysteme finden Sie im Coordinate System Abschnitt dieses Handbuchs.

5.1. G53 Maschinenkoordinaten

Wenn Sie LinuxCNC referenzieren, setzen Sie das G53-Maschinenkoordinatensystem für jede referenzierte Achse auf 0.

Andere Koordinatensysteme oder Werkzeugversätze werden durch die Referenzfahrt nicht verändert.

Sie bewegen sich im G53-Maschinenkoordinatensystem nur, wenn Sie G53 auf der gleichen Linie wie eine Bewegung programmieren. Normalerweise befinden Sie sich im G54-Koordinatensystem.

5.2. G54-59.3 Benutzerkoordinaten

Normalerweise verwenden Sie das G54-Koordinatensystem. Wenn ein Offset auf ein aktuelles Benutzerkoordinatensystem angewendet wird, befindet sich eine kleine blaue Kugel mit Linien an der Maschinen-Ursprung (engl. origin) wenn Ihre DRO "Position: Relative Actual" in AXIS anzeigt. Wenn Ihre Offsets temporär sind, verwenden Sie das Nullkoordinatensystem aus dem Menü Maschine oder programmieren Sie G10 L2 P1 X0 Y0 Z0 am Ende Ihrer G-Code-Datei. Ändern Sie die P-Nummer entsprechend dem Koordinatensystem, in dem Sie den Versatz löschen möchten.

  • Offsets, die in einem Benutzerkoordinatensystem gespeichert sind, bleiben erhalten, wenn LinuxCNC heruntergefahren wird.

  • Mit der Schaltfläche Touch Off in AXIS wird ein Offset für das gewählte Benutzerkoordinatensystem festgelegt.

5.3. Wenn Sie nicht mehr weiterwissen

Wenn Sie Probleme haben, (0,0,0) auf der DRO zu erreichen, wenn Sie denken, dass Sie es sollten, haben Sie vielleicht einige Offsets programmiert und müssen diese entfernen.

  • Fahren Sie mit G53 G0 X0 Y0 Z0 zum Maschinennullpunkt

  • Löschen Sie alle G92-Offsets mit G92.1

  • Verwendung des G54-Koordinatensystems mit G54

  • Stellen Sie das G54-Koordinatensystem mit G10 L2 P1 X0 Y0 Z0 R0 auf das Maschinenkoordinatensystem ein.

  • Werkzeugversätze mit G49 deaktivieren

  • Aktivieren der relativen Koordinatenanzeige über das Menü

Jetzt sollten Sie sich am Maschinenursprung X0 Y0 Z0 befinden und das relative Koordinatensystem sollte mit dem Maschinenkoordinatensystem übereinstimmen.

6. Maschinenkonfigurationen

Das folgende Diagramm zeigt eine typische Fräsmaschine mit der Bewegungsrichtung des Werkzeugs, des Frästisches und der Endschalter. Beachten Sie, dass sich der Frästisch in die entgegengesetzte Richtung der Pfeile des kartesischen Koordinatensystems bewegt, die in der Abbildung "Werkzeugrichtung" dargestellt sind. Dadurch bewegt sich das "Werkzeug" in die richtige Richtung in Bezug auf das Material.

Beachten Sie auch die Position der Endschalter und die Richtung der Aktivierung ihrer Nocken. Es sind mehrere Kombinationen möglich, z. B. ist es möglich (entgegen der Zeichnung), einen einzigen festen Endschalter in der Mitte des Tisches zu platzieren und zwei bewegliche Nocken, um ihn zu aktivieren. In diesem Fall werden die Grenzen umgekehrt, +X befindet sich auf der rechten Seite des Tisches und -X auf der linken Seite. Diese Umkehrung ändert nichts an der Bewegungsrichtung des Werkzeugs.

Typische Fräsen-Konfiguration
Abbildung 2. Typische Fräsen-Konfiguration

Die folgende Abbildung zeigt eine typische Drehmaschine mit Verfahrrichtung des Werkzeugs und Endschaltern.

Typische Drehmaschinen-Konfiguration
Abbildung 3. Typische Drehmaschinen-Konfiguration