G43・G44・G49工具長補正完全ガイド:機械衝突を完全に防ぐ極意
G43、G44、G49によるCNC工具長補正の安全なプログラミング手法とトラブル防止パラメータを徹底解説。Fanuc、Siemens、Mitsubishiの特性差やパラメータ設定(5006番、#1268等)を把握し、バイスやチャックへの機械衝突、寸法ばらつきを防ぎます。
はじめに
ツールホルダの段取り前にファナックの5006番(TOS)や三菱電機の#1268番(極性やシフト方式)といったパラメータ設定の整合性を検証しないまま量産を開始すると、2ロット目から急激に寸法ばらつきが広がり、最終検査で初めて大量の不良品発生が発覚するという深刻な生産リスクに直面します。特に、G43による工具長補正を指令した直後に絶対座標(アブソリュート)指令による移動を行わないと、制御装置内部の座標レジスタのみがシフトし、物理的なスピンドル軸の同期が失われます。この状態で後続のインクリメンタル指令や固定サイクルが実行されると、工具先端は想定外の軌道を描き、高速回転するスピンドルごとバイス口金やクランプ、回転するチャックへ激しく衝突します。このような非計画停止や高額な超硬工具の破損、主軸ベアリングの損傷を防ぎ、ロット間の高い再現性を確保するためには、G43(正方向補正)、G44(負方向補正)、およびG49(補正キャンセル)の挙動とパラメータの完全な掌握が不可欠です。
技術概要
| 仕様項目 | 詳細 |
|---|---|
| G-Code指令 | G43(正方向工具長補正)、G44(負方向工具長補正)、G49(工具長補正キャンセル) |
| モーダルグループ | グループ08(モーダル) |
| 対応ブランド | Fanuc、Siemens、Mitsubishi |
| 重要パラメータ | Fanuc: 5001 (TLC/TLB タイプA/B/C)、5006#6 (TOS 物理移動 vs 数学的座標シフト)、5003#6 (LVK リセット時の補正保持);Siemens: MD20380 $MC_TOOL_CORR_MODE_G43G44 (モードA/B/C)、MD20382 $MC_TOOL_CORR_MOVE_MODE (退避モード);Mitsubishi: #1268 (ext04/bit6 軸移動タイプ vs 座標シフトタイプ)、#1247 (set19/bit0 軸移動なし指令時の動作挙動)、#1274 (ext10/bit3 H単独指令有効化)、#8122 (Keep G43 MDL M-REF)。 |
| 主な運動学的制約 | 工具長補正起動指令(G43/G44)は、円弧補間ブロック(G02/G03)内で指令したり、G04(Dwell)、G53(機械座標系選択)、またはG28(基準位置復帰)と同じブロックに混在させてはなりません。 |
クイックリード
- 正しい補正ベクトルの演算を保証し、P70円弧エラーを回避するために、G43工具長補正は必ず直線運動ブロック(G00またはG01)において絶対座標(アブソリュート)指令とともにプログラミングしてください。
- 物理的なHレジスタのインデックスと実際にロードされている工具を一致させてください。誤ったオフセットを呼び出したり、ツールチェンジ前にG49によるキャンセルを忘れたりすると、spindleが直接テーブルへ衝突する原因になります。
- Fanucパラメータ5001(TLC/TLB)またはSiemensのMD20380を設定することで、オフセットをZ軸に静的に適用するか(タイプA)、アクティブな加工平面に対して垂直に動的に適用するか(タイプB)、あるいは指令された任意の軸に直接適用するか(タイプC)を制御できます。
- Fanucパラメータ5003番6ビット(LVK)を1に設定することで、CNCリセット後もアクティブな補正ベクトルを安全に保持し、サイクル再スタート時の予期せぬ座標ジャンプを防ぎます。
- Mitsubishiシステムでは、パラメータ#1274番3ビットを有効にすることで、G43やspindleのZ位置を再指令することなく、サイクル途中でHコード単独による工具摩耗オフセットの更新(切り替え)が可能になります。
- Mitsubishiシステムにおいて、G43、G44、G49をG04(Dwell)、G53(機械座標系選択)、またはG28(基準位置復帰)などの異種コマンドと同一ブロックに記述するのを避けることで、コマンド組み合わせエラー(P45アラーム)を確実に防止します。
基本概念
G43およびG44指令の実務的なプログラミング効果は、spindleにロードされた特定の工具の物理的なゲージ長に合わせて、工具先端のプログラム経路を数学的に調整することです。この動的な座標シフトにより、プログラマーは個々の工具長を実際の座標ベクトルにハードコーディングすることなく、ワークの図面ゼロポイントのみを基準にしてユニバーサルなG-codeを記述することができます。
プログラマーおよびオペレータは、物理的な工具に対応する正しいHオフセット番号を確実に呼び出すよう細心の注意を払わなければなりません。誤ったオフセットを呼び出したり、ツールチェンジ前にG49キャンセル指令の実行を怠ったりすると、spindleがワークやテーブルに直接激突する原因になります。安全性を完全に維持するために、g28-g29-g30-reference-point-return指令を使用して機械基準位置に復帰すると、復帰する軸の工具長補正は自動的にキャンセルされます。
高度な3D座標回転(G68/G69)を利用する場合、プログラマーはコマンドの入れ子(ネスト)構造を綿密に構成する必要があります。典型的なエラー原因の一つは、工具長補正が有効な状態で座標回転を指令し、回転を事前にキャンセルすることなく別の工具長オフセット(例:G43 H2)を適用しようとすることです。これは座標マトリクスを数学的に著しく歪ませる原因になります。また、工具長補正はg40-g41-g42-tool-nose-cutter-radius-compensationで管理される工具径補正とは完全に独立したシステムであり、輪郭の重複エラーを防ぐために論理的な順序でプログラミングする必要があります。
コマンド構造
工具長オフセットは、工具長補正を制御するグループ08に属するモーダルなG-codeです。基本的な構文には、G-code、補正対象となる軸、およびオフセット登録レジスタ番号を指定するHアドレス(パラメータによってはDアドレス)が必要です。軸アドレス(例:Z、X、またはY)は補正対象となるターゲット軸を指定し、Hアドレスは工具の補正番号を指定します。
G43は正方向の工具長補正を適用します。これは登録されたオフセット値がプログラムされた座標値に加算されることを意味します。G44は負方向の工具長補正を適用します。これは登録されたオフセット値がプログラムされた座標値から減算されることを意味します。G49はアクティブな工具長補正をキャンセルし、機械を補正のない直接的な座標移動状態に戻します。また、オフセットレジスタにゼロを指令する(H0またはH00)ことによっても補正をキャンセルできます。
各ブランド環境における構文構造:
- Fanuc:
G43 Z_ H_;またはG44 Z_ H_; - Siemens ISOモード:
G43 [Axis]... H...;またはG44 [Axis]... H...; - Mitsubishi:
G43 Z_ H_ ;またはG44 Z_ H_ ; - ユニバーサルキャンセル:
G49;またはH0;
ブランド別応用
Fanuc
Fanucシステムにおいて、工具長補正は制御装置パラメータ5001および5006に深く結びついています。その挙動はマシニングセンタと旋盤で異なります。Fanucにおける工具長補正の処理は、独自のシステム内での高度な数学的カスタマイズ性によって極めて明確に定義されています。
標準的な正方向工具長補正の呼び出しは、Z軸に対して正方向補正を適用するために、`G43 Z100.0 H01;` のように記述します。G44は負方向にオフセットを適用し、G49はオフセットをキャンセルします。
- パラメータ5001番bit 0 (TLC) およびbit 1 (TLB): Mシリーズ(マシニングセンタ)における工具長補正の幾何学的な軸挙動を決定します。タイプA(0)は、常に補正をZ軸のみに静的に適用します。タイプB(1)は、アクティブな加工平面(G17、G18、またはG19)に対して垂直な軸に補正を動的に適用します。タイプC(2)は、G43/G44ブロック内で指令された任意の軸に対して直接補正を適用します。
- パラメータ5006番bit 6 (TOS): 工具長補正が物理的にどのように実行されるかを定義します。0を設定すると物理的なサーボ軸移動によって補正が適用され、1を設定すると工具を動かさずに内部座標系のみを数学的にシフトします。
- パラメータ5003番bit 6 (LVK): CNCリセット時にアクティブな工具長補正ベクトルを安全に保持する(値1)か、クリアする(値0)かを決定します。
- パラメータ5040番bit 4 (TLG): 自動工具交換装置(ATC)を備えた旋盤システムにおいて、標準のG43/G44を使用するか、旋盤ATC専用フォーマットのG43.7およびG44.7を使用して工具長オフセットを呼び出すかを指定します。
- パラメータ6000番bit 3 (V15): レガシー互換モードを有効にし、現代的なSeries 16/18のシステム変数構造の代わりに、旧式のSeries 15マクロシステム変数(例:#2401など)を使用してオフセット値を読み書きできるようにします。
- アラーム PS0027 (NO AXES COMMANDED IN G43/G44): Mシリーズにおいて、工具長補正がタイプCに設定されているにもかかわらず、G43またはG44ブロック内に物理的な軸アドレス(例:Zなど)が指定されていない場合にトリガーされます。
- アラーム PS0030 (ILLEGAL OFFSET NUMBER): HコードまたはDコードで指定されたオフセット番号が過大であり、システムの最大許容オフセットメモリ制限を超えている場合にトリガーされます。
- アラーム PS0049 (ILLEGAL OPERATION G68/G69): 3D座標回転指令(G68/G69)と工具長補正指令(G43/G44/G49)が正しく入れ子(ネスト)になっていない場合、または座標回転の有効中に工具長補正が有効であり、かつ事前に回転をキャンセルせずに新しい工具長オフセットを適用しようとした場合にトリガーされます。
- アラーム PS5452 (IMPROPER G-CODE 5AXIS MODE): 高度なツールセンターポイント制御(TCP)または工具軸方向工具長補正がすでに有効であるときに、標準的な工具長補正を指令した場合にトリガーされます。
- シリーズ間の違い: Mシリーズ(マシニングセンタ)とTシリーズ(旋盤)の間には根本的なアーキテクチャ上の相違があります。旋盤は一般に、G43を使用せずに、工具幾何/摩耗補正の両方をTコードによってネイティブに処理します。ただし、旋盤システムに標準のタレットではなく自動工具交換装置(ATC)が搭載されている場合、パラメータ5040番bit 4(TLG)の設定に基づきG43またはG43.7/G44.7が使用されます。また、レガシーマクロとの互換性は、Series 15変数の場合はパラメータ6000番bit 3(V15)によって有効化されます。
警告: プログラマーは、ツールチェンジや加工平面変更を行う前に、必ずG49によるキャンセルや基準位置復帰を実行し、オフセットと回転の適用において厳格で標準化されたネスト構造を構築してPS0049アラームを防止する必要があります。
Siemens
Siemens制御装置は非常に柔軟な構造を提供し、アクティブな言語モードに応じて工具長オフセットを異なる方法で処理します。重要なマシンパラメータにはMD20380およびMD20382があり、レガシーなISOプログラムやネイティブのDIN操作に適合させることができます。
ISOダイアレクトモードでは、正方向の工具長補正は `G43 Z100.0 H01;` によって有効化されます。ここでHワードは工具オフセットデータレジスタを指定します。解除はG49を指令するか、H00をプログラミングすることで実行されます。
- MD20380 $MC_TOOL_CORR_MODE_G43G44: ISOモードでHによってプログラムされた工具長補正がどのように処理されるかを定義するBYTEパラメータ(設定範囲:0〜2)です。モードA(0)は、工具長Hを常に第3幾何軸(通常はZ軸)に強制的に適用します。モードB(1)は、アクティブな平面(G17 = Z軸、G18 = Y軸、G19 = X軸)に基づいて適用軸を決定します。モードC(2)は、ブロック内でHワードと同時にプログラムされた特定の軸に直接工具長補正を適用します。
- MD20382 $MC_TOOL_CORR_MOVE_MODE: 工具長補正の退避動作を定義するBOOLEANパラメータです。0(FALSE)に設定すると、関連する軸がプログラム上で明示的に移動するように指令された場合にのみ、工具長成分が物理的に退避されます。
- アラーム 14165 (Channel %1: Block %2): MD20380がモードC(値2:指令軸に作用)に設定されている状態で、同じブロックに幾何軸を少なくとも1つも指定せずにG43またはG44とHワードを実行した場合にトリガーされます。
- アラーム 10915 / 10916: アクティブな工具長補正値とプログラムされた幾何形状が組み合わさった結果、物理的または運動学的に位置決め不可能な領域(アクティブな変換中のリミット違反など)に達した場合にトリガーされます。制御装置の先読みシステムがこれを検知し、問題のあるブロックが実行される前に機械を安全に停止させます。
- シリーズ間の違い: Siemens制御装置は、使用する言語モードによって工具長補正を全く異なる方法で処理します。ISOダイアレクトモード(G291)で運転する場合、プログラマーはG43またはG44とHオフセットワードを使用して工具長補正を明示的に有効にする必要があります。しかし、ネイティブのSiemens DINモード(G290)では、工具と刃先オフセット番号(例:T1 D1)を呼び出すだけで自動的に工具長がバックグラウンドで有効化され、明示的なG43/G44指令は必要ありません。
警告: 実務において非常に頻繁に見られるプログラミングエラーは、ISOモードで運転しているにもかかわらず、ネイティブSiemensの自動有効化挙動を想定して、G43/G44やHコードの記述を怠ってしまうことです。
Mitsubishi
Mitsubishiシステムは、パラメータ#1268および#1247を通じて工具オフセットを高度に管理します。マシニングセンタ(M)と旋盤(L)の両方のフォーマットをシームレスに処理し、軸移動と座標シフトに関して非常に高いパラメータ自由度を提供します。
標準的なミーリングの呼び出しは、Z軸の正方向に工具長補正を適用するために、`G43 Z50.0 H01 ;` のようにプログラムします。キャンセルは `G49 Z100.0 ;` または `H0` を指令することで行います。
- パラメータ #1268 ext04/bit6 (工具長補正演算方法): 機械がオフセットを物理的にどのように適用するかを決定します。0(軸移動タイプ)を設定すると、G43指令時に即座に物理的なサーボ軸移動によって補正が実行されます。1(座標シフトタイプ)を設定すると、内部座標系がシフトされ、次のアブソリュート移動コマンドが指令された時点で補正位置に移動します。
- パラメータ #1247 set19/bit0 (工具長補正指令時の移動): 同一ブロックに軸移動が記述されていない状態でG43/G44が指令された場合の挙動を定義します。0は直ちに補正量分の軸移動を強制し、1は軸を移動させずに内部の現在位置カウンタのみに補正値を適用します。
- パラメータ #1274 ext10/bit3 (H単独指令): 1に設定すると、G43/G44のプレフィックスを再記述することなく、ブロック内でHアドレスのみを単独で記述(例:H02 ;)するだけでアクティブな摩耗オフセット値を更新できるようになります。
- パラメータ #8122 (Keep G43 MDL M-REF): 1に設定されている場合、手動での基準位置復帰を実行した後も、工具長オフセットのモーダル状態(G43)が保持されます。
- アラーム P45 (Gコード組合せエラー): G43、G44、またはG49が、G04(Dwell)、G53(機械座標系選択)、またはG28(基準位置復帰)などの同一ブロック混在不可能な異種コマンドと記述された場合にトリガーされます。
- アラーム P70 (円弧エラー): 工具長補正起動指令(G43/G44)が、円弧補間指令(G02/G03)と同一ブロックで記述された場合に発生します。
- アラーム P170 (補正番号範囲オーバー): 指令されたHオフセット番号が、機械仕様の最大オフセット登録範囲を超えている場合(例:200セット仕様の機械でH300を指令した場合など)にトリガーされます。
- アラーム Y51 108 (MCPアラーム): 自動運転起動時に、互いに相反するパラメータ設定(例:#1247 set19/bit0 = 1 かつ #1268 ext04/bit6 = 1)が同時に有効化されている場合に発生します。
- シリーズ間の違い: マシニングセンタ(M)システムと旋盤(L)システムの間には厳格なアーキテクチャ上の相違があります。標準的なMシステムでは、工具長はG43/G44とHアドレスでネイティブに管理されます。標準的なLシステムでは、補正はTコマンドモーダル(例:T0101)を使用して自動的に呼び出されます。しかし、旋盤システムにおいてプログラムフォーマット切替機能(G188)を実行してマシニングセンタ互換モードに移行することで、Lシステムでも標準的なG43/G44およびHアドレス指令を受け付けるようになります。
警告: コマンド組合せエラーやP70アラームを防ぐために、プログラマーは絶対にG43/G44/G49を混在不可能コマンド(G04, G53, G28)や円弧補間(G02/G03)と同じブロックに指令してはなりません。
ブランド比較
| 比較項目 | Fanuc | Siemens | Mitsubishi |
|---|---|---|---|
| デフォルト補正軸の選択 | パラメータ5001(TLC/TLB)で決定:タイプA(Z軸固定)、タイプB(加工平面の垂直軸)、タイプC(ブロック内指令軸)。 | MD20380で制御:モードA(Z軸固定)、モードB(加工平面の垂直軸)、モードC(ブロック内指令軸)。 | G43/G44ブロック内で明示的に指令された軸に適用。 |
| 退避・オフセット実行挙動 | パラメータ5006番6ビット(TOS)により、物理的なサーボ軸移動(0)か数学的な座標シフト(1)かを選択。 | MD20382により、関連軸がプログラム上で明示的に指令された場合にのみオフセットを退避する設定が可能。 | パラメータ#1268(ext04/bit6)により、物理軸移動(0)か内部座標シフト(1)かを選択。#1247(set19/bit0)で軸移動なしのG43/G44呼び出し時の挙動を制御。 |
| 旋盤との互換性 | 通常はTコードを使用。ATC搭載旋盤ではパラメータ5040番4ビット(TLG)に基づき、G43/G44またはG43.7/G44.7使用可能。 | DINモード(G290)ではT_ D_で工具長を自動処理。ISOダイアレクトモード(G291)ではG43/G44およびHワードを処理。 | Lシステムでは通常Tコードを使用するが、G188(プログラム形式スイッチ)によりG43/G44を含む完全なMシステム互換モードへ切り替え可能。 |
| H単独指令のサポート | — (情報源なし) | H00またはG49でキャンセル。ネイティブSiemensではDコードによる工具呼び出しを適用。 | パラメータ#1274(ext10/bit3)により、サイクル途中にHコード単独ブロック(例:H02 ;)で摩耗オフセット値を動的に更新可能。 |
| 複数軸同期制御 | — (情報源なし) | — (情報源なし) | 複数軸同期制御においてG43を完全に統合し、追従するスレーブ軸に対してもそれぞれの工具補正量を自動適用。 |
技術解析
Fanucにおける工具長補正の処理は、その深くて詳細なパラメータの幾何学的カスタマイズ性によって極めて明確に定義されています。自社システムにおいて、FanucはパラメータTLCおよびTLBを介して補正ベクトルの幾何学的挙動に3つの選択肢を提供しています。タイプAはオフセットをZ軸に静的に固定し、タイプBはアクティブな加工平面を動的に追従して補正を垂直方向に適用(アングルヘッドアタッチメントに最適)、そしてタイプCはG43ブロックで指令された任意の軸に直接補正を限定します。さらに、Fanucはパラメータ5006番6ビット(TOS)を通じて、オフセットのキネマティックな適用方法を定義させます。工具長補正を実際のサーボ軸の物理移動によって実行するか、あるいは物理移動を伴わずに内部の座標系表示を数学的にシフトして完了させるかを選択することが可能です。
Siemens制御装置は、レガシーなISOコードの処理に関して非常に高度な適応力を持つ多層構造を備えている点で、他のCNCシステムと一線を画しています。第一に、Siemensは補助コードを一切必要とせずにTコードとDコードで工具長が完全自動化されるネイティブDINモード(G290)と、レガシープログラムを変更なしで処理するためにG43/G44やHワードを厳密に解釈するISOダイアレクトモード(G291)をシームレスに切り替える能力を備えています。第二に、MD20380を通じてG43/G44ブロックの3種類の解釈戦略をプログラマーに提供します。常に第3幾何軸(モードA)にオフセットを作用させるか、G17/G18/G19平面(モードB)に基づいて動的に補正軸を切り替えるか、またはHワードと同時にプログラムされた特定の軸(モードC)に限定してオフセットを適用させるかを決定できます。最後に、MD20382を介した柔軟な退避(リトラクト)挙動が挙げられます。キャンセル時に、プログラム上で関連軸が明示的に移動指令された場合にのみ、工具長成分の物理的な退避移動を実行するように構成できるため、複雑な3D軌跡遷移における突発的で不安定な動きを防ぎます。
Mitsubishi制御装置は、運用の安全性と柔軟性を極限まで高めるパラメータ構成を提供しており、これがFanucやSiemensとの差別化要素となっています。最も際立った挙動の一つは、パラメータ#1268(ext04/bit6)によって制御される工具長補正のデュアル演算処理モードです。G43指令時に直ちに補正量分を物理移動させるか(軸移動タイプ)、または内部の座標グリッドをシームレスにシフトし、次のアブソリュート位置決めコマンドを待機させるか(座標シフトタイプ)をグローバルに定義できます。第二に、H単独指令機能(パラメータ#1274のext10/bit3 = 1)のネイティブサポートが挙げられます。これにより、G43プレフィックスやZ軸の再指令を行う必要がなく、独立した1行に新しいH番号を記述するだけで、サイクル中の工具長摩耗オフセット値を動的にスワップできます。最後に、G43を複数軸同期制御へ完全に統合する機能があります。マスター軸に対してG43が指令されると、制御装置は同期しているスレーブ軸に対してもそれぞれの工具補正値をインテリジェントに適用し、異種軸干渉エラーをバイパスします。
プログラム例
これら3つの制御システムの実務におけるプログラミングの具体的な相違点を示すため、現場での工具補正起動およびキャンセルシーケンス of 事例を以下に紹介します。
Fanuc ミーリングプログラム例
O1100 (FANUC G43 TOOL LENGTH COMP) ;
N10 G90 G21 G40 G49 (安全ブロック:絶対指令、mm、補正キャンセル) ;
N20 T01 M06 (工具交換:工具1番をロード) ;
N30 S1200 M03 (主軸正転 1200 rpm) ;
N40 G00 X50.0 Y50.0 (XY平面でワーク外側の早送り位置決め) ;
N50 G43 Z10.0 H01 (レジスタH01を使用してZ軸の正方向工具長補正を有効化) ;
N60 G01 Z-5.0 F200.0 (切削深さまで切り込み送り) ;
N70 X100.0 F300.0 (直線ミーリング切削実行) ;
N80 G00 Z50.0 (安全高さへ早送り退避) ;
N90 G49 M05 (工具長補正キャンセルおよび主軸停止) ;
N100 G28 X0 Y0 Z0 (機械基準位置への復帰) ;
N110 M30 ;
空運転 (dry run)動作解析:
- N10ブロックにより、ミリメートル単位の絶対座標系を確立し、工具径補正(G40)および工具長補正(G49)が確実にキャンセルされた安全な状態を作ります。
- N20ブロックで工具交換を実行し、spindleに工具1番をロードします。N30ブロックで主軸を正転(時計回り)1200 rpmで起動します。
- N40ブロックでX50.0およびY50.0の座標へ各軸を早送りし、カッターをワーク干渉領域の外側に位置決めします。
- N50ブロックにおいて、登録レジスタH01内のオフセット値を使用してZ軸の正方向工具長補正(G43)を有効にし、Z10.0 mmをターゲットに指令します。制御装置はH01から補正値を読み取り、Z軸をその補正距離分だけ物理的に移動させます(パラメータ5006番6ビットが0に設定されていると仮定)。
- N60ブロックでZ軸を切削深さ-5.0 mmまで200 mm/minで送り移動させます。N70ブロックにおいて、工具長補正が有効な状態でX100.0まで300 mm/minの速度で直線ミーリング加工を実行します。
- N80ブロックで安全高さZ50.0まで早送り退避し、N90ブロックで工具長補正をキャンセル(G49)して主軸を停止(M05)します。
- N100ブロックで機械基準位置復帰(g28-g29-g30-reference-point-return)を実行し、ワークスペースを安全にクリアします。
Siemens ISO Dialect Program Example
; SIEMENS G43 TOOL LENGTH COMP IN ISO DIALECT
N10 G90 G21 G40 G49 (絶対指令、mm、補正キャンセル)
N20 T02 M06 (工具2番をロード)
N30 G97 S1500 M03 (主軸正転 1500 rpm)
N40 G00 X40.0 Y40.0 (早送り位置決め)
N50 G43 Z15.0 H02 (レジスタH02を使用して長さオフセットを有効化)
N60 G01 Z-10.0 F250.0 (切削深さまでZ軸送り)
N70 Y80.0 (直線プロファイル切削実行)
N80 G00 Z100.0 (逃げ平面へ早送り退避)
N90 G49 M05 (工具長補正解除および主軸停止)
N100 M30
空運転動作解析:
- N10ブロックにより、ミリメートル単位の絶対座標モードを設定し、工具径補正および工具長補正を完全にキャンセルします。
- N20ブロックで工具交換を実行し、工具2番をロードします。N30ブロックで主軸を正転(時計回り)1500 rpmで起動します。
- N40ブロックでX40.0およびY40.0の座標へ各軸を早送りし、安全なアプローチ開始点を確立します。
- N50ブロックにおいて、登録レジスタH02に保存されているオフセット値を使用してZ15.0をターゲットに正方向工具長補正(G43)を実行します。制御装置は、有効なパラメータMD20380(モードAと仮定してZ軸に適用)を介してH02の値を処理します。
- N60ブロックでZ軸を切削深さ-10.0 mmまで250 mm/minで送り移動させます。N70ブロックでオフセットが有効な状態でY80.0までの直線プロファイル切削を実行します。
- N80ブロックでZ軸を安全な逃げ平面Z100.0まで早送りで退避させます。N90ブロックで工具長補正を解除(G49)して主軸を停止します。
Mitsubishi Milling Program Example
; MITSUBISHI G43 TOOL LENGTH COMP WITH STANDALONE UPDATE
N10 G90 G21 G40 G49 G17 (絶対指令、mm、補正キャンセル、XY平面) ;
N30 T03 M06 (工具3番をロード) ;
N40 S1100 M03 (主軸正転 1100 rpm) ;
N50 G00 X0.0 Y-30.0 (XY平面で早送り位置決め) ;
N60 G43 Z20.0 H03 (レジスタH03を使用して工具長オフセットを適用) ;
N70 G01 Z-8.0 F150.0 (切削深さまでZ軸直線送り) ;
N80 H33 (サイクル途中に単独指令でアクティブな摩耗オフセットレジスタをH33に更新) ;
N90 X100.0 F280.0 (更新されたオフセットベクトルでミーリング切削) ;
N100 G49 Z100.0 M05 (補正キャンセルおよびZ軸早送り退避、主軸停止) ;
N110 M30 ;
空運転動作解析:
- N10ブロックにより、アクティブな各補正をクリアし、絶対座標モードでの標準的なXY平面(G17)位置決めを確立します。
- N30およびN40ブロックで工具交換を実行し、主軸を正転(時計回り)1100 rpmで起動します。N50ブロックでX0.0およびY-30.0の座標へ早送り位置決めします。
- N60ブロックで、レジスタH03を使用してZ20.0をターゲットに正方向工具長補正(G43)を有効にします。機械はオフセットを物理的に適用します(パラメータ#1268が0に設定されていると仮定)。
- N70ブロックでZ軸を切削深さ-8.0 mmまで150 mm/minで送り移動させます。
- N80ブロックにおいて、H33単独コマンドを発行します。パラメータ#1274のext10/bit3が1に設定されているため、Mitsubishi制御装置はG43プレフィックスや新しいZ軸指令を記述することなく、サイクル途中でアクティブな工具長補正レジスタをH33へ動的に変更(スワップ)します。
- N90ブロックにおいて、更新された工具オフセットベクトルを使用して、X100.0まで280 mm/minの速度で直線ミーリング切削を実行します。
- N100ブロックでアクティブな工具長補正をキャンセル(G49)しながら、Z100.0の退避位置へ移動し、主軸を停止します。
エラー解析
| ブランド | アラームコード | 発生条件 | オペレータから見た症状 | 根本原因 / 対策 |
|---|---|---|---|---|
| Fanuc | PS0027 | タイプCの工具長補正構成がアクティブであるにもかかわらず、ターゲット幾何軸を指定せずにG43/G44ブロックを実行した場合。 | 機械が即座に停止し、操作パネルに「PS0027 NO AXES COMMANDED IN G43/G44」エラーが点滅表示されます。 | タイプCは、ブロックで指令された任意の軸に対してのみ補正を適用するように設計されています。対策: G43/G44コマンドと同一ブロックに、ターゲット軸の移動座標(Z軸など)を記述してください。 |
| Fanuc | PS0030 | 指令されたHまたはDオフセットインデックスが、システムの最大許容登録容量を超えている場合。 | 自動運転サイクルが強制的にアボートされ、操作画面に「PS0030 ILLEGAL OFFSET NUMBER」アラームが点滅表示されます。 | 指定したオフセット登録IDが、ハードウェアの上限メモリ限界を超えているプログラミング入力ミスです。対策: メモリ内の有効なオフセットインデックスを確認し、上限を超えない登録IDを指定してください。 |
| Fanuc | PS0049 | 座標回転(G68/G69)と工具長補正のネストが誤っているか、またはG68の回転有効中に補正キャンセルを行わずにオフセット値を更新しようとした場合。 | 主軸は回転し続けますが、軸移動がフリーズし、「PS0049 ILLEGAL OPERATION G68/G69」アラームが画面に点滅表示されます。 | 座標回転の有効中にオフセットが書き換わると、3D座標回転マトリクスが数学的に破綻します。対策: G68/G69ブロックの周囲にG43/G49を対称的かつ正しく入れ子(ネスト)にするか、オフセットを変更する前に必ず座標回転をキャンセルしてください。 |
| Siemens | Alarm 14165 | MD20380がモードC(指令された軸に作用)に設定されているにもかかわらず、同一ブロックに幾何軸を1つも指定せずにHコード付きでG43/G44を指令した場合。 | プログラムの実行が即座に一時停止し、「Alarm 14165 Channel %1: Block %2」が表示されます。 | モードCが有効な状態で、指令ブロックに必要な幾何軸のアドレス情報が不足しています。対策: G43/G44ブロック内に、補正対象となるターゲット幾何軸の座標(ZやXなど)を追記してください。 |
| Siemens | Alarm 10915 / 10916 | アクティブな工具長補正値とプログラムされた運動軌跡が組み合わさった結果、物理的なソフトウェア制限スイッチに抵触するか、あるいは運動学的に到達不可能な領域へ移行した場合。 | 制御装置の先読み予測処理が検知し、問題ブロックが実行される前に軸を安全に減速・停止させ、「Alarm 10915/10916」を表示します。 | 工具長レジスタに過大または異常な補正値が入力されているか、アクティブな空間変換が物理軸の移動可能範囲をオーバーしています。対策: 有効なD/Hオフセットレジスタの登録値を確認し、ターゲット座標が物理移動制限内に収まるように経路をプログラムしてください。 |
| Mitsubishi | P70 | 円弧補間ブロック(G02/G03)内で工具長補正起動指令(G43/G44)が実行された場合。 | 軸移動が即座に停止し、アラーム画面に「P70 Arc error」エラーが点滅表示されます。 | アクティブな曲線軌跡上にオフセットベクトルを動的・数学的に生成することができません。対策: G43/G44のオフセット有効化は、円弧補間を開始する前の直線ブロック(G00またはG01)で実行してください。 |
実務応用ノウハウ
実生産におけるロット間の繰り返し精度と治具干渉の防止を極限まで高めるには、制御パラメータと物理挙動の完全な一致が必須条件となります。例えば、三菱電機製CNCにおいてパラメータ#1268(ext04/bit6:工具長補正演算)を「1」(座標シフト方式)に設定している場合、またはファナックでパラメータ5006番6ビット(TOS)を「1」に設定している環境では、G43およびHコードを単独ブロックで実行した時点では、座標表示が更新されるだけでサーボ軸の物理的な移動は発生しません。この直後にアブソリュート移動(G00またはG01)を指令しないまま、G91によるインクリメンタル指令や穴あけ固定サイクルに移行すると、物理軸の同期ズレによって工具先端が未補正のままワークにアプローチし、チャックやバイス口金、インデックスタレットに致命的な激突(ハードクラッシュ)を引き起こします。これにより、ロットごとの再現性が著しく低下し、不良品発生が多発することになります。 また、三菱電機システムで自動基準位置復帰(G28)を実行するとアクティブな工具長補正は一時的に解除されますが、パラメータ#8122(G43モーダル保持)が「0」に設定されている場合、復帰完了後に補正は完全にクリアされます。ツールチェンジ後の最初の切削パスに入る前に、必ずパラメータ#1247(set19/bit0)の挙動を確認し、G43 H_ブロックにアブソリュート of Z軸アプローチ指令を明記する標準化プロセスを徹底してください。これにより、非計画停止を防ぎ、長期量産における製品寸法の一貫性を極限まで高めることができます。
関連コマンド
工具長補正を効果的かつ安全にプログラミングするためには、周囲のGコードおよび関連する補助ルーチンとの相互関係を完全に理解しておく必要があります。
- G00(早送り): G43によって工具長オフセットベクトルが有効になるアプローチ中に、各軸を安全高さに早送り位置決めするために頻繁に使用されます。
- G28(基準位置復帰): 物理的な軸が機械の参考原点へ戻る移動の過程で、アクティブな工具長補正オフセットを自動的にキャンセルします。
- G43.1: 工具軸方向工具長補正(アクティブな工具ベクトル方向にオフセットを3次元的・立体的に適用)。
- G43.7 / G44.7: 旋盤ATC用工具長補正。Fanucシステムにおいてはパラメータ5040番4ビット(TLG)によって制御されます。
- G43.4 / G43.5: ツールセンターポイント制御(タイプ1 / タイプ2)。高度な5軸マシニングセンタ加工に適用されます。
- G68 / G69: 座標回転。回転時の座標マトリクス歪みやPS0049アラームを防ぐために、G43/G49との厳格なネストルールを遵守する必要があります。
- G10: プログラマブルデータ入力。NCプログラム内部から工具長オフセット登録値を直接レジスタデータベースに書き換える機能です。
おわりに
高精度かつ再現性の高い量産体制を維持するためには、G43による工具長補正を単なる定型コマンドとして扱うのではなく、使用するCNCブランド(ファナック、シーメンス、三菱電機)ごとのパラメータ(5001番、MD20380、#1268など)の挙動特性と、それに伴う物理的な軸移動を標準作業手順書(SOP)に組み込むことが極めて重要です。治具の段取り替え時やツール交換のサイクルごとにこれらの設定値を相互検証し、必ずアブソリュート移動コマンドとセットで工具長補正を有効化するプログラミングルールを徹底することで、干渉事故のリスクをゼロに抑え、2ロット目以降も極めて安定した加工寸法精度と連続稼働を実現できます。
よくある質問
量産時のロット間寸法ばらつきを防ぐため、工具長補正に関連してまず検証すべきCNCパラメータは何ですか?
ファナックのパラメータ5003番6ビット(LVK)および三菱電機のパラメータ#8122を最優先で確認してください。LVKが「0」の場合、加工中にリセットボタンを押すだけでアクティブな工具長補正ベクトルがクリアされ、再スタート時に座標がジャンプして寸法ばらつきや干渉の原因になります。ロット生産の一貫性を保つため、ツール段取りの標準チェックリストに「LVKパラメータが1に設定されていること」を追加し、リセット後も補正値を確実に保持する運用を徹底してください。
G43指令時に「PS0027」や「Alarm 14165」のアラームが発生して機械が停止する原因と対策は何ですか?
これは、制御装置の工具長補正モードが「Type C(指令軸に補正を適用)」に設定されているにもかかわらず、G43 H_ブロック内に移動先の座標(例:Z50.0など)が記述されていないことが直接の原因です。Type Cモードでは補正対象軸をコード上で明示する必要があるため、プログラミング時のテンプレートを必ず「G43 Z_ H_」と1ブロックに記述するルールへ改訂し、パラメータ設定とプログラム構文の不一致による突発的なアラーム停止を防止してください。
プログラム中のG68(座標回転)使用時に「PS0049」アラームが出て加工がストップしてしまいます。防ぐための正しい記述手順は?
ファナック等において、座標回転(G68)の有効化中に工具長補正(G43)の再呼び出しや変更を行うと、三次元座標の回転マトリクスと補正ベクトルが干渉し、数学的矛盾からPS0049アラームが作動します。これを防ぐためには、「必ずG69で座標回転をキャンセルした状態でG49により工具長補正を解除し、新しい工具を呼び出してから再度G43を適用した上でG68を指令する」という対称的なネスト(入れ子)構造を徹底してください。プログラム編集の際は、この呼び出しシーケンスが守られているかをエディタの検索機能で確認するルールを適用してください。
まだ解決しませんか?
このトピックについて、AIアシスタントに自然言語で質問できます。検証済みの情報源に基づいており、ハルシネーションはありません。

- 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といったエラーのトラブルシューティングまで詳しく解説します。
Siemens CYCLE72 パスミーリング: 輪郭加工の設定とプログラム解説
SinumerikのCYCLE72輪郭ミーリングを徹底解説。_KNAMEや_VARIの正しいパラメータ設定、シミュレーション時のアラーム61123回避方法、チャッククランプ確認によるアラーム700017防止まで、機械停止や不良品発生を防ぐ実務ノウハウを紹介します。
Siemens CYCLE952旋削サイクルの設定とプログラム解説
SinumerikのCYCLE952輪郭旋削サイクルを徹底解説。_PRGや_CONRによるブランク境界定義、アラーム61051/61059の回避方法、および設定データSD55212による自動メモリ管理の設定手順まで詳しく紹介します。
Siemens SLOT1/SLOT2溝フライスcycleプログラミング
Siemens製Sinumerikの溝加工cycleSLOT1・SLOT2のプログラミングを解説。パラメータ設定、Alarm 61000を防ぐ工具半径補正、VARIを用いた障害物回避など、量産時のロット間再現性を高め不良品発生を防ぐための実務ノウハウを紹介します。