NCプログラムは、通常GコードとMコードを組み合わせて作成します。
どちらもプログラムに必要ですが、役割が少し異なります。
Gコードが、加工時の工具の動きを指令するのに対し、Mコードは機械側の制御に関する指令になります。
Mコード一覧
Mコードは、メーカー独自のものもあるので一般的なものだけ説明します。
M00(プログラムストップ|一時停止)
主軸の回転や送りを止め、機械を一時停止させます。
加工中に寸法確認を行ったり、工具の状態をチェックする際に使用する事が多いです。
起動ボタンを押せば、再スタートできます。
M01(オプショナルストップ|一時停止)
M00と動作は同じです。
M00との違いは、機械側のM01スイッチがオンの時だけ実行されます。
起動ボタンを押せば、再スタートできます。
1個目の品物で確認すれば、後は確認しなくてもいいような場合にM01スイッチをオフにするだけで、M01が無視され機械が止まる事なく加工できるようになります。
M02(エンドオブプログラム)
プログラム終了です。
プログラムの最後に入力します。
M02が実行されると、プログラムが終了して先頭に戻ります。
M02以降のプログラムは実行されません。
M03(主軸正転|時計回り)
主軸が正回転します。
工具を上から見た時に時計回りに回転します。
M04(主軸逆転|反時計回り)
主軸が逆回転します。
工具を上から見た時に反時計回りに回転します。
M05(主軸回転ストップ)
主軸の回転をストップします。
M06(工具交換)
ATC(オートツールチェンジャー)搭載の機械で、工具交換する時に使用します。
M06指令の前に、交換したいツール番号を指令して呼び出しておきます。
例
T1(工具呼び出し)
M06(工具交換)
M08(クーラントオン)
クーラントオン
(切削油を出します)
M09(クーラントオフ)
クーラントオフ
(切削油を止めます)
M19(主軸オリエンテーション)
主軸オリエンテーション
主軸をあらかじめ決められた位置(角度)で固定します。
M30(エンドオブテープ)
プログラム終了です。
プログラムの最後に入力します。
M30が実行されると、プログラムが終了して先頭に戻ります。
M30以降のプログラムは実行されません。
M98(サブプログラム呼び出し)
サブプログラムを呼び出します。
メインプログラム実行中に、別のO番号に作成されたプログラムを呼び出して実行します。
繰り返し指令を追加することで、サブプログラムを指定した回数繰り返すこともできます。
書式
M98P〇〇〇〇(〇は、呼び出したいO番号)
M98P〇〇〇〇 L〇〇(Lの後に繰り返し回数)
例
下の画像のように、X,Y平面の同一加工をZ軸のレベルを下げて繰り返して加工する場合のプログラム例です。
O10 (メインプログラム)
G00 X-10.0 Y-10.0
Z10.0
G01 Z0 F___ (繰り返し開始位置まで移動)
M98 P20L5(O20のプログラムを5回繰り返す)
G00 Z100.0
・
・
・
O20 (サブプログラム)
G91 G01 Z-2.0 F___
G90 Y-20.0
X-20.0
Y-10.0
X-10.0
G90
M99
X,Y,Z軸を繰り返しを開始する位置まで移動。
O20のプログラムを呼び出して5回繰り返す。
サブプログラムのZ軸はG91で指令(これで繰り返すたびに2mmずつ下がります)
X,Y平面の加工。
X,Yのスタート位置と終了位置は、同じにします。
M99でサブプログラム終了ですが、繰り返し指令しているので5回繰り返した後にメインプログラムに戻ります。
繰り返し指令の書式はメーカー、機械によって異なる場合があるのでマニュアルを参照してください。
M99(サブプログラム終了)
サブプログラムを終了して、メインプログラムに戻ります。
サブプログラムの最後に使用します。