
NCプログラムとは?NC装置とよく使われるNCコードの種類を解説
- 更新日:
- 2022/08/31 (公開日: 2020/04/08 ) 著者: 甲斐 智
NCとは、「NC工作機械」で使われる制御装置です。
NCを使いあらかじめ工作機械に加工プログラムを入力することで、
おなじモノを精度よく加工
することができます。
「機械の仕組みはわかるけど、NCはすこし苦手…」のかたも多いのではないでしょうか。
この記事では、わかりづらいNCの全体像から、「Gコード」や「Mコード」など現場でよく使われるNCコードまで、かんたんに解説しています。

NC工作機械で使われるNCってなに?
NCとは、「NC工作機械」で使われる制御装置です。
NCを使いあらかじめ機械に加工プログラムを入力することで、おなじモノを精度よく加工することができます。
ATC(自動工具交換システム)や、 さまざまな自動化装置と組み合わせることで24時間の無人稼働も可能。
多品種・大量生産の現場には欠かせない装置
です。
最近では高性能のパソコンを搭載したNCや、インターネットにつながるIoT対応のNCなども登場。
NCに人工知能(AI)を搭載した熱変位補正システムなど、さまざまな加工支援プログラムを搭載したNC工作機械も増えています。
NCプログラム:引用元: 一般社団法人 日本機械学会「NCプログラム」
NC装置で制御される工作機械やロボットの動作を指令するプログラム.
通常,アドレスと数値の組合せで構成されるコードで記述され,制御軸に沿った移動量などが与えられる.
機械をコントロールするための装置を「NC装置」、そのNC装置を動かすためのプログラムを「NCプログラム」とよびます。
〈NC〉と〈CNC〉の違い
NCとCNCは、制御装置の種類によって区別されています。
現場ではコンピュータを搭載している〔NC〕も多く、〔CNC〕と厳密なよび分けはされていません。
NCとは

(写真右)5孔テープと8孔テープ ©public domain
この画像は、クリエイティブ・コモンズ(CC BY 3.0)とパブリックドメインのもと再編集されています
NC:数値制御〔Numerically Controlled〕の略
制御装置にトランジスタや演算回路を使ったもので、1950年ごろに登場。
古いNCではプログラムの入力に、穴の空いた紙テープ(パンチシート)を使っていました。
CNCとは

CNC:コンピュータ数値制御〔Computerized Numerically Controlled〕の略
NCの制御装置をコンピュータに置き換えたもので、1980年ごろに登場。
金属加工の現場でよくみかける「制御コントローラ」や「タッチパネル」を備えた装置です。
NC装置について
NC装置は、加工プログラムをもとにNC工作機械の動きを制御するシステムの総称です。
プログラムの順番をコントロールする「シーケンス制御部」や、主軸やテーブルの駆動をコントロールする「サーボ制御部」など、さまざまな機能から構成されています。
NC装置の種類(FANUCや三菱など)

NC装置はメーカーによってさまざまな種類があり、NC装置によって機能や加工効率が変わってきます。
NC装置メーカーによっては、マクロ(プログラムの応用機能)や独自の加工プログラムなど、扱い方が違うため、複数のNC工作機機械を扱う場合には注意が必要です。
代表的なNC装置とメーカー
FANUC(ファナック) | 産業用ロボットやロボドリルで有名な、ファナックのNC装置。 国内シェア70%を誇り、世界中のNC工作機械に採用されています。 |
---|---|
MELDAS(メルダス) | FANUCとシェアを二分する、三菱電機のNC装置。 台湾や中国製のNC工作機械にも多く採用されています。 |
YASNAC(ヤスナック) | 産業用ロボットで有名な、安川電機のNC装置。 NC工作機械だけでなく、生産ラインにも採用されています。 |
OSP | オークマのNC装置。 同社製のNC工作機械に採用されています。 |
マザトロール | ヤマザキマザックのNC装置。 同社製のNC工作機械に採用されています。 |
セロス | DMG森精機のNC装置。 タッチパネルを搭載した次世代のNC装置として注目されています。 |
TOSNUC(トスナック) | 芝浦機械(旧:東芝機械)のNC装置。 同社製の「門形マシニングセンタ」や「5面加工機」に採用されています。 |
SINUMERIK | ドイツの電機メーカー シーメンスのNC装置。 5軸加工技術が進んでいる欧州で、多く採用されています。 |
NC装置の構成

