CAM-Software hat den G-Code in den täglichen CNC-Arbeitsabläufen weniger sichtbar gemacht - aber sie hat den G-Code nicht weniger wichtig gemacht. Jeder Werkzeugweg, den ein CAM-System generiert, wird schließlich zu einer G-Code-Datei, und diese Datei ist das, was die CNC-Steuerung tatsächlich ausführt, Zeile für Zeile, ohne Kenntnis des CAD-Modells oder der Bearbeitungsstrategie dahinter. Wenn ein Werkzeug zu tief eintaucht, die Zykluszeit unerwartet hoch ist oder die Oberflächengüte nicht mit der Simulation übereinstimmt, liegt die Antwort fast immer im G-Code und nicht in der CAM-Einrichtung. Das Verständnis des G-Codes in der CNC-Bearbeitung bedeutet, dass Sie verstehen müssen, was die Maschine tatsächlich tut, und nicht, was Sie mit ihr vorhaben.

Dieser Artikel behandelt G-Code aus der Perspektive, wie CNC-Steuerungen ihn in realen Bearbeitungsumgebungen interpretieren und ausführen. Das Ziel ist praktisch: Syntax, Struktur, modale Logik, häufige Fehler und ein Schritt-für-Schritt-Codebeispiel, das genau zeigt, was auf Maschinenebene passiert. Ganz gleich, ob Sie ein Programm debuggen, die Einrichtung eines Zulieferers überprüfen oder zu verstehen versuchen, warum eine angegebene Zykluszeit falsch zu sein scheint - dies ist der Rahmen, von dem aus Sie arbeiten können.


Was ist G-Code und wie steuert er CNC-Maschinen?

Die Definition, auf die es in der Produktion tatsächlich ankommt

G-Code ist die Befehlssprache auf niedriger Ebene, die CNC-Maschinensteuerungen direkt ausführen. Jede Zeile gibt Bewegungsbefehle, Achsenpositionen, Vorschubgeschwindigkeiten, Spindelzustände und Hilfsfunktionen an. Er ist nicht beschreibend - er sagt nicht “diese Tasche bearbeiten” oder “diese Oberfläche schlichten”. Es heißt: “Fahre zu dieser Koordinate mit dieser Vorschubgeschwindigkeit in diesem Modus”. Die Steuerung befolgt diese Anweisungen genau, ohne dass eine über den Code hinausgehende Interpretation der Absicht erfolgt.

Diese Unterscheidung ist in der Praxis von Bedeutung. Die CAM-Software definiert, was aufgrund der Geometrie und der Bearbeitungsstrategie geschehen soll. Die G-Code-Datei definiert, was die Steuerung tatsächlich ausführen wird. Die beiden Dateien liegen oft nahe beieinander, sind aber nicht immer identisch, und in der Lücke zwischen ihnen liegen die meisten Bearbeitungsprobleme.

Wie CNC-Steuerungen G-Code lesen

Steuerungen verarbeiten den G-Code sequentiell, einen Satz nach dem anderen. Nach dem Lesen jeder Zeile aktualisiert die Steuerung ihren internen Status - aktiver Bewegungsmodus, Koordinatensystem, Werkzeuglängenversatz, Ebenenauswahl - und führt dann den Befehl aus. Modale Befehle bleiben so lange aktiv, bis sie explizit geändert werden. Dies ist der Teil, der die meisten Leute überrascht: ein Befehl, der vor 50 Zeilen gesetzt wurde, kann immer noch das Verhalten der Maschine in Zeile 200 steuern, wenn er nicht aufgehoben wurde.

Steuerungen wenden auch Vorausschau-Funktionen, Beschleunigungsgrenzen und Interpolationsalgorithmen nach dem Lesen des G-Codes an - nicht während der CAM-Erstellung. Zwei Maschinen mit identischem G-Code können unterschiedliche Bewegungsprofile erzeugen, wenn sich ihre Steuerungsparameter unterscheiden. Aus diesem Grund werden die Bearbeitungsergebnisse nicht vollständig in der CAM-Phase bestimmt.

Der Platz von G-Code im CNC-Workflow

Der Fluss vom Entwurf bis zum Schnitt folgt einer klaren Abfolge:

CAD-Modell → CAM-Werkzeugwegstrategie → G-Code-Ausgabe → CNC-Steuerung → Servobewegung → Materialabtrag

Der G-Code ist der Übergabepunkt. Alles, was vorgelagert ist, ist Design und Planung. Alles, was nachgelagert ist, ist physisches Schneiden. Um den G-Code zu verstehen, muss man wissen, was an dieser Grenze passiert - und das ist genau der Punkt, an dem Probleme am schwersten zu erkennen und am teuersten zu beheben sind.


Wie ein CNC-G-Code-Programm strukturiert ist

Blöcke, Zeilen und Ausführungsreihenfolge

Ein G-Code-Programm besteht aus Blöcken - einzelnen Zeilen, die die Steuerung nacheinander von oben nach unten abarbeitet. Jeder Block entspricht einem Befehlszyklus. Die Steuerung hat keine Kenntnis von zukünftigen Blöcken über eine begrenzte Vorausschau hinaus, so dass die Befehlsreihenfolge das Verhalten der Maschine direkt bestimmt.

