インクリメンタル指令とは何か基本から使い方まで

インクリメンタル指令(G91)とは何か、アブソリュート指令との違い、具体的な使い方やメリット・デメリットをNCプログラム初学者にもわかりやすく解説。医療機器製造現場での活用ポイントも押さえたい方は必読です。

インクリメンタル指令とは何かを基本から理解する

🔑 この記事の3つのポイント
📍
インクリメンタル指令の基本

現在位置からの「移動量」で工具の動きを指令する方法(G91)。原点ではなく「今いる場所」が基準になる。

⚖️
アブソリュート指令との違い

アブソリュート指令(G90)は固定の原点を基準にするのに対し、インクリメンタル指令は「現在地からどれだけ動くか」を指定する。

⚠️
使い分けが重要

繰り返しパターン加工や同一動作の連続実行に有効な反面、G91の残留による誤動作リスクを理解しておかないと取り返しのつかないトラブルにつながる。


インクリメンタル指令だけを使い続けると、修正箇所以降のプログラムをすべて書き直す羽目になります。


インクリメンタル指令とは何か:増分値指令の基本定義

インクリメンタル指令(Incremental Command)とは、NCプログラムにおいて現在の工具位置を基準点とし、そこからどれだけの距離を、どの方向へ移動するかを数値で指示する座標指令方式です。別名「増分値指令」とも呼ばれており、Gコードの世界ではG91がこれに対応します。


「増分値」という言葉が示すとおり、あくまでも「今いる場所から見た相対的な移動量」を指定するのが最大の特徴です。


対して、もう一方の指令方式であるアブソリュート指令(G90・絶対値指令)は、あらかじめ設定した固定の原点(プログラム原点)からの距離と方向を指定します。これはいわば「地図上の目的地の座標を直接入力する」のと同じ発想です。


一方でインクリメンタル指令は、「今いる駅から2つ先の駅まで進め」と伝えるようなイメージです。現在地が変わるたびに基準点も変わるため、繰り返しパターンで同じ動きをさせるシーンでは非常に便利です。


NCプログラムでは、1つのプログラムのなかでG90とG91を交互に切り替えながら使うことも可能です。これがモーダルGコードの特性で、一度G91を宣言すると、明示的にG90へ切り替えるまでインクリメンタルモードが持続します。つまり、この「持続する」という性質が、後述する誤動作リスクの根本原因にもなります。


基本が原則です。まず「G90=原点基準の絶対値」「G91=現在地基準の相対値」という軸を明確に区別して覚えておきましょう。


インクリメンタル指令とアブソリュート指令の違いを具体例で理解する

2つの指令方式の違いは、実際の数値例を見ると格段に理解しやすくなります。たとえば、工具が現在「X100, Y100」の座標にあるとしましょう。ここからX軸方向に30mm、Y軸方向に10mm移動させたい場合を比べてみます。






















指令方式 Gコード プログラム例 移動後の位置
アブソリュート(絶対値) G90 G90 G01 X130. Y110. X130, Y110(原点からの絶対位置)
インクリメンタル(増分値) G91 G91 G01 X30. Y10. X130, Y110(現在地から+30, +10)


最終的な移動先は同じです。しかしプログラムの書き方がまったく異なります。アブソリュート指令は「どこへ行くか(目的地の絶対座標)」を指定し、インクリメンタル指令は「どれだけ動くか(移動量)」を指定するわけです。これは使えそうです。


また、インクリメンタル指令では移動量にマイナス値を指定することでマイナス方向への移動が可能です。「G91 G01 X-30. Y-10.」と指令すれば、現在地からX軸方向にマイナス30mm、Y軸方向にマイナス10mmの位置へ工具が移動します。


アブソリュート指令のメリットとしては、工具の現在位置がどこにあっても「X130. Y110.」と指定すれば必ず同じ座標へ移動するため、プログラムが読みやすく、座標値の指令ミスが発生したときもその1箇所だけ修正すればよいという点が挙げられます。


一方でインクリメンタル指令のメリットは、工具の位置が変わっても同じ動作パターンを再現できる点です。つまり、同一の動きを複数箇所で繰り返したい場合、コードをコピー・ペーストするだけで対応できます。また、サブプログラムと組み合わせることで、プログラムのブロック数を大幅に削減できるため、繰り返し加工に強いという特性があります。


つまり「どこへ行くかを繰り返す場面はG90」「どう動くかを繰り返す場面はG91」という使い分けが基本です。


インクリメンタル指令の具体的な使い方:G91とサブプログラムの組み合わせ

インクリメンタル指令が最も力を発揮するのは、M98(サブプログラム呼び出し)と組み合わせたときです。実際の現場でどれほどプログラムを短縮できるのかを、穴加工の例で確認してみましょう。


同一形状の穴加工を2箇所行う場合、加工深さ4.5mmを4回に分けて段階的に削り込む設定(計18mm)で比較すると、以下のような結果になります。
























プログラムの種類 穴加工プログラム文字数 ブロック数
G90(アブソリュート)のみ 496文字 56ブロック
G90 + M98サブプログラム 336 + 36 + 38文字 40 + 5 + 5ブロック
G91 + M98サブプログラム 360 + 44文字 40 + 5ブロック


