SINUMERIK CNCにおけるG57設定可能ワークゼロオフセット設定ガイド
Siemens SINUMERIK CNCにおけるG57設定可能ワークゼロオフセットのプログラミング方法を解説。工具の衝突事故を防ぐ安全退避手順、MD 24000によるファインオフセット設定、Alarm 18312の回避法など、現場で必要な知識を網羅。
はじめに
CNCプログラムをサイクルの途中で緊急停止(アボート)したり、アクティブな座標レジスタをクリアせずに制御装置をリセットしたりすると、SiemensのSINUMERIKシステムはバックグラウンドでG57ゼロオフセットを保持し続けます。オペレータがこのアクティブなオフセットレジスタをクリアしないまま、手動でタレットの工具交換(インデックス)を行ったり、軸をジョグ移動させたりした後に自動運転を再開すると、ツールタレットは退避していないズレた軌跡を走行します。この結果、スピンドルやタレットが超硬工具をテーブル上の治具クランプ(clamp)やバイス口金(vise jaw)、あるいは回転するチャック(chuck)の爪にダイレクトに激突させ、壊滅的なハードコリジョン(衝突事故)を引き起こします。この衝撃は工具を粉砕し、軸のボールねじを湾曲させ、ドライブ過負荷アラームを発生させて未加工材(raw stock)をスクラップ不良品に変えてしまいます。このパラメータが未検証のまま量産に入ると、2ロット目から寸法ばらつきが広がり、最終検査で初めて不良が発見されるといった、再現性の低下や不良品発生のリスクを伴います。本稿では、SINUMERIKにおけるG57の設定方法、関連パラメータ、および衝突を防止する安全制限機能について詳しく解説します。
技術概要
| 技術属性 | 仕様 |
|---|---|
| コマンドコード | G57 |
| モーダルグループ | モーダル。グループ 8 (設定可能ワークオフセット)。 |
| 対応ブランド | Siemens (SINUMERIKシリーズ) |
| 重要パラメータ | MD 28080 ($MC_MM_NUM_USER_FRAMES), MD 24000 ($MC_FRAME_ADD_COMPONENTS)。 |
| 主な制限事項 | ファインゼロオフセット(微調整オフセット)の有効化にはMD 24000を1に設定する必要があります。ISO Dialect (G291) モードにおけるG10経由のプログラム書き込みには、MD 18800を1に、MD 20734のBit 13を1に設定してプリプロセッサストップを強制する必要があります。 |
クイックリード
- 基準シフト: G57は、ツールパスとワーク形状を整列させるために、アクティブなワーク座標系を絶対機械原点(MCS)からローカルワーク原点(WCS 4)へシフトします。
- バイリンガルインタープリタ: 外部のISO G10コマンドを介してG57を有効にするには、コンパイラをG291モードに切り替える必要があります。一方、ネイティブのSINUMERIKフレームはG290の下で実行する必要があります。
- ファインオフセット設定: オペレータは、アディティブ(追加型)シフト中のAlarm 18312の発生を防ぐために、MD 24000 ($MC_FRAME_ADD_COMPONENTS) を1に設定してファインオフセット(微調整オフセット)の加算を有効にする必要があります。
- プリプロセッサ同期: ISO Dialectモードにおいてプログラムでオフセットを書き込むには、MD 20734のBit 13を1に設定し、即座の実行ブロック同期のために自動プリプロセッサストップ(STPPRE)を実行させる必要があります。
- 衝突保護: 段取りオペレータは、主軸コンポーネントを保護するアクティブな除外エリアを定義するために、G25/G26プログラマブル作業領域制限(WALIMON)を使用する必要があります。
- リセットデフォルト値: 電源投入時またはNCリセット時に設定可能ゼロオフセットを自動的にクリアするため、MD 20150 $MC_GCODE_RESET_VALUES[7] をG500に構成します。
基本概念
Siemensの制御装置においてG57ゼロオフセットを実際にプログラミングすると、プログラム座標系の原点が機械の絶対零点(MCS)からローカルなワークゼロ点(WCS)へ直接シフトし、プログラマーはワークの形状データに基づいてツールパスを記述できます。機械原点とワークゼロ点との間の実際の距離は、ワークのタイプや物理的なクランプ方法によって完全に異なります。旋盤加工では、通常、このゼロオフセットはチャック(chuck)の締め代を補正するために入力されます。マシニングセンタでの加工では、G57は機械原点から治具クランプ(clamp)やバイス口金(vise jaw)に直接配置されたワークゼロ点までの物理的距離を定義するように調整されます。独立した座標原点を設定することで、対称的な輪郭や複数のセットアップを動的に加工できます。例えば、パレット上に配置された3つの同一ワークは、単一のサブプログラム(L47など)を実行しながら、ゼロオフセットG54、G55、およびG56(またはG57)に従って順次加工することができ、プログラムサイズを劇的に削減できます。
個々のユーザーゼロオフセット(G54からG599)は、粗調整オフセット(coarse offset)と微調整オフセット(fine offset)で構成され、これら2つが数学的に加算されてアクティブなワークゼロ点が決定されます。セットアップオペレータおよびプログラマーは、プログラム実行中に座標オフセットの登録状態と有効な境界に対して絶対的な警戒を維持しなければなりません。オペレータが手動でゼロプリセットを行ったり、アクティブなシフト中に軸を手動で移動させたり、不完全な軸引数でリセットを実行したりした場合、残りの軸はシフトされた値を保持し続けます。プログラムがサイクルの途中でアボート(強制終了)されたり、G57オフセットのキャンセルが実行される前にリセットされたりすると、オフセットはバックグラウンドでアクティブなまま残ります。オペレータがアクティブなオフセットレジスタをクリアせずにタレット(turret)の工具交換を行ったり軸を移動させたりすると、自動運転の再開時にツールタレットが退避していない経路を通って移動する原因になります。このような条件下では、スピンドルやタレットが工具をテーブル上の治具クランプ(clamp)、ワークのバイス口金(vise jaw)、あるいはチャック(chuck)の回転爪にダイレクトに激突させ、壊滅的なハードコリジョンを引き起こすことになります。
コマンド構造
G57コマンドは、4番目のユーザー設定可能なゼロオフセットフレームを設定するモーダルな準備機能です。一度選択されると、すべての絶対位置決め座標(G90)はG57座標原点を基準にして評価されます。G57は、別のワークオフセットコマンドに置き換えられるか、システムリセットによってアクティブなレジスタがクリアされるまで、制御装置のメモリ内で有効な状態を維持します。
ネイティブのSiemensモード(G290)では、G57は単独の命令として、または移動ブロック内で直接呼び出されます。ISO Dialectモード(G291)では、G10データ入力ブロックを使用してG57オフセットレジスタに座標値が書き込まれます。これにより、自動サイクル中にプログラムによる動的な座標更新が可能になります。
; ネイティブSINUMERIKモード: G57 ; G90 G57 G00 X__ Y__ Z__ D__ ;
; ISO Dialectモード: G291 ; G10 L2 P4 X__ Y__ Z__ ; G290 ;
| アドレス / 記号 | コマンドにおける役割 | 適用コンテキスト |
|---|---|---|
| X, Y, Z | 絶対位置ターゲット座標。 | アクティブなG57ゼロ点から評価されるターゲット座標を指定します。 |
| D | 刃先オフセット番号(補正番号)。 | アクティブな工具補正を選択します(D1〜D12。D0は補正キャンセル)。 |
| G10 | プログラマブルデータ入力。 | NCプロセッサに対して、ワークオフセットレジスタへのデータの書き込みを指令します。 |
| L2 | ワークオフセットデータ入力グループ。 | G10ブロック内の標準ワーク座標オフセットを指定します。 |
| P4 | 座標レジスタ選択コード。 | ISO Dialectモードにおいて、P4はG57ワークオフセットレジスタを選択します。 |
ブランド別応用
Siemens
Siemensの制御装置は、メモリ内で管理される動的なユーザーフレームとしてG57を処理します。システムはマシンデータMD 28080 ($MC_MM_NUM_USER_FRAMES) を使用してワークオフセットを割り当てます。外部のISOコード用にコンパイラインタープリタをアクティブにすることは、MD 18800 ($MN_MM_EXTERN_LANGUAGE) を介して制御されます。
ネイティブのSiemensモードでこのオフセットを有効にするための典型的なGコードブロックは次の通りです:G57 G17 G90 G00 X100.0 Y50.0 Z10.0 T1 D1。このブロックでは、制御システムがアクティブな座標系をG57にシフトし、XY平面(G17)を選択し、刃先位置補正(D1)を有効にして、軸をラピッド位置決めします。
- MD 28080 $MC_MM_NUM_USER_FRAMES: 制御メモリ内に割り当てられるユーザー設定可能オフセットの総数(標準のG54〜G57、および拡張のG505〜G599)を構成します。
- MD 24000 $MC_FRAME_ADD_COMPONENTS: 1に設定されている場合、ファインゼロオフセットコンポーネントを有効にします。0に構成されている場合、ファインオフセットを書き込もうとするとAlarm 18312がトリガーされます。
- MD 20734 $MC_EXTERN_FUNCTION_MASK (Bit 13): G10書き込みコマンド中に内部プリプロセッサストップ(STPPRE)を強制し、即座の同期を保証します。
- Alarm 18312: 「ファインオフセットが構成されていません(Fine offset not configured)」。MD 24000が無効になっているときにアディティブファインオフセット(G59)を書き込もうとすると発生します。
- Alarm 14800: 「プログラムされたパス速度がゼロ以下です」。F値がアクティブでない状態でG57に続いて送り移動がプログラミングされた場合に発生します。
- Alarm 61800: 「外部CNCシステムが見つかりません」。MD 18800が無効な状態でG291 ISO Dialectモードに切り替えようとするとトリガーされます。
- バージョンによる違い: SINUMERIK 840D slは、標準ウィンドウを最小化したマルチタッチのワイドスクリーンパネルや高度な衝突回避(Collision Avoidance)オプションをサポートしていますが、コンパクトな802D sl制御は幾何形状パラメータ(MD 10604など)がロックされており、カスタムサイドスクリーン画面などが制限されています。
警告: 個別のブロックスキップレベル / および /1 を持つレガシーISOコードを実行すると、Siemensの設定でそれらが個別に有効にされていない場合、予期しない軸移動が発生する可能性があります。
ブランド比較
ブランドフィルターにより本稿の対象がSiemens SINUMERIKシステムに限定されているため、このセクションでは異なるSiemens SINUMERIK制御シリーズ間でのG57ゼロオフセットの構成と機能を比較します。適切な制御シリーズを選択することで、ショップフロアでのゼロオフセット、パラメータ設定、および衝突回避システムの挙動が決定されます。
| 制御シリーズ | オフセットアーキテクチャ | 安全性と衝突防止 | パラメータおよびカスタムアクセス |
|---|---|---|---|
| SINUMERIK 840D sl | 粗調整、微調整、およびチェーン化された変換コンポーネントをサポートする、動的でモジュール式のフレームスタック。 | フルマルチチャネルの「衝突回避(Collision Avoidance)」ソフトウェアオプションとマルチタッチのワイドスクリーンをサポート。 | すべてのマシンデータ(幾何軸変更モードのMD 10604を含む)がロック解除され、構成可能です。 |
| SINUMERIK 828D | 標準のG54〜G57および最大99個の拡張オフセット(G505〜G599)をサポートする標準フレームスタック。 | 基本的な軸制限監視とソフトウェアリミットスイッチが機能しますが、高度なマルチチャネル衝突回避はサポートしていません。 | パラメータは標準のキースイッチ(保護レベル2/7)を介してアクセス可能で、チャンネル制限は事前構成されています。 |
| SINUMERIK 802D sl / Compact | 固定されたレジスタ割り当てと制限された拡張オフセット配列を持つ、基本的なゼロオフセットメモリ。 | 標準的なハードウェアリミットスイッチのみ。動的な衝突回避オプションはサポートしていません。 | 重要なマシンデータパラメータ(MD 10604など)はロックされており、オペレータによる変更はできません。 |
技術解析
Siemensの制御装置におけるゼロオフセット処理のアーキテクチャ上の動作は、動的でモジュール式の「フレーム(frame)」メモリスタックに依存しています。ゼロオフセットを固定された絶対座標レジスタとして格納するのではなく、SiemensはG57を基本の設定可能なフレームとして扱います。この基準となるG57フレームの上に、プログラマーはプログラム内で絶対オフセット(TRANS、ROT、SCALE、MIRROR)やアディティブ(追加型)モディファイア(ATRANS、AROT、ASCALE、AMIRROR)を動的にチェーン化できます。これらのフレームは、アクティブなパラメータに応じて、マルチレベルの抑制コマンド(G53、G153、SUPA、またはG500)を使用して、グローバルまたは選択的に非表示(抑制)にすることができます。これにより、従来の固定された絶対座標系と比較して、プログラミングの柔軟性が大幅に向上します。
また、Siemensはバイリンガルの切り替え式コンパイラモデルで動作します。制御装置がG10オフセット入力やG57選択といったレガシーなISOスタイルのブロックをコンパイルするには、プログラマーがG291を介して明示的にコンパイラをISO Dialectモードに切り替える必要があります。その後、高度なパラメータフレームやネイティブのゼロオフセットを処理するために、プログラムでG290を実行してネイティブのSINUMERIKモードに戻す必要があります。さらに、Siemensはレガシーのブロックスキップレベルを個別の独立したチャネルとしてマッピングします。/ と /1 のスキップ文字が全く同じレベルを表す標準的なISOインタープリタとは異なり、Siemensは / と /1 を個別に有効にする必要がある個別のスキップレベルとして扱います。オペレータがこれらのスキップレベルを個別に設定せずに両方のスキップスタイルを含むレガシープログラムをSiemens制御装置で実行すると、スキップされるはずのブロックが実行され、予期しない軸の移動や壊滅的なワークの衝突を招く可能性があります。
プログラム例
Siemens G-Code Example
; Siemens: G290 ; コンパイラをネイティブのSiemens SINUMERIKモードに切り替え
; Siemens: G57 G17 G90 G00 X100.0 Y50.0 Z10.0 T1 D1 ; G57座標オフセットの選択、XY平面の選択、絶対値高速位置決め
; Siemens: TRANS X15.0 Y10.0 ; アクティブなG57 WCSに対する絶対プログラマブルゼロオフセットフレームを設定
; Siemens: G291 ; レガシーブロックを解析するためにコンパイラをISO Dialectモードに切り替え
; Siemens: G10 L2 P4 X-300.0 Y-150.0 Z-50.0 ; ISO Dialect: G57 (P4) オフセットレジスタに座標値をプログラムで書き込み
; Siemens: G290 ; ネイティブのSiemensモードに戻る
; Siemens: G00 Z200.0 M5 ; Z軸の高速退避
空運転 (dry run)
空運転の際、プログラマーはNCブロックを順次実行します。まず、G290でコンパイラをネイティブのSiemens SINUMERIKモードに切り替えます。次に、制御システムがG57設定可能ゼロオフセットを選択し、XY平面(G17)を確立し、工具補正(T1 D1)を有効にして、主軸をG57原点に対する絶対座標X100.0、Y50.0、Z10.0へ高速移動(ラピッド移動)させます。その後、絶対プログラマブルオフセットTRANS X15.0 Y10.0を実行し、G57に対してプログラム原点をX+15.0、Y+10.0シフトさせます。続いて、G291コマンドがコンパイラをISO Dialectモードに切り替えます。ISOモードでは、G10 L2 P4ブロックが、即座の工具経路移動を発生させることなく、新しいオフセット値(X-300.0、Y-150.0、Z-50.0)を直接G57(P4)オフセットレジスタに書き込みます。最後に、コンパイラはネイティブモード(G290)に戻り、Z軸をZ200.0へ安全に後退させます。
エラー解析
Siemens SINUMERIKの制御装置でゼロオフセットをプログラミングする際、特定のパラメータ競合や構文エラーによって機械が停止することがあります。以下の表に、一般的なアラーム、その原因、およびショップフロアでの解決方法を示します。
| アラームコード | トリガー条件 | オペレータへの症状 | 根本原因 / 解決策 |
|---|---|---|---|
| Siemens Alarm 18312 | MD 24000が0に設定されている状態で、G57と連動してG59(追加型ファインオフセット)を介して軸方向のゼロオフセットの書き込みや実行を試みた場合。 | 制御装置が実行を停止し、「Fine offset not configured(ファインオフセット未設定)」を表示、サイクルスタートが赤色に点灯します。 | マシンデータパラメータMD 24000 ($MC_FRAME_ADD_COMPONENTS) を1に構成し、ファインオフセットの加算を有効にするためにNCKリセットを実行します。 |
| Siemens Alarm 14800 | G57選択後に直線送り移動(G01)を実行した際、パスの送り速度Fが0であるか、あるいはプログラミングされておらず、「固定送り速度」機能も有効でない場合。 | 軸の運動が即座に停止し、操作パネルに送り速度ゼロの警告が表示されます。 | 移動ブロック内またはそれ以前に送り速度Fの値をプログラミングするか、または「固定送り速度」機能がアクティブであることを確認します。 |
| Siemens Alarm 61800 | MD 18800が無効な状態で、コンパイラがISO Dialectモード(G291)への切り替えや、外部コンパイラ形式でのG10/G57コマンドのコンパイルを試みた場合。 | インタープリタがプログラム実行を停止し、「External CNC system missing(外部CNCシステムが見つかりません)」と表示します。 | マシンデータMD 18800 ($MN_MM_EXTERN_LANGUAGE) を1に設定して、外部NC言語インタープリタを有効にします。 |
| Siemens Alarm 12080 | MD 20734のBit 3が0である状態で、コンパイラが未認識のコマンドやフォーマットの衝突(G291下での無効なスラッシュブロックスキップ形式など)を検出した場合、あるいはG291下でネイティブのSiemensコマンドを実行した場合。 | 実行が停止し、アラームバナーに競合するブロックを指す「Syntax error(構文エラー)」が表示されます。 | 対象となる方言(Dialect)固有のフォーマットに合わせてコマンドの構文を修正するか、またはMD 20734のBit 3の仕様に従ってスキャナエラー処理を調整します。 |
実務応用ノウハウ
ツールタレットやスピンドルの衝突事故は、手動ジョグやNCリセットの後に、アクティブなゼロオフセットレジスタをクリアせずに自動サイクルを再開した際に発生します。SINUMERIK制御装置がバックグラウンドでG57フレームを保持し続けていると、ツールタレットが退避していない軌跡を通って走行します。この結果、スピンドルやタレットが超硬工具をテーブル上の治具クランプ(clamp)、バイス口金(vise jaw)、またはチャック(chuck)の爪に激突させ、ボールねじの変形、超硬刃物の粉砕、およびAlarm 14800(送り速度ゼロ)を発生させ、ワーク(raw stock)をスクラップ化します。このゼロオフセット設定やMD 24000パラメータが未検証のまま量産に入ると、2ロット目から微少な熱変位やファインオフセット値の無視によって寸法ばらつきが広がり、最終検査で初めて不良が発見されます。段取り前にMD 24000(ファインオフセットの有効化)を確認することで、この座標コマンドで最も多い非計画停止やAlarm 18312を未然に防ぐことができます。また、リセット時の予期しない座標系保持を防ぐために、リセット動作のデフォルト値を設定するMD 20150の値も合わせて検証する必要があります。
関連コマンド
- G54〜G56 / G505〜G599: 基準のワーク座標系を表す標準的な設定可能ゼロオフセット(1〜99)。
- G500: すべてのアクティブな設定可能ワークオフセット(G54〜G599)を無効化し、デフォルトのゼロフレームを復元します。
- TRANS / ATRANS: アクティブなG57ゼロオフセットに対して座標原点を動的にシフトさせる、プログラマブルな絶対および追加型(アディティブ)ゼロオフセット平行移動フレーム。
- G53 / G153 / SUPA: 絶対機械座標での位置決めの指示であり、アクティブなゼロオフセットレジスタをバイパスするノンモーダルなフレーム抑制コマンド。
- G290 / G291: 制御装置をネイティブのSINUMERIKプログラミングと外部のISO Dialectモードの間で切り替えるコンパイラモードスイッチ。
おわりに
量産工程における寸法再現性の低下と、突発的な機械衝突を防ぐ最大の防御策は、自動運転を開始する前にG57ワーク座標系および関連パラメータの整合性を検証することです。段取り前にMD 24000パラメータを確認することで、ファインオフセットのエラーによる非計画停止を未然に防ぐことができます。また、ツールインデックス時には、G53やSUPAノンモーダルコマンドを使用して、ツールキャリアを機械原点へ安全に後退させるインターロック構造を確立してください。これにより、ロット間の寸法ばらつきを排除し、ゼロ不良の生産環境を安定して維持することが可能になります。
よくある質問
ロット間の加工寸法にばらつきが発生し、G57座標系の再現性が低下する原因と対策は何ですか?
ばらつきの主な原因は、ワークのクランプ力変動による変形や、微小な熱変位量(ファインオフセット)が制御システムに正しく加算されていないことです。特にMD 24000が0に設定されていると、微調整値(fine offset)が無視されて数ミクロン単位の寸法偏差が累積し、再現性が低下します。対策として、段取り時に粗調整(coarse)と微調整(fine)の合計値が、物理的なダイヤルゲージ測定と一致しているか確認し、段取りシートにチェック項目を設けてください。
プログラムからG10コマンドでG57オフセットを自動更新する際、設定値が同期せずに衝突するのを防ぐにはどうすればよいですか?
制御装置の先読み機能(ルックアヘッド)により、G10で書き換えた値が適用される前に、先行するブロックの演算が古い座標のまま実行されることが原因です。この問題を解決するには、マシンデータMD 20734 Bit 13を1に設定してG10ブロックの書き込み時に強制的にプリプロセッサストップ(STPPRE)を発生させ、最新の座標レジスタが同期された状態で実加工動作に入らせるプログラミングを徹底してください。
G57オフセットを使用した加工中にAlarm 18312が発生した場合の対処方法はどうすればよいですか?
このアラームは、アディティブファインオフセット(G59など)を使用する設定になっているにもかかわらず、制御システム側のファインオフセット機能が無効になっているためにトリガーされます。システムパラメータMD 24000 ($MC_FRAME_ADD_COMPONENTS) を1に設定し、その後NCKリセットを行って設定を有効化し、再度G57とG59を実行する前に累積値を必ず画面で確認してください。
まだ解決しませんか?
このトピックについて、AIアシスタントに自然言語で質問できます。検証済みの情報源に基づいており、ハルシネーションはありません。