NC装置は、4つの要素から構成されています。
- 1.表示制御部(NC操作パネル)
- 2.数値演算部
- 3.シーケンス制御部
- 4.サーボ制御部(サーボシステム)
1.表示制御部(NC操作パネル)
表示制御部は、オペレーターが操作をするためのパネル部分です。
NCプログラムの入力や編集、加工内容の確認など、さまざまな操作ができます。
Windowを搭載して使いやすさを向上させたオープンCNCや、タッチパネルの操作盤の搭載も増えています。
NC操作パネルの例(一般的なNC旋盤)
引用元:厚生労働省|指導者向けマニュアル 機械加工(数値制御旋盤作業)編
I.ソフトキー | CRT画面の最部のNC機能を選択する |
---|---|
II.リセットキー | アラーム解除など、NC装置のリセットを行う |
III.機能キー | ソフトキーを機能選択キーの状態にする |
IV.アドレスキー | 英字や記号を入力する |
V.数値キー | 数値を入力する |
VI.プログラム編集キー | プログラムの編集やNC装置への入力を行う |
◎パネルのレイアウトや機能は、機種によって異なります
2.数値演算部
数値演算部は、NC装置の頭脳の役割を果たします。
入力されたNCプログラムをコンピュータで演算し、「シーケンス制御部」と「サーボ制御部」に、加工指令を伝達します。
工場内のほかのNC工作機械とつながって情報を共有したり、加工状況のモニタリングもできます。
3.シーケンス制御部
シーケンス制御部は、PLC(プログラマブル・ロジック・コントローラー)の役割を果たします。
「数値演算部」から送られてくる指令をもとに、NC工作機械に搭載されたさまざまなセンサーや周辺機器を正確にコントロールします。
4.サーボ制御部(サーボシステム)
サーボ制御部は、主軸やテーブルの位置・回転・スピードをコントロールするために欠かせない機構です。
「数値演算部」から指令を受け、ACサーボモータ(AC主軸)によって工具や加工ワークを駆動します。

サーボモータの位置や回転速度の検出には「リニアエンコーダー」「ロータリーエンコーダー」などの高精度センサが使われ、その情報はリアルタイムにNCにフィードバックされます。
NC工作機械の高精度加工を実現するため、安定した再現性と応答性が要求されます。
NCプログラムについて

NCプログラムは、NC工作機械を動かすための加工プログラムです。
「コード」とよばれるデータをNC装置に入力し、NC内部のコンピュータが演算をすることで、主軸やテーブルを動かします。
NCプログラムでは、切削条件や加工手順はもちろんのこと、ATC(自動工具交換システム)の交換工具のタイミングや、クーラントのON/OFFなど、さまざまな命令を記述していきます。
NCプログラムの入力方法

NC装置へのプログラムの入力には、オペレーターによる「マニュアル入力」と、PCを使った「デジタル入力」があります。
NC装置に入力されたプログラムは、「数値演算部」のメモリに記憶され、加工にあわせてよびだされます。
操作盤を使ってNC装置へ直接入力する
手書きのNCプログラムを使った方法です。
オペレーターがNC操作パネルに直接キーを打ちこみ、プログラムを入力。
MDI(Manual Data Input)ともよばれ、シンプルな加工や入力済みのNCプログラムの修正でも使われます。
マニュアル操作でむずかしそうに見えますが、対話式CNCを使ったかんたんな方法もあります。
プログラムの初心者でも扱いやすく、5軸加工などの複雑な加工プログラムの計算にも使われます。
CAD/CAMを使ってNC装置へ直接入力する
CAD/CAMを使い、図面から自動でNCプログラムを生成する方法です。
生成したデータは、メモリカード(USB・CFカードなど)や、ネットを使ってNC装置に転送します。
NCプログラムの構成

