(57)【特許請求の範囲】
【請求項１】
制御指令を有する複数のブロックで構成したＮＣプログラムに基づき、工具と被削材の相対移動により前記被削材の切削加工を行う機械の動作と、前記機械の主軸に装着する前記工具の工具交換を行う工具交換装置の動作を制御する数値制御装置において、
前記ＮＣプログラムの読込時に、前記複数のブロックの夫々の処理時間と、前記複数のブロックの夫々の前記制御指令の種類とを判定する判定手段と、
前記判定手段が判定した前記複数のブロックの夫々の前記処理時間と前記種類の情報であるブロック情報を記憶する記憶手段と、
前記ＮＣプログラムの実行開始後、前記記憶手段が記憶した前記ブロック情報に基づき、現在実行を開始するブロックである実行ブロック以降で且つ直近のブロックであって、前記工具交換を指示する前記制御指令である工具交換指令を有する工具交換ブロックを検索する検索手段と、
前記実行ブロックの実行開始から前記検索手段が検索した前記工具交換ブロックの実行開始までの各ブロックの前記処理時間を積算する積算手段と、
前記積算手段が積算した前記処理時間が所定時間以上の場合、前記工具交換装置を駆動するモータの電源を切断する切断手段と
を備えたこと
を特徴とする数値制御装置。
【請求項２】
前記切断手段が前記モータの電源を切断した後、前記工具交換ブロックの実行開始より少なくとも前記モータの起動に必要な起動時間前に、前記モータの電源を投入する投入手段を備えたこと
を特徴とする請求項１に記載の数値制御装置。
【請求項３】
前記投入手段は、
前記工具交換ブロックの実行開始よりも前記起動時間前のブロックの実行開始前に前記電源を投入すること
を特徴とする請求項２に記載の数値制御装置。
【請求項４】
前記所定時間は、少なくとも前記モータの起動に必要な起動時間よりも長く、
前記切断手段は、
前記積算手段が積算した前記処理時間が前記所定時間未満の場合、前記モータの電源を切断しないこと
を特徴とする請求項１から３の何れかに記載の数値制御装置。
【請求項５】
制御指令を有する複数のブロックで構成したＮＣプログラムに基づき、工具と被削材の相対移動により前記被削材の切削加工を行う機械の動作と、前記機械の主軸に装着する前記工具の工具交換を行う工具交換装置の動作を制御する数値制御装置の制御方法において、
前記ＮＣプログラムの読込時に、前記複数のブロックの夫々の処理時間と、前記複数のブロックの夫々の前記制御指令の種類とを判定する判定工程と、
前記判定工程で判定した前記複数のブロックの夫々の前記処理時間と前記種類の情報であるブロック情報を記憶する記憶工程と、
前記ＮＣプログラムの実行開始後、前記記憶工程で記憶した前記ブロック情報に基づき、現在実行を開始するブロックである実行ブロック以降で且つ直近のブロックであって、前記工具交換を指示する前記制御指令である工具交換指令を有する工具交換ブロックを検索する検索工程と、
前記実行ブロックの実行開始から前記検索工程で検索した前記工具交換ブロックの実行開始までの各ブロックの前記処理時間を積算する積算工程と、
前記積算工程で積算した前記処理時間が所定時間以上の場合、前記工具交換装置を駆動するモータの電源を切断する切断工程と
を備えたこと
を特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値制御装置と制御方法に関する。
【背景技術】
【０００２】
数値制御装置はＮＣプログラムに基づき工作機械の動作を制御する。工作機械は工具交換装置を備える。工具交換装置は工作機械の主軸の工具交換を行う。工具交換装置はマガジンモータで駆動する。数値制御装置はＮＣプログラム中の工具交換指令を解釈した時、マガジンモータを駆動し工具交換を実行する。工作機械が被削材を加工する間、工具交換装置は動作しない。特許文献１に記載の数値制御装置は、工作機械が被削材を加工する間、工具交換装置（ロボット）を休止することで、工具交換装置の電力消費を抑制する。ＮＣプログラムは必要箇所に休止指令を予め登録する。休止指令は被削材加工前の状態であることを通知する為の指令である。数値制御装置はＮＣプログラムの実行中に休止指令を解析した時、被削材加工前であると判断し、工具交換装置の電源を遮断する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１７６５０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
工具交換装置を休止する時刻は、工具交換装置の電源を投入してから起動するまでに必要な時間を考慮すると、次の工具交換までの間隔の長短に応じて決定する必要がある。使用者は工具交換装置を休止する時刻を決定し、ＮＣプログラムの必要箇所に休止指令を予め登録する必要があるので手間であった。
【０００５】
本発明の目的は、次の工具交換までの時間に応じて工具交換装置を駆動するモータの電源を自動で切断できる数値制御装置と制御方法を提供することである。
【課題を解決するための手段】
【０００６】
請求項１に係る数値制御装置は、制御指令を有する複数のブロックで構成したＮＣプログラムに基づき、工具と被削材の相対移動により前記被削材の切削加工を行う機械の動作と、前記機械の主軸に装着する前記工具の工具交換を行う工具交換装置の動作を制御する数値制御装置において、前記ＮＣプログラムの読込時に、前記複数のブロックの夫々の処理時間と、前記複数のブロックの夫々の前記制御指令の種類とを判定する判定手段と、前記判定手段が判定した前記複数のブロックの夫々の前記処理時間と前記種類の情報であるブロック情報を記憶する記憶手段と、前記ＮＣプログラムの実行開始後、前記記憶手段が記憶した前記ブロック情報に基づき、現在実行を開始するブロックである実行ブロック以降で且つ直近のブロックであって、前記工具交換を指示する前記制御指令である工具交換指令を有する工具交換ブロックを検索する検索手段と、前記実行ブロックの実行開始から前記検索手段が検索した前記工具交換ブロックの実行開始までの各ブロックの前記処理時間を積算する積算手段と、前記積算手段が積算した前記処理時間が所定時間以上の場合、前記工具交換装置を駆動するモータの電源を切断する切断手段とを備えたことを特徴とする。それ故、数値制御装置は、次の工具交換までの間隔が長い場合にモータの電源を切断するので、消費電力を抑制できる。
【０００７】
請求項２に係る数値制御装置は、請求項１に記載の発明の構成に加え、前記切断手段が前記モータの電源を切断した後、前記工具交換ブロックの実行開始より少なくとも前記モータの起動に必要な起動時間前に、前記モータの電源を投入する投入手段を備えたこと
を特徴とする。数値制御装置はモータの電源を切断した後、工具交換ブロックの実行開始より少なくとも所定時間前にモータの電源を投入するので、モータを確実に起動してから工具交換装置による工具交換を実行できる。
【０００８】
請求項３に係る数値制御装置は、請求項２に記載の発明の構成に加え、前記投入手段は、前記工具交換ブロックの実行開始よりも前記起動時間前のブロックの実行開始前に前記電源を投入することを特徴とする。数値制御装置はモータの電源の切断と投入のタイミングをブロック単位で行うので、制御が容易である。
【０００９】
請求項４に係る数値制御装置は、請求項１から３の何れかに記載の発明の構成に加え、前記所定時間は、少なくとも前記モータの起動に必要な起動時間よりも長く、前記切断手段は、前記積算手段が積算した前記処理時間が前記所定時間未満の場合、前記モータの電源を切断しないことを特徴とする。数値制御装置はモータの電源を切断した後であっても、工具交換の前にはモータを確実に起動できるので工具交換を速やかに実行できる。
【００１０】
請求項５に係る制御方法は、工具を装着する主軸の工具交換を行う工具交換装置を備え、制御指令を有する複数のブロックで構成したＮＣプログラムに基づき、前記工具と被削材の相対移動により、前記被削材の切削加工を行う機械の動作を制御する数値制御装置の制御方法において、前記ＮＣプログラムの読込時に、前記複数のブロックの夫々の処理時間と、前記複数のブロックの夫々の前記制御指令の種類とを判定する判定工程と、前記判定工程で判定した前記複数のブロックの夫々の前記処理時間と前記種類の情報であるブロック情報を記憶する記憶工程と、前記ＮＣプログラムの実行開始後、前記記憶工程で記憶した前記ブロック情報に基づき、現在実行を開始するブロックである実行ブロック以降で且つ直近のブロックであって、前記工具交換を指示する前記制御指令である工具交換指令を有する工具交換ブロックを検索する検索工程と、前記実行ブロックの実行開始から前記検索工程で検索した前記工具交換ブロックの実行開始までの各ブロックの前記処理時間を積算する積算工程と、前記積算工程で積算した前記処理時間が所定時間以上の場合、前記工具交換装置を駆動するモータの電源を切断する切断工程とを備えたことを特徴とする。数値制御装置は上記方法を行うことで請求項１に記載の効果を得ることができる。
【図面の簡単な説明】
【００１１】
【図１】工作機械１の斜視図。
【図２】数値制御装置３０と工作機械１の電気的構成を示すブロック図。
【図３】ＲＡＭ３３の各種記憶領域を示す概念図。
【図４】ＮＣプログラムＰ１の図。
【図５】ブロック情報３３１１の概念図。
【図６】ブロック情報作成処理の流れ図。
【図７】マガジンモータ電源制御処理（第一実施形態）の流れ図。
【図８】工具交換指令検索処理の流れ図。
【図９】Ｎ０１〜Ｎ０９までのブロック処理時間とマガジンモータの電源投入と切断の時刻を示す時間図。
【図１０】ＲＡＭ１３３の各種記憶領域を示す概念図。
【図１１】タイマ処理の流れ図。
【図１２】マガジンモータ電源制御処理（第二実施形態）の流れ図。
【図１３】第二実施形態におけるＮ０１〜Ｎ０９までのブロック処理時間とマガジンモータの電源投入と切断の時刻を示す時間図。
【発明を実施するための形態】
【００１２】
図１〜図９を参照し、本発明の第一実施形態を説明する。以下説明は、図１中に矢印で示す左右、前後、上下を使用する。工作機械１の左右方向、前後方向、上下方向は夫々工作機械１のＸ軸方向、Ｙ軸方向、Ｚ軸方向である。図１に示す工作機械１は主軸９に装着した工具４を回転し、テーブル１３上面に保持した被削材３に切削加工を施す機械である。数値制御装置３０（図２参照）は工作機械１の動作を制御するものである。
【００１３】
図１を参照し工作機械１の構造を説明する。工作機械１は、基台２、コラム５、主軸ヘッド７、主軸９、テーブル装置１０、工具交換装置２０、制御箱６、操作パネル１５（図２参照）等を備える。基台２は金属製の略直方体状の土台である。コラム５は基台２上部後方に立設する。主軸ヘッド７はコラム５前面に沿ってＺ軸方向に移動可能に設ける。主軸ヘッド７は内部に主軸９を回転可能に支持する。主軸９は主軸ヘッド７下部に装着穴（図示略）を有する。主軸９は該装着穴に工具４を装着し、主軸モータ５２（図２参照）の駆動で回転する。主軸モータ５２は主軸ヘッド７に設ける。主軸ヘッド７はコラム５前面に設けたＺ軸移動機構（図示略）でＺ軸方向に移動する。数値制御装置３０はＺ軸モータ５１の駆動を制御することで、主軸ヘッド７をＺ軸方向に移動制御する。
【００１４】
テーブル装置１０は、Ｙ軸移動機構（図示略）、Ｙ軸テーブル１２、Ｘ軸移動機構（図示略）、テーブル１３等を備える。Ｙ軸移動機構は基台２上面前側に設け、一対のＹ軸レール、Ｙ軸ボール螺子、Ｙ軸モータ５４（図２参照）等を備える。一対のＹ軸レールとＹ軸ボール螺子はＹ軸方向に延びる。一対のＹ軸レールは上面にＹ軸テーブル１２をＹ軸方向に案内する。Ｙ軸テーブル１２は略直方体状に形成し、底部外面にナット（図示略）を備える。該ナットはＹ軸ボール螺子に螺合する。Ｙ軸モータ５４がＹ軸ボール螺子を回転すると、Ｙ軸テーブル１２はナットと共に一対のＹ軸レールに沿って移動する。故にＹ軸移動機構はＹ軸テーブル１２をＹ軸方向に移動可能に支持する。
【００１５】
Ｘ軸移動機構はＹ軸テーブル１２上面に設け、一対のＸ軸レール（図示略）、Ｘ軸ボール螺子（図示略）、Ｘ軸モータ５３（図２参照）等を備える。Ｘ軸レールとＸ軸ボール螺子はＸ軸方向に延びる。テーブル１３は平面視矩形板状に形成し、Ｙ軸テーブル１２上面に設ける。テーブル１３は底部にナット（図示略）を備える。該ナットはＸ軸ボール螺子に螺合する。Ｘ軸モータ５３がＸ軸ボール螺子を回転すると、テーブル１３はナットと共に一対のＸ軸レールに沿って移動する。故にＸ軸移動機構はテーブル１３をＸ軸方向に移動可能に支持する。故にテーブル１３は、Ｙ軸移動機構、Ｙ軸テーブル１２、Ｘ軸移動機構により、基台２上をＸ軸方向とＹ軸方向に移動可能である。
【００１６】
工具交換装置２０は主軸ヘッド７の前側に設け、円盤型の工具マガジン２１を備える。工具マガジン２１は外周に複数の工具（図示略）を放射状に保持し、マガジンモータ５５（図２参照）の駆動により、工具交換指令が指示する工具を工具交換位置に位置決めする。工具交換指令はＮＣプログラムで指令する。工具交換位置は工具マガジン２１の最下部位置である。工具交換装置２０は主軸９に装着する工具４と工具交換位置にある工具とを入れ替え交換する。
【００１７】
制御箱６は数値制御装置３０(図２参照）を格納する。数値制御装置３０は、工作機械１に設けたＺ軸モータ５１、主軸モータ５２、Ｘ軸モータ５３、Ｙ軸モータ５４を夫々制御し、テーブル１３上に保持した被削材３と主軸９に装着した工具４を相対移動することで各種加工を被削材３に施す。各種加工とは、例えばドリル、タップ等を用いた穴空け加工、エンドミル、フライス等を用いた側面加工等である。
【００１８】
操作パネル１５は例えば工作機械１を覆うカバー（図示略）の外壁に設ける。操作パネル１５は入力部１６と表示部１７(図２参照）を備える。入力部１６は各種情報、操作指示等の入力を受け付け、後述する数値制御装置３０に出力する。表示部１７は後述する数値制御装置３０からの指令に基づき、各種画面を表示する。
【００１９】
図２を参照し、数値制御装置３０と工作機械１の電気的構成を説明する。数値制御装置３０と工作機械１は、ＣＰＵ３１、ＲＯＭ３２、ＲＡＭ３３、記憶装置３４、入出力部３５、駆動回路５１Ａ〜５５Ａ等を備える。ＣＰＵ３１は数値制御装置３０を統括制御する。ＲＯＭ３２は、メインプログラム、ブロック情報作成プログラム、マガジンモータ電源制御プログラム、工具交換指令検索プログラム等を記憶する。メインプログラムは、メイン処理を実行する。メイン処理はＮＣプログラムを一ブロックずつ読み込んで各種動作を実行するものである。ＮＣプログラムは各種制御指令を含む複数ブロックで構成し、工作機械１の軸移動、工具交換等を含む各種動作をブロック単位で制御するものである。ブロック情報作成プログラムは、後述するブロック情報作成処理（図６参照）を実行するものである。マガジンモータ電源制御プログラムは、後述するマガジンモータ電源制御処理（図７参照）を実行するものである。工具交換指令検索プログラムは、マガジンモータ電源制御処理のサブプログラムであり、後述する工具交換指令検索処理（図８参照）を実行するものである。ＲＡＭ３３は後述する各種記憶領域（図３参照）を有し、各種情報を一時的に記憶する。記憶装置３４は不揮発性であり、ＮＣプログラム等の各種情報を記憶する。ＣＰＵ３１は作業者が操作パネル１５の入力部１６で入力したＮＣプログラムに加え、外部入力で読み込んだＮＣプログラム等を記憶装置３４に記憶できる。
【００２０】
駆動回路５１ＡはＺ軸モータ５１とエンコーダ５１Ｂに接続する。駆動回路５２Ａは主軸モータ５２とエンコーダ５２Ｂに接続する。駆動回路５３ＡはＸ軸モータ５３とエンコーダ５３Ｂに接続する。駆動回路５４ＡはＹ軸モータ５４とエンコーダ５４Ｂに接続する。駆動回路５５Ａはマガジンモータ５５とエンコーダ５５Ｂに接続する。Ｚ軸モータ５１、主軸モータ５２、Ｘ軸モータ５３、Ｙ軸モータ５４、マガジンモータ５５は何れもサーボモータである。駆動回路５１Ａ〜５５ＡはＣＰＵ３１から指令を受け、対応する各モータ５１〜５５に駆動電流を夫々出力する。駆動回路５１Ａ〜５５Ａはエンコーダ５１Ｂ〜５５Ｂからフィードバック信号を受け、位置と速度のフィードバック制御を行う。入出力部３５は操作パネル１５の入力部１６と表示部１７に夫々接続する。
【００２１】
図３を参照し、ＲＡＭ３３の各種記憶領域を説明する。ＲＡＭ３３は、ブロック情報記憶領域３３１、積算時間記憶領域３３２等を備える。ブロック情報記憶領域３３１は、ＮＣプログラムに基づき作成した後述するブロック情報３３１１（図５参照）を記憶する。積算時間記憶領域３３２は、ＮＣプログラムにおける実行ブロックの実行開始から工具交換ブロックの実行開始までの各ブロックのブロック処理時間を積算した時間（以下積算時間と呼ぶ）を記憶する。実行ブロックとは、ＮＣプログラムで実行するブロックである。工具交換ブロックとは、工具交換指令（Ｇ１００）を含むブロックである。
【００２２】
図４を参照し、ＮＣプログラムＰ１を説明する。ＮＣプログラムＰ１は一般的なＮＣプログラムの一例であり、Ｎ０１〜Ｎｎブロックで構成する。工具４又は主軸９の位置を示すｘ、ｙ、ｚ座標はワーク座標であり、絶対位置座標を示し、単位はｍｍである。Ｎ０１のＧ０Ｘ−１００．Ｙ−１００．；は（Ｘ，Ｙ）＝（−１００，−１００）への早送り指令である。Ｎ０２のＧ４Ｘ１．０；は、１．０秒待機するドウエル指令である。Ｎ０３のＧ１００Ｔ１Ｘ−１５０．Ｙ−１５０．Ｚ２００．；は、工具Ｔ１への工具交換指令と、（Ｘ，Ｙ，Ｚ）＝（−１５０，−１５０，２００）への位置決め指令である。Ｎ０４のＭ１４０；は信号出力指令であり、例えば確認信号を通信相手先（例えば駆動回路５１Ａ〜５５Ａ等）に出力してＯＫ信号を通信相手先から受信して確認した場合に次の処理に進む指令である。例えば確認信号を出力してから規定時間が経過するまでにＯＫ信号を受信しない、又は確認できなかった場合、ＣＰＵ３１はエラーを出力し、例えば工作機械１の動作を停止する。規定時間は信号出力確認時間として、ＲＯＭ３２又は記憶装置３４等に予め設定すればよい。
【００２３】
Ｎ０５のＧ０Ｘ−１２０．；はＸ＝−１２０への早送り指令である。Ｎ０６のＧ１Ｘ−２００Ｆ１００００；は送り速度＝１００００ｍｍ／ｍｉｎでＸ＝−２００への切削移動指令である。Ｎ０７のＧ４Ｘ００．５；は０．５秒待機するドウエル指令である。Ｎ０８のＧ０Ｙ−１００．；はＹ＝−１００への早送り指令である。Ｎ０９のＧ１００Ｔ２Ｘ−２００．Ｙ−２００．Ｚ３００．は工具Ｔ２への工具交換指令と、（Ｘ，Ｙ，Ｚ）＝（−２００，−２００，３００）への位置決め指令である。Ｎ１０のＧ０１Ｚ２５０．Ｆ２０００は送り速度＝２０００ｍｍ／ｍｉｎで、Ｚ＝２５０への切削移動指令である。ＮｎのＭ３０は終了指令である。
【００２４】
図５を参照し、ブロック情報３３１１を説明する。ブロック情報３３１１は、図４に示すＮＣプログラムＰ１のブロック情報であり、ブロック番号（Ｎ）、ブロック処理時間、ブロック種類を対応づけた情報である。ブロック処理時間は、ＮＣプログラムＰ１の各ブロックの処理時間である。ブロック種類は、ＮＣプログラムＰ１の各ブロックの種類である。Ｎ０１のブロック処理時間は０．２秒、ブロック種類はＧ０（早送り指令）である。Ｎ０２のブロック処理時間は１秒、ブロック種類はＧ４（ドウエル指令）である。Ｎ０３のブロック処理時間は空欄（−）、ブロック種類はＧ１００（工具交換指令）である。Ｎ０４のブロック処理時間は０．５秒、ブロック種類はＭ１４０（信号出力指令）である。
【００２５】
Ｎ０５のブロック処理時間は０．１５秒、ブロック種類はＧ０である。Ｎ０６のブロック処理時間は１秒、ブロック種類はＧ１である。Ｎ０７のブロック処理時間は０．５秒、ブロック種類はＧ４である。Ｎ０８のブロック処理時間は０．２５秒、ブロック種類はＧ０である。Ｎ０９のブロック処理時間は空欄（−）、ブロック種類はＧ１００である。Ｎ１０のブロック処理時間は１．２５秒、ブロック種類はＧ１である。Ｎｎのブロック処理時間は空欄（−）、ブロック種類はＭ３０（終了指令）である。ＣＰＵ３１は、後述するブロック情報作成処理（図６参照）を実行することで、ブロック情報３３１１を作成する。ブロック処理時間の算出方法は後述する。
【００２６】
図６を参照し、ブロック情報作成処理を説明する。ＣＰＵ３１は記憶装置３４からＮＣプログラムを読み込む時、ＲＯＭ３２からブロック情報作成プログラムを読み込んで本処理を実行する。本実施形態は、図４に示すＮＣプログラムＰ１の読込時を例に説明する。
【００２７】
ＣＰＵ３１はＮＣプログラムＰ１を一ブロック読み込む（Ｓ１）。ＣＰＵ３１は読み込んだブロックが工具交換指令か否か判断する（Ｓ２）。Ｎ０１は工具交換指令では無いので（Ｓ２：ＮＯ）、ＣＰＵ３１は読み込んだブロックが軸移動指令か否か判断する（Ｓ３）。軸移動指令は、例えば早送り指令、切削移動指令、位置決め指令等を含む。切削移動指令は、例えばタップ、ドリル等の穴空け指令、フライス、エンドミル等の側面加工指令等の固定サイクル指令を含む。Ｎ０１の早送り指令は軸移動指令であるので（Ｓ３：ＹＥＳ）、ＣＰＵ３１は予め設定した送り速度に基づき、軸移動（早送り）の始点から終点までの移動時間（例えば０．２秒）を算出し、ブロック情報３３１１におけるＮ０１のブロック処理時間に登録する（Ｓ９）。ＣＰＵ３１はブロック情報３３１１におけるＮ０１のブロック種類にＧ０を登録する（Ｓ１３）。なお、本実施形態はブロック種類にＧコード、Ｍコード等の制御コードを登録するがこれ以外でもよく、例えばブロック種類を識別可能な識別コードを登録するようにしてもよい。ＣＰＵ３１はブロック情報３３１１に登録するブロックを次へ移動する（Ｓ１４）。ＣＰＵ３１は次に読み込むブロックを選択する（Ｓ１５）。
【００２８】
ＣＰＵ３１はＳ１に戻り、次ブロックのＮ０２を読み込む。Ｎ０２は工具交換指令、軸移動指令の何れでも無いので（Ｓ２：ＮＯ、Ｓ３：ＮＯ）、ＣＰＵ３１はＮ０２がドウエル指令か否か判断する（Ｓ４）。Ｎ０２はドウエル指令であるので（Ｓ４：ＹＥＳ）、ＣＰＵ３１はドウエル指令に設定する待機時間（例えば１秒）を、ブロック情報３３１１におけるＮ０２のブロック処理時間に登録する（Ｓ１０）。ＣＰＵ３１はブロック情報３３１１におけるＮ０２のブロック種類にＧ０４を登録する（Ｓ１３）。ＣＰＵ３１はブロック情報３３１１に登録するブロックを次へ移動する（Ｓ１４）。ＣＰＵ３１は次に読み込むブロックを選択する（Ｓ１５）。
【００２９】
ＣＰＵ３１はＳ１に戻り、次ブロックのＮ０３を読み込む。Ｎ０３は工具交換指令である（Ｓ２：ＹＥＳ）。本実施形態は、実行ブロックの実行開始から直近の工具交換ブロックまでの各ブロックのブロック処理時間を必要とするので、工具交換ブロックのブロック処理時間は必要ない。それ故、ＣＰＵ３１はブロック情報３３１１におけるＮ０３のブロック処理時間を空欄にする（Ｓ８）。ＣＰＵ３１はブロック情報３３１１に登録するブロックを次へ移動する（Ｓ１４）。ＣＰＵ３１は次に読み込むブロックを選択する（Ｓ１５）。
【００３０】
ＣＰＵ３１はＳ１に戻り、次ブロックのＮ０４を読み込む。Ｎ０４は工具交換指令、軸移動指令、ドウエル指令の何れでも無いので（Ｓ２：ＮＯ、Ｓ３：ＮＯ、Ｓ４：ＮＯ）、ＣＰＵ３１は読み込んだブロックが信号出力指令か否か判断する（Ｓ６）。Ｎ０４は信号出力指令であるので（Ｓ６：ＹＥＳ）、ＣＰＵ３１はＲＯＭ３２又は記憶装置３４に予め設定する信号出力確認時間（例えば０．２５秒）を、ブロック情報３３１１におけるＮ０４のブロック処理時間に登録する（Ｓ１２）。ＣＰＵ３１はブロック情報３３１１におけるＮ０４のブロック種類にＭ１４０を登録する（Ｓ１３）。ＣＰＵ３１はブロック情報３３１１に登録するブロックを次へ移動する（Ｓ１４）。ＣＰＵ３１は次に読み込むブロックを選択する（Ｓ１５）。ＣＰＵ３１はＳ１に戻り、Ｎ０５以降についても上記同様に処理を実行する。
【００３１】
Ｓ１の処理で読み込んだブロックが工具交換指令、軸移動指令、ドウエル指令、信号出力指令の何れでも無い場合（Ｓ２：ＮＯ、Ｓ３：ＮＯ、Ｓ４：ＮＯ、Ｓ６：ＮＯ）、ＣＰＵ３１は終了指令か否か判断する（Ｓ７）。Ｎｎは終了指令であるので（Ｓ７：ＹＥＳ）、ＣＰＵ３１は本処理を終了する。ブロック情報３３１１の作成は完了する。なお、読み込んだブロックが、上記の工具交換指令、軸移動指令、ドウエル指令、信号出力指令以外の制御指令の場合、ＣＰＵ３１は、ブロック処理時間に０を登録してもよい。
【００３２】
図７〜図９を参照し、マガジンモータ電源制御処理を説明する。ＣＰＵ３１は記憶装置３４から読み込んだＮＣプログラムの実行時に、ＲＯＭ３２からマガジンモータ制御プログラムを読み込んで本処理を実行する。本実施形態は図４に示すＮＣプログラムＰ１の実行時を例に説明する。本処理実行開始時、ＲＡＭ３３は、図５に示すブロック情報３３１１をブロック情報記憶領域３３１に記憶する。ＣＰＵ３１は本処理実行開始時に、ＲＡＭ３３の積算時間記憶領域３３２（以下ＲＡＭ３３と呼ぶ）に記憶する積算時間を０に初期化する。
【００３３】
図７に示す如く、ＣＰＵ３１はＮＣプログラムＰ１を一ブロック読み込む（Ｓ２１）。ＣＰＵ３１は読み込んだブロックが終了指令か否か判断する（Ｓ２２）。Ｎ０１は早送り指令であり、終了指令では無いので（Ｓ２２：ＮＯ）、ＣＰＵ３１は読み込んだブロックが工具交換指令か否か判断する（Ｓ２３）。Ｎ０１は工具交換指令では無いので（Ｓ２３：ＮＯ）、ＣＰＵ３１はＲＡＭ３３に記憶する積算時間は０か否か判断する（Ｓ２４）。積算時間は０であるので（Ｓ２４：ＹＥＳ）、ＣＰＵ３１は、ＲＡＭ３３に記憶するブロック情報３３１１から、Ｎ０１のブロック処理時間である０．２秒を取得する（Ｓ２５）。ＣＰＵ３１は取得したブロック処理時間をＲＡＭ３３に加算する（Ｓ２６）。積算時間は０．２秒となり、ｔ０〜ｔ１までの時間（図９参照）となる。ＣＰＵ３１はＲＯＭ３２から工具交換指令検索プログラムを読出し、工具交換検索処理を実行する（Ｓ２７）。
【００３４】
図８を参照し、工具交換指令検索処理を説明する。ＣＰＵ３１はＲＡＭ３３に記憶するブロック情報３３１１から、次ブロックのブロック情報を読み取る（Ｓ４１）。ＣＰＵ３１は次ブロックは終了指令か否か判断する（Ｓ４２）。終了指令の場合（Ｓ４２：ＹＥＳ）、ＣＰＵ３１は本処理を終了し、図７のＳ３０に処理を進める。
【００３５】
次ブロックのＮ０２はＧ４のドウエル指令であり、終了指令では無いので（Ｓ４２：ＮＯ）、ＣＰＵ３１は、Ｎ０２は工具交換指令か否か判断する（Ｓ４３）。Ｎ０２は工具交換指令では無いので（Ｓ４３：ＮＯ）、ＣＰＵ３１は取得した次ブロックのブロック処理時間（１秒）を、ＲＡＭ３３に記憶する積算時間に加算する（Ｓ４４）。積算時間は、０．２＋１＝１．２秒となり、ｔ０〜ｔ２までの時間（図９参照）となる。ＣＰＵ４１は、さらに次ブロックであるＮ０３のブロック情報を、ブロック情報３３１１から読み取り（Ｓ４５）、Ｓ４２の処理に戻る。読み取った次ブロックのＮ０３は工具交換指令であるので（Ｓ４２：ＮＯ、Ｓ４３：ＹＥＳ）、ＣＰＵ３１は本処理を終了し、図７のＳ３０に処理を進める。
【００３６】
図７に戻り、ＣＰＵ３１は、ＲＡＭ３３に記憶する積算時間は所定時間以上か否か判断する（Ｓ３０）。所定時間は、少なくともマガジンモータ５５の起動時間よりも長い時間であるのが好ましく、本実施形態では０．５秒とする。積算時間はｔ０〜ｔ２までの１．２秒であり、０．５秒以上であるので（Ｓ３０：ＹＥＳ）、ＣＰＵ４１は、次ブロックは工具交換指令か否か判断する（Ｓ３１）。次ブロックの種類はドウエル指令であるので（Ｓ３１：ＮＯ）、ＣＰＵ３１はｔ０でマガジンモータ５５の電源を切断する（Ｓ３２）。それ故、数値制御装置３０は次の工具交換までのマガジンモータ５５の消費電力を節約できる。
【００３７】
ＣＰＵ３１はＮ０２を読み込む（Ｓ２１）。Ｎ０２はドウエル指令であるので（Ｓ２２：ＮＯ、Ｓ２３：ＮＯ）、ＣＰＵ３１は、ＲＡＭ３３に記憶する積算時間は０か否か判断する（Ｓ２４）。積算時間は１．２秒であり、０では無いので（Ｓ２４：ＮＯ）、ＣＰＵ３１は、積算時間から前ブロックであるＮ０１のブロック処理時間（０．２秒）を差し引く（Ｓ２９）。それ故、積算時間は１．２−０．２＝１．０秒となり、ｔ１〜ｔ２までの時間（図９参照）となる。ＣＰＵ３１は、積算時間は所定時間以上か否か判断する（Ｓ３０）。積算時間はｔ１〜ｔ２までの１．０秒であり、０．５秒以上であるので（Ｓ３０：ＹＥＳ）、ＣＰＵ３１は、次ブロックは工具交換指令か否か判断する（Ｓ３１）。次ブロックのＮ０３は工具交換指令であるので（Ｓ３１：ＹＥＳ）、Ｎ０３で工具交換を実行する為、ＣＰＵ３１はｔ１で、マガジンモータ５５の電源を投入する（Ｓ３３）。それ故、ＣＰＵ３１は、工具交換ブロックの実行開始よりも起動時間前であるブロックの実行開始前に、マガジンモータ５５の電源を投入できる。
【００３８】
ＣＰＵ３１はＮ０３を読み込む（Ｓ２１）。Ｎ０３は工具交換指令であるので（Ｓ２２：ＮＯ、Ｓ２３：ＹＥＳ）、ＣＰＵ３１はＲＡＭ３３に記憶する積算時間を０に初期化する（Ｓ２８）。ＣＰＵ３１は、積算時間は所定時間以上か否か判断する（Ｓ３０）。積算時間は０であるので（Ｓ３０：ＮＯ）、ＣＰＵ３１は引き続き、マガジンモータ５５の電源を投入した状態にする（Ｓ３２）。Ｎ０３の前ブロックであるＮ０２で、マガジンモータ５５の電源を先に投入するので、数値制御装置３０はＮ０３で工具交換を速やかに実行できる。
【００３９】
ＣＰＵ３１はＮ０４を読み込む（Ｓ２１）。Ｎ０４は信号出力指令であるので（Ｓ２２：ＮＯ、Ｓ２３：ＮＯ）、ＣＰＵ３１は、ＲＡＭ３３に記憶する積算時間は０か否か判断する（Ｓ２４）。積算時間は０であるので（Ｓ２４：ＹＥＳ）、ＣＰＵ３１はＲＡＭ３３に記憶するブロック情報３３１１から、読み込んだＮ０４のブロック処理時間（０．５秒）を取得し（Ｓ２５）、積算時間記憶領域３３２に加算する（Ｓ２６）。積算時間は０．５秒となり、ｔ３〜ｔ４までの時間（図９参照）となる。ＣＰＵ３１はＲＯＭ３２から工具交換指令検索プログラムを読出し、上記と同様に、工具交換検索処理を実行する（Ｓ２７）。
【００４０】
図８に示す如く、ＣＰＵ３１は、ＲＡＭ３３に記憶するブロック情報３３１１から、次ブロックのＮ０５のブロック情報を読み取る（Ｓ４１）。読み取ったＮ０５はドウエル指令であり、終了指令及び工具交換指令の何れでも無いので、（Ｓ４２：ＮＯ、Ｓ４３：ＮＯ）、ＣＰＵ３１はＮ０５のブロック処理時間（０．１５秒）を、ＲＡＭ３３に記憶する積算時間に加算する（Ｓ４４）。積算時間は０．５＋０．１５＝０．６５秒となり、ｔ３〜ｔ５までの時間（図９参照）となる。ＣＰＵ４１は、次ブロックのブロック情報をブロック情報３３１１から読み取り（Ｓ４５）、Ｓ４２に戻って処理を繰り返す。
【００４１】
Ｎ０５〜Ｎ０８は終了指令、工具交換指令では無いので（Ｓ４２：ＮＯ、Ｓ４３：ＮＯ）、ＣＰＵ３１はＮ０５〜Ｎ０８についてＳ４４の処理を実行することで、ＲＡＭ３３に記憶する積算時間に各ブロック処理時間を加算する。それ故、積算時間は０．６５＋１＋０．５＋０．２５＝２．４秒となり、ｔ３〜ｔ８までの時間（図９参照）となる。Ｎ０９は工具交換指令であるので（Ｓ４２：ＮＯ、Ｓ４３：ＹＥＳ）、ＣＰＵ３１は本処理を終了し、図７のＳ３０に処理を進める。
【００４２】
図７に戻り、ＣＰＵ３１は、ＲＡＭ３３に記憶する積算時間は所定時間以上か否か判断する（Ｓ３０）。積算時間はｔ３〜ｔ８までの２．４秒であり、０．５秒以上であるので（Ｓ３０：ＹＥＳ）、次の工具交換までの間隔が長い。そこで、ＣＰＵ４１は次ブロックの種類は工具交換指令か否か判断する（Ｓ３１）。次ブロックであるＮ０５は信号出力指令であり、工具交換指令では無いので（Ｓ３１：ＮＯ）、ＣＰＵ３１はマガジンモータ５５の電源を切断する（Ｓ３２）。それ故、数値制御装置３０はマガジンモータ５５の消費電力を節約できる。
【００４３】
ＣＰＵ３１はＮ０５を読み込む（Ｓ２１）。Ｎ０５は信号出力指令であるので（Ｓ２２：ＮＯ、Ｓ２３：ＮＯ）、ＣＰＵ３１はＲＡＭ３３に記憶する積算時間は０か否か判断する（Ｓ２４）。ＲＡＭ３３に記憶する積算時間は２．４秒であり、０では無いので（Ｓ２４：ＮＯ）、ＣＰＵ３１は、積算時間から前ブロックであるＮ０４のブロック処理時間（０．５秒）を差し引く（Ｓ２９）。それ故、積算時間は２．４−０．５＝１．９秒となり、ｔ４〜ｔ８までの時間（図９参照）となる。積算時間は０．５秒以上であり（Ｓ３０：ＹＥＳ）、次ブロックであるＮ０６の種類は工具交換指令では無いので（Ｓ３１：ＮＯ）、ＣＰＵ３１はマガジンモータ５５の電源を引き続き切断する（Ｓ３２）。
【００４４】
ＣＰＵ３１はＮ０６を読み込む（Ｓ２１）。Ｎ０６は切削移動指令であるので（Ｓ２２：ＮＯ、Ｓ２３：ＮＯ）、ＣＰＵ３１はＲＡＭ３３に記憶する積算時間は０か否か判断する（Ｓ２４）。ＲＡＭ３３に記憶する積算時間は１．９秒であり、０では無いので（Ｓ２４：ＮＯ）、ＣＰＵ３１は、積算時間から前ブロックであるＮ０５のブロック処理時間（０．１５秒）を差し引く（Ｓ２９）。それ故、積算時間は１．９−０．１５＝１．７５秒となり、ｔ５〜ｔ８までの時間（図９参照）となる。積算時間は０．５秒以上であり（Ｓ３０：ＹＥＳ）、次ブロックであるＮ０７の種類は工具交換指令では無いので（Ｓ３１：ＮＯ）、ＣＰＵ３１はマガジンモータ５５の電源を引き続き切断する（Ｓ３２）。
【００４５】
ＣＰＵ３１はＮ０７を読み込む（Ｓ２１）。Ｎ０７はドウエル指令であるので（Ｓ２２：ＮＯ、Ｓ２３：ＮＯ）、ＣＰＵ３１はＲＡＭ３３に記憶する積算時間は０か否か判断する（Ｓ２４）。ＲＡＭ３３に記憶する積算時間は１．７５秒であり、０では無いので（Ｓ２４：ＮＯ）、ＣＰＵ３１は、積算時間から前ブロックであるＮ０６のブロック処理時間（１秒）を差し引く（Ｓ２９）。それ故、積算時間は１．７５−１＝０．７５秒となり、ｔ６〜ｔ８までの時間（図９参照）となる。積算時間は０．５秒以上であり（Ｓ３０：ＹＥＳ）、次ブロックであるＮ０８の種類は工具交換指令では無いので（Ｓ３１：ＮＯ）、ＣＰＵ３１はマガジンモータ５５の電源を引き続き切断する（Ｓ３２）。
【００４６】
ＣＰＵ３１はＮ０８を読み込む（Ｓ２１）。Ｎ０８は早送り指令であるので（Ｓ２２：ＮＯ、Ｓ２３：ＮＯ）、ＣＰＵ３１はＲＡＭ３３に記憶する積算時間は０か否か判断する（Ｓ２４）。ＲＡＭ３３に記憶する積算時間は０．７５秒であり、０では無いので（Ｓ２４：ＮＯ）、ＣＰＵ３１は、積算時間から前ブロックであるＮ０７のブロック処理時間（０．５秒）を差し引く（Ｓ２９）。それ故、積算時間は１．７５−０．５＝０．２５秒となり、ｔ７〜ｔ８までの時間（図９参照）となる。積算時間は０．５秒未満であるので（Ｓ３０：ＮＯ）、ＣＰＵ３１はマガジンモータ５５の電源を投入する（Ｓ３２）。工具交換ブロックのＮ０９ではなく、その前ブロックのＮ０８の実行開始時に、マガジンモータ５５の電源を投入するので、数値制御装置３０はＮ０９で工具交換を速やかに実行できる。ＣＰＵ３１はＳ２１に戻り、次ブロック以降、処理を繰り返す。
【００４７】
ＣＰＵ３１はＮｎを読み込む（Ｓ２１）。Ｎｎは終了指令であるので（Ｓ２２：ＹＥＳ）、ＣＰＵ３１は本処理を終了する。
【００４８】
以上説明にて、図６のＳ２〜S６の処理を実行するＣＰＵ３１は本発明の判定手段の一例である。Ｓ８〜Ｓ１２の処理を実行するＣＰＵ３１は本発明の記憶手段の一例である。図８のＳ４３の処理を実行するＣＰＵ３１は本発明の検索手段の一例である。Ｓ４４の処理を実行するＣＰＵ３１は本発明の積算手段の一例である。図７のＳ３０、Ｓ３２の処理を実行するＣＰＵ３１は本発明の切断手段の一例である。Ｓ３０、Ｓ３３の処理を実行するＣＰＵ３１は本発明の投入手段の一例である。
【００４９】
以上説明したように、第一実施形態の数値制御装置３０はＮＣプログラムに基づき、工作機械１と工具交換装置２０の夫々の動作を制御する。工具交換装置２０は工具マガジン２１とマガジンモータ５５を備える。工具マガジン２１はマガジンモータ５５の駆動で動作する。数値制御装置３０のＣＰＵ３１は、ＮＣプログラムの読込時に、ブロック情報作成処理を実行する。該処理では、ＣＰＵ３１はＮＣプログラムを構成する複数のブロックの夫々のブロック処理時間とブロック種類を判定し、ブロック情報３３１１としてＲＡＭ３３に記憶する。ＣＰＵ３１はＮＣプログラムの実行開始後、マガジンモータ電源制御処理を実行する。該処理の中で、ＣＰＵ３１はＮＣプログラムを一ブロックずつ読み込み、ブロック情報３３１１に基づき、実行ブロック以降で且つ直近の工具交換ブロックを検索する。ＣＰＵ３１は、実行ブロックの実行開始から工具交換ブロックの実行開始までの各ブロックのブロック処理時間を積算する。該積算時間が所定時間より大きい場合、ＣＰＵ３１はマガジンモータ５５の電源を切断する。数値制御装置３０は次の工具交換までの間隔が長い場合にマガジンモータ５５の電源を切断するので、マガジンモータ５５の消費電力を節約できる。
【００５０】
第一実施形態のＣＰＵ３１は、マガジンモータ５５の電源を切断した後、次の工具交換ブロックまでの積算時間が所定時間未満になった場合、マガジンモータ５５の電源を投入する。所定時間は、少なくともマガジンモータ５５の起動時間よりも長い。それ故、数値制御装置３０は、工具交換ブロックの実行開始よりも起動時間前のブロックの実行開始前に電源を投入できる。数値制御装置３０は、マガジンモータ５５の電源の切断と投入のタイミングをブロック単位で行うので、制御が容易である。
【００５１】
第一実施形態のＣＰＵ３１は、マガジンモータ５５の電源が切断した状態で、実行ブロックから次の工具交換ブロックまでの積算時間が所定時間以上であっても、次ブロックの種類が工具交換ブロックの場合、マガジンモータ５５の電源を投入する。それ故、数値制御装置３０は、工具交換ブロックにおいて工具交換を速やかに開始できる。
【００５２】
第一実施形態のＣＰＵ３１は、実行ブロックの実行開始から工具交換ブロックまでの積算時間が所定時間以下の場合、マガジンモータ５５の電源を切断しない。それ故、数値制御装置３０は、工具交換ブロックにおいて工具交換を速やかに実行できる。
【００５３】
図１０〜図１３を参照し、本発明の第二実施形態を説明する。第二実施形態は第一実施形態の変形例である。第一実施形態は、ＮＣプログラムの実行ブロックの実行開始から工具交換ブロックの実行開始までのブロック処理時間を積算し、該積算時間に基づき、マガジンモータ５５の電源の投入と切断をブロック単位で制御する。第二実施形態は、マガジンモータ５５の電源の切断については第一実施形態と同様にブロック単位で行うが、電源の投入については、工具交換ブロック実行開始の所定時間前に行うように制御する。
【００５４】
第二実施形態の数値制御装置３０は、第一実施形態の数値制御装置３０と同一の電気的構成を備えるので、同符号を用いて説明する。第二実施形態の数値制御装置３０は、第一実施形態のＲＡＭ３３の代わりに、ＲＡＭ１３３（図１０参照）を備える。数値制御装置３０のＣＰＵ３１は、第一実施形態のブロック情報作成処理（図６参照）に加え、タイマ処理（図１１参照）、マガジンモータ電源制御処理（図１２参照）を実行する。タイマ処理は、マガジンモータ５５の電源の投入について制御する。マガジンモータ電源制御処理は、マガジンモータ５５の電源の切断について制御する。第二実施形態は、ＲＡＭ１３３、タイマ処理、マガジンモータ電源制御処理を中心に説明する。
【００５５】
図１０を参照し、ＲＡＭ１３３の各種記憶領域を説明する。ＲＡＭ１３３は、ブロック情報記憶領域３３１、積算時間記憶領域３３２、合計処理時間記憶領域３３３、タイマ値記憶領域３３４、電源フラグ記憶領域３３５等を備える。ブロック情報記憶領域３３１と積算時間記憶領域３３２は第一実施形態と同じである。合計処理時間記憶領域３３３は合計処理時間を記憶する。合計処理時間は、後述するタイマ処理（図１１参照）の中で設定するものであり、実行ブロックの実行開始から直近の工具交換ブロックの実行開始までのブロック処理時間を合計した時間である。タイマ値記憶領域３３４はタイマ値を記憶する。タイマ値は実行ブロック開始からの経過時間であり、ＣＰＵ３１が不図示のタイマからの出力値に基づき計測する。電源フラグ記憶領域３３５は電源フラグを記憶する。電源フラグは、後述するタイマ処理でマガジンモータ５５の電源が投入された状態は１、それ以外の状態は０を設定する。
【００５６】
図１１，図１３を参照し、タイマ処理を説明する。本処理は、工具交換ブロックの実行開始より所定時間前に、マガジンモータ５５の電源を投入するように制御する。なお、マガジンモータ電源制御処理（図１２参照）は、マガジンモータ５５の電源の切断について制御するが、電源切断の時刻は、第一実施形態のマガジンモータ電源制御処理（図７参）と同じである。それ故、図１３に示すマガジンモータ５５の電源を切断するｔ０とｔ３の時刻は、図９の時刻と同じである。ＣＰＵ３１は定期的にＲＯＭ３２からタイマ処理プログラムを読出し、本処理を実行する。第二実施形態も、ＮＣプログラムＰ１の実行時を説明する。
【００５７】
図１１に示す如く、ＣＰＵ３１はタイマより、実行ブロックの現在のタイマ値を取得し、ＲＡＭ１３３のタイマ値記憶領域３３４に設定する（Ｓ５１）。ＣＰＵ３１は、ＲＡＭ３３に記憶するブロック情報３３１１から、ＮＣプログラムＰ１における実行ブロックのブロック情報を読み取る（Ｓ５２）。ＣＰＵ３１は、読み取ったブロック情報のブロック種類が終了指令か否か判断する（Ｓ５３）。終了指令の場合（Ｓ５３：ＹＥＳ）、マガジンモータ５５の電源を投入する必要が無いので、ＣＰＵ３１は、ＲＡＭ１３３の合計処理時間記憶領域３３３（以下省略）に記憶する合計処理時間を０に初期化し（Ｓ５９）、ＲＡＭ１３３の電源フラグ記憶領域３３５（以下省略）に記憶する電源フラグを０に初期化し（Ｓ６０）、本処理を終了する。
【００５８】
読み取ったブロック情報のブロック種類が終了指令でない場合（Ｓ５３：ＮＯ）、ＣＰＵ３１は、読み取ったブロック情報のブロック種類が工具交換指令か否か判断する（Ｓ５４）。工具交換指令の場合（Ｓ５４：ＹＥＳ）、マガジンモータ５５の電源は既に投入した状態であるので、ＣＰＵ３１は、ＲＡＭ１３３に記憶する合計処理時間を０に初期化し（Ｓ５９）、ＲＡＭ１３３に記憶する電源フラグを０に初期化し（Ｓ６０）、本処理を終了する。
【００５９】
読み取ったブロック情報のブロック種類が工具交換指令でも無い場合（Ｓ５４：ＮＯ）、ＣＰＵ３１は直近の工具交換ブロックまでの合計処理時間を算出し、ＲＡＭ１３３に設定する（Ｓ５５）。ＣＰＵ３１はＲＡＭ３３に記憶する合計処理時間からタイマ値を差し引いた値が所定時間以下か否か判断する。所定時間は、例えばマガジンモータ５５の起動に必要な時間（例えば０．５秒）、若しくはそれ以上に設定するとよい。
【００６０】
図１３に示す如く、例えばｔ１０では、実行ブロックはＮ０１、タイマ値は０．１秒である。直近の工具交換ブロックはＮ０３である。合計処理時間は、Ｎ０１とＮ０２の夫々のブロック処理時間の合計であるので、０．２＋１＝１．２秒である。合計処理時間からタイマ値を差し引くと、１．２−０．１＝１．１秒となり、所定時間よりも大きいので（Ｓ５６：ＮＯ）、ＣＰＵ３１はマガジンモータ５５の電源を投入する必要が無い。それ故、ＣＰＵ３１は、ＲＡＭ１３３に記憶する電源フラグを０に初期化し（Ｓ６０）、本処理を終了する。
【００６１】
例えばｔ１１では、実行ブロックはＮ０２、タイマ値は０．５秒である。直近の工具交換ブロックはＮ０３である。合計処理時間はＮ０２のブロック処理時間の１秒である。合計処理時間からタイマ値を差し引くと、１−０．５＝０．５秒となり、所定時間以下であるので（Ｓ５６：ＹＥＳ）、ＣＰＵ３１はマガジンモータ５５の電源を投入する（Ｓ５７）。ＣＰＵ３１は、Ｎ０３の工具交換ブロックの実行開始前に、マガジンモータ５５の電源を投入できるので、工具交換装置２０による工具交換を速やかに実行できる。ＣＰＵ３１は、ＲＡＭ１３３に記憶する電源フラグを１に設定する（Ｓ５８）。それ故、ＣＰＵ３１は電源フラグを参照することで、マガジンモータ５５の電源の状態を常時認識できる。ＣＰＵ３１は本処理を終了する。
【００６２】
例えばｔ１２では、実行ブロックはＮ０７、タイマ値は０．２５秒である。直近の工具交換ブロックはＮ０９である。合計処理時間は、Ｎ０７とＮ０８の夫々のブロック処理時間の合計であるので、０．５＋０．２５＝０．７５秒である。合計処理時間からタイマ値を差し引くと、０．７５−０．２５＝０．５秒となり、所定時間以下であるので（Ｓ５６：ＹＥＳ）、ＣＰＵ３１はマガジンモータ５５の電源を投入する（Ｓ５７）。それ故、ＣＰＵ３１は、Ｎ０８の工具交換ブロックの実行開始前に、マガジンモータ５５の電源を投入できるので、工具交換装置２０による工具交換を速やかに実行できる。ＣＰＵ３１は、ＲＡＭ１３３の電源フラグ記憶領域３３５に記憶する電源フラグを１に設定し（Ｓ５８）、本処理を終了する。
【００６３】
図１２を参照し、マガジンモータ電源制御処理を説明する。第二実施形態のマガジンモータ電源制御処理は、第一実施形態のマガジンモータ電源制御処理（図７参照）を変形したもので、Ｓ２１の前にＳ１０１の判断処理を追加し、Ｓ２１とＳ２２の間にＳ１０２の処理を追加し、図７のＳ３３の処理を省略している。それ故、第二実施形態では、第一実施形態と異なる部分を中心に説明する。
【００６４】
ＣＰＵ３１は電源フラグが１か否か判断する（Ｓ１０１）。電源フラグが１の場合（Ｓ１０１：ＹＥＳ）、上述のタイマ処理において、次の工具交換ブロック実行開始の所定時間前になったことから、マガジンモータ５５の電源は投入した状態である。それ故、ＣＰＵ３１はＳ１０１に戻って待機する。電源フラグが０の場合（Ｓ１０１：ＮＯ）、マガジンモータ５５の電源は、タイマ処理において、次の工具交換ブロック実行開始の所定時間前になったことから投入した状態では無い。それ故、次の工具交換までの間隔が長い場合、マガジンモータ５５の電源を切断する必要があるので、ＣＰＵ３１は第一実施形態と同様に、一ブロックを読み込み（Ｓ２１）、Ｓ２２以降の処理を実行する。Ｓ２２の処理を実行する前に、ＣＰＵ３１はＲＡＭ１３３に記憶するタイマ値を０に初期化し、且つタイマを初期化する（Ｓ１０２）。それ故、ＣＰＵ３１は上述のタイマ処理にて、各ブロックの実行開始からの経過時間を正確に計測できる。
【００６５】
Ｓ３０にて、工具交換ブロック実行開始までの積算時間が所定時間未満の場合（Ｓ３０：ＮＯ）、マガジンモータ５５の電源は、図１１のタイマ処理にて既に投入した状態となっているので、ＣＰＵ３１は何もせずに、Ｓ１０１に戻って処理を繰り返す。また、マガジンモータ５５の電源が切断した状態で、工具交換ブロック実行開始までの積算時間が所定時間以上であって（Ｓ３０：ＹＥＳ）、次ブロックの種類が工具交換指令である場合も（Ｓ３１：ＹＥＳ）、マガジンモータ５５の電源の制御はタイマ処理にて行うので、ＣＰＵ３１は何もせずに、Ｓ１０１に戻って処理を繰り返す。ＣＰＵ３１は終了指令を読み込んだ場合（Ｓ２２：ＹＥＳ）、本処理を終了する。
【００６６】
以上説明にて、図１１のタイマ処理を実行するＣＰＵ３１は本発明の投入手段の一例である。
【００６７】
以上説明したように、第二実施形態の数値制御装置３０では、マガジンモータ５５の電源の切断については第一実施形態と同様にブロック単位で行い、電源の投入については、工具交換ブロック実行開始の所定時間前に行うように制御する。所定時間は例えばマガジンモータ５５の起動時間としてもよい。それ故、数値制御装置３０は、マガジンモータ５５の電源を切断した後、工具交換ブロックの実行開始より少なくともマガジンモータ５５の起動に必要な起動時間前に電源を投入できる。それ故、数値制御装置３０は、工具交換ブロックを読み込んだときに、マガジンモータ５５を確実に起動した状態で、工具交換装置２０による工具交換を実行できる。
【００６８】
本発明は上記実施形態に限らず、各種変形が可能なことはいうまでもない。上記実施形態の工作機械１は、切削加工のみができる機械であるが、切削加工と旋削加工ができる複合機であってもよい。テーブル１３に対してＸ軸、Ｙ軸、Ｚ軸方向に相対的に移動する工具４の移動機構の仕組みは上記実施形態に限定しない。例えば主軸９はＸ、Ｙ、Ｚ軸方向の三軸に駆動するもので、テーブル１３は固定若しくは回転可能であってもよい。上記実施形態の工作機械１は主軸９がＺ軸方向に対して平行な縦型の工作機械であるが、主軸が水平方向に延びる横型の工作機械であってもよい。
【００６９】
図５に示すブロック情報３３１１のブロック処理時間は一例であって、これらの時間に限定するものではなく、自由に変更可能である。早送り指令、切削移動指令は移動距離、移動速度、加減速時定数から演算して求めるようにしてもよい。
【００７０】
上記実施形態の駆動回路５１Ａ〜５５Ａは工作機械１に設けているが、数値制御装置３０に設けてもよい。
【符号の説明】
【００７１】
１    工作機械
３０    数値制御装置
３１    ＣＰＵ
【図１】
0006665645.tif 000002
【図２】
0006665645.tif 000003
【図３】
0006665645.tif 000004
【図４】
0006665645.tif 000005
【図５】
0006665645.tif 000006
【図６】
0006665645.tif 000007
【図７】
0006665645.tif 000008
【図８】
0006665645.tif 000009
【図９】
0006665645.tif 000010
【図１０】
0006665645.tif 000011
【図１１】
0006665645.tif 000012
【図１２】
0006665645.tif 000013
【図１３】
0006665645.tif 000014