Ein gut strukturiertes Programm folgt diesem Ablauf:

  1. Programmstart und Sicherheitsinitialisierung
  2. Deklaration der Einheiten, der Ebene und des Koordinatenmodus
  3. Werkzeugauswahl und Offsetaktivierung
  4. Bearbeitungsvorgänge (Schruppen, Schlichten, Bohren usw.)
  5. Rückzug und Werkzeugwechsel (bei mehreren Werkzeugen)
  6. Programmende und Reset

Das Überspringen oder Umordnen von Schritten birgt Risiken. Eine Schnittbewegung, die vor der Aktivierung der Werkzeuglängenkorrektur ausgeführt wird, positioniert das Werkzeug beispielsweise auf der Grundlage einer unkorrigierten Z-Referenz - ein zuverlässiger Weg, um einen Absturz zu verursachen, selbst wenn die Werkzeugweggeometrie korrekt ist.

Anrede-Wörter: Was jeder Buchstabe bedeutet

Jeder Block besteht aus Adresswörtern - einem Buchstaben, der die Funktion identifiziert, gefolgt von einer Zahl, die den Wert definiert.

  • G - Bewegungs- oder Modusbefehl (schnell, linear, kreisförmig, Ebenenauswahl usw.)
  • M - Maschinen- und Hilfsfunktionen (Spindel, Kühlmittel, Werkzeugwechsel, Programmende)
  • X, Y, Z - Zielpositionen der Achsen
  • F - Vorschubgeschwindigkeit (Strecke pro Minute oder pro Umdrehung, je nach Modus)
  • S - Spindeldrehzahl (RPM)
  • T - Werkzeug-Nummer

Es können mehrere Adresswörter in einer Zeile erscheinen. Die Steuerung interpretiert sie gemeinsam, um Bewegungsart, Position und Maschinenzustand zu bestimmen. Bei einigen Steuerungen spielt auch die Reihenfolge innerhalb eines Blocks eine Rolle - überprüfen Sie immer das Handbuch der Steuerung bezüglich der Reihenfolge der Blockanalyse.

Modale vs. nicht modale Befehle

Dies ist das Konzept, das die meisten Fehler in der CNC-Programmierung verursacht - und die größte Verwirrung bei der Fehlersuche.

Modale Befehle bleiben über mehrere Sätze hinweg aktiv, bis sie explizit aufgehoben oder ersetzt werden. G01 (lineare Interpolation), G90 (absolute Positionierung) und F (Vorschubgeschwindigkeit) sind alle modal. Wenn Sie sie einmal einstellen, gelten sie für jeden nachfolgenden Satz, bis sie geändert werden.

Nicht-modale Befehle gelten nur für den Block, in dem sie erscheinen. G04 (Verweilzeit) ist ein typisches Beispiel - es pausiert für einen Block, dann wird die Ausführung fortgesetzt, ohne dass die Verweilzeit erneut gilt.

Die Gefahr bei modalen Befehlen: Ein früh im Programm festgelegter Modus steuert das Verhalten für alles, was folgt, einschließlich der viel später geschriebenen Sätze. Ein fehlender G00-zu-G01-Übergang, wo einer erwartet wird, oder eine Vorschubgeschwindigkeit, die zwischen den Operationen nicht aktualisiert wurde, kann zu einer falschen Bewegung führen, ohne dass ein Steuerungsalarm ausgelöst wird.

Aufschlüsselung einer typischen G-Code-Zeile

G01 X50.0 Y20.0 Z-5.0 F300
  • G01 - Lineare Interpolation (modal; bleibt aktiv, bis ein anderer Bewegungsmodus angegeben wird)
  • X50,0 Y20,0 Z-5,0 - Zielposition im aktuellen Koordinatensystem
  • F300 - Vorschubgeschwindigkeit von 300 mm/min (modal; gilt für alle nachfolgenden Schnittbewegungen)

Wenn der nächste Block lautet X80.0 Y20.0 ohne G-Code fährt die Maschine linear mit 300 mm/min zur neuen Position - weil G01 und F300 noch aktiv sind. Das ist ein korrektes Verhalten, wenn es beabsichtigt ist, und ein Problem, wenn es nicht erwartet wird.


Die gebräuchlichsten G-Codes für die CNC-Bearbeitung

Bewegungs-Befehle: G00, G01, G02, G03

Diese vier Codes machen den Großteil der Bewegungen in jedem CNC-Programm aus.

G00 - Schnelle Positionierung Bewegt das Werkzeug auf eine Position mit der maximalen Verfahrgeschwindigkeit der Maschine. Die Steuerung berücksichtigt den programmierten Vorschub während G00 nicht. Verwenden Sie diese Funktion ausschließlich für nicht-schneidende Bewegungen - Abstandspositionen, Anfahren von Werkzeugwechselpositionen und Neupositionierung über dem Werkstück. Verwenden Sie G00 niemals, wenn das Werkzeug in Kontakt mit dem Material ist; die Vorschubgrenzen gelten nicht und das Ergebnis ist unvorhersehbar.

