Jeder Vorgang einer CNC-Maschine – jede Vorschubgeschwindigkeit, jeder Spindelstart, jeder Werkzeugwechsel – wird durch G-Code und M-Code gesteuert. Diese beiden Befehlstypen bilden die Befehlsebene zwischen einem von der CAM-Software generierten Werkzeugweg und dem tatsächlichen Materialabtrag. Der G-Code steuert Geometrie und Bewegung; der M-Code regelt den Maschinenzustand, der diese Bewegung sicher und effektiv macht. Das Verständnis dafür, wie beide zusammenwirken, unterscheidet Programmierer, die zuverlässigen Produktionscode schreiben können, von denen, die lediglich das ausführen können, was die CAM-Software generiert.

Dieser Artikel behandelt G- und M-Codes aus praktischer ingenieurtechnischer Sicht: Was die einzelnen Befehle steuern, wie die Programmstruktur und die Logik der Betriebsmodi funktionieren, gängige Codes im Kontext der tatsächlichen Bearbeitung, Unterschiede zwischen Steuerungen, die sich auf die Portabilität auswirken, sowie die Programmierfehler, die die meisten Abstürze und Ausschuss verursachen. Das Ziel ist nicht eine Befehlsreferenzliste – es geht vielmehr darum, die Ausführungslogik zu verstehen, die CNC-Programme vorhersehbar und wiederholbar macht.


Was sind G-Code und M-Code? Der wesentliche Unterschied

Die grundlegende Unterscheidung ist ganz einfach. Der G-Code steuert die Werkzeugbewegung und die Geometrie. M-Codes steuern den Maschinenstatus und Zusatzfunktionen. Beides ist erforderlich. Keines von beiden funktioniert ohne das andere.

Aspekt G-Code M-Code
Hauptrolle Werkzeugbewegung und Geometrie Maschinenfunktion und -zustand
Bedienelemente Achsen, Interpolation, Vorschübe, Koordinatensysteme Spindel, Kühlmittel, Werkzeugwechsel, Programmablauf
Auswirkungen Genauigkeit, Oberflächengüte, Zykluszeit Sicherheit, Zuverlässigkeit, Schnittbedingungen
Beispiele G00, G01, G02, G17, G54 M03, M05, M06, M08, M30

G-Code: Geometrie und Bewegungslogik

G-Codes beantworten die Frage: Wie muss sich das Werkzeug bewegen, um diese Geometrie zu erzeugen? Sie legen den Positioniermodus, die Interpolationsart, das Vorschubverhalten und das aktive Koordinatensystem fest. Die Oberflächenqualität, die Maßgenauigkeit und die Werkzeugbelastungsverteilung werden direkt davon beeinflusst, wie die G-Codes aufgebaut und angeordnet sind.

Stellen Sie sich den G-Code als das geometrische Gehirn des Programms vor. Er weiß, wohin das Werkzeug fahren muss und wie es dorthin gelangen soll.

M-Code: Maschinen- und SPS-Steuerung

M-Codes beantworten eine andere Frage: Wie sollte sich die Maschine bei der Ausführung dieser Bewegung verhalten? Sie steuern den Spindelstart und die Spindeldrehrichtung, die Kühlmittelzufuhr, den Werkzeugwechsel sowie den Programmablauf. Alle diese Funktionen werden über die SPS (speicherprogrammierbare Steuerung) der Maschine verwaltet – eine von der Bewegungssteuerung getrennte Steuerungsebene.

Eine hilfreiche Betrachtungsweise: Der G-Code definiert den Weg; der M-Code bereitet die Bedingungen für die Bearbeitung entlang dieses Weges vor und hält sie aufrecht. Ein korrekt definierter Werkzeugweg schlägt sofort fehl, wenn die Spindel nicht läuft, das falsche Werkzeug eingespannt ist oder die Kühlmittelzufuhr nicht aktiv ist. Diese Bedingungen fallen vollständig in den Bereich des M-Codes.


CNC-Programmstruktur: Blöcke, Modalzustände und Ausführungslogik

Eines der wichtigsten Konzepte bei der CNC-Programmierung – und eines, das zu den unerwartetsten Verhaltensweisen führt – ist das Verständnis, dass der Controller Programme als Zustandsmaschine, und nicht als einfache, sequenzielle Liste von Anweisungen.

Blöcke und Ausführungsreihenfolge

Ein CNC-Programm besteht aus Blöcke — in der Regel jeweils eine Befehlszeile. Der Controller liest jeden Block von links nach rechts und führt ihn als Einheit aus. Entscheidend ist, dass der Controller keine Absichten interpretiert. Er sieht lediglich den aktuellen Block in Verbindung mit den modalen Zuständen, die durch vorherige Blöcke festgelegt wurden.

