G66 Custom Macro Modal Call auf CNC-Maschinen sicher anwenden
Lernen Sie den modalen G66-Makroaufruf programmieren. Vergleichen Sie Parameter von Fanuc, Siemens und Mitsubishi zur Vermeidung schwerer Kollisionen.
Einleitung
Ein unvollständig geprüftes G66-Makroprogramm oder ein fehlerhaft konfigurierter Nullpunkt-Offset führt dazu, dass die CNC-Steuerung die Werkzeugbahn fehlerhaft interpoliert und das Werkzeug direkt in physische Hindernisse steuert. Wenn sich das Werkzeug auf der Z- oder X-Achse unkontrolliert bewegt, überfährt der Revolver die softwaredefinierten Sicherheitsgrenzen (G22/G23) und die Schneide kracht mit voller Wucht in eine Schraubstockbacke der Vorrichtung, ein rotierendes Spindelfutter oder in Tischspannpratzen. Eine solche Kollision zerstört nicht nur die Schneidplatte, sondern verbiegt die Kugelgewindetriebe der Achsen, überlastet den Spindelantrieb und beschädigt die Maschinengeometrie nachhaltig, während das Rohteil als unbrauchbarer Ausschuss endet. Eine lückenlose Verifizierung der Steuerungsparameter und Offsets ist daher für die Prozesssicherheit unverzichtbar.
Korrekte Konfiguration eliminiert die häufigste Ursache für Maßabweichungen bei diesem Befehl. Wird dieser Parameter nicht verifiziert, liegt das Ergebnis außerhalb der Toleranz — und der Fehler zeigt sich erst bei der Endmessung. Um Maßabweichungen und eine Toleranzüberschreitung während der Bearbeitung auszuschließen, müssen CNC-Programmierer und Einrichter die steuerungsspezifischen Parameter genau prüfen und die Nullpunkte präzise einmessen.
Technische Zusammenfassung
| Technisches Merkmal | Spezifikationen |
|---|---|
| Befehlscodes | G66 (Macro Modal Call A), G66.1 (Macro Modal Call B), G67 (Cancel) |
| Modal-Gruppen | Gruppe 12 auf Fanuc, Gruppe 14 auf Mitsubishi, Modal auf Siemens |
| Unterstützte Marken | Fanuc, Siemens, Mitsubishi |
| Kritische Parameter | Parameter No. 3402 Bit 6 (Fanuc CLR), $MC_EXTERN_FUNCTION_MASK Bit 6 (Siemens digit padding), Parameter #1241 set13/bit5 (Mitsubishi L/P valid) |
| Hauptbeschränkung | Die maximale Verschachtelungstiefe beträgt 4 Ebenen. Eine hohe Dichte an Nicht-Bewegungsblöcken im Unterprogramm kann den Look-ahead-Puffer (Parameter No. 19625) erschöpfen und Fehler in der Werkzeugbahn auslösen. |
Schnellzugriff
- Entscheiden Sie zwischen G66 und G66.1 basierend darauf, ob das Custom-Macro-Unterprogramm nur bei Bewegungsblöcken (G66) oder bedingungslos bei jedem Block (G66.1) ausgelöst werden soll.
- Programmieren Sie einen eigenständigen G67-Block unmittelbar nach Abschluss des Koordinatenzyklus, um zu verhindern, dass nachfolgende Standard-Verfahrblöcke das Makro auslösen.
- Begrenzen Sie die Tiefe verschachtelter Makroaufrufe (G65 und G66/G66.1 kombiniert) auf maximal 4 Ebenen, um Stapelüberläufe im System zu vermeiden.
- Stellen Sie sicher, dass MD 18800 auf 1 gesetzt und die aktive externe Sprachkompilierung (G291) aktiviert ist, bevor Sie G66 auf Siemens SINUMERIK-Steuerungen ausführen.
- Aktivieren Sie den Mitsubishi-Parameter #1241 (set13/bit5), um die Übergabe von Unterprogramm-Wiederholungen (L) und der aufrufenden Programmnummer (P) als Transferargumente zuzulassen.
- Vermeiden Sie Preprozessorstopps im Siemens G64-Continuous-path-mode, indem Sie Anzeigeanweisungen (MSG) und Statusvariablen-Abfragen ($A...) innerhalb des modalen Makro-Unterprogramms unterlassen.
Grundlegende Konzepte
Die praktische Programmierung des modalen Makroaufrufs (G66/G66.1) auf Fanuc-Steuerungen bietet Anwendungsingenieuren die mathematische Flexibilität, sich wiederholende Bearbeitungsgeometrien mit dynamischen Logikvariablen abzustimmen. Diese modale Struktur ist äußerst effektiv für Lochraster-Bohrzyklen, Taschenfräsmuster oder kundenspezifische Schruppzyklen, da sie das angegebene Makroprogramm bei jedem Koordinaten-Endpunkt auf nachfolgenden Bewegungsblöcken automatisch auslöst und so die Programmlänge drastisch verkürzt. Einrichter und Programmierer müssen sich bewusst sein, dass G66-Modalaufrufe zwar schnell ausgeführt werden, die Stopppunkte im Einzelsatzbetrieb jedoch an den Endpunkten intern erzeugter Blöcke liegen, was mehrere Starts zur Ausführung einer einzelnen Koordinatensequenz erfordert.
Um unerwartete Bewegungen der Maschine zu verhindern, können die Funktionen feed hold, feedrate override und single block programmgesteuert durch Ändern der Systemvariable #3004 deaktiviert werden, sodass der Bediener nach dem Start des Zyklus keine manuelle Kontrolle mehr hat. Einrichter müssen die Werkstückkoordinaten-Einstellungen, Werkzeugkorrekturen und gespeicherten Hubgrenzen vor dem automatischen Zyklusstart ordnungsgemäß kalibrieren. Vor dem Auslösen automatischer Zyklen muss der Einrichter das Rohteil physisch in einer Schraubstockbacke (vise jaw), einem Spindelfutter (spindle chuck) oder einer Tischspannpratze (table-mounted clamp) positionieren und sichern.
Wenn ein Koordinatensystem falsch eingestellt ist oder eine unkompensierte Werkzeugbahn während G66-Makroschleifen ausgeführt wird (z. B. aufgrund von Berechnungen der Schneidenradiuskompensation oder Look-ahead-Fehlern), verfährt der Revolver (turret) entlang einer gefährlich verschobenen Bahn. Wenn Software-Verfahrgrenzen überschritten oder Barrieren umgangen werden, kann die Achse das Werkzeug auf dem Revolver direkt in Tischspannpratzen, eine Schraubstockbacke oder die rotierenden Backen eines Spindelfutters steuern. Dieser plötzliche Positionierungsfehler führt zu einer katastrophalen Kollision (crash), zerstört das Schneidwerkzeug, beschädigt die Kugelgewindetriebe der Achsen, löst einen Alarmcode (wie Alarm PS0325 oder Alarm PS0368) aus und verwandelt das Rohteil in unbrauchbaren Ausschuss. Bediener müssen einen Trockenlauf (dry run) für makrobasierte Programme im Einzelsatzmodus durchführen und die gespeicherten Hubgrenzen (G22/G23) und PMC-Auswahlsignale nutzen, um einen sicheren elektronischen Schutzraum um empfindliche Spannmittel aufzubauen.
Befehlsstruktur
Die Syntaxstruktur eines modalen Makroaufrufs weist spezifische Adressbuchstaben zu, um Argumente an lokale Variablen innerhalb des Unterprogramms zu übergeben. Wenn G66 aktiv ist, verarbeitet die Steuerung die Koordinatenpositionen im Hauptprogramm und ruft das Makroprogramm automatisch unmittelbar nach Abschluss der Bewegung auf. Dies ermöglicht es dem Unterprogramm, lokale Variablen zu lesen, neue Werkzeugbahnen oder Koordinatenverschiebungen on-the-fly zu berechnen und Aufgaben wie Bohrungsvorbereitungen oder lokalisiertes Fräsen auszuführen.
Der Abwahlbefehl G67 muss in einem separaten Block geschrieben werden. Wenn dieser Abwahlbefehl weggelassen wird, bleibt die Steuerung im modalen Aufrufmodus, was bedeutet, dass jede zukünftige Achsbewegung das Unterprogramm auslöst. Ein separater Parameter bestimmt, ob das System diesen modalen Zustand beim Einschalten der CNC-Maschine oder bei einem Reset auf den gelöschten Zustand zurücksetzt.
G66 P__ L__ [arguments] ;
; Für den nativen Siemens SINUMERIK-Modus enthält die Syntax zusätzliche Untercodes und Parameter: G66 Pxxxx Lyyyy <arguments> ;
| Marke | Parameter-Referenz | Funktionsbeschreibung | Wert- / Zustandsbereich |
|---|---|---|---|
| Fanuc | Parameter No. 3402 Bit 6 (CLR) | Konfiguriert die Standardeinstellung für den gelöschten Zustand der G-Code-Gruppe 12 beim Einschalten oder System-Reset. | 0 (nicht gelöscht) oder 1 (gelöscht bei Reset) |
| Fanuc | Parameter No. 19625 | Maximale Look-ahead-Blöcke im Werkzeugradius-Kompensationsmodus (Offset-Modus), um eine Puffererschöpfung zu verhindern. | Ganzzahliger Wert ($N$ Blöcke) |
| Fanuc | Parameter No. 5040 Bit 3 (TCT) | Konfigurationsregister für den Werkzeugwechseltyp (Tool Change Type). | 0 (Revolver) oder 1 (ATC) |
| Fanuc | Parameter No. 5000 Bit 3 (GNI) | Vektorberechnungen in G40-Werkzeugradiuskorrektur-Abwahlblöcken. | 0 (normale Vektoren) oder 1 (Emulation älterer Geometrieberechnungen) |
| Siemens | $MC_EXTERN_FUNCTION_MASK Bit 6 | Steuert die Auffüllung mit Ziffern und die Prüfgrenzen für Programmnummern. | 0 (auf 4 Ziffern aufgefüllt) oder 1 (nicht aufgefüllt, bis zu 8 Ziffern) |
| Siemens | MD 18800 $MN_MM_EXTERN_LANGUAGE | Maschinendatenparameter zur Aktivierung der externen ISO-Dialekt-Kompilierung. | 1 (aktiviert) oder 0 (deaktiviert) |
| Mitsubishi | Parameter #1241 set13/bit5 | Bestimmt die Gültigkeitskonfiguration der Makroargumente für die Adressen L und P. | 0 (deaktiviert) oder 1 (übergibt L und P an #12 und #16) |
| Mitsubishi | Parameter #1296 ext32/bit5 | Konfiguriert die Stapelverarbeitung für kontinuierliche Achsbewegungen. | 0 (deaktiviert) oder 1 (Stapelverarbeitung aktiv) |
| Mitsubishi | Parameter #8129 | Konfiguriert die Anzahl der Ziffern bei der Unterprogrammsuche zur Auswertung von P-Codes. | 4-stelliger oder 8-stelliger Programmsuchmodus |
Markenanwendungen
Fanuc
Fanuc-Steuerungen integrieren den modalen Makroaufruf in die vorbereitende Gruppe 12. Programmierer können den Parameter No. 3402 Bit 6 modifizieren, um den standardmäßig gelöschten Zustand zu steuern, während der Parameter No. 19625 die maximale Kapazität des Look-ahead-Puffers definiert. Die grundlegende Befehlszeile verwendet G66 P_ L_ gefolgt von Buchstaben, die Variablenargumente darstellen, und wird durch die Ausführung von G67 aufgehoben.
| Kategorie | Systemelement | Beschreibung |
|---|---|---|
| Parameter | Parameter No. 3402 Bit 6 (CLR), Parameter No. 19625, Parameter No. 5040 Bit 3 (TCT), Parameter No. 5000 Bit 3 (GNI) | Konfiguriert die Standardeinstellung für den gelöschten Zustand der G-Code-Gruppe 12 beim Einschalten oder Reset, die maximalen Look-ahead-Blöcke im Offset-Modus, den Werkzeugwechseltyp und die G40-Vektorberechnung. |
| Alarme | Alarm PS0325, Alarm PS0368, Alarm PS0010, Alarm PS0538 | Ausgelöst durch Makroaufrufe innerhalb von Zyklen wie G71/G72, aktive Offsets während Parameteränderungen, unzulässige G-Codes und ausgelassene G40-Abwahlblöcke. |
| Versionen | Series 15 Format, Series 30i/31i/32i-B Plus | Das Series 15-Format (Parameter No. 0001 Bit 1 FCV = 1) erlaubt die Adresse L für Wiederholungen; die moderne Series 30i/31i/32i-B Plus verwendet Parameter No. 5000 Bit 3 GNI für die G40-Abwärtskompatibilität. |
Warnung: Das Ändern der Parameter für den Werkzeugwechseltyp (Tool Change Type) bei aktiven Offsets löst einen sofortigen NC-Not-Halt aus.
Siemens
Siemens-Steuerungen verwalten die Ausführung modaler Makros durch Umschalten vom nativen Modus in den ISO-Dialekt-Modus. Programmierer müssen sicherstellen, dass MD 18800 aktiviert ist, und können das Auffüllen von Programmnummern mit der Maskenvariable $MC_EXTERN_FUNCTION_MASK anpassen. Der Übergang in den ISO-Dialekt-Modus erfordert die Programmierung von G291 vor der Ausführung von G66 P_ L_ <arguments>, und die Rückkehr in den nativen Modus erfolgt über G290.
| Kategorie | Systemelement | Beschreibung |
|---|---|---|
| Parameter | MD 18800 $MN_MM_EXTERN_LANGUAGE, $MC_EXTERN_FUNCTION_MASK Bit 6, MD 20150 $MC_GCODE_RESET_VALUES | Maschinendatenparameter zur Aktivierung der externen ISO-Dialekt-Kompilierung, Ziffernauffüllung und Verifikationsgrenzen für Programmnummern sowie Standard-G-Code-Resetwerte. |
| Alarme | Alarm 61800, Alarm 12470, Alarm 14016, Alarm 12722 | Ausgelöst durch fehlende externe NC-Sprache, gleichzeitige Unterprogrammaufrufe, Konflikte bei gleichzeitigen Ersetzungszyklen und mehrere Aufrufe pro NC-Satz. |
| Versionen | SINUMERIK 840D sl vs. 802D sl | Die 840D sl unterstützt voll einstellbare SLASH_MASK- und MD 10604-Maschinendaten, Breitbild-Multi-Touch-HMI-Formate sowie Optionen zur aktiven Kollisionsvermeidung, während die 802D sl über gesperrte Konfigurationen verfügt. |
Warnung: Der Versuch, mehrere M-Funktionsersetzungen und modale Unterprogrammaufrufe in derselben NC-Zeile aufzurufen, löst einen Vorprozessor-Compiler-Konflikt aus.
Mitsubishi
Mitsubishi-Steuerungen führen modale Aufrufe innerhalb der G-Code-Gruppe 14 aus. Programmierer passen den Parameter #1241 set13/bit5 an, um das L/P-Variablen-Parsing zu steuern, und überprüfen den Parameter #1296 ext32/bit5 zur Anpassung der Ausführungsmodi. Befehle werden als G66 P_ L_ für die achsbewegungsgesteuerte Ausführung (Modal A) oder als G66.1 für die bedingungslose Ausführung bei jedem Block (Modal B) interpretiert und durch G67 beendet.
| Kategorie | Systemelement | Beschreibung |
|---|---|---|
| Parameter | Parameter #1241 set13/bit5, Parameter #1296 ext32/bit5, Parameter #8129, Parameter #11053 UserProgramStorage | Steuert das Zuordnen der Gültigkeit von Makroargumenten für L/P, die Stapelverarbeitung für die Makroausführung, die Anzahl der Ziffern bei der Programmnummernsuche und die Suchreihenfolge für Speichergeräte. |
| Alarme | Program Error (P232), Program Error (P33), Program Error (P652), Program Error (P39) | Ausgelöst durch fehlende Makroprogramme im Speicher, inaktive Abwahlbefehle, aktive Teilsystemsteuerungen und Spline-Interpolationskonflikte unter activem G66/G66.1. |
| Versionen | M80V Type B Series, Legacy M2/M0 Format | Die M80V Type B-Serie sperrt Spline-Interpolationen, TCP-Steuerung (G43.4) und Schrägflächenbearbeitung unter aktiven modalen G66-Aufrufen; das ältere M2/M0-Format verwendet G22/G23/G68 und vertauscht die Adressen L und P. |
Warnung: Das Aktivieren hochpräziser Spline-Interpolationen oder Koordinatensysteme unter modalen G66-Aufrufen auf M80V Type B-Steuerungen löst Software-Sperren aus und führt zu Not-Halten.
Markenvergleich
| Vergleichskategorie | Fanuc | Siemens | Mitsubishi |
|---|---|---|---|
| Modale G-Code-Gruppe | Gruppe 12 | Modal ISO | Gruppe 14 |
| Compiler-Umschaltung | Keine (nativ) | Erforderlich (G291 für ISO, G290 für Siemens) | Keine (nativ, wechselt Formate mit G188/G189) |
| Parameterverriegelte Validierung | Keine (natives Adress-Parsing) | — (keine Quelle) | Ja (Parameter #1241 set13/bit5 für L- und P-Gültigkeit) |
| Handrad-Rollback-Tracking (G127) | Nein | Nein | Ja (behält Modale und Offsets über den Speicherblock bei) |
| Anweisungs-Interpretationsschalter | Nein | Nein | Ja (Parameter #1296 ext32/bit5 schaltet die Anweisungsinterpretation um) |
Technische Analyse
Die Analyse der Custom-Macro-Architekturen der drei Hersteller offenbart grundlegende Unterschiede in den Strukturen der Parametervariablen. Fanuc- und Mitsubishi-Steuerungen ordnen die G66-Argumentbuchstaben direkt flachen lokalen Variablen mit den Nummern #1 bis #33 zu und behalten so eine hohe Kompatibilität bei. Im Gegensatz dazu verwerfen Siemens-Steuerungen im nativen Modus flache lokale Register-Hashes vollständig. Stattdessen nutzen sie strukturierte REAL- oder INT-Systemvariablen mit einem $C_-Präfix (wie $C_A bis $C_Z oder Arrays wie $C_I[] für sich wiederholende Adressen), um Parameter auszuwerten und zu übertragen, was eine wesentlich objektorientiertere Programmierumgebung bietet.
Das Umschalten des Interpreters und der Formatwechsel stellen einen weiteren Unterschied dar. Siemens erfordert vom Programmierer den expliziten Wechsel des Compilers in den ISO-Dialekt-Modus über G291, um ältere G66-Blöcke im ISO-Stil zu kompilieren. Anschließend werden native parametrische Frames im Siemens-Modus über G290 ausgeführt, bevor für Bewegungen wieder über G291 in den ISO-Modus gewechselt wird. Mitsubishi verwendet einen bimodalen Programmformat-Umschalter (G188/G189), der Makromodale on-the-fly zwischen Dreh- und Frässystemen neu zuordnet. Fanuc analysiert G66-Argumente nativ innerhalb seines Standard-Compilers, sodass kein Interpreter-Wechsel erforderlich ist.
Schließlich unterscheiden sich Argumentverriegelungen und Koordinatenwiederherstellungssysteme erheblich. Mitsubishi integriert ein parameterverriegeltes Validierungs-Flag (Parameter #1241 set13/bit5), um die Adressen L und P als Argumente zu aktivieren oder zu deaktivieren – eine Funktion, die auf Standard-Fanuc-Steuerungen fehlt. Darüber hinaus integriert Mitsubishi die modalen G66-Koordinatenzustände mit der Funktion für manuelles beliebiges Rückwärtsfahren (G127). Wenn G127 aktiv ist, kann der Bediener das Handrad manuell rückwärts drehen, um das Werkzeug zurückzuziehen. Der Bewegungskernel von Mitsubishi verfolgt und behält die aktiven Makro-Koordinatensysteme, Werkzeugnasenradius-Kompensationen (nose radius compensation) und Offsets mithilfe seines speziellen modalen Informationsspeicherblocks erfolgreich bei, wodurch ein Achsdrift verhindert und die Koordinatensicherheit gewahrt bleibt. Fanuc- und Siemens-Steuerungen unterstützen keinen manuellen Handrad-Rollback, der Koordinatenzustände auf diese Weise wiederherstellen kann.
Programmbeispiele
Fanuc-Beispiel
G28 U0 W0 ; Referenzpunktfahrt
T0101 M06 ; Werkzeugaufruf
G66 P1000 L2 A15.0 B30.0 ; Aktiviert den modalen Makroaufruf A (O1000) mit 2 Wiederholungen und übergibt die Argumente A und B
G00 X100.0 Z10.0 ; Positionierung im Eilgang
G01 X150.0 Z-50.0 F150.0 ; Lineare Bewegung, führt automatisch das Makro O1000 aus
G01 X200.0 Z-100.0 ; Eine weitere lineare Bewegung, führt das Makro O1000 aus
G67 ; Hebt den modalen Makroaufruf auf
M30 ; Programmende
Trockenlauf
Vor dem Ausführen des Programms auf dem Rohteil müssen die aktive Werkzeugnasenradiuskorrektur und die Koordinaten überprüft werden. Laden Sie das Unterprogramm O1000 in den Steuerungsspeicher. Schalten Sie den Schalter für Trockenlauf und den Einzelsatzmodus (single block) auf dem Bedienpult ein. Überwachen Sie während der Ausführung die Positionsanzeige am Ende jedes Positionierblocks (G01 X150.0 Z-50.0). Das Werkzeug muss anhalten, und der Bediener muss überprüfen, ob das Koordinatensystem korrekt verschoben ist. Stellen Sie visuell sicher, dass die Werkzeugnase während der zwei automatischen Zyklen einen sicheren Abstand zu den Spannbacken der Vorrichtung oder den Backen des Spindelfutters einhält. Führen Sie den Abwahlblock G67 aus und verifizieren Sie, dass der standardmäßige blockweise Betrieb wiederhergestellt ist.
Siemens-Beispiel
G291 ; Schaltet den Compiler in den ISO-Dialekt-Modus um, um die G66/G67-Verarbeitung zu aktivieren
G66 P0100 L2 A15.0 B30.0 ; Aktiviert den modalen Makroaufruf A für das Programm 100 mit 2 Wiederholungen
G00 X100.0 Y50.0 ; Bewegung im Eilgang
G01 X150.0 Y75.0 F150.0 ; Linearer Verfahrblock, der nach Abschluss automatisch das Makroprogramm ausführt
G01 X200.0 Y100.0 ; Linearer Verfahrblock, führt das Makroprogramm nach Abschluss aus
G67 ; Wählt den modalen Makroaufruf ab und kehrt zur standardmäßigen blockweisen ISO-Dialekt-Verarbeitung zurück
G290 ; Schaltet zurück in den nativen Siemens-Modus
M30 ; Programmende
Trockenlauf
Stellen Sie sicher, dass das Siemens-Maschinendatum MD 18800 aktiv (1) is. Schalten Sie den HMI-Bildschirm um, um aktive Alarme und Koordinaten anzuzeigen. Führen Sie bei niedriger Trockenlaufgeschwindigkeit G291 aus, um den Interpreter umzuschalten. Überprüfen Sie, ob das Unterprogramm SPF0100 existiert. Überwachen Sie während der Ausführung im Einzelsatz den Koordinatenübergang jeder Achse. Stellen Sie sicher, dass die kontinuierliche Bahnaufbereitung (contour blending) keine plötzliche Achsverzögerung an der Koordinate X150.0 Y75.0 verursacht. Bestätigen Sie, dass der Rücksprung M99 (oder der native Rücksprung) die Ausführung korrekt an das Hauptprogramm zurückgibt, bevor G67 den modalen Zustand aufhebt.
Mitsubishi-Beispiel
T0101 ; Werkzeugaufruf
G66 P1000 L2 A15.0 B30.0 ; Aktiviert den bewegungsgesteuerten modalen Aufruf für Programm O1000 mit 2 Durchläufen
G00 X100.0 Z10.0 ; Positionierung im Eilgang
G01 X150.0 Y75.0 F150.0 ; Lineare Positionierung; Unterprogramm O1000 wird nach Abschluss der Positionierung automatisch ausgeführt
G01 X200.0 Y150.0 ; Lineare Positionierung; Unterprogramm O1000 wird automatisch ausgeführt
G67 ; Deaktiviert den modalen Aufruf der Gruppe 14, um die standardmäßige NC-Blockverarbeitung wiederherzustellen
M30 ; Programmende
Trockenlauf
Stellen Sie sicher, dass Parameter #1241 aktiviert ist, um die Argumentübergabe für die Adressen L und P zu ermöglichen. Laden Sie O1000 in den aktiven Speicher. Aktivieren Sie den Trockenlaufmodus und führen Sie das Programm aus. Verwenden Sie die Handrad-Rollback-Funktion G127, falls eine Koordinatenverschiebung fehlerhaft erscheint, und ziehen Sie das Werkzeug entlang der Bahn zurück. Stellen Sie sicher, dass die modalen Koordinaten im modalen Informationsspeicherblock ohne Drift beibehalten werden. Bestätigen Sie nach Abschluss des Zyklus, dass G67 den modalen Makroaufruf aufhebt, bevor der Revolver in die Werkzeugwechselbereiche verfährt.
Fehleranalyse
| Marke | Alarmcode | Auslösebedingung | Bediener-Symptom | Ursache / Behebung | |
|---|---|---|---|---|---|
| Fanuc | Alarm PS0325 | Programmierung des modalen G66-Makroaufrufs innerhalb von Schlichtblöcken (P/Q-Sequenz) von Zyklen wie G71/G72. | Die NC-Konsole blinkt mit „UNAVAILABLE COMMAND IS IN SHAPE PROGRAM“ und stoppt die Berechnung der Koordinatenbahn. | Entfernen Sie G66/G66.1 aus den sich wiederholenden Zyklusblöcken; platzieren Sie den modalen Aufruf außerhalb der Sequenzkoordinaten. | |
| Fanuc | Alarm PS0368 | Ändern des Werkzeugwechseltyp-Parameters (No. 5040 Bit 3), wenn eine Werkzeug- oder Koordinatenverschiebung aktiv ist. | Die NC-Steuerung sperrt sich mit „OFFSET REMAIN AT OFFSET COMMAND“ und stoppt die automatische Ausführung. | Heben Sie alle aktiven Längenkorrekturen und Werkstückkoordinatenverschiebungen auf, bevor Sie den binären Parameter TCT ändern. | |
| Siemens | Alarm 61800 | Umschalten des Compilers (G291) oder G66-Ausführung wird versucht, wenn MD 18800 deaktiviert ist. | Die Steuerung zeigt „External CNC system missing“ an und weist das Parsen des modalen G66-Makroaufrufs ab. | Setzen Sie das Maschinendatum MD 18800 $MN_MM_EXTERN_LANGUAGE = 1, um die Compiler-Option ISO-Dialekt zu aktivieren. | |
| Siemens | Alarm 14016 | Unterprogrammrücksprung, Programmende oder G66 zeitgleich mit einem M/T-Funktionsersetzungszyklusblock programmiert. | Das Programm stoppt die Vorprozessor-Kompilierung sofort mit dem Alarm 14016. | Kombinieren Sie modale Unterprogrammaufrufe und Funktionsersetzungen nicht im selben Programmsatz. | |
| Mitsubishi | Program Error (P232) | Die angegebene Programmnummer P_ oder der Makrodateiname innerhalb von < > kann im Speicher oder Speichergerät nicht gefunden werden. | Die Konsole zeigt Program Error P232 an und weigert sich, den automatischen Schleifenzyklus zu starten. | Stellen Sie sicher, dass das Programm mit der O-Nummer existiert und im aktiven Speicher oder auf den vorgesehenen Speichergeräten geladen ist. | Verify the O-number program exists and is loaded into active memory or designated storage devices. |
| Mitsubishi | Program Error (P33) | Ausführen des G67-Abwahlbefehls, wenn aktuell kein modaler G66-Makroaufruf aktiv ist. | Die Steuerung stoppt mit Program Error P33 während der Satzverarbeitung. | Stellen Sie sicher, dass ein modaler G66- oder G66.1-Makroaufruf auf der aktuellen Bahn aktiv ist, bevor Sie die G67-Abwahl befehlen. |
Anwendungshinweis
Ein plötzlicher Vorschubhalt und das Auslösen von Program Error P39 auf einer Mitsubishi M80V Type B-Steuerung sind die direkten Folgen, wenn versucht wird, während eines aktiven G66/G66.1-Makroaufrufs eine hochpräzise Spline-Interpolation (G61.2/G61.4) oder eine Werkstückausrichtekompensation (G54.4) zu aktivieren. Da die Steuerungssoftware diese Funktionen während modalen Makros sperrt, verbleibt das Werkzeug in der Kontur. Wird dieser Parameter nicht verifiziert, liegt das Ergebnis außerhalb der Toleranz — und der Fehler zeigt sich erst bei der Endmessung, was teuren Ausschuss nach sich zieht.
Ebenso führt bei Fanuc-Steuerungen das Ändern des Werkzeugwechseltyps TCT (Parameter No. 5040 Bit 3) bei aktiven Längen- oder Koordinatenverschiebungen zum sofortigen Not-Halt mit Alarm PS0368. Bei Siemens-Steuerungen erzeugen Abfragen von Systemvariablen ($A...) oder MSG-Befehle innerhalb des G66-Makros unter aktivem G64-Bahnsteuerbetrieb einen ungewollten Vorprozessor-Stopp. Dieser zwingt die Achsen zum Zwischenhalt, was zu unschönen Verweilmarken auf der Werkstückoberfläche führt und das Risiko einer Toleranzüberschreitung erhöht. Eine sorgfältige Konfiguration aller Parameter eliminiert die häufigste Ursache für Maßabweichungen bei diesem Befehl.
Zugehöriges Befehlsnetzwerk
- G65 (Einfacher Makroaufruf): Löst ein Custom-Macro-Programm nur einmal in dem Block aus, in dem es programmiert ist, im Gegensatz zu G66, das für alle nachfolgenden Bewegungsblöcke modalspezifisch aktiv bleibt.
- G67 (Modaler Makroabwahlbefehl): Deaktiviert aktive modale Makroaufrufe und versetzt den Compiler wieder in die standardmäßige blockweise G-Code-Verarbeitung.
- G64 (Continuous-Path-Mode): Blendet Konturübergänge ohne Verzögerungsprüfstopps aus, wird jedoch durch Vorprozessorstopps unterbrochen, wenn Anzeigeanweisungen (MSG) innerhalb eines aktiven G66-Programms aufgerufen werden.
- G61 (Exact-Stop-Mode): Erzwingt, dass die Steuerung am Ende jedes Blocks auf Verzögerung prüft, um eine präzise Koordinatenausrichtung zwischen den G66-Makroiterationen sicherzustellen.
Fazit
Für eine prozesssichere Fertigung ist die systematische Überprüfung der G66/G66.1-Modalkonfiguration vor jedem automatischen Start unerlässlich. Programmierer müssen sicherstellen, dass nach dem letzten Bearbeitungszyklus unmittelbar ein G67-Cancelblock im NC-Code eingefügt wird. Ohne diese explizite Abwahl bleibt die modale Verknüpfung aktiv, was bei nachfolgenden Positionierbewegungen (z. B. zum Werkzeugwechselpunkt) zu unkontrollierten Bahnbewegungen führt und das Risiko einer Kollision drastisch erhöht. Korrekte Konfiguration eliminiert die häufigste Ursache für Maßabweichungen bei diesem Befehl. Wird dieser Parameter nicht verifiziert, liegt das Ergebnis außerhalb der Toleranz — und der Fehler zeigt sich erst bei der Endmessung. Die konsequente Einhaltung der maximalen Verschachtelungstiefe von vier Ebenen sowie das Durchführen eines Trockenlaufs im Einzelsatzmodus (Single Block) sind die effektivsten Maßnahmen, um Toleranzüberschreitung und teuren Ausschuss zuverlässig zu verhindern.
Häufig gestellte Fragen (FAQ)
Wie lässt sich eine Toleranzüberschreitung bei G66-Makros durch unerwartete Vorprozessorstopps verhindern?
Bei komplexen Berechnungen oder Abfragen im G66-Subprogramm kann die Steuerung den Look-ahead-Puffer leeren, was zu kurzen Stopps der Vorschubachsen und somit zu Maßungenauigkeiten an der Schnittstelle führt. Um dies zu verhindern, sollten geometrische Berechnungen vor dem modalen Aufruf durchgeführt oder der Look-ahead-Buffer über entsprechende Parameter (z.B. Fanuc 19625) vergrößert werden. Aktion: Überprüfen Sie den Parameter 19625 auf Ihrer Steuerung und setzen Sie ihn auf mindestens 15 Blöcke Vorausschau, um Konturstörungen durch Pufferleergang auszuschließen.
Warum reagiert eine Fanuc-Steuerung bei aktivem G66 mit Alarm PS0325 und wie stellt man die Prozesssicherheit wieder her?
Dieser Alarm wird ausgelöst, wenn ein modaler G66-Aufruf innerhalb der shape-definierenden P- und Q-Blöcke von Zyklen wie G71 oder G72 verschachtelt ist. Da der Steuerungskernel in diesen Zyklen keine modalen Makroaufrufe verarbeiten kann, blockiert er die Programmausführung zum Schutz vor Fehlbewegungen. Aktion: Lagern Sie den G66-Befehl aus den G71/G72-Zyklen aus und führen Sie die Musterbearbeitung über eine simple G65-Schleife oder ein separates Unterprogramm aus, um die Kontur prozesssicher abzuarbeiten.
Wie verifiziert man die Parameter-Kompatibilität bei Mitsubishi-Steuerungen für G66, wenn L und P als Argumente verwendet werden?
Standardmäßig blockiert die Mitsubishi-Steuerung das Übergeben der Adressen L (Wiederholungen) und P (Programmnummer) in lokalen Variablen, wenn der Parameter #1241 set13/bit5 nicht auf 1 konfiguriert ist. Dies führt dazu, dass das Subprogramm mit unvollständigen Variablenwerten läuft und das Werkzeug vom vorgegebenen Pfad abweicht. Aktion: Rufen Sie die Parameterseite auf und setzen Sie das Bit set13/bit5 auf 1, um die sichere Übergabe der Werte in die Variablen #12 und #16 zu gewährleisten.
Immer noch nicht gelöst?
Frage unseren KI-Assistenten zu diesem Thema in natürlicher Sprache. Basierend auf verifizierten Quellen, keine Halluzinationen.

- CNC CARE Co-Founder (May 2025 - Present)
- Mitsubishi Electric NC Sales & Service Section Manager (2008 - 2025)
- Reis CNC Service Engineer (2003 - 2008)
- Ören Kalıp CNC Mold Line Team Leader (1999 - 2002)
Mit über 25 Jahren Erfahrung in allen Bereichen der CNC-Maschinenbranche bin ich weiterhin als Mitgründer von CNC CARE tätig, wo wir markenunabhängige Beratung, Engineering und Original-Ersatzteil-Services anbieten.
Ähnliche Artikel
Weitere Artikel zu diesem Thema
G71 Metrische Skalierung auf Siemens SINUMERIK CNC-Steuerungen
Lernen Sie die G71 und G710 Programmierung auf Siemens SINUMERIK Steuerungen. Vermeiden Sie Maßabweichungen, fehlerhafte Skalierungen und den Alarm 14800.
G69 Ausgleichsschnitt abbrechen: Kollisionsschutz an CNC-Drehmaschinen
Erfahren Sie, wie Sie den G69-Befehl zum Abbrechen des Ausgleichsschnitts bei Fanuc, Siemens und Mitsubishi programmieren, um Synchronisationen sicher zu beenden.
G70 CNC-Schlichtzyklus für Fanuc, Siemens und Mitsubishi
Der G70 Schlichtzyklus beim CNC-Drehen: Programmierung, Parameter und Alarme für Fanuc, Siemens CYCLE95 und Mitsubishi zur Vermeidung von Kollisionen.
G69 Koordinatensystemdrehung aufheben: Modal-Codes & Alarme
Lernen Sie G69 zum Aufheben von G68-Koordinatenspiegelungen auf Fanuc, Siemens und Mitsubishi CNCs prozesssicher ohne Werkzeugkollisionen anzuwenden.