Skip to main content
CNC.wikiCNC.wiki

G90とG91:CNCプログラミングにおける絶対・増分指令の徹底解説

G90(絶対指令)とG91(増分指令)の切り替えを解説。FanucやMitsubishiの重要パラメータ検証、手動介入時の衝突防止策、G10オフセット書き換えの注意点など、量産ラインでの繰り返し精度と信頼性を高める実務ノウハウが満載。

Hakan Gündoğdu
Hakan Gündoğdu

CNC CARE 共同創業者

はじめに

G90(絶対指令)とG91(増分指令)のモーダル切り替えにおけるわずか1文字の指令ミスは、自動化された量産ラインにおいて最も警戒すべき致命的なリスクの一つである。アクティブな座標モードが誤って解釈された状態でプログラムが実行されると、超硬フェイスミルやツーリングヘッドなどの高価な工具が、ワークを固定しているマシンバイスの口金(バイスジョー)や治具クランプに最大送り速度で激突する。このようなハードクラッシュは、機械の主軸ハウジングを破損させて数週間に及ぶ非計画停止(ダウンタイム)を引き起こすだけでなく、ロット間における幾何学的再現性を極端に低下させる要因となる。このパラメータ設定や指令モードの整合性を十分に検証しないまま量産に入ると、2ロット目から累積的な寸法ばらつきが広がり、最終検査で初めて不良が発見される事態を招く。本稿では、Fanuc、Siemens、Mitsubishiの各制御盤における絶対・増分指令の挙動の違い、起動パラメータ、エラー回避策について、量産ラインでの繰り返し精度と信頼性を極限まで高める観点から詳述する。

技術概要

技術仕様仕様および制約事項
コマンドコードG90 (絶対指令), G91 (増分指令)
モーダルグループグループ 03 / モーダル
主要機能座標コマンドがアクティブなワーク座標系原点に対する位置(G90)を表すか、現在の工具位置からの増分距離(G91)を表すかを決定する。
サポート対象ブランドFanuc, Siemens, Mitsubishi
起動時およびリセット時のデフォルトパラメータFanuc: Parameter 3402 bit 3; Siemens: MD20154 $MC_EXTERN_GCODE_RESET_VALUES[10]; Mitsubishi: Parameter #1073 I_Absm
旋盤での例外(システム A)標準のシステム A旋盤は、モーダルな G90/G91の切り替えを使用せずに、並行座標アドレス(絶対座標は X/Z、増分座標は U/W)を使用する。
主要プログラミング制約アクティブなモーダル状態により G10プログラムデータ入力のオフセット結果が変化する。Siemensは同一軸上で競合する AC/ICの同時指令を許可しない。Mitsubishiはすべての円弧中心(I, J, K)および半径(R)を厳密に増分として処理する。

クイックリード

  • 基本解釈: 絶対(G90)モードと増分(G91)モードの切り替えにより、軸入力がアクティブな座標原点からプロットされるか、現在の工具位置からの相対的な距離ベクトルとして処理されるかが決定される。
  • 旋盤アドレスの区分: 標準的な旋盤Gコードシステム A(FanucおよびMitsubishi)は、モーダルな G90/G91の切り替えを完全にバイパスし、絶対座標に X, Z, C、増分ステップに U, W, Hを割り当てることでトラッキングエラーを防止する。
  • Siemensのインライン拡張: Siemensは、全体的なモーダル状態を変更することなく、特定の軸ワードに直接追加される非モーダルな AC(...) および IC(...) 修飾子を使用して、単一ブロック内での絶対運動と増分運動の同時指令を可能にする。
  • 起動時のデフォルト: 機械の起動状態はパラメータ化されている。Fanucの 3402.3、Siemensの MD20154、およびMitsubishiの #1073によって、システムが絶対(G90)モードまたは増分(G91)モードのどちらで初期化されるかが決定される。
  • G10オフセットの危険性: G90モード下でFanucシステム上でプログラムデータ入力(G10)を実行すると、既存のオフセットが完全に上書きされるのに対し、G91モード下ではそれらを加算的に修正するため、座標の検証が不可欠である。
  • 円弧中心の制限: Mitsubishiは円弧補間においてモーダルな G90を無視し、円弧中心(I, J, K)および半径(R)を始点からの厳密な増分寸法として評価する。
  • 手動介入の安全性: 手動ハンドル割り込みには厳重な注意が必要である。パラメータ(例:Fanuc 7001)が異なるトラバースベクトルを強制する場合、G91の下での経路回復は予期しないツールパスを引き起こす可能性がある。

基本概念

G90(絶対指令)とG91(増分指令)の両方のコマンドは、軸の目標寸法がアクティブなワーク座標系の原点(絶対ゼロ)を基準に評価されるか、現在の工具の物理的な位置を基準に評価されるかを決定する、グループ03に属するモーダルGコードである。G90は固定された基準点に対する正確な位置決めを可能にするが、G91はサブプログラム、固定サイクル、またはシンプルなステップループに広く使用される。マシニングセンタでは、これらのモードは通常、標準の G90 および G91 コマンドを介して切り替えられる。旋盤では、標準のプログラミングにおいてモーダル状態を変更することなく直接の軸アドレス文字(絶対座標は X/Z、増分座標は U/W)を使用する場合があるが、FanucとMitsubishiの両方は、旋盤システムでミーリングスタイルの G90/G91 モーダル切り替えを有効にするための構成パラメータを提供している。プログラマーとオペレータは、壊滅的な位置決めエラー、ワークの破損、または深刻な主軸衝突を避けるために、サイクル中途の手動介入やセットアップ作業において、アクティブな座標モードを常に把握しておかなければならない。

