Skip to main content
CNC.wikiCNC.wiki

M03・M04・M05主軸指令:CNCパラメータ検証と衝突回避ガイド

M03(主軸正転)、M04(逆転)、M05(停止)を徹底解説。Fanucの3706やSiemensのWAITS同期、Mitsubishiのエッジ検出ロジックなど、量産加工での衝突回避と繰り返し精度・信頼性を極限まで高めるノウハウを網羅。

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

CNC CARE 共同創業者

はじめに

CNCプログラムがspindleの物理的な目標速度への到達を待たずに軸移動(feed)を指令した瞬間、あるいはオペレータがC軸モードの解除状態を確認せずに工具をワークへ突入させた瞬間、機械を深刻な破損に至らしめる破壊的な衝突(ハードクラッシュ)が発生する。spindleの完全停止を確認せず、単なるオープンループのM05停止コマンドのみを盲信して工具交換に進むと、spindleが惰性で高速回転したままの状態で軸が移動を開始してしまう。回転し続けるカッターが固定クランプを直撃し、硬化したバイスジョー(vise jaw)に激突するか、あるいはチャック(chuck)からワークを剥ぎ取る。このわずか数秒の同期不良は、切削工具を粉砕し、インデックスタレット(turret)の芯出し精度を致命的に狂わせ、機内に高額な不良品(scrap part)を残す結果となる。段取り前にParameter 3706(Fanuc)や#1297(Mitsubishi)、あるいはMD35020(Siemens)などのパラメータを事前にしっかりと検証しておくことで、このコマンドで最も発生しやすい非計画停止を防ぐことができる。これらのパラメータが未検証のまま量産に入ると、2ロット目から累積的な寸法ばらつきが広がり、最終検査で初めて不良が発見される事態を招く。spindleの動力学的な回転を制御するM03(主軸正転)、M04(主軸逆転)、そしてM05(主軸停止)コマンドを正しく管理し、再現性の低下や不良品発生を排除することは、高効率加工と機械的な大惨さを分ける極めて重要な防壁である。

技術概要

技術仕様仕様および制約事項
コマンドコードM03, M04, M05
モーダルグループMiscellaneous Functions (M-Codes) / Spindle Commands (Modal)
サポート対象ブランドFanuc, Siemens, Mitsubishi
重要パラメータFanuc Parameter 3706 (analog voltage polarity) & 5106 (M5T tapping stop); Siemens MD35020 (spindle default mode) & MD35035 (function mask); Mitsubishi Parameters #12005 (max M-codes), #1297 (spindle P-address), & #1300 (part-system independence).
主要制約事項同一ブロック内に複数の競合する spindleコマンド(M03とM04)は共存できません。絶対 spindle速度は物理的にギアステージによって制限され、安全なスタートはセーフティドア、chuckクランプ状態、および一般的な機械準備完了信号とインターロックされています。

クイックリード

  • 切削方向を検証する: 工具の右勝手(R)または左勝手(L)のデザインと、正しい回転方向(時計回りのM03、反時計回りのM04)を常に一致させ、ワーク突入時の瞬間的な工具破損を回避してください。
  • スピードクランプを活用する: 複数 spindle操作でM03またはM04を起動する前に、旋盤ではG50またはG92を用いて有効な spindleスピードクランプを必ず設定し、MitsubishiのアラームM01 1043を防止してください。
  • 完全停止同期を強制する: SiemensのWAITSなどの決定論的待機コマンドや、G04 Dwell(一時停止)のような明示的な一時停止を使用して、M05によって spindleが完全に停止するまで、軸移動を保留するようインターポレータ(補間器)に強制してください。
  • スピンドルMコードを単独で記述する: 同一ライン上にM03とM04のような競合する spindleコマンドをプログラムしないでください。FanucのアラームPS5016がトリガーされます。
  • C軸エッジ検出を保証する: Mitsubishiシステムにおいて、C軸モードから spindleモードに戻る際は、M03に対する必須のOFFからONへの遷移エッジを作成するために、最初に明示的なM05コマンドをプログラムしてください。
  • タッピングパラメータを最適化する: FanucのParameter 5106 (M5T)を設定して、M03とM04の反転動作の間に一時的なM05を自動出力させ、リジッドタップ中に spindleドライブにかかる極度の電気的ショックを防止してください。