Das bedeutet, dass zwei identisch aussehende Bewegungsbefehle sich völlig unterschiedlich verhalten können, je nachdem, was zuvor im Programm festgelegt wurde. Fehler bei der Umsetzung sind die Hauptursache für die meisten unerwarteten Verhaltensweisen von CNC.

Modale vs. nicht-modale Codes

Diese Unterscheidung ist für das Verständnis des Programmverhaltens von entscheidender Bedeutung:

Modalcodes bleiben so lange aktiv, bis sie ausdrücklich geändert werden. Einmal festgelegt, bleiben sie in allen nachfolgenden Blöcken bestehen, bis sie überschrieben werden. Beispiele:

  • Bewegungsmodus (G00, G01, G02) – bleibt aktiv, bis ein anderer Bewegungsmodus aufgerufen wird
  • Positioniermodus (G90/G91) – Absolut- oder Inkrementalmodus bleibt bis zur Änderung beibehalten
  • Ebenenauswahl (G17/G18/G19) – die aktive Schneidebene bleibt bestehen

Nichtmodale Codes Sie werden einmal in dem Block ausgeführt, in dem sie vorkommen, und haben danach keine weitere Wirkung. Typische Beispiele hierfür sind bestimmte Befehle zum Abbrechen von Festzyklen und Verweilbefehle.

Verhalten Modalcodes Nichtmodale Codes
Zustandserhaltung Gültig, bis etwas anderes festgelegt wird Einmal ausführen
Risiko bei Fehlinterpretation Unbeabsichtigte Bewegung in späteren Blöcken In der Regel lokaler Effekt
Häufige Beispiele G00, G01, G90, G91, G17 Einmalige Aktionen, Abbrüche bestimmter Zyklen

Die praktische Konsequenz: Ein aus einem vorherigen Arbeitsgang aktiv gebliebener G01-Modus führt dazu, dass die nächste Eilgangbewegung stattdessen als Zerspanungsbewegung mit Vorschubgeschwindigkeit ausgeführt wird. Das ist ein Unfall, der nur darauf wartet, zu passieren – und der sich durch das Verständnis des Moduszustands vollständig vermeiden lässt.

Phasen der Programmlogik

Jedes zuverlässige CNC-Programm durchläuft drei logische Phasen:

Initialisierung: Legen Sie den Maschinenstatus ausdrücklich fest. Legen Sie die Einheiten (G20/G21), die Ebene (G17), den Positioniermodus (G90), den Werkstückversatz (G54 oder gleichwertig) und den Vorschubmodus fest. Verlassen Sie sich niemals auf die Standardeinstellungen der Steuerung – diese variieren von Maschine zu Maschine.

Bearbeitungen: G-Codes sind für Bewegung und Geometrie maßgeblich. M-Codes sorgen im Hintergrund für die Aufrechterhaltung der Schnittbedingungen – die Spindel läuft weiter, die Kühlmittelzufuhr bleibt aktiv, das Werkzeug bleibt im Einsatz.

Herunterfahren: Rückkehr in einen sicheren, bekannten Zustand. Das Werkzeug wird zurückgezogen, Spindel und Kühlmittel werden abgeschaltet, das Programm endet und wird für den nächsten Zyklus zurückgesetzt.


Die wichtigsten G-Code-Typen: Bewegungsbefehle, Positionierungsbefehle und Festzyklen

Anstatt jeden G-Code einzeln aufzulisten, vermittelt das Verständnis der drei Funktionskategorien Klarheit darüber, wann und warum die einzelnen Typen bei der praktischen Bearbeitung zum Einsatz kommen.

G-Codes für Bewegung und Interpolation

Diese Codes legen fest, wie sich das Schneidwerkzeug zwischen den Punkten bewegt. Sie haben den unmittelbarsten Einfluss auf die Oberflächengüte, die Zykluszeit und die Werkzeugbelastung.

G00 – Eilgang Bewegt das Werkzeug mit maximaler Maschinengeschwindigkeit. Wird ausschließlich für nicht-schneidende Bewegungen verwendet: Anfahren, Zurückfahren, Positionierung beim Werkzeugwechsel und Freiraumbewegungen. Bei G00 hat die Geschwindigkeit Vorrang vor der Bahngenauigkeit – die tatsächliche Bahn zwischen den Punkten ist bei den meisten Maschinen keine Gerade. Der Freiraum zwischen Spannvorrichtung und Werkstück muss überprüft und darf nicht einfach vorausgesetzt werden.