絶対プログラミングと増分プログラミングの選択は、部品の工程設計およびCNCプログラミングにおける重要な戦略的決定を表している。絶対座標を使用すると、プログラマーは設計図面への直接的で不変のリンクを確立でき、特定の座標が指令された場合、サイクルがどこから始まったかに関係なく、工具がその正確な物理座標に戻ることを保証できる。逆に、増分プログラミングは軸の経路を工具の現在位置からの個々のジャンプとして定義するため、開始位置をシフトするだけでサブプログラムを部品上の任意の場所で繰り返すことができるため、反復的な形状パターン(配列された穴パターンやスレッドミーリングなど)に理想的である。しかし、この柔軟性は高いリスクをもたらす。G90へのモーダル切り替えを1回忘れただけで、その後の絶対位置が相対的な距離のジャンプとして読み取られ、軸がソフトウェアのリミットに達するか、障害物に衝突するまで軸の動きが累積してしまう。プログラマーは、工具径補正がアクティブな状態で寸法モードを切り替える際には注意を払わなければならない。工具ノーズおよび工具径補正(G40, G41, G42)の実行中に G90/G91 を切り替えると、予期しないツールパスオフセットが発生し、工具破損や不良品発生につながる可能性がある。

コマンド構造

標準的なCNCプログラミングにおいて、コマンドブロックはインタプリタによって順次実行される。G90やG91のようなモーダル座標コマンドが読み取られると、コントローラの軌道ジェネレータの内部計算モードが変更される。一度 G90 がプログラムされると、G91 が明示的に指令されるまで、その後のすべての移動ブロックに対してアクティブな状態が維持され、その逆も同様である。これらのコマンド自体は軸の移動を引き起こさないことに留意することが重要である。代わりに、後続 of 座標ワード(X, Y, Z, A, B, C など)がサーボモータの回転にどのようにデコードされるかを決定する数学的フィルターとして機能する。

CNCプログラムを設計する際、これらの座標の統合には、制御盤のパーサーがブロックを正しく読み取れるようにするための厳格な構文フォーマットが必要である。スペース調整、小数点の使用、および同一ブロック内での重複アドレスの存在は、ブランド間で異なって評価される。たとえば、マシニングセンタは一般に G90 と G91 を複数回指定することや、他のGコードと併記することを許可するが、旋盤システムは、同一軸に対して絶対パラメータと増分パラメータが矛盾して組み合わせられた場合にアラームコードをトリガーすることがある。以下は、これらの座標切り替えを制御する構文フォーマットとパラメータ設定の構造化された解説である。

構文およびアドレス形式

  • Fanuc:
    • マシニングセンタ:G90 X[座標] Y[座標] Z[座標] ;(絶対座標)または G91 X[距離] Y[距離] Z[距離] ;(増分座標)。
    • 旋盤(Gコードシステム A):G90/G91を使用せずに並行軸文字を使用:絶対位置決めには X_ Z_ C_ ;、増分位置決めには U_ W_ H_ ;
  • Siemens:
    • モーダル切り替え:G90(絶対モーダル状態)または G91(増分モーダル状態)。
    • 非モーダルなインライン修飾子:<軸>=AC(<値>) はそのブロック内の該当軸ワードに対して絶対寸法を強制し、<軸>=IC(<値>) は増分寸法を強制する。
    • 回転軸の最短経路/方向(回転軸のみ):<軸>=DC(<値>)(最短経路絶対座標)、<軸>=ACP(<値>)(絶対座標正方向回転)、または <軸>=ACN(<値>)(絶対座標負方向回転)。
  • Mitsubishi:
    • マシニングセンタ:G90 X_ Y_ Z_ ;(絶対座標)または G91 X_ Y_ Z_ ;(増分座標)。
    • 旋盤:旋盤システム Aではデフォルトで X_ Z_ ;(絶対座標)および U_ W_ ;(増分座標)、または Gコードリスト 6 および 7 では G190 X_ Z_ ; / G191 X_ Z_ ;

システム構成パラメータ

