Twinwrights eigener Kernel führt den unten stehenden G-Code aus. Die Codes folgen RS274/NGC und LinuxCNC. Ein Code, den der Kernel nicht unterstützt, wird mit error:20 beantwortet, und der Satz bewirkt nichts.
Zu den Echtzeitbefehlen (einzelne Bytes wie ?, ! und ~) siehe Protokoll. Wie sich der Kernel von anderen Grbl-Steuerungen unterscheidet, steht in Twinwrights eigener Kernel.
| Code | Bedeutung | Hinweise |
|---|---|---|
G0, G1 | Eilgang, lineare Vorschubbewegung | |
G2, G3 | Kreisbogen im Uhrzeigersinn, gegen den Uhrzeigersinn (I J K oder R), Helix | Das Werkzeug folgt dem exakten Kreis. Ein Kreisbogen in R-Form ohne Sehne in seiner Ebene wird mit error:33 beantwortet. |
G4 P | Verweilzeit, P Sekunden | Die Verweilzeit dauert so lange wie programmiert. |
G5, G5.1 | Kubischer Spline, quadratischer Spline | Ein G5 ohne I und J setzt in der Richtung fort, in der die vorige Bewegung endete. |
G7, G8 | Durchmessermodus beim Drehen, Radiusmodus | Nur im Drehmodus ($32=2). |
G10 L2, G10 L20 | Eine Nullpunktverschiebung setzen | |
G10 L1, G10 L10, G10 L11 | Die Werkzeugtabelle setzen | 32 Werkzeuge. Die Tabelle bleibt erhalten, wenn die Steuerung ausgeschaltet ist. |
G17, G18, G19 | Ebene wählen | |
G20, G21 | Einheit Zoll, Einheit Millimeter | |
G28, G30 | Eine gespeicherte Position über einen Zwischenpunkt anfahren | |
G28.1, G30.1 | Die aktuelle Position speichern | |
G33, G33.1, G76 | Spindelsynchrone Bewegung, starres Gewindebohren, Gewindeschneidzyklus | Diese brauchen einen Spindelencoder. Die MC-1 hat keinen, daher werden sie mit error:20 beantwortet. |
G38.2–G38.5 | Antasten | Das Ergebnis ist der Punkt, an dem der Messtaster ausgelöst hat, gemeldet als [PRB:]. Setzen Sie den Nullpunkt auf Grundlage dieses Punktes, nicht der Stelle, an der die Achsen angehalten haben. |
G40 | Fräserradiuskorrektur aus | |
G41, G42, G41.1, G42.1 | Fräserradiuskorrektur: D aus der Werkzeugtabelle oder .1 mit einem Durchmesser | Nur in der Ebene G17. Ein- und Ausfahrbewegungen wie in LinuxCNC. Eine Bewegung, die einen Überschnitt verursachen würde, wird abgelehnt. |
G43 Hn, G43.2 Hn | Werkzeuglängenkorrektur aus der Werkzeugtabelle, zusätzliche Korrektur | |
G43.1 | Dynamische Werkzeuglängenkorrektur | |
G49 | Werkzeuglängenkorrektur aus | |
G50, G51 | Skalierung aus, ein | |
G52 | Lokales Koordinatensystem | Teilt seine Verschiebung mit G92, wie in LinuxCNC. |
G53 | Maschinenkoordinaten für diesen Satz | |
G54–G59, G59.1–G59.3 | Werkstückkoordinatensysteme | $486 kann G59.1–G59.3 sperren. |
G61 | Exakte Bahn | |
G61.1 | Genauhalt | Die Achsen halten am Ende jeder programmierten Bewegung an. |
G64 P Q | Bahnverschleifung | Wo es Zeit spart, wird die Ecke zwischen zwei geraden Bewegungen zu einem Bogen innerhalb des Abstands P von der Ecke. Q wird akzeptiert und nicht verwendet. |
G65 P1–P6 | Eingebaute Makros | Einstellungen, Werkzeugkorrekturen, Parameter, Maschinenzustand, Wahl des Messtasters, Warten auf die Spindel. P7 (Modbus-Nachrichten) wird nicht unterstützt. |
G65 P100 und höher, G66, G66.1, G67 | Dateimakros, modale Makroaufrufe | P muss eine ganze Zahl sein. Kein anderer Befehl darf im selben Satz stehen (error:21). |
G73, G81, G82, G83 | Bohrzyklen, Tieflochbohren mit Entspanen | Jede Bohrung erhält die Bohrschritte, die sie braucht. |
G84, G85, G86, G89 | Gewindebohr- und Ausbohrzyklen | |
G80 | Zyklus aus | |
G90, G91 | Absolute Maße, inkrementelle Maße | |
G91.1 | Inkrementelle Bogenmittelpunkte | |
G92, G92.1, G92.2, G92.3 | Koordinatenverschiebung: setzen, löschen, aussetzen, wiederherstellen | |
G93, G94, G95 | Inverse Zeit, Einheiten pro Minute, Einheiten pro Umdrehung | Kreisbögen in inverser Zeit benötigen die programmierte Zeit. |
G96, G97 | Konstante Schnittgeschwindigkeit, konstante Spindeldrehzahl | Nur im Drehmodus. |
G98, G99 | Zyklusrückzug auf die Starthöhe, auf die R-Ebene |
Diese G-Codes werden nicht unterstützt (error:20):
G5.2, G5.3 (NURBS);G17.1–G19.1 (UVW-Ebenen);G70–G72 (Drehzyklen);G90.1.| Code | Bedeutung | Hinweise |
|---|---|---|
M0, M1 | Programmpause, wahlweiser Halt | Der Echtzeitbefehl 0x88 schaltet den wahlweisen Halt (M1) ein oder aus. |
M2, M30 | Programmende | |
M3, M4, M5 | Spindel im Uhrzeigersinn, gegen den Uhrzeigersinn, aus | |
M6 | Werkzeugwechsel | $341 legt fest, was M6 tut. M6 und eine Bewegung in einem Satz werden mit error:40 beantwortet. |
M7, M8, M9 | Kühlung: Sprühkühlung, Flutkühlung, aus | Bei der MC-1 betreibt M8 die Wasserkühlung der Spindel. |
M25 | Z hoch auf die Referenzhöhe | Centroids Code, den manche CAM-Postprozessoren ausgeben. |
M48, M49 | Overrides ein, aus | |
M50–M53 | Vorschub-Override, Spindel-Override, adaptiver Vorschub, Vorschub halt: ein oder aus | |
M56 | Parken ein oder aus | |
M60 | Pause für den Palettenwechsel | |
M61 | Das aktuelle Werkzeug setzen, ohne zu wechseln | |
M62–M65 | Digitalausgang ein oder aus, mit der nächsten Bewegung oder sofort | Auf Platinen mit Zusatzausgängen. |
M66 | Auf einen Eingang warten | Das Warten beginnt, wenn die Bewegungen davor beendet sind. |
M70–M73 | Den modalen Zustand sichern und wiederherstellen | |
M98 P L, M99 | Unterprogramm aufrufen, zurückkehren | In Programmen, die aus dem Dateisystem der Steuerung laufen. Ein Satz für Satz gesendetes M98 wird mit error:39 beantwortet. Ein M99 im Hauptprogramm beendet es. |
Diese M-Codes werden nicht unterstützt (error:20):
M19 (Spindelorientierung);M67, M68 (Analogausgänge; die MC-1 hat keine);M100–M199 (benutzerdefinierte M-Codes).( … ) und ; sind erlaubt.(MSG,…) sendet den Text als Meldung an das Sender-Programm.(PRINT,…) sendet eine Meldung mit den Werten der Parameter, die es nennt.(DEBUG,…) tut dasselbe, solange #5599 eingeschaltet ist./, Satznummern N und %-Zeilen (mit oder ohne Namen) sind erlaubt.#1–#5000 gehören zum Programm. Sie haben den Wert 0, bis das Programm sie setzt.#5001 und höher sowie die benannten Systemparameter sind nur lesbar.#<name>: Das Lesen eines Namens, der nie gesetzt wurde, wird mit error:39 beantwortet. EXISTS[#<name>] zeigt, ob er gesetzt wurde.[ ] verwenden die Operatoren und Funktionen von LinuxCNC. Winkel werden in Grad angegeben.if, elseif, else, while, do und repeat verwenden.<name>.ngc oder <name>.macro.@ ist der Radius und ^ der Winkel, in der XY-Ebene um den Werkstücknullpunkt.
error:21 beantwortet.error:24 beantwortet.