G01 – Lineare Interpolation Bewegt das Werkzeug in einer geraden Linie mit einer programmierten Vorschubgeschwindigkeit. Dies ist die primäre Schnittbewegung bei den meisten Fräs- und Drehvorgängen. Die Vorschubgeschwindigkeit wird mit F angegeben – und dieser F-Wert bleibt modal bestehen, bis er geändert wird.

G02 / G03 – Kreisinterpolation G02 erzeugt Bögen im Uhrzeigersinn; G03 erzeugt Bögen gegen den Uhrzeigersinn. Wird für kreisförmige Taschen, Eckenradien, Verrundungen und Konturfräsen verwendet. Der Mittelpunkt oder der Radius (R) muss angegeben werden. Bei den meisten Steuerungen ist die Bogenrichtung relativ zur aktiven Ebene (G17/G18/G19) – ein wichtiges Detail bei der Programmierung von Bögen außerhalb der XY-Ebene.

Der entscheidende Unterschied: G00 dient zur Positionierung zwischen den Schnitten. G01/G02/G03 dienen zum Materialabtrag. Die Verwendung von G00 anstelle von G01 – oder das Belassen von G01, wenn eine Eilpositionierung erforderlich ist – ist eine der häufigsten Ursachen für Kollisionen und Überschnitte.

Koordinatensystem und G-Codes zur Positionierung

Diese Codes definieren wobei Es kommt auf die Bewegung an, nicht darauf, wie sich das Werkzeug bewegt.

Arbeitskoordinatensysteme (G54–G59) Jeder Offset speichert eine Beziehung zwischen dem Maschinen-Nullpunkt und dem Werkstück-Nullpunkt. In ein und demselben Programm können mehrere Spannvorrichtungen oder Rüstungen aktiv sein, indem unterschiedliche Arbeits-Offsets aufgerufen werden. In der praktischen Zerspanung ist G54 die Standardeinstellung für die Bearbeitung mit einer einzigen Rüstung; G55–G59 werden für Paletten mit mehreren Spannvorrichtungen oder Tombstone-Spannvorrichtungen verwendet.

G90 – Absolute Positionierung Alle Koordinaten beziehen sich auf den aktiven Arbeitsnullpunkt. Eine Bewegung zu X50 erfolgt immer relativ zum Werkstücknullpunkt, unabhängig von der aktuellen Werkzeugposition. Dies ist der Standardmodus für die meisten Produktionsprogramme – er ist vorhersehbar und leicht zu überprüfen.

G91 – Inkrementelle Positionierung Jede Koordinate wird relativ zur aktuellen Werkzeugposition verschoben. G91 ist sehr leistungsfähig bei sich wiederholenden Mustern und symmetrischen Strukturen, kann jedoch gefährlich sein, wenn es unbeabsichtigt aktiv bleibt. Ein inkrementeller Befehl G01 Z-1,0 bedeutet “1 mm nach unten verschieben, ausgehend von der aktuellen Position” – nicht vom Nullpunkt des Werkstücks. Dies ist eine wesentliche Ursache für Tiefenfehler und Kollisionen.

Vorgefertigte Zyklen

Mit Festzyklen lassen sich sich wiederholende Bohr-, Gewindeschneid- und Gewindebohrsequenzen in einzeilige Befehle zusammenfassen. Anstatt Anfahrt, Vorschub, Verweildauer, Rückzug und Freiraum für jede Bohrung einzeln zu programmieren, übernimmt ein Festzyklus die gesamte Sequenz automatisch.

Zu den gängigen Beispielen zählen G81 (Bohren), G83 (Tieflochbohren), G84 (Gewindeschneiden) und G76 (Feinbohren). Zu den typischen Parametern gehören die Bohrtiefe, die Rückzugsebene, die Vorschubgeschwindigkeit sowie zyklusbezogene Optionen.

Hier sind zwei technische Aspekte von Bedeutung. Erstens sind Festzyklen modal — Sie bleiben aktiv, bis sie ausdrücklich abgebrochen werden (in der Regel mit G80). Wird vergessen, einen Bohrzyklus vor einer Neupositionierung abzubrechen, kann dies dazu führen, dass die Maschine an jeder Zwischenposition bohrt. Zweitens variiert das Rückzugsverhalten je nach Steuerung – überprüfen Sie die Rückzugslogik beim Peck-Bohren, bevor Sie Tieflochbohrzyklen auf unbekannten Maschinen ausführen.


Häufige M-Codes: Was sie steuern und warum das Timing entscheidend ist