NCプログラムでは、一回の動作を一行のプログラムで記述。
この一行のプログラムを「ブロック」とよび、ブロックの連続によって加工が進みます。
ブロックは、アルファベットと数字の組み合わせでできています。
1.プログラム番号 | 「O(オー)」からはじまる、1~4ケタの数字です。 NCプログラムを識別するための名前の役割をします。 プログラムのはじまりとおわりには「%」を付けます。 |
---|---|
2.シーケンス番号 | 「N」からはじまる数字の連番です。 ブロックを識別するための名前の役割をします。 何番目のブロックかを、ブロックの行数で表します。 |
3.ワード | プログラムの最小単位です。 ひとつのワードが、ひとつの動作を表しています。 機械の動作内容を指定する「アドレス(アルファベット)」と、さらに具体的な内容を指示する「データ(数値)」の組み合わせでできています。 |
4.EOB (エンドオブブロック) |
ブロックの最後尾に付けられる「;」の文字です。 ブロックが終わったことを知らせるために付けられます。 |
5.ブロック | 実際に機械を動かすためのプログラムです。 一行につき、一回の動作の命令が記述されています。 上から下へ一行ずつブロックの命令が処理されていきます。 |
NCプログラムの事例
かんたんなNCプログラムの実例をもとに、コードの内容を一行ずつ解説します。
O0001 | プログラム番号0001をよびだし |
N1 T03 M06 ; | ATCで番号3番の工具をよびだし工具を交換 |
N2 G90 G54 G00 X0. Y0. ; | 主軸のスタート座標を、X軸0・Y軸0 に設定 |
N3 S1000 M03 ; | 主軸の回転速度を1000minに設定し回転 |
N4 M08 ; | クーラントを供給 |
N5 G00 Z100. ; | Z軸(工具)の座標を100に設定 |
N6 G91 G00 Z-95. ; | Z軸(工具)を95mm下に送る(切削はじめ) |
N7 G01 Z-5. F200 ; | Z軸(工具)を、送り速度200m/minで5mm下に送る(切削) |
N8 G00 Z100. ; | Z軸(工具)を、100mm上に送る(切削終了) |
N9 M09 ; | クーラントの供給を停止 |
N10 M05 ; | 主軸の回転を停止 |
N11 M30 ; | プログラムを終了 |
NCプログラムのコード

NCプログラムで使われる代表的なコードと、使用例について紹介します。
※実際のコードはNC装置メーカーによってことなります。参考資料としてご覧ください。
Gコードについて
Gコードは「準備機能」ともよばれ、NCプログラムのなかでも一番使われるコードです。
(Gは、ジェネラル・ファンクションの頭文字)
Gと2ケタの数字の組み合わせで、座標の設定や主軸の回転、テーブルの駆動速度などを制御します。
〈代表的なGコード〉
G00 X□□□ Y□□□ Z□□□ |
主軸を指定した座標(XYZ)に、早送りで移動させるコードです 主軸をつぎの加工点に移動させるときに使います |
G01 X□□□ Y□□□ Z□□□ | 主軸を指定した座標(XYZ)に、移動させるコードです 切削中の主軸の移動に使います 末尾に(F□□□)を付けることで、移動速度を指定します |
G02、G03 | 曲線の切削加工で使うコードです 主軸を曲線状に動かすことができます G02は右まわり、G03は左まわりになります |
G04 P□□□ | ドウェルとよばれるコードです つぎのプログラムの実行を、指定の時間だけ遅らせます ドリルの穴底での仕上げや、タッチプローブなどのセンサの反応速度に余裕を持たせるために使われます |
G28 | 工具の原点復帰で使うコードです ワークの交換や切粉の除去など、素早く工具を逃すときに使われます |
G40〜G42 | NC旋盤のノーズR補正(刃先R補正)で使われるコードです |
G50 | 主軸の最高回転数を指令するコードです |
G54〜G59 | 登録されたワーク原点(ワーク座標系)をよびだします |
G92 X□□□ Y□□□ Z□□□ | ワーク座標を設定するためのコードです 工具の先端が、指定した座標(XYZ)に設定されます |
Mコードについて
Mコードは「補助機能」ともよばれ、移動以外の指令をサポートするコードです。
(Mは、ミセレイニアス・ファンクションの頭文字です)
Mと2ケタの数字の組み合わせで、主軸の回転や、ATCによる工具交換・クーラントのON/OFFなどを制御します。
〈代表的なMコード〉
M00(プログラムストップ) | プログラムの実行を一時的に停止するコードです 主軸やクーラントなどをすべて停止させ、加工ワークの状態をチェックすることができます 起動スイッチを押すことで、加工を再開します |
M01 (オプショナルストップ) | NC操作盤のオプショナルストップスイッチをONにした場合、M00とおなじようにプログラムを一時的に停止します 加工状況にあわせて、加工停止の有無を自由に決めることができます |
M03(主軸回転) | 主軸を回転(時計まわり)させるコードです |
M04(主軸回転) | 主軸を回転(反時計まわり)させるコードです |
M05(主軸停止) | 主軸を回転を停止させるコードです |
M06(工具交換) | ATC(工具自動交換システム)から、工具をよびだし交換します |
M08(クーラントON) | クーラントを供給します |
M09(クーラントOFF) | クーラントの供給を停止します |
M30(プログラム終了) | プログラムのおわりを知らせるコードです 機械の運転が停止し、加工が終了します |
Sコードについて
Sコードは「主軸の回転速度をコントロール」するコードです。
(Sは、スピンドル・スピード・ファンクションの頭文字です)
Sと2~4ケタの数字の組み合わせで、主軸の回転速度を決めます。
〈Sコードの使用例〉
S1000 M03 ; | 主軸の回転速度を1000min(1分間に1000回転)に設定し、主軸を回転(時計まわり)させます |
Tコードについて
Tコードは、ATC(工具自動交換システム)の「工具を選択」するコードです。
(Tは、ツール・ファンクションの頭文字です)
Tと2ケタの数字の組み合わせで、使用する工具を指定します。
〈Tコードの使用例〉
T03 M06 ; | ATCで番号3番の工具をよびだし、工具を交換します |
Fコードについて
Fコードは、主軸やテーブルの「送り速度をコントロール」するコードです。
(Fは、フィード・ファンクションの頭文字です)
Fとの数字の組み合わせで、送り速度を決めます。
〈Fコードの使用例〉
G01 Z-100. F500 ; | 主軸を、送り速度500m/minで100mm下に送ります |
マクロについて
マクロでは、一般的なプログラムでもよく使われる「if 構文」などを使うことができます。
マクロを使うことで、「タッチプローブでワークを計測し、指定の寸法に削れてなければ追加工する」など、NCプログラムをさまざまな条件に応じて自動で使い分けることが可能になります。
数値に「変数」を使うことで、おなじプログラムをさまざまな加工に使い回すこともできます。
NCの原点(機械原点とワーク原点)について