G01 - Lineare Interpolation Führt eine geradlinige Schnittbewegung mit der programmierten Vorschubgeschwindigkeit aus. Dies ist der primäre Schnittbefehl für das Fräsen, Drehen und jeden kontrollierten Materialabtrag. Die Auswahl der Vorschubgeschwindigkeit sollte den Werkzeugdurchmesser, das Material und die Beschichtung widerspiegeln - nicht einen allgemeinen “sicheren” Wert. Für Aluminium 6061 mit einem 10-mm-Hartmetallfräser ist F400-600 mm/min bei S8000-12000 U/min normalerweise angemessen. Bei rostfreiem 316L mit demselben Werkzeug ist F100-180 mm/min bei S3000-5000 U/min aufgrund des Kaltverfestigungsverhaltens realistischer.

G02 / G03 - Kreisförmige Interpolation (CW / CCW) Erzeugt eine Bogenbewegung in der aktiven Ebene. G02 bewegt sich im Uhrzeigersinn, G03 gegen den Uhrzeigersinn. Die Bogengeometrie wird durch einen Start- und einen Endpunkt sowie entweder einen Zentrumsversatz (I, J, K) oder einen Radiuswert (R) definiert. Eine schlecht definierte Bogengeometrie - bei der Start- und Endpunkt nicht mit dem angegebenen Radius übereinstimmen - führt zu Steuerungsalarmen oder Überschneidungen. Überprüfen Sie vor dem Schneiden immer die Bogendefinitionen in der Simulation.

Auswahl der Ebenen und Einheiten: G17-G19, G20, G21

G17, G18, G19 wählen Sie die aktive Bearbeitungsebene: XY, XZ bzw. YZ. Die Auswahl der Ebene wirkt sich direkt darauf aus, wie G02/G03-Bögen interpretiert werden. Ein G02-Bogen, der mit XY-Koordinaten programmiert wurde, verhält sich in G17 korrekt, erzeugt aber eine falsche Bewegung, wenn G18 oder G19 von einer früheren Operation aktiv ist.

G20 / G21 Zoll- oder metrische Einheiten deklarieren. Dies muss immer explizit beim Programmstart festgelegt werden. Das Erben von Einheiten aus einem früheren Programm ist eine der weniger offensichtlichen Möglichkeiten, eine Maschine zum Absturz zu bringen - die Steuerung skaliert alle Positionen mit dem Einheitenumrechnungsfaktor, wodurch das Werkzeug an Positionen bewegt wird, die nicht annähernd den beabsichtigten Positionen entsprechen.

Positionierungsmodi: G90 vs. G91

G90 - Absolute Positionierung: Alle Koordinaten beziehen sich auf den aktiven Werkstücknullpunkt. Dies ist der Standardmodus für die meisten CNC-Bearbeitungen, da jede Position eindeutig ist - X50.0 bedeutet immer 50 mm vom Nullpunkt entfernt, unabhängig davon, wo das Werkzeug vorher war.

G91 - Inkrementelle Positionierung: Die Koordinaten beziehen sich auf die aktuelle Position des Werkzeugs. Nützlich für sich wiederholende Muster (Lochreihen, Schlitzabstände), bei denen die Definition aller Positionen von Null an Berechnungen erfordern würde. Das Risiko ist ein kumulativer Fehler - ein Rundungsfehler in einer Bewegung verschiebt jede nachfolgende inkrementelle Position. Verwenden Sie G91 mit Bedacht und kehren Sie nach der inkrementellen Sequenz immer zu G90 zurück.

Sicherheits- und Referenz-Codes

G04 (Verweilen): Hält die Bewegung für eine bestimmte Zeit oder Anzahl von Spindelumdrehungen an. Gängige Anwendungen sind das Brechen von Spänen beim Tiefbohren und die Stabilisierung der Spindel nach einer Drehzahländerung vor dem Beginn eines Präzisionsschlichtdurchgangs.

G28 (Maschinenreferenzrücklauf): Schickt die Achsen durch einen Zwischenpunkt zur Ausgangsposition der Maschine. Der Zwischenpunkt ist kritisch - wenn er nicht explizit in einer sicheren Position definiert ist, kann G28 das Werkzeug auf dem Weg zur Ausgangsposition durch das Werkstück oder die Vorrichtung fahren.

G53 (Maschinenkoordinatenverschiebung): Bewegt sich direkt in Maschinenkoordinaten und umgeht so die Werkstückverschiebung. Bei richtiger Anwendung sind Parkbewegungen und Werkzeugwechsel berechenbarer als bei G28.

Kategorie G-Code Funktion Typische Verwendung
Antrag G00 Schnelle Bewegung Nicht schneidende Positionierung
Antrag G01 Linearer Schnitt Kontrollierte Bearbeitung
Antrag G02 / G03 Kreisförmiger Schnitt Bögen, Taschen, Profile
Flugzeug G17-G19 Auswahl des Flugzeugs Definition der Bogenrichtung
Einheiten G20 / G21 Zoll / Metrisch Initialisierung des Programms
Positionierung G90 / G91 Absolut / Inkremental Koordinatensteuerung
Sicherheit G28 / G53 Referenzbewegungen Werkzeugwechsel, Freigabe

