この記事は
- NCプログラムって取説を見ても、よくわからない!
- とりあえず機械を動かせるようになりたい!
- 東芝(TOSNUC トスナック)の機械はじめて使う!
そんな人にNCプログラムをわかりやすく解説します。
この記事を読むと、簡単なのNCプログラム(TOSNUC)を自分で作れるようになります。
NCは、数値制御という意味の英語「Numerical Control」の頭文字をとったものです。
CNCは、コンピュータ数値制御のことです。最近の工作機械はCNCになりますが、当サイトではNCで統一します。
NC言語について
NC言語はNC工作機械を動かすためのプログラミング言語です。
NC装置のメーカーや製造時期によっても違うので個別に覚える必要があります。
シリーズやバージョンにより、少しNCプログラムの記述方法が違います。
お使いの工作機械のNC装置の取扱説明書を必ず確認してください。
ワード
NC言語はアルファベットと数値の組合せて1つの命令になります。
アルファベットをアドレス、数値をデータと呼びます。
アドレスとデータをあわせて、「ワード」ができます。
(例) G91
「G」→アドレス 「91」→データ 「G91」→ワード になります。
アドレスに使うアルファベット
アドレスは用途にって決まっています。
アドレス | 用途 |
$ | プログラム名 |
N | シーケンスナンバー |
G | 準備機能 |
M | 補助機能 |
X Y Z | ディメンションアドレス |
F | 送り機能 |
S | 主軸機能 |
T | 工具機能 |
D H | 補正機能 |
P R Q | その他 |
ブロック
G57 H901 G0 G90 X100 Y-50.6 G43 Z100 H60 M30
4行のプログラムですが、この行のことをNC言語では「ブロック」と呼びます。
ブロックは1つ以上のワードで作られてます。
とりあえず、これだけは覚えよう!「最低限必要なのNCプロクラムコード」
機械を動かすそう!
機械を動かすときは、次の内容を決める必要があります。
- 原点(基準の位置)
- G53 加工原点(フィクチャオフセット)キャンセル
- G57 H901~ 加工原点を指定します。
- 動かすモード(削るか 削らないか)
- G0 削らないとき 早送り
- G1 直線で削るとき 切削送り
- 位置指令のモード(絶対値か 相対値か)
- G90 絶対値指令 原点からの位置
- G91 相対値指令 現在地からの距離
- 位置指令(ディメンションアドレスとデータ)
- 移動させるX Y Z の位置
プログラム例
G57 H901 G0 G90 X100 Y100
「原点 オフセット H901 を使って、早送りで、絶対値で座標X100 Y100 に移動しなさい。」という意味になります。
G57H901、G90、 G0 はいずれも一度指令されると同じグループのGコードが指令されるまで保持されます。これを「モーダル」と呼びます。この機能により同じコード何度も記述の必要がありません。
G0 G90 X100 Y100G0 G90X125 Y135 上のブロックで指令があるので省略できる
穴をあけるなら!
穴の加工には「固定サイクル」が用意されています。
主なものを挙げます。
- G81 単純な穴加工
G81 Z-10. R3. F100 - G87 高速で深い穴の加工(切りくずを切る動きをする)
G87 Z-25. R3. Q3. F100 - G83 深い穴の加工(切りくずを切る動きをする)
G83 Z-50. R3. Q3. F100 - G84 タップの加工
G84 Z-25. R3. F300 - 同期タップの場合
M843
G84 Z-25. R3. F300
M845
- 同期タップの場合
固定サイクルは「モーダルなGコード」なので、下のブロックに座標位置を記述すれば穴の加工を繰り返してくれます。「G80」でキャンセルされます。
G53 G57 H901 G0 G90 X100 Y100 Z100 S1000 M3 G98 G81 Z-5 R5 F100 X200 X400 Y200 G80 M5
最初の G53 は フィクチャオフセットがキャンセルされ原点は機械座標の原点になります。
2行目でフィクチャオフセット H901 が選択されます。
上のプログラム例だと
- X100 Y100
- X200 Y100
- X400 Y200
3か所にG81の加工をします。
「ノーサイクル G100」について説明します。
G53
G57 H901
G0 G90 X100 Y100
Z100
S1000M3
G98 G100 G81 Z-5 R5 F100
X200
X400 Y200
G80
上のプログラム例は固定サイクルの前に「G100 」というワードを加えました。
最初のX100 Y100 の位置では「ノーサイクル G100」が働きG81の加工しません。
- X200 Y100
- X400 Y200
2か所にG81の加工をします。
固定サイクルの注意点
コード | 説明 |
G98 | イニシャル点復帰(初期) |
G99 | R点復帰 |
G98 はイニシャル点復帰です。イニシャル点とは、固定サイクルを読み込んだ時点のZ座標になります。上のプログラム例だと Z100 がイニシャル点で固定サイクル終了するたびに Z100 に戻ります。
加工時間を短縮したいが場合は G99 のR点(レファレンス点)復帰を使います。押さえなど干渉に注意して使います。
補正機能を使おう!
工具の長さや工具の径は変化することが多いので補正機能を使うことにより同じプログラムを使うことができます。
原点 G57 H901~ も補正機能(オフセット)の1つです。
NCの工作機械は不変的な機械座標系があります。ワークをセットする場合、毎回取り付け位置が変わります。それを補正するワーク座標系(原点 H901~)の設定です。
同様に工具の長さは工具により違います。その補正機能が工具長補正「G43」です。工具の長さを測定してあらかじめ「H番号」に設定しておきます。
G57 H901 G0 G90 X0 Y0 G43 Z100 H10 工具長補正機能 H10の補正
また、中ぐり盤でW軸がある機械では、GコードG173を使うとクイルの繰り出し量を補正できます。G173W-100
工具径は工具径補正機能でGコードは「G41又は G42」で、工具径の値を「D番号」に設定しておきます。「G40」でキャンセルされます。
G41は進行方向に対して左側補正、G42は進行方向に対して右側補正です。ダウンカット(正転M3の時はG41)をオススメします。
G0 G90 X-20 Y15 Z-10. G1 G41 X0. Y-5 D10 F1000 工具径補正 ON D10の補正 X5 Y0 G40 X25 Y20 工具径補正 OFF
補正番号は工具番号「T」と揃えるのが一般的です。
サブプログラムを使おう!
同じプログラムを繰り返すときは「サブプログラム」を使うと効率的にプログラムを作れます。
- G72 $[プログラム名] ,L [繰り返し回数] (繰り返さないときは [L1] 省略可)
- M30 サブプログラムエンド (メインプログラム中のM30はプログラム終了)
G57 H901 原点オフセットH901番を選択 G0 G90 X60 Y20 加工スタート位置に移動 G43 Z100 H21 Z位置決め(工具長補正) S500 M3 回転数500 正転 Z10 加工開始高さ G72 $101,L5 サブプログラム呼び出し G0 Z100 M5 回転停止 M30 プログラム終了 $101 プログラム名 (サブプログラム) G1 G91 Z-2F300 切込 G90 X160 F500 加工経路 G0 G91 Z20 G90 X-60 スタート位置へ戻す G91 Z-20 G90 M30 サブプログラムでM30を読み込むとメインへ戻ります
上のプログラムは Z8 Z6 Z4 Z2 Z0 で5回サブプログラムを実行します。
プログラムが短くて済みますね。注意
サブプログラムを繰り返すときは、サブプログラム内でスタート位置に戻してください。
次は穴加工の例です。
G53 G57 H901 T1 M6 工具交換 N10 (CENTER) シーケンス番号(コメント) G0 G90 X0 Y0 G43 Z100 H1 S1000 M3 ; G98 G100 G81 Z-2 R3 F100 G72 $201 サブプログラム G80 M5 T2 M6 工具交換 N20 (DRILL) シーケンス番号(コメント) G0 G90 X0 Y0 G43 Z100 H2 S1200 M3 G98 G100 G83 Z-20 R3 Q3 F120 G72 $201 サブプログラム G80 M5 M30 ; $201 サブプログラム X10 Y20 X20 Y25 X-30 Y-31 M30
穴位置を入れるため穴加工でもサブプログラムはよく使います。
サブプログラムのメリット
- NCプログラムが短くできる。
- NCプログラムの確認が少なくできる。
- NCプログラムの記述ミスの簡単に直せる。
まとめ
NCプログラムは、
- アドレスとデータをセットにして意味を持つ「ワード」ができます。
- ワードを1つ以上並べ「ブロック」を作りる。TOSUNUCの場合はブロックは改行単位になります。
- NCのプログラムはブロック単位で実行されます。
実際にNCプログラムを打ち込むとなると難しいと思います。基本的には以下の順番で記述すればOKです。
工具交換
↓
加工開始位置に移動
↓
加工開始
↓
終了、または工具交換
これを終わるまで繰り返します。
工具交換は
T_
M6
加工開始位置は
G57H_
G0G90X100Y20
G43Z100H_
加工開始するときは
S_M3
穴の加工なら G81などの固定サイクル
同じ工具経路を繰り返すならサブプログラムを使いましょう。
工具交換の前は必ずキャンセルしましょう。
G80 穴加工キャンセル
G40 径補正キャンセル
この手順でNCプログラムを作って行きます。
ザックリとした説明ですが、いかがでしたか?
基本を押さえたら実践あるのみです。
参考にしていただければ幸いです。