基本概念

spindle'の回転制御は、金属除去のための基本的なエネルギー源であり、旋削加工やミーリング加工に必要な機械的トルクと切削速度を提供します。M03、M04、およびM05コマンドは、CNC spindleドライブを起動および停止する主要なコマンドとして機能し、spindleの物理的な動的状態を支配します。Sコマンドは、回転速度(定常回転数RPM、またはG96周速一定制御で管理される表面速度)を指定します。アクティブな spindleコマンドがない状態では、機械は材料を除去することができず、軸移動を行っても工具の摩擦や機械的な損傷(クラッシュ)を招くだけです。

刃物の形状が回転方向と一致しなければならないため、方向の安全性は重大な検討事項です。標準的な右勝手(R)の刃物や旋削インサートは、効率的に切削するために時計回り回転(M03)を必要とします。もし誤って逆回転(M04)が指令されると、刃先の後ろ側がワークに擦れ、過度な摩擦と熱が発生します。この間違いは、超硬工具を瞬時に粉砕し、ワークの表面品質を台無しにし、機械の spindleベアリングにストレスを与えます。オペレータは、工具経路(ツールパス)を素材に送り込む前に、切削方向を目視で検証する必要があります。

spindleの停止と減速の同期は、サイクルペース管理において極めて重要です。M05は物理的な停止コマンドを表しますが、標準的な CNCシステムは spindleの減速中に自動的に座標移動を一時停止することはありません。プログラムが spindle回転を停止させても、軸は移動を続ける可能性があり、これが危険を招きます。プログラマーは、工具交換やワーク反転(これらはプログラム停止および終了コマンド(M00/M30)による一時停止で管理することも可能)を行う前に、spindleが完全に静止していることを確認する必要があります。

コマンド構造

spindleコマンドのプログラミング構文は高度に構造化されており、機械のPLCロジックによって正しく実行されるように絶対的な明瞭性を必要とします。各コマンドは、Mアドレスの後に2桁の数値が続く構成で、時計回り回転、反時計回り回転、または完全な静止を表します。これらのコードはモーダル(modal)であり、プログラムの流れの中で競合するコマンドに遭遇するまでアクティブな状態が維持されます。

標準的な構成では、回転コマンドと同時、またはその前に spindle速度を宣言する必要があります。プログラマーは、RPMまたは表面速度の目標速度を設定するためにSコードを記述し、その後にM03またはM04を発行します。複数 spindleマシンでは、ターゲットアドレスを指定するためにコマンド構造が拡張されます。これにより、どの spindleドライブがコマンドに応答すべきかを正確に指定でき、複数の工具 spindleを同時に管理する際のアドレス衝突を防ぐことができます。

プログラミング構文:

M03 S[speed] [P_] ;
M04 S[speed] [P_] ;
M05 [P_] ;

システムパラメータおよび構成:

ブランドパラメータ識別子システム設定およびハードウェア機能
FanucParameter 3706アナログ出力電圧の極性を制御。Bit 6 (CWM) および Bit 7 (TCW) は、M03およびM04コマンドのD/A電圧信号をカスタマイズします。
FanucParameter 5106Bit 6 (M5T) または NM5 は、タッピング固定サイクルにおいて spindle反転前にM05を実行するかどうかを規定します。0はM05を出力し、1はそれをスキップします。
FanucParameters 5112 & 5113ドリル固定サイクル中の spindle正転(5112)および逆転(5113)コマンドに使用される特定の整数コードを定義します。
SiemensMD35020$MA_SPIND_DEFAULT_MODE は、電源投入時のデフォルトの基本状態を定義します(0: 速度制御、1: 位置付き速度、2: 位置決め、3: 軸モード)。
SiemensMD35035$MA_SPIND_FUNCTION_MASK は spindleマスクを定義します。Bit 22は、リジッドタッピングの回転方向に対してNC/PLC反転信号を制御します。
MitsubishiParameter #12005Mfig は、単一の G-codeブロック内で許容される最大補助Mコード数を設定します(1〜4コード)。
MitsubishiParameter #1297ext33/bit2 は、CNCがMコードと並んでPアドレスを使用した spindle選択を許可するかどうかを設定します(0: 無効、1: 有効)。
MitsubishiParameter #1300ext36/bit1 は、spindle速度とMコードをグローバルに共有するか(0)、系統(パートシステム)ごとに独立して処理するか(1)を選択します。