M-Codes werden oft als Nebensache betrachtet – einfache Befehle zum Starten der Spindel und zum Einschalten der Kühlmittelzufuhr. In der Praxis sind jedoch das Timing und die Abfolge der M-Codes ebenso entscheidend wie die Geometrie der Werkzeugbahn. Fehler dabei führen zum Verlust von Werkzeugen, Werkstücken und manchmal sogar von Maschinen.

Spindelsteuerung

M03 – Spindel ein (im Uhrzeigersinn) Standard-Schnittrichtung für rechtsdrehende Werkzeuge. Muss aktiv sein, bevor ein G-Code für den Schnitt ausgeführt wird. Geben Sie einen S-Wert (Spindeldrehzahl) im selben oder im vorhergehenden Satz an.

M04 – Spindel ein (gegen den Uhrzeigersinn) Wird für linksdrehende Werkzeuge, bestimmte Bohrvorgänge und das Gewindefräsen in bestimmten Konfigurationen verwendet. Die Verwendung von M04 mit einem standardmäßigen rechtsdrehenden Schaftfräser führt sofort zu Schäden sowohl am Werkzeug als auch am Werkstück.

M05 – Spindelstopp Erforderlich vor Werkzeugwechseln, Antastvorgängen und Programmunterbrechungen. Bei den meisten Maschinen stoppt M06 (Werkzeugwechsel) die Spindel automatisch – es ist jedoch empfehlenswert und allgemeingültiger, M05 explizit vor M06 zu programmieren.

Kühlmittelregelung

M08 – Kühlmittel ein Aktiviert die Flutkühlung. Bei Maschinen mit mehreren Kühlmitteloptionen kann mithilfe bestimmter M-Codes zwischen Flut-, Nebel- und Spindel-Durchflusskühlung gewählt werden – siehe M-Code-Liste der Maschine.

M09 – Kühlmittel aus Vor Werkzeugwechseln und am Programmende ausschalten. Wenn die Kühlmittelzufuhr während eines Werkzeugwechsels aktiv bleibt, führt dies zu Aufräumproblemen und potenziellen Sicherheitsrisiken an der Werkzeugwechselposition.

Der richtige Zeitpunkt für die Kühlmittelzufuhr ist wichtiger, als die meisten Programmierer annehmen. Bei der Bearbeitung von Titan (Ti-6Al-4V) muss das Kühlmittel bereits aktiv sein, bevor die Schneide das Werkstück berührt – eine Aktivierung erst nach dem Kontakt ist für den Wärmeschutz zu spät. Bei Aluminium 6061 verhindert Sprüh- oder Flutkühlung die Bildung von Zunder und gewährleistet eine gleichbleibende Oberflächengüte. Der M08-Befehl gehört vorher der erste Schnitt G01, nicht danach.

Werkzeugwechsel und Programmablauf

M06 – Werkzeugwechsel Führt den automatischen Werkzeugwechsel zu dem durch einen T-Code angegebenen Werkzeug durch. Für eine sichere Ausführung muss das Werkzeug in die Werkzeugwechselposition zurückgezogen und die Spindel angehalten sein. Standardablauf: G00 bis Z-Sicherheitsabstand → M05 → T___ → M06.

M00 – Programmstopp (bedingungslos) Unterbricht die Ausführung. Die Maschine hält an und wartet auf eine Eingabe durch den Bediener. Wird für Prüfungen während des Betriebs, manuelle Arbeitsschritte oder die Anpassung von Vorrichtungen während des Zyklus verwendet.

M01 – Optionaler Stopp Hält nur an, wenn der optionale Stoppschalter am Controller aktiviert ist. Nützlich für Prüfpunkte, die im Produktionsbetrieb umgangen werden können, aber während der Einrichtung oder bei Erstmusterläufen aktiviert werden.

M30 – Programmende und Rücksetzen Beendet das Programm und spult zum Anfang zurück. Dies ist die korrekte Vorgehensweise zum Beenden eines CNC-Programms in der Produktion. M02 beendet das Programm ohne Rückspulen – vermeiden Sie dies im Produktionscode.

Funktionsgruppe M-Codes Stelle im Ingenieurwesen
Spindel M03 / M04 / M05 Schneiden aktivieren und beenden; Richtung steuern
Kühlmittel M08 / M09 Temperaturregelung, Spanabfuhr, Oberflächengüte
Werkzeugverwaltung M06 Ablauf des Werkzeugwechsels
Programmablauf M00 / M01 / M30 Sicherheitsstopps, Inspektion, Rücksetzen des Zyklus