ブランドパラメータ機能および値の範囲
FanucParameter 3402 Bit 3 (G91)起動時またはリセット時のモーダルGコードグループ03のデフォルト状態を制御する。0 = 絶対指令(G90)をデフォルトとする、1 = 増分指令(G91)をデフォルトとする。
FanucParameter 3401 Bit 4 (MAB) & Bit 5 (ABS)手動データ入力(MDI)パネルにおける座標挙動を制御する。MAB=1 の場合、ABS=0 はすべての MDI を増分に強制し、ABS=1 は MDI を絶対座標に強制する。MAB=0 の場合、MDI はアクティブな G90/G91 プログラムモードを追従する。
FanucParameter 7001 Bit 1 (ABS)手動絶対座標が ON の状態で手動介入を行った後の経路回復挙動を決定する。0 = G90 と G91 モードで異なる経路をトラバースする、1 = 両方のモードで同じ絶対経路を強制する。
FanucParameter 5500 Bit 4 (G90)インデックステーブルの軸移動を決定する。0 = アクティブな G90/G91 モードに基づいて評価する、1 = 割出軸は恒久的に絶対指令に固定される。
SiemensMD20154 $MC_EXTERN_GCODE_RESET_VALUES[10]システム起動時またはチャネルリセット時のGコードグループ3の初期状態を定義する。G90 または G91 として直接構成される。
SiemensSD42440 $SC_FRAME_OFFSET_INCR_PROGG91増分寸法指定中のアクティブなワーク座標オフセット移動を制御する。0 = プログラムされた経路のみをトラバースする、1 = 増分移動中にワークオフセットが加算的にトラバースされる。
SiemensSD42442 $SC_TOOL_OFFSET_INCR_PROG増分軸移動中の工具長補正(G43, G44, G49)の移動を決定する。0 = オフセットは同時にはトラバースされない、1 = 工具長補正の変更が増分移動(G91)と同時にトラバースされる。
SiemensMD30455 $MA_MISC_FUNCTION_MASK (Bit 2)モジュロ360度回転軸で移動を実行する際の正確な G90 絶対位置決め挙動を構成する。
MitsubishiParameter #1073 I_Absm機械の電源投入時またはシステムリセット時のデフォルトの座標モードを設定する。0 = 増分指令(G91)をデフォルトとする、1 = 絶対指令(G90)をデフォルトとする。
MitsubishiParameter #1076 AbsInc旋盤システムにおける絶対/増分軸選択を構成する。0 = モーダルな G90/G91 Gコードを介して切り替える、1 = 個別の軸アドレス(絶対座標は X/Z、増分座標は U/W)を介して切り替える。
MitsubishiParameter #1126 PB_G90プレイバックG90パラメータ。プレイバック編集において手動ジョグ量がどのように保存されるかを決定する。0 = 増分値として記録される、1 = 絶対値として記録される。

ブランド別応用

Fanuc

Fanucのエコシステム内では、絶対プログラミングと増分プログラミングは、オペレータのエラーを防止するために詳細なシステムカスタマイズを可能にするパラメータによって管理されている。主な特徴は、マシニングセンタ(Mシリーズ)と旋盤(Tシリーズ)の間における座標入力ロジックのネイティブな分岐である。Mシリーズのマシニングセンタでは、G90とG91はコントローラが座標ワードをどのようにデコードするかを切り替えるモーダルなトグルである。しかし、Gコードシステム Aの下にあるTシリーズの旋盤は、同一ブロック内で明示的に物理軸と個別の絶対(X, Z, C)および増分(U, W, H)アドレス文字をペアリングすることにより、モーダルなトラッキングを完全にバイパスする。これにより、後続の操作中にアクティブな増分状態が工具のジャンプを引き起こすリスクが排除される。構成パラメータを介して旋盤がGコードシステム BまたはCに切り替えられた場合、それはマシニングセンタのように動作し、代わりにモーダルな G90/G91 コマンドに依存する。

Fanucはまた、機械メーカー(工作機械ビルダー)が手動データ入力(MDI)パネルの座標ロジックをアクティブなプログラムのモーダル状態から完全に隔離することを許可している。Parameter 3401 bit 4 (MAB) と bit 5 (ABS) を設定することにより、自動運転プログラムが G90 または G91 のどちらで一時停止したかに関係なく、コントローラはすべての MDI 実行を厳密に絶対座標または増分入力に強制できる。さらに、Parameter 7001 bit 1 (ABS) は、オペレータが手動ハンドル介入(測定やチップ確認のために工具をジョグで遠ざける)を行った後の経路回復挙動を制御する。ABSが 0 に設定されている場合、自動運転を再開する際に CNC は G90 と G91 モードで異なる経路を再構築する可能性があり、一方、ABSを 1 に設定すると制御盤は同じ絶対経路に従うことを強制され、サイクル中途の復帰中に工具がワークやクランプと衝突するのを防ぐ。インデックステーブル(割出台)の場合、Parameter 5500 bit 4 (G90) は割出軸を厳密に絶対コマンドとして解釈するようにロックし、G91 モードを完全に無視することができる。

Siemens

Siemensの制御盤は、高度で非モーダルなアドレス拡張アーキテクチャを使用して座標寸法指定を処理する。ネイティブのSiemensモード(G290)およびISOダイアレクト B/C(G291)では、標準の G90G91 コマンドがモーダル座標状態を切り替える。レガシーなISOダイアレクトシステム Aでは G91 コマンドは使用できず、プログラマーは増分ステップに並行軸文字 U, V, W, H を使用しなければならない。しかし、Siemensを際立たせているのは、その非常にユニークなインラインアドレス修飾子である。軸ワードに直接 AC(...)(絶対座標)または IC(...)(増分座標)を追加することにより、プログラマーは同一ブロック内で一方向の軸を厳密な絶対座標に移動させると同時に、別の軸に相対的な距離をトラバースさせることができる(例:X=AC(100.0) Z=IC(-5.0))。これにより、複数のブロックにわたって G90 と G91 モードを何度も切り替える必要がなくなり、複雑なツールパスの移行が簡素化される。

