Eine steuerungsübergreifende G-Code- und M-Code-Referenz, gegliedert nach Arbeitsgang — also danach, was die Maschine tatsächlich tun soll — statt nach Codenummer. Jede Zeile ist ein Arbeitsgang (eine Vorschubbewegung, ein Kreisbogen, ein Antastvorgang, ein Bohrzyklus, eine Nullpunktanwahl…), und die Spalte jeder Steuerung zeigt den exakten Code, den diese Steuerung dafür verwendet.
Abgedeckt werden LinuxCNC, GRBL (1.1), Centroid (CNC12 — Acorn / Allin1DC / Oak; Fräsversion, sofern nicht anders angegeben), FANUC (0i / 30i, mit Fokus auf die Fräsmaschine, Drehmaschinen-Besonderheiten sind gekennzeichnet), Mach 3 (Mill Rev 1.84-A2) und Mach 4 (Mill v1.0).
So lesen Sie die Tabellen:
- Eine Zelle zeigt den bzw. die Code(s), die diese Steuerung für den Arbeitsgang
verwendet — z. B. steht in der Zeile „Antasten zum Werkstück"
G38.2für LinuxCNC,G31für FANUC undM115/M116für Centroid. —bedeutet: Diese Steuerung hat keinen entsprechenden Code für den Arbeitsgang.- Ein Code mit gepunkteter Unterstreichung hat eine steuerungsspezifische Einschränkung; der vollständige Hinweis steht in der Spalte Hinweise dieser Zeile (und erscheint beim Überfahren mit der Maus).
- Mit dem Steuerungsfilter oben über den Tabellen blenden Sie alle Spalten außer Ihrer eigenen aus.
Die zur Faktenprüfung verwendeten Quellen sind am Ende dieses Dokuments aufgeführt.
#Codes nach Arbeitsgang
Bewegung & Interpolation
Die Bewegungen, die tatsächlich zerspanen. Das sind die portabelsten Codes — G0–G3 bedeuten auf jeder hier gelisteten Steuerung dasselbe.
| Arbeitsgang | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Haas | Hinweise |
|---|---|---|---|---|---|---|---|---|
| Eilgang-Positionierung | G0 |
G0 |
G0 |
G0 |
G0 |
G0 |
G0 |
Verfahren ohne Zerspanung mit der Maximalgeschwindigkeit der Maschine. |
| Lineare Vorschubbewegung | G1 |
G1 |
G1 |
G1 |
G1 |
G1 |
G1 |
Gerader Schnitt mit Vorschubgeschwindigkeit; erfordert ein F-Wort. |
| Kreisbogen / Helix im Uhrzeigersinn | G2 |
G2 |
G2 |
G2 |
G2 |
G2 |
G2 |
I/J/K-Mittelpunktversätze oder R-Radius, in der aktiven Arbeitsebene. Mit zusätzlicher Z-Bewegung entsteht eine Helix. |
| Kreisbogen / Helix gegen den Uhrzeigersinn | G3 |
G3 |
G3 |
G3 |
G3 |
G3 |
G3 |
Gleiche Konventionen wie beim Bogen im Uhrzeigersinn, entgegengesetzte Richtung. |
| Verweilzeit (Pause) | G4 |
G4 |
G4 |
G4 |
G4 |
G4 |
G4 |
Mach3/4: P mit Dezimalstelle = Sekunden, ganzzahliges P = Millisekunden. |
| Vollkreis im Uhrzeigersinn (aktuelle Position als Mittelpunkt) | — | — | — | — | G12 |
G12 |
G12 |
Mach3: teilweise Haas: Circular Pocket Milling CW |
| Vollkreis gegen den Uhrzeigersinn | — | — | — | — | G13 |
G13 |
G13 |
Mach3: teilweise Haas: Circular Pocket Milling CCW |
| Kubische Spline-Interpolation | G5 |
— | — | — | — | — | — | Nur LinuxCNC. NICHT dasselbe wie FANUC G5 (Look-Ahead) — siehe den Hinweis zu den falschen Freunden. LinuxCNC: G5 = kubischer Spline durch Kontrollpunkte |
| Festlegung einer imaginären Achse | — | — | — | G7.1 |
— | — | — | FANUC-Vorbereitung für Zylinder-/Polarinterpolation. |
| Uni-directional positioning (Haas) | — | — | — | — | — | — | G60 |
Approaches each point from one direction to take up backlash. |
Arbeitsebenen-Auswahl
| Arbeitsgang | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Haas | Hinweise |
|---|---|---|---|---|---|---|---|---|
| XY-Ebene wählen | G17 |
G17 |
G17 |
G17 |
G17 |
G17 |
G17 |
Standard. Kreisbögen verwenden I/J. |
| ZX-Ebene wählen | G18 |
G18 |
G18 |
G18 |
G18 |
G18 |
G18 |
Kreisbögen verwenden I/K. |
| YZ-Ebene wählen | G19 |
G19 |
G19 |
G19 |
G19 |
G19 |
G19 |
Kreisbögen verwenden J/K. |
Werkstückkoordinaten & Nullpunktverschiebungen
Wo der Werkstücknullpunkt liegt. Bei den erweiterten Nullpunkten jenseits der ersten sechs weichen die Steuerungen am stärksten voneinander ab.
| Arbeitsgang | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Haas | Hinweise |
|---|---|---|---|---|---|---|---|---|
| Werkstück-Koordinatensystem 1–6 anwählen | G54 / G55 / G56 / G57 / G58 / G59 |
G54 / G55 / G56 / G57 / G58 / G59 |
G54 / G55 / G56 / G57 / G58 / G59 |
G54 / G55 / G56 / G57 / G58 / G59 |
G54 / G55 / G56 / G57 / G58 / G59 |
G54 / G55 / G56 / G57 / G58 / G59 |
G54 / G55 / G56 / G57 / G58 / G59 |
G54 ist auf den meisten Steuerungen das aktive Koordinatensystem nach dem Einschalten. |
| Werkstück-Koordinatensysteme 7–9 | G59.1 / G59.2 / G59.3 |
— | — | — | G59.1 / G59.2 / G59.3 |
G59.1 / G59.2 / G59.3 |
— | Der LinuxCNC-/Mach-Weg zu drei weiteren Aufspannungen. |
| Erweiterte Nullpunktbank (P-adressiert) | — | — | — | G54.1 |
— | G54.1 |
G154 |
FANUC: P1–P48 (0i) oder P1–P300 (30i). Mach4: P1–P248. Centroid verwendet die abweichende Form OHNE Dezimalstelle weiter unten. FANUC: G54.1 P1–P48 (0i) / P1–P300 (30i) Mach4: G54.1 P1–P248 Haas: G154 P1–P99 |
| Erweiterte Nullpunktverschiebungen (Centroid) | — | — | G54 P1–P12 |
— | — | — | — | Centroids 12 optionale erweiterte Nullpunkte (WKS Nr. 7–18). Beachten Sie das Leerzeichen und die FEHLENDE Dezimalstelle — nicht identisch mit FANUCs G54.1 Pn. Centroid: auch als E7–E18 adressierbar |
| Additional work coord systems 7–26 (Haas legacy) | — | — | — | — | — | — | G110–G129 |
Older Haas extra fixtures #7–#26, one dedicated code each. Superseded by G154 Pn on current controls. Haas: G110 = #7 … G129 = #26 |
| Nullpunktverschiebung setzen (absolut) | G10 L2 |
G10 L2 |
G10 L2 |
G10 L2 |
G10 L2 |
G10 L2 |
G10 L2 |
P1 = G54 … P6 = G59. Das aktive WKS muss nicht mit P übereinstimmen. |
| Nullpunkt auf aktuelle Position setzen | G10 L20 |
G10 L20 |
G10 L20 |
G10 L20 |
G10 L20 |
G10 L20 |
G10 L20 |
Die „Nullpunkt hierhin“-Variante. |
| Lokale Koordinatenverschiebung | G52 |
— | G52 |
G52 |
G52 |
G52 |
G52 |
Temporäre Verschiebung zusätzlich zum aktiven WKS. Haas: Haas G52 = global work-coordinate shift |
| Verfahren in Maschinenkoordinaten (nicht modal) | G53 |
G53 |
G53 |
G53 |
G53 |
G53 |
G53 |
Einmalige Bewegung im Maschinenkoordinatensystem. |
| Position setzen / Koordinatenverschiebung | G92 |
G92 |
G92 |
G92 |
G92 |
G92 |
G92 |
FANUC hat G92.1 / G92.2 zum Löschen bzw. Wiederherstellen; Mach hat G92.1. Haas: sets the global coordinate-system shift value |
Einheiten & Maßangaben
| Arbeitsgang | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Haas | Hinweise |
|---|---|---|---|---|---|---|---|---|
| Programmierung in Zoll | G20 |
G20 |
G20 |
G20 |
G20 |
G20 |
G20 |
|
| Programmierung in Millimetern | G21 |
G21 |
G21 |
G21 |
G21 |
G21 |
G21 |
|
| Absolutmaßprogrammierung | G90 |
G90 |
G90 |
G90 |
G90 |
G90 |
G90 |
|
| Kettenmaßprogrammierung (inkrementell) | G91 |
G91 |
G91 |
G91 |
G91 |
G91 |
G91 |
|
| Absoluter Bogenmittelpunkt-Modus | G90.1 |
— | G90.1 |
— | G90.1 |
G90.1 |
— | I/J/K werden zu Absolutkoordinaten statt Versätzen. Centroid: variiert je nach CNC12-Version |
| Inkrementeller Bogenmittelpunkt-Modus (Standard) | G91.1 |
G91.1 |
G91.1 |
G91.1 |
G91.1 |
G91.1 |
— |
Vorschub- & Drehzahlmodi
| Arbeitsgang | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Haas | Hinweise |
|---|---|---|---|---|---|---|---|---|
| Vorschub pro Minute | G94 |
— | G94 |
G94 |
G94 |
G94 |
G94 |
Standard auf Fräsmaschinen. Auf einer FANUC-DREHMASCHINE übernimmt G98 diese Rolle — siehe den Hinweis zu den falschen Freunden. |
| Vorschub pro Umdrehung | G95 |
— | G95 |
G95 |
G95 |
G95 |
G95 |
Auf einer FANUC-DREHMASCHINE übernimmt G99 diese Rolle. |
| Zeitreziproker Vorschub (Inverse Time) | G93 |
G93 |
G93 |
G93 |
G93 |
G93 |
G93 |
F = 1/Minuten; für manche Rundachsbewegungen erforderlich. Centroid: G93 ein, G94 aus. |
Werkzeuglängen- & Fräserradiuskorrektur
| Arbeitsgang | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Haas | Hinweise |
|---|---|---|---|---|---|---|---|---|
| Fräserradiuskorrektur AUS | G40 |
G40 |
G40 |
G40 |
G40 |
G40 |
G40 |
Standardzustand. |
| Radiuskorrektur LINKS der Bahn | G41 |
— | G41 |
G41 |
G41 |
G41 |
G41 |
Das D-Wort wählt das Korrekturregister. |
| Radiuskorrektur RECHTS der Bahn | G42 |
— | G42 |
G42 |
G42 |
G42 |
G42 |
|
| Dynamische Radiuskorrektur (Wert im Programm) | G41.1 / G42.1 |
— | — | — | — | — | — | LinuxCNC übergibt den D-Wert direkt im Satz statt über ein Register. |
| Eckenverhalten der Radiuskorrektur | — | — | — | — | — | G40.1 / G40.2 |
— | Nur Mach4: G40.1 verrundete Ecken, G40.2 spitze Ecken. |
| Werkzeuglängenkorrektur (positiv) | G43 |
— | G43 |
G43 |
G43 |
G43 |
G43 |
Das H-Wort wählt das Längenkorrektur-Register. |
| Werkzeuglängenkorrektur (negativ) | — | — | G44 |
G44 |
— | — | G44 |
Selten verwendet; FANUC-Stil. Centroid dokumentiert G44 in CNC12. |
| Dynamische Werkzeuglängenkorrektur (Wert im Programm) | G43.1 |
G43.1 |
— | — | — | — | — | |
| Werkzeuglängenkorrektur aufheben | G49 |
G49 |
G49 |
G49 |
G49 |
G49 |
G49 |
|
| Werkzeugtabellen-Eintrag direkt setzen | G10 L1 |
— | G10 L1 |
G10 L1 |
G10 L1 |
G10 L1 |
— | P = Werkzeugnummer, R = Wert. Centroid dokumentiert dies in CNC12. LinuxCNC: teilweise |
| Werkzeuglänge so setzen, dass aktuelle Position = Wert | G10 L10 |
— | G10 L10 |
G10 L10 |
G10 L10 |
G10 L10 |
G10 L10 |
LinuxCNC: teilweise |
| Werkzeuglängen-/Radiusverschleiß & Radius setzen | — | — | G10 L11 / G10 L12 / G10 L13 |
G10 L11 / G10 L12 / G10 L13 |
G10 L11 / G10 L12 / G10 L13 |
G10 L11 / G10 L12 / G10 L13 |
G10 L11 / G10 L12 / G10 L13 |
Centroid CNC12 dokumentiert die L11/L12/L13-Familie ausdrücklich; die Unterstützung anderswo variiert. FANUC: variiert Mach3: variiert Mach4: variiert |
| 3D+ cutter compensation (Haas) | — | — | — | — | — | — | G141 |
Haas 3-axis simultaneous cutter comp for ball-nose / contour work. |
Bohr-, Ausdreh- & Gewindebohrzyklen
Festzyklen für Bohrungen. GRBL hat keine — CAM-Postprozessoren lösen sie in einzelne G1-Bewegungen auf.
| Arbeitsgang | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Haas | Hinweise |
|---|---|---|---|---|---|---|---|---|
| Festzyklus abwählen | G80 |
— | G80 |
G80 |
G80 |
G80 |
G80 |
Erforderlich, um Bohr-/Ausdreh-/Gewindemodi zu verlassen. |
| Standard-Bohrzyklus | G81 |
— | G81 |
G81 |
G81 |
G81 |
G81 |
Z im Vorschub abwärts, im Eilgang heraus. |
| Bohren mit Verweilzeit am Grund | G82 |
— | G82 |
G82 |
G82 |
G82 |
G82 |
Für Anbohren / Senken. |
| Tieflochbohren (voller Rückzug) | G83 |
— | G83 |
G83 |
G83 |
G83 |
G83 |
Q = Zustelltiefe; der volle Rückzug räumt die Späne aus. |
| Spanbruch-Bohren (kurzer Rückzug) | G73 |
— | G73 |
G73 |
G73 |
G73 |
G73 |
|
| Gewindebohren rechtsgängig | G84 |
— | G84 |
G84 |
G84 |
G84 |
G84 |
Mach3: starres Gewindebohren erfordert ein OEM-Plugin |
| Gewindebohren linksgängig | G74 |
— | G74 |
G74 |
G74 |
G74 |
G74 |
Die FANUC-DREHMASCHINE belegt G74 mit einem Planeinstechzyklus — siehe falsche Freunde. Haas: Reverse Tap canned cycle |
| Starres Gewindebohren | G33.1 |
— | — | — | — | G84.2 / G84.3 |
— | Eigene Codes für starres Gewindebohren; sonst ist der starre Modus ein Schalter von G84. LinuxCNC: LinuxCNC-Code für starres Gewindebohren |
| Ausdrehen (Vorschub hinein, Vorschub heraus) | G85 |
— | G85 |
G85 |
G85 |
G85 |
G85 |
|
| Ausdrehen (Vorschub hinein, Halt, Eilgang heraus) | — | — | — | G86 |
G86 |
G86 |
G86 |
Centroids CNC12-Festzyklussatz ist G81–G85 + G89; G86/G87/G88 stehen nicht im Handbuch. |
| Rückwärts-Ausdrehen | — | — | — | G87 |
G87 |
G87 |
G77 |
Haas: Haas uses G77 for back-bore |
| Ausdrehen mit manuellem Rückzug | — | — | — | G88 |
G88 |
G88 |
— | |
| Ausdrehen mit Verweilzeit (Vorschub heraus) | G89 |
— | G89 |
G89 |
G89 |
G89 |
G89 |
|
| Feinausdrehen (orientierter Halt, Abheben, Rückzug) | — | — | G76 |
G76 |
G76 |
G76 |
G76 |
Die FANUC-DREHMASCHINE belegt G76 mit einem Gewindezyklus — siehe falsche Freunde. Centroid: teilweise; je Version prüfen |
| Bolt-hole patterns (Haas mill) | — | — | — | — | — | — | G70 / G71 / G72 |
MILL-only pattern cycles used with a canned drill cycle. FANUC / lathe reuse G70–G72 for turning cycles — see false friends. Haas: G70 circle, G71 arc, G72 along an angle |
| General-purpose pocket milling (Haas) | — | — | — | — | — | — | G150 |
Haas canned pocket routine (rough + finish, with ramp / island options). |
| Text engraving (Haas) | — | — | — | — | — | — | G47 |
Engrave a literal string or an auto-incrementing serial number. |
| Broaching cycle (Haas) | — | — | — | — | — | — | G156 |
|
| Non-vertical rigid tapping (Haas 5-axis) | — | — | — | — | — | — | G174 / G184 |
Rigid tap along a tilted / rotary axis on a UMC. Haas: G174 CCW, G184 CW |
Antasten & Werkzeugvermessung
Die größte Abweichung auf dieser Seite. LinuxCNC/GRBL verwenden G38.x, FANUC/Mach G31, und Centroid arbeitet komplett mit M-Codes.
| Arbeitsgang | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Haas | Hinweise |
|---|---|---|---|---|---|---|---|---|
| Antasten zum Werkstück, Fehler bei fehlendem Kontakt | G38.2 |
G38.2 |
M115 / M116 |
G31 |
G31 |
G31 |
G31 |
FANUC-Syntax: G31 P1–P4 für mehrstufiges Skip. Centroid hat KEIN G31/G38 — es tastet mit geschützten Verfahr-M-Codes an. Centroid: Antasten mit geschützter Bewegung; M115 minus, M116 plus Haas: Feed Until Skip |
| Antasten zum Werkstück, kein Fehler bei fehlendem Kontakt | G38.3 |
G38.3 |
M115/M116 L1 |
— | — | — | — | Centroid: L1 unterdrückt den Fehler bei fehlendem Kontakt |
| Freitasten von der Oberfläche weg | G38.4 / G38.5 |
G38.4 / G38.5 |
M125 / M126 |
— | — | — | — | G38.4 meldet einen Fehler, wenn noch Kontakt besteht; G38.5 nicht. Centroid: Varianten zum Wegtasten |
| Mehrere Messtaster-Eingänge | — | — | — | — | — | G31.1 / G31.2 / G31.3 |
— | Auswahl zwischen mehreren Tastereingängen. |
| Achse verfahren, bis ein Schalter auslöst | — | — | M105 / M106 |
— | — | — | — | Verfährt die angegebene Achse im Vorschub, bis ein PLC-Schalter/-Eingang öffnet (P > 0) oder schließt (P < 0). Centroid: M105 minus, M106 plus |
| Automatic tool / work measurement (Haas) | — | — | — | — | — | — | G35 / G36 / G37 / G136 |
Spindle- and table-probe measuring cycles. Haas: G35 tool diameter, G36 work offset, G37 tool offset, G136 work-offset center |
| Probe support M-codes (Haas) | — | — | — | — | — | — | M75 / M78 / M79 / M104 |
Helpers used inside Haas probing / tool-setting routines. Haas: M75 set G35/G136 ref point; M78 alarm if skip found; M79 alarm if skip not found; M104/M105 probe-arm extend/retract |
Koordinatentransformationen — Drehung, Skalierung, Spiegelung, Polar
| Arbeitsgang | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Haas | Hinweise |
|---|---|---|---|---|---|---|---|---|
| Koordinatendrehung EIN | G68 |
— | G68 |
G68 |
G68 |
G68 |
G68 |
Dreht die aktive Ebene um einen Mittelpunkt. Auf Mach3/4 nur in der XY-Ebene. |
| Koordinatendrehung AUS | G69 |
— | G69 |
G69 |
G69 |
G69 |
G69 |
|
| Skalierung EIN | — | — | G51 |
G51 |
G51 |
G51 |
G51 |
P oder I/J/K = Skalierungsfaktoren. Mach4 warnt, dass skalierte Kreisbögen unvorhersehbar sein können. Centroid: Centroid fasst Skalierung UND Spiegelung in G51 zusammen |
| Skalierung AUS | — | — | G50 |
G50 |
G50 |
G50 |
G50 |
Die FANUC-DREHMASCHINE belegt G50 komplett anders — siehe falsche Freunde. Centroid: auch Spiegelung-aus; teilweise/versionsabhängig Haas: Cancel Scaling |
| Spiegelung EIN / AUS | — | — | — | G51.1 / G50.1 |
— | — | G101 / G100 |
Centroid hat keine eigenen Spiegel-Codes — Spiegelung läuft über G50/G51. Haas: G101 enable, G100 cancel |
| Polarkoordinaten EIN / AUS | — | — | — | G16 / G15 |
— | G16 / G15 |
— | X wird als Radius, Y als Winkel interpretiert. |
| Cylindrical mapping / wrapping (Haas) | — | — | — | — | — | — | G107 |
Wraps a flat XY toolpath around a rotary (A/B) axis. |
Look-Ahead, Glättung & Genauhalt
| Arbeitsgang | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Haas | Hinweise |
|---|---|---|---|---|---|---|---|---|
| Genauhalt (nicht modal, ein Satz) | G9 |
— | G9 |
G9 |
G9 |
G9 |
G9 |
Einmal-Variante von G61. |
| Genauhalt (modal) | G61 |
G61 |
G61 |
G61 |
G61 |
G61 |
G61 |
Bremst an jedem Satzende vollständig ab. |
| Genauhalt (Variante) | G61.1 |
— | — | — | G61.1 |
G61.1 |
— | |
| Bahnüberschleifen / Bahnsteuerbetrieb | G64 |
G64 |
G64 |
G64 |
G64 |
G64 |
G64 |
LinuxCNC: G64 P<Toleranz>. FANUC stellt dies stattdessen über G5.1 HPCC ein. FANUC: teilweise; HPCC-Tuning weicht ab Haas: cancels G61 exact-stop mode |
| AI Contour Control / HPCC (Look-Ahead) | — | — | — | G5.1 |
— | — | — | FANUC-Look-Ahead: Q1 ein, Q0 aus. NICHT dasselbe wie der LinuxCNC-G5-Spline — siehe falsche Freunde. |
| Nano-Smoothing / HPCC-Variante | — | — | — | G5.4 |
— | — | — | FANUC: nur einige 30i-B |
| Look-Ahead-Beschleunigung aktivieren (ältere FANUC) | — | — | — | G8 |
— | — | — | G8 P1 ein, G8 P0 aus. |
| Look-ahead block limit (Haas) | — | — | — | — | — | — | G103 |
Caps how many blocks the control buffers ahead; P0 = maximum look-ahead. Haas: G103 P_ (block limit) |
| Smoothness / accuracy level (Haas) | — | — | — | — | — | — | G187 |
Haas HSM accuracy control; analogous to FANUC G05.1 look-ahead tuning. Haas: G187 E_ / P_ trades smoothness against accuracy |
Referenzfahrt & Referenzpunkte
| Arbeitsgang | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Haas | Hinweise |
|---|---|---|---|---|---|---|---|---|
| Referenzpunkt anfahren (Home) | G28 |
G28 |
G28 |
G28 |
G28 |
G28 |
G28 |
GRBL/Mach: vordefinierte gespeicherte Position. |
| G28-Referenzpunkt speichern | G28.1 |
G28.1 |
— | — | G28.1 |
G28.1 |
— | |
| Rückkehr vom Referenzpunkt (über Zwischenpunkt) | G29 |
— | G29 |
G29 |
G29 |
G29 |
G29 |
|
| Zweiten Referenzpunkt anfahren | G30 |
G30 |
G30 |
G30 |
G30 |
G30 |
— | |
| G30-Referenzpunkt speichern | G30.1 |
G30.1 |
— | — | G30.1 |
G30.1 |
— | |
| Referenzpunkt-Kontrolle | — | — | — | G27 |
— | — | — | Prüft, ob die Maschine im Referenzpunkt steht. |
Programmablauf & Unterprogramme
| Arbeitsgang | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Haas | Hinweise |
|---|---|---|---|---|---|---|---|---|
| Programmierter Halt | M0 |
M0 |
M0 |
M0 |
M0 |
M0 |
M0 |
Weiter mit Zyklusstart. |
| Wahlweiser Halt | M1 |
M1 |
M1 |
M1 |
M1 |
M1 |
M1 |
Wird übersprungen, sofern der Schalter für den wahlweisen Halt nicht aktiv ist. |
| Programmende (ohne Rücklauf) | M2 |
M2 |
M2 |
M2 |
M2 |
M2 |
M2 |
|
| Programmende mit Rücklauf | M30 |
M30 |
M30 |
M30 |
M30 |
M30 |
M30 |
Das, was die meisten CAM-Systeme ans Dateiende schreiben. |
| Unterprogramm aufrufen | — | — | M98 |
M98 |
M98 |
M98 |
M98 |
FANUC/Centroid/Mach: P<Datei> L<Wiederholungen>. LinuxCNC verwendet stattdessen O-Codes. |
| Rücksprung aus Unterprogramm / Makroende | — | — | M99 |
M99 |
M99 |
M99 |
M99 |
Haas: sub-program return or loop |
| Benannte / nummerierte Unterprogramme | O-codes |
— | — | — | — | — | — | Das LinuxCNC-Modell: o100 sub / o100 endsub / o100 call. LinuxCNC: o<n> sub / endsub / call |
| Makroaufruf (einmalig) | G65 |
— | G65 |
G65 |
— | G65 |
G65 |
Centroid: L = Wiederholungszahl, kein Vorschub. Mach4: Makrodatei muss .nc sein; A–Z-Argumente werden auf #1–#26 abgebildet. LinuxCNC: über O-Code-Unterprogramme |
| Modaler Makroaufruf / Abwahl | — | — | — | G66 / G67 |
— | G66 / G67 |
— | Centroids CNC12-Liste dokumentiert nur das einmalige G65 — kein G66/G67. |
| Programm von vorn erneut starten | — | — | — | — | M47 |
M47 |
— | Mach4: teilweise |
| Local subprogram call (Haas) | — | — | — | — | — | — | M97 |
Calls a labeled block in the SAME program (P = line/label, L = repeats). FANUC has no M97. Haas: M97 P<line> L<reps> |
| Conditional jump (Haas) | — | — | — | — | — | — | M96 / M46 |
Haas: M96 P_ Q_ jump if no input; M46 Q_ P_ jump to line |
Makros, Variablen & Ablaufsteuerung
Wie jede Steuerung Verzweigungen und Schleifen umsetzt. Das sind Sprachkonstrukte, keine G-Codes — gezeigt für das Portieren von Makros. Centroid ist der Sonderfall: kein WHILE/DO.
| Arbeitsgang | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Haas | Hinweise |
|---|---|---|---|---|---|---|---|---|
| Parametrische Variablen | #<named> |
— | #vars |
#vars |
VBScript |
Lua |
#vars |
LinuxCNC: benannte & nummerierte Parameter Centroid: Macro-B-Stil FANUC: Macro-B Mach3: Param1/2/3() Mach4: per Skript Haas: FANUC-style Macro-B |
| Bedingung (IF / THEN) | O… if/elseif/else/endif |
— | IF/THEN/ELSE |
IF[…] THEN / GOTO |
VBScript |
Lua |
IF[…] THEN / GOTO |
Centroid: unterstützt |
| Schleife (WHILE / DO) | O… while/endwhile |
— | — | WHILE[…] DO / END |
VBScript |
Lua |
WHILE[…] DO / END |
Centroid CNC12 hat KEINE WHILE/DO-Schleife — stattdessen IF + GOTO verwenden. |
| Sprung (GOTO) | — | — | GOTO Nnnn |
GOTOn |
— | — | GOTOn |
Centroid: Sprung zu einer Satznummer |
| Internen Steuerungsparameter setzen | — | — | G10 P_ R_ |
— | — | — | — | Centroid-spezifisch. Z. B. konfiguriert G10 P73 R0.02 den G73-Spanbruch-Rückzug vor dem Zyklusaufruf. Centroid: kein L-Wort |
| Modify a Setting from the program (Haas) | — | — | — | — | — | — | G167 |
Haas: G167 changes a machine Setting mid-program |
Spindel & Kühlmittel
| Arbeitsgang | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Haas | Hinweise |
|---|---|---|---|---|---|---|---|---|
| Spindel ein, Rechtslauf | M3 |
M3 |
M3 |
M3 |
M3 |
M3 |
M3 |
Das S-Wort setzt die Drehzahl. |
| Spindel ein, Linkslauf | M4 |
M4 |
M4 |
M4 |
M4 |
M4 |
M4 |
GRBL-Lasermodus: dynamische Leistung. |
| Spindel Halt | M5 |
M5 |
M5 |
M5 |
M5 |
M5 |
M5 |
|
| Spindel orientieren (orientierter Halt) | — | — | M19 |
M19 |
M19 |
M19 |
M19 |
Centroid: benötigt ein eigenes M19-Makro. Mach3: abhängig vom VBScript des Maschinenherstellers. Mach3: herstellerabhängig |
| Sprühnebelkühlung ein | M7 |
M7 |
M7 |
M7 |
M7 |
M7 |
M7 |
Haas: Haas M07 = shower/wash-down coolant, not mist |
| Flutkühlung ein | M8 |
M8 |
M8 |
M8 |
M8 |
M8 |
M8 |
|
| Kühlmittel komplett aus | M9 |
M9 |
M9 |
M9 |
M9 |
M9 |
M9 |
Werkzeugwechsel
| Arbeitsgang | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Haas | Hinweise |
|---|---|---|---|---|---|---|---|---|
| Werkzeugwechsel | M6 |
— | M6 |
M6 |
M6 |
M6 |
M6 / M16 |
Wirkt zusammen mit einem vorangehenden Tn. GRBL pausiert und fordert zum Wechsel auf. Haas: M16 also commands a tool change |
| Aktuelle Werkzeugnummer setzen (ohne Wechsel) | M61 |
— | — | — | — | — | — | Meldet das eingespannte Werkzeug an, ohne einen Wechsel auszuführen. |
Vorschub- & Spindel-Override
| Arbeitsgang | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Haas | Hinweise |
|---|---|---|---|---|---|---|---|---|
| Vorschub- & Drehzahl-Override freigeben | M48 |
— | M108 |
M48 |
M48 |
M48 |
— | Centroid verwendet hierfür M108 statt M48. |
| Vorschub- & Drehzahl-Override sperren | M49 |
— | M109 |
M49 |
M49 |
M49 |
— | Oft innerhalb von Gewindebohrzyklen verwendet. Centroid verwendet M109. |
| Feingranulare Override-Steuerung (LinuxCNC) | M50 / M51 / M52 / M53 |
— | — | — | — | — | — | Vorschub (M50), Spindel (M51), adaptiver Vorschub (M52), Vorschub-Stopp (M53). |
Digitale & analoge Ein-/Ausgänge
| Arbeitsgang | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Haas | Hinweise |
|---|---|---|---|---|---|---|---|---|
| Digitalausgang setzen | M62 / M64 |
— | M94 |
— | M62 / M64 |
M62 / M64 |
— | Centroid verwendet M94 (z. B. setzt M94/1 den Ausgang 1). Mach3: üblicherweise über OEM-Skripte. Centroid: M94/n Mach3: teilweise |
| Digitalausgang löschen | M63 / M65 |
— | M95 |
— | M63 / M65 |
M63 / M65 |
— | Centroid verwendet M95 (z. B. löscht M95/1 den Ausgang 1). Centroid: M95/n Mach3: teilweise |
| Auf Eingang warten | M66 |
— | M100 / M101 |
— | M66 |
M66 |
— | Centroid verwendet M100/M101 (Warten auf PLC-Bit). Mach4: P<Eingang> L<Timeout in Sek.>. Mach3: teilweise |
| Analogausgang | M67 / M68 |
— | — | — | — | M67 / M68 |
— | M67 synchronisiert, M68 sofort. Mach4: teilweise |
| Warten auf PLC-Bit (Centroid) | — | — | M100 / M101 |
— | — | — | — | M100 wartet, bis ein PLC-Bit offen/aus ist; M101, bis es geschlossen/ein ist. DIESELBEN Nummern starten auf LinuxCNC/Mach Anwenderskripte — siehe falsche Freunde. Centroid: M100 offen, M101 geschlossen |
| Direktausgabe / IO-Makrofamilie (Mach4) | — | — | — | — | — | M200–M219 / M220–M224 / M228 |
— |
Modaler Zustand (LinuxCNC)
| Arbeitsgang | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Haas | Hinweise |
|---|---|---|---|---|---|---|---|---|
| Modalen Zustand speichern / wiederherstellen | M70 / M71 / M72 / M73 |
— | — | — | — | — | — | M70 speichern, M71 verwerfen, M72 wiederherstellen, M73 speichern mit automatischer Wiederherstellung. |
Drehzyklen (Drehmaschine)
Das Revier der Drehmaschine (T-Serie). Die Spalten oben beschreiben das FRÄS-Verhalten; mehrere Codes bedeuten auf einer Drehmaschine etwas anderes.
| Arbeitsgang | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Haas | Hinweise |
|---|---|---|---|---|---|---|---|---|
| Durchmesser-/Radiusprogrammierung (LinuxCNC-Drehmaschine) | G7 / G8 |
— | — | — | — | — | — | |
| Spindeldrehzahl-Begrenzung (CSS) | G50 |
— | G50 |
G50 |
G50 |
G50 |
— | FANUC-Drehmaschine: G50 S____ begrenzt die Drehzahl unter G96. Auf der Fräse bedeutet G50 Skalierung-aus — ein echter falscher Freund. LinuxCNC: teilweise Centroid: teilweise FANUC: G50 S____ Mach3: teilweise |
| Werkstücknullpunkt setzen (FANUC-Drehmaschine) | — | — | — | G50 |
— | — | — | G50 X_ Z_ setzt auf einer FANUC-Drehmaschine den Werkstücknullpunkt (die zweite G50-Verwendung). FANUC: G50 X_ Z_ |
| Konstante Schnittgeschwindigkeit (CSS) ein | G96 |
— | G96 |
G96 |
G96 |
G96 |
— | S in m/min (G21) bzw. sfm (G20). Centroid: teilweise Mach3: teilweise |
| Konstante Spindeldrehzahl (CSS abwählen) | G97 |
— | G97 |
G97 |
G97 |
G97 |
— | Centroid: teilweise Mach3: teilweise |
| Synchrones Gewindeschneiden (konstante Steigung) | G33 |
— | G33 |
G33 |
— | — | — | Centroid: optional |
| Schlichtzyklus (Drehen) | — | — | G70 |
G70 |
— | G70 |
— | Verwendet eine mit G71/G72 definierte Kontur. Centroid: nur T-Serie Mach4: teilweise |
| Abspanzyklus (Schruppen) | — | — | G71 / G72 |
G71 / G72 |
— | G71 / G72 |
— | G71 längs, G72 plan. FANUC: Typ-I- oder Typ-II-Syntax. Centroid: nur T-Serie Mach4: teilweise |
| Planeinstechen (FANUC-Drehmaschine G74) | — | — | G74 |
G74 |
— | — | — | Dasselbe G74, das auf der Fräse Gewindebohren linksgängig bedeutet. Centroid: T-Serie |
| Gewindezyklus (FANUC-Drehmaschine G76) | G76 |
— | G76 |
G76 |
— | — | — | Dasselbe G76, das auf der Fräse Feinausdrehen bedeutet. Typ I (Einzelsatz) oder Typ II (P/Q/R). LinuxCNC: Drehmaschine Centroid: T-Serie |
| Vorschub pro Minute (FANUC-Drehmaschine) | — | — | — | G98 |
— | — | — | Auf einer FANUC-DREHMASCHINE bedeutet G98 Vorschub/min — die Rolle, die G94 auf der Fräse spielt. FANUC: nur Drehmaschine |
| Vorschub pro Umdrehung (FANUC-Drehmaschine) | — | — | — | G99 |
— | — | — | Auf einer FANUC-DREHMASCHINE bedeutet G99 Vorschub/U — die Rolle, die G95 auf der Fräse spielt. FANUC: nur Drehmaschine |
Festzyklus-Rückzugsmodus (Fräsen)
| Arbeitsgang | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Haas | Hinweise |
|---|---|---|---|---|---|---|---|---|
| Rückzug auf Ausgangs-Z nach dem Zyklus | G98 |
— | G98 |
G98 |
G98 |
G98 |
G98 |
Die FANUC-DREHMASCHINE belegt G98 mit Vorschub pro Minute — siehe die Drehzyklen-Gruppe und falsche Freunde. |
| Rückzug auf die R-Ebene nach dem Zyklus | G99 |
— | G99 |
G99 |
G99 |
G99 |
G99 |
Die FANUC-DREHMASCHINE belegt G99 mit Vorschub pro Umdrehung. |
5-axis positioning & compensation (Haas)
UMC / 5-axis features. FANUC and others use different codes (or options) for the equivalents; these are the Haas spellings.
| Arbeitsgang | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Haas | Hinweise |
|---|---|---|---|---|---|---|---|---|
| Tool center point control (TCPC) | — | — | — | — | — | — | G234 |
Keeps the tool tip on the path while the rotary axes move. |
| 5-axis tool length compensation + | — | — | — | — | — | — | G143 |
|
| Dynamic Work Offset (DWO) | — | — | — | — | — | — | G254 / G255 |
Compensates the work offset for the current rotary-axis position. Haas: G254 enable, G255 cancel |
| Feature coordinate system | — | — | — | — | — | — | G268 / G269 / G253 |
Define / orient a coordinate system to a tilted feature. Haas: G268 enable, G269 disable, G253 orient spindle normal to feature |
| Visible-axes rapid rate (%) | — | — | — | — | — | — | G266 |
Haas: linear rapid % for the visible axes |
Machine automation & accessories (Haas)
Haas machine-function M-codes: coolant, doors, conveyors, pallets, probes, relays. Several numbers collide with other controls' meanings — see false friends.
| Arbeitsgang | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Haas | Hinweise |
|---|---|---|---|---|---|---|---|---|
| Chip conveyor | — | — | — | — | — | — | M31 / M33 |
Haas: M31 forward, M33 stop |
| Programmable coolant spigot (P-Cool) | — | — | — | — | — | — | M34 / M35 |
Haas: M34 increment position, M35 decrement |
| Through-spindle coolant (TSC) | — | — | — | — | — | — | M88 / M89 |
Haas: M88 on, M89 off |
| Auto air gun / tool air blast | — | — | — | — | — | — | M83 / M84 / M73 / M74 |
Haas: M83/M84 auto air gun on/off; M73/M74 tool air blast (TAB) on/off |
| Automatic door | — | — | — | — | — | — | M80 / M81 |
Haas: M80 open, M81 close |
| Automatic window | — | — | — | — | — | — | M180 / M181 |
Haas: M180 open, M181 close |
| Axis brakes (4th / 5th) | — | — | — | — | — | — | M10 / M11 / M12 / M13 |
Haas: M10/M11 4th-axis brake engage/release; M12/M13 5th-axis |
| Spindle gear range | — | — | — | — | — | — | M41 / M42 |
Haas: M41 low gear, M42 high gear |
| Spindle tool clamp / unclamp | — | — | — | — | — | — | M82 / M86 |
Haas: M82 unclamp, M86 clamp |
| Workholding / fixture clamp | — | — | — | — | — | — | M70 / M71 / M90 / M91 |
M70 shares its number with LinuxCNC's modal-state save — see false friends. Haas: M70/M71 workholding clamp/unclamp; M90/M91 fixture clamp input on/off |
| Rotate tool turret | — | — | — | — | — | — | M39 |
|
| Spindle speed variation (SSV) | — | — | — | — | — | — | M138 / M139 |
Haas: M138 on, M139 off |
| Mist condenser | — | — | — | — | — | — | M158 / M159 |
Haas: M158 on, M159 off |
| Vise / chip air blast | — | — | — | — | — | — | M116 / M117 |
Centroid uses M116 to probe — see false friends. Haas: M116 on, M117 off |
| Sleep mode | — | — | — | — | — | — | M95 |
|
| Display media on screen | — | — | — | — | — | — | M130 / M131 |
Haas: M130 display image / video, M131 cancel |
| Interactive operator input | — | — | — | — | — | — | M109 |
Centroid uses M109 to disable overrides — see false friends. Haas: single-keystroke operator input |
| PulseJet MQL lubrication | — | — | — | — | — | — | M160 / M161 / M162 / M163 |
Haas: M160 cancel, M161 continuous, M162 single event, M163 modal |
| Pallet changer | — | — | — | — | — | — | M36 / M48 / M50 / M199 |
Haas: M36 part ready; M48 validate program for loaded pallet; M50 change sequence; M199 pallet/part load or program end |
| User M-code outputs & relays | — | — | — | — | — | — | M21–M25 / M29 / M51–M55 / M59 / M61–M65 / M69 |
M51–M55 / M61–M65 and M59 / M69 collide with LinuxCNC and other controls' M-code meanings — see false friends. Haas: M21–M25 optional user M w/ M-Fin; M29 set relay w/ M-Fin; M51–M55 set user outputs, M61–M65 clear; M59 set relay, M69 clear |
| APL / robot custom sequence | — | — | — | — | — | — | M300 |
#Falsche Freunde — gleiche Nummer, andere Bedeutung
Die Arbeitsgang-Tabellen oben decken bereits den Fall „anderer Code, gleiche Aufgabe" ab — jede Zeile listet die Schreibweise jeder Steuerung, das kann Ihnen also nicht entgehen. In diesem Abschnitt geht es um den umgekehrten und gefährlicheren Fall: Die gleiche Nummer tut auf verschiedenen Steuerungen oder in verschiedenen Modi fundamental Unterschiedliches. Ein Programm, das auf der einen sauber läuft, erzeugt auf der anderen falsche Ergebnisse — oder einen Crash.
Wenn Sie G-Code zwischen Plattformen portieren, ist das der Abschnitt, den Sie zweimal lesen sollten.
#M100 / M101 — Warten auf PLC-Bit vs. Anwenderskript-Slot
Ein an FANUC geschulter Bediener und ein an Centroid geschulter Bediener schreiben
M100 aus zwei völlig inkompatiblen Gründen.
| Steuerung | M100 | M101 |
|---|---|---|
| Centroid CNC12 | Hält das Programm an, bis das referenzierte PLC-Bit / der Eingang offen (aus / 0) ist. Gegenstück zu M101. Eigene Meldung über cncxmsg.txt |
Hält an, bis das PLC-Bit geschlossen (ein / 1) ist |
| LinuxCNC | Führt eine externe Anwenderskript-Datei namens M100 aus dem Konfigurationsverzeichnis aus (der gesamte Bereich M100–M199 ist auf diese Weise reserviert) |
Führt das Anwenderskript M101 aus |
| FANUC | Im Standard nicht belegt. Üblicherweise vom Maschinenhersteller per PMC-Ladder definiert | Ebenso |
| Mach 3 | Freier Slot — führt das VBScript-Makro M100.M1S aus, falls vorhanden, sonst undefiniert |
Ebenso für M101.M1S |
| Mach 4 | Freier Slot — führt das Lua-Makro M100.mcs aus, falls vorhanden, sonst undefiniert |
Ebenso für M101.mcs |
| GRBL | Nicht unterstützt | Nicht unterstützt |
Auswirkung beim Portieren: Ein Centroid-Programm, das mit M100 /5000 auf ein
Vakuum-bereit-Signal der PLC wartet, versucht auf LinuxCNC, ein externes Skript
mit dem wörtlichen Namen M100 auszuführen — ein völlig anderes Laufzeitverhalten.
Auf einer Standard-Mach3-Installation ohne geschriebenes M100.M1S tut dieselbe
Zeile stillschweigend gar nichts. Explizite PLC-Wartebefehle beim Wechsel zwischen
Steuerungen immer neu schreiben.
#G98 / G99 — Festzyklus-Rückzug (Fräsen) vs. Vorschubart (FANUC-Drehmaschine)
Die größte Fräse-gegen-Drehmaschine-Falle bei FANUC überhaupt.
| Steuerung / Modus | G98 | G99 |
|---|---|---|
| FANUC Fräse | Festzyklus-Rückzug auf die Ausgangs-Z-Höhe | Festzyklus-Rückzug auf die R-Ebene |
| FANUC Drehmaschine (T-Serie) | Vorschub pro Minute (die Rolle, die G94 auf der Fräse spielt) | Vorschub pro Umdrehung (die Rolle, die G95 auf der Fräse spielt) |
| LinuxCNC (Fräse oder Drehmaschine) | Festzyklus-Rückzug auf Ausgangs-Z | Festzyklus-Rückzug auf die R-Ebene |
| Centroid CNC12 (Fräse) | Festzyklus-Rückzug auf Ausgangs-Z | Festzyklus-Rückzug auf die R-Ebene |
| Mach 3 / Mach 4 | Festzyklus-Rückzug auf Ausgangs-Z | Festzyklus-Rückzug auf die R-Ebene |
Auswirkung beim Portieren: Ein FANUC-T-Serien-Drehprogramm, das G98 setzt
und Vorschub pro Minute erwartet, wird auf jeder anderen hier gelisteten Plattform
als Umschaltung des Festzyklus-Rückzugsmodus interpretiert. Die Deutung als
Vorschubart gibt es ausschließlich auf der FANUC-T-Serie.
#G50 — drei völlig unterschiedliche Bedeutungen je nach Plattform/Modus
| Steuerung / Modus | G50 |
|---|---|
| FANUC Fräse | Skalierung AUS (hebt G51 auf) |
| FANUC Drehmaschine | Zwei getrennte Verwendungen auf derselben Steuerung: G50 X_ Z_ setzt den Werkstücknullpunkt; G50 S_____ begrenzt die maximale Spindeldrehzahl im G96-CSS-Modus |
| Mach 3 / Mach 4 | Skalierung AUS (Fräse) |
| LinuxCNC | Nicht implementiert (LinuxCNC unterstützt keine Skalierung nach FANUC-Art über G50/G51) |
| Centroid CNC12 Fräse | Teilweise Unterstützung für Skalierung-aus; variiert je nach CNC12-Version |
| Centroid CNC12 Drehmaschine (T-Serie) | Folgt der FANUC-Drehmaschinen-Konvention |
| GRBL | Nicht unterstützt |
Auswirkung beim Portieren: Ein FANUC-Drehprogramm, das mit G50 S3000 eine
CSS-geführte Spindel begrenzt, läuft auf Fräs-Steuerungen ins Leere oder erzeugt
einen Fehler, weil das G50 der Fräse kein S-Wort annimmt.
#G74 — Linksgewindebohren (Fräsen) vs. Planeinstechen (FANUC-Drehmaschine)
| Steuerung / Modus | G74 |
|---|---|
| FANUC Fräse | Festzyklus für linksgängiges Gewindebohren |
| FANUC Drehmaschine | Planeinstech- / Plan-Tiefbohrzyklus |
| LinuxCNC | Gewindebohren links (Fräse) |
| Centroid CNC12 Fräse | Gewindebohren links |
| Centroid CNC12 Drehmaschine (T-Serie) | Planeinstechen |
| Mach 3 / Mach 4 | Gewindebohren links (Fräse) |
| GRBL | Nicht unterstützt |
Auswirkung beim Portieren: Gleicher Code, gleicher Steuerungshersteller (FANUC), völlig anderer Bearbeitungsvorgang — je nachdem, ob die Steuerung eine Fräse oder eine Drehmaschine steuert. Postprozessoren für Drehmaschinen gehen immer von der FANUC-Drehmaschinen-Bedeutung aus.
#G76 — Feinausdrehen (Fräsen) vs. Gewindeschneiden (FANUC-Drehmaschine)
| Steuerung / Modus | G76 |
|---|---|
| FANUC Fräse | Feinausdreh-Zyklus (orientierter Spindelhalt am Grund, Abheben um den Shift-Betrag, damit die Wand nicht verkratzt) |
| FANUC Drehmaschine | Mehrschnitt-Gewindezyklus — Typ I (ältere Einzelsatz-Syntax) oder Typ II (moderne Mehrsatz-Syntax mit P_ Q_ R_). Der Satzaufbau unterscheidet sich komplett von der Fräsversion |
| LinuxCNC Fräse | Nicht unterstützt |
| LinuxCNC Drehmaschine | Gewindezyklus |
| Centroid CNC12 Fräse | Teilweise — gegen die konkrete Steuerungsversion prüfen |
| Centroid CNC12 Drehmaschine (T-Serie) | Gewindezyklus |
| Mach 3 / Mach 4 Fräse | Feinausdrehen |
| GRBL | Nicht unterstützt |
Auswirkung beim Portieren: Ein G76-Gewindesatz für die Drehmaschine hat eine völlig andere Argumentliste als ein G76-Ausdrehsatz für die Fräse. Sie sind nicht austauschbar.
#G5 / G5.1 / G5.4 — unterschiedliche Highspeed-Look-Ahead-Implementierungen
| Steuerung | G5-Familie |
|---|---|
| FANUC | G05.1 Q1 = AI Contour Control ein; G05.1 Q0 = aus. Einige 30i-B-Varianten verwenden G05.4. Ältere Steuerungen nutzen G05 (ohne Dezimalstelle) oder G08 P1 für dieselbe Look-Ahead-/Beschleunigungsglättung |
| LinuxCNC | G5 (ohne Dezimalstelle) = kubische Spline-Interpolation — ein völlig anderer Arbeitsgang, kein HSM-Look-Ahead-Schalter |
| Centroid / Mach 3 / Mach 4 / GRBL | Nicht unterstützt |
Auswirkung beim Portieren: Gleiche Nummer, völlig andere Mathematik. Ein
LinuxCNC-G5-Satz definiert eine Spline-Kurve durch Kontrollpunkte; ein
FANUC-G05 schaltet einen Look-Ahead-Beschleunigungsmodus. Das Ergebnis hat
nichts miteinander zu tun.
#Kurzübersicht: die wichtigsten Unterschiede
GRBL verzichtet bewusst auf Festzyklen, Werkzeugradiuskorrektur, Polarkoordinaten, Skalierung, Drehung, Makros und Unterprogramme. CAM-Postprozessoren für GRBL lösen Zyklen in einzelne G01-Bewegungen auf und lassen G41/G42 komplett weg.
FANUC ist die Linie, von der alle anderen abstammen — aber gerade im High-End-Bereich weicht am meisten voneinander ab. Die größte steuerungsübergreifende Falle: G98/G99 sind auf der Fräse Festzyklus-Rückzugsmodi, auf der Drehmaschine aber Vorschubarten. Auch G50 und G70–G76 sind auf der Drehmaschine anders belegt. Highspeed-Bearbeitungsoptionen (G05.1, G05.4, G08, G64-Tuning) variieren je nach Steuerungsgeneration und Maschinenhersteller.
LinuxCNC kommt einer sauberen Obermenge des Standards RS-274/NGC am nächsten. Es ergänzt vollwertige Antastvarianten (G38.2–G38.5), M-Codes für digitale/analoge HAL-Ein-/Ausgänge (M62–M68), benutzerdefinierte M100–M199-Skripte und verwendet O-Codes für Unterprogramme statt M98/M99 nach FANUC-Art.
Centroid (CNC12) ist bei den kanonischen Bohr-, Ausdreh- und Makro-Codes
weitgehend FANUC-kompatibel. Die Makroprogrammierung verwendet #-Variablen mit
IF/THEN/ELSE und Satznummer-GOTO-Verzweigungen — WHILE/DO-Schleifen gibt
es nicht. Angetastet wird über M-Codes (M105/M106,
M115/M116/M125/M126), nicht über G31/G38. Erweiterte Nullpunktverschiebungen
laufen über G54 Pn (ohne Dezimalstelle), nicht über G59.1+ oder G54.1.
Die G70–G76-Drehzyklen gelten nur auf der T-Serie. Der kanonische Festzyklussatz
für die Fräse ist G81–G85 + G89; das Rückwärts-Ausdrehen G86/G87/G88 und die
modalen Makros G66/G67 stehen nicht im CNC12-Handbuch.
Mach 3 ist die funktionsärmste kommerzielle Steuerung in dieser Liste — keine
G65-Makros (eigene M-Codes sind stattdessen VBScript-.M1S-Dateien), keine
Polarkoordinaten, keine erweiterten Nullpunkte jenseits von G59.3, kein
G31-Mehrfachantasten. M62–M66 brauchen in der Regel OEM-Skripte, statt nativ zu
funktionieren. Unterprogramme über M98/M99 funktionieren.
Mach 4 ist eine deutliche Obermenge von Mach 3: ergänzt G65-Makros (mit
zwingender Makrodatei-Endung .nc), erweiterte Nullpunkte G54.1 P1–P248,
Mehrfachantasten G31.0–G31.3, Vollkreis G12/G13, Polarkoordinaten, starres
Gewindebohren G84.2/G84.3, Eckenverhalten der Radiuskorrektur G40.1/G40.2, native
M62–M68-Ein-/Ausgänge und eine M200–M228-Familie. Lua ersetzt VBScript für eigene
M-Codes — Mach3-Makros lassen sich nicht direkt übernehmen.
#Wie diese App mit nicht unterstützten Codes umgeht
Der Parser von G54.APP ist tolerant — unbekannte G- oder M-Codes bleiben
unverändert im Quelltext stehen und wirken sich schlicht nicht auf die
Visualisierung aus. Eine für FANUC geschriebene Datei mit G68-Drehung oder
M98-Unterprogrammaufrufen rendert also die Linear- und Bogenbewegungen, die die
App versteht, und überspringt den Rest stillschweigend. Prüfen Sie die Simulation
vor dem Zerspanen immer gegen das erwartete Verhalten der Zielsteuerung.
#Quellen
Dies sind die öffentlichen Referenzen, die beim Erstellen dieser Übersicht zu Rate gezogen wurden. Herstellerhandbücher (FANUC, Centroid) werden mit der Steuerung ausgeliefert und sind unter Umständen nicht öffentlich archiviert; wo ein Hersteller-PDF verwendet wurde, ist die URL angegeben, unter der es zum Zeitpunkt der Erstellung erreichbar war.
LinuxCNC (frei, online):
- G-code quick reference — https://linuxcnc.org/docs/html/gcode/g-code.html
- M-code quick reference — https://linuxcnc.org/docs/html/gcode/m-code.html
- Main user manual — https://linuxcnc.org/docs/
GRBL 1.1 (Open Source):
- Supported commands wiki — https://github.com/gnea/grbl/wiki/Grbl-v1.1-Commands
commands.mdsource-of-truth — https://github.com/gnea/grbl/blob/master/doc/markdown/commands.md
Centroid CNC12 (Hersteller-PDFs):
- Macro Programming guide — https://www.centroidcnc.com/centroid_diy/downloads/acorn_documentation/centroid_cnc_macro_programming.pdf
- M-Series (Oak / Allin1DC) Operator's Manual v4.14 — https://www.centroidcnc.com/centroid_diy/downloads/CNC12-v414_operator_manuals/centroid-cnc12-oak-allin1dc-mill-operator-manual-v4.14.pdf
- v3.16 Mill Operator Manual — https://www.centroidcnc.com/downloads/centroid_v3.16_mill_operator_manual.pdf
- G and M codes extract — https://www.centroidcnc.com/centroid_diy/downloads/centroid_G_and_M_codes.pdf
- PLC + CNC Functions Programming Manual (CNC12 v5.x+) — https://www.centroidcnc.com/centroid_diy/downloads/centroid_plc_programming_manual.pdf
- Helman-CNC-Spiegel der Centroid-Fräs-M-Code-Liste — https://www.helmancnc.com/centroid-m-code-cnc-mill/
- Centroid-Forumsbeitrag zur G10-P/R-Parameterform — https://centroidcncforum.com/viewtopic.php?t=3429
FANUC (Drittanbieter-Zusammenstellungen der Herstellerhandbücher; Hersteller-PDFs sind in der Regel nicht frei verfügbar):
- FanucWorld "Ultimate M-Code & G-Code List for Fanuc Controls" — https://content.fanucworld.com/m-code-g-code-list/
- REACO CNC FANUC Machining Center G/M codes — https://reacocnc.com/blogs/fanuc-g-code-m-code-list/g-code-m-code-machining-center
- REACO CNC FANUC CNC Lathe G/M codes — https://reacocnc.com/blogs/fanuc-g-code-m-code-list/g-code-m-code-lathe
- Helman CNC "Fanuc 31i G Codes Machining Center" — https://www.helmancnc.com/fanuc-31i-g-codes-machining-center-fanuc-30i-31i-32i/
- Gegengeprüft mit: FANUC Series 0i-MD Operator's Manual, FANUC Series 30i/31i/32i-MODEL B Operator's Manual, FANUC Macro Compiler / Macro Executor Programming Manual (nur Titel — diese sind nicht offen verfügbar)
Mach 3 (ArtSoft / MachMotion):
- MachMotion "G and M-code Reference Using Mach3Mill Rev 1.84-A2" — https://machmotion.com/documentation/Software/Mach3/Mach3%20GCode%20Language%20Reference.pdf
- Mach3 G-Code Manual (MachMotion) — https://machmotion.com/documentation/Software/Mach3/Mach3%20G-Code%20Manual.pdf
- Mach3 V3.x Macro Programmer's Reference (ArtSoft) — https://www.machsupport.com/wp-content/uploads/2013/02/Mach3_V3.x_Macro_Prog_Ref.pdf
- Helman CNC "Mach3 Mill G Code List" — https://www.helmancnc.com/mach3-mill-g-code-list/
- CNCCookbook zu Mach3 + G65 — https://www.cnccookbook.com/m98-m99-g-code-cnc-subprograms/
Mach 4 (ArtSoft / MachMotion):
- Mach4 Mill GCode Manual v1.0 (ArtSoft) — https://www.machsupport.com/wp-content/uploads/2014/05/Mach4%20Mill%20GCode%20Manual.pdf
- MachMotion Mach4 G & M Code Reference Manual — https://machmotion.com/documentation/Software/Mach4/Mach4-G-and-M-Code-Reference-Manual.pdf
- MachMotion BookStack Mach4 G/M Code Reference — https://support.machmotion.com/books/software/page/mach4-g-code-and-m-code-reference
- Mach4 Lathe Programming Guide — https://www.machsupport.com/wp-content/uploads/2014/05/Mach4%20Lathe%20GCode%20Manual.pdf
- Warp9 Mach3 vs Mach4 FAQ — https://www.warp9td.com/index.php/faq/faq-g-code-m-code
#Bekannte nicht verifizierbare / unsichere Einträge
- FANUC G05.4 Nano-Smoothing — auf einigen 30i-B-Varianten vorhanden, aber nicht durchgängig in der gesamten 30i-Familie.