ブランド別応用

Fanuc

Fanuc制御盤では、M03、M04、およびM05コマンドはParameter 3706およびParameter 5106と統合されています。Parameter 3706は出力電圧の極性を構成し、Parameter 5106はタッピングサイクルの反転を管理します。安全なプログラミングを行うためには、spindleアンプカードでの構文解析の競合を防ぐため、これらのコマンドを独立したブロックに分ける必要があります。

Fanucの G-codeプログラムは、標準的な形式を使用して spindle速度を指令します。複数 spindle旋盤(ターニングセンタ)では、ビルダーによってParameter 3786が有効にされている場合、セカンダリ spindleを指定するためにPアドレスを追加できます。

システムカテゴリ設定 / アラームコード説明およびハードウェア挙動
システムパラメータParameter 3706 (Bits 6 & 7)アナログ出力電圧の極性を構成します。Bit 6はCWM(正転極性)、Bit 7はTCW(逆転極性)です。これらを切り替えることでD/A電圧の極性を管理します。
システムパラメータParameter 5106 (Bit 6 / NM5)タッピングサイクル中の spindle反転停止。0に設定すると反転前にM05を出力し、1に設定するとM05をスキップしてタッピングのサイクルタイムを短縮します。
システムパラメータParameters 5112 & 5113ドリル固定サイクル(正転および逆転の整数)の spindle Mコードを再定義します。
システムパラメータParameter 5600 (レガシー)古いFS3およびFS6制御において、Bit 0 (M3M) & Bit 1 (M4M) がD/A極性を設定します。
アラーム / エラーPS5016Mコードの不正な組み合わせ:同一ブロック内でM03とM04がプログラムされた場合に発生します。
アラーム / エラーEr-01spindleアンプインターロックエラー:非常停止(*ESP)またはマシンレディ(MRDY)が満たされていない状態で、spindle正転/逆転信号(SFR/SRV)が送信されました。
バージョンによる違いレガシー vs モダンFS3/FS6コントローラは極性にParameter 5600を使用しますが、現代のMシリーズおよびTシリーズシステムではこの機能がParameter 3706に移行されました。

警告:安全インターロック状態をバイパスしようとしたり、同一のアクティブプログラムライン内で競合するMコードを記述したりすると、即座に spindleアンプにシーケンスアラームEr-01がトリガーされるか、アラームPS5016が発生して実行が中断され、非常停止(緊急シャットダウン)が実行されます。

Siemens

Siemens SINUMERIK制御盤は、マシンデータMD35020およびMD35035を使用して spindle動作を支配します。これらにより、デフォルトのブート状態や方向マスクの深いカスタマイズが可能です。制御システムは直接アドレス指定をサポートしており、spindleインデックスを使用してネイティブに複数の spindleをターゲットに指定できます。

Siemensの構文は、M3/M4/M5と、`M1=3` のような拡張表記の両方をサポートしています。これらのコマンドは移動ブロック内に記述できますが、切削経路が早く入りすぎないように、spindleの加速状態を監視する必要があります。

システムカテゴリ設定 / アラームコード説明およびハードウェア挙動
構文`M<n>=3` / `M<n>=4` / `M<n>=5`セカンダリ spindle(チャンネルあたり最大5つの spindle)をネイティブにターゲットにするための拡張アドレス表記。
システムパラメータMD35020$MA_SPIND_DEFAULT_MODE: spindleの電源投入時のデフォルトモードを定義します(0 = 速度制御、1 = 位置付き速度、2 = 位置決め、3 = 軸モード)。
システムパラメータMD35035$MA_SPIND_FUNCTION_MASK: spindle固有の機能マスク。Bit 22は、NC/PLC反転信号がリジッドタッピング方向を反転させるかどうかを指示します。
アラーム / エラーAlarm 16111「No speed programmed(速度がプログラムされていません)」:ブロック内またはアクティブメモリ内に速度(S値)が宣言されていない状態で、M3またはM4が指令された場合にトリガーされます。
アラーム / エラーAlarm 16751「spindle/axis SPCOF not executable(spindle/軸 SPCOFが実行できません)」:spindleが位置決め/軸モードの時に位置制御が解除された場合にトリガーされます。M3、M4、またはM5をプログラムすることで解決します。
アラーム / エラーAlarm 20141同期アクション中において、spindle停止を行わずに速度制御(M3)から軸モードへの無効な遷移が試みられた場合にトリガーされます。
バージョンによる違いG290 vs G291 ダイアレクトSiemensモード(G290)は、ネイティブなマルチ spindleの `M2=3` コマンドをサポートします。ISOダイアレクトモード(G291)はこの構文を無効にし、代わりにレガシーなISO Mコードである M103、M104、および M105を翻訳します。

