CNCプログラムMコードとGコードの違い

NCプログラム

CNCプログラムの基本構造

マシニングセンタやNC旋盤などのCNC工作機械は、正確な動作を行うために「CNCプログラム」と呼ばれる命令文を読み取って動作します。
このプログラムは一見難しそうに見えますが、実は一定の構造とルールに基づいて作られており、その基本を理解すれば誰でも読めるようになります。

CNCプログラムとは?

CNCプログラム(NCプログラム)は、工作機械に「どのように動け」「どの工具を使え」と指示を出すための命令文です。
Gコード(Geometry)とMコード(Machine)を中心に構成され、座標や速度などのデータを指定して自動で高精度な加工を行います。

CNCプログラムの基本構造

CNCプログラムはおおまかに次のような構成になっています。

O0001 (プログラム番号とコメント)
N010 G90 G54 G00 X0 Y0 Z100 (原点復帰)
N020 T01 M06 (工具交換)
N030 S1500 M03 (主軸回転ON)
N040 G43 H01 Z50.0 (工具長補正)
N050 G01 Z-5.0 F200 (送り加工)
N060 G00 Z100 (退避)
N070 M05 (主軸停止)
N080 M30 (プログラム終了)

それぞれの行(ブロック)は命令のまとまりで、「N番号+G/Mコード+座標指令+補助指令」の形で構成されます。
以下に各部分を詳しく見ていきましょう。

各要素の解説

O番号(プログラム番号)

プログラムを識別するための番号です。
例:O0001
同じ機械に複数のプログラムを登録する場合、この番号で呼び出しを行います。

N番号(ブロック番号)

行番号のようなもので、各命令文(ブロック)の順序を示します。
例:N010N020
最近の制御装置では省略可能ですが、修正や確認時の目安になります。

Gコード(準備機能)とは

Gコードは工作機械の動作を定義するコード で、工具の移動や加工経路を指示します。

Gコードの分類

Gコードには、以下のような機能別のカテゴリがあります。

カテゴリ説明
移動・補間制御工具をどのように移動させるかG00(早送り)、G01(直線補間)、G02(円弧補間)
平面選択加工の基準平面を設定G17(XY平面)、G18(ZX平面)、G19(YZ平面)
座標設定座標系を設定G54~G59(ワーク座標系設定)
加工モード加工方法を変更G90(絶対位置指定)、G91(相対位置指定)
工具補正工具の補正値を適用G40(工具径補正解除)、G41/G42(工具径補正 左/右)
その他切削時の動作を制御G98/G99(リトラクト動作)、G73/G83(ドリルサイクル)

Gコードの主な例

直線移動
G01 X50.0 Y25.0 F100

→ 工具をX=50, Y=25まで送り、送り速度100mm/minで直線移動

円弧補間
G02 X40.0 Y30.0 I10.0 J0.0

→ 現在の位置からX=40, Y=30へ、I=10, J=0の半径で時計回りの円弧移動

座標系設定
G54

→ ワーク座標系1(G54)を使用

Mコード(補助機能)とは

Mコードは工作機械の補助操作を定義するコード で、主軸の回転やクーラントの制御、プログラムの開始・停止などを指示します。

Mコードの主な種類

カテゴリ説明
主軸制御主軸の回転や停止を制御M03(主軸正転)、M04(主軸逆転)、M05(主軸停止)
工具交換工具の交換を制御M06(工具交換)
クーラント制御冷却水のON/OFFM08(クーラントON)、M09(クーラントOFF)
プログラム制御プログラムの終了やサブプログラム呼び出しM30(プログラム終了)、M98(サブプログラム呼び出し)
その他ワーク固定や安全対策M00(一時停止)、M01(オプションストップ)

Mコードの主な例

主軸を正転で回す
M03 S1500

→ 主軸を正転(時計回り)で1500rpmに設定

工具交換
M06 T2

→ 工具を2番に交換

クーラントON
M08

→ クーラント(冷却水)をONにする

プログラム終了
M30

→ プログラムを終了し、最初に戻る

座標指定(X・Y・Z)

工具がどの位置に移動するかを指定します。
例:X100.0 Y50.0 Z-5.0
この指定により、工作物の座標上で正確な動きを指示できます。

F・S・Tコード

これらは加工条件を定義するための重要なコードです。

コード意味
F送り速度F200(200mm/min)
S主軸回転数S1500(1500rpm)
T工具番号T01(工具1番を使用)

GコードとMコードの違いまとめ

項目Gコード(準備機能)Mコード(補助機能)
役割工具の動作・軌道を制御機械の動作や補助機能を制御
具体的な機能位置決め、直線移動、円弧移動、座標設定主軸制御、工具交換、クーラント制御、プログラム制御
G00(早送り)、G01(直線移動)、G02(円弧補間)M03(主軸正転)、M06(工具交換)、M08(クーラントON)
制御対象機械の「動き」機械の「補助動作」
使用頻度加工動作のため頻繁に使用加工の前後に使用されることが多い

実際のCNCプログラム例

O1000 (プログラム番号)
G21 (ミリメートル単位)
G90 (絶対座標指令)
G54 (ワーク座標系1)
M06 T1 (工具1に交換)
M03 S1200 (主軸正転 1200rpm)
G00 X0 Y0 (早送りで原点移動)
G01 X50 Y50 F200 (送り速度200mm/minで移動)
M08 (クーラントON)
G02 X70 Y70 I10 J0 (時計回りの円弧移動)
G00 Z100 (Z軸を上げる)
M09 (クーラントOFF)
M30 (プログラム終了)

このプログラムの流れ

  1. 単位をミリに設定(G21)
  2. 絶対座標モードを設定(G90)
  3. ワーク座標系1(G54)を適用
  4. 工具を1番に交換(M06)
  5. 主軸を1200rpmで正転(M03 S1200)
  6. 工具をX0, Y0に移動(G00)
  7. 送り速度200mm/minでX50, Y50へ直線移動(G01)
  8. クーラントをONにする(M08)
  9. 円弧移動でX70, Y70へ移動(G02)
  10. 工具を上げる(G00 Z100)
  11. クーラントOFF(M09)
  12. プログラム終了(M30)

まとめ

  • Gコード(準備機能) → 「工具の移動・加工経路を指示する
  • Mコード(補助機能) → 「主軸回転やクーラントなどの機械操作を制御する

CNCプログラムでは、Gコードで「どこにどう動くか」を決め、Mコードで「機械をどう制御するか」を決めるという違いがあります。

タイトルとURLをコピーしました