M-Codes und ihre Funktionsweise in Verbindung mit G-Code

Was M-Codes kontrollieren

Während G-Codes bestimmen, wie sich das Werkzeug durch den Raum bewegt, regeln M-Codes, was die Maschine tut - Spindel ein/aus, Kühlmittel ein/aus, Werkzeugwechsel und Programmablauf. Bei praktischen Bearbeitungsvorgängen definieren M-Codes den Maschinenzustand, von dem G-Code-Schneidbewegungen annehmen, dass er bereits in Kraft ist. Eine Schnittbewegung (G01), die ohne aktive Spindel (M03) ausgeführt wird, beschädigt das Werkzeug und das Werkstück. Ein Werkzeugwechsel (M06), der ohne ordnungsgemäßen Achsabstand ausgeführt wird, birgt die Gefahr einer Kollision.

Die M-Codes, die in fast jedem Programm vorkommen

  • M03 - Spindel ein, Drehung im Uhrzeigersinn
  • M04 - Spindel ein, gegen den Uhrzeigersinn (für bestimmte Vorgänge wie z.B. Rückwärtsgewindeschneiden)
  • M05 - Spindelanschlag
  • M06 - Werkzeugwechsel (pausiert die Ausführung, bis der Wechsel abgeschlossen ist)
  • M08 - Kühlmittel ein
  • M09 - Kühlmittel aus
  • M30 - Programmende und Zurücksetzen auf Start

Auf die Reihenfolge kommt es an. M03 muss vor der ersten Schnittbewegung erscheinen. M08 sollte aktiviert werden, bevor das Werkzeug in das Material eingreift, nicht währenddessen. M06 setzt voraus, dass sich die Maschine in einer sicheren Position befindet - in der Regel wird dies durch eine G28- oder G53-Bewegung zu einer definierten Werkzeugwechselposition überprüft.

G-Code und M-Code: Komplementär, nicht austauschbar

Aspekt G-Code M-Code
Hauptrolle Werkzeugbewegung und Bahnsteuerung Maschinenzustand und Hilfsfunktionen
Typische Aktionen Lineare Bewegungen, Bögen, Positionierung Spindel, Kühlmittel, Werkzeugwechsel, Programmende
Auswirkungen auf die Ausführung Geometrie und Vorschubgeschwindigkeit Schnittbereitschaft und Maschinensicherheit
Risiko, wenn falsch Kollision, Abmessungsfehler Werkzeugbeschädigung, unsicherer Werkzeugwechsel

Vorschubgeschwindigkeit, Spindeldrehzahl und Werkzeugbefehle: Wie sie sich auf die Teilequalität auswirken

Vorschubgeschwindigkeit (F) und Oberflächengüte

Die Vorschubgeschwindigkeit bestimmt direkt die Spanbelastung - die Dicke des Materials, das jede Schneide pro Umdrehung abträgt. Ist der Vorschub zu hoch, wird das Werkzeug überlastet: Ratterer, Risse und schlechte Oberflächengüte sind die Folge. Ist der Vorschub zu niedrig, reibt das Werkzeug eher, als dass es schneidet, wodurch sich die Wärme an der Schneide konzentriert und die Bildung von Aufbauschneiden begünstigt wird, was wiederum die Oberflächengüte verschlechtert.

Die Beziehung zwischen Vorschubgeschwindigkeit und Oberflächengüte ist materialspezifisch. Bei Aluminium 6061 erzeugt ein 10-mm-Schaftfräser, der bei S10000 U/min mit F500 mm/min läuft, eine Spanlast von etwa 0,025 mm pro Zahn (unter der Annahme eines 2-Schneiden-Werkzeugs), was typischerweise Ra 1,6-3,2 µm in einem Schruppdurchgang ergibt. Ein Absenken auf F200 mm/min verringert zwar die Spanbelastung, erhöht aber die Wärmeentwicklung und den Reibungswiderstand, wodurch sich die Oberflächengüte oft eher verschlechtert als verbessert. Beim Schlichten werden geringere Schnitttiefen und nicht unbedingt geringere Vorschübe verwendet, um Ra 0,8 µm oder besser zu erreichen.

Bei rostfreiem 316L sind die Vorschubgeschwindigkeiten deutlich geringer - typischerweise F100-180 mm/min -, da sich das Material beim Schneiden verfestigt. Ein Überschreiten der empfohlenen Spankräfte führt zu schnellem Werkzeugverschleiß und Oberflächenabriss. Eine gleichmäßige Kühlmittelzufuhr (überflutet oder durch das Werkzeug) ist unerlässlich, um die Wärme zu kontrollieren und den Aufbau von Kaltverfestigung zwischen den Durchgängen zu verhindern.

Spindeldrehzahl (S) und Schnittleistung

