GCode Dokumentation: Unterschied zwischen den Versionen

Aus RF1000 Wiki
Zur Navigation springen Zur Suche springen
(Deutsche Dokumentation der RF1000 GCode Befehle)
 
(Der Seiteninhalt wurde durch einen anderen Text ersetzt: „ Diese ursprüngliche Übersetzung der GCodes von mjh11 ist '''komplett überarbeitet''' worden. Die überarbeitete Version ist G…“)
 
(2 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
''Ich habe mich bemüht, nach bestem Wissen und Gewissen, die GCode-Befehle für den RF1000 ins Deutsche zu übersetzen.


''Alle Angaben ohne Gewähr!
Diese ursprüngliche Übersetzung der GCodes von mjh11 ist '''komplett überarbeitet''' worden.
''
''Der Stand der Befehle/Dokumentation entspricht der Firmware-Version 0.91.49 vom RF1000 (datiert 20141222)
''Ich konnte einige Befehle nicht prüfen (keinen Fräser).  Andere sind schlecht oder gar nicht dokumentiert und ich konnte'' ''die Syntax und/oder den Zweck nicht eruieren.


''Ich werde diese Datei nicht warten bzw. pflegen.  Korrekturen/Ergänzungen werden jedoch gerne entgegengenommen.  Vielleicht kann ein Anderer diese einarbeiten.''
Die überarbeitete Version ist [[GCodes|hier]] zu finden.
''
 
----
<nowiki>Diese G-Codes wurden aus den Firmware-Dateien vom RF1000 erstellt
(v. 0.91.49, datiert 20141222)
 
 
Implementierte Codes im RF1k:  (#######  aus der Datei "Repetier.ino"    #######)
 
Deutsche Übersetzung durch mjh11 - Alle Angaben ohne Gewähr!!
 
 
- G0  -> siehe G1
- G1  [X Y Z E F] - Koordinierte Bewegung entlang einer oder mehrerer Achsen
(X Y Z E) F ist dabei die geforderte Verfahrgeschwindigkeit
- G2  [X Y I J E F] - Kreisbogen im Uhrzeigersinn
(Dabei gilt: X= die Endpos. auf der X Achse, Y= die Endposi. auf der Y Achse
Innn= X-Koordinate des Kreismittelpunkts, Jnnn= Y-Koordinate des
Kreismittelpunkts, E= Extrusionslänge entlang des Kreisbogens, in mm und
F= Verfahrgeschwindigkeit, wobei E und F optional sind - {allerdings, ein
Kreisbogen zu fahren, OHNE Extrusion, ist sinnlos})
- G3  [X Y I J E F] - Kreisbogen gegen den Uhrzeigersinn - siehe G2
Hinweis:  G2 und G3 müssen von der Slicer-Software unterstützt werden.
- G4  - Pause S<Sekunden> or P<Millisekunden>
- G20 - Einheiten der Bewegungsbefehle (G0-G2) sind in Zoll.
- G21 - Einheiten der Bewegungsbefehle (G0-G2) sind in Millimeter.
- G28 - Fahre alle Achsen (oder die bezeichnete(n)) zum Ursprung, z.B. "G28 Y0 Z0"
fährt nur in Y und Z auf "0".
!! G29 bis G32 werden scheinbar nicht unterstützt.  Wozu denn auch?  RF1k hat
Z-Kompensation!
X- G29 S<0..2> - Messe Z-Höhe an den 3 vor definierten Punkten. S = 1 messe
durchschn. zHöhe, S = 2 speichere durchschn. zHöhe
X- G30 P<0..3> - Messe Z-Höhe an der augenblicklichen Pos.. P = 1 erste Messung,
P = 2 letzte Messung P = 0 oder 3 : erste und letzte Messung
X- G31 - Speichere Wert des Z-Höhentasters
X- G32 S<0..2> P<0..1> - Automatische Bettausrichtung. S = 1 messe zHöhe,
S = 2 messe und speichere neue zHöhe
Entspricht in etwa "M3010" beim RF1k
!! G29 bis G32 werden scheinbar nicht unterstützt.  Wozu denn auch?  RF1k hat
Z-Kompensation!
- G90 - Interpretiere Koordinaten als absolut
- G91 - Interpretiere Koordinaten als relativ
- G92 [X<Wert> Y<Wert> Z<Wert> E<Wert>] - Setze die angegebene Koordinate(n) auf den
vorgegebenen Wert
Wird z.B. für die "E"-Koordinate häufig verwendet, so: "G92 E0"
!! G131 und G132 haben vermutlich was mit Schnellwechselextruder, oder Ähnliches,
zu tun, wo man die Position der Extruderdüse nach einem Wechsel neu
kalibrieren muss.
- G131 - set extruder offset position to 0 - needed for calibration with G132
- G132 - calibrate endstop positions. Call this, after calling G131 and after
centering the extruder holder.
 
RepRap M Codes - Standard M-Befehle
 
- M104 <Snnn> - Setze Extrudertemperatur.  Hier wird nicht gewartet.  Die nächsten
Befehle werden unmittelbar danach abgearbeitet
- M105 - Gebe Extrudertemperatur aus (wird scheinbar auch nicht unterstützt - man
hat ja das Display)
- M106 <Sxxx> - Schalte Lüfter ein.  Parameter S von 0-255 zulässig (255=100%)
- M107 - Schalte Lüfter aus (gleich wie "M106 S0")
- M109 <Snnn> - Setze Extrudertemperatur.  Hier WIRD gewartet.  Die nächsten Befehle
werden erst NACH erreichen der Temperatur abgearbeitet
- M111 S<0....9> - Setze Debug Level  (nicht dokumentiert in der RF1k Firmware?)
- M114 - Zeige Koordinaten der augenblicklichen Position (berücksichtigt G92!!)
 
 
Custom M Codes - Spezielle M-befehle
 
- M20  - Liste Inhalt der SD Karte
- M21  - SD Karte initialisieren (mounten - ist nicht dasselbe wie formatieren)
- M23 <Dateiname> - Wähle Datei auf der SD Karte aus ("M23 {\Pfad\}Dateiname.gcode")
- M24  - Starte Druck von der SD-Karte, oder fahre mit Druck wieder fort
- M25  - Druck von der SD Karte pausieren
- M26 <Snnnnn> - Setze Zeiger-Position innerhalb der gewählten SD Datei in Bytes
Beispiel: "M26 S12345"
- M27  - Melde Status des Drucks von der SD Karte
- M28 <Dateiname> - Schreibe Datei auf SD Karte ("M28 {\Pfad\}Dateiname.gcode")
- M29  - Beende Schreibvorgang auf der SD Karte
- M30 <Dateiname> - Lösche Datei von der SD Karte
- M32 <Ordnername> - Erstelle Ordner/Unterordner auf der SD Karte
- M42 P<Pinnummer> S<Wert:0-255> - Ändere Output des Pins P auf den Wert S.
Funktioniert nur auf gewissen Pins.
- M80  - Netzteil einschalten (NICHT für RF1k!)
- M81  - Netzteil ausschalten (NICHT für RF1k!)
- M82  - Interpretiere Werte für den Extruder (=E-Werte) als absolute Werte
(Standardeinstellung)
- M83  - Interpretiere Werte für den Extruder als relative Werte, auch wenn im
absoluten Koordinaten-Modus (G90)
- M84  - Schrittmotore bis zur nächsten Bewegung ausschalten (stromlos setzen).
Mittels S<Sekunden> kann ein Zeitfenster definiert werden - findet innerhalb
dieser Zeit keine Bewegung statt, schalten die Motore ab.  Neuerliche
Eingabe mit S0 deaktiviert das Zeitfenster wieder.
- M85 <Snnn> - Setzt Zeitfenster, in Sekunden, ab dem die Motore abgeschaltet
werden.  Neuerliche Eingabe mit S0 deaktiviert das Zeitfenster wieder
(S0 ist Standardvorgabe).
- M92 [X<Wert> Y<Wert> Z<Wert> E<Wert>] - Stelle Schritte pro mm für die
angegebene(n) Achse ein - Verwendung sollte nicht notwendig sein (wirklich
nur für Sonderfälle, zum Beispiel bei einer vorhandenen GCode-Datei, die
skaliert werden muss.)
- M99 S<Wartezeit> X0 Y0 Z0 - Schalte angegebene(n) Motor(en) für S-Sekunden ab,
Standardwert:10
- M104 S<temp> T<extruder> P1 F1 - Setze Extrudertemperatur, ohne Warten.
P1 = Warte bis alle vorhergehenden Bewegungen abgeschlossen sind,
F1 = piepse wenn die vorgegebene Temperatur erstmals erreicht wurde.
Single-Extruder = T0 (Bett = T1 !!)
- M105 X0 - Melde Temperaturen. X0 = zeige auch die nicht-umgerechneten digitalen
Werte.  Scheinbar nicht durch RF1k unterstützt
- M112 - Not-Abschaltung
- M115 - Schreibe Firmware-String.  Zeigt Firmware-Infos an.
- M116 - Warte bis alle angegebenen Temperaturen innerhalb von +/- 1° sind
- M117 <Nachricht> - Schreibe eine (kurze) Nachricht ins Display
- M119 - Melde Endschalterstatus (nicht-betätigter Schalter wird als "L" gemeldet)
- M140 S<temp> F1 - Setze Betttemperatur (OHNE Warten), mit F1 piepst es beim ersten
Erreichen der Temperatur
- M190 S<temp> - Setze Betttemperatur (hier WIRD aber gewartet)
- M201 [Xnn Ynn Znn] - Max. Beschleunigungswerte in Einheiten/s² für Druckbewegungen
Beispiel: "M201 X1000 Y1000"
- M202 [Xnn Ynn Znn] - Max. Beschleunigungswerte in Einheiten/s² für Leerfahrten
ohne Extrusion
- M203 S<temp> - Temperaturüberwachung einschalten - (Konnte beim RF1k keine Wirkung
feststellen)
- M204 - Setze PID Parameter X => Kp Y => Ki Z => Kd S<Extruder>
Standardmäßig wird der aktive Extruder angesprochen
Mit SingelExtruder: 0 = Extruder, 1 = Bett
Zum Beispiel "M204 X3752 Y1000 Z3518 S0" --> OHNE GEWÄHR
- M205 - EEPROM Werte ausgeben (Hinweis: hierfür muss der EEPROM Support in der
Configuration.h eingeschalten werden)
- M206 T[type] P[pos] [Sint(long)] [Xfloat] - Einen Wert ins EEPROM schreiben
Dazu muss man wissen welche Werte wo abgespeichert sind.  EEPROM Support
in der Firmware vermutlich ebenfalls nötig.  Z.B. "M206 T3 P31 X200.00"
stellt die Geschwindigkeit, mit der in Y gegen 0 gefahren wird
('ge-homed' wird), auf 200mm/s
- M207 - X<XY 'Ruckeln'> Z<Z 'Ruckeln'> E<Extruder-'Ruckeln'> - Das 'Ruckeln' (jerk)
entsteht durch sehr rasche, abwechselnde Bewegungen, die den Drucker
aufschaukeln können.  Mit Hilfe dieses Befehls schränkt man die
Geschwidigkeit der raschen Abfolge ein.  Die neuen, angegebenen Werte sind
temporär, sie werden NICHT im EEPROM gespeichert. 
Der RF1k, mit seiner soliden Bauweise, ist hier nicht sehr anfällig.
Beim RF1k ist der voreingestellte Wert für XY 10mm/s, für Z 20mm/s.
- M220 S<Prozent> - Verfahrgeschwindigkeitsmultiplikator, bei "M220 S50" gehts nur
mehr halb so schnell voran
- M221 S<Prozent> - Multiplikator für die Extrusionsmenge
- M231 S<OPS_MODUS> X<Min_Länge> Y<Retract> Z<Hysterese> F<RetractMove> - Stellt das
Standard-Verhalten für Retract-Vorgänge ein. (Sollte beim RF1k nicht
notwendig sein)
- M232 - Lese max. 'Vorlaufdruck'-Wert aus und setze es wieder auf 0 (der
'Vorlaufdruck' ist ähnlich wie die 'Vorzündung' beim Otto-Motor.  Da baut
der Extruder vorzeitig Druck auf, damit der Druck rechtzeitig vorhanden ist.
RF1k hat standardmässig 0 eingestellt
- M233 X<VorlaufwertK> Y<VorlaufwertL> - Stellt temporäre Werte zur
Vorlaufdrucksteuerung (siehe M232)
- M251 - Messe Anzahl der Z-Schritte (NUR FÜR DELTA-DRUCKER). S0 - Reset,
S1 - Print, S2 - Store to Z length (also EEPROM if enabled)
- M280 S<Modus> Modus 0 = Aus, 1 = Ein --> Zweck UNBEKANNT
("Set ditto printing mode. mode: 0 = off, 1 = on")
- M300 S<Frequenz> P<Dauer> - Gibt einen Piepston aus. 'Dauer' wird in Millisekunden
angegeben.  "M300 S440 P500" Gibt den Kammerton 'A' für eine halbe
Sekunde aus.
- M303 P<Extruder/Bett> S<Temperatur> X0 - Fährt ein automatisches Programm ab, wo
die PID-Werte für den Extruder oder das Bett, bei der angegebenen
Temperatur, ermittelt werden.  Mit SingelExtruder: P0 = Extruder, P1 = Bett.
Mit X0 wird der Wert im EEPROM gespeichert (benötigt evtl. EEPROM Support in
der Configuration.h).
- M320 - Aktiviere automatische Bettausrichtung (wird vermutlich beim RF1k nicht
funktionieren, stattdessen "M3001" verwenden) -
- M321 - Automatische Bettausrichtung ausschalten (wird vermutlich beim RF1k nicht
funktionieren, stattdessen "M3000" verwenden)
- M322 - Matrix für Bettausrichten löschen/resetten (wird vermutlich beim RF1k nicht
funktionieren, stattdessen "M3011" verwenden)
- M340 P<servoId> S<PulsInUS>  - Steuert ein zusätzliches Servo (bis zu 4 Stück)
servoID = 0..3, Servos werden per Puls angesteuert, mit Werten von 500 bis
2500, wobei 1500ms als Wert der Mittelstellung gilt.  Ein Pulswert von 0
schaltet das Servo aus.
- M350 S<mstepsAll> X<mstepsX> Y<mstepsY> Z<mstepsZ> E<mstepsE0> P<mstespE1>
- Mikro-schritte einstellen (gilt nur für RAMBO Hauptplatine)
- M400 - Warte bis alle gepufferten Befehle abgearbeitet wurden
- M401 - Speichere die augenblicklichen X, Y und Z Koordinaten
- M402 [X Y Z] - Gehe zur gespeicherten Position.  Falls eine oder mehrere Achsen
angegeben wurden, werden nur diese Koordinaten verwendet.
- M500 - Speichere alle EEPROM-relevanten Werte ins EEPROM
- M501 - Lade alle EEPROM-Werte (evtl. geänderte Werte werden wieder auf EEPROM-
Werte zurückgesetzt)
- M908 - P<Addresse> S<Wert> - Strom für Schrittmotor einstellen (gilt nur für
RAMBO Hauptplatine)
 
 
 
#######################################################################
/* Spezielle M Codes nur für RF1000  ###  Aus Datei: "RF1000.h"  ###
#######################################################################
 
- M3000 - Z-Kompensation ausschalten
- M3001 - Z-Kompensation einschalten
- M3002 - Unterste Schrittgrenze setzen (falls weniger Schritte notwendig wären,
werden diese einfach nicht ausgeführt)  Ist das richtig?
- M3003 - Maximale Schrittgrenze setzen (falls mehr Schritte notwendig wären, werden
trotzdem nur so viele gemacht)  Ist das richtig?
- M3004 S<Mikroschritte> - Manueller Z-Offset (bis v.0.91.49, danach ersetzt durch
M3006)
- M3005 - Spezielle Debug-Outputs einschalten
- M3006 S<mue-Meter> - Manueller Z-Offset (ab v.0.91.49, davor gab es nur M3004)
Positive S-Werte erhöhen den Düsenabstand (das Bett bewegt sich nach
unten)
- M3007 S<mue-Meter> - Minimaler Z-Komp-Offset (ähnlich wie M3002?) 
Ist das richtig?
- M3008 S<mue-Meter> - Maximaler Z-Komp-Offset (ähnlich wie M3003?) 
Ist das richtig?
 
- M3010 - Heat Bed Scan (HBS) starten.  Dabei wird die Oberfläche des Betts
abgetastet und die Lage/Form als Matrix für später gespeichert, wenn
dann M3001 verwendet wird.
- M3011 - Die unter M3010 erhaltene Matrix aus dem EEPROM löschen
- M3012 - Die Standard-HBS-Parameter wieder herstellen (falls diese mit
einem der Befehle von M3020 bis M3055 geändert wurden)
- M3013 - Die aktuelle Matrix des HBS ausgeben
 
 
Mit M3020 bis M3055 kann man die einzelnen Parameter des Bettabtastvorgangs ändern
falls dafür Bedarf besteht (analog zu, bzw. siehe auch M3160 bis M3165):
- M3020 - configure the x start position for the heat bed scan
- M3021 - configure the y start position for the heat bed scan
- M3022 - configure the x step size for the heat bed scan
- M3023 - configure the y step size for the heat bed scan
- M3024 - configure the x end position for the heat bed scan
- M3025 - configure the y end position for the heat bed scan
 
- M3030 - configure the fast step size for moving of the heat bed up during the
heat bed scan
- M3031 - configure the slow step size for moving of the heat bed up during the
heat bed scan
- M3032 - configure the fast step size for moving of the heat bed down during the
heat bed scan
- M3033 - configure the slow step size for moving of the heat bed down during the
heat bed scan
 
- M3040 - configure the delay (in ms) between two fast movements during the heat
bed scan
- M3041 - configure the delay (in ms) between two slow movements during the heat
bed scan
- M3042 - configure the delay (in ms) between reaching of a new x/y position and
the test of the idle pressure
 
- M3050 - configure the contact pressure delta (in digits)
- M3051 - configure the retry pressure delta (in digits)
- M3052 - configure the idle pressure tolerance (in digits)
- M3053 - configure the number of A/D converter reads per pressure measurement
- M3054 - configure the delay (in ms) between two A/D converter reads
- M3055 - configure the pressure tolerance (in digits) per pressure measurement
Mit M3020 bis M3055 kann man die einzelnen Parameter des Bettabtastvorgangs (HBS)
ändern falls dafür Bedarf besteht.
 
 
Die folgenden M-Befehle sind für die allgemeine Konfiguration zuständig
 
- M3070 S1 oder S2 - Druck pausieren, als ob die Pause-Taste gedrückt wurde.  Dabei
gilt S1 : pausiere an der augenblicklichen Position
S2 : fahre zur vordefinierten Position (Standardposition oder mittels
M3105 definierter Position) und pausiere
- M3071 - Warte bis die Weiter-taste ('Play'-Taste) gedrückt wurde ### neu ab
v0.91.49 ###
 
- M3079 - Druckobjekt 'ausgeben'.  Dabei wird zu einer vordefinierten Position
gefahren
- M3080 - Drucker in Parkposition fahren (definiert mittels M3103)
 
- M3090 - Watchdog Timer testen - dabei wird die Firmware zurückgesetzt
- M3091 - Externes EEPROM löschen
 
- M3100 - Einstellen, wie viele Mikroschritte sich das Bett bewegt, wenn einer der
Hardware-Tasten am Drucker betätigt wird
- M3101 - Einstellen, wie viele Mikroschritte sich der Extruderschrittmotor bewegt,
wenn einer der Hardware-Tasten am Drucker betätigt wird
- M3102 [Xnnn Ynnn Znnn Ennn] - Versatz, in Mikroschritten(!!), wo der Extruder
hinfahren soll, wenn die 'Pause' Taste gedrückt wird (ähnlich wie M3105)
- M3103 [Xnnn Ynnn Znnn] - Parkposition festlegen (siehe auch M3080)
- M3104 [Xnnn Ynnn Znnn] - Objektausgabeposition - Seit 0.91.48 NICHT MEHR VERWENDET
Diese Funktion wird durch den "OUTPUT_OBJECT_SCRIPT_PRINT" in der
Configuration.h ersetzt
- M3105 [Xnnn Ynnn Znnn Ennn] - Versatz, in Millimeter, wo der Extruder hinfahren
soll, wenn die 'Pause' Taste gedrückt wird (ähnlich wie M3102)
 
- M3110 - Aktuellen Statustext 'einfrieren'
 
- M3120 - Gehäuselüfter (unten, beim SD Kartenschlitz) einschalten
- M3121 - Gehäuselüfter (unten, beim SD Kartenschlitz) ausschalten
 
 
// Die folgenden M-Befehle gelten nur für den Modus "Fräsen" und dienen der
// Werkstückabtastung
 
- M3130 - Starte/beende die Suche nach 'Z=0'
 
- M3140 - Z-Kompensation ausschalten
- M3141 - Z-Kompensation einschalten
- M3146 S<nnn> - Manuellen Z-Offset angeben (Einheiten in mue-Meter)
- M3149 - Besorge/wähle Z-Kompensationsmatrix für das aktuelle Werkstück
 
- M3150 - Starten/Abbrechen der Werkstückabtastung
- M3151 - Lösche spezifizierte Werkstückabtastmatrix aus dem EEPROM
- M3152 - Setze Abtastparameter auf Standardwerte zurück (siehe M3160 bis M3165)
- M3153 - Gebe spezifizierte Werkstückabtastmatrix aus
 
- M3160 - Konfiguriere X Startposition für Werkstückabtastung (Einheit ist mm)
- M3161 - Konfiguriere Y Startposition für Werkstückabtastung (Einheit ist mm)
- M3162 - Konfiguriere X Schrittweite für Werkstückabtastung (Einheit ist mm)
- M3163 - Konfiguriere Y Schrittweite für Werkstückabtastung (Einheit ist mm)
- M3164 - Konfiguriere X Endposition für Werkstückabtastung (Einheit ist mm)
- M3165 - Konfiguriere Y Endposition für Werkstückabtastung (Einheit ist mm)
 
 
// Weitere M-Befehle
 
- M3200 - Reservirt für Test- und Debugzwecke</nowiki>

Aktuelle Version vom 18. Dezember 2015, 20:09 Uhr

Diese ursprüngliche Übersetzung der GCodes von mjh11 ist komplett überarbeitet worden.

Die überarbeitete Version ist hier zu finden.