Siemensはまた、専用の回転および主軸寸法指定フレームワークを特徴としている。アクティブな G90/G91 モードに関係なく、オペレータは DC(...)(最短経路アプローチ、角度への最短パス選択)、ACP(...)(絶対座標正方向回転、時計回りに回転)、または ACN(...)(絶対座標負方向回転、反時計回りに回転)を使用して、主軸または回転軸の目標座標をプログラムできる。水面下では、Siemensは増分プログラミングをアクティブな座標系フレームと調整する。マシンデータ設定 SD42440 $SC_FRAME_OFFSET_INCR_PROG は、アクティブなゼロオフセットが G91 増分移動中に加算的に評価およびトラバースされるかどうかを制御し、SD42442 $SC_TOOL_OFFSET_INCR_PROG は、変更された工具長補正が G91 移動中に同時にトラバースされるかどうかを決定し、開発者に広範なバックグラウンドキネマティクス(運動学)のカスタマイズ性を提供する。

Mitsubishi

MitsubishiのCNC制御盤は、同一ブロック内で複数の G90 および G91 モードを処理するユニークな機能(例:G90 X300. G91 Y100. ;)に代表される、極めて流動的な座標ターゲット選択を提供する。これにより、プログラマーは別々の行を書くことなく、ある軸を絶対座標に駆動させると同時に、別の軸を相対距離だけ進めることができる。標準のミーリングシステムは G90 と G91 モーダルコマンドを使用し、旋盤システムはデフォルトで個別のアルファベットアドレス(絶対座標は X/Z、増分座標は U/W)を使用する。しかし、Mitsubishiは旋盤のこのアドレス制限を切り離すための Parameter #1076 AbsInc を提供している。#1076 を 0 に設定すると、標準の旋盤制御で代わりにモーダルな G90/G91 Gコードを介して座標を切り替えることができるようになる。Gコードリスト 6 または 7 を実行している旋盤構成では、G190G191 コマンドが G90/G91 に置き換わり、これらのリストで標準の G90/G91 を使用すると P34 プログラムエラーアラームがトリガーされる。

もう一つの注目べきMitsubishiの特徴は、Parameter #1126 PB_G90(プレイバックG90)である。このパラメータは、手動軸ジョグ座標がプレイバック編集中にどのように記録されるかを決定する。1 に設定するとジョグ移動は絶対座標として記録され、0 に設定すると増分距離として記録され、現場での手動ティーチインサイクルを加速させる。この多才さにもかかわらず、Mitsubishiは円弧補間に対して厳格なルールを課している。円弧中心(I, J, K)および円弧半径(R)は、G90絶対モードがアクティブであっても、円弧の始点からの厳密な増分値として評価される。円弧中心に絶対座標をプログラムしようとすると、ツールパスが歪み、ワークが廃棄(不良品発生)となる。さらに、G54.4(ワーク取付誤差補正)のような高度なサイクルを使用する場合、オペレータは最初の移動ブロックで即座に G90 絶対コマンドをプログラムしなければならない。G54.4の直後に指令された G91 増分コマンドは、機械を未補正 of 物理位置に対してプランジさせ、工具衝突を引き起こす。

ブランド比較

機能項目FanucSiemensMitsubishi
構文および座標の切り替えMシリーズではモーダルな G90/G91。Tシリーズ旋盤では絶対(X/Z/C)と増分(U/W/H)アドレスを使用。ネイティブ/ISOモードでのモーダルな G90/G91。非モーダルなインライン拡張 AC(...), IC(...), DC(...), ACP(...), ACN(...) をサポート。Mシリーズではモーダルな G90/G91。旋盤ではアドレスコード(X/Z vs U/W)またはパラメータ #1076 を介したモーダルな G90/G91。旋盤Gコードリスト 6/7 は G190/G191 を使用。
混合ブロック(同一ブロックでの絶対・増分指令)マシニングセンタでは非サポート。旋盤では個別の X/Z および U/W アドレス文字を介してサポート。特定の軸に対してインラインの非モーダルな AC(...) / IC(...) 修飾子を使用してネイティブにサポート。単一ブロック内での複数のモーダルな G90 および G91 座標定義を許可することによりネイティブにサポート。
円弧中心および半径の解釈アクティブな G90/G91 モードまたはシステム構成に基づいて解釈される。プログラミングスタイルに基づいて解釈され、円弧中心に対するインラインの AC および IC 修飾子をサポート。G90 がアクティブであるかどうかにかかわらず、厳密に増分値(I, J, K, R)として評価される。
回転軸および主軸の位置決めモーダルな G90/G91 に基づくか、Parameter 5500 bit 4 を介して絶対座標に恒久的にロックされる。最短経路絶対座標(DC)、絶対座標正方向回転(ACP)、絶対座標負方向回転(ACN)がネイティブにサポートされる。割出軸での G90 移動は、アラームを回避するために、事前設定された割出増分パラメータと一致しなければならない。
プレイバックジョグ記録— (ソースなし)— (ソースなし)Parameter #1126 を介して構成可能(0 = 増分として記録、1 = 絶対値として記録)。
MDIモードの座標ロックMDI を絶対座標または増分に強制的に実行させるために、Parameter 3401(MAB/ABSビット)を介してサポート。— (ソースなし)— (ソースなし)

