CNCプログラミングの基礎: GコードとMコードの必須知識
CNC(Computer Numerical Control:コンピュータ数値制御)という言葉から工作機械を連想しがちですが、現代では産業用ロボットやコンピュータ制御測定機もCNCマシンの範疇に入ります。
1952年、航空産業における精密部品加工の必要性から、ジョン・T・パーソンズがIBMとMITと共同で初のCNCフライス盤を開発しました。以来、スマートな産業生産が普及し、CNC加工が全産業で利用可能になるとともに、CNCプログラミング言語であるGコードとMコードが普及・発展しました。
GコードとMコードとは?
CNC工作機械の70年史において、G/Mコード以外にも多様なプログラミング言語が用いられてきました。パーソンズの試作機は穿孔テープでプログラミングされ、1956年にはCNC加工専用のAPT言語が開発されました。RS-274(通称Gコード)も同時期に誕生し、APT言語(工具位置・幾何データ、主軸回転・冷却など非幾何機能を含む)をベースに、プログラムをより短く、機械制御ユニット(MCU)にとって扱いやすくする微修正が加えられました。
| APT | Gコード / Mコード |
|---|---|
| GO TO {X, Y, Z} | G1, G2, G3 {X, Y, Z} |
| FEDRAT | F |
| SPINDLE CW / CCW | S M3 / M4 |
| COOLNT ON / OFF | M8 / M9 |
| FINI | M30 |
RS-274は主にG機能(Gコード)で構成されるため「Gコード」と呼ばれますが、同等に重要なM機能(Mコード)も含みます。以下3点を明確に定義します。
- Gコードとは何か?
- Mコードとは何か?
- GコードとMコードの違いは?
Gコードとは?
Gコード(G機能)は、Mコードとは異なり、主に「幾何(Geometry)」に関わる機能です。座標系選択、加工平面選択、プログラミング単位、絶対/インクリメンタルモード、早送り・切削送りでの工具移動などが含まれます。
Mコードとは?
Mコード(M機能)は「機械(Machine)」の操作に関わる機能です。主軸の正転/逆転/停止、クーラントON/OFF、自動工具交換(ATC)などが含まれます。
GコードとMコードの違い
Gコードは「工具がワークに対してどう動くか(幾何)」を、Mコードは「機械が加工中に何をするか(機械動作)」を定義します。
RS-274には主要なG/Mコードの他、以下の補助機能も含まれます。
- X, Y, Z – 位置決め座標
- I, J, K – 始点から円中心までの距離ベクトル
- F – 補間速度(送り速度)
- S – 主軸回転数
- T – 工具番号
- H – 工具長補正番号
- D – 工具半径補正番号
基本Gコード一覧
| 主要機能 | 説明 | 補助機能 |
|---|---|---|
| G0 | 高速位置決め(直線) | X, Y, Z |
| G1 | 直線補間(切削送り) | X, Y, Z, F |
| G2 | 時計回り円弧補間 | X, Y, Z, I, J, K, F |
| G3 | 反時計回り円弧補間 | X, Y, Z, I, J, K, F |
例 1:
G1 X10 Y50 F100 → 工具が直線で目標点(X=10, Y=50)へ、送り速度100mm/minで移動
G2 X10 Y50 I10 J40 F100 → 工具が時計回り円弧で目標点(X=10, Y=50)へ、送り100mm/min。円中心は始点から相対的にX+10, Y+40
G02 X50 Y10 I40 J-10 F75 → 時計回り円弧で(X=50, Y=10)へ、送り75mm/min。円中心は始点からX+40, Y-10
| 主要機能 | 説明 | 補助機能 |
|---|---|---|
| G17 | XY平面選択 | – |
| G18 | ZX平面選択 | – |
| G19 | YZ平面選択 | – |
| G20 | 単位:インチ | – |
| G21 | 単位:ミリメートル | – |
| G41 | 工具半径補正・左 | D, X, Y, Z |
| G42 | 工具半径補正・右 | D, X, Y, Z |
| G40 | 工具半径補正・キャンセル | – |
| G43 | 工具長補正・正 | H, Z |
| G49 | 工具長補正・キャンセル | – |
| G54 | 機械座標系 | – |
| G55–G59 | ワーク座標系(1〜5) | – |
例 2:
G21 G17 G55 → 単位mm、XY平面、G55ワーク座標系を選択
G43 H1 Z100 → 工具長補正H1を有効化し、Z=100へ移動(H1は機械メモリに保存された工具長オフセット値)
G41 D1 X15 → 工具半径補正左D1を有効化し、X=15へ移動。移動中に左へオフセットし、到達時に補正完了(D1は工具半径オフセット値)
G40 G49 → 工具半径補正キャンセル、工具長補正キャンセル
| 主要機能 | 説明 | 補助機能 |
|---|---|---|
| G90 | 絶対プログラミング:ワーク座標系原点基準 | – |
| G91 | インクリメンタルプログラミング:現在位置基準 | – |
基本Mコード一覧
| 主要機能 | 説明 | 補助機能 |
|---|---|---|
| M00 | プログラム停止 | – |
| M03 | 主軸正転(時計回り) | S |
| M04 | 主軸逆転(反時計回り) | S |
| M05 | 主軸停止 | – |
| M06 | 自動工具交換(ATC) | T |
| M08 | クーラントON | – |
| M09 | クーラントOFF | – |
| M30 | プログラム終了・リセット | – |
| M98 | サブプログラム呼び出し | サブプログラム名 |
| M99 | サブプログラム復帰 | – |
CNC工作機械のプログラミング方法
CNCプログラミングは、加工対象部品の幾何・技術データを英数字形式(G/Mコード)で記述することですが、機械メーカーが行うもう一つのレベルのプログラミング(PLC等)も存在します。
Gコードによるプログラミングは基本的に「文(ブロック)」単位で、前節の例のようにG機能の文を解釈・実行します。CNCプログラミング(G/Mコード生成)には主に3つの方法があります。
- 手動プログラミング
- マシン上でのプログラミング(操作盤プログラミング)
- CAD/CAMシステムを用いたプログラミング
手動プログラミング
プログラマーが自らの知識・経験、機械・工具・アクセサリ・加工条件等の情報、プログラミングマニュアルに基づき、幾何・技術情報を手書きでアルファベット数値プログラムとして記述します。基本活動は:
- 加工工程・基準・工具計画の策定
- 図面から幾何情報を読み取り、工具パスを計画
- 工具を選定し、加工順序に従ってブロックに配置
- プログラムシート(Gコード)として記述・完成
- 制御装置メモリへ転送
マシン上でのプログラミング(操作盤プログラミング)
CNC導入初期からMDI(手動データ入力)モードで機械上での即時プログラミングは可能でしたが、ここではより高度な「対話型プログラミング」を指します。対応制御装置は追加機能を統合し、従来のGコード記述を不要にします。オペレータと制御装置がキーボードとGUIで対話し、簡単な輪郭や定型サイクルを生成。制御装置が内部で工具パス計算を行い、自動的にGコードを生成します。
CAD/CAMシステムを用いたプログラミング
航空宇宙・防衛等で扱われる複雑な自由曲面(2次曲面)は多軸加工(3/4/5軸)を要し、手書きでは数千ブロックにもなり非現実的です。コンピュータによる技術準備、すなわちCAD/CAMを用いたNCプログラミングが必須となりました。
CAD/CAM統合により、幾何定義はソフトウェアが担うためプログラミングが大幅に簡素化されました。プログラマーはシステムと対話しながら、把持・基準決め・クランプ・切削工具・加工条件などの技術情報を付与します。CAPP(工程計画支援)との統合も進んでいます。
CAD/CAM環境でのプログラミング手順:
- CADモデルの作成
- CAM戦略による工程計画、工具パス計算、CL(カッターロケーション)ファイル生成
- 工具パス・切削シミュレーションによる検証、エラー・干渉チェック
- ポストプロセッサでCLファイルを対象機械用のGコードに変換
- Gコードを制御装置へ転送。工具・ワーク準備、ワーク取付・基準出し
- 加工条件・速度・加速度の確認(加工品質に大きく影響)
- 工作機械でのワーク加工
結論
今日ではG/Mコードを直接書かないプログラミング手法(対話型、CAD/CAM)が主流ですが、特殊な状況では手動プログラミングが必要になるため、プログラマーはG/Mコードを理解しておくべきです。G/Mコードは汎用的で、基本を押さえれば機種ごとの微細な構文差はすぐに習得できます。
専門のCNCプログラマー探しでお悩みですか?WayKenはCNC加工業界で20年以上の実績を持つメーカーで、先進製造技術と経験豊富なCNCエンジニアがあなたの製品設計ニーズにお応えします。今すぐお見積りを!
CNCマシン
- CNC工作機械:生産性向上、コスト削減、精度確保
- Gコード・Mコード完全マスター:CNCプログラミング総合ガイド
- GコードとMコードの違いを理解する:CNCオペレーター必須の基礎知識
- Gコード・Mコード完全ガイド:CNCプログラミングの基礎をマスター
- CNC Gコード解説:CNCプログラマー必須の基礎知識
- CNC缶サイクルのメリット・デメリット:効率的加工への活用指針
- CNCプログラミングのマスター: 原則、応用、Gコードの完全習得
- CNCプログラミング技法マスター: 実践的手法とインサイダー戦略
- ハース CNC マニュアル無料ダウンロード ― プログラミング、メンテナンス、安全ガイド
- Fanuc G71荒取り旋削サイクルをマスター:CNC旋盤コード例
- CNCプログラミング基礎:ステップバイステップ チュートリアル & サンプルコード