マシニングセンタのプログラミング基礎講座、第六回はのテーマは「Gコード」です!
Gコードは準備機能という名称になっていますが、機械の段取り準備のほか、切削加工を行う際に工具を動かす指令も行う、全ての動作に直接関係する最も重要なコードです。
プログラムの花形となるコードなだけに少々ボリュームも多くなりますが、一つ一つは難しくありませんので、ぜひ本講座マスターしてください!
前回の講座はこちら(Mコード-補助機能-)
Gコードは加工方法や機械の動きを指令するコード
Gコードは加工方法や機械の動きを決め、マシニングセンタに準備させる機能です。
指令方法:G**
例えば代表的なGコードはG01。削る指示を出すGコードです。
G01 X20. F100.
のように指令することで、X20の座標に向かって100mm/minの送り速度で削る、という指令を出すことができます。
Gコードのモーダル
Gコードには“モーダル”と”ワンショット(アンモーダル)”の2種類があります。
モーダルのGコードは、同じ系統の他のGコードが指令されるまでそのGコードが有効です。
一方ワンショットのGコードは指令されたブロックに限りそのGコードが有効になります。
ほとんどのGコードはモーダルで、ワンショットのGコードで使うものはG04(ドウェル)G28(原点復帰)の2種類くらいです。
モーダルの機能を活用すれば、例えばこちらのプログラム↓
G01 X-20. F100.
G01 Y30.
G01 X-21.
G01 Y35.
ブロックの全てにG01を記載していますが、モーダルの機能を活用すれば・・・
G01 X-20. F100.
Y30.
X-21.
Y35.
このようにはじめのブロックだけG01を記載して入力文字数を減らすことができます。
基本的なGコード一覧
GコードもMコードと同じように様々なものがあります。
本記事では基本的なGコードのみを紹介するので、目を通した上でコードの意味を理解しておくとスムーズにプログラミングを理解できます(^^
今回は前編ですので一部のみとし、続きは次回の講座で解説しますね。
G00:早送り
G00は工具を現在の位置(始点)から目的の位置(終点)まで、早送り速度で移動させるときに指令するコードです。
早送りですので、材料を削らない空振りの移動で使います。
指令方法:G00 X*** Y***
(例:G00 X50. Y50.)
例のように、移動させたい座標をX,Y,Zで指令すれば、その座標に向かって早送りで移動します。
早送り速度は一定で、機種によって異なります。 機種によっては早送りオーバーライドダイヤルにより何段階かの調節が可能です。
【注意!】移動経路は最短距離になるとは限らない
画像のように、X軸とY軸を同時にG00指令した場合、移動経路は最短距離になるとは限らないので注意が必要です。
その理由は、早送りではX軸とY軸のモーターが同じスピード(設定内の最大速度)で動くからです。XとYが同じスピードで動けば45度に動きますよね。そのため図のような動きをします。
このことを踏まえて工具の干渉に注意して指令するようにしましょう。
主軸とワークなどが干渉し、衝突が起きてしまうと、悪ければ何百万ものお金をかけて主軸を交換する必要が出てきてしまいます。
G01:直線での切削送り
工具を、現在の位置(始点)から目的の位置(終点)までの2点を結ぶ直線上を、切削送りで移動させるときに指令します。
G01は、おもに切削を行う工具移動に使用します。
ワークを削る際に一番多く使うのがこのコードです。例えばテーパー加工や面取りなんかもこのコードで行います。
移動する速さは、Fコードで指令した送り速度になります。
指令方法:G01 X*** Z*** F***
(例:G00 X50. Y-20. F100.)
X,Zの座標は移動させたい終点の座標値になります。Fの値は送り速度(mm/rev)です。
つまり例では、X50、Z-20の座標に向かって100mm/minで直線の切削送りで移動するという指令になります。
ちなみにFコードで送り量を指定しなければ、送り量は0になります。
Fコードについてはこちらで解説しています!
送りオーバーライドダイヤルで送りを調節可能
機種によりますが、G01での送り速度は送りオーバーライドダイヤルで調節することができます。
例えば私の普段使用しているマシニングセンタでは、F1,F2、F3、F4と4種類のオーバーライドダイヤルがあり、例えばF1と指令すれば、F1に対応したオーバライドダイヤルで送り速度を調節できます。
単品ものを加工する際など大変便利な機能で、ほぼ毎日使用しています。
G02・G03:円弧での切削送り
G02とG03はG01と同じ切削送りですが、直線でなく円弧(アール)のかたちで動かす際に指令するコードです。
現在地から、X,Yで指定した座標へ向かってFで指定した送り速度で移動する点はG01と同じですが、さらにRもしくはI・Kで円弧形状を指定することで円弧を描いて移動します。
これら2種類の指令方法はどちらも使用し、通常はR指令、I・K指令はぐるっと一周円を描いて削りたいときに使用しています。
R指令
指令方法:G02(G03) X*** Z*** R*** F***
Rには円弧の半径を入力します。X,Y,Fに関してはG01と同様です。
(例:G02 X3. Y-3. R3. F100.)
IJK指令
指令方法:G02(G03) X*** Z*** I*** J*** F***
Rの代わりにIとJで円弧形状を指定します。後述しますが、I・Jには円弧中心を入力します。
(例:G02 I-25. F100.)
XとYで終点を指令できますが、円周上に工具を動かしたいときはスタート地点に戻ってくるため、指令をする必要はありません。また、円弧中心が真横にある場合はIのみ、まっすぐ縦にある場合はJのみの指令で足ります。
G02とG03の違いは円弧の回転方向!
画像のように、G02は時計回り、G03は反時計回りの回転で使います。
R指令の指令方法
先程G02とG03の指令方法にはR指令とIJK指令があることをお伝えしました。
まずはよく使うR指令の指令方法について詳しく説明します。
R指令は、図面で示された円弧の半径をそのまま指令します。
半径を指定するだけですので、IJK指令よりも便利でミスも少なくなります。
ポイントは、Rをマイナスの値にすることで、半円より大きい円弧も指令できるという点です。(半円より大きい円弧を加工することはほぼありませんが・・・)
下図の例を解説していきます。
図のAの軌道は、時計回りですのでG02を使い、半径が40のためRは40になります。ですが、半円より大きい円弧を描いているため、Rをマイナスの値で入力します。
G02 X90. Y70. R-40.
一方で図のBの軌道は、半円より小さい円弧を描くので、Rはプラスの値を入力し
G02 X90. Y70. R40.
となります。
IJK指令の指令方法
お次はIJK指令。
頻繁には使いませんが、図面の指示のしかたによってはこちらのほうが便利な場合があります。
IJK指令は円弧の始点から円弧の中心を見たときの距離と方向をインクリメンタル値で指令します。
入力する数値としては、
IはX軸方向の距離と方向(+,-)
JはY軸方向の距離と方向(+,-)
を入力します。
KはZ方向ですが、あまり使いません。
それでは例を見てみましょう。
G17、G18、G19で分かれていますね。
これは、XY平面の他に、XZ平面、ZY平面の指定ができるコードです。
デフォルトではG17の状態になっており、特殊な場合でなければ平面の指定は必要ありませんので、G17の図(上図左)だけ見ていただければOKです。
基本的には、先述した一周円を加工する場合くらいしか、IJK指令を使用することはありません。
G04:ドウェル
G04のドウェルは、指令した時間だけ工具の動きを停止させます。
主軸の回転や切削油などは止まらないため、穴あけやザグリ、面取りなどの削り残し防止などに使用します。
指令方法:G04 X***
(例:G04 X1.)
Xには秒数を入力しますので、上の例では1秒間停止させる指示になります。
停止時間は簡単に計算できる
このコードは、例えばザグリの底を寸法通りに仕上げる際に使用します。
工具が溝底までたどり着いて止まらずに逃げてしまうと、底面をすべて削り終わる前に工具が逃げてしまい、いびつな底面になっている可能性があります。
そのための停止時間について、主軸一回転あたりの時間(秒)を求めることで最適な時間を導き出すことができます。
その計算式は・・・
最小の停止時間=60/回転数
です。
回転数の単位がmin^-1ですので回転数の逆数に60をかければ秒数になりますよね。
たとえば800回転のときに主軸が1回転する間停止させるには
60/800で0.075秒になります。
2回転分の時間も止めておけば十分ですので0.15秒くらい止めておけばOKということです。基本は2枚刃ですので0.075秒でも十分です。
とはいえわざわざ毎回計算するのも面倒ですので、多少の刃先の摩耗はありますが全て1秒くらい止めてしまうのが現実的です。
数物は計算してプログラムを組んでおくと、わずかながらサイクルタイムを短縮し、刃具寿命を伸ばせます。
次回は固定サイクル
今回は基本的なGコードを解説しました。
加工の基本となるGコードですのでしっかり押さえておきましょう(^^
次回はマシニングセンタの加工で大変便利な固定サイクルのGコードを解説します!
コメント