警告:狭いポケットから工具を退避させる前に、単なるM5停止コマンドのみに頼って spindleを制動させるのは非常に危険です。デフォルトでは、spindleの回転が0 RPMに達する前に軸移動が始まります。固定クランプやバイスジョーとの激しい衝突を防ぐため、プログラマーはM5と決定論的な `WAITS` コマンドを組み合わせる必要があります。

Mitsubishi

Mitsubishiシステムは、Parameter #1297およびParameter #1300を利用して spindleアドレスと複数系統の共有を管理します。これらの設定により、マルチ spindleのルーティングがどのように解釈されるかが決定されます。自動運転中、制御システムは spindleアンプを誤ったモード変更から保護するために厳格なインターロックを強制します。

Mitsubishiプログラムは標準の G-codeフォーマットを使用しますが、オペレータは回転を開始する前に適切な制限(クランプ)を設定する必要があります。ミーリングモードと旋削モードの間で切り替えを行う際、プログラマーは安全な起動を確実にするためにシステムの立ち上がりエッジ検出ロジックを守る必要があります。

システムカテゴリ設定 / アラームコード説明およびハードウェア挙動
構文`M_ P_ ;`複数スピンドル制御 I(旋盤専用)において、特定の spindleをターゲットにするためにPアドレスを追加します。
システムパラメータ#1297 (ext33/bit2)CNCがMコードと並んでPアドレスを使用した spindle選択を許可するかどうかを構成します(0: 無効、1: 有効)。
システムパラメータ#1300 (ext36/bit1)spindle速度と回転コマンドを系統間でグローバルに共有するか(0)、系統ごとに個別に管理するか(1)を選択します。
システムパラメータ#12005 (Mfig)単一ブロック内で許容される最大Mコード数を定義します(範囲1〜4)。
システムパラメータ#13001 (SP001 PGV)M03またはM04コマンドがアクティブなときに適用される位置ループゲインを設定します。
アラーム / エラーM01 1043操作エラー:複数スピンドル制御 IIにおいて、有効な速度クランプ(G92/G50)が設定される前にM03/M04が指令されました。
アラーム / エラーM01 1026spindleが spindleモードではなくC軸モードにロックされている状態で、自動運転(M03/M04)が開始された場合にトリガーされます。
アラーム / エラーM01 0005操作エラー:spindleがM05を介して停止する前に、C軸モードで軸移動コマンドが実行されました。
アラーム / エラーP33フォーマットエラー:マルチ spindleコマンドに必要なPアドレス指定が欠落しています。
バージョンによる違い制御 I vs 制御 II複数スピンドル制御 I(Pアドレス選択式)は旋盤(Lシステム)専用です。複数スピンドル制御 II(PLC駆動信号式)は、マシニングセンタ(Mシステム)と旋盤(Lシステム)の両方で利用可能です。電源投入状態はParameter #3129を介して設定されます。

警告:機械が誤ってC軸モードにロックされたままの状態で、M03などの自動運転を起動すると、即座に実行が停止します。モードを切り替える前に適切なM05停止を実行しないと、工具の激突やワークの不良が発生します。

ブランド比較

