G90アブソリュートとG91インクリメンタル:同じ数字が別の位置になる瞬間
G90アブソリュート指令とG91インクリメンタル指令の違い、インクリメンタルモードが役立つ繰り返し加工、モードを戻し忘れて起きる事故を、四角形の例と座標追跡の表で説明します。
2つの方式の違いをひとことで
G90(アブソリュート)でのX20.は「ワーク原点からX方向に20の位置へ行け」、G91(インクリメンタル)でのX20.は「今の位置からXにさらに20進め」です。同じ文字と数字が、モードによってまったく別の行き先になります。
2つのコードは同じグループのモーダル指令なので、一度指令すると、もう一方が出るまで保持されます。ブロックにG90/G91が書かれていなくても、上のどこかで最後に指令されたモードが適用されます。
例と座標の追跡
G91インクリメンタルで20×15の四角形を描き、G90に戻る
O3004
T1 M6
G21 G90 G17 G94
G54
S3000 M03
G00 X10. Y10. Z5.
G01 Z-1. F100
G91 X20. F300
Y15.
X-20.
Y-15.
G90 G00 Z50.
M30上図はこのプログラムをCNC Path Analyzerで解析した結果です (早送り 2 区間, 直線切削 5 区間).
1行ずつ位置をたどる
インクリメンタル区間の4つのブロックは、始点がどこであっても20×15の四角形を描きます。始点(10,10)を(40,30)に変えれば、四角形もそのまま移動します。この性質がインクリメンタル指令の最大の長所です。
| ブロック | モード | 移動量 | 移動後の位置(X, Y, Z) |
|---|---|---|---|
G00 X10. Y10. Z5. | G90 | - | (10, 10, 5) |
G01 Z-1. F100 | G90 | - | (10, 10, -1) |
G91 X20. F300 | G91 | X +20 | (30, 10, -1) |
Y15. | G91 | Y +15 | (30, 25, -1) |
X-20. | G91 | X -20 | (10, 25, -1) |
Y-15. | G91 | Y -15 | (10, 10, -1) |
G90 G00 Z50. | G90 | - | (10, 10, 50) |
繰り返し形状にインクリメンタル指令を使う
同じ形を複数の位置に作る必要があるとき、インクリメンタルモードは特に便利です。形状をインクリメンタルで書いてサブプログラムにしておけば、メインプログラムでは各位置へ移動してから呼び出すだけで済みます。一定間隔の穴や溝を繰り返すときも、G91 X15.のような同じ行を繰り返せばよいので、ミスが減ります。
反対に、インクリメンタルでは誤差が積み重なります。円弧の終点計算を丸めて0.001mmずつずれると、10回繰り返した後には0.01mmになります。正確な位置が必要な基準穴や最後の位置は、アブソリュート座標で指令して積み重なりを断ち切るのがよいでしょう。
最もよくある事故:G91を解除せずに終わる
インクリメンタル区間が終わった後にG90へ戻さないと、次のG00 Z50.は「高さ50へ」ではなく「今より50mm上へ」になり、G00 Z-5.のようなブロックは「高さ-5へ」ではなく「今より5mm下へ」になります。工具交換位置へ行くと思っていた移動が素材のほうへ入っていく事故は、こうして起こります。
例の最後のブロックをG90 G00 Z50.のようにモード切り替えと移動を1行にまとめて書いたのはこのためです。サブプログラムがG91で終わる場合も多いので、呼び出しの後、メインプログラムの最初の行にG90を書き直す習慣が安全です。
どちらを基本にするか
- プログラム全体はG90アブソリュートを基本にします。どの行を見ても行き先がすぐ分かるので、チェックが楽です。
- 繰り返し形状、サブプログラム、一定ピッチの移動のように相対的な形が重要な部分だけでG91を使い、区間が終わったらすぐG90に戻します。
- 円弧のI・J・Kは、ほとんどの制御装置でモードに関係なくインクリメンタル(始点基準)として読まれることに留意してください。詳しくはG02・G03の記事にあります。
よくある質問
1つのブロックの中でアブソリュートとインクリメンタルを混ぜられますか?
X30. W-5.のように混ぜられます。