技術解析

Fanuc、Siemens、およびMitsubishiコントローラの分析的評価は、座標管理における異なるアーキテクチャ思想を明らかにしている。Fanucは堅牢な安全マージンと物理的な隔離を強調している。旋盤Gコードシステム Aを個別の個別アドレス文字(X/Z/C vs. U/W/H)にロックし、Parameter 3401 を介した MDI パネルのオーバーライドを可能にすることにより、Fanucはオペレータのエラーを構造的に防止することを優先し、手動入力とアクティブなプログラムが数学的に確実に隔離されるようにしている。対照的に、Siemensは比類のないプログラミング密度とキネマティクス(運動学)的な柔軟性を提供する。ベースインタプリタに直接非モーダルな修飾子(AC および IC)を埋め込むことにより、Siemensは G90 と G91 モードを切り替える必要性を排除し、プログラマーが単一のコンパクトなコード行で複雑な空間的移行(スロープダウンエントリなど)を実行できるようにする。さらに、Siemensのユニークな主軸およびモジュロ回転軸位置決め(DC, ACP, ACN を介する)は、メインプログラムの座標状態を変更することなく深いキネマティクス制御を提供する。

Mitsubishiは、FanucとSiemensの両方の絶対/増分構文を融合させながら独自の流動的なソリューションを提供する、非常に汎用性の高い中間領域を占めている。Mitsubishiは、同一ブロック内での複数のモーダル定義(例:G90 X... G91 Y...)を許可する点でユニークであり、インライン機能ではなく標準の Gコードを使用しながらSiemensの混合座標機能と同等の能力を維持している。しかし、Mitsubishiは円弧中心寸法(I, J, K)および円弧半径(R)を恒久的に増分として処理するなどの厳格な数学的制約を課している。これは、パラメータによって円弧中心補間がアクティブな絶対座標モードを追従できるFanucやSiemensとの重要な違いである。Mitsubishiはまた、対話式のプレイバック編集において手動ジョグ移動がどのように保存されるかを決定する Parameter #1126 のような専用の現場向けツールを組み込んでおり、手動セットアップに対する高度な適応性を提供している。

プログラム例

Fanucのプログラム例

O1001 (FANUC MILLING DEMO) ;
N10 G90 G54 G00 X0. Y0. Z10. ; (G54ワークゼロを基準とする絶対位置決め)
N20 G43 H01 Z2. ; (工具長補正を適用)
N30 G01 Z-5. F200 ; (G90絶対モードでの直線プランジ)
N40 G91 X50. Y30. ; (増分指令に切り替え。現在位置からX+50mm、Y+30mm移動)
N50 X20. ; (増分ステップ。さらにX+20mm移動)
N60 G90 X100. Y50. ; (絶対指令に戻す。工具は直接座標 X100.0, Y50.0 に移動)
N70 G00 Z10. ; (絶対指令でZ10.0に工具退避)
N80 M30 ;

Fanucの空運転 (dry run)パス解析

  • ブロック 10 (G90 G54 G00 X0. Y0. Z10.): インタプリタは絶対プログラミングを確立する。軸は、アクティブなワーク座標系(G54)基準点を基準にして、座標 X = 0.0, Y = 0.0, Z = 10.0 へ早送りで移動する。
  • ブロック 20 (G43 H01 Z2.): 登録レジスタ H01 に保存されているオフセット値を利用して、工具長補正(G43)をアクティブにし、主軸端面を安全な Z = 2.0 に位置決める。
  • ブロック 30 (G01 Z-5. F200): 主軸は送り速度 200 mm/min でワークゼロの下ちょうど -5.0 mm の深さまで直線的に送り込まれる。
  • ブロック 40 (G91 X50. Y30.): 座標解釈を増分に切り替える。工具は現在の位置から X+50.0 mm および Y+30.0 mm トラバースし、絶対座標 X = 50.0, Y = 30.0 に達する。
  • ブロック 50 (X20.): 引き続き G91 モーダル状態である。工具はさらに X+20.0 mm ステップし、絶対座標 X = 70.0, Y = 30.0 に到着する。
  • ブロック 60 (G90 X100. Y50.): 座標を G90 絶対モードに戻す。工具は物理座標 X = 100.0, Y = 50.0 に直接移動する。
  • ブロック 70 (G00 Z10.): ワークピースを安全に回避しながら、座標 Z = 10.0 まで垂直に早送りで移動する。

Siemensのプログラム例

N10 G290 (Siemensネイティブモードに切り替え)
N20 G90 G00 G54 X0 Y0 Z10 T1 D1 S2500 M03 (モーダル絶対位置決め、ワークゼロと工具オフセットをアクティブにする)
N30 G01 Z2 F500 (絶対値の Z2 まで送り)
N40 X50 Y50 (座標 X50, Y50 まで直線送り)
N50 X=IC(30) Y=AC(80) (1つのブロックで絶対座標と増分座標を混在:Xは相対+30mm移動、Yは絶対80mmに移動)
N60 G91 X20 Y10 (モーダルを増分に変更:Xは+20mm、Yは+10mm移動)
N70 G90 Z50 (モーダルを絶対値に変更:Zは絶対座標50mmに退避)
N80 M30