比較項目FanucSiemensMitsubishi
複数スピンドルアドレス構文Parameter 3786 (MPF) がアクティブな場合、セカンダリ spindleをターゲットにするためにPアドレス(例: M03 P2;)を追加します。標準の拡張アドレス表記をネイティブに使用するか(例: M2=3)、マッピングされたISOダイアレクトのレガシーMコード(M103)を使用します。旋盤システムでは制御 I用にPアドレスを追加し(M03 P2 ;)、制御 IIはPLC選択信号を介してコマンドをルーティングします。
スピンドル減速制御機械的なインターロックやタイマーに依存します。固定サイクルではParameter 5106 (M5T) を使用して、反転前に停止を挿入します。決定論的な WAITS 同期ブロックを備え、正確な0 RPMが確認されるまで軸移動の補間を一時停止します。C軸モードを安全に抜けて旋削カットを許可するために、明示的な M05 停止とOFFからONへのエッジ検出が必要です。
系統(パートシステム)の自律性PMC設計およびハードウェアマッピング構成によって定義されます。spindleマスタ権限は、プログラムループ内で SETMS コマンドを使用して動的に定義されます。Parameter #1300 ext36/bit1 により、コマンドをグローバルに共有するか、系統ごとに個別に処理するかを決定します。
回転極性の設定Parameter 3706 (CWM/TCW ビット) または 5600 (レガシー) からCNCがD/A出力電圧の符号を反転させます。spindleデフォルトモード(MD35020)およびファンクションマスク(MD35035)パラメータを使用して管理されます。spindleモード vs C軸ブートモードは、Parameter #3129 cax_spec/bit2 を介して構成されます。

技術解析

これら3つの著名な制御システムのアーキテクチャ実装を分析すると、spindleコマンドの実行に対する明確に異なる設計哲学が明らかになります。3つのブランドはいずれも基本的な正転、逆転、停止の機能を果たしますが、その基盤となるデータ構造、ハードウェア通信手段、および安全ロジックは大きく異なります。これらのエンジニアリングの違いを理解することは、開発者がクリーンでポータビリティの高い G-codeプログラムを作成するのに役立ちます。

Siemensは、拡張アドレス表記とネイティブな同期機能により、プログラム上の柔軟性に優れています。ブロック内で直接マルチ spindleを呼び出せるようにすることで(M2=3など)、Siemensは個別の spindle選択コマンドの必要性を排除しています。決定論的な WAITS ステートメントと組み合わせることで、コントローラは軸送りが許可される前に、物理的な spindle状態がプログラムの論理的な状態と一致することを保証します。これはインタープリタレベルで処理され、エンコーダを直接読み取るため、外部PLCのハンドシェイクに伴う遅延をバイパスします。

Fanucはローレベルのパラメータ化に重点を置いており、機械メーカーにアナログドライブ信号や固定サイクルの挙動に対する深い制御を提供します。動的なマスタ spindleの再割り当てを利用する代わりに、Fanucは3706や5106などの固定パラメータに依存して信号の極性やインターロックシーケンスを制御します。このアプローチはプログラム構文をシンプルに保つ一方で、セットアップ技術者や機械メーカーが物理的なハードウェア配線に合わせてこれらのパラメータをマッピングしなければならないという負担を強いることになります。

Mitsubishiは中間的な位置を占めており、#1297や#1300などのパラメータを介して堅牢な複数系統共有制御を提供しています。その決定的な特徴は、モード切り替えのための厳格なエッジ検出安全ロジックです。コマンド信号に立ち上がり遷移エッジ(OFFからON)がない限り spindle起動コマンドを無視することで、MitsubishiはC軸補間中の不意な spindle加速を防ぎます。これは物理的な工具を保護しますが、プログラマーには厳格で順序正しい停止手順の実行を要求します。

プログラム例

Fanucのミーリングおよびタッピング例

O2001 (FANUC SPINDLE SPEED & REVERSAL EXAMPLE) ;
N10 G90 G21 G17 ;
N20 T0101 M06 (右勝手ミーリングカッターをロード) ;
N30 G54 G00 X0 Y0 S1500 M03 (1500 RPMで主軸正転起動) ;
N40 G43 H01 Z20.0 M08 (工具長補正有効化、クーラントON) ;
N50 G01 Z-5.0 F150. ;
N60 X100.0 ;
N70 G00 Z20.0 M09 (工具退避、クーラントOFF) ;
N80 G04 X2.0 (スピンドルの反転遷移を安定させるためのドウェル) ;
N90 M04 S800 (裏面切削用に800 RPMで主軸を逆転) ;
N100 G01 Z-2.0 F100. ;
N110 X0 ;
N120 G00 Z50.0 M05 M09 (退避、主軸停止、クーラントOFF) ;
N130 M30 ;
%