Wie G-Code und M-Code zusammenwirken: Ein praktisches Beispiel aus der Fräsbearbeitung

Die Abstimmung zwischen G- und M-Codes wird deutlich, wenn man die Ausführungslogik eines konkreten Bearbeitungsvorgangs nachverfolgt. So sieht ein einfacher Planfräsdurchgang an einem Werkstück aus Aluminium 6061 aus der Perspektive der Zustandsverwaltung aus:

Phase 1: Maschinenvorbereitung (M-Codes legen die Schnittbedingungen fest)

G21 G90 G17 G54 ; Metrisch, absolut, XY-Ebene, Werkstückversatz einstellen
T01 M06 ; Planfräser laden (Werkzeugwechselsequenz)
S3000 M03 ; Spindel einschalten, im Uhrzeigersinn mit 3000 U/min
M08 ; Kühlmittel voll auf
G00 Z50,0 ; Eilgang auf sicheren Z-Abstand
G00 X-10,0 Y0 ; Eilgang zur Annäherungsposition

Vor jeder Schneidbewegung ist der Zustand der Maschine vollständig definiert: das richtige Werkzeug, die Spindel läuft in der richtigen Richtung mit der richtigen Drehzahl, die Kühlmittelzufuhr ist aktiviert, das Werkzeug befindet sich in sicherer Position über dem Werkstück.

Phase 2: Schneidbewegung (G-Codes steuern den Verfahrweg)

G00 Z2,0 ; Eilgang auf die Z-Anfahrhöhe
G01 Z-0,5 F200 ; Eintauchen auf die Schnitttiefe mit geregelter Vorschubgeschwindigkeit
G01 X110,0 F600 ; Planfräsdurchgang über das Werkstück

Die G01-Befehle steuern den eigentlichen Materialabtrag. Die M-Codes für Spindel und Kühlmittel aus Phase 1 bleiben modal aktiv – sie müssen nicht für jeden Schnitt erneut aufgerufen werden, müssen jedoch vor Beginn von Phase 2 festgelegt worden sein.

Phase 3: Sicherer Ausstieg (Maschine in einen bekannten Zustand zurückversetzen)

G01 Z2,0 F600 ; Rückzug mit Vorschubgeschwindigkeit (keine Eilgangbewegung – kontrolliert)
G00 Z50,0 ; Eilgang bis zum vollen Z-Freiraum
M09 ; Kühlmittel aus
M05 ; Spindelstopp
G00 X0 Y0 ; Zurück zur Referenzposition
M30 ; Programmende und Rücksetzen

Jedes Element der Ausfahrsequenz hat einen bestimmten Zweck. Das Zurückfahren mit Vorschubgeschwindigkeit vor dem Wechsel in den Eilgang verhindert Eintauchspuren, falls das Werkzeug noch in leichtem Kontakt steht. Das Abschalten der Kühlmittelzufuhr vor dem Anhalten der Spindel verhindert, dass während des Auslaufs Kühlmittel verspritzt wird. Der Befehl „G00“ zur Referenzposition sorgt für eine zuverlässige Vorbereitung auf den nächsten Zyklus.

Diese dreistufige Vorgehensweise – Vorbereiten, Ausführen, Wiederherstellen – ist das mentale Modell, mit dem sich die meisten CNC-Programmierfehler vermeiden lassen.


Unterschiede bei Steuerungen: Warum G-Code und M-Code nicht wirklich universell sind

ISO 6983 / RS274 bietet eine gemeinsame Syntaxgrundlage, doch die Hersteller von Steuerungen erweitern und modifizieren das Verhalten erheblich. Ein Programm, das auf einem Gerät einwandfrei läuft, kann auf einem anderen Gerät Fehlermeldungen oder unerwartete Bewegungen auslösen – selbst bei identischer Hardware.

Häufige Abweichungen

Fanuc-basierte Steuerungen: Die am häufigsten verwendeten Industriesteuerungen. Fanuc legt einen umfangreichen gemeinsamen Kern fest, doch die Maschinenhersteller können das Verhalten durch eigene Optionen ergänzen oder anpassen. Die Syntax von Makro B, die M-Codes für die Abtastung und die Parameter der Festzyklen variieren häufig von Maschine zu Maschine, selbst innerhalb der Fanuc-Familie.

Haas-Steuerungen: Was die grundlegenden G-Codes für die Bewegungssteuerung angeht, ist das System weitgehend Fanuc-kompatibel, allerdings verwendet Haas für viele Funktionen vereinfachte oder proprietäre M-Codes. Programme, die auf Haas-Maschinen erstellt wurden, erfordern häufig Anpassungen der M-Codes, wenn sie auf Fanuc-Maschinen übertragen werden.

