nyaru
1
Gコードはメーカーによって方言(フォーマットやコマンドの意味が異なる)があります.
grblで使えるGコードはLinuxCNCのGコードのサブセットとなっています.しかしいくつかLinuxCNCとは異なるGコードも含まれています.
当トピックにてGrbl1.1にて使えるGコードの内容を説明しています.
詳細なGコードの意味・使い方を調べる際は以下のリンクが参考になります.
英語
日本語
ソースコード
この辺を読むとgrblのGコードの処理が示されています.
またCNC xPRO v5ではgrblをベースにしたgrbl-esp32というファームウェアを使用しています。
エラーやパラメータが一部拡張されています。
https://github.com/bdring/Grbl_Esp32
「いいね!」 1
nyaru
2
grbl1.1で使えるGコード一覧(https://github.com/gnea/grbl/wiki より)
Gコード |
概要 |
G0, G1
|
直線移動 |
G2, G3
|
円弧・ヘリカル |
G4 |
ドゥエル(タイマー) |
G10 L2, G10 L20 |
ワーク座標系設定 |
G17, G18, G19 |
平面指定 |
G20, G21 |
単位指定(mm or inch) |
G28, G30 |
リファレンス点へ移動 |
G28.1, G30.1 |
リファレンス点をセット |
G38.2 |
プロービング(接触方向移動/失敗時エラー) |
G38.3, G38.4, G38.5
|
その他のプロービング |
G40 |
工具径補正キャンセル |
G43.1, G49
|
工具長補正 |
G53 |
機械座標系指定 |
G54, G55, G56, G57, G58, G59 |
ワーク座標系指定 |
G61 |
イグザクトパスモード |
G80 |
固定サイクル停止 |
G90, G91 |
相対座標系・絶対座標系選択 |
G91.1 |
円弧中心指定モード変更 |
G92 |
座標系オフセット |
G92.1 |
座標系オフセットをリセット |
G93, G94 |
送り速度モード(インバースタイム送り or 毎分送り) |
M0, M2, M30
|
プログラム停止,終了 |
M3, M4, M5 |
スピンドルコントロール |
M7* , M8, M9 |
クーラントコントロール |
M56* |
パーキングモーション |
T0~T255 |
工具交換 |
(〇〇〇〇) |
コメント |
;〇〇〇〇 |
コメント |
*はデフォルトで無効なコマンド.
Grblのレーザーモード($32
)を有効にしているとM3
,M4
の内容が変わります.
nyaru
3
G0
位置決め・早送り
フォーマット
G0 X◯◯ Y◯◯ Z◯◯
パラメータ |
説明 |
X |
目的地のX座標(省略可) |
Y |
目的地のY座標(省略可) |
Z |
目的地のZ座標(省略可) |
説明
位置決め用の送りです.
現在地と目的地を直線で繋ぐように動くとは限らないので切削時に用いる動作指令ではありません.
送り速度は指定できません.
GrblではG0での送り速度はパラメーターの$110
,$111
,$112
に従います.
nyaru
4
G1
直線補間
フォーマット
G1 X◯◯ Y◯◯ Z◯◯ F◯◯
パラメータ |
説明 |
X |
目的地のX座標(省略可) |
Y |
目的地のY座標(省略可) |
Z |
目的地のZ座標(省略可) |
F |
目的地までの送り速度(同じ場合2回目以降省略可) |
説明
加工用の送りです.
現在地と目的地を直線で繋ぐように動きます.
GrblではF(送り速度)を一度も指定しないとerror:22(Undefined feedrate)
となります.
nyaru
5
G2
円弧補間(時計回り)
フォーマット
円弧中心指定のフォーマット
G2 X◯◯ Y◯◯ Z◯◯ I◯◯ J◯◯ F◯◯
G2 X◯◯ Y◯◯ Z◯◯ I◯◯ K◯◯ F◯◯
G2 X◯◯ Y◯◯ Z◯◯ J◯◯ K◯◯ F◯◯
円弧半径指定のフォーマット
G2 X◯◯ Y◯◯ Z◯◯ R◯◯ F◯◯
パラメータ |
説明 |
X |
目的地のX座標 |
Y |
目的地のY座標 |
Z |
目的地のZ座標 |
I |
現在地からの円弧中心までのX相対座標値 |
J |
現在地からの円弧中心までのY相対座標値 |
K |
現在地からの円弧中心までのZ相対座標値 |
R |
円弧半径 |
F |
目的地までの送り速度(同じ場合2回目以降省略可) |
説明
加工用の送りです.
現在地と目的地を円弧で繋ぐように動きます.
指定平面以外の座標はヘリカルの動作です.
予めG17
(XY平面),G18
(XZ平面),G19
(YZ平面)の指定をする必要があります.
指定しない場合G17(XY平面)が有効です.
Grblでは無効な位置を指定するとerror:33がでます.
nyaru
7
G4
ドゥエル(タイマー・一時停止)
フォーマット
G4 P◯◯
説明
軸の移動動作を一時停止します.
スピンドルやクーラントは停止しません.
GrblではPを負の値を指定するとerror:4(Value < 0)となります.
またGrblではPは秒数であり,ミリ秒指定ではありません.
例
G4 P2.5
2.5秒停止します.
nyaru
8
G10
ワーク座標系(作業原点設定)
フォーマット
機械座標上にて作業原点位置を指定(L2)
G10 L2 P◯◯ X◯◯ Y◯◯ Z◯◯
現在座標をワーク座標系上の座標値にて指定(L20)
G10 L20 P◯◯ X◯◯ Y◯◯ Z◯◯
パラメータ |
説明 |
X |
X座標(省略可) |
Y |
Y座標(省略可) |
Z |
Z座標(省略可) |
P |
座標系番号 |
P番号 |
座標系 |
0 |
現在使っている座標系 |
1 |
座標系1(G54) |
2 |
座標系2(G55) |
3 |
座標系3(G56) |
4 |
座標系4(G57) |
5 |
座標系5(G58) |
6 |
座標系6(G59) |
説明
ワーク座標系(作業原点)を設定します.
GrblではデフォルトでG54の座標系が使われます.
GrblではG10はL2とL20のみ有効です.
ワーク座標系は$#
にて以下のように確認できます.
[G54:X座標,Y座標,Z座標]
[G55:X座標,Y座標,Z座標]
...
[G59:X座標,Y座標,Z座標]
デフォルトではどの座標系も(0,0,0)ですが,一度ワーク座標系をセットするとEEPROMに保存されるため,電源を切っても保存されます.
リセットする場合は機械原点をワーク座標系とするよう指定する必要があります.
G10 L2 P0 X0 Y0 Z0; 今使っているワーク座標系の原点を機械原点とする
nyaru
9
G17
XY平面指定
フォーマット
G17
説明
XY平面を指定します.
モーダルな指令なので一度指令を送信した後は変更するまで有効です.
Grblでは電源投入時のデフォルトです.
G18
YZ平面指定
フォーマット
G18
説明
YZ平面を指定します.
モーダルな指令なので一度指令を送信した後は変更するまで有効です.
G19
YZ平面指定
フォーマット
G19
説明
YZ平面を指定します.
モーダルな指令なので一度指令を送信した後は変更するまで有効です.
nyaru
10
G20
単位指定(inch;インチ)
フォーマット
G20
説明
Gコードの座標指定をインチで指定したい場合に使用します.
モーダルな指令なので一度指令を送信した後は変更するまで有効です.
G21
単位指定(mm;ミリメートル)
フォーマット
G21
説明
Gコードの座標指定をミリメートルで指定したい場合に使用します.
Grblではデフォルトで有効です.
モーダルな指令なので一度指令を送信した後は変更するまで有効です.
nyaru
11
G28
リファレンス点復帰
フォーマット
G28 X◯◯ Y◯◯ Z◯◯
パラメータ |
説明 |
X |
経由するX座標(省略可) |
Y |
経由するY座標(省略可) |
Z |
経由するZ座標(省略可) |
説明
G28.1にて設定された座標に移動します.
その際にG28で示したXYZの座標を通ってからG28.1で指定された点へ移動します.
設定されていない場合は原点に機械原点に復帰します.
Grblでは設定されたリファレンス点は$#
のコマンドにて確認可能です
G30
リファレンス点復帰
フォーマット
G30 X◯◯ Y◯◯ Z◯◯
パラメータ |
説明 |
X |
経由するX座標(省略可) |
Y |
経由するY座標(省略可) |
Z |
経由するZ座標(省略可) |
説明
G30.1にて設定された座標に移動します.
G28と同じです.
nyaru
12
G28.1
リファレンス点設定
フォーマット
G28.1 X◯◯ Y◯◯ Z◯◯
パラメータ |
説明 |
X |
X座標(省略可) |
Y |
Y座標(省略可) |
Z |
Z座標(省略可) |
説明
G28にて移動する座標を設定します.
指定する座標値はワーク座標系の座標値です.
指令送信後は指定した位置へ移動します.
座標値を省略した場合,現在座標がG28.1にセットされます.
Grblでは設定されたリファレンス点は$#
のコマンドにて確認可能です
G30.1
リファレンス点設定
フォーマット
G30.1 X◯◯ Y◯◯ Z◯◯
パラメータ |
説明 |
X |
X座標(省略可) |
Y |
Y座標(省略可) |
Z |
Z座標(省略可) |
説明
G30にて指定した座標に移動します.
G28.1と同じです.
nyaru
13
G38.2
プロービング.(接触すると停止,失敗するとアラーム版)
フォーマット
G38.2 X◯◯ Y◯◯ Z◯◯ F◯◯
パラメータ |
説明 |
X |
X座標(省略可) |
Y |
Y座標(省略可) |
Z |
Z座標(省略可) |
F |
送り速度 |
説明
プローブを当てにいくときの指令です.失敗(接触しなかった or 最初から接触している)場合はアラーム(Alarm:4 or Alarm:5 Probe fail)が発生します.(ロックされアンロックするまで操作できなくなります)
指定する座標値はワーク座標系の座標値です.プローブの向かう方向を指定します.
工具を相対座標にて設定する場合は以下のようにG90
,G91
を用います.
G91
G38.2 Z-1 F10;現在位置からzに-1mm移動する
G90
プロービングに成功すると以下のフォーマットでメッセージが返されます.
[PRB:停止位置のX座標,停止位置のY座標,停止位置のZ座標:成功(1)or失敗(0)]
また$#
コマンドにて最後のプロービングの結果を確認できます.
G38.3
プロービング.(接触すると停止,失敗してもアラーム発生しない版)
フォーマット
G38.3 X◯◯ Y◯◯ Z◯◯ F◯◯
パラメータ |
説明 |
X |
X座標(省略可) |
Y |
Y座標(省略可) |
Z |
Z座標(省略可) |
F |
送り速度 |
説明
G38.2と同じですが,失敗してもアラームは発生しません.
nyaru
14
G38.4
プロービング.(接触した状態から接触が失われると停止,失敗するとアラーム版)
フォーマット
G38.4 X◯◯ Y◯◯ Z◯◯ F◯◯
パラメータ |
説明 |
X |
X座標(省略可) |
Y |
Y座標(省略可) |
Z |
Z座標(省略可) |
F |
送り速度 |
説明
プローブを離す際に検知したい場合の指令です.
失敗した場合はアラームが発生します.(ロックされアンロックするまで操作できなくなります)
指定する座標値はワーク座標系の座標値です.プローブの離れる方向の座標を指定します.
工具を相対座標にて設定する場合は以下のようにG90
,G91
を用います.
G91
G38.2 Z1 F10;現在位置からzに+1mm移動する
G90
プロービングに成功すると以下のフォーマットでメッセージが返されます.
[PRB:停止位置のX座標,停止位置のY座標,停止位置のZ座標:成功(1)or失敗(0)]
また$#
コマンドにて最後のプロービングの結果を確認できます.
G38.5
プロービング.(接触が失われると停止,失敗してもアラーム発生しない版)
フォーマット
G38.5 X◯◯ Y◯◯ Z◯◯ F◯◯
パラメータ |
説明 |
X |
X座標(省略可) |
Y |
Y座標(省略可) |
Z |
Z座標(省略可) |
F |
送り速度 |
説明
G38.4と同じですが,失敗してもアラームは発生しません.
nyaru
15
G40
工具径補正キャンセル
フォーマット
G40
説明
Grblでは常に工具径補正がオフになっているため必要ありません.
(生成されるNCプログラムの最初にG40が書かれていることが多いためサポートしているようです)
nyaru
16
G43.1
動的工具長補正
フォーマット
G43.1 Z◯◯
説明
この指令以後は指定量分,座標をオフセットして動作します.
工具が摩耗するなど工具の長さが変更される場合に,NCプログラムを変更せず座標を変更する際に用います.
Grblでは$#
のコマンドを入力すると以下のように補正量を確認できます.
[TLO:◯◯]
またXやYの値を指定するとerror:37(Invalid gcode)が発生します.
例
G0 Z2; Z2へ移動
G43.1 Z0.5; 0.5mmオフセット
G0 Z3; このとき機械座標系ではZ3.5となっています.
nyaru
18
G53
機械座標系指定
フォーマット
G53 G0 or G1 X◯◯ Y◯◯ Z◯◯
説明
ワンショットのGコードです.(使うたびに指令する必要があります。)
直後のG0
,G1
を機械座標系(機械原点を加工原点としたワーク座標系)で動かします.
例
G53 G0 X10 Y20; ワーク座標系に関係なく機械座標系のX10 Y20へ移動
G0 X20 Y20; ワーク座標系のX20 Y20へ移動
G53
G0 X10 Y20; 別の行(ブロック)となるとG53の影響範囲から抜けるためワーク座標系のX10 Y20へ移動してしまう
nyaru
19
G54
座標系1指定
フォーマット
G54
説明
使っている座標系を座標系1へ切り替えます.
モーダルな指令なので一度指令を送信した後は変更するまで有効です.
Grblでは電源投入時のデフォルトです.
G55
座標系2指定
フォーマット
G55
説明
使っている座標系を座標系2へ切り替えます.
G56
座標系3指定
フォーマット
G56
説明
使っている座標系を座標系3へ切り替えます.
G57
座標系4指定
フォーマット
G57
説明
使っている座標系を座標系4へ切り替えます.
G58
座標系5指定
フォーマット
G58
説明
使っている座標系を座標系5へ切り替えます.
G59
座標系6指定
フォーマット
G59
説明
使っている座標系を座標系6へ切り替えます.
nyaru
20
G61
イグザクトパスモード
フォーマット
G61
説明
Grblでは常にイグザクトパスモードとなっているため,呼び出す必要はありません.