ドキュメント 技術マニュアル

G コードと M コード

Twinwright 独自カーネルは、以下の G コードを実行します。コードは RS274/NGC と LinuxCNC に従います。コントローラが対応していないコードには error:20 を返し、その行では何も起こりません。

リアルタイムコマンド(?、!、~ など、1バイトで構成されるもの)については、プロトコルを参照してください。ほかの Grbl コントローラとの違いについては、Twinwright 独自カーネルを参照してください。

G コード

コード意味備考
G0、G1早送り、直線補間
G2、G3円弧(時計回り、反時計回り。I J K または R 指定)、ヘリカル工具は真円に沿って動きます。その平面内に弦がない R 指定の円弧には error:33 を返します。
G4 Pドウェル、P 秒ドウェルはプログラムした時間のとおりに続きます。
G5、G5.13次スプライン、2次スプラインI と J のない G5 は、直前の移動が終わった方向に続きます。
G7、G8旋盤の直径モード、半径モード旋盤モードのみ($32=2)。
G10 L2、G10 L20ワーク座標オフセットの設定
G10 L1、G10 L10、G10 L11工具テーブルの設定工具 32本。コントローラの電源を切っても、テーブルは保持されます。
G17、G18、G19平面の選択
G20、G21インチ単位、ミリメートル単位
G28、G30中間点を経由して、記憶した位置へ移動
G28.1、G30.1現在位置の記憶
G33、G33.1、G76主軸同期移動、リジッドタッピング、ねじ切りサイクル主軸エンコーダが必要です。MC-1 にはないため、error:20 を返します。
G38.2–G38.5プローブ結果は、プローブが作動した点で、[PRB:] として報告されます。ゼロの設定には、軸が止まった位置ではなく、この点を使ってください。
G40工具径補正の解除
G41、G42、G41.1、G42.1工具径補正:D は工具テーブルから、.1 では直径を指定G17 平面のみ。補正の開始と終了の移動は LinuxCNC と同じです。削り過ぎになる移動は拒否されます。
G43 Hn、G43.2 Hn工具テーブルからの工具長補正、追加の補正
G43.1動的工具長補正
G49工具長補正の解除
G50、G51スケーリングのオフ、オン
G52ローカル座標系オフセットを G92 と共有します(LinuxCNC と同じ)。
G53この行では機械座標を使う
G54–G59、G59.1–G59.3ワーク座標系$486 で G59.1–G59.3 をロックできます。
G61正確パス
G61.1正確停止プログラムした移動の終わりごとに、軸が停止します。
G64 P Qパスのブレンド時間を短縮できる場合は、2つの直線移動の間の角が、角から P 以内の円弧になります。Q は受け付けますが、使われません。
G65 P1–P6組み込みマクロ設定、工具オフセット、パラメータ、機械の状態、プローブの選択、主軸の待機。P7(Modbus メッセージ)には対応していません。
G65 P100 以降、G66、G66.1、G67ファイルマクロ、モーダルマクロ呼び出しP は整数でなければなりません。同じ行に他のコマンドを置くことはできません(error:21)。
G73、G81、G82、G83穴あけサイクル、ステップ送り穴あけ各穴で、必要な回数のステップ送りを行います。
G84、G85、G86、G89タッピングサイクルとボーリングサイクル
G80サイクルの解除
G90、G91絶対指令、増分指令
G91.1円弧中心の増分指令
G92、G92.1、G92.2、G92.3座標オフセット:設定、クリア、保留、復元
G93、G94、G95逆時間送り、毎分送り、毎回転送り逆時間送りの円弧は、プログラムした時間をかけて動きます。
G96、G97周速一定、主軸回転数一定旋盤モードのみ。
G98、G99サイクルのリトラクト先:開始高さ、R 平面

次の G コードには対応していません(error:20)。

  • G5.2、G5.3(NURBS)
  • G17.1–G19.1(UVW 平面)
  • G70–G72(旋盤サイクル)
  • G90.1

M コード

コード意味備考
M0、M1プログラムの一時停止、オプショナルストップリアルタイムコマンド 0x88 は、M1 による一時停止のオンとオフを切り替えます。
M2、M30プログラム終了
M3、M4、M5主軸:時計回り、反時計回り、停止
M6工具交換$341 で M6 の動作を設定します。M6 と移動を同じ行に書くと error:40 を返します。
M7、M8、M9クーラント:ミスト、フラッド、オフMC-1 では、M8 が主軸の水冷を動かします。
M25Z を原点復帰した高さまで上げるCentroid のコードで、一部の CAM ポストプロセッサが出力します。
M48、M49オーバーライドのオン、オフ
M50–M53送りオーバーライド、主軸オーバーライド、アダプティブ送り、フィードホールド:オンまたはオフ
M56パーキングのオンまたはオフ
M60パレット交換による一時停止
M61工具交換をせずに現在の工具を設定
M62–M65デジタル出力のオンまたはオフ(次の移動に合わせる、または即時)補助出力のあるボードで使えます。
M66入力の待機待機は、それより前の移動が終わった時点から始まります。
M70–M73モーダル状態の保存と復元
M98 P L、M99サブルーチンの呼び出し、復帰コントローラのファイルシステムから実行するプログラムで使えます。1行ずつ送った M98 には error:39 を返します。メインプログラム内の M99 は、そのプログラムを終了させます。

次の M コードには対応していません(error:20)。

  • M19(主軸のオリエンテーション)
  • M67、M68(アナログ出力。MC-1 にはありません)
  • M100–M199(ユーザー M コード)

ワード、構文、パラメータ

行の構造

  • コメント ( … ) と ; が使えます。
  • (MSG,…) は、そのテキストをメッセージとして送信ソフトに送ります。
  • (PRINT,…) は、指定したパラメータの値を含むメッセージを送ります。
  • (DEBUG,…) は、#5599 がオンの間、同じことを行います。
  • ブロックスキップ /、行番号 N、% の行(名前の有無を問わず)が使えます。
  • 大文字と小文字は区別されず、ワード内のスペースは無視されます。

パラメータと式

  • 番号付きパラメータ #1–#5000 は、プログラム自身のものです。プログラムが値を設定するまで、読み取った値は 0 です。
  • #5001 以降のパラメータと、名前付きのシステムパラメータは、読み取りだけができます。
  • 名前付きパラメータ #<name>:一度も設定されていない名前を読み取ると、error:39 を返します。設定済みかどうかは EXISTS[#<name>] で調べられます。
  • [ ] 内の式では、LinuxCNC の演算子と関数が使えます。角度の単位は度です。
  • 行で設定した値を、同じ行の中で読み取ることはできません。

O ワード

  • コントローラのファイルシステムから実行するプログラムでは、サブルーチン、if、elseif、else、while、do、repeat が使えます。
  • 1行ずつ送られたサブルーチンとループは、いったん集められ、完結してから実行されます。
  • サブルーチンは、独立したファイル(<name>.ngc または <name>.macro)にすることもできます。

極座標

@ は半径、^ は角度で、XY 平面内のワーク原点を中心にします。

行のエラー

  • 同じモーダルグループのコードを 1行に 2つ書くと、error:21 を返します。
  • どちらも軸ワードを使う 2つのコマンドを 1行に書くと、error:24 を返します。
  • エラーコードの全一覧は、エラーコードにあります。