1. NCプログラムとは
NCとはNumerical Control(ニューメリカルコントロール)の略で、数値制御という意味になります。
NC工作機械は、数値制御で動作する機械なので、この機械をどのような条件でどのように動作させるかを、記号と数値を使用して記したものを、NCプログラムといいます。
多くの記号を、あるルールに沿って羅列するので専門の知識が無ければ作成すること、読み解くことは難しいと思われていますが、ルールさえ理解できればそれほど難しいものではありません。
NC装置メーカーによりいつくかの種類があり、その中でも旋盤系、マシニング系に分かれており、若干の違いがあります。代表的なものとしてファナック、メルダス、ヤスナック、シーメンス、ハイデンハインなどがあります。使用する機械がどこのNCを搭載しているかでプログラムの内容も変わってきますので、確認が必要です。
ここではファナック社製NC旋盤のプログラムを例にしてプログラムをわかりやすく解説します。
2. Gコード、Mコードについて
NCプログラムには、GコードとMコードと呼ばれる記号があります。基本コードは0~99番までになっていますが、機械の構成により3桁まで使用されている場合もあります。
2-1. Gコード
Gコードは、準備機能と呼ばれており、アドレスGに続く数値によって表され、主に加工に関する命令に使用されます。
Gコードには指令すると1回のみ有効なもの(ワンショット)と、同一グループの他のコードが指令されるまで有効になるもの(モーダル)があります。同一グループと言っても難しく考える必要はありません。例えば、“G00早送りで動作しなさい”と“G01切削送りで動作しなさい”では、お互い同時に指令を守ることができません。“G02時計回り円弧補間”と“G03反時計回り円弧補間”を同時に指令しても同時に動作することはできません。
このように動作指令を打ち消すような相対する指令は同一グループになっています。
標準的なGコードはG00~G99まで約70ありますが、その全てを使用する訳ではありません。その中でも良く使用されるものだけをピックアップして覚えておけばプログラムを作成することができます。
下記によく使用するGコードを記します。
G00(位置決め、早送り)
G01(直線補間、切削送り)
G02(円弧補間、時計回り)
G03(円弧補間、反時計回り)
G04(ドウエル)
G28(リファレンス点復帰、機械原点復帰)
G40(刃先r補正キャンセル)
G41(刃先r補正左)
G42(刃先r補正右)
G50(主軸最高回転数設定)
G54(ワーク座標系1選択)
G92(ネジ切りサイクル)
G96(周速一定制御)
G97(周速一定制御キャンセル、回転数一定)
G98(毎分送り)
G99(毎回転送り)
70程ありましたが、最低限必要なものは上記の16程度で済みます。
注意点としてGコードは同じグループ以外であれば1行に複数指令することができます。プログラムを簡単にするための複合固定サイクルというGコードも存在しますが、ここでは、必要最低限のものを抽出しています。
2-2. Mコード
Mコードは、補助機能と呼ばれており、アドレスMに続く数値によって表され、主に機械を動作させる指令に使用されます。
例えば“主軸を正転で回転しなさい”という命令は“M03”になり、“切削油を吐出しなさい”という指令は“M08”になります。Mコードは機械を動作させる指令なので、NC装置というよりは、機械メーカーによってつくられるもので、指令する動作の番号は、機械メーカーによって異なるので注意が必要です。同じファナック製NCでも機械メーカーが違う場合は、同じ番号のMコードでも動作する機器が違うという事になります。
標準的なMコードはM00~M99まで約80ありますが、Gコードと同じようにその全てを使用する訳ではありません。その中でも良く使用されるものだけを抽出して覚えておけばプログラムを作成することができます。
下記によく使用するMコードを記します。機械メーカーにより内容が変わってきますので、ここでは中村留精密工業製のNC旋盤での一例を記します。
M00(プログラム停止)
M01(オプショナルストップ)
M03(主軸正回転起動)
M04(主軸逆回転起動)
M05(主軸回転停止)
M08(切削油吐出)
M09(切削油吐出停止)
M10(チャック閉)
M11(チャック開)
M20(固定エアブロー吐出)
M23(チャンファリング有効)
M24(チャンファリング無効)
M30(リセット&リワインド、プログラム終了)
M41(主軸選択)
M86(主軸固定)
M87(主軸固定解除)
M88(ミーリング正回転)
M89(ミーリング逆回転)
M90(ミーリング回転停止)
M91(C軸選択)
M98(サブプログラム呼び出し)
M99(メインプログラム復帰)
80程あったものが最低限必要なものは22程度で済みます。注意点としてMコードはプログラム1行に1つのみ指令出来ます。1行にいくつものMコードを指令することはできません。
3. 座標系(機械原点と加工原点)
NC旋盤には2つの基準となる原点があります。1つはその機械の基準になる機械原点、もう1つはプログラムを作成する人が自由に決めることができる加工原点です。
プログラムを作成する上で重要になるのは加工原点をどこに設定するかということです。通常は加工端面と主軸中心が交わる点を加工原点に設定します。加工原点の位置は、X0、Z0という座標で表され、X軸は使用する切削工具の刃先位置から主軸中心までの距離を、Z軸は機械原点から加工端面までの距離を形状補正X,Zに設定します。この点を加工原点として刃具を動作させています。通常加工端面をZ0と設定するので、切削を行う際は、Z軸マイナス側に向かって加工します。
サブスピンドル側での加工は、第2工程の加工原点“G55”を設定し、ここを基準にして座標を求めます。機械のZ軸のプラスマイナスはメイン主軸での考え方と変わらず、1つの刃物台で左右の主軸の加工を行うため、Z軸方向のプラスマイナスは反転した考え方になります。つまり、サブスピンドル側で加工する場合のプログラムは、Z軸プラス側に向かって加工します。X軸のプラスマイナスはメイン主軸、サブ主軸共同じになります。
4. まとめ
今回はNC旋盤プログラムのGコード、Mコード、座標系について解説しました。沢山あるように思えるGコード、Mコードは、必要最低限に絞ればかなり少なくなることがお分かり頂けたと思います。
また、加工原点は、NCプログラムの基準となる大変重要な位置です。後に図面に目印を付けておくと良いでしょう。加工原点が変われば、せっかく作成したNCプログラムが全く異なるものになってしまいます。NCプログラムは作成者の思いが機械を段取り、加工する側に正しく伝わることで正しい動作ができるようになります。
次回は、NCプログラムの基本構成、絶対座標と相対座標、座標計算について解説します。