M-Codes

Die folgende Tabelle zeigt die unterstützten M-Codes

MCode
Funktion
Beispiel
Beispielantwort
Nur Community-Firmware

optionaler Stopp. Wenn M333 aktiviert ist, hält das Programm beim Erreichen dieses Befehls an. Wenn stattdessen M334 gesetzt ist, erfolgt keine Pause

M2

Programm beenden, Spindel und Luft ausschalten

M3

Startet die Spindel. Der Parameter S legt die Drehzahl in Umdrehungen pro Minute fest

M3 S5000

schaltet die Spindel auf 5000 U/min ein

M5

Stoppt die Spindel

M5

M6

Automatischer Werkzeugwechsel, T0 bezeichnet drahtlose Sonde, T-1 bezeichnet Keine

M6 T1

wechselt zu Werkzeug 1 und setzt TLO

M7

Startet den Luftstrom

M7

M9

Stoppt den Luftstrom

M9

M17

schaltet alle Enable-Pins ein

Nur Debug

M18

ermöglicht das Abschalten einzelner Motoren, keine Parameter führt dazu, dass alle abgeschaltet werden

Nur Debug

M20

listet Dateien im Root des SD-Karten-Verzeichnisses auf. Zeigt keine Unterordner an

Nur Debug

M21

Code für OctoPrint für 3D-Drucker, macht nichts

Nicht verwenden

M23

wählt eine Datei aus

M23 gcodes/test.cnc

M24

beginnt mit dem Abspielen der aktuellen Datei

nicht verwenden

M25

pausiert die aktuell abgespielte Datei (verwende M600 für Pausen)

nicht verwenden

M26

setzt die aktuelle Datei zurück, damit sie von vorne gestartet werden kann

nicht verwenden

M27

meldet den aktuellen Fortschritt (nützlich, um die Anzeige des Controllers mit der aktuellen Zeile zu synchronisieren)

M30

Ende des Programms, keine Aktion auf der Carvera. Siehe M26

M30

M32

wählt eine Datei aus und beginnt mit dem Abspielen. Für Makros siehe M98

M32 gcodes/test.cnc

M82

e_absolute_mode ein

Nur Debug

M83

e_absolute_mode aus

Nur Debug

M84

schaltet alle Enable-Pins aus

Nur Debug

M92

setzt Schritte pro mm

M98 X12

setzt die X-Schritte pro mm auf 12

springt zu einer bestimmten Zeile im G-Code

M97 P14

geht zu Zeile 14 in der aktuellen Datei

öffnet ein Unterprogramm innerhalb des aktuell laufenden G-Codes, oft als Makro bezeichnet. Kehrt nach Beendigung in das Hauptprogramm zurück. Parameter P ist eine Nummer, die auf eine Datei im Ordner gcodes/macros mit dem Namen ####.cnc verweist. Optionaler Parameter L schleift das Unterprogramm eine festgelegte Anzahl von Malen

M98 P1001 L4

öffnet ein Unterprogramm per Pfad, kehrt nach Beendigung in das Hauptprogramm zurück. Ansonsten wie oben. Der optionale L-Befehl muss vor dem Pfad stehen

M98 L2 {gcodes/test.cnc}

kehrt von einem Unterprogramm ins Hauptprogramm zurück

M99

M105

liest die aktuelle Spindeltemperatur

M105

M112

Not-Aus

Nur Debug

M114

druckt die aktuelle WCS für jede Achse auf die Konsole

M115

meldet Firmware-Version und Fähigkeiten

M115

FIRMWARE_NAME:Smoothieware, FIRMWARE_URL:http%3A//smoothieware.org, X-SOURCE_CODE_URL:https://github.com/Smoothieware/Smoothieware, FIRMWARE_VERSION:master-811c4f62, X-FIRMWARE_BUILD_DATE:Oct 30 2024 15:14:06, X-SYSTEM_CLOCK:100MHz, X-AXES:5, X-GRBL_MODE:1, X-CNC:1, X-MSD:1, X-WARNING:deprecated_MCU