LinuxCNC: Open-Source und in hohem Maße konfigurierbar. Unterstützt die Standard-RS274-Syntax, erweiterte Funktionen sind jedoch benutzerdefiniert. Leistungsstark für kundenspezifische Maschinen; erfordert eine sorgfältige Konfigurationsdokumentation, um ein konsistentes Verhalten zu gewährleisten.

Fläche Typische Abweichung
Werkzeugwechsel (M06) Positionierung, Sicherheitsüberprüfungen, Verhalten im Flugverkehrskontrollbetrieb
Vorgefertigte Zyklen Parameter, Rückzugsmodi, Peck-Verhalten
Kühlmittel-M-Codes Verschiedene Kühlmitteltypen, spezifische Code-Zuordnungen
Makrovariablen Syntax, Verfügbarkeit, Variablennummerierung
Standardzustände von Modalen Ebenenauswahl, Vorschubmodus, Einheiten beim Einschalten

Bewährte Verfahren für die Portabilität

Der zuverlässigste Ansatz für die Kompatibilität zwischen verschiedenen Controllern:

  • Verlassen Sie sich niemals auf Standardeinstellungen. Legen Sie zu Programmstart die Einheiten, die Ebene, den Positionierungsmodus und den Arbeitsversatz ausdrücklich fest.
  • Vermeiden Sie controller-spezifische Tastenkombinationen in Programmen, die für mehrere Rechner vorgesehen sind.
  • Kommentare zu nicht standardmäßigen M-Codes mit ihrer Funktion – zukünftige Programmierer werden ohne Dokumentation nicht wissen, was M88 auf Ihrem konkreten Rechner bewirkt.
  • Auf jedem Controller validieren vor dem ersten Produktionslauf, auch wenn das Programm “eigentlich funktionieren sollte”.”

Häufige G-Code- und M-Code-Fehler: Diagnose und Vermeidung

Die meisten CNC-Fehler lassen sich auf Fehler bei der Zustandsverwaltung zurückführen, nicht auf Syntaxfehler. Der Controller hat genau das ausgeführt, was ihm befohlen wurde – das Problem ist, dass der Programmierer nicht vollständig berücksichtigt hat, welche modalen Zustände aktiv waren.

Fehler Grundursache Prävention
Modaler Übertrag G90/G91, G00/G01 oder aus dem vorherigen Satz übernommenes Ebenensignal Kritische Modalzustände beim Programmstart und vor kritischen Vorgängen explizit zurücksetzen
Falsches Koordinatensystem Das Programm geht von einem Arbeitsversatz oder einem Einheitssystem aus, das von der Maschineneinstellung abweicht. G54–G59, G90/G91 und G20/G21 explizit festlegen – niemals davon ausgehen
Unerwartete schnelle Bewegung G01 ist weiterhin aktiv, wenn eine Schnellpositionierung vorgesehen ist, oder umgekehrt Den G-Code für die Bewegung in jedem Block neu angeben, in dem sich die Bewegungsabsicht ändert
Spindel-/Kühlmittel-Zeitsteuerung M-Codes, die nach Beginn der Schneidbewegung eingegeben werden M08 und M03 als Voraussetzungen behandeln: vor dem ersten G01 aktiv
Unsicherer Werkzeugwechsel M06 wurde ohne Spindelstopp oder sichere Rückzugsposition aufgerufen Standard-Werkzeugwechselablauf einhalten: Zurückfahren → M05 → T___ → M06
Unregelmäßiges Zyklusverhalten Modaler Festzyklus (G83, G84) wurde vor der Neupositionierung nicht abgebrochen Stornieren Sie Festzyklen explizit mit G80; gehen Sie nicht davon aus, dass sie automatisch storniert werden.
Das Programm bricht beim zweiten Durchlauf ab Versteckte Modalzustände bleiben auch nach Programmende bestehen Verwenden Sie M30 mit vollständiger Abschaltsequenz; initialisieren Sie alle Zustände beim Programmstart

Ein konkretes Beispiel: Inkrementalmodus bleibt aktiv

Ein häufiger Vorfall in der Werkstatt: Ein Programmierer verwendet G91 (inkremental) für ein Bohrmuster mit Schraubenkreis. Der Festzyklus läuft korrekt ab. Dann bricht G80 den Zyklus ab, aber G91 wird nicht auf G90 zurückgesetzt. Der nächste Arbeitsschritt – ein Taschenfräsdurchgang – verwendet inkrementale Koordinaten. Anstatt zu X50 Y30 (absolut) zu fahren, bewegt sich die Maschine 50 mm und 30 mm von ihrer aktuellen Position aus.