Die Spindeldrehzahl bestimmt die Schnittgeschwindigkeit am Außendurchmesser des Werkzeugs. Die richtige Geschwindigkeit hängt vom Werkzeugdurchmesser, dem Werkstoff und der Werkzeugbeschichtung ab. Ein TiAlN-beschichteter 10-mm-Hartmetallfräser, der Aluminium 6061 schneidet, läuft in der Regel mit einer Schnittgeschwindigkeit von 200-400 m/min - das entspricht etwa S6.400-12.700 U/min. Dasselbe Werkzeug in rostfreiem 316L läuft mit einer Oberflächengeschwindigkeit von 40-80 m/min - etwa S1.270-2.550 U/min -, um die Wärmeentwicklung und den Werkzeugverschleiß zu begrenzen.

Eine zu hohe Spindeldrehzahl in rostfreiem Stahl erzeugt konzentrierte Hitze, die die Schneide erweicht und die Standzeit des Werkzeugs drastisch verkürzt. Eine unzureichende Drehzahl bei Aluminium führt zu ineffizientem Schneiden und schlechter Spanabfuhr. Bei der Wahl der richtigen Spindeldrehzahl geht es nicht darum, konservative Werte zu verwenden - es geht darum, die Drehzahl an die tatsächlichen Anforderungen von Werkzeug und Material anzupassen.

Werkzeugbefehle und Offset-Aktivierung

Die Werkzeugauswahl (T) gibt an, welches Werkzeug geladen werden soll. Die Werkzeuglängenkompensation (G43 mit H-Offset) wendet die korrekte Z-Achsenreferenz für dieses spezifische Werkzeug an. Wird die falsche Korrektur aktiviert - oder wird G43 ganz weggelassen - verschiebt sich der Z-Achsen-Bezug um die Differenz zwischen der programmierten Korrektur und der tatsächlichen Werkzeuglänge. Dies führt zu einem zu tiefen Eintauchen oder einem Rückzug, der nicht ausreicht, um das Werkstück zu entfernen.

Vor jedem Werkzeugwechsel muss sich die Maschine in einer sicheren Position befinden. Die meisten Steuerungen verlangen eine explizite Positionierung zu einer Werkzeugwechselposition, bevor M06 ausgeführt wird. Wird dieser Schritt übersprungen, besteht die Gefahr einer Kollision zwischen dem Werkzeug und dem Werkstück oder der Vorrichtung während des Wechsels.


G-Code Schritt für Schritt lesen: Ein komplettes Fräsbeispiel

Richtiges Lesen von G-Code bedeutet, den Maschinenzustand nach jeder Zeile zu verfolgen - und nicht nur Positionen zu lesen. Hier ist ein komplettes 2D-Fräsprogramm mit technischen Kommentaren dazu, was jeder Abschnitt tatsächlich an der Maschine tut.

%

G21 G90 G17 - Legt metrische Einheiten, absolute Positionierung und XY-Ebene fest. Diese drei Modalzustände steuern die Koordinateninterpretation für das gesamte Programm. Fehlt einer von ihnen, wird der Zustand des vorherigen Programms übernommen - eine häufige Ursache für unerwartetes Verhalten bei der sequentiellen Ausführung von Programmen.

G00 X0 Y0 - Schnelle Bewegung zum Programmnullpunkt in XY. Kein Schneiden. Das Werkzeug verfährt mit voller Eilgeschwindigkeit; es gibt keinen Vorschubschutz.

T1 M06 - Wählt Werkzeug 1 und führt einen Werkzeugwechsel durch. Die Ausführung wird angehalten, bis der Wechsel abgeschlossen ist. Die Maschine muss sich vor dieser Zeile an der vorgesehenen Werkzeugwechselposition befinden, da sonst die Gefahr einer Kollision besteht.

S8000 M03 - Startet die Spindel mit 8.000 U/min im Uhrzeigersinn. Für einen 10-mm-Schaftfräser in Aluminium 6061 entspricht dies einer Oberflächengeschwindigkeit von ca. 251 m/min - innerhalb des effizienten Schnittbereichs für unbeschichtetes oder TiN-beschichtetes Hartmetall.

G43 H01 Z50.0 - Aktiviert die Werkzeuglängenkompensation mit dem Offset H01 und fährt zu Z50 im korrigierten Referenzrahmen. Dies ist die Linie, die den korrekten Z-Bezugspunkt für das Schneiden festlegt. Fehlt G43, bedeutet dies, dass die Z-Position des Werkzeugs referenziert wird, ohne dass die tatsächliche Werkzeuglänge angewendet wird.

G00 Z5.0 - Schnelles Anfahren auf 5 mm über der Arbeitsfläche. Immer noch kein Schnitt - das Werkzeug positioniert sich über dem Werkstück.

G01 Z-2.0 F200 - Kontrolliertes Einstechen bis 2 mm Tiefe bei F200 mm/min. Die reduzierte Vorschubgeschwindigkeit beim Eintauchen begrenzt die axiale Schnittbelastung. Bei F200 mit einem 2-schneidigen 10-mm-Schaftfräser beträgt die Spanbelastung pro Zahn beim Eintauchen etwa 0,0125 mm - konservativ, aber angemessen für eine Z-Bewegung.

G01 X50.0 Y0.0 F400 - Erste lineare Schnittbewegung. Die Vorschubgeschwindigkeit erhöht sich auf F400 mm/min für den seitlichen Schnittdurchgang, was eine Spanlast von ca. 0,025 mm pro Zahn bei S8000 RPM ergibt - typisch für das Schruppen von Aluminium.