G91とM98を組み合わせた場合、プログラム本数を3本に抑えられます。G90のみの場合と比べると同じ加工内容でも、コードの記述量を大幅に圧縮できることがわかります。加工深さ(繰り返し回数)が増えるほどこの差は拡大します。これは使えそうです。


なお、サブプログラム内でG91を使用する場合は、サブプログラムを終了してメインプログラムへ戻る前に「G90」を明示的に宣言して絶対値モードに戻す処理が必要です。この切り替えを忘れると、その後のメインプログラム全体がインクリメンタルモードのまま動き続けてしまう恐れがあります。G90への戻しは必須です。


また、インクリメンタル指令では設定角度によっては累積誤差が生じるケースも知られています。たとえばCKD社のアブソデックス取扱説明書にも「インクリメンタルプログラムでは、設定角度によっては累積誤差を生じることがある。この場合にはアブソリュートディメンション(G90)を使用すること」と明記されています。繰り返し回数の多い用途では、誤差の蓄積に十分な注意が必要です。


CKD アブソデックスAXシリーズ取扱説明書(インクリメンタル指令と累積誤差について記載)


繰り返し加工での累積誤差がある点は注意が必要です。


インクリメンタル指令のメリットとデメリットを正しく把握する

インクリメンタル指令の特性を正確に把握することは、安全で効率的なNCプログラミングの基本です。メリットだけを見て使い続けると、後から大きな問題に直面しやすくなります。


メリット


- 繰り返しパターンへの適性が高い:同一動作を複数箇所で再現したいとき、移動量が変わらなければコードのコピーだけで対応できます。


- サブプログラムとの組み合わせで効率化できる:G91 + M98により、プログラムのブロック数を大幅に削減できます。複雑な繰り返し加工でもコードを簡潔に保てます。


- プログラムが短くなる場面がある:単純な形状で繰り返し加工が多い場合、アブソリュート指令より記述量が少なくなります。


デメリット


- メンテナンス性が悪い:後からプログラムを修正する際、変更した座標の「以降の行すべて」を再計算して書き直す必要が生じます。一箇所の変更が連鎖的に全体へ影響するため、改修コストが高くなります。


- 累積誤差のリスクがある:繰り返し回数が増えるほど小さな誤差が積み重なるケースがあります。精密さを要求される加工ではアブソリュート指令の方が安全です。


- G91が残留したまま動作する誤動作リスク:G91はモーダルGコードのため、意図せず有効状態のままになる可能性があります。前のプログラムやMDI(手動データ入力)セッションで使ったG91が残留していると、次のプログラム実行時に予期しない動作を引き起こします。


- プログラムの可読性が低下する:「今どこにいるか」が明示されないため、他のオペレーターや技術者がプログラムの意図を読み取りにくくなります。


厳しいところですね。特にG91の残留リスクは実際の現場で発生しやすい落とし穴です。対策として、プログラムの先頭に「G00 G90」などの「セーフスタートブロック」を必ず記述することで、G91の残留が原因の誤動作を未然にぐことができます。


アブソリュート指令(G90)とインクレメンタル指令(G91)の使い分け解説(NCプログラム.com)


医療機器製造現場でのインクリメンタル指令:独自視点からの活用と注意点

医療機器の製造工程では、インプラントや手術器具、内視鏡部品など、形状・寸法に極めて高い精度が求められる部品加工が多く存在します。こうした現場では、インクリメンタル指令の「使い方の正しさ」が製品品質や安全性に直結します。


医療機器製造に特有の事情として、同一部品を繰り返し大量生産するケースと、カスタム仕様の単品・少量生産のケースが混在します。繰り返し生産ラインではインクリメンタル指令が生産効率の向上に貢献できる一方、単品・少量生産では後からの設計変更への柔軟な対応が求められるため、アブソリュート指令の方が適切です。


特に注意が必要な点は、累積誤差のリスクです。医療機器の部品では、たとえば骨固定用スクリューの穴ピッチが0.1mmずれるだけでも製品不良となりえます。繰り返し加工でインクリメンタル指令を多用する場合は、定期的なプログラムの精度検証と、必要に応じたアブソリュート指令への切り替えが欠かせません。


また、医療機器製造はQMS(品質マネジメントシステム)の管理下にあることが多く、NCプログラムそのものがドキュメント管理の対象となります。プログラムの可読性・追跡可能性という観点からは、アブソリュート指令中心で組み立てたうえで、繰り返し部分にのみインクリメンタル指令を部分適用するハイブリッドな運用が推奨されます。


つまり「インクリメンタルのみ・アブソリュートのみ」という二択ではなく、加工内容と品質要件に応じた使い分けが条件です。


さらに、製造現場での担当者交代や引き継ぎを考慮すると、G91ベースのプログラムは「工具が今どこにいるか」が一目でわからないため、第三者によるプログラム確認が難しくなります。医療機器製造の品質管理では、誰が見ても意図がわかるプログラムの記述が求められるケースが多く、この観点でもアブソリュート指令を主体とした設計が望ましいと言えます。


モノタロウ「NCプログラム(インクレメンタルとアブソリュート)」芝浦工業大学・澤武一教授監修


品質管理のしやすさという視点で選択することが原則です。