Ergebnis: Fräsdurchgang an falscher Stelle, Ausschussteil, potenzieller Zusammenstoß.

Korrektur: hinzufügen G90 bis zur Zeile unmittelbar danach G80 beim Verlassen des inkrementellen Modus. Ein Zeichen. Speichert einen Teil.


Bewährte Verfahren für eine zuverlässige CNC-Programmierung

Zuverlässige Programme weisen unabhängig von der Maschine oder der Steuerung gemeinsame strukturelle Merkmale auf. Diese Vorgehensweisen reduzieren Fehler, vereinfachen die Fehlersuche und sorgen dafür, dass Programme auch von anderen Personen als dem ursprünglichen Autor gewartet werden können.

Initialisierungsblock – Immer

Jedes Programm sollte mit einer vollständigen Zustandsinitialisierung beginnen:

G21 G90 G17 G54 G94 G40 G49    ; metrisch, absolut, XY-Ebene, WCS 1, 
 ; Vorschub pro Minute, Fräserkorrektur deaktivieren, Werkzeuglänge deaktivieren

Dieser einzelne Block beseitigt die meisten Probleme im Zusammenhang mit der Weitergabe des Modalzustands. Das Schreiben dauert fünf Sekunden und erspart stundenlange Fehlersuche.

Explizite Zustandsänderungen an logischen Grenzen

Stellen Sie vor jedem neuen Bearbeitungsvorgang – insbesondere beim Wechsel zwischen Bohren und Fräsen, zwischen verschiedenen Spannvorrichtungen oder nach manuellen Eingriffen – die kritischen Modenzustände wieder her. Gehen Sie nicht davon aus, dass die Maschine nach dem vorherigen Bearbeitungsvorgang im richtigen Zustand ist.

Regeln für die M-Code-Sequenzierung

Halten Sie sich konsequent an diese Reihenfolge:

  1. Auf einen sicheren Z-Abstand zurückfahren
  2. Spindelstopp (M05), falls ein Werkzeugwechsel erforderlich ist
  3. Werkzeugwechsel (M06) mit T-Code
  4. Spindelstart mit neuer Drehzahl (M03 S___) und Kühlmittel einschalten (M08)
  5. Position bis zum Anflugpunkt
  6. Schneidebewegung beginnen

Das Umkehren der Schritte 4 und 5 – d. h. das Zurückfahren in die Position, bevor Spindel und Kühlmittel aktiv sind – ist bei den meisten Steuerungen zwar technisch möglich, wird jedoch nicht empfohlen. Die Spindel benötigt Zeit, um ihre Drehzahl zu erreichen; das Kühlmittel muss den Schneidbereich erreichen, bevor das Werkzeug in den Werkstoff eindringt.

Kommentiere die Absicht, nicht nur die Syntax

Schlechter Kommentar: ; G01 X50 F300 (lineare Bewegung) Guter Kommentar: ; Schlichtdurchgang an der Bezugsebene – Tiefe 0,1 mm, 0 Aufmaß belassen

Kommentare sollten erläutern, warum Erläutern Sie, welche Codesequenz vorliegt und welche Annahmen darin zugrunde gelegt werden, anstatt lediglich zu wiederholen, was im Code bereits steht.

Vor der Ausführung durch Simulation überprüfen

Selbst erfahrene Programmierer führen vor der Bearbeitung eine Simulation durch. Moderne CAM-Simulationen erkennen Werkzeugwegfehler, Halterkollisionen und Interferenzen bei Eilgängen, die im Code zwar korrekt erscheinen, an der Maschine jedoch zu Abstürzen führen. Testläufe mit der Vorschubgeschwindigkeit 10% und einer visuellen Überprüfung jeder Bearbeitungsphase decken die verbleibenden Probleme auf, die bei der Simulation übersehen wurden.


Schlussfolgerung

G-Code und M-Code sind keine zwei getrennten Listen von CNC-Befehlen – sie sind zwei aufeinander abgestimmte Ebenen eines einzigen Maschinensteuerungssystems. Der G-Code definiert, wohin und wie sich das Werkzeug bewegt; der M-Code stellt sicher, dass sich die Maschine im richtigen Zustand befindet, um diese Bewegung sicher und effektiv auszuführen. Das Verständnis dafür, wie diese beiden Komponenten zusammenwirken, wie sich der Moduszustand über Programmblöcke hinweg fortsetzt und wie sich Unterschiede bei den Steuerungen auf das Verhalten auswirken, macht den Unterschied zwischen Code aus, der in der Produktion zuverlässig funktioniert, und Code, der nur einmal, auf einer Maschine und unter idealen Bedingungen funktioniert.