M117

ein spezieller, nicht konformer G-Code, da er beliebigen Text in der Zeile nach dem Befehl erlaubt. Wird auf dem verfügbaren Display ausgegeben

Verwende stattdessen 118

gibt den Rest der Zeile auf der Konsole aus

schreibt die ausgewertete Zeile auf die serielle Schnittstelle.

M118.1 P[2+2]

gibt 4 in der Konsole aus

M119

meldet aktuelle Sondeninformationen

X_max:0 Y_max:0 Z_max:0 Pins- (XL)P0.24:0 (XL)P0.25:0 (YL)P1.1:0 (YL)P1.4:0 (ZL)P1.8:0 Sonde: 0

M120

Zustand pushen

Nur Debug

M121

Zustand poppen

Nur Debug

M143

3D-Drucker-spezifischer Code

Nicht verwenden

M203

setzt maximale Vorschubgeschwindigkeit in mm/s

M203 X100

M203.1

setzt maximale Aktuator-Vorschubraten

M204

M204 Snnn - setzt Standardbeschleunigung auf nnn, Xnnn Ynnn Znnn setzt achsspezifische Beschleunigung

M205

M205 Xnnn - setzt Junction-Deviation, Z - setzt Z-Junction-Deviation, Snnn - setzt minimale Planer-Geschwindigkeit

M206

setzt Homing-Offset

M206 X15 Y15 Z15

setzt Homing-Offset auf 15,15,15

M220

S<Faktor in Prozent> - setzt Feed-Speed-Faktor-Override-Prozent

M220 S50

M221

Schaltet weiche Endschalter ein/aus

M221 S0

schaltet weiche Endschalter aus. M221 S1 schaltet sie ein

M223

S<Faktor in Prozent> - setzt Spindel-Drehzahl-Faktor-Override-Prozent

M223 S80

M301

3D-Drucker-spezifisch

Nicht verwenden

M303-305

Wird vom PID-Autotuner zur Temperaturregelung eines 3D-Drucker-Hotends verwendet. Keine Funktion auf der Carvera

Nicht verwenden

M306

setzt Homing-Offset basierend auf aktueller Position

M321

Betritt den Lasermodus. Die Maschine lässt das aktuelle Werkzeug automatisch fallen und kalibriert die Spindel-Aufnahme (um den Laser-Offset zur Arbeitsfläche einzustellen)

M321

M322

Verlässt den Lasermodus

M322

M323

Betritt den Lasertestmodus, das Lasermodul wird mit sehr geringer Leistung versorgt, üblicherweise zum Nachfokussieren des Lasers verwendet

M323

M324

Verlässt den Lasertestmodus

M324

M325

S<Faktor in Prozent> - setzt Laserleistungs-Faktor-Override-Prozent

M325 S50

M331

Schaltet den automatischen Vakuummodus ein; wenn aktiviert, wird das Vakuum automatisch eingeschaltet, wenn die Spindel läuft, und ausgeschaltet, wenn die Spindel nicht läuft

M331

M332

Schaltet den automatischen Vakuummodus aus

M332

Schaltet den optionalen Stoppmodus aus. Siehe M01

Schaltet den optionalen Stoppmodus ein. Siehe M01

Schaltet den Zeilen-für-Zeilen-Ausführungsmodus aus.