空運転 (dry run)パス解析

  • 工具状態: N30において、M03の下で spindleが1500 RPMで正転加速します。N90において、M04の下で spindleが800 RPMで逆転します。N120において、M05により spindleが停止し、クーラントがOFFになります。
  • オペレータの操作: オペレータはプログラムをロードし、工具の形状が正転と逆転の両方に対応していることを確認し、操作パネル of 物理的な速度オーバーライド(override)を100%に設定します。
  • PLCの応答: N30の解析時、PLCは spindle正転ランのリレーを閉じます。N90の解析時、アナログ出力電圧の極性を反転させて回転を逆にします。N120の間、PLCは spindleコンタクタを開き、ダイナミックブレーキを適用して spindleを停止させます。

Siemensの複数スピンドル同期例

; SIEMENS MULTI-SPINDLE WAITS EXAMPLE
N10 G90 G71 G17
N20 T="FACE_MILL_80" D1 M6
N30 G54 S3000 M3 ; メイン主軸を3000 RPMでCWに起動
N40 G0 X0 Y0 Z25.0 M8
N50 G1 Z-4.0 F300.
N60 Y120.0
N70 G0 Z50.0 M9
N80 M2=4 S2=800 ; セカンダリ主軸2を800 RPMでCCWに起動
N90 M5 ; メイン主軸を停止
N100 WAITS ; メイン主軸が0 RPMになるまで制御盤の軸移動を強制ホールド
N110 G53 X0 Y0 D0
N120 M30

空運転パス解析

  • 工具状態: メイン spindleはN30で3000 RPMでCWに駆動します。セカンダリ spindle(spindle 2)はN80で800 RPMでCCWに起動します。メイン spindleはN90で停止します。
  • オペレータの操作: オペレータはメイン spindleとライブツール(live-tooling)タレットの両方に工具を取り付け、セカンダリ spindleに障害物がないことを確認し、制御画面を監視します。
  • PLCの応答: PLCは M2=4 コマンドを受信し、補助 spindleに電圧を印加します。N90において、メイン spindleへの電力を遮断します。N100において、WAITS命令はゼロ速度が確認されるまでエンコーダを監視し、軸のインターロックを解除して安全に機械ゼロリターンを実行させます。

MitsubishiのC軸からスピンドルへの遷移例

; MITSUBISHI C-AXIS TO SPINDLE TRANSITION
N10 G90 G21
N20 M06 T0101 ; 旋削工具をロード
N30 G54 G00 X50.0 Z5.0
N40 M05 ; モード切り替え前にスピンドルが停止していることを確認
N50 M15 ; スピンドルモードからC軸モードに切り替え
N60 G00 C90.0 ; C軸を位置決め
N70 M05 ; C軸の回転を停止
N80 M14 ; スピンドルモードに切り戻し
N90 M03 S1000 ; 標準の正転旋削を1000 r/minで起動
N100 G01 Z-20.0 F120.
N110 G00 X60.0 M05
N120 M30

空運転パス解析

  • 工具状態: 旋削工具が配置されます。N50で spindleモードがC軸モードに切り替えられ、角度位置決めが行われた後、高回転のM03が起動する前のN80で spindleモードに切り戻されます。
  • オペレータの操作: オペレータはチャック(chuck)内でのワークのクランプ状態を確認し、モニター上でC軸補間パラメータがアクティブであることを確認します。
  • PLCの応答: PLCはモード遷移リレー信号を管理します。N70でM05が解析されると、C軸モーターを停止させます。N90でM03を受信すると、OFFからONへの立ち上がりエッジ信号が検証され、spindle速度が1000 r/minに回転することを許可します。

エラー解析