Nachfolgende G01-Bewegungen - Zeichnen Sie die restlichen drei Seiten des rechteckigen Profils nach. G01 und F400 bleiben aktiv (modal) - sie müssen nicht erneut eingegeben werden, es sei denn, der Vorschub ändert sich.

G00 Z50.0 - Schnelles Zurückfahren auf sichere Z-Höhe. Der Schnitt ist abgeschlossen; die Maschine fährt mit voller Eilgeschwindigkeit aus.

M05 - Spindelstopp. Halten Sie die Spindel immer vor dem Programmende an.

M30 - Programmende und Reset. Die Steuerung kehrt an den Anfang des Programms zurück und ist bereit für den nächsten Teil.

Häufige Fehler beim Lesen

Ignorieren des modalen Zustands: G01 und F400 bleiben aktiv, bis sie ausdrücklich geändert werden. Ein Programmierer, der später einen neuen Zug hinzufügt und vergisst, dass diese Züge noch aktiv sind, erhält einen Schneidezug, wo eigentlich ein Schnellzug vorgesehen war.

Vorausgesetzt, die Reihenfolge ist flexibel: Spindel ein (M03) muss der Schnittbewegung vorausgehen. Der Werkzeugversatz (G43) muss vor der Z-Positionierung aktiviert werden. Dies sind keine Vorschläge, sondern Anforderungen für eine sichere Ausführung.

Ablesen von Koordinaten ohne Verfolgungsstatus: Eine Position wie Z-2.0 ist nur im Zusammenhang mit dem aktiven Koordinatensystem, dem Werkzeugversatz und dem Positionierungsmodus sinnvoll. Erst den Status, dann die Koordinaten ablesen.


Häufige G-Code-Fehler und deren Diagnose

Die meisten ernsthaften CNC-Probleme entstehen nicht durch komplexen Code. Sie entstehen durch kleine Modalfehler, falsche Offsets oder Unstimmigkeiten zwischen Einheiten, die sich im Programm ausbreiten.

Modale Fehler

Ein modaler Befehl, der falsch gesetzt wurde - oder nach der Verwendung nie abgebrochen wurde - wirkt sich auf jeden folgenden Satz aus, bis er geändert wird. Wenn G91 (inkrementeller Modus) nach einem Antastunterprogramm aktiv bleibt, werden alle nachfolgenden absolut beabsichtigten Bewegungen als inkrementelle Versätze ausgeführt. Das Werkzeug landet nirgendwo in der Nähe der beabsichtigten Position, und die Steuerung gibt keinen Alarm aus, da die Bewegung syntaktisch gültig war.

Diese Fehler lassen sich nicht durch das Scannen einzelner Zeilen aufdecken. Sie erfordern eine Verfolgung des Maschinenzustands durch die Programmsequenz - mental oder durch Simulation.

Koordinaten- und Offset-Fehler

Das größte Risiko für G-Code-Fehler sind Fehler im Koordinatensystem und im Offset:

  • Falsches Arbeitsoffset (z.B. G54 gewählt, obwohl das Programm G55 erwartet)
  • Falsche oder fehlende Werkzeuglängenkompensation (G43/H-Fehlanpassung)
  • G90/G91 Verwirrung beim Wechsel zwischen Absolut- und Inkrementalmodus

Jede dieser Möglichkeiten kann zu einem Absturz oder einem Schrottteil führen, ohne dass ein Syntaxfehler vorliegt. Der Controller tut genau das, was der Code sagt - es ist nur nicht das, was beabsichtigt war.

Diagnose-Ansatz: Mehrschichtige Validierung

Der standardmäßige technische Ansatz für die Validierung von G-Code arbeitet mit Schichten zunehmenden Vertrauens:

  1. Codeüberprüfung - Überprüfung von Einheiten, Koordinatensystemen, Offset-Aktivierungen und modalen Rücksetzungen
  2. CAM- oder Steuerungssimulation - Überprüfen Sie die Bewegung grafisch, bevor etwas läuft.
  3. Trockenlauf - Ausführung mit ausgeschalteter Spindel und um 50-100 mm angehobenem Z-Achsenversatz
  4. Einzelsatz mit Vorschub-Override - das aktuelle Programm wird zeilenweise mit reduzierter Geschwindigkeit ausgeführt
Fehlerart Risiko Prävention
Modaler Befehl nicht zurückgesetzt Unerwartete Schnittbewegung Explizite Wiederholung kritischer G-Codes bei jeder Operation
Falsches Koordinatensystem Bearbeitung am falschen Ort Arbeitsversatz immer beim Programmstart einstellen
Fehlende Werkzeuglängenkorrektur Werkzeugabsturz oder Überschnitt Aktivieren von G43 mit geprüftem H-Wert vor der Z-Bewegung
Nicht übereinstimmende Einheiten (G20/G21) Skalierte Positionen oder Absturz Einheiten explizit deklarieren - niemals auf Standardwerte vertrauen
Unsichere schnelle Bewegung Kollision Verwenden Sie Abstandsflächen und überprüfen Sie das Trockenlaufverhalten