Siemensの空運転パス解析

  • ブロック N20 (G90 G00 G54 X0 Y0 Z10): インタプリタはモーダル絶対位置決め(G90)をアクティブにし、ワーク座標系(G54)を使用してワーク原点を選択する。主軸は座標位置 X = 0.0, Y = 0.0, Z = 10.0 へ早送りで移動する。
  • ブロック N30 (G01 Z2 F500): 主軸は 500 mm/min で絶対値の深さ Z = 2.0 まで直線的に送り込まれる。
  • ブロック N40 (X50 Y50): 工具は絶対座標 X = 50.0, Y = 50.0 まで送り込まれる。
  • ブロック N50 (X=IC(30) Y=AC(80)): 非モーダルな混合寸法ブロック。X軸は現在の位置から +30.0 mm の増分距離を移動し、絶対座標 X = 80.0 に到着する。同時に、Y軸は絶対座標位置 Y = 80.0 に移動する。支配的な G90 モーダル状態は影響を受けない。
  • ブロック N60 (G91 X20 Y10): モーダル状態が増分 G91 に切り替わる。工具は X+20.0 mm および Y+10.0 mm の相対距離を移動し、絶対座標 X = 100.0, Y = 90.0 に達する。
  • ブロック N70 (G90 Z50): 座標解釈がモーダル絶対 G90 に戻る。Z軸は絶対目標座標 Z = 50.0 に直接退避する。

Mitsubishiのプログラム例

% (MITSUBISHI MIXED DEMO)
N10 G90 G00 G54 X0. Y0. Z20. S2000 M03 ; (G54ワークゼロに絶対座標で早送り)
N20 G01 Z2. F600 ; (絶対値の Z2.0 まで送り)
N30 G90 X200. G91 Y50. ; (同一ブロック内での絶対X座標と増分Y座標の同時指令)
N40 X10. G90 Y150. ; (コマンド競合の解決:Xは増分10mm、Yは絶対150mm)
N50 G90 G00 Z20. ; (Z20.0に絶対座標で退避)
N60 M30 ;

Mitsubishiの空運転パス解析

  • ブロック N10 (G90 G00 G54 X0. Y0. Z20.): G90 絶対モードをアクティブにし、ワーク座標系(G54)基準点を基準にして工具を位置決める。主軸は座標位置 X = 0.0, Y = 0.0, Z = 20.0 に早送りで移動する。
  • ブロック N20 (G01 Z2. F600): 主軸は 600 mm/min で絶対目標深さ Z = 2.0 まで直線的に送り込まれる。
  • ブロック N30 (G90 X200. G91 Y50.): 複数の座標コマンドを処理する。X軸は絶対座標位置 X = 200.0 に直接移動する。同時に、Y軸は開始位置(Y = 0.0)を基準にして +50.0 mm の増分距離をトラバースし、絶対座標 Y = 50.0 に達する。
  • ブロック N40 (X10. G90 Y150.): ブロック N30 で G91 が末尾のコマンドであったため、アクティブなモーダル状態は G91 増分である。X軸は +10.0 mm の増分距離をトラバースする(X = 210.0 に到達)。同時に、インラインの G90 コマンドはY軸に絶対座標位置 Y = 150.0 への直接移動を強制する。
  • ブロック N50 (G90 G00 Z20.): モーダル絶対 G90 を再確立する。主軸は絶対座標 Z = 20.0 まで垂直に早送りで移動する。

エラー解析

ブランドおよびアラームコードトリガー条件画面上の症状根本原因および対策
Fanuc: PS5074Gコードシステム A の下、同一の旋盤ブロック内で全く同じ軸に対して重複する絶対および増分アドレスがプログラムされた場合(例:同一行内で X と U の両方をプログラムする)。即時のサイクル停止。機械制御盤にアラームメッセージ「ADDRESS DUPLICATION ERROR」が表示される。絶対移動と増分移動を別のブロックでプログラムする。旋盤プログラムで、単一の座標行においてアドレス文字(X と U など)を混在しないようにする。
Fanuc: PS1090 / SR1090パラメータ ESL が 0 に設定され、適切なスペース調整や小数点なしでブロックが指令されるプログラムフォーマットエラー。インタプリタがNCプログラムの読み取りを停止し、「PROGRAM FORMAT ERROR」を表示する。必要なスペースと明示的な小数点追加して構文を修正する(例:G90G01X100y50 ; の代わりに G90 G01 X100.0 Y50.0 ; と記述する)。
Siemens: Alarm 61805軸座標ワードが、同一ブロック内で絶対および増分修飾子を同時に競合して受け取る場合(例:X=AC(100)X=IC(10) の同時指令)。NC起動が無効化される。サイクルはアラーム「Value programmed absolute and incremental」を伴って即座に停止する。軸ブロックから重複または競合するアドレス修飾子を特定して削除する。軸ワードあたり絶対または増分修飾子のいずれか一方のみがアクティブであることを確認する。
Siemens: Alarm 10255 / 15100標準の過渡的なコード G00/G01 および G90/G94 を挿入せずに、ISOダイアレクトモードで連続加工サイクル(G71荒削りなど)を呼び出す場合。実行中にサイクルが中止される。コントローラに座標移行またはダイアレクトフォーマットエラーが表示される。サイクル呼び出しの直前のNCラインに、正しい過渡移動(G00/G01)および座標(G90)コマンドを挿入する。
Mitsubishi: 割出増分エラーG90 絶対指令が割出台軸に対し、事前定義された割出増分パラメータの整数倍ではない座標を指示する場合。実行中にプログラムが即座に停止する。ディスプレイにプログラムエラーメッセージが表示される。プログラムされた座標を変更して、システムの割出増分パラメータに数学的に整合させる(例:軸の目標を2度または5度の増分に揃える)。
Mitsubishi: アラーム P34アクティブなGコードリスト規格がそのコマンドフォーマットをサポートしていない機械構成において、プログラマーが G90, G91, G190, または G191 を指令する場合。即時のブロックスキップまたはサイクル停止。画面に「P34 Program Error」が表示される。機械のアクティブなGコードリストと互換性のある正しい座標切り替えコードを検証してプログラムする(例:旋盤リスト 6/7 では G90/G91 の代わりに G190/G191 を使用する)。