ブランドアラームコードトリガー条件画面上の症状根本原因および対策
FanucPS5016同一ブロック内で、まったく同じグループの競合するMコード(M03とM04)を指定した場合。CNCは即座に実行を停止し、アラームランプが点滅して画面に「ILLEGAL COMBINATION OF M CODE」と表示されます。プログラムの誤りです。コマンドを別のブロックに分割するか、競合するコードを削除してください。
FanucEr-01非常停止(*ESP)またはマシンレディ(MRDY)インターロックが満たされていない状態で、spindle正転(SFR)または逆転(SRV)信号がアクティブになった場合。CNC画面にEr-01が表示され、物理的な spindleアンプはLEDで「00」を表示し、spindle動作が無効になります。シーケンス不良です。セーフティドア、インターロック、および spindleアンプの電源状態を確認し、MRDY信号を回復させてください。
SiemensAlarm 16111S速度値がない状態で、spindle正転(M3)または逆転(M4)がアクティブまたは指令された場合。画面に「No speed programmed(速度がプログラムされていません)」と表示され、ブロックが解析される前に実行が停止します。ブロック内、あるいはそれ以前のプログラムシーケンス内で明示的な速度(S値)をプログラムしてください。
SiemensAlarm 16751spindleが位置決めまたは軸モードで動作しているときに、位置制御(SPCOF)を解除した場合。画面に「spindle/axis SPCOF not executable(spindle/軸 SPCOFが実行できません)」と表示され、後続の操作が停止します。解除する前に、標準のM3、M4、またはM5をプログラムして spindleを速度制御モードに戻してください。
MitsubishiM01 1043複数スピンドル制御 IIにおいて、有効な速度クランプ(G92/G50)を設定する前にM03またはM04を指令した場合。コントローラは即座に操作エラー M01 1043 をトリガーし、サイクルを中止します。spindle正転ブロックを発行する前に、有効な最大 spindle速度クランプ(G92またはG50)を設定してください。
MitsubishiM01 1026軸が spindleモードではなくC軸モードにロックされている状態で、自動運転(M03/M04)を開始しようとした場合。「SP-C ax ctrl runs independently(spindle-C軸制御が独立運転中)」アラームが表示され、spindleの加速がブロックされます。適切なMTB Mコード(M14/M15など)を使用してC軸モードを解除し、spindleモードに戻してください。

実務応用ノウハウ

量産加工ラインにおいて非計画停止(ダウンタイム)を防ぎ、100ロット以上の連続生産でも寸法の繰り返し精度と信頼性を強固に維持するためには、spindleのモーダル状態とシステムパラメータの厳格な検証が不可欠である。特に、spindleの起動状態を確認せずに軸送りを指令する、あるいはC軸モードと spindleモードの切り替え手順を誤ると、壊滅的なハードクラッシュを引き起こす。この衝突を回避し、再現性の低下や不良品発生を防ぐための具体的な対策として、FanucシステムではParameter 3706を用いてアナログ出力電圧の極性(CWM/TCW)を管理し、リジッドタップサイクル実行時にはParameter 5106のM5Tビットを適切に設定して、M03とM04の反転時に自動的に一時的なM05を挿入することで、主軸ドライブにかかる過度な電気的ショックを軽減し、主軸ユニットの機械的寿命と繰り返し精度を向上させる。また、Siemensシステムでは、主軸の減速を確実に同期させるために、M05停止コマンドの直後に WAITS 命令を追加することで、主軸エンコーダがゼロRPMに到達するまで軸送りを確実にホールドし、回転中の工具がバイスジョー(vise jaw)やクランプ(clamp)に干渉する事故を防止する。さらに、Mitsubishiシステムでは、複数主軸制御において #1297 ext33/bit2 を有効化してPアドレス(M03 P2)による主軸指定を可能にし、C軸モードからの復帰時には必ず明示的なM05停止を介してOFFからONへの信号立ち上がりエッジを検出させることで、C軸モードに誤ってロックされたまま軸が駆動し、タレット(turret)やチャック(chuck)へ激突する不測の事態を防止する。これらの段取り前のパラメータ検証が、量産現場でのロット間の一貫性と信頼性を担保する最大の標準化策である。