Fortgeschrittener G-Code: Makros, Unterprogramme und gespeicherte Zyklen

Makrovariablen und parametrische Programmierung

Die Makroprogrammierung führt Variablen in den G-Code ein und ermöglicht eine parametrische und bedingte Logik, die statische Programme nicht erreichen können. Anstatt Tiefen, Positionen oder Vorschubgeschwindigkeiten fest zu kodieren, definieren Ingenieure Werte einmal und referenzieren sie im gesamten Programm.

#100 = 20.0   (Taschenlänge)

Dieser Ansatz ist besonders wertvoll für Teilefamilien - bei denen der Bohrungsdurchmesser, die Taschentiefe oder der Lochabstand je nach Konfiguration variiert - und für Messzyklen auf der Maschine, die die Bearbeitungsparameter auf der Grundlage der Messergebnisse anpassen. Der Nachteil ist die Komplexität: Makros erfordern eine sorgfältige Dokumentation und Validierung, und Fehler in der bedingten Logik können zu unerwarteten Bewegungen führen.

Unterprogramme und wiederholte Merkmale

Mit Unterprogrammen (aufgerufen mit M98, zurückgegeben mit M99) können wiederholte Bewegungsabläufe einmal definiert und mehrfach ausgeführt werden. Ein Lochmuster, das sechsmal auf einem Teil vorkommt, benötigt nicht sechs Kopien der Bohrsequenz - ein Unterprogramm bearbeitet alle Instanzen.

M98 P2000 L6 (Unterprogramm O2000 sechsmal aufrufen)

Abgesehen von der Kürze des Codes verbessern Unterprogramme die Konsistenz: Alle sechs Löcher folgen exakt der gleichen Bewegungssequenz. Bei jeder Aktualisierung der Bohrstrategie - Vorschubgeschwindigkeit, Tiefe, Pick-Inkrement - muss ein Unterprogramm geändert werden, nicht sechs separate Codeblöcke.

Festgelegte Zyklen: Produktivität ohne Kontrollverlust

Festzyklen fassen gängige Bearbeitungssequenzen (Bohren, Gewindeschneiden, Aufbohren, Reiben) in einzelnen Befehlen zusammen. Ein Bohrzyklus, der sonst separate Anfahr-, Eintauch-, Verweil- und Rückzugssätze erfordern würde, wird zu einer Zeile:

G81 X20,0 Y10,0 Z-15,0 R2,0 F200

Dies reduziert die Programmierzeit, verkürzt den Code und sorgt für ein einheitliches Verhalten bei allen Löchern im Muster. Ein wichtiger Vorbehalt: Festzyklen müssen mit G80 abgebrochen werden, wenn sie abgeschlossen sind, und ihre Parameter (Rückzugsmodus, Verweildauer, Abstechinkrement) müssen mit der Implementierung der Steuerung übereinstimmen. Das Verhalten von Festzyklen variiert zwischen Fanuc-, Haas- und Siemens-Steuerungen - überprüfen Sie dies immer anhand des maschinenspezifischen Programmierhandbuchs.


Wie sich der G-Code zwischen CNC-Steuerungen unterscheidet

Fanuc, Haas und mehr

Fanuc-basierte Steuerungen sind das, was einer Standard-G-Code-Referenz am nächsten kommt. Viele Hersteller von Werkzeugmaschinen basieren ihre Steuerungssysteme auf der Fanuc-Architektur, so dass Fanuc-kompatibler Code einigermaßen maschinenübergreifend einsetzbar ist. Haas-Steuerungen sind weitgehend Fanuc-kompatibel, enthalten jedoch proprietäre Erweiterungen, unterschiedliche Standardmodalzustände und eine Haas-spezifische Makrosyntax, die das Ausführungsverhalten bei gemeinsam genutzten Programmen verändern kann.

Siemens- und Heidenhain-Steuerungen verwenden die G-Code-Syntax, arbeiten aber in der Praxis recht unterschiedlich. Insbesondere Heidenhain verlässt sich bei vielen Vorgängen auf die Konversationseingabe. Mazatrol (das firmeneigene System von Mazak) arbeitet in erster Linie mit Konversationseingabe und G-Code als sekundäre Option. Programme, die für einen Steuerungstyp geschrieben wurden, müssen häufig im Postprozessor neu generiert - und nicht nur bearbeitet - werden, bevor sie auf einer anderen Plattform laufen.

Warum der G-Code nicht universell ist

Spezifische Unterschiede, die in der Praxis von Bedeutung sind:

  • Unterstützte G- und M-Codesätze variieren - einige Codes, die auf einem Steuergerät gültig sind, erzeugen Alarme auf einem anderen
  • Die Parameter des Konservierungszyklus (Einstechtiefe, Rückzugstyp, Verweilzeit) sind von Hersteller zu Hersteller unterschiedlich
  • Makrovariablensyntax und bedingte Logikbefehle sind steuerungsspezifisch
  • Look-ahead-Algorithmen und Beschleunigungsprofile wirken sich auf die Bewegungsglätte aus, selbst wenn der G-Code identisch ist

