(57)【要約】【課題】工具マガジンの切替回数が最小となる工具の配置を確実に算出できる工具配置算出装置、工具配置算出装置の制御プログラムおよび記憶媒体を提供する。【解決手段】数値制御装置のＮＣプログラムで使用される複数の工具についての全ての工具配置について工具ポットの切替回数Ｒを算出する（Ｓ１３〜Ｓ１９）。全ての工具配置について算出された切替回数の中で最も少ない切替回数の工具配置を最適工具配置（Ｓ２１）とする。全ての工具配置の切替回数を算出するので、切替回数が最小となる工具の配置を確実に算出できる。【選択図】図１１
2011152616.tif 000002
【特許請求の範囲】
【請求項１】
工作機械の工具交換装置に回転割り出し可能に設けられ、正転又は反転する略円盤状の工具マガジンの外周に設けられた複数のポットに各々配置される複数の工具の配置を算出する工具配置算出装置であって、
前記工作機械の加工プログラムから工具交換指令を読み込む工具交換指令読込手段と、
当該工具交換指令読込手段によって読み込まれた前記工具交換指令より、前記加工プログラムで使用される使用工具を特定する使用工具特定手段と、
当該使用工具特定手段によって特定された前記使用工具の配置の全ての組合せを算出する配置組合せ算出手段と、
当該配置組合せ算出手段によって算出された各組合せの配置で、前記加工プログラムで指令された順番で前記使用工具を使用した場合に、前記ポットの切り替えに必要な切替回数を、前記組合せ毎に計数する切替回数計数手段と、
当該切替回数計数手段によって前記組合せ毎に計数された複数の前記切替回数の中から、最も少ない切替回数である最小回数を特定する最小回数特定手段と、
当該最小回数特定手段によって特定された前記最小回数に対応する前記組合せの配置の情報である配置情報を出力する配置情報出力手段と
を備えたことを特徴とする工具配置算出装置。
【請求項２】
前記切替回数は、前記加工プログラムで指令される最後の使用工具のポットから最初の使用工具のポットに切り替えるために必要な切替回数を含むことを特徴とする請求項１に記載の工具配置算出装置。
【請求項３】
前記使用工具の予備として使用され、前記使用工具とは別のポットに配置される予備工具を登録する予備工具登録手段を備え、
当該予備工具登録手段によって前記予備工具が登録されている場合、
前記配置組合せ算出手段は、
前記使用工具特定手段によって特定された前記使用工具及び前記予備工具の配置の全ての組合せを算出し、
前記切替回数計数手段は、
前記予備工具を使用しない場合の前記切替回数である第１切替回数と、前記予備工具を前記使用工具の代わりに使用した場合の前記切替回数である第２切替回数とを、前記組合せ毎にそれぞれ計数し、
前記最小回数特定手段は、
前記第１切替回数と前記第２切替回数との和である第１総切替回数を前記組合せ毎に算出する第１総切替回数算出手段を備え、
当該第１総切替回数算出手段によって前記組合せ毎に算出された前記第１総切替回数のうち、最小の回数を特定することを特徴とする請求項１又は２に記載の工具配置算出装置。
【請求項４】
前記工具交換指令読込手段によって、複数の加工プログラムから前記工具交換指令が各々読み込まれた場合、
前記切替回数計数手段は、
前記加工プログラム毎の前記切替回数を前記組合せ毎にそれぞれ計数し、
前記最小回数特定手段は、
前記加工プログラム毎に計数された前記切替回数の和である第２総切替回数を前記組合せ毎に算出する第２総切替回数算出手段を備え、
当該第２総切替回数算出手段によって前記組合せ毎に算出された前記第２総切替回数のうち、最小の回数を特定することを特徴とする請求項１又は２に記載の工具配置算出装置。
【請求項５】
前記使用工具の本数である使用工具本数をＮとした場合、
前記配置組合せ算出手段は、
Ｎ！を算出することによって、前記組合せの数を導出することを特徴とする請求項１乃至４の何れかに記載の工具配置算出装置。
【請求項６】
前記工具マガジンの前記ポットの数と、前記使用工具本数とが同じ場合、
前記配置組合せ算出手段は、
（Ｎ−１）！／２を算出することによって、前記組合せの数を導出することを特徴とする請求項５に記載の工具配置算出装置。
【請求項７】
前記工具マガジンを正転させるか反転させるかを決定する回転方向決定手段を備え、
前記使用工具は、前記工具マガジンの外周に沿って正転方向に配置され、
前記工具マガジンの前記ポットの数をＰとし、使用中の工具のポットから次に使用する工具のポットに切り替えるために必要な切替回数をＫとした場合において、
Ｋ≧（Ｐ／２）＋１となるときは、前記回転方向決定手段は、前記工具マガジンを反転させることを決定することを特徴とする請求項１乃至６の何れかに記載の工具配置算出装置。
【請求項８】
前記工作機械に、ワークを支持する台が回転する回転テーブルが設置されているか否かを判断する回転テーブル設置判断手段と、
当該回転テーブル設置判断手段によって前記回転テーブルが設置されていると判断された場合、
前記切替回数計数手段は、
前記切替回数には、前記加工プログラムで指令される最後の使用工具のポットから最初の使用工具のポットに切り替えるために必要な切替回数を含めないことを特徴とする請求項２に記載の工具配置算出装置。
【請求項９】
工作機械の工具交換装置に設けられ、正転又は反転する略円盤状の工具マガジンの外周に設けられた複数のポットに各々配置される複数の工具の配置を算出する工具配置算出装置を機能させる工具配置算出装置の制御プログラムであって、
前記工作機械の加工プログラムから工具交換指令を読み込む工具交換指令読込ステップと、
当該工具交換指令読込ステップにおいて読み込まれた前記工具交換指令より、前記加工プログラムで使用される使用工具を特定する使用工具特定ステップと、
当該使用工具特定ステップにおいて特定された前記使用工具の配置の全ての組合せを算出する配置組合せ算出ステップと、
当該配置組合せ算出ステップにおいて算出された各組合せの配置で、前記加工プログラムで指令された順番で前記使用工具を使用した場合に、前記ポットの切り替えに必要な切替回数を、前記組合せ毎に計数する切替回数計数ステップと、
当該切替回数計数ステップにおいて前記組合せ毎に計数された複数の前記切替回数の中から、最も少ない切替回数である最小回数を特定する最小回数特定ステップと、
当該最小回数特定ステップにおいて特定された前記最小回数に対応する前記組合せの配置の情報である配置情報を出力する配置情報出力ステップと
を備えたことを特徴とする工具配置算出装置の制御プログラム。
【請求項１０】
請求項９に記載の制御プログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タレット式の工具マガジンにおける工具の配置を算出できる工具配置算出装置、工具配置算出装置の制御プログラムおよび記憶媒体に関する。
【背景技術】
【０００２】
従来、タレット式の工具マガジンを備えた工具交換装置が知られている。この工具交換装置では、ＮＣプログラム中に工具交換指令があると、その指令された工具番号のポット番号に工具マガジンが旋回する。例えば１４本工具の工具マガジンの場合、現在主軸に装着されている現工具がポット１で、次工具がポット８であれば、工具マガジンは７回旋回して位置を切り替える。この切り替える回数（以下、切替回数と呼ぶ）が最小となるように、工具マガジンにおける工具配置を行うことで、工具交換時間を短縮できる。例えば、ＮＣプログラム中に指令される工具交換指令を読み取り、最も多い工具交換の組合せの工具を優先的に隣のポットに並べ、残りの工具はＮＣプログラム中の指令順に並べる方法が提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平５−２６９６３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載の方法では、工具配置の全パターンの全組合せを考慮していないので、プログラム中の工具使用順序によっては、切替回数が最小となる工具配置を算出できない場合が生ずるという問題点があった。
【０００５】
本発明は、上記課題を解決するためになされたものであり、工具マガジンの切替回数が最小となる工具配置を確実に算出できる工具配置算出装置、工具配置算出装置の制御プログラムおよび記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の第１態様に係る工具配置算出装置は、工作機械の工具交換装置に回転割り出し可能に設けられ、正転又は反転する略円盤状の工具マガジンの外周に設けられた複数のポットに各々配置される複数の工具の配置を算出する工具配置算出装置であって、前記工作機械の加工プログラムから工具交換指令を読み込む工具交換指令読込手段と、当該工具交換指令読込手段によって読み込まれた前記工具交換指令より、前記加工プログラムで使用される使用工具を特定する使用工具特定手段と、当該使用工具特定手段によって特定された前記使用工具の配置の全ての組合せを算出する配置組合せ算出手段と、当該配置組合せ算出手段によって算出された各組合せの配置で、前記加工プログラムで指令された順番で前記使用工具を使用した場合に、前記ポットの切り替えに必要な切替回数を、前記組合せ毎に計数する切替回数計数手段と、当該切替回数計数手段によって前記組合せ毎に計数された複数の前記切替回数の中から、最も少ない切替回数である最小回数を特定する最小回数特定手段と、当該最小回数特定手段によって特定された前記最小回数に対応する前記組合せの配置の情報である配置情報を出力する配置情報出力手段とを備えている。
【０００７】
第１態様では、まず、工具交換指令読込手段が、工作機械の加工プログラムから工具交換指令を読み込む。次いで、使用工具特定手段が、工具交換指令読込手段によって読み込まれた工具交換指令より、加工プログラムで使用される使用工具を特定する。さらに、配置組合せ算出手段が、使用工具特定手段によって特定された使用工具の配置の全ての組合せを算出する。次に、切替回数計数手段が、配置組合せ算出手段によって算出された各組合せの配置で、加工プログラムで指令された順番で使用工具を使用した場合に、ポットの切り替えに必要な切替回数を、組合せ毎に計数する。さらに、最小回数特定手段が、切替回数計数手段によって前記組合せ毎に計数された複数の前記切替回数の中から、最も少ない切替回数である最小回数を特定する。そして、配置情報出力手段が、最小回数特定手段によって特定された最小回数に対応する組合せの配置の情報である配置情報を出力する。このように、使用工具の配置の全ての組合せの配置について、ポットの切替回数を組合せ毎にそれぞれ計数し、その中から最小回数を特定しているので、工具マガジンの旋回回数が最小となる工具の配置を確実に算出できる。さらに、その配置に関する配置情報を出力できるので、作業者は出力された配置情報を元に、工具の配置を行うことができる。
【０００８】
また、第１態様において、前記切替回数は、前記加工プログラムで指令される最後の使用工具のポットから最初の使用工具のポットに切り替えるために必要な切替回数を含んでもよい。同じワークを複数切削する場合、同じ切削工程を繰り返し行うが、この場合、加工プログラムを繰り返し実行する。つまり、加工プログラムで指令される最後の使用工具のポットから最初の使用工具のポットに切り替えることが必要となる。そこで、このときの切替回数を考慮することで、同じ切削工程を繰り返し行うケースを想定した場合でも、工具マガジンの旋回回数が最小となる工具の配置を確実に算出できる。
【０００９】
また、第１態様において、前記使用工具の予備として使用され、前記使用工具とは別のポットに配置される予備工具を登録する予備工具登録手段を備え、当該予備工具登録手段によって前記予備工具が登録されている場合、前記配置組合せ算出手段は、前記使用工具特定手段によって特定された前記使用工具及び前記予備工具の配置の全ての組合せを算出し、前記切替回数計数手段は、前記予備工具を使用しない場合の前記切替回数である第１切替回数と、前記予備工具を前記使用工具の代わりに使用した場合の前記切替回数である第２切替回数とを、前記組合せ毎にそれぞれ計数し、前記最小回数特定手段は、前記第１切替回数と前記第２切替回数との和である第１総切替回数を前記組合せ毎に算出する第１総切替回数算出手段を備え、当該第１総切替回数算出手段によって前記組合せ毎に算出された前記第１総切替回数のうち、最小の回数を特定するようにしてもよい。これにより、使用工具に代えて予備工具を途中で使用するケースを想定した場合でも、工具マガジンの旋回回数が最小となる工具の配置を確実に算出できる。
【００１０】
また、第１態様において、前記工具交換指令読込手段によって、複数の加工プログラムから前記工具交換指令が各々読み込まれた場合、前記切替回数計数手段は、前記加工プログラム毎の前記切替回数を前記組合せ毎にそれぞれ計数し、前記最小回数特定手段は、前記加工プログラム毎に計数された前記切替回数の和である第２総切替回数を前記組合せ毎に算出する第２総切替回数算出手段を備え、当該第２総切替回数算出手段によって前記組合せ毎に算出された前記第２総切替回数のうち、最小の回数を特定するようにしてもよい。加工プログラムが複数ある場合、各プログラムによって工具の使用順序が異なっていることが多い。そこで、上記構成とすることで、複数のプログラムを実行するケースを想定した場合でも、工具マガジンの旋回回数が最小となる工具の配置を確実に算出できる。
【００１１】
また、第１態様において、前記使用工具の本数である使用工具本数をＮとした場合、前記配置組合せ算出手段は、Ｎ！を算出することによって、前記組合せの数を導出するようにしてもよい。Ｎ！を算出すれば、前記組合せの数を簡単に導出できるので、組合せ算出の処理を速やかに実行できる。
【００１２】
また、第１態様において、前記工具マガジンの前記ポットの数と、前記使用工具本数とが同じ場合、前記配置組合せ算出手段は、（Ｎ−１）！／２を算出することによって、前記組合せの数を導出するようにしてもよい。これにより、前記組合せの数をさらに簡単に導出できるので、組合せ算出の処理をより速やかに実行できる。なお、「！」は階乗を意味する。
【００１３】
また、第１態様において、前記工具マガジンを正転させるか反転させるかを決定する回転方向決定手段を備え、前記使用工具は、前記工具マガジンの外周に沿って正転方向に配置され、前記工具マガジンの前記ポットの数をＰとし、使用中の工具のポットから次に使用する工具のポットに切り替えるために必要な切替回数をＫとした場合において、Ｋ≧（Ｐ／２）＋１となるときは、前記回転方向決定手段は、前記工具マガジンを反転させることを決定するようにしてもよい。これにより、工具マガジンを正転、又は反転させることによって、現ポットから次のポットに最小の切替回数で切り替えることができる。
【００１４】
また、第１態様において、前記工作機械に、ワークを支持する台が回転する回転テーブルが設置されているか否かを判断する回転テーブル設置判断手段と、当該回転テーブル設置判断手段によって前記回転テーブルが設置されていると判断された場合、前記切替回数計数手段は、前記切替回数には、前記加工プログラムで指令される最後の使用工具のポットから最初の使用工具のポットに切り替えるために必要な切替回数を含めないようにしてもよい。回転テーブルを使用する場合、例えば、一端側に固定されたワークに加工を施している間に、次に加工するワークを他端側に取り付ける等の作業ができる。このような回転テーブルでは、一方のワークの加工が終了した後、回転テーブルが回転している最中に、最初に使用する工具への交換が可能であるので、加工プログラムで指令される最後の使用工具のポットから最初の使用工具のポットに切り替えるために必要な切替回数を含めないようにすることができる。これにより、切替回数計数手段の処理量を減らすことができるので、切替回数を速やかに計数することができる。
【００１５】
本発明の第２態様に係る工具配置算出装置の制御プログラムは、工作機械の工具交換装置に設けられ、正転又は反転する略円盤状の工具マガジンの外周に設けられた複数のポットに各々配置される複数の工具の配置を算出する工具配置算出装置を機能させる工具配置算出装置の制御プログラムであって、前記工作機械の加工プログラムから工具交換指令を読み込む工具交換指令読込ステップと、当該工具交換指令読込ステップにおいて読み込まれた前記工具交換指令より、前記加工プログラムで使用される使用工具を特定する使用工具特定ステップと、当該使用工具特定ステップにおいて特定された前記使用工具の配置の全ての組合せを算出する配置組合せ算出ステップと、当該配置組合せ算出ステップにおいて算出された各組合せの配置で、前記加工プログラムで指令された順番で前記使用工具を使用した場合に、前記ポットの切り替えに必要な切替回数を、前記組合せ毎に計数する切替回数計数ステップと、当該切替回数計数ステップにおいて前記組合せ毎に計数された複数の前記切替回数の中から、最も少ない切替回数である最小回数を特定する最小回数特定ステップと、当該最小回数特定ステップにおいて特定された前記最小回数に対応する前記組合せの配置の情報である配置情報を出力する配置情報出力ステップとを備えている。
【００１６】
第２態様では、まず、工具交換指令読込ステップにおいて、工作機械の加工プログラムから工具交換指令を読み込む。次いで、使用工具特定ステップにおいて、工具交換指令読込ステップにて読み込まれた工具交換指令より、加工プログラムで使用される使用工具を特定する。さらに、配置組合せ算出ステップにおいて、使用工具特定ステップにて特定された使用工具の配置の全ての組合せを算出する。次に、切替回数計数ステップにおいて、配置組合せ算出ステップにて算出された各組合せの配置で、加工プログラムで指令された順番で使用工具を使用した場合に、ポットの切り替えに必要な切替回数を、組合せ毎に計数する。さらに、最小回数特定ステップにおいて、切替回数計数ステップにて前記組合せ毎に計数された複数の前記切替回数の中から、最も少ない切替回数である最小回数を特定する。そして、配置情報出力ステップにおいて、最小回数特定ステップにて特定された最小回数に対応する組合せの配置の情報である配置情報を出力する。このように、使用工具の配置の全ての組合せの配置について、ポットの切替回数を組合せ毎にそれぞれ計数し、その中から最小回数を特定しているので、工具マガジンの旋回回数が最小となる工具の配置を確実に算出できる。さらに、その配置に関する配置情報を出力できるので、作業者は出力された配置情報を元に、工具の配置を行うことができる。
【００１７】
本発明の第３態様に係る記憶媒体は、請求項９に記載の制御プログラムを記憶したコンピュータ読み取り可能な記憶媒体である。
【００１８】
第３態様は、請求項９に記載の制御プログラムを記憶しているので、請求項９に記載の効果を得ることができる。
【図面の簡単な説明】
【００１９】
【図１】工作機械１の正面図である。
【図２】スプラッシュカバーを取り外した工作機械１の斜視図である。
【図３】工具マガジン３１の工具配置の一例を示した図である。
【図４】ディスプレイ１１にＮＣプログラムが表示された状態を示す図である。
【図５】ディスプレイ１１に工具配置表１２０が表示された状態を示す図である。
【図６】数値制御装置２０の電気的構成を示すブロック図である。
【図７】ＲＡＭ２３の各記憶領域を示す概念図である。
【図８】フラッシュメモリ２４の各記憶領域を示す概念図である。
【図９】ポット切替テーブル２４２１の概念図である。
【図１０】ＣＰＵ２１によるメイン処理のフローチャートである。
【図１１】ＣＰＵ２１による工具配置算出処理のフローチャートである。
【図１２】工具配置Ｑの全組合わせを示した図である。
【図１３】工具マガジン３１の工具配置の一例を示した図（第２実施形態）である。
【図１４】ディスプレイ１１にＮＣプログラムが表示された状態を示す図（第２実施形態）である。
【図１５】フラッシュメモリ１２４の各記憶領域を示した概念図である。
【図１６】ポット切替テーブル２５２１の概念図である。
【図１７】予備工具テーブル２４３１の概念図である。
【図１８】ＮＣプログラム１，２を示した図である。
【図１９】工作機械９０の斜視図である。
【図２０】フラッシュメモリ２２４の各記憶領域を示した概念図である。
【図２１】ＣＰＵによる工具配置算出処理のフローチャート（第４実施形態）である。
【発明を実施するための形態】
【００２０】
以下、本発明の第１実施形態である数値制御装置２０（図６参照）について、図面を参照して説明する。数値制御装置２０は、図１，図２に示す工作機械１の動作を制御するものである。工作機械１は、ワークと工具Ｔとを相対移動させることで、ワークに所望の切削加工を施すための機械である。なお、数値制御装置２０は、本発明の「工具配置算出装置」に相当する。
【００２１】
工作機械１の構造について簡単に説明する。図１に示すように、工作機械１は、鉄製のベース２と、該ベース２の上部に設けられ、ワークに切削加工を施す機械本体３（図２参照）と、ベース２の上部に固定され、機械本体３の周囲を取り囲むスプラッシュカバー４とを備えている。スプラッシュカバー４の正面には長方形状の開口５が設けられ、該開口５にはスライド式の開閉扉６が設けられている。開口５の右側には、工作機械１を操作するための操作パネル１０が設けられている。操作パネル１０の上部には、各種設定画面、操作画面等が表示されるディスプレイ１１が設けられている。操作パネル１０の下部には、各種操作キーを備えたキーボード１２が設けられている。
【００２２】
図２に示すように、機械本体３は、ベース２の上部後方に立設したコラム１５と、該コラム１５に沿って昇降可能に設けられた主軸ヘッド１６と、該主軸ヘッド１６の下部に回転可能に支持された主軸１７と、ベース２の上部中央に設置され、ＸＹ軸方向に移動可能に支持されたテーブル１９とを備えている。主軸ヘッド１６は、Ｚ軸モータ５３（図６参照）の駆動によって、Ｚ軸方向に移動される。主軸１７は、主軸モータ５４（図６参照）の駆動によって回転される。テーブル１９は、Ｘ軸モータ５１（図６参照）、Ｙ軸モータ５２（図６参照）、ガイド機構（図示省略）によって、ＸＹ軸方向に移動される。なお、Ｘ軸方向は、図１の左右方向であり、Ｙ軸方向は、図１の表面背面方向であり、Ｚ軸方向は、図１の上下方向である。
【００２３】
主軸ヘッド１６の前側には、主軸１７に装着された工具Ｔを自動的に交換できるタレット式の工具交換装置３０が設けられている。コラム１５の背面側には制御ボックス１８が設けられている。制御ボックス１８の内側には、工作機械１の動作を制御する数値制御装置２０（図６参照）が格納されている。
【００２４】
工具交換装置３０の構造について説明する。図２に示すように、工具交換装置３０は、円盤状の工具マガジン３１と、該工具マガジン３１を旋回駆動するマガジンモータ５５（図６参照）とを備えている。工具マガジン３１の外周縁部には、工具Ｔを着脱可能な１４個の工具ポットＰ１〜Ｐ１４（図３参照）が周方向（正面視時計回り）に列設されている。そして、工具マガジン３１の最下部に位置する工具ポットＰ８の位置が、主軸１７（図２参照）との間で工具交換が行われる工具交換位置である。
【００２５】
工具マガジン３１は、図３に示すように、マガジンモータ５５（図６参照）の駆動によって軸周りに旋回し、正転（正面視時計回り）、反転（正面視反時計回り）が可能である。マガジンモータ５５は、数値制御装置２０のＣＰＵ２１（図６参照）によって制御される。例えば、ＮＣプログラム中に工具交換指令のコマンドがあった場合、ＣＰＵ２１によって、その工具交換指令の対象の工具Ｔが装着されている工具ポットＰの位置が割り出される。そして、工具マガジン３１が旋回されることで、その工具Ｔが工具交換位置に搬送され、主軸１７に装着されている工具Ｔと交換される。
【００２６】
なお、本実施例では、工具マガジン３１の工具ポットＰの位置を、隣の工具ポットＰの位置に切り替える回数（以下、「切替回数」という）を「１回」として説明する。例えば、図３において、工具ポットＰ１に装着されている工具Ｔ１を、工具ポットＰ２，Ｐ３を挟んで隣に位置する工具ポットＰ４に装着されている工具Ｔ９に切り替えるために必要な切替回数は「３回」である。
【００２７】
また、工具マガジン３１において、工具ポットＰ１〜Ｐ１４の全てに工具Ｔを装着してもよいが、全ポット数に比べて工具数が少ない場合は、空の工具ポットＰを設けてもよい。なお、工具ポットＰの切替回数を少なくするために、工具Ｔと工具Ｔとの間は詰めた方が好ましい。図３に示す例では、工具ポットＰ１に工具Ｔ１が装着され、工具ポットＰ２に工具Ｔ５が装着され、工具ポットＰ３に工具Ｔ８が装着され、工具ポットＰ４に工具Ｔ９が装着されている。工具ポットＰ５〜Ｐ１４には工具Ｔが装着されていない。なお、本実施例では、工具Ｔを時計回りに配置しているが、反時計周りに配置してもよい。
【００２８】
次に、工具マガジン３１の工具配置について説明する。数値制御装置２０は、工具マガジン３１における工具配置について、ＮＣプログラムを実行する際に、工具ポットＰの切替回数を最も少なくできる最適な工具配置を確実に算出できる機能を備えている。工具ポットＰの切替回数が少なければ少ないほど、工具交換装置３０の工具交換にかかる時間を短縮できる。
【００２９】
最適な工具配置を算出する際の操作パネル１０の操作方法について説明する。例えば、図１に示す操作パネル１０のキーボード１２を操作すると、図４に示すように、ディスプレイ１１に、これから実行するＮＣプログラムが表示される。図４に示すＮＣプログラムの例では、ワークの切削加工中に、工具Ｔ１→工具Ｔ５→工具Ｔ８→工具Ｔ１→工具Ｔ５→工具Ｔ８→工具Ｔ９の順に工具交換が実行される。そして、ディスプレイ１１の左隅に表示されている工具配置計算ボタン１１０がユーザによって選択されると、数値制御装置２０によって、工具ポットＰの切替回数を最も少なくできる最適な工具配置が算出される。そして、図５に示すように、ディスプレイ１１には、工具配置の算出結果を示す工具配置表１２０が表示される。
【００３０】
工具配置表１２０について説明する。図５に示すように、工具配置表１２０には、ポット番号欄１２１に対して工具番号欄１２２が設けられている。ポット番号欄１２１には、Ｐ１〜Ｐ１４の工具ポットＰのポット番号が表示される。工具番号欄１２２には、数値制御装置２０によって算出された最適な工具配置に基づき、配置すべき工具Ｔの工具番号が表示される。空の工具ポットＰには、「−」が表示される。ユーザは、ディスプレイ１１に表示された工具配置表１２０に従って、工具マガジン３１の各工具ポットＰ１〜１４に工具Ｔをそれぞれ装着する。これにより、ＮＣプログラムを実行する際に、工具Ｔの切替回数が最も少なくなるので、工具交換にかかる時間を効果的に短縮できる。
【００３１】
次に、数値制御装置２０の電気的構成について、図６を参照して説明する。数値制御装置２０は、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３及びフラッシュメモリ２４からなるマイクロコンピュータと、入力インタフェイス２５と、入出力インタフェイス２６とを備えている。入力インタフェイス２５には、操作パネル１０のキーボード１２が電気的に接続されている。キーボード１２は、軸移動キーを備えている。軸移動キーは、テーブル１９（図２参照）をＸ軸の＋方向、−方向に移動させるためのキー、テーブル１９をＹ軸の＋方向、−方向に移動させるためのキー、主軸ヘッド１６をＺ軸の＋方向、−方向に移動させるためのキーである。
【００３２】
一方、入出力インタフェイス２６には、Ｘ軸モータ５１を駆動させる駆動回路４１と、Ｙ軸モータ５２を駆動させる駆動回路４２と、Ｚ軸モータ５３を駆動させる駆動回路４３と、主軸モータ５４を駆動させる駆動回路４４と、マガジンモータ５５を駆動させるための駆動回路４５と、操作パネル１０のディスプレイ１１を駆動させるための駆動回路４６等が電気的に接続されている。Ｘ軸モータ５１及びＹ軸モータ５２は、テーブル１９をＸ軸方向及びＹ軸方向に移動させるものである。Ｚ軸モータ５３は、主軸ヘッド１６をＺ軸方向に移動させるものである。
【００３３】
Ｘ軸モータ５１、Ｙ軸モータ５２、Ｚ軸モータ５３、主軸モータ５４、マガジンモータ５５には、それぞれモータの位置を検出するエンコーダ（図示省略）を設けている。各エンコーダは、各駆動回路４１、４２、４３、４４、４５に接続されている。
【００３４】
次に、ＲＡＭ２３の各種記憶エリアについて、図７を参照して説明する。ＲＡＭ２３には、工具番号記憶エリア２３１と、使用工具本数記憶エリア２３２と、最適工具配置記憶エリア２３３と、最適切替回数記憶エリア２３４と、計算回数記憶エリア２３５等が少なくとも設けられている。
【００３５】
工具番号記憶エリア２３１には、ＮＣプログラムから読み込まれた工具交換指令の対象である使用工具の工具番号が記憶される。使用工具本数記憶エリア２３２には、ＮＣプログラムで使用される工具Ｔの本数（以下、使用工具本数Ｎ）が記憶される。最適工具配置記憶エリア２３３には、工具マガジン３１における工具Ｔの最適な工具配置（以下、最適工具配置Ｑｏｐｔと呼ぶ）が記憶される。最適切替回数記憶エリア２３４には、最も少ない切替回数（以下、最適切替回数Ｒｏｐｔという）が記憶される。計算回数記憶エリア２３５には、工具Ｔの配置に関する組合せ毎に切替回数を計算した回数（以下、計算回数Ｓという）が記憶される。
【００３６】
次に、フラッシュメモリ２４の各種記憶エリアについて、図８を参照して説明する。フラッシュメモリ２４には、ＮＣプログラム記憶エリア２４１と、ポット切替テーブル記憶エリア２４２等が少なくとも設けられている。ＮＣプログラム記憶エリア２４１には、加工プログラムとしてＮＣプログラムが記憶される。ポット切替テーブル記憶エリア２４２には、ポット切替テーブル２４２１（図９参照）が記憶されている。
【００３７】
次に、ポット切替テーブル２４２１について、図９を参照して説明する。ポット切替テーブル２４２１は、ＣＰＵ２１が後述する「工具配置算出処理」を実行する際に、使用工具の組合せからなる全ての工具配置について、ＮＣプログラムを実行する際に必要な切替回数Ｒを算出するために用いられる。ポット切替テーブル２４２１には、工具切替欄７１と、ポット切替欄７２と、切替回数欄７３とがそれぞれ対応して設けられている。さらに、切替回数欄７３に記憶された切替回数の合計を記憶する合計欄７４が設けられている。
【００３８】
工具切替欄７１には、ＮＣプログラムにおいて工具Ｔの使用順に、工具Ｔを切り替える各工程が各々記憶される。ポット切替欄７２には、工具切替欄７１に記憶された工具Ｔの各切替工程を、工具ポットＰの番号に対応させたものである。切替回数欄７３には、工具ポットＰの切り替えに必要な切替回数が記憶される。なお、使用例については後述する。
【００３９】
次に、ＮＣプログラムに基づくＣＰＵ２１のメイン処理について、図１０のフローチャートを参照して説明する。まず、フラッシュメモリ２４のＮＣプログラム記憶エリア２４１に記憶されたＮＣプログラムが読み出され、１ブロック解釈される（Ｓ１）。そして、解釈された１ブロックが工具交換指令であるか否かが判断される（Ｓ２）。工具交換指令でなければ（Ｓ２：ＮＯ）、その１ブロックで解釈された動作指令に基づき、指定の動作が実行される（Ｓ６）。
【００４０】
一方、解釈された１ブロックが工具交換指令であった場合（Ｓ２：ＹＥＳ）、工具交換指令の対象である次の工具Ｔを工具交換位置まで移動させるために必要な切替回数ｒが、所定値Ｋ以上であるか否かが判断される（Ｓ３）。なお、所定値Ｋは、（工具ポット数／２）＋１で表される値である。切替回数ｒは、工具マガジン３１を正転方向に旋回した場合の切替回数である。本実施例では、工具ポット数は１４であるので、所定値Ｋ＝８である。従って、切替回数ｒが８以上であるか否かが判断される。
【００４１】
例えば、図３に示すように、工具ポットＰ１２に装着された工具Ｔを、工具交換位置（現在の工具ポットＰ８の位置）に移動させる場合、切替回数ｒは１０回であるから８よりも大きい。この場合（Ｓ３：ＹＥＳ）、工具マガジン３１を正転させるよりも反転させた方が切替回数が少なくて済むので、反転方向に工具マガジン３１が旋回され（Ｓ５）、工具Ｔが工具交換位置に速やかに移動される。また、切替回数ｒが８未満であった場合（Ｓ３：ＮＯ）、工具マガジン３１を反転させるよりも正転させた方が切替回数が少なくて済むので、正転方向に工具マガジン３１が旋回され（Ｓ４）、工具Ｔが工具交換位置に速やかに移動される。
【００４２】
次いで、次ブロックに移行し、プログラムエンド（Ｍ３０）であるか否かが判断される（Ｓ７）。プログラムエンドであれば（Ｓ７：ＹＥＳ）、処理を終了する。プログラムエンドでなければ（Ｓ７：ＮＯ）、Ｓ１に戻って、引き続き次の１ブロックが解釈され、処理が繰り返される。
【００４３】
次に、ＣＰＵ２１による工具配置算出処理について、図１１のフローチャートを参照して説明する。ここでは一例として、以下の条件を有するＮＣプログラムで、最適工具配置Ｑｏｐｔを算出する場合について説明する。本処理は、図６に示すディスプレイ１１の左隅に表示された工具配置計算ボタン１１０が選択されると、ＲＯＭ２２に記憶された工具配置算出プログラム（本発明の「制御プログラム」に相当）が読み込まれて実行される。
・使用工具本数Ｎ＝４本
・使用工具番号＝Ｔ１，Ｔ５，Ｔ８，Ｔ９
・ＮＣプログラム中における工具Ｔの使用順＝「Ｔ１→Ｔ５→Ｔ８→Ｔ１→Ｔ５→Ｔ８→Ｔ９」
【００４４】
フラッシュメモリ２４のＮＣプログラム記憶エリア２４１（図８参照）に記憶されているＮＣプログラム中の工具交換指令が読み込まれる（Ｓ１０）。そして、工具交換指令の読み込みにより、ＮＣプログラム中の使用工具の工具番号が、ＲＡＭ２３の工具番号記憶エリア２３１（図７参照）に記憶される（Ｓ１１）。さらに、読み込まれた工具交換指令に基づき、使用工具本数Ｎが記憶される（Ｓ１２）。本実施例では、使用工具本数Ｎ＝４本であるので、ＲＡＭ２３の使用工具本数記憶エリア２３２（図７参照）に「４」が記憶される。
【００４５】
工具番号記憶エリア２３１に記憶された工具番号について、ＮＣプログラムの使用順に工具配置Ｑが生成される（Ｓ１３）。本実施例では、上記した使用順に基づき、工具配置Ｑ＝「Ｔ１，Ｔ５，Ｔ８，Ｔ９」が最初に生成される。
【００４６】
次に、生成された工具配置Ｑに基づき、ＮＣプログラムが実行される際の工具ポットＰの切替回数Ｒが算出される（Ｓ１４）。工具配置Ｑ＝「Ｔ１，Ｔ５，Ｔ８，Ｔ９」の場合、図３に示すように、工具Ｔ１は工具ポットＰ１に、工具Ｔ５は工具ポットＰ２に、工具Ｔ８は工具ポットＰ３に、工具Ｔ９は工具ポットＰ４に装着されることになる。
【００４７】
この工具配置Ｑにおいて、ＮＣプログラムの使用順で工具交換する場合、「Ｔ１→Ｔ５」「Ｔ５→Ｔ８」「Ｔ８→Ｔ１」「Ｔ１→Ｔ５」「Ｔ５→Ｔ８」「Ｔ８→Ｔ９」の６つの切替工程が必要となる。さらに、複数のワークについて同じ切削加工を施す場合、同じＮＣプログラムが繰り返し実行されるので、最後に使用される工具Ｔ９から最初の工具Ｔ１に切り替えるために必要な切替回数（以下、補助切替回数と呼ぶ）を考慮する。従って、上記した６つの工程に「Ｔ９→Ｔ１」の工程を加えた７つの切替工程について、切替回数を算出する必要がある。
【００４８】
これらの各切替工程が、フラッシュメモリ２４に記憶されたポット切替テーブル２４２１（図９参照）の工具切替欄７１に各々記憶される。さらに、各切替工程の工具番号がポット番号に変換され、工具ポットＰの切替工程として、ポット切替欄７２に記憶される。そして、工具ポットＰの各切替工程につき、切替回数が算出される。各切替工程毎に算出された切替回数は、ポット切替テーブル２４２１（図９参照）の切替回数欄７３に各々記憶される。さらに、合計の切替回数Ｒが算出され、合計欄７４に記憶される。本実施例では１０回である。こうして、工具配置Ｑの切替回数Ｒが算出される。
【００４９】
次いで、ここで生成された工具配置Ｑが現時点での最適工具配置Ｑｏｐｔとして、ＲＡＭ２３の最適工具配置記憶エリア２３３（図７参照）に記憶され、算出された切替回数Ｒが現時点での最適切替回数ＲｏｐｔとしてＲＡＭ２３の最適切替回数記憶エリア２３４（図７参照）に記憶され、ＲＡＭ２３の計算回数記憶エリア２３５（図７参照）に計算回数Ｓ＝１が記憶される（Ｓ１５）。
【００５０】
次に、ＲＡＭ２３の計算回数記憶エリア２３５に記憶された計算回数Ｓの値がＮ！（Ｎの階乗）と異なるか否かが判断される（Ｓ１６）。Ｎ！は、使用工具本数Ｎにおける全組合せの数に相当する。本実施例での使用工具本数Ｎは４本であるので、工具配置の組合せは、図１２に示すように、２４通りの組合せがある。つまり、「Ｔ１，Ｔ５，Ｔ８，Ｔ９」については、２４通りの工具配置Ｑがある。なお、図１２では、「Ｔ」の文字は省略している。本処理では、考えられる全ての組合せを考慮するので、後述するように、計算回数が２４回になるまで各組合せの工具配置Ｑについて切替回数Ｒの算出が繰り返される。
【００５１】
計算回数Ｓの値がＮ！と異なる場合（Ｓ１６：ＹＥＳ）、計算回数Ｓに１が加算され、ＲＡＭ２３の計算回数記憶エリア２３５に記憶され（Ｓ１７）、次の工具配置Ｑが生成される（Ｓ１８）。本実施例でいえば、前回は「Ｔ１，Ｔ５，Ｔ８，Ｔ９」について算出されたので、次に「Ｔ１，Ｔ５，Ｔ９，Ｔ８」の工具配置Ｑが新たに生成される。
【００５２】
新たに生成された工具配置Ｑについて、上述した前回の方法と同様に、切替回数Ｒが算出される（Ｓ１９）。次いで、算出された切替回数Ｒが、ＲＡＭ２３の最適切替回数記憶エリア２３４に記憶された最適切替回数Ｒｏｐｔよりも少ないか否かが判断される（Ｓ２０）。最適切替回数Ｒｏｐｔよりも多い場合（Ｓ２０：ＮＯ）、今回算出された切替回数Ｒでは、工具交換する際に時間がかかってしまう。この場合、ＲＡＭ２３に記憶されている最適工具配置Ｑｏｐｔ、最適切替回数Ｒｏｐｔを変更せず、Ｓ１６に戻り、計算回数ＳがＮ！（本実施例では２４）でないか否かが判断される。２４通りに到達していない場合は（Ｓ１６：ＹＥＳ）、上記したＳ１７〜Ｓ２０の処理が繰り返される。
【００５３】
Ｓ２０において、算出された切替回数Ｒが、ＲＡＭ２３の最適切替回数記憶エリア２３４（図７参照）に記憶されている最適切替回数Ｒｏｐｔよりも少ない場合（Ｓ２０：ＹＥＳ）、新たに生成された工具配置Ｑが最適工具配置Ｑｏｐｔとして、ＲＡＭ２３の最適工具配置記憶エリア２３３に記憶され、算出された切替回数Ｒが新たな最適切替回数Ｒｏｐｔとして、ＲＡＭ２３の最適切替回数記憶エリア２３４に記憶される（Ｓ２１）。その後、Ｓ１６に戻り、計算回数ＳがＮ！と異なる場合は（Ｓ１６：ＹＥＳ）、上記したＳ１７〜Ｓ２１の処理が繰り返される。
【００５４】
計算回数ＳがＮ！に到達した場合は（Ｓ１６：ＮＯ）、ＲＡＭ２３の最適工具配置記憶エリア２３３に記憶された最適工具配置Ｑｏｐｔと、最適切替回数Ｒｏｐｔとに基づき、図５に示すように、ディスプレイ１１に、工具配置表１２０が表示される（Ｓ２２）。例えば、ＲＡＭ２３の最適工具配置記憶エリア２３３に記憶された最適工具配置Ｑｏｐｔが「Ｔ１、Ｔ５、Ｔ８、Ｔ９」であった場合、ポット番号欄１２１のＰ１〜Ｐ４に対応させて、工具番号欄１２２に「Ｔ１」「Ｔ５」「Ｔ８」「Ｔ９」が表示される。
【００５５】
工具配置表１２０の下方には、最適切替回数Ｒｏｐｔである「１０回」が表示される。こうして、ＣＰＵ２１による工具配置算出処理が終了する。ユーザは、この工具配置表１２０の最適工具配置Ｑｏｐｔに従って、図２，図３に示す工具マガジン３１に工具Ｔを装着する。これにより、ＮＣプログラムを実行する際に、工具交換にかかる時間を効果的に短縮できる。
【００５６】
なお、以上説明において、図１１のフローチャートに示すＳ１０の処理を実行するＣＰＵ２１が本発明の「工具交換指令読込手段」に相当し、Ｓ１１の処理を実行するＣＰＵ２１が本発明の「使用工具特定手段」に相当し、Ｓ１３，Ｓ１８の処理を実行するＣＰＵ２１が本発明の「配置組合せ算出手段」に相当し、Ｓ１４，Ｓ１９の処理を実行するＣＰＵ２１が本発明の「切替回数計数手段」に相当し、Ｓ２０，Ｓ２１の処理を実行するＣＰＵ２１が本発明の「最小回数特定手段」に相当し、Ｓ２２の処理を実行するＣＰＵ２１が本発明の「配置情報出力手段」に相当する。また、図１０のフローチャートのＳ３、Ｓ４、Ｓ５の処理を実行するＣＰＵ２１が本発明の「回転方向決定手段」に相当する。また、図６に示すＲＯＭ２２が本発明の「記憶媒体」に相当する。なお、本発明の制御プログラムは、フラッシュメモリ２４等の他の記憶媒体に記憶させてもよい。
【００５７】
以上説明したように、第１実施形態の数値制御装置２０では、工具交換装置３０の工具マガジン３１における工具配置について、ＮＣプログラムを実行する際に、工具ポットＰの切替回数が最も少ない最適な工具配置Ｑｏｐｔを算出できる。具体的には、ＣＰＵ２１によって、ＮＣプログラム中に使用される複数の工具Ｔについての組合せからなる全ての工具配置について、工具ポットＰの切替回数が算出される。
【００５８】
全ての工具配置について算出された切替回数の中で最も少ない切替回数Ｒｏｐｔであった工具配置が最適工具配置Ｑｏｐｔとされる。最適工具配置Ｑｏｐtは、ディスプレイ１１に工具配置表１２０として表示される。ユーザは、ディスプレイ１１に表示された工具配置表１２０に従って、工具マガジン３１の各工具ポットＰ１〜１４に工具Ｔをそれぞれ装着する。これにより、ＮＣプログラムを実行する際に、工具Ｔの切替回数が最も少なくなるので、工具交換にかかる時間を効果的に短縮できる。
【００５９】
次に、本発明の第２実施形態である数値制御装置について、図１３乃至図１６を参照して説明する。第２実施形態では、工具Ｔの工具寿命が無くなった場合に代わりに使用される予備工具を考慮した最適工具配置Ｑｏｐｔを算出できる。なお、第２実施形態は、第１実施形態の変形例であり、第１実施形態で説明した数値制御装置２０の構成、制御方法と同様であるので、異なる部分を中心に説明する。同じ構成部分については、第１実施形態と同符号を付して説明する。
【００６０】
図１３に示すように、予備工具は、他の使用工具と同様に、工具マガジン３１の工具ポットＰに装着される。本実施例では、工具ポットＰ５に、工具Ｔ１の予備である予備工具Ｔ１０が装着されている。
【００６１】
次に、予備工具を登録した場合のＮＣプログラムについて説明する。図１４に示すＮＣプログラムは、図３に示したＮＣプログラムに対応するものである。「Ｔ９０１」は、後述する予備工具を使用することを示している。
【００６２】
次に、フラッシュメモリ１２４について、図１５を参照して説明する。フラッシュメモリ１２４は、ＮＣプログラム記憶エリア２４１と、ポット切替テーブル記憶エリア２４２と、予備工具テーブル記憶エリア２４３等が少なくとも設けられている。ポット切替テーブル記憶エリア２４２には、予備工具を考慮したポット切替テーブル２５２１（図１６参照）が記憶されている。予備工具テーブル記憶エリア２４３には、予備工具テーブル２４３１（図１７参照）が記憶されている。
【００６３】
ポット切替テーブル２５２１について、図１６を参照して説明する。ポット切替テーブル２５２１には、予備工具未使用時テーブル部８１と、予備工具使用時テーブル部８２とが各々設けられている。予備工具未使用時テーブル部８１は、第１実施形態のポット切替テーブル２４２１と同じであり、切替回数の合計を合計（Ａ）欄７４１に記憶している。予備工具使用時テーブル部８２は、予備工具を使用した場合の第１実施形態のポット切替テーブル２４２１と同じものである。切替回数の合計を合計（Ｂ）欄７４２に記憶している。総合計欄７５は、合計（Ａ）欄７４１に記憶した合計と合計（Ｂ）欄７４２に記憶した合計とを加算した合計値を記憶している。
【００６４】
本実施例の場合、予備工具未使用時の切替回数が１０回、予備工具使用時の切替回数が１２回であるので、総合計は２２回となり、総合計欄７５には「２２」が記憶される。なお、予備工具が予備工具テーブル記憶エリア２４３に登録されていない場合は、予備工具未使用時テーブル部８１のみが使用される。
【００６５】
次に、予備工具テーブル２４３１について、図１７を参照して説明する。予備工具テーブル２４３１には、使用工具Ｔと、その代わりに使用される予備工具Ｔとが対応して記憶されている。本実施例では、使用工具Ｔ１と、その使用工具Ｔ１の工具寿命が無くなった場合に使用される予備工具Ｔ１０が記憶されている。予備工具を登録しない場合は、予備工具テーブル２４３１には何も記憶されない。工具Ｔの工具寿命は、フラッシュメモリ２４に工具Ｔ毎に各々記憶されている。各工具Ｔの使用によって、工具寿命が無くなった場合に、使用工具から予備工具に自動的に切り替わるようになっている。なお、予備工具テーブル２４３１が本発明の「予備工具登録手段」に相当する。
【００６６】
次に、第２実施形態のＣＰＵによって実行される工具配置算出処理について説明する。第２実施形態で実行される工具配置算出処理は、第１実施形態で説明した図１１のフローチャートとほぼ同様であるが、予備工具が登録された場合は、Ｓ１１、Ｓ１２、Ｓ１３、１４，１８，１９においての処理が異なる。図１０のフローチャートを参照して、予備工具が使用された場合のＳ１１、Ｓ１２、Ｓ１３、１４の処理について説明する。なお、Ｓ１８、１９は、Ｓ１３，Ｓ１４と同じ処理のため説明は省略する。本処理は、図１４に示すディスプレイ１１の左隅に表示された工具配置計算ボタン１１０が選択されると開始する。
【００６７】
なお、ここでは一例として、以下の条件を有するＮＣプログラムで、最適工具配置Ｑｏｐｔを算出する場合について説明する。
・使用工具本数Ｎ＝５本
・使用工具番号（予備工具未使用時）＝Ｔ１，Ｔ５，Ｔ８，Ｔ９
・使用工具番号（予備工具使用時）  ＝Ｔ１０，Ｔ５，Ｔ８，Ｔ９
・ＮＣプログラム中における工具Ｔの使用順（予備工具未使用時）＝「Ｔ１→Ｔ５→Ｔ８→Ｔ１→Ｔ５→Ｔ８→Ｔ９」
・ＮＣプログラム中における工具Ｔの使用順（予備工具使用時）＝「Ｔ１０→Ｔ５→Ｔ８→Ｔ１０→Ｔ５→Ｔ８→Ｔ９」
【００６８】
図１１に示すように、フラッシュメモリ２４のＮＣプログラム記憶エリア２４１（図８参照）に記憶されているＮＣプログラムが読み込まれ、ＮＣプログラム中の工具交換指令が読み込まれる（Ｓ１０）。工具交換指令の読み込みにより、ＮＣプログラム中の使用工具の工具番号が、ＲＡＭ２３の工具番号記憶エリア２３１（図７参照）に記憶される（Ｓ１１）。ここで、工具交換指令において「Ｍ０６  Ｔ９０１」があった場合は、フラッシュメモリ１２４に記憶された予備工具テーブル２４３１に記憶された予備工具の工具番号が読み出され、工具番号記憶エリア２３１に同様に記憶される。
【００６９】
読み込まれた工具交換指令に基づき、使用工具本数Ｎが記憶される（Ｓ１２）。本実施例では、予備工具Ｔが登録されているので、使用工具本数Ｎは、使用工具４本に予備工具１本を加算した５本である。ＲＡＭ２３の使用工具本数記憶エリア２３２（図７参照）には「５」が記憶される。
【００７０】
次いで、工具番号記憶エリア２３１に記憶された工具番号について、ＮＣプログラムの使用順に工具配置Ｑが生成される（Ｓ１３）。ここで、予備工具テーブル２４３１には予備工具Ｔ１０が登録されているので、上記した使用順に基づき、工具配置Ｑ＝「Ｔ１，Ｔ５，Ｔ８，Ｔ９，Ｔ１０」が最初に生成される。
【００７１】
次に、生成された工具配置Ｑに基づき、ＮＣプログラムが実行される際の工具ポットＰの切替回数Ｒが算出される（Ｓ１４）。工具配置Ｑ＝「Ｔ１，Ｔ５，Ｔ８，Ｔ９，Ｔ１０」の場合、図１３に示すように、工具Ｔ１は工具ポットＰ１に、工具Ｔ５は工具ポットＰ２に、工具Ｔ８は工具ポットＰ３に、工具Ｔ９は工具ポットＰ４に、工具Ｔ１０は工具ポットＰ５に装着されることになる。
【００７２】
この工具配置Ｑについて、第１実施形態と同様に、切替回数Ｒが算出されるのであるが、本実施例では、予備工具Ｔ１０が登録されているので、予備工具未使用時と、予備工具使用時とを合計して切替回数Ｒを算出する。切替回数Ｒを算出する際、ＣＰＵ２１は、フラッシュメモリ１２４に記憶されたポット切替テーブル２５２１を使用する。予備工具Ｔ１０を使用せず、工具Ｔ１を使用した場合の切替工程は、予備工具未使用時テーブル部８１に記憶される。予備工具未使用時の切替回数（本発明の第１切替回数に相当）が算出され、合計（Ａ）欄７４１に記憶される。本実施例では１０回である。
【００７３】
一方、工具Ｔ１の代わりに、工具Ｔ１０を使用した場合の切替工程は、予備工具使用時テーブル部８２に記憶される。予備工具使用時の切替回数（本発明の第２切替回数に相当）が算出され、合計（Ｂ）欄７４２に記憶される。本実施例では予備工具未使用時よりも多い１２回である。これらの総合計（本発明の第１総切替回数に相当）が算出される。本実施例では２２回であるので、総合計欄７５には「２２」が記憶される。この切替回数の総合計が、工具配置Ｑの切替回数Ｒとなる。なお、図１１に示すＳ１４，Ｓ１９において、予備工具未使用時の切替回数と、予備工具使用時の切替回数との総合計を算出するＣＰＵが本発明の「第１総切替回数算出手段」に相当する。
【００７４】
次いで、ここで生成された工具配置Ｑが現時点での最適工具配置Ｑｏｐｔとして、ＲＡＭ２３の最適工具配置記憶エリア２３３（図７参照）に記憶され、算出された切替回数Ｒが現時点での最適切替回数ＲｏｐｔとしてＲＡＭ２３の最適切替回数記憶エリア２３４に記憶され、ＲＡＭ２３の計算回数記憶エリア２３５に計算回数Ｓ＝１が記憶される（Ｓ１５）。以降は、第１実施形態と同様の処理が実行される。つまり、工具配置Ｑの全組合せについて、予備工具を使用しない場合の切替回数と、予備工具を使用した場合の切替回数との合計がそれぞれ算出され、その合計の中で最も少ない切替回数Ｒの工具配置が求められる。この切替回数の合計が最小となる工具配置Ｑが、最適工具配置Ｑｏｐｔとなる。なお、予備工具がフラッシュメモリ１２４の予備工具テーブル２４３１に登録されていない場合は、第１実施形態と同様の処理が実行される。
【００７５】
以上説明したように、第２実施形態の数値制御装置では、第１実施形態の効果に加え、予備工具が登録されている場合において、その予備工具を含めた最適工具配置Ｑｏｐｔを算出できる。ＣＰＵは、工具配置Ｑの全組合せについて、予備工具を使用しない場合の切替回数と、予備工具を使用した場合の切替回数との合計をそれぞれ算出するので、その合計の中で最も少ない切替回数Ｒの工具配置を求めることができる。この切替回数の合計が最小となる工具配置Ｑが最適工具配置Ｑｏｐｔとなるので、予備工具の使用の有無に関わらず、工具交換にかかる時間を効果的に短縮できる。
【００７６】
なお、第２実施形態では、予備工具を使用しない場合の切替回数と、予備工具を使用した場合の切替回数とを合計しただけであるが、例えば、使用工具及び予備工具の工具寿命の比率に応じて、切替回数Ｒにその比率を反映させてもよい。上記実施形態において、工具Ｔ１と工具Ｔ１０の工具寿命比率が２：３である場合、以下の式のように、切替回数Ｒにその比率を反映させてもよい。
・切替回数Ｒ＝（備工具を使用しない場合の切替回数）×２＋（予備工具を使用した場合の切替回数）×３
【００７７】
次に、第３実施形態である数値制御装置について、図１８を参照して説明する。第３実施形態では、複数のＮＣプログラムを実行する場合でも、最適工具配置Ｑｏｐｔを算出できる。なお、第３実施形態は、第１，第２実施形態の変形例であり、第１，第２実施形態で説明した数値制御装置２０の構成、制御方法と同様であるので、異なる部分を中心に説明する。同じ構成部分については、第１，第２実施形態と同符号を付して説明する。
【００７８】
例えば、フラッシュメモリ２４のＮＣプログラム記憶エリア２４１（図８参照）に、図１８に示す２つのＮＣプログラム（ＮＣプログラム１、ＮＣプログラム２）が記憶されている場合を想定する。
・使用工具番号＝Ｔ１，Ｔ５，Ｔ８，Ｔ９（ＮＣプログラム１）
・使用工具番号＝Ｔ１０，Ｔ５，Ｔ８，Ｔ９（ＮＣプログラム２）
・使用工具本数Ｎ＝４本
・ＮＣプログラム１中における工具Ｔの使用順＝「Ｔ１→Ｔ５→Ｔ８→Ｔ１→Ｔ５→Ｔ８→Ｔ９」
・ＮＣプログラム２中における工具Ｔの使用順＝「Ｔ１０→Ｔ５→Ｔ８→Ｔ１０→Ｔ５→Ｔ８→Ｔ９」
【００７９】
このような条件の下で、最適工具配置Ｑｏｐｔを算出する場合、第３実施形態の数値制御装置のＣＰＵ２１は、第２実施形態と同様の処理を実行する。即ち、図１１のフローチャートと同様の処理をＣＰＵ２１が行うことで、複数のＮＣプログラムを実行する場合を考慮した最適工具配置Ｑｏｐｔを求めることができる。第２実施形態では、予備工具を使用しない場合と、予備工具を使用した場合とで、工具配置Ｑの切替回数を算出し、合計を求めて、最も少ない最適工具配置Ｑｏｐｔを求めている。第３実施形態では、ＮＣプログラム１を実行した場合と、ＮＣプログラム２を実行した場合とで、工具配置Ｑの切替回数を算出し、合計を求めて、最も少ない切替回数Ｒｏｐｔである最適工具配置Ｑｏｐｔを求めればよい。
【００８０】
具体的には、第２実施形態のポット切替テーブル２５２１（図１６参照）と同様のテーブルをフラッシュメモリ２４に記憶させればよい。つまり、予備工具未使用時テーブル部８１を、ＮＣプログラム１実行時テーブル部（図示省略）とし、予備工具使用時テーブル部８２を、ＮＣプログラム２実行時テーブル部（図示省略）とする。
【００８１】
そして、図１１のフローチャートのＳ１４，Ｓ１９において以下の処理が実行される。まず、ＮＣプログラム１を実行した場合の切替工程は、ＮＣプログラム１実行時テーブル部に記憶される。ＮＣプログラム１の実行時の切替回数Ｒが算出され、合計（Ａ）欄７４１に記憶される。なお、ＮＣプログラム１実行時テーブル部には、図１６の予備工具未使用時テーブル部８１の記憶内容と同じ値が記憶される。ＮＣプログラム１の切替回数Ｒは１０回である。
【００８２】
一方、ＮＣプログラム２を実行した場合の切替工程は、ＮＣプログラム２実行時テーブル部に記憶される。そして、ＮＣプログラム１の実行時の切替回数Ｒが算出され、合計（Ｂ）欄７４２に記憶される。なお、ＮＣプログラム２実行時テーブル部には、図１６の予備工具使用時テーブル部８２の記憶内容と同じ値が記憶される。ＮＣプログラム２の切替回数Ｒは１２回である。そして、これらの総合計が算出される。本実施例では２２回であるので、総合計欄７５には「２２」が記憶される。この切替回数の総合計が、ＮＣプログラム１，２を考慮した工具配置Ｑの切替回数Ｒとなる。なお、図１１に示すＳ１４，Ｓ１９において、ＮＣプログラム１を実行した場合の切替回数と、ＮＣプログラム２を実行した場合の切替回数との総合計を算出するＣＰＵ２１が本発明の「第２総切替回数算出手段」に相当する。
【００８３】
次いで、ここで生成された工具配置Ｑが現時点での最適工具配置Ｑｏｐｔとして、ＲＡＭ２３の最適工具配置記憶エリア２３３（図７参照）に記憶され、算出された切替回数Ｒが現時点での最適切替回数ＲｏｐｔとしてＲＡＭ２３の最適切替回数記憶エリア２３４に記憶され、ＲＡＭ２３の計算回数記憶エリア２３５に計算回数Ｓ＝１が記憶される（Ｓ１５）。以降は、第１実施形態と同様の処理が実行される。つまり、工具配置Ｑの全組合せについて、ＮＣプログラム１を実行した場合の切替回数と、ＮＣプログラム２を実行した場合の切替回数との合計がそれぞれ算出され、その合計の中で最も少ない切替回数Ｒの工具配置が求められる。この切替回数の合計が最小となる工具配置Ｑが、最適工具配置Ｑｏｐｔとなる。なお、ＮＣプログラムが１つの場合は、第１実施形態と同様の処理が実行される。
【００８４】
以上説明したように、第３実施形態の数値制御装置では、第１実施形態の効果に加え、複数のＮＣプログラムを実行する場合において、それら複数のＮＣプログラムを考慮した最適工具配置Ｑｏｐｔを算出できる。ＮＣプログラム１，２を実行する場合、ＣＰＵ２１は、工具配置Ｑの全組合せについて、ＮＣプログラム１を実行した場合の切替回数と、ＮＣプログラム２を実行した場合の切替回数との合計をそれぞれ算出するので、その合計の中で最も少ない切替回数Ｒの工具配置を求めることができる。この切替回数の合計が最小となる工具配置Ｑが最適工具配置Ｑｏｐｔとなるので、複数のＮＣプログラムを実行する場合でも、工具交換にかかる時間を効果的に短縮できる。
【００８５】
なお、第３実施形態では、ＮＣプログラム１を実行した場合の切替回数と、ＮＣプログラム２を実行した場合の切替回数とを合計しただけであるが、例えば、ＮＣプログラムの運転回数の比率に応じて、切替回数Ｒにその比率を反映させてもよい。上記実施形態において、ＮＣプログラム１とＮＣプログラム２の運転回数比率が２：３である場合、以下の式のように、切替回数Ｒにその比率を反映させてもよい。
・切替回数Ｒ＝（ＮＣプログラム１を実行した場合の切替回数）×２＋（ＮＣプログラム２を実行した場合の切替回数）×３
【００８６】
次に、第４実施形態の数値制御装置について、図１９〜図２１を参照して説明する。第４実施形態の数値制御装置は、図１９に示す工作機械９０に搭載されるものである。工作機械９０は、回転テーブル１９０を備えるものである。図１９に示すように、回転テーブル１９０は、主軸（図示省略）側の加工領域と前室との間を仕切る仕切壁１３０の下側に設けられている。回転テーブル１９０は、ＸＹ軸方向に移動可能に支持されると共に１８０度旋回することができる。
【００８７】
第１実施形態では、上記したように、１つのＮＣプログラムを連続して実行する場合を想定して、工具配置Ｑにおける工具ポットＰの切替回数Ｒが算出について、補助切替回数を考慮した。回転テーブル１９０が設置された工作機械９０では、加工領域側の一端側に固定されたワークの加工終了後、回転テーブル１９０が旋回している間に、次の加工の最初に使用する工具Ｔへの交換が可能である。
【００８８】
第４実施形態の数値制御装置は、工作機械９０に回転テーブル１９０が設置されている場合は、補助切替回数を切替回数Ｒの算出に含めないこととする。第４実施形態の数値制御装置は、第１実施形態の数値制御装置の構成と同様であるので、異なる部分を中心に説明する。また、数値制御装置のＣＰＵによる制御方法についても、第１実施形態と異なる部分を中心に説明する。
【００８９】
まず、フラッシュメモリ２２４について、図２０を参照して説明する。フラッシュメモリ２２４は、数値制御装置が備えるものである。フラッシュメモリ２２４には、第１実施形態と同じであるＮＣプログラム記憶エリア２４１、ポット切替テーブル記憶エリア２４２に加え、回転テーブルフラグ記憶エリア２４５と、短縮フラグ記憶エリア２４６とが少なくとも設けられている。回転テーブルフラグ記憶エリア２４５には、回転テーブル１９０の設置の有無を示す回転テーブルフラグが記憶される。短縮フラグ記憶エリア２４６には、切替回数Ｒの算出に関し、補助切替回数を含めるか否かを示す短縮フラグが記憶される。
【００９０】
次に、ＣＰＵによる回転テーブルフラグ設定処理について説明する。例えば、図１４のディスプレイ１１に表示されている画面の左隅の工具配置計算ボタン１１０がユーザによって選択されると、本処理が実行される。本処理では、まず、ディスプレイ１１に「回転テーブルが設置されていますか？」のメッセージと、「ＹＥＳ」「ＮＯ」の各ボタンとが表示される。ユーザによって、「ＹＥＳ」が選択されると、フラッシュメモリ２２４の回転テーブル記憶エリアに「１」が記憶され、「ＮＯ」が選択されると、「０」が記憶される。こうして、本処理が終了し、後述する工具配置算出処理が実行される。
【００９１】
次に、ＣＰＵによる工具配置算出処理について、図２１を参照して説明する。本処理は、第１実施形態のＣＰＵ２１による工具配置算出処理（図１１参照）において、Ｓ１３とＳ１４との間に、回転テーブル１９０の設置の有無によって、切替回数Ｒの算出に関して、補助切替回数を含めるか否かを決定する処理（Ｓ３０，Ｓ３１，Ｓ３２）が設けられる。
【００９２】
具体的には、本処理が開始され、工具交換指令の読み込みによって、最初の工具配置Ｑが生成されると（Ｓ１０〜Ｓ１３）、回転テーブル１９０が設置されているか否かが判断される（Ｓ３０）。ここで、フラッシュメモリ２２４の回転テーブルフラグ記憶エリア２４５に「１」が記憶されている場合は、回転テーブル１９０が設置されているので（Ｓ３０：ＹＥＳ）、フラッシュメモリ２２４の短縮フラグ記憶エリア２４６に「１」が記憶される（Ｓ３１）。一方、回転テーブルフラグ記憶エリア２４５に「１」が記憶されていない場合は、回転テーブル１９０が設置されていないので（Ｓ３０：ＮＯ）、フラッシュメモリ２２４の短縮フラグ記憶エリア２４６に「０」が記憶される。なお、Ｓ３０の処理を実行するＣＰＵが本発明の「回転テーブル設置判断手段」に相当する。
【００９３】
次いで、上記したように、工具配置Ｑの全組合せについて、切替回数Ｒが随時算出されるが（Ｓ１５、Ｓ１９）、フラッシュメモリ２２４の短縮フラグ記憶エリア２４６に「１」が記憶されている場合は、補助切替回数を考慮せずに、切替回数Ｒが算出される。一方、フラッシュメモリ２２４の短縮フラグ記憶エリア２４６に「０」が記憶されている場合は、回転しない通常のテーブル１９であるので、第１実施形態と同様に、補助切替回数を考慮して、切替回数Ｒが算出される。これにより、回転テーブル１９０が設置された場合の作業に応じた最適工具配置Ｑｏｐｔを求めることができる。その他の処理については、第１実施形態と同じである。
【００９４】
なお、本実施例では、ユーザの操作パネル１００からの入力操作によって、フラッシュメモリ２２４の回転テーブルフラグ記憶エリア２４５に、回転テーブル１９０の設置の有無を示す回転テーブルフラグを記憶させたがこの他の方法でもよい。例えば、数値制御装置の入出力インタフェイス２６に回転テーブル１９０が接続されているか否かを判断してもよい。
【００９５】
以上説明したように、第４実施形態の数値制御装置では、ユーザの入力操作により、回転テーブル１９０が設置されている場合は、フラッシュメモリ２２４の回転テーブルフラグ記憶エリア２４５に「１」が記憶され、回転テーブル１９０が設置されていない場合は、「０」が記憶される。回転テーブルフラグが「１」か「０」かによって、補助切替回数を考慮して切替回数Ｒを算出するかしないかが決定される。回転テーブル１９０が設置されている場合は、補助切替回数を切替回数Ｒの算出に含めないので、回転テーブル１９０が設置された場合の作業に応じた最適工具配置Ｑｏｐｔを求めることができる。
【００９６】
なお、本発明の工具配置算出装置は、上記実施形態に限らず、各種の変形が可能なことはいうまでもない。上記各実施形態では、数値制御装置２０を工具配置算出装置として説明したが、例えば、一般的なＰＣ（パーソナルコンピュータ）であってもよい。この場合、ＰＣのＣＰＵで算出された最適工具配置Ｑｏｐｔについて、工具配置表をプリンタで印刷し、印刷された工具配置表を確認しながら、工具マガジン３１に工具Ｔを装着することができる。
【００９７】
また、上記各実施形態において、切替回数Ｒの算出に関しては、例えば、フラッシュメモリ等に記憶したライブラリを使うことで、速やかに処理を実行することができる。
【００９８】
また、上記各実施形態では、図１２に示すように、使用工具の工具配置の全組合せについて切替回数Ｒを算出したが、例えば、「１５８９」の配置と「９８５１」のように、順列を逆にした順列は切替回数が同じになる。従って、順列を逆にして同じになる順列については計算せずに、計算回数ＳをＮ！／２としてもよい。この場合、計算回数Ｓが少なくなるので、工具配置算出処理を速やかに実行できる。なお、工具ポットＰの全ポット数と、使用工具本数Ｎとが同じである場合は、工具Ｔの順列は円順列となるため、計算回数Ｓを（Ｎ−１）！／２とすることもできる。
【符号の説明】
【００９９】
１  工作機械
１０  操作パネル
１１  ディスプレイ
１２  キーボード
２０  数値制御装置
２１  ＣＰＵ
２３  ＲＡＭ
２４  フラッシュメモリ
３０  工具交換装置
３１  工具マガジン
９０  工作機械
１００  操作パネル
１２４  フラッシュメモリ
１９０  回転テーブル
２２４  フラッシュメモリ
Ｐ  工具ポット
Ｔ  工具
【図１】
2011152616.tif 000003
【図２】
2011152616.tif 000004
【図３】
2011152616.tif 000005
【図４】
2011152616.tif 000006
【図５】
2011152616.tif 000007
【図６】
2011152616.tif 000008
【図７】
2011152616.tif 000009
【図８】
2011152616.tif 000010
【図９】
2011152616.tif 000011
【図１０】
2011152616.tif 000012
【図１１】
2011152616.tif 000013
【図１２】
2011152616.tif 000014
【図１３】
2011152616.tif 000015
【図１４】
2011152616.tif 000016
【図１５】
2011152616.tif 000017
【図１６】
2011152616.tif 000018
【図１７】
2011152616.tif 000019
【図１８】
2011152616.tif 000020
【図１９】
2011152616.tif 000021
【図２０】
2011152616.tif 000022
【図２１】
2011152616.tif 000023