実務応用ノウハウ

量産加工ラインでの非計画停止を防ぎ、100ロット以上の連続生産でも同一の繰り返し精度を維持するためには、手動操作時および補正適用時における絶対・増分座標パラメータの徹底的な管理が求められる。特に重大な加工トラブルを誘発する要因として、Fanucシステムにおける手動ハンドル割り込み回復時の挙動が挙げられる。オペレータが刃先やワーク寸法を確認するために自動運転を一時停止して手動でスピンドルを退避させた際、Parameter 7001 の bit 1 (ABS) の検証を怠ると深刻な衝突トラブルにつながる。このパラメータが 0 に設定されている場合、増分モード(G91)下でのサイクル再開時にコントローラが異なる復帰ベクトルを生成し、工具は直線経路ではなく意図しない斜め軌道を描いて移動する。この結果、超硬ツールは回転するチャックや強固にロックされたツーリングタレットに激突して激しく破損し、ワークピースは瞬間的に使用不可となって不良品発生に至る。この量産リスクを排除するには、Parameter 7001 を 1 に固定して強制的に同一の絶対経路を追従させ、再現性の低下を防ぐ標準化策が不可欠である。

さらに、Mitsubishiシステムで G54.4(ワーク取付誤差補正)を呼び出す際にも同様の落とし穴が存在する。補正サイクルは内部的なグリッドシフトを行うだけで物理的な軸移動を伴わないため、G54.4 の直後の移動ブロックで G91 増分コマンドを実行してしまうと、機械はシフト後の座標ではなく、未補正の物理的な初期位置からの増分距離で刃物をプランジさせる。その結果、工具はプロファイルから逸脱してワーク保持用のマシンバイス口金(バイスジョー)や締め付けクランプに急接近し、主軸ベアリングに致命的なハードクラッシュをもたらしてラインを完全にストップさせる。段取り前に Parameter 3402 や #1073 などの起動・リセットパラメータの初期状態を確認・検証し、補正呼出の直後には必ず最初の移動ブロックで G90 絶対座標指令を明示的に記述する設計プロトコルを標準化することが、工場フロアでのプロセスの信頼性とロット安定性を長期にわたって保証する絶対的防護策である。

関連コマンド

  • G54〜G59(ワーク座標系) 絶対指令(G90)が軸座標をプロットするために参照するワーク座標系原点を選択する。
  • G10(プログラムデータ入力): ワークおよび工具のオフセットレジスタを動的に更新する。G90 絶対モード下では値を完全に上書きし、G91 増分モード下では加算的に修正する。
  • G92(ワーク座標系設定/主軸最高速度クランプ): 物理的な軸移動を伴わずにアクティブなワーク座標原点を手動でシフトし、後続の G90 座標目標を直接変更する。
  • G00およびG01(位置決め/直線補間): 軸の座標引数が、アクティブなモーダル状態に基づいて絶対目標座標または増分距離ベクトルとして解釈される移動コマンド。
  • G290およびG291(Siemens/ISO言語モード切り替え): Siemensインタプリタがモーダルな G90/G91 コマンドおよび関連するISOダイアレクトの並行アドレス(U, V, Wなど)をどのようにデコードするかを制御する。

おわりに