関連コマンド

  • Sコード(スピンドル速度): RPMまたは周速一定制限における目標 spindle速度を宣言し、M03およびM04と連動して切削速度を設定します。
  • M19 / SPOS(スピンドルオリエンテーション): spindleを正確な角度の停止位置に配置します。速度制御モードに戻るには、M03またはM04で解除する必要があります。
  • G96 / G97(周速一定制御): 工具の位置に基づいて spindleを加速(G96)させるか、切削中に spindleを一定のRPMにロック(G97)します。
  • SETMS(Siemens マスタースピンドル選択): どの spindleがマスタ spindleとして評価されるかを動的に定義し、ベースとなる M3/M4/M5 コマンドにどのドライブが応答するかを規定します。
  • WAITS(Siemens スピンドル同期): spindleがプログラムされた設定速度に達するか、M5で停止するまで、後続の軸移動補間を保留します。
  • M14 / M15(Mitsubishi スピンドル・C軸モード切替): C軸モードと spindleモードの切り替えに使用されます。

おわりに

spindleの正転(M03)、逆転(M04)、停止(M05)の正確な管理は、単なるプログラム構文の記述にとどまらず、CNC制御システムの内部パラメータや物理的な同期命令と直結した、現場のクラッシュ防止策そのものである。非計画停止のリスクを完全に排除し、量産加工におけるロット間寸法ばらつきをゼロに抑え込むためには、新規立ち上げ時および定期メンテナンス時に、Fanucの3706や5106、SiemensのMD35020、Mitsubishiの#1297や#1300といった spindleパラメータの設定状況を事前に必ず検証しなければならない。さらに、プログラムの先頭で spindleモーダル状態を明示的に宣言し、モード移行時には新しいFコードやSコードを省略せずに再指令するルールを徹底すべきである。これらの検証手順と安全設計プロトコルを日常的な段取り作業の一部として標準化することが、高額な設備損傷を防ぎ、ロット全体の再現性と信頼性を極限まで高める最も確実なアプローチである。

よくある質問

主軸の正転(M03)と逆転(M04)の切り替え時、主軸アンプへの負荷(電気的ショック)を和らげて繰り返し精度を維持するパラメータ設定は?

rigid tappingや繰り返しの旋盤端面加工において、M03とM04を頻繁に切り替えると、主軸ドライブアンプに急激な回生電流と電気的・機械的ショックが発生し、長期的なロット寸法ばらつきや再現性の低下に繋がります。Fanucシステムでは、Parameter 5106 bit 6(M5T/NM5)を「0」に設定することで、M03とM04の間に自動的に一瞬のM05停止コマンドを挿入させ、回生エネルギーの過大流入を防ぎます。実務対応として、定期的なアンプ診断とともに、高精度ネジ加工の前には必ずこのパラメータが「0」に設定されているか、制御盤のパラメータ画面で確認・更新してください。

Siemens制御盤でM05指令後に主軸が惰性で回っているのに軸が動き出し、クラッシュするのを防ぐ具体的な対策は?

Siemens SINUMERIKでは、M05を指令しただけでは主軸の物理的な完全停止(ゼロRPM)を待たずに次の移動ブロックに移行するため、ツールチェンジや退避動作中にバイスジョー(vise jaw)やクランプ(clamp)に工具が接触するリスクがあります。これに対処するには、M05ブロックの直後に WAITS(Spindle Synchronization Wait)コマンドを記述します。これにより、CNCカーネルは主軸エンコーダフィードバックを監視し、主軸が完全に停止するまで移動補間を機械レベルで強制ホールドします。加工プログラム内のツール交換前やConfined Pocketからの退避ブロックに WAITS コマンドを追加し、グラフィックシミュレーションで軸の遅延動作を確認してください。

Mitsubishiの複数主軸機でM03/M04を指令した際に「M01 1043」アラームが発生して機械が停止する原因と解除方法は?

Mitsubishiの複数主軸制御(特にMultiple-Spindle Control II)環境において、主軸の正転(M03)または逆転(M04)を起動する前に、主軸最高速度クランプ(G92またはG50)がプログラムで宣言されていない場合にこのアラームがトリガーされます。これは、特に複数チャックで別々のワークを連続加工する際の主軸の過回転や、それに起因するチャックの遠心力低下によるワーク脱落(不良品発生)を防ぐ安全インターロックです。このアラームを解消し非計画停止を防ぐために、M03/M04を指令する前段で必ず G50 S[最高回転数] または G92 S[最高回転数] を指令し、物理的なチャックの最大許容回転数を超えないようにプログラムを記述・修正してください。

まだ解決しませんか?

このトピックについて、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