はじめの工作機械 > 工作機械がわかる > NCプログラム〈初歩〉|NC制御・NC装置と「NCコード」をさくっと解説
NCプログラム〈初歩〉|NC制御・NC装置と「NCコード」をさくっと解説

NCプログラム〈初歩〉|NC制御・NC装置と「NCコード」をさくっと解説

公開日:
2020/04/08(2020/09/28 更新)by 甲斐 智
関連キーワード:
| 周辺機器 | 除去加工 |

NCとは、「NC工作機械」で使われる制御装置です。
NCを使いあらかじめ工作機械に加工プログラムを入力することで、おなじモノを精度よく加工することができます。

「機械の仕組みはわかるけど、NCはすこし苦手…」のかたも多いのではないでしょうか。

この記事では、わかりづらいNCの全体像から、「Gコード」や「Mコード」など現場でよく使われるNCコードまで、かんたんに解説しています。

NCプログラミングの経験のないエンジニアでも、NCの仕組みと基本的なNCコードがわかるようになります。

NC工作機械で使われるNCってなに?

NCとは、「NC工作機械」で使われる制御装置です。
NCを使いあらかじめ機械に加工プログラムを入力することで、おなじモノを精度よく加工することができます。

ATC(自動工具交換システム)や、 さまざまな自動化装置と組み合わせることで24時間の無人稼働も可能。
多品種・大量生産の現場にはかかせない装置です。

最近では、高性能のパソコンを搭載したNCや、インターネットにつながるIoT対応のNCなども登場し、加工の効率化と精度向上が進んでいます。

NCプログラム:
NC装置で制御される工作機械やロボットの動作を指令するプログラム.
通常,アドレスと数値の組合せで構成されるコードで記述され,制御軸に沿った移動量などが与えられる.
引用元: 一般社団法人 日本機械学会「NCプログラム」

機械をコントロールするための装置を「NC装置」、そのNC装置を動かすためのプログラムを「NCプログラム」とよびます。

〈NC〉と〈CNC〉のちがい

NCとCNCは、制御装置の種類によって区別されています。
現場ではコンピュータを搭載している〔NC〕も多く、〔CNC〕と厳密なよび分けはされていません。

NCとは

工作機械とNCプログラムについて|NCとは
(写真左)紙テープ読取装置を装備したCNCマシン ©CC BY 3.0
(写真右)5孔テープと8孔テープ ©public domain
この画像は、クリエイティブ・コモンズ(CC BY 3.0)とパブリックドメインのもと再編集されています

NC:数値制御〔Numerically Controlled〕の略

制御装置にトランジスタや演算回路を使ったもので、1950年ごろに登場。
古いNCではプログラムの入力に、穴の空いた紙テープ(パンチシート)を使っていました。

CNCとは

工作機械とNCプログラムについて|CNCとは

CNC:コンピュータ数値制御〔Computerized Numerically Controlled〕の略

NCの制御装置をコンピュータに置き換えたもので、1980年ごろに登場。
金属加工の現場でよくみかける「制御コントローラ」や「タッチパネル」を備えた装置です。

NC装置について

NC装置は、加工プログラムをもとにNC工作機械の動きを制御するシステムの総称です。

プログラムの順番をコントロールする「シーケンス制御部」や、主軸やテーブルの駆動をコントロールする「サーボ制御部」など、さまざまな機能から構成されています。

NC装置の種類(FANUCや三菱など)

工作機械と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プログラムについて|NC装置の構成

NC装置は、4つの要素から構成されています。

1.表示制御部

表示制御部は、オペレーターが操作をするためのパネル部分です。
NCプログラムの入力や編集、加工内容の確認など、さまざまな操作ができます。

Windowを搭載して使いやすさを向上させたオープンCNCや、タッチパネルの操作盤の搭載も増えています。

2.数値演算部

数値演算部は、NC装置の頭脳の役割を果たします。
入力されたNCプログラムをコンピュータで演算し、「シーケンス制御部」と「サーボ制御部」に、加工指令を伝達します。

工場内のほかのNC工作機械とつながって情報を共有したり、加工状況のモニタリングもできます。

3.シーケンス制御部

シーケンス制御部は、PLC(プログラマブル・ロジック・コントローラー)の役割を果たします。

「数値演算部」から送られてくる指令をもとに、NC工作機械に搭載されたさまざまなセンサーや周辺機器を正確にコントロールします。

4.サーボ制御部

