アブソリュート指令(G90)とインクレメンタル指令(G91)
直線の移動であれば「G01 X30. Y10.」のように、各軸の座標値を入力することになりますが、設定によってこの座標値をどのように解釈するのかが変わってきます。この座標値の捉え方には、G90 のアブソリュート指令と G91 のインクレメンタル指令があります。G90 は絶対座標、G91 は相対座標という言葉が使われることもあります。
G90|アブソリュート指令
G90 のアブソリュート指令は、ワーク座標の原点を基準とした座標値で指令する方法です。
例えば、G54 のワーク座標を使用していて、G54 に「X-100. Y-50. Z0」という機械座標が入っている場合、この「X-100. Y-50. Z0」という機械座標を原点(X0 Y0 Z0)とした座標値で指令します。

アブソリュート指令の良い点は、現在の工具位置がどこにあったとしても、同じ座標を指定すれば同じ位置に移動するということです。これは座標の確認作業が比較的に容易になるということでもあります。
例えば「G90 G01 X30. Y10.」と指令した場合は、工具位置がどこにあったとしても「X30. Y10.」の位置に移動します。

G91|インクレメンタル指令
G91 のインクレメンタル指令は、現在の工具位置からの座標値、つまり現在の工具位置からの移動量を指令する方法です。
例えば「G91 G01 X30. Y10.」と指令すると、現在の工具位置からX軸方向にプラス30mm、Y軸方向にプラス10mmの位置に移動します。これは、設定されているワーク座標(G54〜59)に関係なく動きます。

インクレメンタル指令の良い点は、工具の位置が変わっても同じ動きをさせたいという場合に、指令する座標値を書き直すことなくコピー・ペーストしたり、サブプログラムとして繰り返し使うことができるということです。
G90 と G91 どちらを使うべきか
どちらの指令方法を使ったとしても、同じ動きを実現させることは可能です。どちらがより良いのかについてはおそらく、「どのような加工をするのか」ということと、「作ったプログラムをどのように扱うのか」の2点と関係します。
「どのような加工をするのか」については、座標を変えて同じ動きをさせたい場合は、アブソリュート指令よりもインクレメンタル指令の方がプログラムを作るのは簡単だと思います。
「作ったプログラムをどのように扱うのか」については、その製品でしか使わない使い捨てのプログラムを作る場合はインクレメンタル指令の方が簡単です。
ただし、個人的には使い捨てのプログラムを作るよりも、繰り返し使える汎用性の高いプログラムを作る方が良いと考えています。そういったプログラムを作る場合、インクレメンタル指令で作ってしまうとメンテナンス性が悪く、計算ミスをしやすかったり、ゴチャゴチャしてわかりにくくなって結局1から作り直して時間を無駄にするということが起こります。
繰り返しになりますが、インクレメンタル指令はプログラムを作るのは簡単なのですが、後から見たときに非常に分かりづらいです。汎用性の高いプログラムを作る場合は、すべてアブソリュート指令で作ることをおすすめします。
- 最低限必要なコード
- ミスを減らすためにすること
- マクロプログラムを作るときの考え方
- 繰り返しと条件分岐の使い分け
- NCプログラムとは。そのメリットとデメリット
- NC設備も良いけど、何気に活躍する手動工作機械
- 標準で使える変数
- NCプログラムの改善とは何か
- NCプログラムと生産システム
- 分業のジレンマ
- 座標とはなにか【初めてのNCプログラミング】
- 機械座標とワーク座標【初めてのNCプログラミング】
- 平面指定(G17〜19)を変更すると何が変わるのか【初めてのNCプログラミング】
- NCプログラムの基本は軸移動【初めてのNCプログラミング】
- アブソリュート指令(G90)とインクレメンタル指令(G91)
- 工具長補正は連続加工に必須の機能
- ATC(オート・ツール・チェンジャー)の使い方
- 主軸回転数と切削条件の求め方
- ワークのセッティングと測定機器
- タッチセンサを使った自動測定
- 当サイトのPDF版を作成しました。教育資料やリファレンスとして使用して頂ければと思います。
→ NCプログラムの教科書 - 上級編も作成しました。
→ NCプログラム上級編