Schaltet den Zeilen-für-Zeilen-Ausführungsmodus ein. Pausiert nach jeder Zeile. Pausiert nicht bei leeren Zeilen oder Zeilen, die mit ; oder ( beginnen

M370

Löscht die Auto-Bett-Nivellierungsdaten und deaktiviert die Kompensation, bis G32 erneut ausgeführt wird

M370

M374

speichert das Autolevel-Grid auf der SD-Karte.

M374.1

löscht das Autolevel-Grid von der SD

M375

lädt das Grid von der SD-Karte

M375.1

zeigt die aktuellen Bett-Nivellierungs-Gitterdaten im MDI-Fenster an

M375.1

Deaktiviert Flex-Kompensation

Gibt Flex-Kompensation aus

Speichert Flex-Kompensationsdaten auf SD

Lädt Kompensationsdaten von SD

M400

wartet, bis alle Bewegungen bis zu diesem Punkt abgeschlossen sind

kalibriert die Sondenspitze mit Hilfe einer Rundbohrung bekannter Größe

M460 X25 L3

Startet zentriert in der Bohrung. Kalibriert basierend auf einer 25-mm-Bohrung und mittelt den Wert über 3 Tests. Speichert den Wert in Variable #150. Verwende config-set sd zprobe.probe_tip_diameter #, um diesen Wert für Neustarts zu speichern. Alle Parameter von M461 außer T,S sind implementiert

kalibriert die Sondenspitze mit Hilfe eines Zapfens bekannter Größe

M460.2 X15 L3

Startet zentriert über dem Zapfen. Erfordert X oder Y, aber nicht beide. Der Wert für X oder Y ist die gemessene Abmessung des Zapfens. L ist die Anzahl der Messungen zum Mitteln. Alle Parameter von M462 außer T,S sind implementiert

kalibriert die Sondenspitze mit Anker 2

M460.3

fährt zur korrekten Position anhand des Freigabe-Z-Werts, bewegt XY, sondiert in Z nach unten. Position basiert auf der in der Konfiguration gespeicherten Position für Anker 2 und der gespeicherten Ankerbreite. Messe und setze zuerst die Ankerbreite.

bohrungssondierung

M461 X25 Y30 D2.5 H10 C2 Q15 L2 R1.8 S1 F100 K200

Beginne ungefähr in der Mitte der Bohrung. Das Makro beginnt mit einer Z-Sondierung, bewegt sich (H)10 mm nach unten. Trifft das Werkzeug auf die Oberfläche, wird es um (C)2 zurückgezogen. Wenn nicht, fährt es von der neuen unteren Position fort. Wenn H nicht angegeben oder 0 ist, sondiert das Makro von der Starthöhe. Dann sondiert es (X)25 mm in X-Richtung, rotiert um (Q)15 Grad, bis das Werkzeug eine Oberfläche trifft. Ziehe (R)1,8 mm zurück in Richtung Zentrum und sondiere dann mit viel geringerer Geschwindigkeit erneut. Fahre zurück zum Zentrum und wiederhole für die -x-richtige Richtung. Wiederhole die X-Schritte für die Y-Richtung (Y)30. Wiederhole die X- und Y-Sonden (L)2 Mal. Alle normalen Sondierbewegungen erfolgen mit (F)100 mm/s, Bewegungen zwischen Sondierstarts erfolgen mit der Eilgeschwindigkeit (K)200. Nach Abschluss speichert das Programm die Entfernung entlang der X-Achse als #151, entlang der Y-Achse als #152, den Mittelpunkt im MCS als #154,#155. Da S auf 1 gesetzt ist, setzt das Programm das aktuelle WCS (normalerweise G54, sofern nicht überschrieben) als Zentrum der Bohrung. Wenn S nicht gesetzt ist, beeinflusst das Sondenmakro das WCS nicht. (D) wird verwendet, um den Abstand zwischen Punkten zu berechnen und steht für den Werkzeugdurchmesser. Alle Parameter sind optional, aber es muss mindestens X oder Y vorhanden sein; wenn nur einer angegeben wird, sondiert es nur in dieser Richtung.

Sondierung eines Zapfens/Blocks

M461 X25 Y25 E12

Alle Parameter von M461 funktionieren. Ausgehend vom ungefähren Zentrum des rechteckigen Blocks/Zapfens bewegt die Sonde sich (X)25 mm in positive X-Richtung und sondiert dann nach unten um -(C+E), um an die Seite des Blocks zu gelangen. Dann wird doppelt angetippt sondiert in Richtung Zentrum des Blocks, um Punkt 1 zu finden. Es kehrt zur Freigabe-Position zurück, dann zur Mittelposition und wiederholt die X-Sonde in negativer Richtung und beide Y-Richtungen. Die Ausgabewerte sind dieselben wie bei M461. Wenn S1 gesetzt ist, wird das Zentrum des Zapfens zum neuen XY-Nullpunkt. Wenn S2 gesetzt ist und eine Sondierhöhe (H) angegeben wurde, wird die Z-Null auf die sondierte Oberfläche gesetzt

sondiere innere Ecke

M462 X-15 Y-15

Implementiert D, H, C, Q, F, K, L, R, S aus M461. Sondiert eine untere linke Innen-Ecke (die Richtung von X und Y bestimmt die Bewegungsrichtung der Sonde, in diesem Fall links und nach vorne). Speichert die Mittelpunkte in #151 und #152

sondiere äußere Ecke

M463 X15Y15

Implementiert D, H, C, Q, F, K, L, R, S aus M461. Implementiert E aus M462 und folgt einem ähnlichen Ablauf für 2 Punkte statt 4. Sondiert eine untere linke Außen-Ecke (die Richtung von X und Y bestimmt die Bewegungsrichtung der Sonde, in diesem Fall links und nach vorne). Speichert die Mittelpunkte in #151 und #152. S funktioniert wie in M462

sondiere Achse und Winkel

M464 X10 E10 V10

Implementiert H,C,X,Y,Q,F,K,L,R aus M461. Nimmt nur einen Achsenwert (X oder Y). Von der Startposition: doppelt antippen sondieren mit Abstand (E)10 senkrecht zur angegebenen Achse, bis eine Oberfläche getroffen wird. Das Vorzeichen von E bestimmt die Sondierrichtung. Rückkehr zur Startposition. Bewege dich entlang der angegebenen Achse um (X)10 und wiederhole die Sonde. Rückkehr zur Startposition. Da V gesetzt ist, bewegt die Sonde sich entlang desselben Winkels wie die Sondenoberfläche um (V)10. Speichert den Winkel in Grad in #153

Sondiert 4. Achse (A-Achse) Vorrat

M465.1 Y15 E30 F200 K600 L2

Sondiert 4. Achse (A-Achse) Vorrat mit Maschinenoffset

M465.2 X10 Y15 R1 F200 K600

gerade Sondierung mit Doppeltipp

M466 X{dist} Y{dist} Z{dist} D{Spitzendurchmesser} Q{Winkel} L{Wiederholungen} R{Rückzug} S{als xy speichern, wenn nur 1 Achse ohne q gegeben ist, wird nur diese Achse als Null gespeichert} F{Vorschub} I{Invertieren für NC}

Rechtecks-Sondierung

M466.1 X{dist] Y{dist} H{depth}

M469 / M469.0

Zukünftig: Maschine mit echter 3-Achsen-Sonde auf benutzerdefiniertem Pin homing

nicht implementiert

M469.0 I{invertieren}

kalibriert Anker 1 mit echter 3-Achsen-Sonde

M469.1

M469.1 I{invertieren}

kalibriert Anker 2 mit echter 3-Achsen-Sonde

M469.2

M469.2 I{invertieren}

M469.3

Zukünftig: kalibrieren der ATC-Werkzeugposition mit echter 3-Achsen-Sonde

nicht implementiert

kalibriert den 4. Achs-Spindelstock mit echter 3-Achsen-Sonde

M469.4

M469.4 I{invert} Y{Spindelstock-Breite} H{wie weit nach unten sondiert werden soll}

kalibriert die Höhen-Offset der 4. Achse mit Sonde

M469.5

M469.5 R{Pin-Durchmesser} X{Abstand von 1. Sondierposition zur Sonde} H{maximaler Sondierabstand nach unten}

M469.6

meldet und setzt Maschinenoffsets (nur Maschinen-Code)

Nur Debug

X - ursprüngliche X-Position Y - ursprüngliche Y-Position, Z - ursprüngliche Z-Position, P - Sondier-Set-Typ. 1 ist für Anker 1, 2 ist Anker 2, 3 ist ATC-Werkzeugposition usw.

M470

setzt die Adresse der drahtlosen Sonde

M470 S2020

M471

setzt die drahtlose Sonde in den Pairing-Modus

M471

M472

schaltet den Laser der drahtlosen Sonde ein

M472

M481-489

WiFi-spezifische G-Codes, die besser über Konsolenbefehle ausgeführt werden

Nicht verwenden

M490

Führt den ATC-Homing-Prozess aus. Homing wird automatisch ausgeführt, wenn nötig, beim Ausführen von M490.1 oder M490.2

M490

M490.1

zieht die Spindelaufnahme an, um ein neues Werkzeug in der Spindel zu sichern

M490.1

M490.2

lockert die Spindelaufnahme und lässt das aktuelle Fräserbit fallen

M490.2

M491

führt eine Kalibrierung aus, und der TLO (Werkzeuglängen-Offset) für das aktuelle Werkzeug wird zurückgesetzt

M491

führt eine Werkzeugbruchprüfung durch, indem das aktuelle Werkzeug kalibriert und seine Länge mit einem zuvor gespeicherten Werkzeuglängen-Offset (TLO) verglichen wird.

M491.1 H0.05

Wenn die Differenz größer als 0,05 ist, stoppt die Maschine

M492

interner Befehl, um festzustellen, ob das Werkzeugrack leer ist.

Nur Debug

speichert Werkzeugoffset, wenn es den TLO-Sondierpunkt ausgelöst hat. Verwende M493.3, um den TLO auf einen bestimmten Wert zu setzen

Nur Debug

neues Werkzeug zum Parameter T. T-1 ist leer. T0 ist Sonde

M493.2 T5

speichert Werkzeuglängen-Offset auf den Wert. Verwende Z für einen komplett neuen Wert.

M493.3 Z-15

setzt den TLO auf -15

setzt TLO aus aktueller WCS-Position mit einem Offset H.

M493.3 H10

beginne mit dem Werkzeug 10 mm über WCS-Z, verwende die Messstift- oder Papier-Methode. Dies berechnet den richtigen TLO, um dem aktuellen WCS zu entsprechen

meldet den aktuellen Werkzeuglängen-Offset

M493.5

Zukünftig: ATC-Pause

M494 / M494.1

schaltet den Sondenlaser ein

M494.1

M494.2

schaltet den Sondenlaser aus

M494.2

M495

Führt Margin-, ZProbe- und Autoleveling-Vorgänge basierend auf Parametern durch, wechselt bei Bedarf das Sondenwerkzeug. X und Y sind Margin-Start. C und D sind Margin-Ausdehnungen. O und F sind Z-Probe-Offsets. A, B sind die Ausdehnungen des Autolevels, I und J sind die Anzahl der Punkte pro Achse zu sondieren, H ist Autolevel-Sondierhöhe. P1 geht zur Nullposition

M495.3

führt eine 3-Achsen-Z-Sondierung entlang -z, -x und -y durch. Siehe G38 für andere Sondierfunktionen. D setzt den Sondenspitzen-Durchmesser, H ist die Dicke des Vorratsstücks für die 3-Achsen-Sonde

M495.3 D3.175 H9

M496.2

geht zur Arbeitsursprung. X- und Y-Parameter setzen die Position in Relation zu Anker 1

M496.2 X30Y0

M496.3

geht zu Anker 1

M496.4

geht zu Anker 2 Position

M496.5

geht zu Position. X- und Y-Parameter setzen die Position in Relation zu Anker 1

M496.5 X30Y0

M497

wartet, bis die Warteschlange leer ist. Normalerweise ein interner Befehl

Nur Debug

M498 / M498.1

meldet EEPROM-Daten. Gibt aktuelle Werkzeugnummer, TLO, toolmz, refmz und WCS-Offsets auf der Konsole aus

M498.2

löscht EEPROM-Daten. Nicht ausführen

Nicht verwenden

M499/M499.1

gibt aktuelle Werkzeuginformationen auf der Konsole aus

M499.2

gibt alle ATC-Werkzeugpositionsdaten auf der Konsole aus

M500

speichert Änderungen an der Konfigurationsdatei auf der SD-Karte

M501

// lädt Konfigurationsüberschreibung

Nur Debug

nicht implementiert

M502

M502 löscht config-override, sodass alles auf die Werte in der config zurückgesetzt wird

Nur Debug

M503

druckt Konfigurationsdatei-Werte auf die Konsole

M504

speichert in eine spezifische config-override-Datei

M504 "/sd/config-override"

M561

Löscht die Auto-Bett-Nivellierungsdaten und deaktiviert die Kompensation, bis G32 erneut ausgeführt wird. Gleich wie M370

M565

setzt Z-Probe-Offsets. Später untersuchen

M600

pausiert die aktuelle Datei (verwende dies, um Pausen hinzuzufügen)\

M601

setzt die aktuelle Datei fort - wird üblicherweise aus der MDI-Konsole ausgeführt

M665

M665 setzt optionale Arm-Lösungsvariablen basierend auf der Arm-Lösung.

Funktion unklar

M670

setzt Standard-Sondeninformationen bis zum nächsten Reset. S - langsame Vorschubgeschwindigkeit, K - schnelle Vorschubgeschwindigkeit, R - Rückkehrvorschub, Z - maximale Z-Sondiertiefe, H - Sondierabstand, I - Sondeninvertierungsstatus, D - Verweilzeit vor dem Sondieren

M801

Schaltet das interne Vakuum ein (Carvera). Der Parameter S setzt die Leistung des Vakuums (S100 = 100%) Schaltet den PSU-Lüfter bei Carvera Air ein

M801 S100

M802

Schaltet das Vakuum bei Carvera aus und schaltet den PSU-Lüfter bei Carvera Air aus

M802

M811

Schaltet den Kühlgebläse der Spindel ein. Der Parameter S setzt die Leistung des Lüfters

M811 S100

M812

Schaltet das Kühlgebläse der Spindel aus

M812

M821

Schaltet das Licht ein

M821

M822

Schaltet das Licht aus

M822

M831

Schaltet den Laser des Werkzeugdetektors ein

M831

M832

Schaltet den Laser des Werkzeugdetektors aus

M832

M841

Schaltet die Ladeversorgung der drahtlosen Sonde ein

M841

M842

Schaltet die Ladeversorgung der drahtlosen Sonde aus

M842

M851

Schaltet die erweiterte Port-Stromversorgung ein. Der Parameter S setzt die PWM-Ausgabe des Ports

M851

M852

Schaltet die erweiterte Port-Stromversorgung aus

M852

M881

setzt 2,4G-Kanal auf: den S-Parameter und beginnt mit der Übertragung

M881 SwifiNetworkName

M882

schaltet das WLAN-Netzwerk aus

M882

M885

schaltet harte Endschalter aus (rufen beim Stromausfall wieder ein, beim Homing ignoriert)

M886

schaltet harte Endschalter ein

M887

schaltet Home-Check aus

M888

schaltet Home-Check ein

]

meldet Spindeldrehzahl

M957

aktuelle Spindeldrehzahl und Status

Zustand: an, Aktuelle U/min: 15086 Ziel-U/min: 15000 PWM-Wert: 0.699

M958

setzt Spindel-PID-Parameter, Parameter P, I, D

M1000

M1000 ist ein spezieller Befehl, der den rohen kleingeschriebenen Befehl an die simpleshell weiterleitet (für Hosts, die solche Dinge nicht erlauben)

Zuletzt aktualisiert