サーボ制御部は、サーボモーターを制御する役割を果たします。

「数値演算部」から送られてくる指令をもとに、サーボモーターの回転や速度を正確にコントロールすることで、NC工作機械の主軸やテーブルを駆動させます。

NCプログラムについて

NCプログラムは、NC工作機械を動かすための加工プログラムです。

「コード」とよばれるデータをNC装置に入力し、NC内部のコンピュータが演算をすることで、主軸やテーブルを動かします。

NCプログラムでは、切削条件や加工手順はもちろんのこと、ATC(自動工具交換システム)の交換工具のタイミングや、クーラントのON/OFFなど、さまざまな命令を記述していきます。

NCプログラムの入力方法

工作機械とNCプログラムについて|NCプログラムの入力方法

NC装置へのプログラムの入力には、オペレーターによる「マニュアル入力」と、PCを使った「デジタル入力」があります。

NC装置に入力されたプログラムは、「数値演算部」のメモリに記憶され、加工にあわせてよびだされます。

操作盤を使ってNC装置へ直接入力する

手書きのNCプログラムを使った方法です。

オペレーターが操作パネルに直接キーを打ちこみ、プログラムを入力。
MDI(Manual Data Input)ともよばれ、シンプルな加工や入力済みのNCプログラムの修正でも使われます。

マニュアル操作でむずかしそうに見えますが、対話式CNCを使ったかんたんな方法もあります。

対話式CNCってなに?
対話式CNCでは、オペーレータが操作画面に従い加工条件や寸法を入力していくだけで、複雑なNCプログラムを自動で作成することができます。
プログラムの初心者でも扱いやすく、5軸加工などの複雑な加工プログラムの計算にも使われます。

CAD/CAMを使ってNC装置へ直接入力する

CAD/CAMを使い、図面から自動でNCプログラムを生成する方法です。
生成したデータは、メモリカード(USB・CFカードなど)や、ネットを使ってNC装置に転送します。

NCプログラムの構成

工作機械と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プログラムのコード

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 工具の原点復帰で使うコードです
ワークの交換や切粉の除去など、素早く工具を逃すときに使われます
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プログラムについて|CAD/CAMとCAEについて

NCプログラムによる動作(X・Y・Z)の基準となる原点には、「機械原点」「ワーク原点」のふたつがあります。

NCの機械原点

NC工作機械の本体にあらかじめ設定された原点です。
すべての動作の始動基準点となります。

工作機械の各軸に内蔵されたリニアスケールを読みとり、NCにフィードバックすることで原点を認識します。

NCのワーク原点

NCプログラムで作成する、ユーザーの任意の基準点です。
「プログラム原点」や「加工原点」ともよばれます。

マシニングセンタの加工ワークの中心や、NC旋盤の加工ワークの端面を加工基準点として設定します。

ワーク原点(ワーク座標系)は、G54~G59に複数登録することで、ワークの交換や段取りをスムーズに行うことができます。

CAD/CAMとCAEについて

工作機械とNCプログラムについて|CAD/CAMとCAEについて

NCプログラムをコンピュータで作成するためには、CAD/CAMとCAEがかかせません。
それぞれのちがいについて、かんたんに解説します。

CAD(キャド)とは

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」の略で、設計した製品のシミュレーションをするソフトウェアです。
設計データをもとに、耐久試験や特性をシミュレーションし解析します。

切削をする前にさまざまな構造上の欠点を見つけることで、試作のムダをなくしたり、加工不良を未然に防ぐことができます。

NC工作機械で使われるNCとは?まとめ

この記事では、わかりづらいNCの全体像から、GコードやMコードなど現場でよく使われるNCコードまで、かんたんに解説しました。

すこしむずかしそうなNCですが、基本さえわかれば現場の工作機械の動きもすこしずつわかるようになり楽しさも倍増します。

本記事が、NCプログラムのはじめの一歩となればうれしいです。

この記事(NCプログラム)の編集者

甲 斐 智(KAI Satoshi)

甲 斐 智(KAI Satoshi)

1979年 神戸生まれ
多摩美術大学修了後、工作機械周辺機器メーカーの販売促進部門
14年以上に渡り、工作機械業界・FA業界のWebマーケティングに携わる

・株式会社モノト 代表
・株式会社アプト Webディレクター
・一般社団法人日本機械学会 特別員
・東京商工会議所

NCプログラムとあわせて読みたい

NCプログラムの関連キーワード

周辺機器 除去加工