(57)【要約】【課題】現在の動作を実行中に主軸を駆動するモータの通電がオフ状態のときに、次の動作で主軸の回転を速やかに開始できる数値制御装置と制御方法を提供する。【解決手段】数値制御装置のＣＰＵは、主軸モータの通電がオフ状態で、工作機械の現在の動作が軸移動であるか判断する（Ｓ５）。通電がオフ状態で、工作機械の現在の動作が軸移動であると判断した場合（Ｓ５：ＹＥＳ）、ＣＰＵは生成した次の動作の移動指令に主軸回転指令を含むか判断する（Ｓ６）。次の動作の移動指令に主軸回転指令を含むと判断した場合（Ｓ６：ＹＥＳ）、ＣＰＵは軸移動が完了する前に、主軸モータの通電をオフ状態からオン状態に切り替える（Ｓ１０）。故に数値制御装置は、次の動作において、主軸モータがオン状態になって主軸を回転するまでの待機時間を短縮できる。【選択図】図１２
2018106350.tif 000002
【特許請求の範囲】
【請求項１】
ＮＣプログラムの制御指令を解釈して内部指令を生成する生成部と、当該生成部が生成した前記内部指令に従い機械の動作を制御する制御部とを備えた数値制御装置において、
前記機械は工具を装着する主軸を有し、
前記制御部は、
前記主軸を回転駆動するモータの通電がオフ状態で、且つ前記制御部が制御する前記機械の現在の動作が軸移動であるか判断する第一判断部と、
前記第一判断部が、前記モータの通電がオフ状態で、且つ前記現在の動作が軸移動であると判断した場合、前記生成部が生成する次の動作の前記内部指令に前記主軸を回転する主軸回転指令を含むか判断する第二判断部と、
前記第二判断部が、前記次の動作の前記内部指令に前記主軸回転指令を含むと判断した場合、軸移動が完了する前に、前記モータの通電をオフ状態からオン状態に切り替える通電制御部と
を備えたこと
を特徴とする数値制御装置。
【請求項２】
前記制御部は、
前記通電制御部が前記モータの通電をオン状態にした後、軸移動が完了して前記次の動作の前記内部指令を実行するときに、前記主軸回転指令を実行する回転実行部を備えたこと
を特徴とする請求項１に記載の数値制御装置。
【請求項３】
前記生成部は、
前記ＮＣプログラムの前記制御指令が被削材にタップを実行するタップ指令である場合、
前記モータの通電がオフ状態で、現在位置から、前記被削材において加工を開始する位置であるレファレンス点まで軸移動を行う軸移動指令と、
前記主軸を回転する前記主軸回転指令を含み、前記主軸回転指令によって前記主軸を回転しながら、前記レファレンス点から前記被削材の目標位置まで切削送りを行う切削送り指令と、
前記目標位置までの前記切削送りを行った後に、前記主軸を前記切削送りとは逆方向に回転しながら、前記主軸を前記被削材に形成された穴から引き抜く為の軸移動を行う引抜指令と
を前記内部指令として夫々生成し、
前記第一判断部が、前記モータの通電がオフ状態で、且つ前記現在の動作が前記軸移動指令に対応する軸移動であると判断し、さらに前記第二判断部が、前記次の動作の前記内部指令である前記切削送り指令に前記主軸回転指令を含むと判断した場合、
前記通電制御部は、
前記現在の動作である前記レファレンス点までの軸移動が完了する前に、前記モータの通電をオフ状態からオン状態に切り替えること
を特徴とする請求項１又は２に記載の数値制御装置。
【請求項４】
前記機械は、
前記主軸を回転可能に支持し且つ上下方向に移動可能に設けた主軸ヘッドと、
前記主軸ヘッドの上下方向の移動範囲のうち機械原点よりも上方の位置に回転可能に設け、工具を支持し且つ回転割出可能な工具マガジンと
を備え、
前記主軸ヘッドを現在位置から前記機械原点まで上昇する第一上昇動作と、
前記主軸ヘッドを前記機械原点から前記工具マガジンが回転可能となるＡＴＣ原点まで上昇し、その間に、前記主軸に現在装着する現工具を取り外して前記工具マガジンへ受け渡す第二上昇動作と、
前記主軸ヘッドが前記ＡＴＣ原点に位置するときに、前記工具マガジンを回転して前記主軸に次に装着する次工具を前記主軸と対向するように位置決めする回転動作と、
前記主軸ヘッドを前記ＡＴＣ原点から前記機械原点まで下降し、その間に、前記工具マガジンから前記次工具を受け取って前記主軸に装着する第一下降動作と、
前記主軸ヘッドを前記機械原点から目標位置まで下降し、その間に、前記主軸を回転する第二下降動作と
を含む工具交換動作を実行可能であって、
前記ＮＣプログラムの前記制御指令が、前記工具交換動作を指令する工具交換指令である場合、
前記生成部は、
前記第一上昇動作の軸移動を指令する第一上昇指令と、
前記第二上昇動作の軸移動を指令する第二上昇指令と、
前記回転動作を指令する回転指令と、
前記第一下降動作の軸移動を指令する第一下降指令と、
前記第二下降動作の軸移動を指令すると共に、前記主軸を回転する前記主軸回転指令を含む第二下降指令と
を前記内部指令として夫々生成し、
前記第一判断部が、前記モータの通電がオフ状態で、且つ前記現在の動作が前記第一下降指令に対応する軸移動であると判断し、さらに前記第二判断部が、前記次の動作の前記内部指令である前記第二下降指令に、前記主軸回転指令を含むと判断した場合、
前記通電制御部は、
前記第一下降動作における前記機械原点までの軸移動が完了する前に、前記モータの通電をオフ状態からオン状態に切り替えること
を特徴とする請求項１から３の何れかに記載の数値制御装置。
【請求項５】
前記第一下降動作において、前記主軸に前記工具が装着する所定位置よりも下方で、且つ前記機械原点よりも上方の範囲内であって、前記通電制御部が前記モータの通電をオフ状態からオン状態に切り替え可能な範囲の上限値を設定可能な設定部を備え、
前記通電制御部は、
前記第一判断部が、前記モータの通電がオフ状態で、且つ前記現在の動作が前記第一下降指令に対応する軸移動であると判断し、さらに前記第二判断部が、前記次の動作の前記内部指令である前記第二下降指令に、前記主軸回転指令を含むと判断した場合、
前記第一下降動作において、少なくとも前記設定部が設定した前記上限値以下で、且つ前記機械原点への軸移動が完了する前に、前記モータの通電をオフ状態からオン状態に切り替えること
を特徴とする請求項４に記載の数値制御装置。
【請求項６】
ＮＣプログラムの制御指令を解釈して内部指令を生成する生成ステップと、当該生成ステップにて生成した前記内部指令に従い工具を装着する主軸を有する機械の動作を制御する制御ステップとを備えた数値制御装置の制御方法において、
前記制御ステップは、
前記主軸を回転駆動するモータの通電がオフ状態で、且つ前記制御ステップで制御する前記機械の現在の動作が軸移動であるか判断する第一判断ステップと、
前記第一判断ステップにて、前記モータの通電がオフ状態で、且つ前記現在の動作が軸移動であると判断した場合、前記生成ステップで生成する次の動作の前記内部指令に前記主軸を回転する主軸回転指令を含むか判断する第二判断ステップと、
前記第二判断ステップにて、前記次の動作の前記内部指令に前記主軸回転指令を含むと判断した場合、軸移動が完了する前に、前記モータの通電をオフ状態からオン状態に切り替える通電制御ステップと
を備えたことを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値制御装置と制御方法に関する。
【背景技術】
【０００２】
自動工具交換機構を備えた工作機械は、主軸モータを停止し、主軸に取り付けた工具を別の工具に交換し、再度主軸を回転して機械加工を再開する。特許文献１が開示する主軸モータ制御方式は、工具交換を行うとき、主軸モータを目標位置に停止し、停止した状態の主軸を機械本体にロックする。主軸モータ制御方式は、主軸がロック期間に強制的に外力により変化しても主軸モータが発熱しないように、主軸のロック期間の一部において主軸モータの励磁をオフする。主軸モータ制御方式は、主軸に別の工具を取り付けた後、再度主軸を回転する為に主軸モータの励磁をオンする。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開昭５９−８０１７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
主軸モータの励磁がオフの状態から、主軸モータの回転を実行するとき、主軸モータの励磁をオンするときにかかる時間分だけ、主軸の回転開始が遅れるという問題点があった。
【０００５】
本発明の目的は、現在の動作を実行中に主軸を駆動するモータの通電がオフ状態のときに、次の動作で主軸の回転を速やかに開始できる数値制御装置と制御方法を提供することである。
【課題を解決するための手段】
【０００６】
請求項１に係る数値制御装置は、ＮＣプログラムの制御指令を解釈して内部指令を生成する生成部と、当該生成部が生成した前記内部指令に従い機械の動作を制御する制御部とを備えた数値制御装置において、前記機械は工具を装着する主軸を有し、前記制御部は、前記主軸を回転駆動するモータの通電がオフ状態で、且つ前記制御部が制御する前記機械の現在の動作が軸移動であるか判断する第一判断部と、前記第一判断部が、前記モータの通電がオフ状態で、且つ前記現在の動作が軸移動であると判断した場合、前記生成部が生成する次の動作の前記内部指令に前記主軸を回転する主軸回転指令を含むか判断する第二判断部と、前記第二判断部が、前記次の動作の前記内部指令に前記主軸回転指令を含むと判断した場合、軸移動が完了する前に、前記モータの通電をオフ状態からオン状態に切り替える通電制御部とを備えたことを特徴とする。主軸を駆動するモータをオフ状態からオン状態に切り替えるには時間がかかる。現在の動作が軸移動であって、次の動作の内部指令に主軸回転指令を含む場合は、現在の動作である軸移動が完了する前に、モータの通電をオフ状態からオン状態に切り替える。故に数値制御装置は、次の動作において、モータがオン状態になって主軸を回転するまでの待機時間を短縮できる。なお、軸移動とは、主軸の位置を移動する動作を意味する。また、生成部が一つの制御指令を解釈して生成する内部指令の数は、制御指令の種類に応じて異なる。内部指令とは、ＮＣプログラムの制御指令を解釈することによって機械の動作を具体的に制御する為の指令を意味する。実施例では、内部指令のうち軸の移動を指示する指令を移動指令と呼び、例えば早送り指令、切削送り指令等の移動指令が該当する。また、「次の動作の前記内部指令に前記主軸を回転する主軸回転指令を含む」とは、例えば、内部指令の一部に主軸回転指令を含む場合や、内部指令そのものが主軸回転指令である場合等を含む概念である。主軸を回転駆動するモータを使用しない期間は、原則該モータの通電をオフ状態にするとよい。故に機械が消費する電力を消費できる。
【０００７】
請求項２に係る数値制御装置の前記制御部は、前記通電制御部が前記モータの通電をオン状態にした後、軸移動が完了して前記次の動作の前記内部指令を実行するときに、前記主軸回転指令を実行する回転実行部を備えるとよい。故に数値制御装置は、軸移動が完了する前にモータの通電をオン状態にしても、次の内部指令を実行するまでは主軸を回転しないので、仮に軸移動を完了した時点で機械の動作を停止した場合に、主軸は停止状態であるので、主軸が回転状態になってしまうのを防止できる。故に数値制御装置は作業の安全性を向上できる。
【０００８】
請求項３に係る数値制御装置の前記生成部は、前記ＮＣプログラムの前記制御指令が被削材にタップを実行するタップ指令である場合、前記モータの通電がオフ状態で、現在位置から、前記被削材において加工を開始する位置であるレファレンス点まで軸移動を行う軸移動指令と、前記主軸を回転する前記主軸回転指令を含み、前記主軸回転指令によって前記主軸を回転しながら、前記レファレンス点から前記被削材の目標位置まで切削送りを行う切削送り指令と、前記目標位置までの前記切削送りを行った後に、前記主軸を前記切削送りとは逆方向に回転しながら、前記主軸を前記被削材に形成された穴から引き抜く為の軸移動を行う引抜指令とを前記内部指令として夫々生成し、前記第一判断部が、前記モータの通電がオフ状態で、且つ前記現在の動作が前記軸移動指令に対応する軸移動であると判断し、さらに前記第二判断部が、前記次の動作の前記内部指令である前記切削送り指令に前記主軸回転指令を含むと判断した場合、前記通電制御部は、前記現在の動作である前記レファレンス点までの軸移動が完了する前に、前記モータの通電をオフ状態からオン状態に切り替えるとよい。生成部はタップ指令を解釈すると、内部指令として、少なくとも軸移動指令、切削送り指令、引抜指令の３つの内部指令を生成する。現在位置からレファレンス点までの軸移動指令を実行中に、モータの通電がオフ状態であれば、次の動作の内部指令は、主軸回転指令を含む切削送り指令である。故に数値制御装置はレファレンス点までの軸移動が完了する前に、モータの通電をオフ状態からオン状態に切り替えることができる。故に数値制御装置はタップ動作においても、モータをオン状態にして主軸を回転するまでの待機時間を短縮できる。
【０００９】
請求項４に係る数値制御装置の前記制御部が制御する前記機械は、前記主軸を回転可能に支持し且つ上下方向に移動可能に設けた主軸ヘッドと、前記主軸ヘッドの上下方向の移動範囲のうち機械原点よりも上方の位置に回転可能に設け、工具を支持し且つ回転割出可能な工具マガジンとを備え、前記主軸ヘッドを現在位置から前記機械原点まで上昇する第一上昇動作と、前記主軸ヘッドを前記機械原点から前記工具マガジンが回転可能となるＡＴＣ原点まで上昇し、その間に、前記主軸に現在装着する現工具を取り外して前記工具マガジンへ受け渡す第二上昇動作と、前記主軸ヘッドが前記ＡＴＣ原点に位置するときに、前記工具マガジンを回転して前記主軸に次に装着する次工具を前記主軸と対向するように位置決めする回転動作と、前記主軸ヘッドを前記ＡＴＣ原点から前記機械原点まで下降し、その間に、前記工具マガジンから前記次工具を受け取って前記主軸に装着する第一下降動作と、前記主軸ヘッドを前記機械原点から目標位置まで下降し、その間に、前記主軸を回転する第二下降動作とを含む工具交換動作を実行可能であって、前記ＮＣプログラムの前記制御指令が、前記工具交換動作を指令する工具交換指令である場合、前記生成部は、前記第一上昇動作の軸移動を指令する第一上昇指令と、前記第二上昇動作の軸移動を指令する第二上昇指令と、前記回転動作を指令する回転指令と、前記第一下降動作の軸移動を指令する第一下降指令と、前記第二下降動作の軸移動を指令すると共に、前記主軸を回転する前記主軸回転指令を含む第二下降指令とを前記内部指令として夫々生成し、前記第一判断部が、前記モータの通電がオフ状態で、且つ前記現在の動作が前記第一下降指令に対応する軸移動であると判断し、さらに前記第二判断部が、前記次の動作の前記内部指令である前記第二下降指令に、前記主軸回転指令を含むと判断した場合、前記通電制御部は、前記第一下降動作における前記機械原点までの軸移動が完了する前に、前記モータの通電をオフ状態からオン状態に切り替えるとよい。生成部は工具交換指令を解釈すると、内部指令として、第一上昇指令、第二上昇指令、回転指令、第一下降指令、第二下降指令を生成する。第二下降指令は、主軸回転指令を含む指令である。故に数値制御装置は第一下降指令を実行中、次の動作の内部指令が第二下降指令である場合、第一下降動作における機械原点までの軸移動が完了する前に、モータの通電をオフ状態からオン状態に切り替えることができる。故に数値制御装置は工具交換動作においても、モータをオン状態にして主軸を回転するまでの待機時間を短縮できる。
【００１０】
請求項５に係る数値制御装置は、前記第一下降動作において、前記主軸に前記工具が装着する所定位置よりも下方で、且つ前記機械原点よりも上方の範囲内であって、前記通電制御部が前記モータの通電をオフ状態からオン状態に切り替え可能な範囲の上限値を設定可能な設定部を備え、前記通電制御部は、前記第一判断部が、前記モータの通電がオフ状態で、且つ前記現在の動作が前記第一下降指令に対応する軸移動であると判断し、さらに前記第二判断部が、前記次の動作の前記内部指令である前記第二下降指令に、前記主軸回転指令を含むと判断した場合、前記第一下降動作において、少なくとも前記設定部が設定した前記上限値以下で、且つ前記機械原点への軸移動が完了する前に、前記モータの通電をオフ状態からオン状態に切り替えるとよい。第一下降動作において、所定位置よりも下方で、且つ機械原点よりも上方の範囲内であって、モータの通電をオフ状態からオン状態に切り替え可能な範囲の上限値を設定できる。所定位置に到達したとき、主軸のモータはオフ状態であり、主軸にモータのトルクがかかっていない状態である。故に数値制御装置は、所定位置に到達したときに、モータのトルクが機械に影響を及ぼすのを防止できる。
【００１１】
請求項６に係る制御方法は、ＮＣプログラムの制御指令を解釈して内部指令を生成する生成ステップと、当該生成ステップにて生成した前記内部指令に従い工具を装着する主軸を有する機械の動作を制御する制御ステップとを備えた数値制御装置の制御方法において、前記制御ステップは、前記主軸を回転駆動するモータの通電がオフ状態で、且つ前記制御ステップで制御する前記機械の現在の動作が軸移動であるか判断する第一判断ステップと、前記第一判断ステップにて、前記モータの通電がオフ状態で、且つ前記現在の動作が軸移動であると判断した場合、前記生成ステップで生成する次の動作の前記内部指令に前記主軸を回転する主軸回転指令を含むか判断する第二判断ステップと、前記第二判断ステップにて、前記次の動作の前記内部指令に前記主軸回転指令を含むと判断した場合、軸移動が完了する前に、前記モータの通電をオフ状態からオン状態に切り替える通電制御ステップとを備えたことを特徴とする。数値制御装置は上記ステップを行うことで、請求項１に記載の効果を得ることができる。
【００１２】
本発明は、上記請求項１〜５の発明特定事項の一部を任意に組み合わせてもよい。
【図面の簡単な説明】
【００１３】
【図１】工作機械１の斜視図。
【図２】主軸ヘッド７周囲の一部破断図。
【図３】工具交換動作の経路を示す図。
【図４】主軸ヘッド７の昇降動作中の主軸ヘッド７周囲の一部破断図。
【図５】主軸ヘッド７の昇降動作中の主軸ヘッド７周囲の一部破断図。
【図６】主軸ヘッド７の昇降動作中の主軸ヘッド７周囲の一部破断図。
【図７】主軸ヘッド７の昇降動作中の主軸ヘッド７周囲の一部破断図。
【図８】工作機械１と数値制御装置３０の電気的構成を示すブロック図。
【図９】速度ブロックＢ１に加減速処理を施した図。
【図１０】基本動作パターンにおける主軸モータオン指令の出力時を示す時刻図。
【図１１】対象動作パターンＡ〜Ｇを示した表。
【図１２】移動制御処理の流れ図。
【図１３】図１２の続きを示す流れ図。
【図１４】パターンＡの時刻図。
【図１５】パターンＢの時刻図。
【図１６】タップ動作の経路を示す図。
【図１７】パターンＣの時刻図。
【図１８】パターンＤの時刻図。
【図１９】パターンＧの時刻図。
【図２０】ドリル動作の経路を示す図。
【発明を実施するための形態】
【００１４】
本発明の一実施形態を説明する。以下の説明は、図中に矢印で示す左右、前後、上下を使用する。工作機械１の左右方向、前後方向、上下方向は、夫々、工作機械１のＸ軸方向、Ｙ軸方向、Ｚ軸方向である。
【００１５】
図１を参照し、工作機械１の構造を説明する。工作機械１は、基台２、機械本体３、テーブル１０、工具交換装置２０等を備える。基台２は略直方体状の鉄製土台である。機械本体３は基台２上部後方に設け、テーブル１０上面に保持した被削材（図示略）を切削する。テーブル１０は基台２上部中央に設け、Ｘ軸モータ５１、Ｙ軸モータ５２（図８参照）、ガイド機構（図示略）により、Ｘ軸方向とＹ軸方向に移動可能である。工具交換装置２０は機械本体３上部に設けたフレーム８に固定し、機械本体３の主軸９に装着した工具４を他の工具（以下、次工具と呼ぶ）と交換する。
【００１６】
工作機械１は操作パネル１５（図８参照）を備える。操作パネル１５は入力部２４と表示部２５（図３参照）を備える。作業者は入力部２４により、ＮＣプログラム、工具の種類、工具情報、各種パラメータ等を入力する。作業者が入力部２４を操作すると、表示部２５は各種入力画面又は操作画面等を表示する。
【００１７】
図１，図２を参照し、機械本体３の構成を説明する。図１に示す如く、機械本体３は、立柱５、主軸ヘッド７、主軸９、制御箱６等を備える。立柱５は基台２上部後方に立設する。主軸ヘッド７は立柱５前面に沿ってＺ軸方向に昇降可能である。主軸ヘッド７は内部に主軸９を回転可能に支持する。主軸９は工具ホルダ１７（図２参照）を装着し、主軸モータ５４（図２，図８参照）の駆動により高速回転する。主軸モータ５４は主軸ヘッド７上部に設ける。工具ホルダ１７は工具４を保持する。制御箱６は数値制御装置３０（図８参照）を格納する。数値制御装置３０は工作機械１の動作を制御する。
【００１８】
図２に示す如く、主軸ヘッド７は立柱５前面に設けたＺ軸移動機構によりＺ軸方向に昇降する。Ｚ軸移動機構は一対のＺ軸リニアガイド（図示略）、Ｚ軸ボール螺子２６（図２参照）、Ｚ軸モータ５３（図８参照）を備える。Ｚ軸リニアガイドはＺ軸方向に延出し且つ主軸ヘッド７をＺ軸方向に案内する。Ｚ軸ボール螺子２６は一対のＺ軸リニアガイドの間に配置し、上側軸受部２７と下側軸受部（図示略）によって回転可能に設ける。主軸ヘッド７は背面にナット２９（図２参照）を備える。ナット２９はＺ軸ボール螺子２６に螺合する。Ｚ軸モータ５３はＺ軸ボール螺子２６を正逆方向に回転する。故に主軸ヘッド７はナット２９と共にＺ軸方向に移動する。
【００１９】
図２を参照し、主軸ヘッド７の内部構造を説明する。主軸ヘッド７は前方下部の内側に主軸９を回転可能に支持する。主軸９は上下方向に回転軸を有する。主軸９は主軸モータ５４の駆動軸にカップリング２３を介して連結する。故に主軸９は主軸モータ５４の回転駆動で回転する。主軸９はテーパ穴１８とホルダ挟持部材１９とドローバー８１を備える。テーパ穴１８は主軸９の先端部（下端部）に設ける。ホルダ挟持部材１９はテーパ穴１８の上方に設ける。ドローバー８１は主軸９の内部に設ける。
【００２０】
工具ホルダ１７は一端側に工具４を保持し、他端側にテーパ装着部１７Ａとプルスタッド１７Ｂを備える。テーパ装着部１７Ａは略円錐状である。プルスタッド１７Ｂはテーパ装着部１７Ａの頂上部から軸方向に突出する。テーパ装着部１７Ａは主軸９のテーパ穴１８に装着する。テーパ穴１８にテーパ装着部１７Ａを装着すると、ホルダ挟持部材１９はプルスタッド１７Ｂを挟持する。ドローバー８１がホルダ挟持部材１９を下方に押圧すると、ホルダ挟持部材１９はプルスタッド１７Ｂの挟持を解除する。
【００２１】
主軸ヘッド７は後方上部の内側にクランクレバー６０を備える。クランクレバー６０は略Ｌ字型であり支軸６１を中心に揺動自在である。支軸６１は主軸ヘッド７内に固定する。クランクレバー６０は縦方向レバー６３と横方向レバー６２を備える。縦方向レバー６３は支軸６１から立柱５側に対して斜め上方に延びて中間部６５で上方に折曲して更に上方に延びる。横方向レバー６２は支軸６１から主軸９側に略水平に延びる。横方向レバー６２の先端部はドローバー８１に直交して突設したピン５８に上方から係合可能である。縦方向レバー６３は上端部の背面に板カム体６６を備える。板カム体６６は立柱５側にカム面を備える。板カム体６６のカム面は上側軸受部２７に固定したカムフォロア６７と接離可能である。カムフォロア６７は板カム体６６のカム面を摺動する。引張コイルバネ（図示略）は縦方向レバー６３と主軸ヘッド７との間に弾力的に設ける。クランクレバー６０を右側面から見た場合、引張コイルバネはクランクレバー６０を時計回りに常時付勢する。故にクランクレバー６０は横方向レバー６２によるピン５８の下方向への押圧を常時解除する。
【００２２】
工具交換装置２０は工具マガジン２１を備える。工具マガジン２１はタレット式である。工具マガジン２１はマガジンベース７１と複数のグリップアーム９０を備える。マガジンベース７１は円盤状である。複数のグリップアーム９０はマガジンベース７１の外周に沿って前後方向に揺動可能に設ける。マガジン支持台４５はフレーム８の一端に固定する。フレーム８の他端は立柱５に固定する。マガジン支持台４５は支軸７５を回転可能に支持する。支軸７５は工作機械１の前方に対して斜め下方に延びる。支軸７５はマガジンベース７１を回転可能に支持する。マガジンベース７１は工作機械１の前方に対して正面を向けて配置する。
【００２３】
図３〜図７を参照し、工具交換動作を説明する。以下説明は、Ｚ軸の機械原点をＺ軸原点と呼ぶ。機械原点とは、Ｘ軸、Ｙ軸の機械座標が零である位置、Ｚ軸の機械座標が被削材を加工可能な上限位置となる位置である。本実施形態は、説明の便宜上、目標位置（加工位置）をＺ＝２００、現在位置をＺ＝３００、Ｚ軸原点をＺ＝４００、ＡＴＣ原点をＺ＝５００と仮定する（図３参照）。Ｚ軸原点よりもテーブル１０側の領域は加工領域、Ｚ軸原点よりも加工領域とは反対側の領域は工具交換領域である。加工領域は被削材の加工動作を行う為の領域である。工具交換領域は工具交換装置２０による工具交換を行う為の領域である。尚、各数字の単位はｍｍである。
【００２４】
工具交換動作は第１工程１０１〜第５工程１０５を備える。図４に示す如く、第１工程１０１は、主軸９のテーパ穴１８に、工具ホルダ１７のテーパ装着部１７Ａを装着した状態で、主軸ヘッド７は現在位置（例えば加工位置）からＺ軸原点に向けて上昇し、主軸９はオリエント動作を実行する。オリエント動作は、主軸９の回転角度位置を所定位置に停止する動作である。
【００２５】
第２工程１０２は主軸ヘッド７をＺ軸原点からＡＴＣ原点に向けて上昇させ、主軸モータ５４の電源をオフ状態にする。Ｚ軸原点とＡＴＣ原点の間の所定位置において、クランクレバー６０に設けた板カム体６６はカムフォロア６７に接触して摺動する。図５に示す如く、グリップアーム９０の把持部９１は工具ホルダ１７を把持し、板カム体６６のカム形状に沿ってカムフォロア６７は摺動する。クランクレバー６０は右側面から見た場合に支軸６１を中心に反時計回りに回転する。横方向レバー６２はピン５８に上方から係合してドローバー８１を下方に押圧する。ドローバー８１はホルダ挟持部材１９を下方に付勢する。ホルダ挟持部材１９はプルスタッド１７Ｂの挟持を解除する。
【００２６】
図６，図７の順に示す如く、主軸ヘッド７は更に上昇する。工具ホルダ１７は主軸９のテーパ穴１８から抜ける。主軸９のテーパ穴１８に対して、工具ホルダ１７の取り外しは完了する。上記の通り、第２工程１０２では主軸モータ５４はオフ状態である。故に工作機械１は、主軸９に工具ホルダ１７を着脱する為のメカ機構と、主軸モータ５４のオン状態時のトルクが競合して発振してしまうのを防止できるので、メカ機構に負荷がかからない。メカ機構は、ドローバー８１、クランクレバー６０、引張コイルバネ等を含む。主軸ヘッド７はＡＴＣ原点に到達する。
【００２７】
第３工程１０３は工具マガジン２１を回転する。工具交換装置２０はＮＣプログラムの制御指令が指定する次工具を工具交換位置に位置決めする。工具交換位置は工具マガジン２１の最下方位置で且つ主軸９に近接して対向する位置である。工具交換位置に位置決めした次工具は、ＡＴＣ原点に移動した主軸ヘッド７の下方に位置する。
【００２８】
図７，図６の順に示す如く、第４工程１０４は、主軸ヘッド７がＡＴＣ原点からＺ軸原点に向けて下降し、主軸９のテーパ穴１８に工具ホルダ１７のテーパ装着部１７Ａが進入する。主軸９のテーパ穴１８に、工具ホルダ１７のテーパ装着部１７Ａを挿入した状態で、主軸ヘッド７は更に下降する。クランクレバー６０に設けた板カム体６６はカムフォロア６７に摺動する。板カム体６６のカム形状に沿ってカムフォロア６７が摺動する。図５に示す如く、クランクレバー６０は右側面から見た場合に支軸６１を中心に時計回りに回転する。故に横方向レバー６２はピン５８から離れ、ドローバー８１の下方への押圧を解除する。ドローバー８１はホルダ挟持部材１９の下方への付勢を解除し、ホルダ挟持部材１９はプルスタッド１７Ｂを挟持する。主軸ヘッド７は更に下降し、Ｚ軸原点に到達する。
【００２９】
第５工程１０５は主軸ヘッド７がＺ軸原点から目標位置に向けて下降する。工具交換動作終了後に続いて切削送りを実行する場合、数値制御装置３０は、主軸ヘッド７が目標位置に到達する前に、主軸モータ５４の回転を開始する。主軸ヘッド７が目標位置に到達して、工具交換動作は終了する。主軸ヘッド７が目標位置に到達後、主軸回転数が目標値に到達してから、数値制御装置３０は切削送りを実行する。第１工程１０１と第２工程１０２は上昇工程、第４工程１０４と第５工程１０５は下降工程である。
【００３０】
図８を参照し、数値制御装置３０と工作機械１の電気的構成を説明する。数値制御装置３０は、ＣＰＵ３１、ＲＯＭ３２、ＲＡＭ３３、記憶装置３４、入出力部５０、モータ制御部３５〜３９等を備える。ＣＰＵ３１は数値制御装置３０を統括制御する。ＲＯＭ３２は各種プログラム等を記憶する。ＲＯＭ３２は、ＣＰＵ３１が後述する移動制御処理（図１２，図１３参照）を実行する為の移動制御プログラムを記憶する。ＣＰＵ３１はＲＯＭ３２に記憶する移動制御プログラムをＲＡＭ３３上で展開することで、移動制御処理を実行するプロセッサの一例として機能する。ＲＡＭ３３は各種処理実行中の各種データを一時的に記憶する。記憶装置３４は例えば不揮発性のフラッシュメモリであり、例えば作業者が入力部２４で入力して登録した複数のＮＣプログラム等を記憶する。ＮＣプログラムは各種制御指令を含む複数のブロックで構成し、工作機械１の軸移動、工具交換等を含む各種動作をブロック単位で制御するものである。
【００３１】
Ｘ軸モータ５１、Ｙ軸モータ５２、Ｚ軸モータ５３、主軸モータ５４、マガジンモータ５５は、例えばサーボモータである。モータ制御部３５はＸ軸モータ５１とエンコーダ５１Ｂに接続する。モータ制御部３６はＹ軸モータ５２とエンコーダ５２Ｂに接続する。モータ制御部３７はＺ軸モータ５３とエンコーダ５３Ｂに接続する。モータ制御部３８は主軸モータ５４とエンコーダ５４Ｂに接続する。モータ制御部３９はマガジンモータ５５とエンコーダ５５Ｂに接続する。モータ制御部３５〜３９はＣＰＵ３１から内部指令を受け取り、対応する各モータ５１〜５５に駆動電流を夫々出力する。モータ制御部３５〜３９はエンコーダ５１Ｂ〜５５Ｂからフィードバック信号を受け、位置と速度のフィードバック制御を行う。フィードバック信号はパルス信号である。以下説明はモータ制御部３５〜３９を総称するとき、モータ制御部４０と呼ぶ。モータ制御部４０は夫々、後述する分配処理部４０１とフィルタ処理部４０２を備える。入出力部５０は入力部２４と表示部２５に夫々接続する。使用者は複数のＮＣプログラムの中から一のＮＣプログラムを入力部２４で選択可能である。ＣＰＵ３１は選択したＮＣプログラムを表示部２５に表示する。ＣＰＵ３１は表示部２５に表示したＮＣプログラムに基づき、工作機械１の動作を制御する。
【００３２】
図９を参照し、移動速度の加減速処理を説明する。ＣＰＵ３１は、ＮＣプログラムを１ブロック毎に解釈し、Ｘ軸、Ｙ軸、Ｚ軸毎に内部指令を生成する。内部指令の一つである移動指令を生成した時、モータ制御部４０はＣＰＵ３１から移動指令を受け取る。モータ制御部４０は受け取った移動指令に基づき、各軸毎に、目標位置、移動距離、移動速度、移動時間等を夫々演算する。数値制御装置３０は演算した軸毎の移動速度に、移動平均フィルタ（以下、ＦＩＲフィルタと呼ぶ）を通して速度変化を滑らかにする加減速処理を行う。ＦＩＲフィルタの加減速時定数（以下、時定数と呼ぶ）は、ＦＩＲフィルタが平均を行うサンプル数に相当する。例えば、サンプル時間が１ｍｓｅｃで、ＦＩＲフィルタの時定数が１０ｍｓｅｃの時、ＦＩＲフィルタは今回の移動指令を含めて１０個前までの指令の平均を今回の出力とする。ＦＩＲフィルタの時定数をｔ１とする。
【００３３】
モータ制御部４０は、ｔ１１から１ｍｓｅｃ毎に移動速度を分配してＦＩＲフィルタで処理し、Ｘ軸モータ５１、Ｙ軸モータ５２、Ｚ軸モータ５３の各軸に出力する。工具はｔ１１からｔ１をかけて緩やかに速度を上げてｔ１２で最高速度に達する。その後、工具は最高速度で移動し、ｔ１３で移動速度の分配が完了する。それと同時に、工具は最高速度からｔ１をかけて緩やかに速度を落とし、ｔ１４で停止する。故に数値制御装置３０は移動速度をＦＩＲフィルタで処理することで、移動速度の急激な変化を吸収し、工作機械１の振動を抑制する。内部指令は移動指令の他、Ｍ０３の主軸回転指令等、ワーク又は主軸ヘッド７の移動が伴わないものがある。
【００３４】
図１０を参照し、主軸モータ５４のオン指令先出しの基本動作パターンを説明する。主軸モータ５４のオン指令とは、主軸モータ５４の通電をオンする指令を意味する。主軸モータ５４の通電オフ状態から主軸回転指令を実行するとき、主軸モータ５４のオン指令を出力してから通電オン状態になるまでにかかる時間分だけ主軸９の回転開始は遅れる。例えば、主軸モータ５４がオフ状態で、且つ現在の動作（以下、現動作と呼ぶ）が早送りで、次動作が主軸回転指令を含む移動指令の場合を想定する。
【００３５】
図１０の上段の図表は、従来の基本動作パターンを示す。現動作である早送り指令の速度ブロックＢ２は、ｔ２０からサンプル周期毎に移動速度の分配を開始してＦＩＲフィルタで加減速の処理をする。故に工具はｔ２０から緩やかに加速してｔ２１で最高速度に達する。ｔ２２で移動速度の分配が完了すると同時に、最高速度から緩やかに減速してｔ２３で目標位置に到達して停止する。従来の数値制御装置は、早送り指令の目標位置に到達するｔ２３で、主軸モータ５４のオン指令を出力する。主軸モータ５４がオン状態になったｔ２４で主軸９は回転を開始でき、ｔ２６で次動作である移動が完了する。尚、早送り指令とは、代表的なものはＧ００であり、記憶装置３４に記憶された位置決め最高速度で位置決めする指令である。
【００３６】
図１０の下段の図表は、本実施形態の基本動作パターンを示す。本実施形態の数値制御装置３０は、早送り指令の移動速度の分配が完了するｔ２２で、主軸モータ５４のオン指令をする。移動速度の分配が完了するｔ２２では、数値制御装置３０は、次動作の内部指令が主軸回転指令を含む移動指令か否かを判定できる。ｔ２２で主軸モータ５４のオン指令をすることで、早送り指令の目標位置に到達するｔ２３において、主軸モータ５４を既にオン状態にできる。故にｔ２３で主軸９は即回転でき、数値制御装置３０は加工周期を従来よりも短縮できる。
【００３７】
図１１を参照し、本実施形態の対象動作パターンを説明する。対象動作パターンＡ〜Ｇは、ＮＣプログラムを解釈して生成する移動指令に基づく動作パターンであり、少なくとも現動作と次動作を定義する。次動作をＮ番目動作としたとき、現動作はＮ−１番目動作である。現動作開始時の主軸モータ５４は何れもオフ状態である。数値制御装置３０は、主軸９を回転しない時、原則主軸モータ５４の通電をオフ状態にすることで、主軸モータ５４の駆動にかかる電力消費を節約できる。
【００３８】
パターンＡは、Ｎ−１番目動作として早送り、Ｎ番目動作として切削送りと主軸回転である。パターンＢは、Ｎ−１番目動作として早送り、Ｎ番目動作としてタップである。パターンＣは、Ｎ−１番目動作として早送り、Ｎ番目動作として早送りと主軸回転、Ｎ＋１番目動作として切削送りである。パターンＤは、Ｎ−１番目動作として早送り、Ｎ番目動作として早送りと主軸回転、Ｎ＋１番目動作として早送り、Ｎ＋２番目動作として切削送りである。パターンＥは、Ｎ−１番目動作として早送り、Ｎ番目動作として主軸回転、Ｎ＋１番目動作として切削送りである。パターンＦは、Ｎ−１番目動作として早送り、Ｎ番目動作として主軸回転、Ｎ＋１番目動作として早送り、Ｎ＋２番目動作として切削送りである。パターンＧは、Ｎ−１番目動作として工具交換動作におけるＡＴＣ原点からの下降動作、Ｎ番目動作として工具交換動作におけるＺ軸原点からの下降動作と主軸回転、Ｎ＋１番目動作として切削送りである。尚、切削送りの指令（切削送り指令）は、通常、送り速度をプログラム中に記載するが、本実施例においては、記憶装置３４に予め記憶してある切削送り最高速度を用いている。
【００３９】
図１２，図１３を参照し、移動制御処理を説明する。移動制御処理は、数値制御装置３０が実行する。本実施形態は、図１１に示す対象動作パターンＡ〜Ｇの夫々について、移動制御処理を実行した場合を順に説明する。使用者が操作パネル１５でＮＣプログラムを選択し実行操作を入力したとき、数値制御装置３０はＲＯＭ３２から移動制御プログラムを読込み、本処理を実行する。
【００４０】
パターンＡのＮＣプログラムＰ１の一例は以下の通りである。
Ｇ００  Ｘ＿Ｙ＿Ｚ＿；
Ｇ０１  Ｘ＿Ｙ＿Ｚ＿  Ｓ１００００  Ｍ０３；
【００４１】
図１２に示す如く、ＣＰＵ３１はＮＣプログラムＰ１を１ブロック読込む（Ｓ１）。ＣＰＵ３１は読込んだ１ブロック内にＭ３０の終了指令が有るか否か判断する（Ｓ２）。読込んだ１ブロック内にＭ３０は無いので（Ｓ２：ＮＯ）、ＣＰＵ３１は読込んだ１ブロック内の制御指令であるＧ００を解釈して内部指令を生成し（Ｓ３）、モータ制御部４０に出力する（Ｓ４）。Ｇ００は早送り指令であるので、ＣＰＵ３１は内部指令である早送りの移動指令を生成する。ＣＰＵ３１はＮＣプログラムを解釈するプログラム解釈部として機能する。
【００４２】
ＣＰＵ３１は主軸モータ５４がオフ状態で、且つＸ軸、Ｙ軸、Ｚ軸が現在移動中か否か判断する（Ｓ５）。主軸モータ５４はオフ状態であるが、Ｘ軸、Ｙ軸、Ｚ軸は現在移動中では無いので（Ｓ５：ＮＯ）、ＣＰＵ３１は受け取った内部指令が最初の移動指令か否か判断する（Ｓ２０）。最初の移動指令とは、ＮＣプログラムを解釈して生成する最初の移動指令を意味する。実行する内部指令は最初の移動指令であるので（Ｓ２０：ＹＥＳ）、モータ制御部４０の分配処理部４０１は早送りの移動指令である速度ブロックＢ３（図１４参照）の移動分配を開始する（Ｓ１７）。
【００４３】
図１４に示す如く、ｔ３０で、モータ制御部４０の分配処理部４０１はサンプル周期毎に速度ブロックＢ３の移動分配を開始する。モータ制御部４０のフィルタ処理部４０２はＦＩＲフィルタで移動速度の加減速処理を軸毎に行い、各種モータ５１〜５３に駆動電流を出力する。故に工具はｔ３０から緩やかに加速しｔ３１で最高速度に達する。ＣＰＵ３１は速度ブロックＢ３の移動分配が完了したか否か判断する（Ｓ１８）。移動分配が完了するまで（Ｓ１８：ＮＯ）、ＣＰＵ３１はＳ１８に戻って待機する。ｔ３２で速度ブロックＢ３の移動分配が完了すると（Ｓ１８：ＹＥＳ）、ＣＰＵ３１は１ブロック内の移動指令は全て完了したと判断し（Ｓ１９：ＹＥＳ）、ＮＣプログラムＰ１の２行目を読込む（Ｓ１）。
【００４４】
読込んだ２行目の１ブロック内にＭ３０は無いので（Ｓ２：ＮＯ）、読込んだ２行目を解釈して内部指令を生成し（Ｓ３）、内部指令をモータ制御部４０に出力する（Ｓ４）。２行目のＧ０１は主軸回転指令を含む切削送り指令である。
【００４５】
現在の状態は、主軸モータ５４がオフ状態で且つ移動中であるので（Ｓ５：ＹＥＳ）、ＣＰＵ３１は内部指令が主軸回転指令を含むか否か判断する（Ｓ６）。内部指令は主軸回転指令を含むので（Ｓ６：ＹＥＳ）、ＣＰＵ３１は内部指令が工具交換動作におけるＺ軸原点からの下降か否か判断する（Ｓ７）。内部指令はＺ軸原点からの下降では無いので（Ｓ７：ＮＯ）、速度ブロックＢ３の移動分配が完了したｔ３２で、ＣＰＵ３１は主軸モータ５４にオン指令を出力する（Ｓ１０）。工具はｔ３２から緩やかに減速する。工具がｔ３３で目標位置に停止する前に、主軸モータ５４はオン状態になる。
【００４６】
図１３に示す如く、ＣＰＵ３１は、工具の現在座標が目標位置に到達したか否か判断する（Ｓ１１）。現在座標が目標位置に到達するまで（Ｓ１１：ＮＯ）、ＣＰＵ３１はＳ１１に戻って待機する。ｔ３３で現在座標が目標位置に到達した時（Ｓ１１：ＹＥＳ）、ＣＰＵ３１は主軸モータ５４に回転指令を出力する（Ｓ１２）。主軸モータ５４は回転を開始する。現在座標が目標位置に到達するまで主軸モータ５４は回転しないので、数値制御装置３０は、主軸回転指令を含まない現動作において、主軸９が回転してしまうのを防止できる。ＣＰＵ３１は、現動作が工具交換動作におけるＺ軸原点からの下降か否か判断する（Ｓ１３）。現動作はＺ軸原点からの下降では無いので（Ｓ１３：ＮＯ）、ＣＰＵ３１は、次動作がタップ動作か否か判断する（Ｓ１４）。次動作は切削送りであるので（Ｓ１４：ＮＯ）、ＣＰＵ３１は、次動作が早送りか否か判断する（Ｓ１５）。
【００４７】
次動作は切削送りであるので（Ｓ１５：ＮＯ）、ＣＰＵ３１は、主軸回転数が目標値に到達したか否か判断する（Ｓ１６）。目標値は、例えば主軸回転数（Ｓ指令値）に対する割合（Ｐ％）で決めるとよい。例えばＰ＝８５（％）の場合、Ｓ指令値１００００（ｒｐｍ）に対して目標値８５００（ｒｐｍ）で主軸回転数に到達とみなすことができる。主軸回転数が目標値に到達するまで（Ｓ１６：ＮＯ）、ＣＰＵ３１はＳ１６に戻って待機する。ｔ３４で主軸回転数が目標値に到達した場合（Ｓ１６：ＹＥＳ）、モータ制御部４０は、切削送り指令の速度ブロックＢ４の移動分配を開始し（Ｓ１７）、ＦＩＲフィルタで処理し、各種モータ５１〜５３に出力する。故に工具はｔ３４から緩やかに速度を上げてｔ３５で最高速度に達する。
【００４８】
ｔ３６で速度ブロックＢ４の移動分配が完了した場合（Ｓ１８：ＹＥＳ）、１ブロック内の移動指令は全て完了したので（Ｓ１９：ＹＥＳ）、ＣＰＵ３１は図１２のＳ１に戻って処理を繰り返す。読込んだ１ブロック内にＭ３０が有る場合（Ｓ２：ＹＥＳ）、ＣＰＵ３１は本処理を終了する。
【００４９】
以上のように、パターンＡでは、数値制御装置３０は、現動作が完了するｔ３３よりも前に主軸モータ５４のオン指令を出力する。故に主軸モータ５４の通電オンにかかる時間分を短縮できるので、ｔ３３〜ｔ３４の待ち時間Ｗ１を短縮できる。
【００５０】
パターンＢのＮＣプログラムＰ２の一例は以下の通りである。
Ｇ００  Ｘ＿Ｙ＿Ｚ＿；
Ｇ７７  Ｚ２０．Ｒ４０．Ｉ２．Ｓ５０００
【００５１】
図１２に示す如く、ＣＰＵ３１はＮＣプログラムＰ２を１ブロック読込む（Ｓ１）。ＮＣプログラムＰ２の１行目は、パターンＡのＮＣプログラムＰ１の１行目と同じであるので、同一部分については説明を簡略又は省略する。
【００５２】
図１５に示す如く、ｔ４０で、モータ制御部４０の分配処理部４０１はサンプル周期毎に早送り指令の速度ブロックＢ５の移動分配を開始する（Ｓ１７）。モータ制御部４０のフィルタ処理部４０２はＦＩＲフィルタで移動速度の加減速処理を軸毎に行い、各種モータ５１〜５３に駆動電流を出力する。故に工具はｔ４０から緩やかに加速し最高速度に達する。ｔ４１で速度ブロックＢ５の移動分配が完了すると（Ｓ１８：ＹＥＳ）、１ブロック内の移動指令は全て完了したので（Ｓ１９：ＹＥＳ）、ＣＰＵ３１はＮＣプログラムＰ２の２行目を読込む（Ｓ１）。２行目はＧ７７のタップ指令であって、Ｍ３０では無いので（Ｓ２：ＮＯ）、ＣＰＵ３１は読込んだ２行目のＧ７７を解釈して４つの内部指令を生成する（Ｓ３）。
【００５３】
図１６に示すように、タップ動作は、例えば早送り動作１５１、タップ動作１５２、タップ動作１５３、早送り動作１５４の４つの動作を備える。早送り動作１５１は、例えば主軸９を回転しないでＺ＝１００からＺ＝４０のレファレンス点（Ｒ点）まで早送りで移動する動作である。タップ動作１５２は、Ｒ点から主軸９を一方向に回転しながらＺ＝２０の穴底まで移動することによってタップ加工を施す動作である。タップ動作１５３は、主軸９を逆方向に回転しながら穴底からＲ点まで引き上げて移動する動作であり、タップ引き上げ動作である。早送り動作１５４は、主軸９を回転しないでＲ点からＺ＝１００まで引き上げて早送りで移動する動作である。故にＣＰＵ３１は、１ブロック内のＧ７７で、早送り動作１５１、タップ動作１５２、タップ動作１５３、早送り動作１５４に夫々対応する４つの移動指令（２つの早送り指令と２つのタップ指令）を生成する。タップ動作１５２，１５３に対応する移動指令は、何れも主軸９を回転する必要があるので、主軸回転指令を含む。早送り動作１５４に対応する早送り指令は、主軸停止指令を含む。尚、Ｇ７７のタップ指令にあるＩ２はタップピッチが２であることを示す。
【００５４】
ｔ４１で、ＣＰＵ３１は早送り動作１５１に対応する内部指令として早送り指令を生成し、モータ制御部４０に出力する（Ｓ４）。ｔ４１では、主軸モータ５４はオフ状態で且つ移動中である（Ｓ５：ＮＯ）。早送り指令は主軸回転指令を含んでおらず（Ｓ６：ＮＯ）、図１３に示す如く、最初の移動指令でもない（Ｓ２０：ＮＯ）。ＣＰＵ３１は、現在移動中の工具の現在座標が目標位置（Ｚ＝１００）に到達したか否か判断する（Ｓ２１）。現在座標が目標位置に到達するまで（Ｓ２１：ＮＯ）、ＣＰＵ３１はＳ２１に戻って待機する。次動作はタップ引き上げ動作ではないので（Ｓ２４：ＮＯ）、ｔ４２で現在座標が目標位置に到達した時（Ｓ２１：ＹＥＳ）、ＣＰＵ３１は、主軸９が回転中か否か判断する（Ｓ２３）。主軸９は回転していないので（Ｓ２３：ＮＯ）、モータ制御部４０はタップ指令の速度ブロックＢ６の移動分配を開始し（Ｓ１７）、ＦＩＲフィルタで移動速度の加減速処理を行い、Ｚ軸モータ５３に駆動電流を出力する。故に工具はｔ４２から緩やかに加速して最高速度に達し、早送り動作１５１を行う。
【００５５】
ｔ４３で速度ブロックＢ６の移動分配が完了すると（Ｓ１８：ＹＥＳ）、ＣＰＵ３１は１ブロック内の内部指令は全て完了したか否か判断する（Ｓ１９）。Ｇ７７を解釈して生成した４つの内部指令のうち３つの内部指令が残っているので（Ｓ１９：ＮＯ）、ＣＰＵ３１は、タップ動作１５２に対応するタップ指令をモータ制御部４０に出力する（Ｓ４）。
【００５６】
ｔ４３では、主軸モータ５４はオフ状態で且つ移動中である（Ｓ５：ＹＥＳ）。タップ指令は主軸回転指令を含んでいるが（Ｓ６：ＹＥＳ）、タップ指令はＺ軸原点からの下降では無いので（Ｓ７：ＮＯ）、ＣＰＵ３１は、速度ブロックＢ６の移動分配が完了したｔ４３で、主軸モータ５４のオン指令を出力する（Ｓ１０）。工具はｔ４３から緩やかに減速する。工具がｔ４４で目標位置であるＲ点に停止する前に、主軸モータ５４はオン状態になる。
【００５７】
図１３に示す如く、ＣＰＵ３１は、工具の現在座標がＲ点に到達したか否か判断する（Ｓ１１）。ｔ４４で現在座標がＲ点に到達した時（Ｓ１１：ＹＥＳ）、ＣＰＵ３１は主軸モータ５４に回転指令を出力する（Ｓ１２）。主軸モータ５４は回転を開始する。ＣＰＵ３１は、現動作が工具交換動作におけるＺ軸原点からの下降か否か判断する（Ｓ１３）。現動作はＺ軸原点からの下降では無いので（Ｓ１３：ＮＯ）、ＣＰＵ３１は、次動作がタップ動作か否か判断する（Ｓ１４）。次動作はタップ動作であるので（Ｓ１４：ＹＥＳ）、モータ制御部４０は、タップ指令の速度ブロックＢ７の移動分配を開始する（Ｓ１７）。モータ制御部４０はＦＩＲフィルタで処理し、Ｚ軸モータ５３に出力する。故に工具はｔ４４から回転しながら緩やかに加速しタップ動作を行う。
【００５８】
ｔ４５で速度ブロックＢ７の移動分配が完了すると（Ｓ１８：ＹＥＳ）、ＣＰＵ３１は１ブロック内の内部指令は全て完了したか否か判断する（Ｓ１９）。Ｇ７７を解釈して生成した４つの内部指令のうち２つの内部指令が残っているので（Ｓ１９：ＮＯ）、ＣＰＵ３１は、タップ動作１５３に対応する内部指令をモータ制御部４０に出力する（Ｓ４）。
【００５９】
ｔ４５では、主軸モータ５４はオン状態であり（Ｓ５：ＮＯ）、内部指令は最初の移動指令では無いので（Ｓ２０：ＮＯ）、ＣＰＵ３１は、工具の現在座標がタップ動作１５２の目標位置であるＺ＝２０に到達したか否か判断する（Ｓ２１）。ｔ４６で現在座標が目標位置に到達した時（Ｓ２１：ＹＥＳ）、ＣＰＵ３１は、次動作がタップ引き上げ動作か否か判断する（Ｓ２２）。次動作であるタップ動作１５３はタップ引き上げ動作であるので（Ｓ２２：ＹＥＳ）、ＣＰＵ３１は、主軸モータ５４をオン状態のまま一旦停止してから逆向きに回転し、且つタップ動作１５３に対応するタップ指令の速度ブロックの移動分配を開始する（Ｓ１７）。モータ制御部４０はＦＩＲフィルタで移動速度の加減速処理を行い、Ｚ軸モータ５３に駆動電流を出力する。故に工具はｔ４６から逆向きに回転しながら緩やかに加速して上方に移動し、タップした穴から上方に徐々に引き抜かれる。
【００６０】
タップ動作１５３の速度ブロックの移動分配が完了すると（Ｓ１８：ＹＥＳ）、ＣＰＵ３１は１ブロック内の内部指令は全て完了したか否か判断する（Ｓ１９）。Ｇ７７を解釈して生成した４つの移動指令のうち１つの移動指令が残っているので（Ｓ１９：ＮＯ）、ＣＰＵ３１は、早送り動作１５４に対応する早送り指令をモータ制御部４０に出力する（Ｓ４）。
【００６１】
主軸モータ５４はオン状態であるので（Ｓ５：ＮＯ）、ＣＰＵ３１は早送り指令が最初の移動指令か否か判断する（Ｓ２０）。早送り指令は最初の移動指令では無いので（Ｓ２０：ＮＯ）、ＣＰＵ３１は工具がタップ動作１５３の目標位置であるＲ点（Ｚ＝４０）に到達したか否か判断する（Ｓ２１）。工具がＲ点に到達すると（Ｓ２１：ＹＥＳ）、工具はタップした穴から上方に引き抜かれる。次動作はタップ引き上げ動作では無いので（Ｓ２２：ＮＯ）、ＣＰＵ３１は主軸９が回転中か否か判断する（Ｓ２３）。主軸９は回転中であるので（Ｓ２３：ＹＥＳ）、ＣＰＵ３１は受け取った早送り指令に主軸停止指令を含むか否か判断する（Ｓ２４）。早送り動作１５４に対応する早送り指令は主軸停止指令を含むので（Ｓ２４：ＹＥＳ）、ＣＰＵ３１は主軸モータ５４のオフ指令を出力する（Ｓ２５）。故に主軸９の回転は停止する。
【００６２】
モータ制御部４０は、早送り指令の速度ブロックの移動分配を開始する（Ｓ１７）。モータ制御部４０はＦＩＲフィルタで移動速度の加減速処理を行い、Ｚ軸モータ５３に駆動電流を出力する。故に工具はＲ点から緩やかに速度を上げて上方に移動する。早送り動作１５４の速度ブロックの移動分配が完了すると（Ｓ１８：ＹＥＳ）、１ブロック内の移動指令は全て完了したので（Ｓ１９：ＹＥＳ）、ＣＰＵ３１は次ブロックを読込む（Ｓ１）。早送り動作１５４が完了すると、工具はＺ＝１００の位置に戻る。読込んだ１ブロック内にＭ３０が有る場合（Ｓ２：ＹＥＳ）、ＣＰＵ３１は本処理を終了する。
【００６３】
以上のように、パターンＢでは、数値制御装置３０は、現動作である早送り動作１５１が完了するｔ４４よりも前に主軸モータ５４のオン指令を出力する。故に主軸モータ５４の通電オンにかかる時間分を短縮できるので、早送り動作１５１が完了するｔ４４から次動作であるタップ動作を速やかに開始できる。
【００６４】
パターンＣのＮＣプログラムＰ３の一例は以下の通りである。
Ｇ００  Ｘ＿Ｙ＿Ｚ＿；
Ｇ００  Ｘ＿Ｙ＿Ｚ＿  Ｓ１００００  Ｍ０３
Ｇ０１  Ｘ＿Ｙ＿Ｚ＿；
【００６５】
ＣＰＵ３１はＮＣプログラムＰ３を１ブロック読込む（Ｓ１）ＮＣプログラムＰ３の１行目は、パターンＡのＮＣプログラムＰ１の１行目と同じＧ００である。
【００６６】
図１７に示すように、ｔ５０で、モータ制御部４０はサンプル周期毎に早送り指令の速度ブロックＢ８の移動分配を開始する（Ｓ１７）。モータ制御部４０はＦＩＲフィルタで移動速度の加減速処理を軸毎に行い、各種モータ５１〜５３に駆動電流を出力する。故に工具はｔ５０から緩やかに加速して最高速度に達する。ｔ５１で移動分配が完了すると（Ｓ１８：ＹＥＳ）、１ブロック内の移動指令は全て完了したので（Ｓ１９：ＹＥＳ）、ＣＰＵ３１はＮＣプログラムＰ２の２行目を読込む（Ｓ１）。２行目は、Ｇ００の早送り指令と、Ｍ０３の主軸回転指令である（Ｓ２：ＮＯ）。故にＣＰＵ３１は内部指令として、主軸回転指令を含む早送り指令を生成する（Ｓ３）。ＣＰＵ３１は早送り指令をモータ制御部４０に出力する（Ｓ４）。
【００６７】
ｔ５１では、主軸モータ５４はオフ状態で且つ移動中である（Ｓ５：ＹＥＳ）。出力した早送り指令は主軸回転指令を含んでいるが（Ｓ６：ＹＥＳ）、Ｚ軸原点からの下降では無いので（Ｓ７：ＮＯ）、ＣＰＵ３１は、速度ブロックＢ８の移動分配が完了したｔ５１で、主軸モータ５４のオン指令を出力する（Ｓ１０）。工具はｔ５１から緩やかに減速する。工具がｔ５２で目標位置に停止する前に、主軸モータ５４はオン状態になる。
【００６８】
図１３に示す如く、モータ制御部４０は、工具の現在座標が目標位置に到達したか否か判断する（Ｓ１１）。ｔ５２で工具の現在座標が目標位置に到達した時（Ｓ１１：ＹＥＳ）、ＣＰＵ３１は主軸モータ５４の回転を指令する（Ｓ１２）。主軸モータ５４は回転を開始する。現動作はＺ軸原点からの下降では無く（Ｓ１３：ＮＯ）、次動作はタップ動作では無いので（Ｓ１４：ＮＯ）、ＣＰＵ３１は、次動作の移動指令が早送り指令か否か判断する（Ｓ１５）。次動作の移動指令は早送り指令であるので（Ｓ１５：ＹＥＳ）、ｔ５２でモータ制御部４０は早送り指令の速度ブロックＢ９の移動分配を開始する（Ｓ１７）。モータ制御部４０はＦＩＲフィルタで移動速度の加減速処理を軸毎に行い、各種モータ５１〜５３に駆動電流を出力する。故に工具はｔ５２から緩やかに加速し最高速度に達する。ｔ５３で移動分配が完了すると（Ｓ１８：ＹＥＳ）、１ブロック内の移動指令は全て完了したので（Ｓ１９：ＹＥＳ）、ＣＰＵ３１はＮＣプログラムＰ２の３行目を読込む（Ｓ１）。３行目は、Ｇ０１の切削送り指令である（Ｓ２：ＮＯ）。故にＣＰＵ３１は内部指令として、切削送り指令を生成する（Ｓ３）。ＣＰＵ３１は、モータ制御部４０に切削送り指令を出力する（Ｓ４）。
【００６９】
ｔ５３では、主軸モータ５４はオン状態で且つ移動中である（Ｓ５：ＮＯ）。ＣＰＵ３１は早送り指令が最初の移動指令か否か判断する（Ｓ２０）。早送り指令は最初の移動指令では無いので（Ｓ２０：ＮＯ）、ＣＰＵ３１は工具が早送り指令の目標位置に到達したか否か判断する（Ｓ２１）。ｔ５４で現在座標が目標位置に到達した場合（Ｓ２１：ＹＥＳ）、次動作はタップ引き上げ動作ではなく（Ｓ２２：ＮＯ）、現在主軸９は回転中であるので（Ｓ２３：ＹＥＳ）、ＣＰＵ３１は切削送り指令に主軸停止指令を含むか否か判断する（Ｓ２４）。切削送り指令は主軸停止指令を含まないので（Ｓ２４：ＮＯ）、ＣＰＵ３１は次動作が早送りか否か判断する（Ｓ２６）。次動作は切削送りであるので（Ｓ２６：ＮＯ）、ＣＰＵ３１は主軸回転数が目標値に到達したか否か判断する（Ｓ２７）。ｔ５５で主軸回転数が目標値に到達した場合（Ｓ２７：ＹＥＳ）、モータ制御部４０は、切削送り指令の速度ブロックＢ１０の移動分配を開始する（Ｓ１７）。モータ制御部４０はＦＩＲフィルタで移動速度の加減速処理を軸毎に行い、各種モータ５１〜５３に駆動電流を出力する。故に工具はｔ５５から緩やかに加速して最高速度に達する。
【００７０】
ｔ５６で速度ブロックＢ１０の移動分配が完了すると（Ｓ１８：ＹＥＳ）、１ブロック内の内部指令は全て完了したので（Ｓ１９：ＹＥＳ）、ＣＰＵ３１はＮＣプログラムＰ３の次ブロックを読込む（Ｓ１）。ｔ５７で工具は切削送りの目標位置に到達する。読込んだ１ブロック内にＭ３０が有る場合（Ｓ２：ＹＥＳ）、ＣＰＵ３１は本処理を終了する。
【００７１】
以上のように、パターンＣでは、数値制御装置３０は、現動作が完了するｔ５２よりも前に、主軸モータ５４のオン指令を出力する。故に主軸モータ５４のオンにかかる時間分を短縮できるので、現動作が完了するｔ５２から主軸９を速やかに回転できる。次動作の早送り中に主軸回転数は上昇し、次動作終了後、主軸回転数が目標値に到達してから切削送りを行うので、ｔ５４とｔ５５の間が待ち時間Ｗ２となる。パターンＣは待ち時間Ｗ２について、主軸モータ５４のオンにかかる時間分を短縮できる。
【００７２】
パターンＤのＮＣプログラムＰ４の一例は以下の通りである。
Ｇ００  Ｘ＿Ｙ＿Ｚ＿；
Ｇ００  Ｘ＿Ｙ＿Ｚ＿  Ｓ１００００  Ｍ０３
Ｇ００  Ｘ＿Ｙ＿Ｚ＿；
Ｇ０１  Ｘ＿Ｙ＿Ｚ＿；
【００７３】
パターンＤの１行目と２行目は、パターンＣの１行目と２行目と同じであるので説明を省略し、図１８を用いてパターンＣと異なる点を中心に説明する。
【００７４】
図１８に示す如く、速度ブロックＢ１１は、１行目のＧ００の早送り指令に対応する。工具はｔ６０で移動を開始し、ｔ６２で目標位置に到達する。速度ブロックＢ１２は、２行目のＧ００の早送り指令と、Ｍ０３の主軸回転指令に対応する。工具はｔ６２で回転を開始し且つ移動を開始する。工具がｔ６３で目標位置に到達すると（Ｓ２１：ＹＥＳ）、ＣＰＵ３１は次動作がタップ引き上げ動作か否か判断する（Ｓ２２）。速度ブロックＢ１３は、３行目のＧ００の早送り指令に対応する。次動作は早送りであり、主軸９は現在回転中であり、次動作は主軸停止指令を含まないので（Ｓ２２：ＮＯ、Ｓ２３：ＹＥＳ、Ｓ２４：ＮＯ、Ｓ２６：ＹＥＳ）、ｔ６３でモータ制御部４０は早送り指令の速度ブロックＢ１３の移動分配を開始する（Ｓ１７）。ｔ６３では主軸回転数は目標値に到達していないが、引き続き目標値に向かって上昇する。
【００７５】
工具はｔ６４で目標位置に到達する。速度ブロックＢ１４は、４行目のＧ０１の切削送り指令に対応する。３行目の早送り動作（Ｎ＋１番目動作）が終了したｔ６４では、主軸回転数は目標値に到達していない。故に主軸回転数が目標値に到達するまで工具は速度ブロックＢ１４の移動を開始しない。ｔ６５で主軸回転数は目標値に到達する。故に工具はｔ６５で回転しながら移動を開始することで被削材を切削し、ｔ６６で目標位置に到達する。パターンＤでは、ｔ６４とｔ６５の間が待ち時間Ｗ３となる。
【００７６】
速度ブロックＢ１１の移動分配はｔ６０で開始しｔ６１で完了する。次動作は主軸回転指令を含む早送りである。故にＣＰＵ３１はｔ６１で主軸モータ５４のオン指令を出力する。現動作の早送りで工具が目標位置に到達するｔ６２よりも前に、主軸モータ５４はオン状態になる。故に数値制御装置３０は主軸モータ５４のオンにかかる時間分を短縮できるので、現動作が完了するｔ６２から主軸９を速やかに回転できる。故に数値制御装置３０は待ち時間Ｗ３を、主軸モータ５４のオンにかかる時間分だけ短縮できる。
【００７７】
パターンＥのＮＣプログラムＰ５の一例は以下の通りである。
Ｇ００  Ｘ＿Ｙ＿Ｚ＿；
Ｓ１００００  Ｍ０３
Ｇ０１  Ｘ＿Ｙ＿Ｚ＿；
【００７８】
ＮＣプログラムＰ５の１行目を解釈して生成する移動指令はＧ００の早送り指令、２行目を解釈して生成する内部指令はＭ０３の主軸回転指令、３行目を解釈して生成する移動指令はＧ０１の切削送り指令である。パターンＥでは、１行目の動作が現動作である。２行目は主軸回転指令のみで、３行目が切削送り指令であるので、２行目と３行目を合わせた切削送りが次動作となる。故にパターンＥは、図１４に示すパターンＡと同じ挙動となる。パターンＥでも、数値制御装置３０は、現動作である早送りが完了するｔ３３よりも前に、主軸モータ５４のオン指令を出力する。故に数値制御装置３０は主軸モータ５４のオンにかかる時間分を短縮できるので、次動作を開始するまでの待ち時間Ｗ１を、主軸モータ５４のオンにかかる時間分だけ短縮できる。
【００７９】
パターンＦのＮＣプログラムＰ６の一例は以下の通りである。
Ｇ００  Ｘ＿Ｙ＿Ｚ＿；
Ｓ１００００  Ｍ０３
Ｇ００  Ｘ＿Ｙ＿Ｚ＿；
Ｇ０１  Ｘ＿Ｙ＿Ｚ＿；
【００８０】
ＮＣプログラムＰ６の１行目を解釈して生成する移動指令はＧ００の早送り指令、２行目を解釈して生成する内部指令はＭ０３の主軸回転指令、３行目を解釈して生成する移動指令はＧ００の早送り指令、４行目を解釈して生成する移動指令はＧ０１の切削送り指令である。パターンＦでも、１行目の動作が現動作である。２行目は主軸回転指令のみで、３行目が早送り指令であるので、２行目と３行目を合わせた早送り動作が次動作となる。故にパターンＦは、図１５に示すパターンＣと同じ挙動となる。パターンＦでも、数値制御装置３０は、現動作である早送りが完了するｔ４４よりも前に、主軸モータ５４のオン指令を出力する。故に数値制御装置３０は主軸モータ５４のオンにかかる時間分を短縮できるので、現動作が完了するｔ４４から主軸９を速やかに回転できる。
【００８１】
パターンＧのＮＣプログラムＰ７の一例は以下の通りである。
Ｇ１００  Ｚ２００．Ｔ２  Ｍ０３  Ｓ１００００；
Ｇ０１  Ｘ＿Ｙ＿Ｚ＿；
【００８２】
ＮＣプログラムＰ７の一行目のＧ１００は工具交換指令である。工具交換動作は上記の通りである。図３に示す如く、工具交換動作の第４工程１０４において、Ｚ軸上に規定位置Ｐｓを設定する。工具交換動作では、第５工程１０５で主軸９を回転する。故に数値制御装置３０は、第５工程１０５で速やかに主軸９を回転する為、第４工程１０４において主軸モータ５４のオン指令の先出しを行う。第４工程１０４では、主軸９のテーパ穴１８に対して下方から工具ホルダ１７が装着する。主軸９に対して工具ホルダ１７が装着する前に、主軸モータ５４がオンすると、主軸９を駆動する主軸モータ５４のトルクが、上述のメカ機構と競合して発振する等の影響を及ぼす可能性がある。故に数値制御装置３０は、主軸９に対して工具ホルダ１７が装着した後で、主軸モータ５４のオン指令を出力するのが好ましい。第４工程１０４において設定する規定位置Ｐｓは、主軸モータ５４をオン状態にしてもよい位置である。規定位置Ｐｓは例えば操作パネル１５で自由に設定可能なパラメータであり、例えば記憶装置３４等に記憶してもよい。
【００８３】
図１２に示す如く、ＣＰＵ３１はＮＣプログラムＰ７を１ブロック読込む（Ｓ１）。読込んだ１ブロック内にＭ３０は無いので（Ｓ２：ＮＯ）、ＣＰＵ３１は読込んだ１ブロック内のＧ１００を解釈し、５つの内部指令を生成する（Ｓ３）。５つの内部指令は、第１工程１０１に対応する第１早送り指令、第２工程１０２に対応する第２早送り指令と主軸停止指令、第３工程１０３に対応するマガジン回転指令、第４工程１０４に対応する第３早送り指令、第５工程１０５に対応する第４早送り指令と主軸回転指令である。生成した内部指令のうち、第１〜第４早送り指令は移動指令である。生成した内部指令はＲＡＭ３３に記憶する。
【００８４】
ＣＰＵ３１はモータ制御部４０に第１早送り指令を出力する（Ｓ４）。主軸モータ５４はオフ状態であるが、工具は停止しているので（Ｓ５：ＮＯ）、ＣＰＵ３１は第１早送り指令が最初の移動指令か否か判断する（Ｓ２０）。第１早送り指令は最初の移動指令であるので（Ｓ２０：ＹＥＳ）、モータ制御部４０は第１早送り指令の速度ブロックの移動分配を開始する（Ｓ１７）。移動分配が完了すると（Ｓ１８：ＹＥＳ）、１ブロック内で完了していない移動指令があるので（Ｓ１９：ＮＯ）、ＣＰＵ３１はモータ制御部４０に第２早送り指令と主軸停止指令を出力する（Ｓ４）。
【００８５】
主軸モータ５４はオン状態であるので（Ｓ５：ＮＯ）、ＣＰＵ３１は第２早送り指令が最初の移動指令か否か判断する（Ｓ２０）。第２早送り指令は最初の移動指令では無いので（Ｓ２０：ＮＯ）、ＣＰＵ３１は主軸ヘッド７が第１工程１０１の目標位置であるＺ軸原点に到達したか否か判断する（Ｓ２１）。主軸ヘッド７がＺ軸原点に到達した場合（Ｓ２１：ＹＥＳ）、主軸９は回転しているので（Ｓ２２：ＮＯ，Ｓ２３：ＹＥＳ）、ＣＰＵ３１は第２早送り指令に主軸停止指令を含むか否か判断する（Ｓ２４）。第２早送り指令は主軸停止指令を含むので（Ｓ２４：ＹＥＳ）、ＣＰＵ３１は主軸モータ５４を停止する（Ｓ２５）。
【００８６】
モータ制御部４０は第２早送り指令の移動分配を開始する（Ｓ１７）。主軸ヘッド７はＺ軸原点からＡＴＣ原点に向けて移動を開始する。移動分配が完了すると（Ｓ１８：ＹＥＳ）、１ブロック内で完了していない内部指令があるので（Ｓ１９：ＮＯ）、ＣＰＵ３１はモータ制御部４０に第３早送り指令を出力する（Ｓ４）。
【００８７】
現在の主軸モータ５４はオフ状態で、且つ主軸ヘッド７は移動中であるが（Ｓ５：ＹＥＳ）、第３早送り指令は主軸回転指令を含まないので（Ｓ６：ＮＯ）、ＣＰＵ３１は第３早送り指令が最初の移動指令か否か判断する（Ｓ２０）。第３早送り指令は最初の移動指令では無いので（Ｓ２０：ＮＯ）、ＣＰＵ３１は主軸ヘッド７が第２工程１０２の目標位置であるＡＴＣ原点に到達したか否か判断する（Ｓ２１）。主軸ヘッド７がＡＴＣ原点に到達すると（Ｓ２１：ＹＥＳ）、次動作はタップ引き上げ動作でなく（Ｓ２２：ＮＯ）、主軸９は回転していないので（Ｓ２３：ＮＯ）、第３工程１０３であるマガジンベース７１の回転動作完了後、モータ制御部４０はｔ７０で第３早送り指令の速度ブロックＢ１５の移動分配を開始する（Ｓ１７）。主軸ヘッド７はＡＴＣ原点からＺ軸原点に向けて下降を開始する。ｔ７１で速度ブロックＢ１５の移動分配が完了すると（Ｓ１８：ＹＥＳ）、１ブロック内で完了していない内部指令があるので（Ｓ１９：ＮＯ）、ＣＰＵ３１はモータ制御部４０に第４早送り指令を出力する（Ｓ４）。
【００８８】
現在の主軸モータ５４はオフ状態で、且つ主軸ヘッド７は移動中であり（Ｓ５：ＹＥＳ）、第４早送り指令は主軸回転指令を含むので（Ｓ６：ＹＥＳ）、ＣＰＵ３１は、第４早送り指令はＺ軸原点からの下降か否か判断する（Ｓ７）。第４早送り指令はＺ軸原点からの下降であるので（Ｓ７：ＹＥＳ）、モータ制御部４０は、第４早送り指令の速度ブロックＢ１６の移動分配を開始する（Ｓ８）。速度ブロックＢ１６は、ｔ７２で到達するＺ軸原点までは低速、Ｚ軸原点からは高速で主軸ヘッド７を移動する速度ブロックである。故にｔ７１から速度ブロックＢ１５が速度を緩やかに減速する一方、速度ブロックＢ１６の速度が緩やかに加速するｔ７１〜ｔ７２の間では、移動速度は一定となる。
【００８９】
ＣＰＵ３１は、主軸ヘッド７の現在座標は規定位置Ｐｓ以下であるか否か判断する（Ｓ９）。現在座標が規定位置Ｐｓ以下となるまで（Ｓ９：ＮＯ）、ＣＰＵ３１はＳ９に戻り待機する。ｔ７１１で現在座標が規定位置Ｐｓ以下になった場合（Ｓ９：ＹＥＳ）、工具ホルダ１７が既に主軸９に装着しているので、ＣＰＵ３１は主軸モータ５４のオン指令を出力する（Ｓ１０）。故に数値制御装置３０は、工具ホルダ１７を主軸９に装着して固定する為の上記のメカ機構と、主軸モータ５４のオン状態時のトルクが競合して発振してしまうのを防止できるので、メカ機構に負荷がかからない。
【００９０】
ＣＰＵ３１は、主軸ヘッド７が第４工程１０４の目標位置であるＺ軸原点に到達したか否か判断する（Ｓ１１）。Ｚ軸原点に到達するまでは（Ｓ１１：ＮＯ）、ＣＰＵ３１はＳ１１に戻って待機する。ｔ７２でＺ軸原点に到達した場合（Ｓ１１：ＹＥＳ）、ＣＰＵ３１は主軸モータ５４の回転を指令する（Ｓ１２）。実行中の動作は第５工程１０５であり、Ｚ軸原点からの下降であるので（Ｓ１３：ＹＥＳ）、ＣＰＵ３１は、第４早送り指令の速度ブロックＢ１６の移動分配が完了したか否か判断する（Ｓ１８）。ｔ７３で速度ブロックＢ１６の移動分配が完了した場合（Ｓ１８：ＹＥＳ）、１ブロック内の内部指令は全て完了したので（Ｓ１９：ＹＥＳ）、ＣＰＵ３１はＳ１に戻り、ＮＣプログラムＰ７の２行目のブロックを読込む。
【００９１】
２行目は、Ｇ０１の切削送り指令であって、Ｍ３０では無いので（Ｓ２：ＮＯ）、ＣＰＵ３１は読込んだ２行目のＧ０１を解釈して内部指令として切削送り指令を生成する（Ｓ３）。ＣＰＵ３１はモータ制御部４０に切削送り指令を出力する（Ｓ４）。主軸ヘッド７は移動中であるが、主軸モータ５４は既にオン状態であるので（Ｓ５：ＮＯ）、ＣＰＵ３１は、切削送り指令が最初の移動指令か否か判断する（Ｓ２０）。切削送り指令は最初の移動指令では無いので（Ｓ２０：ＮＯ）、ＣＰＵ３１は主軸ヘッド７が第５工程１０５の目標位置（Ｚ＝２０）に到達したか否か判断する（Ｓ２１）。目標位置に到達した場合（Ｓ２１：ＹＥＳ）、次動作である切削送りはタップ引き上げ動作ではなく（Ｓ２２：ＮＯ）、主軸９は回転中であり（Ｓ２３：ＹＥＳ）、切削送り指令は主軸停止指令を含まないので（Ｓ２４：ＮＯ）、ＣＰＵ３１は次動作が早送りか否か判断する（Ｓ２６）。次動作は切削送り動作であるので（Ｓ２６：ＮＯ）、ＣＰＵ３１は、主軸回転数は目標値以上か否か判断する（Ｓ２７）。主軸回転数が目標値以上になるまで（Ｓ２７：ＮＯ）、ＣＰＵ３１はＳ２７に戻って待機する。故に主軸ヘッド７は主軸回転数が目標値以上になるまで停止する。
【００９２】
ｔ７５で主軸回転数が目標値以上になった場合（Ｓ２７：ＹＥＳ）、モータ制御部４０は切削送り指令の速度ブロックＢ１７の移動分配を開始する（Ｓ１７）。パターンＧでは、ｔ７４とｔ７５の間が待ち時間Ｗ４となる。主軸ヘッド７は目標位置に向かって移動を開始するので、工具は回転しながら被削材を切削する。速度ブロックＢ１７の移動分配が完了すると（Ｓ１８：ＹＥＳ）、ＮＣプログラムＰ７の２行目の１ブロック内の移動指令は全て完了したので（Ｓ１９：ＹＥＳ）、ＣＰＵ３１はＮＣプログラムＰ７の次ブロックを読込む（Ｓ１）。読み込んだ次ブロックがＭ３０である場合（Ｓ２：ＹＥＳ）、数値制御装置３０は本処理を終了する。主軸ヘッド７はｔ７６で切削送り動作を終了する。
【００９３】
以上のように、パターンＧでは、数値制御装置３０は、工具交換動作の下降工程において、ＡＴＣ原点からＺ軸原点に向けて下降する現動作が完了するｔ７２よりも前に、主軸モータ５４のオン指令を出力する。故に数値制御装置３０は主軸モータ５４のオンにかかる時間分を短縮できるので、主軸ヘッド７がＺ軸原点に到達するｔ７２から主軸９を速やかに回転できる。ｔ７４〜ｔ７５の待ち時間Ｗ４は、主軸回転数が目標値に到達するまでにかかる時間からＺ軸原点から目標位置までの主軸ヘッド７の移動時間を差し引いた時間だけとなる。故に数値制御装置３０は待ち時間Ｗ４を、主軸モータ５４のオンにかかる時間分だけ短縮できる。
【００９４】
本実施形態は、ＮＣプログラムを１ブロック解釈して複数の移動指令を生成する例として、パターンＢのタップ指令（Ｇ７７）と、パターンＧの工具交換指令（Ｇ１００
を説明したが、例えばドリル指令（Ｓ８１）においてもＣＰＵ３１の解釈によって、３つの移動指令を生成する。ドリル指令を用いたドリル動作のＮＣプログラムの一例を以下に示す。
Ｇ８１  Ｚ２０．Ｒ４０．Ｉ２．Ｍ３  Ｓ５０００；
【００９５】
図２０に示すように、ドリル動作は、例えば早送り動作２０１、切削送り動作２０２、早送り動作２０３の３つの動作を備える。早送り動作２０１は、例えば主軸９を回転しながらＺ＝１００からＺ＝４０のレファレンス点（Ｒ点）まで早送りで移動する動作である。切削送り動作２０２は、主軸９を回転しながら例えばＲ点から主軸９を一方向に回転しながらＺ＝２０まで移動して被削材に穴空けする動作である。早送り動作２０３は、主軸９を回転しないで穴底からＺ＝１００まで引き上げて早送りで移動する動作である。故にＣＰＵ３１は、早送り動作２０１、切削送り動作２０２、早送り動作２０３の３つの動作に夫々対応する３つの内部指令を生成する。
【００９６】
早送り動作２０１に対応する内部指令は主軸９を回転する必要があるので、主軸回転指令を含む。故に早送り動作２０１の前に、軸移動の動作（例えば早送り等）を設定することによって、パターンＡの動作に対応する。この場合、早送り動作２０１を開始するよりも前に、主軸モータ５４のオン指令を先出しできるので、次動作である早送り動作２０１を開始するまでの待ち時間Ｗ１を短縮できる。
【００９７】
以上説明にて、数値制御装置３０のＣＰＵ３１は本発明の生成部の一例である。工作機械１は本発明の機械の一例である。モータ制御部４０は本発明の制御部の一例である。Ｓ５の処理を実行するモータ制御部４０は本発明の第一判断部の一例である。Ｓ６の処理を実行するモータ制御部４０は本発明の第二判断部の一例である。Ｓ１０の処理を実行するモータ制御部４０は本発明の通電制御部の一例である。Ｓ１２の処理を実行するモータ制御部４０は本発明の回転実行部の一例である。
【００９８】
パターンＢにおいて、早送り動作１５１の早送り指令が本発明の軸移動指令の一例である。タップ動作１５２のタップ指令が本発明の切削送り指令の一例である。タップ動作１５３のタップ指令が本発明の引抜指令の一例である。パターンＧにおいて、第１工程１０１は本発明の第一上昇動作の一例である。第２工程１０２は本発明の第二上昇動作の一例である。第３工程１０３は本発明の回転動作の一例である。第４工程１０４は本発明の第一下降動作の一例である。第５工程１０５は本発明の第二下降動作の一例である。Ｚ軸原点は本発明の機械原点の一例である。規定位置Ｐｓは、前記モータの通電をオフ状態からオン状態に切り替え可能な範囲の上限値の一例である。
【００９９】
以上説明したように、本実施形態の数値制御装置３０はＣＰＵ３１とモータ制御部４０を備える。ＣＰＵ３１はＮＣプログラムの制御指令を解釈し、移動指令等の内部指令を生成する。モータ制御部４０はＣＰＵ３１が生成した内部指令に従い、工作機械１の動作を制御する。工作機械１は工具を支持する工具ホルダ１７を装着する主軸９を有する。モータ制御部４０は、主軸モータ５４の通電がオフ状態で、工作機械１の現在の動作が軸移動であるか判断する。通電がオフ状態で、工作機械１の現在の動作が軸移動であると判断した場合、ＣＰＵ３１が生成する次の動作の移動指令に主軸回転指令を含むか判断する。次の動作の移動指令に主軸回転指令を含むと判断した場合、モータ制御部４０は軸移動が完了する前に、主軸モータ５４の通電をオフ状態からオン状態に切り替える。故に数値制御装置３０は、次の動作において、主軸モータ５４がオン状態になって主軸９を回転するまでの待機時間を短縮できる。
【０１００】
本発明は上記実施形態に限らず各種変形が可能なことはいうまでもない。上記実施形態のパターンＡ〜Ｇは、主軸モータ５４がオフ状態で、現動作が軸移動、次動作が主軸回転指令を含む動作である対象動作パターンの例示であり、これ以外の動作パターンであってもよい。また、ＮＣプログラムＰ１〜Ｐ７は、パターンＡ〜Ｇの動作パターンを実行する為のＮＣプログラムの一例であって、これらに限定する趣旨でない。さらに、ＮＣプログラム中のＧ指令、Ｍ指令等の制御指令も例示であって、これら以外の制御指令で動作を設定するようにしてもよい。
【０１０１】
上記実施形態では、数値制御装置３０は演算した軸毎の移動速度に、移動平均フィルタを通して速度変化を滑らかにする加減速処理を行う。図９に示す加減速処理の例では、説明の便宜上、一段の移動平均フィルタで処理したときを例に説明したが、二段以上の移動平均フィルタで処理してもよい。故に工具の移動速度の急激な変化を更に吸収できるので、工作機械１の振動を効果的に抑制できる。
【０１０２】
上記実施形態のパターンＧにおいて、第４工程１０４で主軸モータ５４をオンしてもよい規定位置Ｐｓを設定したが、規定位置Ｐｓを設定しなくてもよい。即ち、図１２のＳ９の判断処理を省略してもよい。
【０１０３】
尚、本実施形態はＣＰＵ３１の代わりに、マイクロコンピュータ、ASIC (Application Specific Integrated Circuits)、FPGA (Field Programmable Gate Array)等を、プロセッサとして用いてもよい。移動制御処理は、複数のプロセッサによって分散処理してもよい。プログラムを記憶するＲＯＭ３２は、例えばＨＤＤ及び又は記憶装置３４等のフラッシュメモリ等の他の非一時的な記憶媒体で構成してもよい。非一時的な記憶媒体は、情報を記憶する期間に関わらず、情報を留めておくことが可能な記憶媒体であればよい。非一時的な記憶媒体は、一時的な記憶媒体（例えば、伝送される信号）を含まなくてもよい。移動制御プログラムは、例えば、図示外のネットワークに接続されたサーバからダウンロードして（即ち、伝送信号として送信され）、記憶装置３４等に記憶してもよい。この場合、移動制御プログラムは、サーバに備えられたＨＤＤなどの非一時的な記憶媒体に保存していればよい。
【符号の説明】
【０１０４】
１    工作機械
９    主軸
１７    主軸ヘッド
２１    工具マガジン
３０    数値制御装置
３１    ＣＰＵ
４０    モータ制御部
５４    主軸モータ
【図１】
2018106350.tif 000003
【図２】
2018106350.tif 000004
【図３】
2018106350.tif 000005
【図４】
2018106350.tif 000006
【図５】
2018106350.tif 000007
【図６】
2018106350.tif 000008
【図７】
2018106350.tif 000009
【図８】
2018106350.tif 000010
【図９】
2018106350.tif 000011
【図１０】
2018106350.tif 000012
【図１１】
2018106350.tif 000013
【図１２】
2018106350.tif 000014
【図１３】
2018106350.tif 000015
【図１４】
2018106350.tif 000016
【図１５】
2018106350.tif 000017
【図１６】
2018106350.tif 000018
【図１７】
2018106350.tif 000019
【図１８】
2018106350.tif 000020
【図１９】
2018106350.tif 000021
【図２０】
2018106350.tif 000022