Eine zuverlässige CNC-Programmierung beruht auf einer konsequenten Verwaltung des Programmablaufs: explizite Initialisierung, vorhersehbare Ausführungsphasen und sorgfältige zeitliche Abstimmung des M-Codes. Programmierer, die G-Code und M-Code als aufeinander abgestimmtes logisches System verstehen – und nicht als isolierte Befehle, die es auswendig zu lernen gilt –, schreiben Programme, die maschinen- und schichtübergreifend portabel, sicher und leicht zu warten sind.


FAQ

Ist der G-Code für Fräs- und Drehmaschinen derselbe?

Nicht ganz. Die grundlegenden Bewegungsbefehle (G01, G02) kommen in beiden vor, aber der Kontext unterscheidet sich erheblich. Beim Fräsen werden die Ebenenauswahl (G17/G18/G19) und mehrachsige Koordinaten verwendet. Drehzentren nutzen Durchmesser-/Radiussteuerung (G7/G8 bei einigen Steuerungen), spindelsynchrone Bewegungen zum Gewindeschneiden (G32, G92) und drehmaschinenspezifische Festzyklen (G71, G72). Die zugrunde liegende Syntax ist zwar dieselbe; die Anwendungslogik unterscheidet sich jedoch so stark, dass sich Erfahrungen aus dem Fräsen nicht automatisch auf die Drehprogrammierung übertragen lassen.

Sind M-Codes bei allen CNC-Geräten einheitlich?

Nein – und davon auszugehen, ist riskant. Grundlegende Codes wie M03 (Spindel im Uhrzeigersinn), M05 (Spindelstopp) und M30 (Programmende) sind weitgehend einheitlich. Die Steuerung der Kühlmittelzufuhr, das Antasten, das Spannen, der Palettenwechsel und automatisierungsbezogene Funktionen variieren jedoch erheblich je nach Steuerung, Maschinenhersteller und Konfiguration. Überprüfen Sie stets die Zuordnung der M-Codes an der jeweiligen Maschine, bevor Sie sich darauf verlassen.

Warum verhält sich derselbe G-Code auf verschiedenen Steuerungen unterschiedlich?

Die Norm ISO 6983 definiert die Syntax, nicht das Verhalten. Steuerungen erweitern die Norm um eigene Standardwerte, Optionen und Interpretationen. Vorgegebene Zyklusparameter, Lichtbogen-Definitionen, Standard-Modalzustände beim Einschalten und die Positionierung beim Werkzeugwechsel können sich alle unterscheiden. Das Schreiben von explizitem, defensivem Code – also das Festlegen aller Modalzustände, anstatt sich auf Standardeinstellungen zu verlassen – ist der einzige zuverlässige Weg, um Unterschiede zwischen verschiedenen Steuerungen zu bewältigen.

Kann CAM-Software Kenntnisse im Bereich manueller G/M-Code ersetzen?

CAM-Software generiert zwar effizient korrekte Werkzeugwege, macht das Verständnis des Codes jedoch nicht überflüssig. Ingenieure und Zerspanungsfachkräfte benötigen nach wie vor Kenntnisse im G- und M-Code, um die Programmlogik zu überprüfen, unerwartetes Verhalten zu beheben, die Zykluszeit zu optimieren und klar mit Lieferanten und Bedienern zu kommunizieren. CAM ersetzt die manuelle Eingabe, nicht jedoch das technische Urteilsvermögen.

Was sind die gefährlichsten Fehler im G- und M-Code?

Zustandsbezogene Fehler verursachen die schwerwiegendsten Vorfälle. Zu den risikoreichsten Fehlern zählen: G00-Eilgänge, die zu nah am Werkstück ausgeführt werden; unbeabsichtigt aktiv gelassener Inkrementalmodus (G91); das Weglassen des Spindelanlaufs (M03) vor der Schneidbewegung; das Auslösen eines Werkzeugwechsels (M06) ohne sicheren Rückzug; sowie nicht vor der Neupositionierung abgebrochene Festzyklen (G83, G84). Keiner dieser Fehler führt zu Syntaxfehlern – die Steuerung führt sie ohne Beanstandung aus. Der Schaden entsteht auf mechanischer Ebene.

Beitragsinhalt

Kontaktinformationen

Erhalten Sie die neuesten Nachrichten und Updates

Abonnieren Sie unseren Newsletter