NCプログラムによる動作(X・Y・Z)の基準となる原点には、「機械原点」「ワーク原点」のふたつがあります。
NCの機械原点
NC工作機械の本体にあらかじめ設定された原点です。
すべての動作の始動基準点となります。
工作機械の各軸に内蔵されたリニアスケールを読みとり、NCにフィードバックすることで原点を認識します。
NCのワーク原点
NCプログラムで作成する、ユーザーの任意の基準点です。
「プログラム原点」や「加工原点」ともよばれます。
マシニングセンタの加工ワークの中心や、NC旋盤の加工ワークの端面を加工基準点として設定します。
ワーク原点(ワーク座標系)は、G54~G59に複数登録することで、ワークの交換や段取りをスムーズに行うことができます。
CAD/CAMとCAEについて

NCプログラムをコンピュータで作成するためには、CAD/CAMとCAEがかかせません。
それぞれの違いについて、かんたんに解説します。
CAD(キャド)とは
引用元:ポリテクセンター長野|3次元CAD(SolidWorks)
CADは「Computer Aided Design」の略で、図面や設計データを作成するためのソフトウェアです。
ひとむかし前には、ドラフターとよばれる手書き用の製図台が使われていましたが、現在ではほとんどの設計にCADが使われています。
金属加工の現場では、加工後の仕上がりが確認しやすい「3次元CAD」が多く使われています。
CAM(キャム)とは
CAMは「Computer Aided Manufacturing」の略で、CADデータを実際のNCプログラムに変換するためのソフトウェアです。
CADの完成予想図だけでは、加工をするこはできません。
CADの図面データをもとに、実際の工具の切削経路(カッターパス)や加工順序、使用工具を決めるのが、CAMの役割です。
性能の高いCAMを使うことで、切削工程を減らしたり、複雑な部分の高精度加工ができるようになります。
高価な工作機械の主軸とジグやワークとの衝突など防ぐために「加工シミュレーション」機能を搭載したものもあります。
CADと一体となったソフトウェアが多く、CAD/CAMとよばれます。
CAE(シーエーイー)とは
CAEは「Computer Aided Engineering」の略で、設計した製品のシミュレーションをするソフトウェアです。
設計データをもとに、耐久試験や特性をシミュレーションし解析します。
切削をする前にさまざまな構造上の欠点を見つけることで、試作のムダをなくしたり、加工不良を未然に防ぐことができます。
PLM(プロダクト・ライフサイクル・マネージメント)について
引用元:株式会社NTTデータMHIシステムズ|PLMとは
PLMは、プロダクト・ライフサイクル・マネージメント(Product Lifecycle Management)の略で、設計・製造から最終的なトレーサビリティーまで、製品ライフサイクルを通して一元管理していく新しい概念です。
PLMではCAD/CAM/CAEのデータと、生産管理(ERP)や顧客管理(CRM)などの基幹システムを連携させることで、拠点間での情報共有を行います。
CAD/CAM/CAEの導入時には、PLMとの連携も視野に入れることがポイントとなっています。
NC工作機械で使われるNCとは?まとめ
この記事では、わかりづらいNCの全体像から、GコードやMコードなど現場でよく使われるNCコードまで、かんたんに解説しました。
すこしむずかしそうなNCですが、基本さえわかれば現場の工作機械の動きもすこしずつわかるようになり楽しさも倍増します。
本記事が、NCプログラムのはじめの一歩となればうれしいです。