Aus diesem Grund sind CAM-Postprozessoren maschinenspezifisch und nicht generisch. Der Postprozessor übersetzt CAM-Werkzeugwege in den korrekten G-Code-Dialekt für die Zielsteuerung - nicht in universellen G-Code, den jede Maschine ausführen kann.

Was Konstrukteure und Beschaffungsteams wissen müssen

Vom Standpunkt der Beschaffung aus betrachtet, sollte der G-Code als maschinenspezifische Produktionsdaten behandelt werden. Der Austausch einer G-Code-Datei zwischen Lieferanten setzt identische Maschinen und Steuerungen voraus - eine Annahme, die häufig nicht zutrifft. Am besten ist es, CAD- und CAM-Daten und nicht den endgültigen G-Code auszutauschen und den Maschinentyp und die Steuerungsversion zu bestätigen, bevor Programme übertragen werden. Wenn G-Code ausgetauscht werden muss, ist eine Simulation auf der empfangenden Steuerung vor dem Schneiden unerlässlich.


Schlussfolgerung

Der G-Code ist bei der CNC-Bearbeitung die letzte Ebene zwischen der Konstruktionsabsicht und der tatsächlichen Bearbeitung. CAM-Systeme planen den Werkzeugweg; die G-Code-Datei ist das, was die Maschine tatsächlich ausführt. Das Verständnis der G-Code-Struktur, der modalen Logik und der Ausführungsreihenfolge gibt Ingenieuren einen direkten Einblick in das, was an der Schneidkante passiert - und warum Probleme auftreten, wenn sie auftreten.

Für jeden, der in CNC-Umgebungen arbeitet - sei es beim Schreiben von Programmen, bei der Überprüfung von Lieferanten-Setups oder bei der Fehlersuche bei Bearbeitungsproblemen - bedeutet G-Code-Kenntnisse eine schnellere Diagnose, eine bessere Kommunikation mit den Bedienern und weniger Überraschungen in der Werkstatt. In einem CAM-gesteuerten Arbeitsablauf müssen Sie den G-Code nicht von Grund auf neu schreiben. Sie müssen ihn jedoch lesen, verstehen, was die Maschine tun wird, und erkennen, wenn etwas im Code nicht mit dem beabsichtigten Ergebnis übereinstimmt.


FAQ

Verwenden alle CNC-Maschinen denselben G-Code?

Nein. Der G-Code ist in der Branche nicht vollständig standardisiert. Fanuc-, Haas-, Siemens- und Heidenhain-Steuerungen verwenden alle eine G-Code-Syntax mit unterschiedlichen Befehlssätzen, Festzyklusdefinitionen, Makrosyntax und Standardmodalzuständen. Programme, die auf einer Steuerung korrekt laufen, können auf einer anderen Steuerung Alarme auslösen oder andere Bewegungen erzeugen. Aus diesem Grund sind CAM-Postprozessoren steuerungsspezifisch.

Können CNC-Maschinen ohne G-Code laufen?

Auf der Steuerungsebene, nein. Selbst die Klartextprogrammierung und CAM-generierte Werkzeugwege werden letztlich in G-Code (oder entsprechende Low-Level-Befehle) übersetzt und ausgeführt. G-Code ist die maschineneigene Ausführungssprache - alles andere ist eine darüber liegende Schicht.

Ist die manuelle G-Code-Programmierung noch notwendig?

Die vollständige manuelle Programmierung ist in Produktionsumgebungen nur selten erforderlich. Das Lesen und Ändern von G-Code ist jedoch nach wie vor eine praktische Fähigkeit für die Fehlersuche, die Optimierung der Zykluszeit, kleine Änderungen an bestehenden Programmen und die Kommunikation mit Maschinenbedienern und Lieferanten. Die meisten CNC-Ingenieure schreiben ihre Programme nicht von Grund auf neu - aber sie arbeiten regelmäßig mit G-Code-Dateien.

Wie kann ich ein neues G-Code-Programm sicher testen?

Verfolgen Sie einen mehrstufigen Validierungsansatz: Überprüfen Sie den Code auf Einheiten, Koordinatensysteme und Offset-Deklarationen; führen Sie eine CAM- oder Steuerungssimulation durch; führen Sie einen Trockenlauf mit ausgeschalteter Spindel und 50-100 mm über dem Werkstück angehobener Z-Achse durch; führen Sie dann einen Einzelsatz mit reduziertem Vorschub-Override durch, bevor Sie einen vollen Zyklus starten.

Was ist der Unterschied zwischen G-Code und Conversational Programming?

G-Code ist explizit und textbasiert - jede Maschinenaktion wird direkt kodiert. Bei der Dialogprogrammierung werden Menüs und Eingabeaufforderungen verwendet, um Vorgänge zu definieren, die von der Steuerung intern in G-Code umgewandelt werden. Die Dialogprogrammierung ist für einfache Teile auf der Maschine schneller; G-Code bietet mehr Transparenz, Übertragbarkeit und Kontrolle für komplexe Programme mit mehreren Operationen.

Erhalten Sie die neuesten Nachrichten und Updates

Abonnieren Sie unseren Newsletter