工場での非計画停止のリスクを完全に排除し、高精度な量産現場における繰り返し精度を極限まで追求するためには、加工プログラムの先頭でモーダル状態(G90またはG91)を明示的に宣言する設計ルールを厳格化する必要がある。具体的には、プログラムのセーフティブロック(例:G90 G17 G21 G40 G49 G80)においてデフォルト座標モードを固定し、各サブプログラムの終了直後や手動ハンドル割り込みの復帰時にもモーダル宣言を redundant(冗長)に再宣言することが推奨される。また、各設備の起動時デフォルトパラメータ(Fanucの3402やMitsubishiの#1073)を事前に検証・統一しておくことで、段取り替え時や不意のリセット直後でも機械が一貫した挙動を示すようになり、2ロット目からの微小な幾何学的ばらつきを未然に遮断することができる。G90とG91を単なる座標モードの切り替えコードとしてではなく、CNCシステムにおけるサーボフィードバックと同期した信頼性管理の最も基盤となる制御フィルターとして位置づけることが、寸法ばらつきのない安全な量産体制の構築と設備稼働率の向上へと直結する。

よくある質問

量産ラインで2ロット目以降から突然製品の寸法ばらつきが発生するのを防ぐため、G90/G91に関連して事前に検証すべき主要パラメータは何ですか?

ロット間の幾何学的再現性を強固に維持するためには、電源投入時およびシステムリセット時のモーダルデフォルトを決定する起動設定パラメータ(FanucのParameter 3402 bit 3、またはMitsubishiの Parameter #1073 I_Absm)を事前に検証する必要があります。これらの起動設定が全社で統一されていないと、リセットを伴う段取り替え時に意図しない増分(G91)モードの誤適用が生じ、微小なオフセットの狂いから寸法不良が発生し最終検査で初めて不良が発覚することになります。実務上の推奨アクションとして、加工プログラムの各ツールセクションの先頭ブロックに必ず明示的な G90 指令を挿入し、パラメータ依存によるばらつきを物理的にゼロにしてください。

G10コマンドによるプログラムデータ入力を実行する際、アクティブなG90/G91モードの違いがオフセット上書きに与える深刻な影響とアラーム回避策は何ですか?

G10 を実行する際、コントローラはアクティブな座標モードを指示フィルターとして処理します。G90 モード下ではオフセットレジスタの既存値が指令値で完全に上書き(オーバーライト)されるのに対し、G91 モード下では現在のレジスタ値に対して指令値が加算(アドティブ)処理されます。プログラム内で座標モードの管理が曖昧なまま G10 が読み込まれると、オフセットが想定外に書き換わり、復帰時に工具がワークに衝突して主軸ハウジングを破損させるようなハードクラッシュを引き起こします。これを完全に回避するための実践策として、G10 を使用するブロックの内部で明示的に座標指令を併記(例:G90 G10 L2 P1 X...)し、アクティブなモーダル状態に依存しない静的なオフセット上書きを実行してください。

Mitsubishi旋盤でUやWなどの座標アドレス文字を使用しているとき、G90/G91を切り替えた際に発生する「P34プログラムエラー」アラームの根本原因と解消法は何ですか?

Mitsubishiの旋盤制御において、デフォルトでは #1076 AbsInc パラメータが 1 に設定されており、これによりモーダルな G90/G91 ではなく、絶対座標に X/Z、増分座標に U/W という個別の軸アドレス文字が自動的にマッピングされます。この状態でプログラム内に不要な G90 または G91 指令が読み込まれたり、Gコードリスト 6/7 仕様の工作機械において G190/G191 の代わりに標準の G90/G91 が指定されたりすると、パーサーが構文解釈エラーを起こして P34 アラーム(プログラムエラー)をトリガーし、非計画停止を引き起こします。これを根本解決する実務手順として、機械パラメータ #1076 の値を 0 に変更してモーダル切り替え方式に変更するか、あるいはプログラム中の G90/G91 を全て削除して X/Z および U/W によるアドレス指向の記述に一本化してください。

まだ解決しませんか?

このトピックについて、AIアシスタントに自然言語で質問できます。検証済みの情報源に基づいており、ハルシネーションはありません。

AIアシスタントに質問する
Hakan Gündoğdu
Hakan Gündoğdu
  • CNC CARE Co-Founder (May 2025 - Present)
  • Mitsubishi Electric NC Sales & Service Section Manager (2008 - 2025)
  • Reis CNC Service Engineer (2003 - 2005)
  • Ören Kalıp CNC Mold Line Team Leader (1999 - 2002)

CNC工作機械業界のあらゆる分野で25年以上の経験を持ち、ブランドに依存しないコンサルティング、エンジニアリング、純正部品サービスを提供するCNC CAREの共同創業者として活動を続けています。

関連記事

このトピックに関する他の記事

Siemens CYCLE800の使い方:平面旋回とツールアライメント

SiemensのCYCLE800による3+2軸加工をマスターしましょう。平面旋回、ツールアライメント、パラメータ設定から、アラーム61190や61153といったエラーのトラブルシューティングまで詳しく解説します。

SiemensProgramming

Siemens CYCLE72 パスミーリング: 輪郭加工の設定とプログラム解説

SinumerikのCYCLE72輪郭ミーリングを徹底解説。_KNAMEや_VARIの正しいパラメータ設定、シミュレーション時のアラーム61123回避方法、チャッククランプ確認によるアラーム700017防止まで、機械停止や不良品発生を防ぐ実務ノウハウを紹介します。

SiemensProgramming

Siemens CYCLE952旋削サイクルの設定とプログラム解説

SinumerikのCYCLE952輪郭旋削サイクルを徹底解説。_PRGや_CONRによるブランク境界定義、アラーム61051/61059の回避方法、および設定データSD55212による自動メモリ管理の設定手順まで詳しく紹介します。

SiemensProgramming

Siemens SLOT1/SLOT2溝フライスcycleプログラミング

Siemens製Sinumerikの溝加工cycleSLOT1・SLOT2のプログラミングを解説。パラメータ設定、Alarm 61000を防ぐ工具半径補正、VARIを用いた障害物回避など、量産時のロット間再現性を高め不良品発生を防ぐための実務ノウハウを紹介します。

SiemensProgramming