- CNC CARE Co-Founder (May 2025 - Present)
- Mitsubishi Electric NC Sales & Service Section Manager (2008 - 2025)
- Reis CNC Service Engineer (2003 - 2008)
- Ören Kalıp CNC Mold Line Team Leader (1999 - 2002)
CNC工作機械業界のあらゆる分野で25年以上の経験を持ち、ブランドに依存しないコンサルティング、エンジニアリング、純正部品サービスを提供するCNC CAREの共同創業者として活動を続けています。
関連記事
このトピックに関する他の記事
Siemens G71/G710メトリック寸法プログラミング設定ガイド
Siemens SINUMERIK制御におけるG71およびG710メトリック寸法設定のプログラミング方法を解説。MD 10240パラメータ検証から、Alarm 14800や12080などの構文エラー回避、回転軸FGREFファクタ計算、空運転による軌道検証まで徹底解説します。
G69バランスカット解除:CNC旋盤の座標復帰と干渉防止
Fanuc、Siemens、Mitsubishi制御のCNC旋盤におけるG69バランスカットキャンセル(解除)コマンドのプログラミング方法を解説。対向刃物台の同期制御を安全に解除し、チャック爪や治具への激突事故やアラーム停止を確実に防ぐ手順とパラメータ設定を網羅。
G70 CNC仕上ã’サイクル完全解説:構文・パラメータ・障害対ç–
CNC旋盤ã®G70仕上ã’サイクルを徹底解説。Fanucã€Siemens CYCLE95ã€Mitsubishiã®æ§‹æ–‡ã®é•ã„ã€PS0322・PS0325アラームã®å›é¿æ³•ã€ãƒ‘ラメータè¨å®šã€è¡çªäº‹æ•…を防ã安全ãªé€€é¿çµŒè·¯ãƒ—ãƒã‚°ãƒ©ãƒŸãƒ³ã‚°ã‚’詳述。
G69座標系回転・ミラーイメージ解除のNCプログラミング
Fanuc、Siemens、MitsubishiのCNC旋盤におけるG68対向タレットミラーおよび座標回転のG69キャンセル機能を解説。#1202や#1119パラメータの検証、P29・M01 1036アラーム防止、刃物台衝突回避と量産ロットの繰り返し精度向上を図る実務ノウハウ。