(57)【要約】【課題】加工プログラムにおける工具交換時間の短縮を図ることができる工具配置算出装置、工具配置算出方法、制御プログラム及び記憶媒体を提供する。【解決手段】数値制御装置は、工具組合せ記憶エリアに記憶している工具組合せＣと組合せ回数ＣＮとに基づいて、組合せ回数ＣＮが複数である工具Ｔについて工具ポットＰの特定を行う（Ｓ６０）。その後、数値制御装置は、工具使用回数記憶エリアに記憶している工具使用回数ＴＮが複数である工具Ｔについて工具ポットＰの特定を行う（Ｓ７０）。その後、数値制御装置は、１回のみ使用する工具Ｔについて工具ポットＰの特定を行う（Ｓ８０）。数値制御装置は、工具組合せＣの組合せ回数ＣＮが複数回数である場合及び工具使用回数ＴＮが複数回数である場合に優先的に隣接する工具ポットＰに工具Ｔを特定することで、工具交換時に工具マガジンの切替回数を減らすことができる。【選択図】図９
2012030294.tif 000002
【特許請求の範囲】
【請求項１】
工作機械の工具交換装置に回転割り出し可能に設けられ、正転又は反転する略円盤状の工具マガジンの外周に設けられた複数の工具ポットの各々に工具を配置するために、各々の工具ポットとそれに配置する工具とを特定する工具配置算出装置において、
前記工作機械の加工プログラムから工具交換指令を読み込む工具交換指令読込手段と、
前記工具交換指令読込手段によって読み込まれた前記工具交換指令から工具交換前後の２本の工具の組合せ回数を前記工具の組合せ毎に計数する組合せ回数計数手段と、
前記工具交換指令読込手段によって読み込まれた前記工具交換指令に基づいて前記加工プログラムで使用する前記工具の使用回数を工具毎に計数する使用回数計数手段と、
前記組合せ回数計数手段によって得られる前記工具の組合せ回数が複数回数である場合に、前記複数回数の組合せの前記工具を隣接する工具ポットに特定する第１配置手段と、
前記使用回数計数手段によって得られた使用回数が複数回数の前記工具であり且つ前記第１配置手段によって前記工具ポットが特定されていない前記工具については、前記第１配置手段によって特定した前記工具ポットと隣接する前記工具ポットに特定する第２配置手段と、
前記第１配置手段及び前記第２配置手段によって前記工具ポットが特定されていない前記工具を配置する工具ポットを、既に特定されている前記工具ポットと隣接する前記工具ポットに特定する第３配置手段と
を備えたことを特徴とする工具配置算出装置。
【請求項２】
前記第２配置手段は、
前記使用回数が複数回数である前記工具の前後に使用する工具が前記第１配置手段によって特定した前記工具ポットに配置した前記工具であるか否かを検出する第１検出手段を備え、
前記使用回数が複数回数である前記工具を、前記第１検出手段が検出した前記工具を配置した前記工具ポットの最も近い工具ポットに特定することを特徴とする請求項１に記載の工具配置算出装置。
【請求項３】
前記第３配置手段は、
前記第１配置手段及び前記第２配置手段によって前記工具ポットが特定されていない前記工具の前後に使用する工具が前記第１配置手段及び前記第２配置手段によって特定した前記工具ポットの前記工具であるか否かを検出する第２検出手段を備え、
前記工具ポットに配置する位置が特定されていない前記工具を、前記第２検出手段が検出した前記工具を配置した前記工具ポットの最も近い工具ポットに特定することを特徴とする請求項１又は２に記載の工具配置算出装置。
【請求項４】
前記第１配置手段と前記第２配置手段と前記第３配置手段とによって得られた前記工具を前記工具ポットに配置する位置の情報を出力する配置情報出力手段を備えたことを特徴とする請求項１〜３の何れかに記載の工具配置算出装置。
【請求項５】
工作機械の工具交換装置に回転割り出し可能に設けられ、正転又は反転する略円盤状の工具マガジンの外周に設けられた複数の工具ポットの各々に工具を配置するために、各々の工具ポットとそれに配置する工具とを特定する工具配置算出方法において、
前記工作機械の加工プログラムから工具交換指令を読み込む工具交換指令読込工程と、
前記工具交換指令読込工程で読み込まれた前記工具交換指令から工具交換前後の２本の工具の組合せ回数を前記工具の組合せ毎に計数する組合せ回数計数工程と、
前記工具交換指令読込工程で読み込まれた前記工具交換指令から使用される前記工具の使用回数を工具毎に計数する使用回数計数工程と、
前記組合せ回数計数工程で計数された前記工具の組合せ回数が複数回数である場合に、前記複数回数の組合せの前記工具を隣接する工具ポットに特定する第１配置工程と、
前記使用回数計数工程で計数された前記工具の使用回数が複数回数の前記工具であり且つ前記第１配置工程で前記工具ポットが特定されていない前記工具については、前記第１配置工程によって特定した前記工具ポットと隣接する前記工具ポットに特定する第２配置工程と、
前記第１配置工程及び前記第２配置工程で前記工具ポットが特定されていない前記工具を配置する工具ポットを、既に特定されている工具ポットと隣接する前記工具ポットに特定する第３配置工程と
を備えたことを特徴とする工具配置算出方法。
【請求項６】
工作機械の工具交換装置に回転割り出し可能に設けられ、正転又は反転する略円盤状の工具マガジンの外周に設けられた複数の工具ポットの各々に工具を配置するために、各々の工具ポットとそれに配置する工具とを特定する工具配置算出装置を機能させる工具配置算出装置の制御プログラムにおいて、
前記工作機械の加工プログラムから工具交換指令を読み込む工具交換指令読込ステップと、
前記工具交換指令読込ステップで読み込まれた前記工具交換指令から工具交換前後の２本の工具の組合せ回数を前記工具の組合せ毎に計数する組合せ回数計数ステップと、
前記工具交換指令読込ステップで読み込まれた前記工具交換指令から使用される前記工具の使用回数を工具毎に計数する使用回数計数ステップと、
前記組合せ回数計数ステップで計数された前記工具の組合せ回数が複数回数である場合に、前記複数回数の組合せの前記工具を隣接する工具ポットに特定する第１配置ステップと、
前記使用回数計数ステップで計数された前記工具の使用回数が複数回数の前記工具であり且つ前記第１配置ステップで前記工具ポットが特定されていない前記工具については、前記第１配置ステップによって特定した前記工具ポットと隣接する前記工具ポットに特定する第２配置ステップと、
前記第１配置ステップ及び前記第２配置ステップで前記工具ポットが特定されていない前記工具を配置する工具ポットを、既に特定されている工具ポットと隣接する前記工具ポットに特定する第３配置ステップと
を備えたことを特徴とする工具配置算出装置を機能させる工具配置算出装置の制御プログラム。
【請求項７】
請求項６に記載の制御プログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タレット式の工具マガジンにおける工具の配置を算出できる工具配置算出装置、工具配置算出方法、制御プログラム及び記憶媒体に関する。
【背景技術】
【０００２】
従来、工作機械はタレット式の工具マガジンを備えた工具交換装置を有するものがある。工具マガジンは、工具を装着する複数のポットを備えている。該複数のポットは、識別可能なように識別番号（ポット番号）が付されている。工具番号とポット番号とは、予め作業者によって関連付けられて記憶装置に記憶されている。工具交換装置は、ＮＣプログラム中（以下、加工プログラムと呼ぶ）に工具交換指令があると、該工具交換指令で指令される工具番号の工具を装着したポットを工具交換位置に位置するように工具マガジンを旋回する。
【０００３】
例えば、ポット番号が１の工具を主軸に装着している状態で、ポット番号が８の工具を次に主軸に装着する場合、工作機械は、主軸に装着した工具をポット番号１に戻し、工具マガジンをポット番号１からポット番号８まで旋回する。その後、工作機械は、ポット番号８の工具を主軸に装着する。工具交換装置は、工具マガジンの位置を切り替える回数（以下、切替回数と呼ぶ）が最小となるように、工具を工具ポットに装着することで、工具交換時間を短縮できる。前述した切替回数は、工具マガジンを旋回して隣の工具ポットに位置決めすることを１回とカウントする。前述のように、ポット番号１からポット番号８まで工具マガジンを旋回する場合、切替回数は７回となる。
【０００４】
特許文献１の工具並べ替え機能は、加工プログラム中の工具交換指令を読み取り、工具交換前後の工具の組合が複数回発生する場合、該工具の組合せを優先的に隣のポットに並べ、残りの工具は加工プログラム中の指令順に並べている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平５−２６９６３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１の工具並べ替え機能は、複数回交換する組合せの工具のみを優先的にポットに並べているため、使用回数が多い工具については考慮されない。それ故、加工プログラム中の工具使用順序によっては、使用回数が多い工具を配置する工具ポットの位置と、複数回交換する組合せの工具を配置する工具ポットの位置とが離れた状態で工具ポットが割り当てられてしまい、切替回数が増加し、工具交換時間が長くなってしまうという問題があった。以後の説明において工具と工具を配置する工具ポットとを割当てることを工具ポットの特定と称する。
【０００７】
本発明は、上記課題を解決するためになされたものであり、加工プログラムにおける工具交換時間の短縮を図ることができる工具配置算出装置、工具配置算出方法、制御プログラム及び記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、請求項１に係る発明の工具配置算出装置は、工作機械の工具交換装置に回転割り出し可能に設けられ、正転又は反転する略円盤状の工具マガジンの外周に設けられた複数の工具ポットの各々に工具を配置するために、各々の工具ポットとそれに配置する工具とを特定する工具配置算出装置において、前記工作機械の加工プログラムから工具交換指令を読み込む工具交換指令読込手段と、前記工具交換指令読込手段によって読み込まれた前記工具交換指令から工具交換前後の２本の工具の組合せ回数を前記工具の組合せ毎に計数する組合せ回数計数手段と、前記工具交換指令読込手段によって読み込まれた前記工具交換指令に基づいて前記加工プログラムで使用する前記工具の使用回数を工具毎に計数する使用回数計数手段と、前記組合せ回数計数手段によって得られる前記工具の組合せ回数が複数回数である場合に、前記複数回数の組合せの前記工具を隣接する工具ポットに特定する第１配置手段と、前記使用回数計数手段によって得られた使用回数が複数回数の前記工具であり且つ前記第１配置手段によって前記工具ポットが特定されていない前記工具については、前記第１配置手段によって特定した前記工具ポットと隣接する前記工具ポットに特定する第２配置手段と、前記第１配置手段及び前記第２配置手段によって前記工具ポットが特定されていない前記工具を配置する工具ポットを、既に特定されている前記工具ポットと隣接する前記工具ポットに特定する第３配置手段とを備えたことを特徴とする。
【０００９】
請求項２に係る発明の工具配置算出装置は、請求項１に記載の発明の構成に加え、前記第２配置手段は、前記使用回数が複数回数である前記工具の前後に使用する工具が前記第１配置手段によって特定した前記工具ポットに配置した前記工具であるか否かを検出する第１検出手段を備え、前記使用回数が複数回数である前記工具を、前記第１検出手段が検出した前記工具を配置した前記工具ポットの最も近い工具ポットに特定することを特徴とする。
【００１０】
請求項３に係る発明の工具配置算出装置は、請求項１又は２に記載の発明の構成に加え、前記第３配置手段は、前記第１配置手段及び前記第２配置手段によって前記工具ポットが特定されていない前記工具の前後に使用する工具が前記第１配置手段及び前記第２配置手段によって特定した前記工具ポットの前記工具であるか否かを検出する第２検出手段を備え、前記工具ポットに配置する位置が特定されていない前記工具を、前記第２検出手段が検出した前記工具を配置した前記工具ポットの最も近い工具ポットに特定することを特徴とする。
【００１１】
請求項４に係る発明の工具配置算出装置は、請求項１〜３の何れかに記載の発明の構成に加え、前記第１配置手段と前記第２配置手段と前記第３配置手段とによって得られた前記工具を前記工具ポットに配置する位置の情報を出力する配置情報出力手段を備えたことを特徴とする。
【００１２】
請求項５に係る発明の工具配置算出方法は、工作機械の工具交換装置に回転割り出し可能に設けられ、正転又は反転する略円盤状の工具マガジンの外周に設けられた複数の工具ポットの各々に工具を配置するために、各々の工具ポットとそれに配置する工具とを特定する工具配置算出方法において、前記工作機械の加工プログラムから工具交換指令を読み込む工具交換指令読込工程と、前記工具交換指令読込工程で読み込まれた前記工具交換指令から工具交換前後の２本の工具の組合せ回数を前記工具の組合せ毎に計数する組合せ回数計数工程と、前記工具交換指令読込工程で読み込まれた前記工具交換指令から使用される前記工具の使用回数を工具毎に計数する使用回数計数工程と、前記組合せ回数計数工程で計数された前記工具の組合せ回数が複数回数である場合に、前記複数回数の組合せの前記工具を隣接する工具ポットに特定する第１配置工程と、前記使用回数計数工程で計数された前記工具の使用回数が複数回数の前記工具であり且つ前記第１配置工程で前記工具ポットが特定されていない前記工具については、前記第１配置工程によって特定した前記工具ポットと隣接する前記工具ポットに特定する第２配置工程と、前記第１配置工程及び前記第２配置工程で前記工具ポットが特定されていない前記工具を配置する工具ポットを、既に特定されている工具ポットと隣接する前記工具ポットに特定する第３配置工程とを備えたことを特徴とする。
【００１３】
請求項６に係る発明の工具配置算出装置を機能させる工具配置算出装置の制御プログラムは、工作機械の工具交換装置に回転割り出し可能に設けられ、正転又は反転する略円盤状の工具マガジンの外周に設けられた複数の工具ポットの各々に工具を配置するために、各々の工具ポットとそれに配置する工具とを特定する工具配置算出装置を機能させる工具配置算出装置の制御プログラムにおいて、前記工作機械の加工プログラムから工具交換指令を読み込む工具交換指令読込ステップと、前記工具交換指令読込ステップで読み込まれた前記工具交換指令から工具交換前後の２本の工具の組合せ回数を前記工具の組合せ毎に計数する組合せ回数計数ステップと、前記工具交換指令読込ステップで読み込まれた前記工具交換指令から使用される前記工具の使用回数を工具毎に計数する使用回数計数ステップと、前記組合せ回数計数ステップで計数された前記工具の組合せ回数が複数回数である場合に、前記複数回数の組合せの前記工具を隣接する工具ポットに特定する第１配置ステップと、前記使用回数計数ステップで計数された前記工具の使用回数が複数回数の前記工具であり且つ前記第１配置ステップで前記工具ポットが特定されていない前記工具については、前記第１配置ステップによって特定した前記工具ポットと隣接する前記工具ポットに特定する第２配置ステップと、前記第１配置ステップ及び前記第２配置ステップで前記工具ポットが特定されていない前記工具を配置する工具ポットを、既に特定されている工具ポットと隣接する前記工具ポットに特定する第３配置ステップとを備えたことを特徴とする。
【００１４】
請求項７に係る発明の記憶媒体は、請求項６に記載の制御プログラムを記憶したコンピュータ読み取り可能な記憶媒体である。
【発明の効果】
【００１５】
請求項１の工具配置算出装置では、第１配置手段は、組合せ回数計数手段によって得られる工具の組合せ回数が複数回数である場合に、複数回数の組合せの工具を隣接する工具ポットに特定する。第２配置手段は、使用回数計数手段によって得られた使用回数が複数回数の工具であり且つ第１配置手段によって工具ポットが特定されていない工具については、第１配置手段によって特定した工具ポットと隣接する工具ポットに特定する。工具配置算出装置は、工具の組合せ回数が複数回数である場合及び工具の使用回数が複数回数である場合に優先的に隣接する工具ポットに特定する。工具配置算出装置は、組合せ回数及び使用回数が複数の工具を優先的に隣接する工具ポットに特定することで、工具マガジンの切替回数を減らすことができる。従って、工具配置算出装置は、工具交換装置における工具交換の時間の短縮を図ることができる。
【００１６】
請求項２の工具配置算出装置では、請求項１に記載の発明の効果に加え、第２配置手段は、使用回数が複数回数である工具の前後に使用する工具が第１配置手段によって特定した工具ポットに配置した工具であるか否かを検出する第１検出手段を備える。第２配置手段は、使用回数が複数回数である工具を、第１検出手段が検出した工具を配置した工具ポットの最も近い工具ポットに特定する。従って、工具配置算出装置は、工具マガジンの切替回数を更に減らすことができる。
【００１７】
請求項３の工具配置算出装置では、請求項１又は２に記載の発明の効果に加え、第３配置手段は、第１配置手段及び第２配置手段によって工具ポットが特定されていない工具の前後に使用する工具が第１配置手段及び第２配置手段によって特定した工具ポットの工具であるか否かを検出する第２検出手段を備える。第３配置手段は、工具ポットに配置する位置が特定されていない工具を、第２検出手段が検出した工具を配置した工具ポットの最も近い工具ポットに特定する。従って、工具配置算出装置は、工具マガジンの切替回数を更に減らすことができる。
【００１８】
請求項４の工具配置算出装置では、請求項１〜３の何れかに記載の発明の効果に加え、配置情報出力手段は、第１配置手段と第２配置手段と第３配置手段とによって得られた工具を工具ポットに配置する位置を出力する。従って、工具配置算出装置は、配置情報出力手段に工具の位置を出力することで、作業者が出力された情報に基づいて工具の配置を行うことができる。
【００１９】
請求項５の工具配置算出方法では、第１配置工程は、組合せ回数計数工程で計数された工具の組合せ回数が複数回数である場合に、複数回数の組合せの工具を隣接する工具ポットに特定する。第２配置工程は、使用回数計数工程で計数された工具の使用回数が複数回数であり且つ第１配置工程で工具ポットが特定されていない工具については、第１配置工程で特定した工具ポットと隣接する工具ポットに特定する。工具配置算出方法は、工具の組合せ回数が複数回数である場合及び工具の使用回数が複数回数である場合に優先的に隣接する工具ポットに特定する。工具配置算出方法は、組合せ回数及び使用回数が複数の工具を優先的に隣接する工具ポットに特定することで、工具マガジンの切替回数を減らすことができる。従って、工具配置算出方法は、工具交換装置における工具交換の時間の短縮を図ることができる。
【００２０】
請求項６の制御プログラムでは、第１配置ステップは、組合せ回数計数ステップで計数された工具の組合せ回数が複数回数である場合に、複数回数の組合せの工具を隣接する工具ポットに特定する。第２配置ステップは、使用回数計数ステップで計数された工具の使用回数が複数回数であり且つ第１配置ステップで工具ポットが特定されていない工具については、第１配置ステップで特定した工具ポットと隣接する工具ポットに特定する。制御プログラムは、工具の組合せ回数が複数回数である場合及び工具の使用回数が複数回数である場合に優先的に隣接する工具ポットに特定する。制御プログラムは、組合せ回数及び使用回数が複数の工具を優先的に隣接する工具ポットに特定することで、工具マガジンの切替回数を減らすことができる。従って、制御プログラムは、工具交換装置における工具交換の時間の短縮を図ることができる。
【００２１】
請求項７の記憶媒体では、請求項６に記載の制御プログラムを記憶しているので、請求項６に記載の効果を得ることができる。
【図面の簡単な説明】
【００２２】
【図１】工作機械１の正面図である。
【図２】スプラッシュカバー４を取り外した工作機械１の斜視図である。
【図３】工具マガジン３１の工具配置の一例を示したモデル図である。
【図４】数値制御装置２０の電気的構成を示すブロック図である。
【図５】ＲＡＭ２３の各記憶領域を示す概念図である。
【図６】不揮発性メモリ２４の各記憶領域を示す概念図である。
【図７】ディスプレイ１１に加工プログラムが表示された状態を示す図である。
【図８】ディスプレイ１１に工具配置表１２０が表示された状態を示す図である。
【図９】工具配置算出処理のフローチャートである。
【図１０】組合せ回数ＣＮが複数である工具Ｔについての工具ポットＰの特定処理のフローチャートである。
【図１１】工具使用回数ＴＮが複数である工具Ｔについての工具ポットＰの特定処理のフローチャートである。
【図１２】１回のみ使用する工具Ｔについての工具ポットＰの特定処理のフローチャートである。
【図１３】工具Ｔを工具ポットＰに特定する処理のフローチャートである。
【図１４】工具組合せ記憶エリア２３２の記憶内容を示す図である。
【図１５】工具使用回数記憶エリア２３３の記憶内容を示す図である。
【発明を実施するための形態】
【００２３】
以下、本発明の一実施形態である数値制御装置２０（図４参照）について、図面を参照して説明する。数値制御装置２０は、図１，図２に示す工作機械１の動作を制御するものである。以下の説明では、図１の紙面左方、右方、表面、背面を、それぞれ工作機械１の左方、右方、前方、後方とする。工作機械１は、ワークと工具Ｔとを相対移動させることで、ワークに所望の切削加工を施すための機械である。尚、数値制御装置２０は、本発明の「工具配置算出装置」に相当する。
【００２４】
工作機械１の構造について簡単に説明する。図１に示すように、工作機械１は、鉄製のベース２と、該ベース２の上部に設けた機械本体３（図２参照）とを備えている。ベース２は、その上部に機械本体３の周囲を覆うスプラッシュカバー４を固定している。スプラッシュカバー４は、正面に長方形状の開口５を設けている。スライド式の開閉扉６は、開口５を開閉する。スプラッシュカバー４は、開口５の右側に工作機械１を操作するための操作パネル１０を設けている。操作パネル１０は、その上部に各種設定画面、操作画面等を表示するディスプレイ１１を設けている。操作パネル１０は、その下部に各種操作キーを備えたキーボード１２を設けている。
【００２５】
図２に示すように、機械本体３は、コラム１５と、主軸ヘッド１６と、主軸１７と、テーブル１９とを備えている。コラム１５は、ベース２の上部後方に立設している。コラム１５は、その背面に制御ボックス１８を設けている。制御ボックス１８は、その内部に工作機械１の動作を制御する数値制御装置２０（図４参照）を収納している。
【００２６】
主軸ヘッド１６は、コラム１５に沿って昇降可能に設けてある。主軸ヘッド１６は、主軸１７を回転可能に支持する。主軸ヘッド１６は、Ｚ軸モータ５３（図４参照）の駆動によりＺ軸方向（上下方向）に移動する。主軸１７は、主軸モータ５４（図４参照）の駆動によって回転する。コラム１５は、その上方において前方に延びるフレーム７を支持している。フレーム７は、その前端にタレット式の工具交換装置３０を設けている。工具交換装置３０は、主軸１７に装着した工具Ｔを自動的に交換可能である。
【００２７】
テーブル１９は、ベース２の上部においてＸ軸方向（左右方向）及びＹ軸方向（前後方向）に移動可能に設けてある。テーブル１９は、Ｘ軸モータ５１（図４参照）及びＸ軸ガイド機構（図示省略）によりＸ軸方向に移動する。テーブル１９は、Ｙ軸モータ５２（図４参照）及びＹ軸ガイド機構（図示省略）によりＹ軸方向に移動する。
【００２８】
工具交換装置３０の構造について説明する。図２に示すように、工具交換装置３０は、円盤状の工具マガジン３１と、工具マガジン３１を旋回駆動するマガジンモータ５５（図４参照）とを備えている。工具マガジン３１は、その外周縁部に工具Ｔを着脱可能な１４個の工具ポットＰ１〜Ｐ１４（図３参照）を設けてある。図３に示す工具ポットＰ８の位置は、主軸１７（図２参照）と工具マガジン３１との間で工具交換が行われる工具交換位置である。
【００２９】
図３に示すように、工具マガジン３１は、マガジンモータ５５（図４参照）の駆動によって中心軸３２の周りに旋回し、正転（図３において正面視時計回り）、反転（図３において正面視反時計回り）が可能である。マガジンモータ５５は、数値制御装置２０のＣＰＵ２１（図４参照）によって制御される。例えば、ＣＰＵ２１は、加工プログラム中に工具交換指令があった場合、その工具交換指令の対象となる工具Ｔが装着されている工具ポットＰの番号を求めることで工具ポットＰの位置を割り出す。ＣＰＵ２１は、Ｚ軸モータ５３（図４参照）を駆動して主軸ヘッド１６を上昇させる。主軸ヘッド１６が上昇することで、主軸１７に装着していた工具Ｔは、主軸１７から抜けて前記工具交換位置にある工具ポットＰに装着される。ＣＰＵ２１は、マガジンモータ５５を駆動して工具マガジン３１を旋回し、工具交換指令の対象となる工具Ｔを工具交換位置に搬送する。ＣＰＵ２１は、Ｚ軸モータ５３を駆動して主軸ヘッド１６を下降させる。主軸ヘッド１６が下降することで、主軸１７は工具交換位置に搬送された工具Ｔを装着する。主軸１７が工具Ｔを装着することで工具交換動作は完了する。
【００３０】
図３に示すように、工具マガジン３１は、工具ポットＰ１，Ｐ２，Ｐ３，Ｐ４，Ｐ５，Ｐ６に夫々工具Ｔ３，Ｔ２，Ｔ５，Ｔ１，Ｔ４，Ｔ６を装着している。工具マガジン３１は、工具ポットＰ７〜Ｐ１４に工具Ｔを装着していない。
【００３１】
図４のブロック図を参照して、数値制御装置２０の電気的構成について説明する。数値制御装置２０は、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３及び不揮発性メモリ２４からなるマイクロコンピュータと、入力インタフェイス２５と、入出力インタフェイス２６とを備えている。入力インタフェイス２５は、操作パネル１０のキーボード１２と電気的に接続している。
【００３２】
入出力インタフェイス２６は、駆動回路４１〜４６等と電気的に接続している。駆動回路４１は、Ｘ軸モータ５１を駆動する。駆動回路４２は、Ｙ軸モータ５２を駆動する。駆動回路４３は、Ｚ軸モータ５３を駆動する。駆動回路４４は、主軸モータ５４を駆動する。駆動回路４５は、マガジンモータ５５を駆動する。駆動回路４６は、操作パネル１０のディスプレイ１１を駆動する。
【００３３】
Ｘ軸モータ５１、Ｙ軸モータ５２、Ｚ軸モータ５３、主軸モータ５４、マガジンモータ５５は、それぞれモータの位置を検出するエンコーダ（図示省略）を設けてある。各エンコーダは、各駆動回路４１，４２，４３，４４，４５に接続している。
【００３４】
ＲＯＭ２２は、後述する工具配置算出処理を含む工作機械１を制御する制御プログラムを記憶した制御プログラム領域等を設けている。ＲＡＭ２３は、工作機械１を制御する制御プログラムの実行中に取得した種々のデータを格納するデータ記憶エリア、及び種々のワークメモリを設けている。
【００３５】
図５を参照して、ＲＡＭ２３の各種記憶エリアについて説明する。ＲＡＭ２３は、工具使用順記憶エリア２３１と、工具組合せ記憶エリア２３２と、工具使用回数記憶エリア２３３と、工具配置記憶エリア２３４と、計算回数記憶エリア２３５とを少なくとも設けている。
【００３６】
工具使用順記憶エリア２３１は、加工プログラムから読み込まれた工具交換指令の対象である工具Ｔの使用する順番を記憶している。工具組合せ記憶エリア２３２は、加工プログラムから読み込まれた工具交換指令における工具交換前後の工具Ｔの組合せ（以下、工具組合せＣと呼ぶ）、各工具組合せＣの発生回数（以下、工具組合せ回数ＣＮと呼ぶ）及び工具組合せＣの総数を記憶している。工具使用回数記憶エリア２３３は、加工プログラムから読み込まれた工具交換指令の対象である工具Ｔの使用回数（以下、工具使用回数ＴＮと呼ぶ）及び使用する工具の合計本数（総使用本数）を記憶している。工具配置記憶エリア２３４は、後述する工具配置算出処理で得られた工具マガジン３１における工具Ｔの工具配置（以下、工具配置ＭＡＧと呼ぶ）を記憶している。具体的には工具の各々に対し工具ポットＰを対応付けて記憶している。工具配置記憶エリア２３４は、工具Ｔを装着していない空きの工具ポットＰに「−」を記憶している。計算回数記憶エリア２３５は、工具配置ＭＡＧを算出する際に使用するカウンタ値を記憶するエリアであって、工具組合せＣをカウントするカウンタＳ、工具の本数をカウントするカウンタＱを記憶する。
【００３７】
図６を参照して、不揮発性メモリ２４の各種記憶エリアについて説明する。不揮発性メモリ２４は、加工プログラム記憶エリア２４１を少なくとも設けている。加工プログラム記憶エリア２４１は、加工プログラムを記憶している。
【００３８】
工具配置を算出する際の操作パネル１０の操作方法について説明する。図７に示すように、作業者は、操作パネル１０のキーボード１２（図１参照）を操作してディスプレイ１１に加工プログラムを表示する。図７に示す加工プログラムの例では、ワークの切削加工中に、工具Ｔ１→Ｔ２→Ｔ３→Ｔ４→Ｔ２→Ｔ５→Ｔ１→Ｔ５→Ｔ２→Ｔ５→Ｔ６→Ｔ４の順に工具交換を実行する。作業者は、ディスプレイ１１の左隅に表示されている工具配置計算ボタン１１０を操作する。数値制御装置２０は、後述する工具配置算出処理を実行し、工具配置を算出する。図８に示すように、ＣＰＵ２１は、ディスプレイ１１に工具配置の算出結果を示す工具配置表１２０を表示する。
【００３９】
工具配置表１２０について説明する。図８に示すように、工具配置表１２０は、ポット番号欄１２１と工具番号欄１２２とを設けている。ＣＰＵ２１は、工具配置記憶エリア２３４に記憶する工具ポットＰ１〜Ｐ１４のポット番号と工具配置ＭＡＧの工具Ｔとを、それぞれポット番号欄１２１と工具番号欄１２２とに表示する。作業者は、ディスプレイ１１に表示された工具配置表１２０に従って、工具マガジン３１の各工具ポットＰ１〜Ｐ１４に工具Ｔをそれぞれ装着する。
【００４０】
図９のフローチャートを参照して、加工プログラムに基づく工具配置算出処理について説明する。ただし、図中の符号Ｓｉ（ｉ＝２０，３０・・・）は各ステップである。工具配置算出処理は、作業者が図７に示す工具配置計算ボタン１１０を操作した場合に開始する。尚、作業者は、予め加工プログラムをキーボード１２を介して入力し、ディスプレイ１１には、図７に示す画面が表示されている。
【００４１】
ＣＰＵ２１は、加工プログラム中の工具交換指令から、工具Ｔを使用する順番をＲＡＭ２３の工具使用順記憶エリア２３１に記憶する（Ｓ２０）。ＣＰＵ２１は、工具使用順記憶エリア２３１に記憶した内容に基づいて、全ての工具組合せＣ、各工具組合せＣにおける組合せ回数ＣＮ及び組合せ総数を工具組合せ記憶エリア２３２に記憶する（Ｓ３０）。
【００４２】
ＣＰＵ２１は、工具組合せ記憶エリア２３２に記憶している工具組合せＣについて、組合せ回数ＣＮの多い順番にソートする（Ｓ４０）。ＣＰＵ２１は、工具使用順記憶エリア２３１に記憶した内容に基づいて、全ての工具Ｔの工具使用回数ＴＮ及び総使用本数を工具使用回数記憶エリア２３３に記憶する（Ｓ５０）。
【００４３】
ＣＰＵ２１は、工具組合せ記憶エリア２３２に記憶している工具組合せＣと組合せ回数ＣＮとに基づいて、後述する組合せ回数ＣＮが複数である工具Ｔについて工具ポットＰの特定を行う（Ｓ６０）。その後、ＣＰＵ２１は、工具使用回数記憶エリア２３３に記憶している工具使用回数ＴＮに基づいて、後述する工具使用回数ＴＮが複数である工具Ｔについて工具ポットＰの特定を行う（Ｓ７０）。その後、ＣＰＵ２１は、１回のみ使用する工具Ｔについて工具ポットＰの特定を行う（Ｓ８０）。工具配置ＭＡＧは、Ｓ６０〜Ｓ８０の処理を行うことで算出することができる。
【００４４】
工具配置ＭＡＧを算出した後、ＣＰＵ２１は、ディスプレイ１１に上述した工具配置表１２０（図８参照）を表示し（Ｓ９０）、処理を終了する。
【００４５】
図１０を参照して、組合せ回数ＣＮが複数である工具Ｔについての工具ポットＰの特定処理（図９のＳ６０）について説明する。
【００４６】
ＣＰＵ２１は、ＲＡＭ２３の計算回数記憶エリア２３５のカウンタＳに１を記憶する（Ｓ６１０）。
【００４７】
ＣＰＵ２１は、カウンタＳの値が工具組合せ記憶エリア２３２に記憶した組合せ総数以下か否かを判断する（Ｓ６２０）。カウンタＳの値が組合せ総数よりも大きい場合（Ｓ６２０：ＮＯ）、ＣＰＵ２１は処理を終了し図９のＳ７０に移行する。
【００４８】
カウンタＳの値が組合せ総数以下の場合（Ｓ６２０：ＹＥＳ）、ＣＰＵ２１は、カウンタＳが示す工具組合せＣの組合せ回数ＣＮが１よりも大きいか否か判断する（Ｓ６３０）。組合せ回数ＣＮが１以下の場合（Ｓ６３０：ＮＯ）、ＣＰＵ２１はカウンタＳに１を加え（Ｓ６６０）、処理をＳ６２０に移行する。
【００４９】
組合せ回数ＣＮが１よりも大きい場合（Ｓ６３０：ＹＥＳ）、ＣＰＵ２１はカウンタＳが示す工具組合せＣにおける１本目の工具Ｔを工具ポットＰに特定する後述の処理を呼出す（Ｓ６４０）。次に、ＣＰＵ２１はカウンタＳが示す工具組合せＣにおける２本目の工具Ｔを工具ポットＰに特定する後述の処理を呼出す（Ｓ６５０）。その後、ＣＰＵ２１は処理をＳ６６０に移行してカウンタＳに１を加える。尚、Ｓ６４０，Ｓ６５０の処理の詳細は後述する。
【００５０】
図１１を参照して、工具使用回数ＴＮが複数である工具Ｔについての工具ポットＰの特定処理（図９のＳ７０）について説明する。
【００５１】
ＣＰＵ２１は、ＲＡＭ２３の計算回数記憶エリア２３５のカウンタＱに１を記憶する（Ｓ７１０）。
【００５２】
ＣＰＵ２１は、カウンタＱの値が工具使用回数記憶エリア２３３に記憶した総使用本数以下か否かを判断する（Ｓ７２０）。カウンタＱの値が総使用本数よりも大きい場合（Ｓ７２０：ＮＯ）、ＣＰＵ２１は処理を図９のＳ８０に移行する。
【００５３】
カウンタＱの値が総使用本数以下の場合（Ｓ７２０：ＹＥＳ）、ＣＰＵ２１は、カウンタＱが示す工具Ｔにおける工具使用回数ＴＮが１よりも大きいか否か判断する（Ｓ７３０）。工具使用回数ＴＮが１以下の場合（Ｓ７３０：ＮＯ）、ＣＰＵ２１はカウンタＱに１を加え（Ｓ７８０）、処理をＳ７２０に移行する。
【００５４】
工具使用回数ＴＮが１よりも大きい場合（Ｓ７３０：ＹＥＳ）、ＣＰＵ２１はＲＡＭ２３の計算回数記憶エリア２３５のカウンタＳに１を記憶する（Ｓ７４０）。ＣＰＵ２１は、カウンタＳの値が工具組合せ記憶エリア２３２に記憶した組合せ総数以下か否かを判断する（Ｓ７５０）。カウンタＳの値が組合せ総数よりも大きい場合（Ｓ７５０：ＮＯ）、ＣＰＵ２１は異常と判断して処理を終了する。
【００５５】
カウンタＳの値が組合せ総数以下の場合（Ｓ７５０：ＹＥＳ）、ＣＰＵ２１は、カウンタＳが示す工具組合せＣにカウンタＱが示す工具Ｔを有するか否か判断する（Ｓ７６０）。カウンタＳが示す工具組合せＣにカウンタＱが示す工具Ｔを有さない場合（Ｓ７６０：ＮＯ）、ＣＰＵ２１はカウンタＳに１を加え（Ｓ７９０）、処理をＳ７５０に移行する。
【００５６】
カウンタＳが示す工具組合せＣにカウンタＱが示す工具Ｔを有する場合（Ｓ７６０：ＹＥＳ）、ＣＰＵ２１はカウンタＱが示す工具Ｔを工具ポットＰに特定する後述の処理を呼出す（Ｓ７７０）。その後、ＣＰＵ２１は、処理をＳ７８０に移行しカウンタＱに１を加える。
【００５７】
図１２を参照して、１回のみ使用する工具Ｔについての工具ポットＰの特定処理（図９のＳ８０）について説明する。ＣＰＵ２１は、ＲＡＭ２３の計算回数記憶エリア２３５のカウンタＱに１を記憶する（Ｓ８１０）。
【００５８】
ＣＰＵ２１は、カウンタＱの値が工具使用回数記憶エリア２３３に記憶した総使用本数以下か否かを判断する（Ｓ８２０）。カウンタＱの値が工具の総使用本数よりも大きい場合（Ｓ８２０：ＮＯ）、ＣＰＵ２１は処理を図９のＳ９０に移行する。
【００５９】
カウンタＱの値が工具の総使用本数以下の場合（Ｓ８２０：ＹＥＳ）、ＣＰＵ２１は、カウンタＱが示す工具Ｔにおける工具使用回数ＴＮが１であるか否か判断する（Ｓ８３０）。工具使用回数ＴＮが１以外の場合（Ｓ８３０：ＮＯ）、ＣＰＵ２１はカウンタＱに１を加え（Ｓ８８０）、処理をＳ８２０に移行する。
【００６０】
工具使用回数ＴＮが１である場合（Ｓ８３０：ＹＥＳ）、ＣＰＵ２１はＲＡＭ２３の計算回数記憶エリア２３５のカウンタＳに１を記憶する（Ｓ８４０）。ＣＰＵ２１は、カウンタＳの値が工具組合せ記憶エリア２３２に記憶した組合せ総数以下か否かを判断する（Ｓ８５０）。カウンタＳの値が組合せ総数よりも大きい場合（Ｓ８５０：ＮＯ）、ＣＰＵ２１は異常と判断して処理を終了する。
【００６１】
カウンタＳの値が組合せ総数以下の場合（Ｓ８５０：ＹＥＳ）、ＣＰＵ２１は、カウンタＳが示す工具組合せＣにカウンタＱが示す工具Ｔを有するか否か判断する（Ｓ８６０）。カウンタＳが示す工具組合せＣにカウンタＱが示す工具Ｔを有さない場合（Ｓ８６０：ＮＯ）、ＣＰＵ２１はカウンタＳに１を加え（Ｓ８９０）、処理をＳ８５０に移行する。
【００６２】
カウンタＳが示す工具組合せＣにカウンタＱが示す工具Ｔを有する場合（Ｓ８６０：ＹＥＳ）、ＣＰＵ２１はカウンタＱが示す工具Ｔを工具ポットＰに特定する後述の処理を呼出す（Ｓ８７０）。その後、ＣＰＵ２１は処理をＳ８８０に移行し、カウンタＱに１を加える。
【００６３】
図１３を参照して、工具Ｔを工具ポットＰに特定する処理について説明する。工具Ｔを工具ポットＰに特定する処理は、図１０のＳ６４０，Ｓ６５０、図１１のＳ７７０、図１２のＳ７８０の各処理を行う場合に開始する。
【００６４】
ＣＰＵ２１は、工具配置記憶エリア２３４に記憶している工具配置ＭＡＧに特定対象の工具Ｔが既にあるか否かを判断する（Ｓ１１０）。
【００６５】
工具配置ＭＡＧに特定対象の工具Ｔが既にある場合（Ｓ１１０：ＹＥＳ）、ＣＰＵ２１は処理を終了する。工具配置ＭＡＧに特定対象の工具Ｔがない場合（Ｓ１１０：ＮＯ）、ＣＰＵ２１は、工具組合せＣにおいて、今回の処理で特定を行わない方の工具ＴＯを取得する（Ｓ１２０）。ＣＰＵ２１は、取得した工具ＴＯが工具配置ＭＡＧにあるか否かを判断する（Ｓ１３０）。
【００６６】
Ｓ１２０で取得した工具ＴＯが工具配置ＭＡＧにある場合（Ｓ１３０：ＹＥＳ）、ＣＰＵ２１は、工具Ｔを工具ＴＯに最も近く、且つ特定された工具がない空きの工具ポットＰに特定する。ＣＰＵ２１は、工具Ｔを特定することで工具配置ＭＡＧの内容を更新し、工具配置記憶エリア２３４に記憶する（Ｓ１４０）。ＣＰＵ２１は、工具配置ＭＡＧを更新した後、処理を終了する。
【００６７】
工具配置ＭＡＧにＳ１２０で取得した工具ＴＯがない場合（Ｓ１３０：ＮＯ）、ＣＰＵ２１は、工具配置ＭＡＧに工具Ｔ，ＴＯ以外で既に特定している工具があるか否かを判断する（Ｓ１５０）。工具配置ＭＡＧに工具Ｔ，ＴＯ以外で既に特定している工具がある場合（Ｓ１５０：ＹＥＳ）、ＣＰＵ２１は、空いている工具ポットＰの内、既に特定している工具の工具ポットに距離が最も近い空き工具ポットＰに工具Ｔを特定する。ＣＰＵ２１は、工具Ｔを特定することで工具配置ＭＡＧの内容を更新し、工具配置記憶エリア２３４に記憶する（Ｓ１６０）。ＣＰＵ２１は、工具配置ＭＡＧを更新した後、処理を終了する。
【００６８】
工具配置ＭＡＧに工具Ｔ，ＴＯ以外で既に特定している工具がない場合（Ｓ１５０：ＮＯ）、工具ポットＰへの工具Ｔの最初の特定であるので、ＣＰＵ２１は、先頭の工具ポットＰ１に工具Ｔを特定する。ＣＰＵ２１は、工具Ｔを特定することで工具配置ＭＡＧの内容を更新し、工具配置記憶エリア２３４に記憶する（Ｓ１７０）。ＣＰＵ２１は、工具配置ＭＡＧを更新した後、処理を終了する。
【００６９】
図９〜図１３のフローチャートに基づいた工具配置ＭＡＧの算出の具体例を図７に示す加工プログラムの例を参照して説明する。
【００７０】
作業者が工具配置計算ボタン１１０を操作すると、ＣＰＵ２１は、加工プログラム中の工具交換指令から工具Ｔを使用する順番をＲＡＭ２３の工具使用順記憶エリア２３１に記憶する（Ｓ２０）。
【００７１】
Ｓ３０においては、全ての工具組合せＣ＝「Ｔ１−Ｔ２，Ｔ２−Ｔ３，Ｔ３−Ｔ４，Ｔ４−Ｔ２，Ｔ２−Ｔ５，Ｔ５−Ｔ１，Ｔ５−Ｔ６，Ｔ６−Ｔ４」、各工具組合せＣにおける組合せ回数ＣＮ＝「１，１，１，１，３，２，１，１」及び組合せ総数＝８を工具組合せ記憶エリア２３２に記憶する。各工具組合せＣにおける２本の工具の並び方は、加工プログラム中の工具交換指令の順序に基づいている。工具組合せＣ＝「Ｔ１−Ｔ２」は、工具Ｔ１を１本目、工具Ｔ２を２本目として工具組合せ記憶エリア２３２に記憶してある。組合せ回数ＣＮを計数する場合、各工具組合せＣにおける１本目と２本目とは順不同である。
【００７２】
図１４に示すように、ＣＰＵ２１は、Ｓ４０において組合せ回数ＣＮの多い順にソートすることで、工具組合せＣ＝「Ｔ２−Ｔ５，Ｔ５−Ｔ１，Ｔ１−Ｔ２，Ｔ２−Ｔ３，Ｔ３−Ｔ４，Ｔ４−Ｔ２，Ｔ５−Ｔ６，Ｔ６−Ｔ４」を求め、工具組合せ記憶エリア２３２に記憶する。
【００７３】
図１５に示すように、ＣＰＵ２１は、Ｓ５０において工具交換指令から加工プログラムで使用する全ての工具Ｔ、工具使用回数ＴＮ及び総使用本数を工具使用回数記憶エリア２３３に記憶する。図１５は、工具Ｔ１は、使用回数が２であることを示し、工具Ｔ２は使用回数が３であることを示している。
【００７４】
Ｓ６０においては、組合せ回数ＣＮが複数である工具Ｔについての工具ポットＰの特定処理を行うため、ＣＰＵ２１は図１０のフローチャートを実行する。Ｓ６２０において、Ｓ＝１の場合、組合せ総数（図１４に示す例では８）以下なので、ＣＰＵ２１は、カウンタＳが示す工具組合せＣ（１番目）について、その組合せ回数ＣＮが１より大きいか否かを判断する（Ｓ６２０でＹＥＳ、Ｓ６３０）。図１４に示す例では、１番目の工具組合せＣ＝「Ｔ２−Ｔ５」は、組合せ回数ＣＮ＝「３」である。
【００７５】
ＣＰＵ２１は、１番目の工具組合せＣの組合せ回数ＣＮが１より大きいため、工具組合せＣの工具Ｔ２，Ｔ５について、１本目の工具Ｔ２について工具ポットＰの特定処理を行う（Ｓ６３０でＹＥＳ、Ｓ６４０）。Ｓ６４０において、ＣＰＵ２１は処理を図１３のＳ１１０に移行する。
【００７６】
まず、ＣＰＵ２１は工具配置ＭＡＧに工具Ｔ２が特定されていないので、工具組合せＣ＝「Ｔ２−Ｔ５」における工具Ｔ５をＴＯとして取得する（Ｓ１１０でＮＯ、Ｓ１２０）。ＣＰＵ２１は、工具ＴＯ＝Ｔ５が工具配置ＭＡＧになく、工具配置ＭＡＧに特定された工具がないため、工具Ｔ２を工具配置ＭＡＧの工具ポットＰ１に特定する（Ｓ１３０でＮＯ、Ｓ１５０でＮＯ、Ｓ１７０）。
【００７７】
ＣＰＵ２１は工具ポットＰへの特定処理を終了すると、処理を図１０のＳ６５０に移行する。ＣＰＵ２１は、２本目の工具Ｔ５について工具ポットＰの特定処理を行う（Ｓ６５０）。Ｓ６５０において、ＣＰＵ２１は再び処理を図１３のＳ１１０に移行する。
【００７８】
ＣＰＵ２１は工具配置ＭＡＧに工具Ｔ５が特定されていないので、工具組合せＣ＝「Ｔ２−Ｔ５」における工具Ｔ２をＴＯとして取得する（Ｓ１１０でＮＯ、Ｓ１２０）。ＣＰＵ２１は、工具ＴＯ＝「Ｔ２」が工具配置ＭＡＧにあるため、工具Ｔ５を工具配置ＭＡＧの工具ＴＯ＝「Ｔ２」に距離が最も近い空き工具ポットである工具ポットＰ２に特定する（Ｓ１３０でＹＥＳ、Ｓ１４０）。
【００７９】
ＣＰＵ２１は工具ポットＰへの特定処理を終了すると、処理を図１０のＳ６６０に移行する。Ｓ６６０においてはカウンタＳに１を加える。カウンタＳは２となり、組合せ総数以下なので、ＣＰＵ２１は、カウンタＳが示す２番目の工具組合せＣについて、その組合せ回数ＣＮが１より大きいか否かを判断する（Ｓ６２０でＹＥＳ、Ｓ６３０）。図１４に示す例では、２番目の工具組合せＣ＝「Ｔ５−Ｔ１」は、組合せ回数ＣＮ＝「２」で１より大きいため（Ｓ６３０でＹＥＳ）、ＣＰＵ２１は１番目の工具組合せＣの場合と同様にＳ６４０，Ｓ６５０の処理を行う。Ｓ６４０の処理では、工具Ｔ５は、既に工具ポットＰ２に特定されているため、Ｓ１１０でＹＥＳとなり、次の処理に移行する。Ｓ６５０の処理（Ｓ１１０，Ｓ１２０，Ｓ１３０，Ｓ１４０を経由して）によってＣＰＵ２１は、工具Ｔ１を工具配置ＭＡＧの工具ポットＰ３に特定する。ＣＰＵ２１は、次の組合せについて処理を実行する。
【００８０】
図１４に示す例では、３番目以降の組合せ回数ＣＮは「１」であるためＣＰＵ２１は、Ｓ６２０，Ｓ６３０，Ｓ６６０の処理を繰り返し、Ｓが９となった時点で、Ｓ６２０でＮＯとなり、組合せ回数が複数の工具Ｔの特定が終了する。
【００８１】
次に、ＣＰＵ２１は、複数回使用する工具Ｔについての工具ポットＰの特定処理（Ｓ７０）を行う。ＣＰＵ２１は、図１１のフローチャートに従って処理を実行する。
【００８２】
Ｓ７２０において、カウンタＱは１であるため、総使用本数（図１５に示す例では６）以下となり、ＣＰＵ２１は、カウンタＱが示す１番目の工具使用回数ＴＮについて、１より大きいか否かを判断する（Ｓ７２０でＹＥＳ，Ｓ７３０）。図１５に示す例では、１番目の工具ＴはＴ１であり、その工具使用回数ＴＮは２である。
【００８３】
ＣＰＵ２１は、１番目の工具Ｔ１の工具使用回数ＴＮが１より大きいため、計算回数記憶エリア２３５のカウンタＳに１を記憶する（Ｓ７３０でＹＥＳ、Ｓ７４０）。ＣＰＵ２１は、全ての工具組合せＣにおいて、工具Ｔ１を有する組合せがあるか否かを判断する（Ｓ７５０でＹＥＳ、Ｓ７６０）。工具Ｔ１を有する工具組合せＣがあった場合に、ＣＰＵ２１は工具Ｔ１について工具ポットＰを特定する処理を行う（Ｓ７６０でＹＥＳ、Ｓ７７０）。図１４に示すように、工具Ｔ１を有する工具組合せＣは２番目である。
【００８４】
Ｓ７７０において、ＣＰＵ２１は処理を図１３のＳ１１０に移行する。Ｓ１１０においては、工具配置ＭＡＧに工具Ｔ１が特定されているので、工具ポットＰを特定する処理を終了して、ＣＰＵ２１は処理を図１１のＳ７８０に移行する。ＣＰＵ２１は、図１５における２番目の工具Ｔ２について１番目の工具Ｔ１と同様の処理を実行する。Ｔ２は、Ｔ１と同様の経路で処理される。３番目の工具Ｔ３は、Ｓ７３０においてＮＯと判断され、４番目の工具Ｔ４についてＣＰＵ２１は以下の処理を実行する。
【００８５】
図１５に示す例では、４番目の工具Ｔ４は、工具使用回数ＴＮが２で１より大きいため（Ｓ７３０でＹＥＳ）、ＣＰＵ２１は、全ての工具組合せＣにおいて、工具Ｔ４を有する組合せがあるか否かを判断する（Ｓ７５０でＹＥＳ、Ｓ７６０）。工具Ｔ４を有する工具組合せＣがあった場合に、ＣＰＵ２１は工具Ｔ４について工具ポットＰの特定処理を行う（Ｓ７６０でＹＥＳ、Ｓ７７０）。図１４に示すように、工具Ｔ４を有する工具組合せＣは５番目である。
【００８６】
Ｓ７７０において、ＣＰＵ２１は処理を図１３のＳ１１０に移行する。Ｓ１１０においては、工具配置ＭＡＧに工具Ｔ４が特定されていないので、５番目の工具組合せＣ＝Ｔ３−Ｔ４において、工具Ｔ３をＴＯとして取得する（Ｓ１１０でＮＯ、Ｓ１２０）。ＣＰＵ２１は、工具Ｔ３が工具配置ＭＡＧに特定されていないが（Ｓ１３０でＮＯ）、工具配置ＭＡＧに特定された工具（既に、Ｔ２，Ｔ５，Ｔ１は特定されている）があるため（Ｓ１５０でＹＥＳ）、工具Ｔ４を、工具配置ＭＡＧの空いている工具ポットＰの内、工具Ｔが特定されている工具ポットに距離が最も近い工具ポットＰ４に特定する（Ｓ１６０）。
【００８７】
ＣＰＵ２１は工具ポットＰへの特定処理を終了すると、処理を図１１のＳ７８０に移行し、５番目の工具Ｔ５について工具ポットＰを特定する。５番目の工具Ｔ５は、Ｔ２同様既に工具ポットが特定されているため、説明を省略する。
【００８８】
次にＣＰＵ２１は、６番目の工具Ｔ６について３番目の工具Ｔ３と同様に判断をして、工具Ｔ６の工具ポットを特定することなく図１１のフローチャートの処理を終了する。
【００８９】
次にＣＰＵ２１は、１回のみ使用する工具Ｔについての工具ポットＰの特定処理を行うため、処理を図１２のＳ８１０に移行する。
【００９０】
ＣＰＵ２１は、カウンタＱが示す１番目の工具の工具使用回数ＴＮが１であるか否かを判断する（Ｓ８２０でＹＥＳ、Ｓ８３０）。図１５に示す例では、１番目の工具Ｔ１は、工具使用回数ＴＮが２である。
【００９１】
ＣＰＵ２１は、１番目の工具Ｔ１の工具使用回数ＴＮが１より大きいため、ＣＰＵ２１は２番目の工具Ｔ２について工具使用回数ＴＮが１より大きいか否かを判断する（Ｓ８２０でＹＥＳ，Ｓ８３０）。図１５に示す例では、２番目の工具Ｔ２、４番目の工具Ｔ４、５番目の工具Ｔ５は、工具使用回数ＴＮが１より大きいため、次の番号の工具について判断される。以下では、工具使用回数ＴＮが１である工具Ｔ３，Ｔ６について説明する。
【００９２】
ＣＰＵ２１は、全ての工具組合せＣにおいて、工具Ｔ３を有する組合せがあるか否かを判断する（Ｓ８５０でＹＥＳ、Ｓ８６０）。工具Ｔ３を有する工具組合せＣがあった場合に、ＣＰＵ２１は工具Ｔ３について工具ポットＰの特定処理を行う（Ｓ８６０でＹＥＳ、Ｓ８７０）。図１４に示すように、工具Ｔ３を有する工具組合せＣは４番目である。
【００９３】
Ｓ８７０において、ＣＰＵ２１は処理を図１３のＳ１１０に移行する。Ｓ１１０においては、工具配置ＭＡＧに工具Ｔ３が特定されていないので、４番目の工具組合せＣ＝「Ｔ２−Ｔ３」において、工具Ｔ２をＴＯとして取得する（Ｓ１１０でＮＯ、Ｓ１２０）。ＣＰＵ２１は、工具ＴＯ＝「Ｔ２」が工具配置ＭＡＧにあるため、工具Ｔ３を工具配置ＭＡＧの工具ＴＯ＝Ｔ２に距離が最も近い空き工具ポットである工具ポットＰ１４に特定する（Ｓ１３０でＹＥＳ、Ｓ１４０）。
【００９４】
ＣＰＵ２１は工具ポットＰへの特定処理を終了すると、処理を図１２のＳ８８０に移行する。ＣＰＵ２１は、工具Ｔ６について、Ｔ３と同様に処理を行う。工具Ｔ６を有する工具組合せＣは、７番目である。７番目の工具組合せＣ＝「Ｔ５−Ｔ６」において、工具Ｔ５をＴＯとして取得する。Ｔ５は、既に工具ポットが特定されているため、ＣＰＵ２１は、工具Ｔ６を工具Ｔ５に距離が最も近い空き工具ポットに特定する。工具Ｔ５に距離が最も近い空き工具ポットは、工具ポットＰ５，Ｐ１３の２つであるが、この場合は、工具配置ＭＡＧの空いている工具ポットＰの内、工具Ｔが特定されている工具ポットに距離が最も近い工具ポットＰ５に特定する。
【００９５】
ＣＰＵ２１は、総使用本数より大きい場合（Ｓ８２０でＮＯ）、ＣＰＵ２１は処理を図９のＳ９０に移行する。
【００９６】
Ｓ９０においては、Ｓ６０〜Ｓ８０の処理で特定した工具配置ＭＡＧを、工具配置表１２０としてディスプレイ１１に表示する。図８に示すように、ＣＰＵ２１は、Ｓ６０〜Ｓ８０の処理で工具ポットＰ１〜Ｐ５，Ｐ１４に特定した工具Ｔを、それぞれ１つずつずらして工具ポットＰ１〜Ｐ６に並べるようにディスプレイ１１に表示している。
【００９７】
尚、Ｓ２０の処理を実行するＣＰＵ２１は本発明の「工具交換指令読込手段」に相当する。Ｓ３０の処理を実行するＣＰＵ２１は本発明の「組合せ回数計数手段」に相当する。Ｓ５０の処理を実行するＣＰＵ２１は本発明の「使用回数計数手段」に相当する。Ｓ６０の処理を実行するＣＰＵ２１は本発明の「第１配置手段」に相当する。Ｓ７０の処理を実行するＣＰＵ２１は本発明の「第２配置手段」に相当する。Ｓ８０の処理を実行するＣＰＵ２１は本発明の「第３配置手段」に相当する。Ｓ７６０，Ｓ７７０の処理を実行するＣＰＵ２１は本発明の「第１検出手段」に相当する。Ｓ８６０，Ｓ８７０の処理を実行するＣＰＵ２１は本発明の「第２検出手段」に相当する。ディスプレイ１１は本発明の「配置情報出力手段」に相当する。
【００９８】
以上説明したように、本実施形態の数値制御装置２０は、工具Ｔの工具使用回数ＴＮが複数回数の工具について、工具配置ＭＡＧに既に特定している工具に最も近い空き工具ポットＰに特定する。数値制御装置２０は、工具組合せＣの組合せ回数ＣＮが複数回数である場合又は工具使用回数ＴＮが複数回数である場合に優先的に隣接する工具ポットＰに工具Ｔを特定する。数値制御装置２０は、工具組合せＣの組合せ回数ＣＮが複数回数である場合又は工具使用回数ＴＮが複数の工具を優先的に隣接する工具ポットＰに特定することで、工具交換時に工具マガジンの切替回数を減らすことができる。従って、数値制御装置２０は、工具交換装置３０における工具交換の時間の短縮を図ることができる。
【００９９】
本発明は上記実施形態に限定されることなく、さまざまな変更が可能である。例えば、上記実施形態において、工具Ｔの使用回数が１より大きいか否かは、使用する工具全てについて判断していた。本発明はこれに限らず、既に工具ポットＰを特定した工具Ｔを除いて判断してもよい。
【０１００】
上記実施形態では、Ｓ４０において工具組合せＣを組合せ回数ＣＮの多い順にソートした。本発明はこれに限らず、組合せ回数ＣＮの多い順にソートせずに工具配置ＭＡＧを算出してもよい。
【０１０１】
上記実施形態では、配置情報出力手段は、ディスプレイ１１であった。本発明はこれに限らず、配置情報出力手段は、工具配置ＭＡＧを印刷することができるプリンタ、又はネットワークを介してファイルに出力してもよい。
【０１０２】
上記実施形態では、本発明の制御プログラムを記憶する記憶媒体は、ＲＯＭ、ＲＡＭ等の素子であった。本発明はこれに限らず、記憶媒体はＣＤ−ＲＯＭ等でもよく、カードスロットへ挿入可能なプログラムカートリッジ等でもよく、インターネット上のファイルサーバでもよい。
【符号の説明】
【０１０３】
１  工作機械
１０  操作パネル
１１  ディスプレイ
１２  キーボード
２０  数値制御装置
２１  ＣＰＵ
２２  ＲＯＭ
２３  ＲＡＭ
２４  不揮発性メモリ
３０  工具交換装置
３１  工具マガジン
Ｐ  工具ポット
Ｔ  工具
【図１】
2012030294.tif 000003
【図２】
2012030294.tif 000004
【図３】
2012030294.tif 000005
【図４】
2012030294.tif 000006
【図５】
2012030294.tif 000007
【図６】
2012030294.tif 000008
【図７】
2012030294.tif 000009
【図８】
2012030294.tif 000010
【図９】
2012030294.tif 000011
【図１０】
2012030294.tif 000012
【図１１】
2012030294.tif 000013
【図１２】
2012030294.tif 000014
【図１３】
2012030294.tif 000015
【図１４】
2012030294.tif 000016
【図１５】
2012030294.tif 000017