(第1の実施形態)
以下、本発明の一実施形態を図面に基づいて説明する。図1は、第1の実施形態によるNC装置10を備えた工作機械100のハードウェア構成例を示す図である。図1に示すように、第1の実施形態による工作機械100は、NC装置10および可動部20を備えている。NC装置10は、本発明による工作機械の制御装置に相当するものである。図2は、NC装置10の主要な機能構成例を示す図である。
まず、図1を参照して工作機械100のハードウェア構成について説明する。図1に示すように、NC装置10は、CPU11、ROM12、RAM13、入力部14、表示部15および駆動制御部16を備えている。ROM12は、アプローチ時間算出プログラム記憶部12a、割出時間算出プログラム記憶部12bおよび動作開始タイミング設定プログラム記憶部12cを有している。RAM13は、加工プログラム記憶部13a、クランプ/アンクランプ時間記憶部13b、アプローチ時間記憶部13cおよび割出時間記憶部13dを有している。
また、可動部20は、被加工物(ワーク)を着脱可能に把持する主軸を備えた主軸台21と、ワークを加工する複数種類の工具を保持するタレット刃物台22とを備えている。また、可動部20は、主軸台21の駆動を行うZ軸駆動機構21aと、タレット刃物台22の駆動を行うX軸駆動機構22a、Y軸駆動機構22b、タレット旋回駆動機構22c、タレットクランプ/アンクランプ機構22dおよび回転工具駆動機構22eとを備えている。
NC装置10の駆動制御部16は、加工プログラム記憶部13aに格納されている加工プログラムに基づくCPU11の制御に従って、X軸駆動機構22a、Y軸駆動機構22b、Z軸駆動機構21a、タレット旋回駆動機構22c、タレットクランプ/アンクランプ機構22dおよび回転工具駆動機構22eの駆動を制御する。例えば、駆動制御部16は、X軸駆動機構22a、タレット旋回駆動機構22cおよびタレットクランプ/アンクランプ機構22dの駆動を制御することにより、複数の工具取付面を有するタレットの割出動作と、タレットが設置されたタレット刃物台22の退避動作およびアプローチ動作とを制御する。
Z軸駆動機構21aは、主軸台21を主軸の軸心方向と平行なZ軸方向に移動させるべく、主軸台移動用モータ(図示せず)を駆動する。X軸駆動機構22aおよびY軸駆動機構22bは、Z軸方向に直行するX軸方向とY軸方向にタレット刃物台22を移動させるべく、刃物台移動用モータ(図示せず)を駆動する。
タレット旋回駆動機構22cは、タレット刃物台22が備えるタレットに取り付けられた複数の工具のうち何れか1つを所定の場所に割り出すために、タレットを旋回させるべくタレット旋回用モータ(図示せず)を駆動する。タレットクランプ/アンクランプ機構22dは、ワークの加工時には噛み合い継手等のクランプ手段をクランプさせてタレットを旋回阻止状態とする一方、工具交換時にはクランプ手段をアンクランプさせてタレットを旋回可能状態とするべく、タレット移動用シリンダ(図示せず)を駆動する。
回転工具駆動機構22eは、ワークの加工時に、タレットに取り付けられた回転工具を回転させるべく工具回転用モータ(図示せず)を駆動する。タレットに設置された複数の工具には、バイト等の非可動のもの、ドリル等の回転可能なものがある。ドリル等の回転可能な工具を使う場合には、回転工具駆動機構22eが工具を回転させる。なお、工具回転用モータと上述のタレット旋回用モータとが共用され、1つのモータでタレットの旋回と工具の回転とを行うようにしてもよい。
NC装置10のCPU11は、ROM12およびRAM13に格納されている各種プログラムに従って所定の処理を実行する。RAM13の加工プログラム記憶部13aは、加工プログラムとして、プログラマが作成したNCプログラムと、当該NCプログラムからパーソナルコンピュータ(図示せず)によって変換した電子カムデータとを記憶する。
NCプログラムは、可動部20をNC制御方式で制御する場合に使用するものであり、主軸台21やタレット刃物台22の移動指令を表すGコード、使用する工具の呼出指令を表すTコードなどのコード体系を持つ。NC制御方式では、CPU11がNCプログラムを1ブロック(行)ずつ読み込んでその指令(NCコード)を解釈しながら、複数の指令を順次実行していく。
一方、電子カムデータは、可動部20を電子カム制御方式で制御する場合に使用するものであり、所定の基準軸における動作量を基準にして、基準軸の動作量に対応した移動軸の位置データを表す。例えば、所定時間毎の主軸の累積回転角に対応させてタレット刃物台22の工具の位置データを表したものが電子カムデータである。電子カム制御方式では、基準軸の動作量が電子カムデータに記憶された動作量に達したときに、その動作量に対応して記憶された位置に移動軸が到達するようにCPU11が駆動制御部16を制御する。
RAM13のクランプ/アンクランプ時間記憶部13bは、タレットのクランプに要する時間(以下、クランプ時間という)と、タレットのアンクランプに要する時間(以下、アンクランプ時間という)とをあらかじめ記憶する。クランプ/アンクランプによってタレットが移動する距離は常に同じであるため、クランプ時間およびアンクランプ時間は固定値となる。クランプ/アンクランプ時間記憶部13bは、この固定値をあらかじめ記憶しておくものである。
ROM12のアプローチ時間算出プログラム記憶部12aは、アプローチ時間算出プログラムを記憶する。このアプローチ時間算出プログラムは、タレット刃物台22の退避動作が完了した位置(以下、退避位置という)から、タレットが旋回してもワークと干渉しない領域(以下、割出可能領域という)の境界まで、アプローチ動作によってタレット刃物台22が移動する時間(以下、刃物台アプローチ時間という)を算出するためのプログラムである。なお、CPU11およびアプローチ時間算出プログラム記憶部12aにより、図2のアプローチ時間算出部31が構成される。RAM13のアプローチ時間記憶部13cは、アプローチ時間算出部31により算出された刃物台アプローチ時間を一時的に記憶する。
ROM12の割出時間算出プログラム記憶部12bは、割出時間算出プログラムを記憶する。この割出時間算出プログラムは、タレット刃物台22の退避動作完了後におけるタレットの割出動作に要する時間(以下、タレット割出時間という)を算出するためのプログラムである。なお、CPU11および割出時間算出プログラム記憶部12bにより、図2の割出時間算出部32が構成される。RAM13の割出時間記憶部13dは、割出時間算出部32により算出されたタレット割出時間を一時的に記憶する。
ROM12の動作開始タイミング設定プログラム記憶部12cは、動作開始タイミング設定プログラムを記憶する。この動作開始タイミング設定プログラムは、タレット刃物台22のアプローチ動作の開始タイミングを設定するためのプログラムである。なお、CPU11および動作開始タイミング設定プログラム記憶部12cにより、図2の動作開始タイミング設定部33が構成される。
入力部14は、オペレータがNC装置10に対して各種の情報を入力したり、各種の指示を与えたりするために使用する。例えば、入力部14は、NCプログラムを電子カムデータに変換することを指示するための電子カムデータ作成ボタン(図示せず)を備えている。オペレータが電子カムデータ作成ボタンを操作すると、CPU11が加工プログラム記憶部13aに格納されているNCプログラムを電子カムデータに変換する。表示部15は、オペレータが入力部14の操作を行う際に使用する各種操作画面などを表示する。
以下、図2に示した各機能構成について詳しく説明する。図2において、アプローチ時間算出部31は、タレット刃物台22の退避位置からタレットの割出可能領域の境界までタレット刃物台22がアプローチ動作によって移動するのに要する刃物台アプローチ時間を算出する。本実施形態において、タレット刃物台22の退避位置は、タレットにどのような長さの工具が取り付けられていても、タレットが旋回したときに工具とワークやその他の工作機械100の構成部とが干渉することのない固定の位置であるものとする。
アプローチ時間算出部31は、具体的には、移動距離算出部31aおよび移動時間算出部31bを備えている。移動距離算出部31aは、タレット刃物台22の退避位置から割出可能領域の境界までの距離s1を算出する。この距離s1は、現在選択されている工具と、Tコード指令によって次に選択される工具と、これらの選択工具の間に存在する工具との関係によって決まる可変の値である。
図3は、タレット刃物台22のタレットに取り付けられた各工具とワークとの位置関係を示す図である。図3において、タレット刃物台22は退避位置にあるものとする。また、工具番号6番の工具が現在選択されている(所定の割出位置に存在する)工具であるとする。この状態で、Tコード指令によって次の工具が呼び出された場合、現在の選択工具から次の選択工具までタレットの旋回によって割出位置に順次移動してくる各工具のうち、工具取付面からの突き出し長が最も長い工具の先端部とワークとの間の距離が、タレット刃物台22の退避位置から割出可能領域の境界までの距離s1となる。
例えば、工具番号6番の工具が現在選択されている状態で、Tコード指令により次に工具番号9番の工具が呼び出されたとする。この場合、タレットが近回り方向に旋回するものとすると、現在の選択工具(6番)から次の選択工具(9番)までタレットが旋回することによって割出位置に移動してくる工具は、工具番号7番、8番、9番の3つである。これらのうち、工具取付面からの突き出し長が最も長い工具は、工具番号7番の工具である。よって、工具番号7番の工具の先端部であるA点がワークに最も接近するときのA点とワークとの距離が、タレット刃物台22の退避位置から割出可能領域の境界までの距離s1となる。なお、工具の突き出し長は、オペレータが入力部14を操作して入力した値があらかじめ突き出し長記憶部(図示せず)に記憶されているものとする。突き出し長記憶部は、例えばRAM13に備えられる。
また、工具番号6番の工具が現在選択されている状態で、Tコード指令によって次に工具番号1番の工具が呼び出されたとする。この場合、タレットが右回りで旋回しても、左回りで旋回しても、旋回角度は同じとなる。この場合にCPU11は、現在の選択工具(6番)から次の選択工具(1番)までタレットが右回りした場合に割出位置に移動してくる各工具の最大突き出し長L1を求めるとともに、タレットが左回りした場合に割出位置に移動してくる各工具の最大突き出し長L2を求める。そして、最大突き出し長が短い方にタレットを旋回させるものとする。
図3の例では、タレットが右回りした場合に割出位置に移動してくる各工具(7番、8番、9番、10番、1番)のうち、工具取付面からの突き出し長が最も長くなるのは工具番号7番の工具であり、その突き出し長が右回りの場合の最大突き出し長L1として求められる。一方、タレットが左回りした場合に割出位置に移動してくる各工具(5番、4番、3番、2番、1番)のうち、工具取付面からの突き出し長が最も長くなるのは工具番号4番の工具であり、その突き出し長が左回りの場合の最大突き出し長L2として求められる。
この場合、L1>L2であるから、CPU11は駆動制御部16を制御してタレットを左回りに旋回させる。そして、工具番号4番の工具の先端部であるB点がワークに最も接近するときのB点とワークとの距離が、タレット刃物台22の退避位置から割出可能領域の境界までの距離s1となる。移動距離算出部31aは、この距離s1を求める。タレット刃物台22の退避位置は固定であり、タレットの位置もワークの位置も分かっているから、移動距離算出部31aは工具番号4番の工具の突き出し長L2より距離s1を算出することができる。
なお、ここでは、工具の先端部がワークと干渉しない範囲を割出可能領域とする例について説明したが、この例に限定されない。例えば、工具の先端部がワークに最も近づいたときに、その先端部がワークから所定距離だけ遠ざかっている位置を割出可能領域の境界としてもよい。この場合は、工具取付面からの突き出し長が最も長い工具の先端部と、ワークからタレット側に所定距離だけ離れた位置との距離が、タレット刃物台22の退避位置から割出可能領域の境界までの距離s1となる。また、ワークを挟んだタレット刃物台22の反対側に他の刃物台を有する場合には、ワークだけでなく、この他の刃物台の突出部とタレット刃物台22の工具の先端部とも干渉しない範囲を割出可能領域とすることもできる。
移動時間算出部31bは、移動距離算出部31aにより算出されたタレット刃物台22の移動距離s1と、タレット刃物台22の移動速度とから、タレット刃物台22がアプローチ動作で距離s1を移動するのに要する刃物台アプローチ時間t4を算出する。そして、算出した刃物台アプローチ時間t4をアプローチ時間記憶部13cに格納する。なお、タレット刃物台22の移動速度はあらかじめ定められており、その移動速度に関するパラメータがあらかじめ移動速度パラメータ記憶部(図示せず)に記憶されているものとする。移動速度パラメータ記憶部は、例えばRAM13に備えられる。
割出時間算出部32は、タレット刃物台22の退避動作完了後におけるタレットの割出動作に要するタレット割出時間T1を算出する。第1の実施形態において、タレット割出時間T1は、タレットの割出動作を構成するアンクランプ、旋回、クランプの3つの動作うち、タレット刃物台22の退避動作が完了した後に行われる動作に要する時間であって、かつ、クランプが完了するまでに要する時間をいう。
例えば、タレット刃物台22の退避動作が完了した後にタレットのアンクランプを開始する場合、タレット割出時間T1は、タレットのアンクランプ時間t1、旋回時間t2およびクランプ時間t3の合計時間となる(T1=t1+t2+t3)。また、タレット刃物台22の退避動作中にタレットのアンクランプも同時に行い、退避動作完了後にタレットの旋回を開始する場合、タレット割出時間T1は、タレットの旋回時間t2およびクランプ時間t3の合計時間となる(T1=t2+t3)。
割出時間算出部32は、具体的には、クランプ/アンクランプ時間取得部32a、旋回時間算出部32bおよびタレット割出時間算出部32cを備えている。クランプ/アンクランプ時間取得部32aは、RAM13のクランプ/アンクランプ時間記憶部13bからアンクランプ時間t1およびクランプ時間t3を取得する。
旋回時間算出部32bは、タレットの旋回時間t2を算出する。この旋回時間t2は、現在選択されている工具と、Tコード指令によって次に選択される工具との位置関係によって決まる可変の値である。例えば、図3に示すように、工具番号6番の工具が現在選択されている状態で、Tコード指令によって次に工具番号9番の工具が呼び出されたとする。この場合、タレットが近回り方向に旋回するものとすると、旋回時間算出部32bは、現在の選択工具(6番)から次の選択工具(9番)までタレットが旋回する角度と、タレットの旋回速度とに基づいて、タレットの旋回時間t2を算出する。なお、タレットの旋回速度はあらかじめ定められており、その旋回速度に関するパラメータがあらかじめ旋回速度パラメータ記憶部(図示せず)に記憶されている。旋回速度パラメータ記憶部は、例えばRAM13に備えられる。
タレット割出時間算出部32cは、クランプ/アンクランプ時間記憶部13bにより取得されたアンクランプ時間t1およびクランプ時間t3と、旋回時間算出部32bにより算出された旋回時間t2とに基づいて、タレット割出時間T1を算出する。なお、第1の実施形態では、タレット刃物台22の退避動作完了後にタレットのアンクランプを開始するものとする。つまり、タレット割出時間T1は、タレットのアンクランプ時間t1、旋回時間t2およびクランプ時間t3の合計時間である。タレット割出時間算出部32cは、算出したタレット割出時間T1を割出時間記憶部13dに格納する。
動作開始タイミング設定部33は、アプローチ時間算出部31により算出されアプローチ時間記憶部13cに記憶された刃物台アプローチ時間t4と、割出時間算出部32により算出され割出時間記憶部13dに記憶されたタレット割出時間T1とを比較し、その比較結果に応じて、タレット刃物台22のアプローチ動作の開始タイミングを設定する。具体的には、動作開始タイミング設定部33は、割出動作の完了する時点が、アプローチ動作によってタレット刃物台22が割出可能領域の境界に達する時点と同じかそれよりも早くなるようなタイミングに、タレット刃物台22のアプローチ動作の開始タイミングを設定する。
より具体的には、動作開始タイミング設定部33は、刃物台アプローチ時間t4がタレット割出時間T1より短い場合(t4<T1の場合)、図4(a)に示すように、刃物台アプローチ時間t4とタレット割出時間T1との差分時間(T1−t4)だけタレット刃物台22の退避動作完了から経過したタイミングを、タレット刃物台22のアプローチ動作の開始タイミングとして設定する。これにより、割出動作のクランプが完了する時点Pと、アプローチ動作によってタレット刃物台22が割出可能領域の境界に達する時点Qとが同じとなるようにする。
一方、動作開始タイミング設定部33は、刃物台アプローチ時間t4がタレット割出時間T1より短くない場合(t4≧T1の場合)、図4(b)に示すように、タレット刃物台22の退避動作完了タイミングをアプローチ動作の開始タイミングとして設定する。つまり、タレット刃物台22の退避動作完了と同時にアプローチ動作を開始するようにタレット刃物台22のアプローチ動作の開始タイミングを設定する。この場合は、割出動作のクランプが完了する時点Pが、アプローチ動作によってタレット刃物台22が割出可能領域の境界に達する時点Qよりも早くなる。
次に、上記のように構成した第1の実施形態によるNC装置10の動作を説明する。図5は、第1の実施形態によるNC装置10の動作例を示すフローチャートである。なお、図5に示すフローチャートは、加工プログラム記憶部13aに格納されたNCプログラムを読み出して電子カムデータに変換する際の動作例を示すものである。すなわち、図5に示すフローチャートは、入力部14の電子カムデータ作成ボタンをオペレータが操作することによって開始する。
図5において、まずアプローチ時間算出部31は、加工プログラム記憶部13aに格納されたNCプログラムの先頭からTコードを検索する(ステップS1)。そして、アプローチ時間算出部31は、Tコードが見つかったか否か判定する(ステップS2)。ここで、Tコードが見つからなかった場合は、本フローチャートの処理を終了する。一方、Tコードが見つかった場合、アプローチ時間算出部31は、Tコード直後の早送り指令(G0コード)を検索する(ステップS3)。図11で説明したように、Tコード直後のG0コードは、タレット刃物台22のアプローチ動作に相当する。
Tコード直後のG0コードを検索したら、アプローチ時間算出部31の移動距離算出部31aは、タレット刃物台22の退避位置から割出可能領域の境界までの距離s1を算出する(ステップS4)。次いで、移動時間算出部31bは、移動距離算出部31aにより算出された距離s1をタレット刃物台22がアプローチ動作で移動するのに要する刃物台アプローチ時間t4を算出する(ステップS5)。
次に、割出時間算出部32のクランプ/アンクランプ時間取得部32aは、タレットのアンクランプ時間t1とクランプ時間t3とをクランプ/アンクランプ時間記憶部13bから読み出して取得する(ステップS6)。また、旋回時間算出部32bは、タレットの旋回時間t2を算出する(ステップS7)。そして、タレット割出時間算出部32cは、クランプ/アンクランプ時間取得部32aにより取得されたアンクランプ時間t1およびクランプ時間t3と、旋回時間算出部32bにより算出された旋回時間t2とを合計することによってタレット割出時間T1を算出する(ステップS8)。
その後、動作開始タイミング設定部33は、移動時間算出部31bにより算出された刃物台アプローチ時間t4と、タレット割出時間算出部32cにより算出されたタレット割出時間T1とを比較し、刃物台アプローチ時間t4がタレット割出時間T1より短くなっているか否か(t4<T1であるか否か)を判定する(ステップS9)。
ここで、t4<T1となっている場合、動作開始タイミング設定部33は、図4(a)に示すように、刃物台アプローチ時間t4とタレット割出時間T1との差分時間(T1−t4)だけタレット刃物台22の退避動作完了から経過したタイミングを、タレット刃物台22のアプローチ動作の開始タイミングとして設定する(ステップS10)。一方、t4<T1となっていない場合(t4≧T1の場合)、動作開始タイミング設定部33は、図4(b)に示すように、タレット刃物台22の退避動作完了タイミングをアプローチ動作の開始タイミングとして設定する(ステップS11)。
ステップS10またはステップS11の処理の後、アプローチ時間算出部31は、次のTコードを検索する(ステップS12)。その後、ステップS2の処理に戻って以上と同様の処理を行う。
以上詳しく説明したように、第1の実施形態では、タレット刃物台22の退避位置から割出可能領域の境界までアプローチ動作によってタレット刃物台22が移動する時間(刃物台アプローチ時間t4)と、タレット刃物台22の退避動作完了後におけるタレットの割出動作に要する時間(タレット割出時間T1)とを算出する。そして、刃物台アプローチ時間t4とタレット割出時間T1との比較結果に応じて、割出動作の完了する時点が、アプローチ動作によってタレット刃物台22が割出可能領域の境界に達する時点と同じかそれよりも早くなるようなタイミングにタレット刃物台22のアプローチ動作の開始タイミングを設定している。
このように構成した第1の実施形態によれば、タレット刃物台22の退避動作、タレットの割出動作(アンクランプ、旋回、クランプ)、タレット刃物台22のアプローチ動作が行われる一連の工具交換動作において、タレット刃物台22のアプローチ動作中にもタレットの割出動作をオーバーラップさせることができる。図4(a)の場合は、タレット刃物台22のアプローチ動作中に、タレットの旋回動作の一部とクランプ動作とをオーバーラップさせて同時に行うことができる。図4(b)の場合は、タレット刃物台22のアプローチ動作中に、タレットのアンクランプ動作と旋回動作とクランプ動作とを全てオーバーラップさせて同時に行うことができる。
しかも、図4(a)の場合も図4(b)の場合も、アプローチ動作によってタレット刃物台22が割出可能領域の境界に達するまでには割出動作(クランプ)が完了するように、アプローチ動作の開始タイミングが設定される。このため、従来のようにアプローチ動作が途中でいったん停止することもなく、タレットの割出動作を最後までタレット刃物台22のアプローチ動作と同時に行うことができるようになる。これにより、タレット刃物台22における一連の工具交換動作時間を従来よりも短くすることが可能となる。
(第2の実施形態)
次に、本発明の第2の実施形態を図面に基づいて説明する。図6は、第2の実施形態によるNC装置10’を備えた工作機械100のハードウェア構成例を示す図である。なお、この図6において、図1に示した符号と同一の符号を付したものは同一の機能を有するものであるので、ここでは重複する説明を省略する。図6に示すように、第2の実施形態による工作機械100は、第1の実施形態で説明したNC装置10の代わりに、これとは一部において機能が異なるNC装置10’を備えている。
NC装置10’のROM12は、退避時間算出プログラム記憶部12dを更に備えるとともに、第1の実施形態で説明した割出時間算出プログラム記憶部12bの代わりに割出時間算出プログラム記憶部12b’を備えている。また、NC装置10’のRAM13は、第1の実施形態で説明した構成に加えて、動作オーバーラップ実行フラグ記憶部13eを更に備えている。
図7は、第2の実施形態によるNC装置10’の機能構成例を示す図である。なお、この図7において、図2に示した符号と同一の符号を付したものは同一の機能を有するものであるので、ここでは重複する説明を省略する。図7に示すように、第2の実施形態では、退避時間算出部34を更に備えるとともに、第1の実施形態で説明した割出時間算出部32の代わりに割出時間算出部32’を備えている。割出時間算出部32’は、図6のCPU11および割出時間算出プログラム記憶部12b’により構成される。また、退避時間算出部34は、図6のCPU11および退避時間算出プログラム記憶部12dにより構成される。
上述した第1の実施形態では、タレット刃物台22の退避動作とタレットの割出動作とがオーバーラップしない例について説明した。これに対して、第2の実施形態では、タレット刃物台22の退避動作とタレットの割出動作とをオーバーラップさせる例について説明する。
図6において、動作オーバーラップ実行フラグ記憶部13eは、退避動作とアンクランプ動作とをオーバーラップさせるか否かを示したアンクランプオーバーラップ実行フラグと、退避動作とタレット旋回動作とをオーバーラップさせるか否かを示した旋回オーバーラップ実行フラグとを記憶する。この2つのフラグは、NC装置10’の運用状態(オーバーラップさせるか否か)に合わせて、オペレータが入力部14を操作して動作オーバーラップ実行フラグ記憶部13eにあらかじめ登録しておく。
図7の割出時間算出部32’は、タレット刃物台22の退避動作完了後におけるタレットの割出動作に要するタレット割出時間T1を算出する。第1の実施形態では、タレット刃物台22の退避動作とタレットの割出動作とがオーバーラップしないため、タレット割出時間T1は常に、アンクランプ時間t1と旋回時間t2とクランプ時間t3との合計時間となっていた。これに対して、第2の実施形態では、NC装置10’の運用状態によって、タレット刃物台22の退避動作とタレットの割出動作とがオーバーラップする。そのため、割出時間算出部32’は、タレット刃物台22の退避動作とタレットの割出動作とのオーバーラップ状態も考慮して、タレット割出時間T1を算出する。
図7に示すように、第2の実施形態による割出時間算出部32’は、タレット割出時間算出部32cの代わりにタレット割出時間算出部32c’を備えている。タレット割出時間算出部32c’は、第1の実施形態で説明したアンクランプ時間t1、旋回時間t2およびクランプ時間t3に加えて、タレット刃物台22の退避動作の全体に要する時間(以下、退避動作時間t5という)、タレット刃物台22の退避開始位置から割出可能領域の境界まで退避動作によってタレット刃物台22が移動するのに要する時間(以下、刃物退避時間t6という)を用いてタレット割出時間T1を算出する。
上述の退避動作時間t5および刃物台退避時間t6は、退避時間算出部34が算出する。退避時間算出部34は、移動距離算出部34a、移動時間算出部34bおよび退避動作時間算出部34cを備えている。移動距離算出部34aは、タレット刃物台22の退避開始位置から割出可能領域の境界までの距離s2を算出する。この距離s2も、第1の実施形態で説明した距離s1と同様に、現在選択されている工具と、Tコード指令によって次に選択される工具と、これらの選択工具の間に存在する工具との関係によって決まる可変の値である。
移動時間算出部34bは、タレット刃物台22が退避動作で距離s2を移動するのに要する刃物台退避時間t6を算出する。この刃物台退避時間t6は、移動距離算出部34aにより算出されたタレット刃物台22の移動距離s2と、タレット刃物台22の移動速度とから算出される。移動時間算出部34bは、算出した刃物台退避時間t6をタレット割出時間算出部32c’に供給する。
退避動作時間算出部34cは、タレット刃物台22が退避開始位置から退避終了位置(所定の退避位置)まで退避動作で移動するのに要する退避動作時間t5を算出する。そして、退避動作時間算出部34cは、算出した退避動作時間t5をタレット割出時間算出部32c’に供給する。
タレット割出時間算出部32c’は、クランプ/アンクランプ時間取得部32aにより取得されたアンクランプ時間t1およびクランプ時間t3と、旋回時間算出部32bにより算出された旋回時間t2と、移動時間算出部34bにより算出された刃物台退避時間t6と、退避動作時間算出部34cにより算出された退避動作時間t5とに基づいて、タレット刃物台22の退避動作完了後におけるタレット割出時間T1を算出する。
図8および図9は、タレット刃物台22の退避動作とタレットの割出動作とのオーバーラップ状態と、タレット割出時間算出部32c’により算出されるタレット割出時間T1との関係を示す図である。図8(a)は、タレット刃物台22の退避動作中に、割出可能領域の範囲内においてタレットのアンクランプのみを実行し、退避動作の完了後にタレットの旋回を開始する動作状態を示している。この場合のタレット割出時間T1は、旋回時間t2とクランプ時間t3との合計時間となる(T1=t2+t3)。
図8(b)は、タレット刃物台22が割出可能領域まで退避した時点でタレットのアンクランプを開始するものの、退避動作の完了時までにアンクランプが完了しない動作状態を示している。すなわち、図8(b)の例では、タレット刃物台22の退避動作とタレットのアンクランプ動作の一部とがオーバーラップしている。図8(b)の動作状態におけるタレット割出時間T1は、T1={t1−(t5−t6)}+t2+t3となる。
図9(a)は、タレット刃物台22が割出可能領域まで退避した時点でタレットのアンクランプを開始し、アンクランプ動作とそれに引き続いて行われる旋回動作の途中までがタレット刃物台22の退避動作とオーバーラップしている動作状態を示している。この場合、タレット割出時間T1は、T1=(t1+t2+t3)−(t5−t6)となる。
図9(b)は、タレット刃物台22が割出可能領域まで退避した時点でタレットのアンクランプを開始し、退避動作中にタレットのアンクランプ、旋回、クランプの全てが完了する動作状態を示している。この場合のタレット割出時間T1は、T1=0となる。
次に、上記のように構成した第2の実施形態によるNC装置10’の動作を説明する。図10は、第2の実施形態によるNC装置10’の動作例を示すフローチャートである。なお、図10に示すフローチャートも、加工プログラム記憶部13aに格納されたNCプログラムを読み出して電子カムデータに変換する際の動作例を示すものである。すなわち、図10に示すフローチャートは、入力部14の電子カムデータ作成ボタンをオペレータが操作することによって開始する。
図10において、退避時間算出部34は、加工プログラム記憶部13aに格納されたNCプログラムの先頭からTコードを検索する(ステップS21)。そして、退避時間算出部34は、Tコードが見つかったか否か判定する(ステップS22)。ここで、Tコードが見つからなかった場合は、本フローチャートの処理を終了する。一方、Tコードが見つかった場合、退避時間算出部34の退避動作時間算出部34cは、退避動作時間t5を算出する(ステップS23)。
次に、退避時間算出部34の移動距離算出部34aは、タレット刃物台22の退避開始位置から割出可能領域の境界までの距離s2を算出する(ステップS24)。次いで、移動時間算出部34bは、移動距離算出部34aにより算出された距離s2をタレット刃物台22が退避動作で移動するのに要する刃物台退避時間t6を算出する(ステップS25)。その後、アプローチ時間算出部31は、Tコード直後の早送り指令(G0コード)を検索する(ステップS26)。
Tコード直後のG0コードを検索したら、アプローチ時間算出部31の移動距離算出部31aは、タレット刃物台22の退避位置から割出可能領域の境界までの距離s1を算出する(ステップS27)。次いで、移動時間算出部31bは、移動距離算出部31aにより算出された距離s1をタレット刃物台22がアプローチ動作で移動するのに要する刃物台アプローチ時間t4を算出する(ステップS28)。
次に、割出時間算出部32’のクランプ/アンクランプ時間取得部32aは、タレットのアンクランプ時間t1とクランプ時間t3とをクランプ/アンクランプ時間記憶部13bから読み出して取得する(ステップS29)。また、旋回時間算出部32bは、タレットの旋回時間t2を算出する(ステップS30)。ここで、タレット割出時間算出部32c’は、動作オーバーラップ実行フラグ記憶部13eに格納されているアンクランプオーバーラップ実行フラグがOFFになっているか否かを判定する(ステップS31)。
アンクランプオーバーラップ実行フラグがOFFになっている場合(第1の実施形態と同様の場合)、タレット割出時間算出部32c’は、クランプ/アンクランプ時間取得部32aにより取得されたアンクランプ時間t1およびクランプ時間t3と、旋回時間算出部32bにより算出された旋回時間t2とを合計することによってタレット割出時間T1(=t1+t2+t3)を算出する(ステップS32)。
一方、アンクランプオーバーラップ実行フラグがONになっている場合、タレット割出時間算出部32c’は、旋回オーバーラップ実行フラグがOFFになっているか否かを判定する(ステップS33)。ここで、旋回オーバーラップ実行フラグがOFFになっている場合、タレット割出時間算出部32c’は、アンクランプ時間t1が、タレット刃物台22が退避動作中に割出可能領域の範囲内にいる時間(t5−t6)よりも短くなっているか否か(t1<t5−t6となっているか否か)を判定する(ステップS34)。
ここで、t1<t5−t6となっている場合は、図8(a)の動作状態に相当する。この場合、タレット割出時間算出部32c’は、クランプ/アンクランプ時間取得部32aにより取得されたクランプ時間t3と、旋回時間算出部32bにより算出された旋回時間t2とを合計することによってタレット割出時間T1(=t2+t3)を算出する(ステップS35)。
一方、t1<t5−t6となっていない場合は、図8(b)の動作状態に相当する。この場合、タレット割出時間算出部32c’は、クランプ/アンクランプ時間取得部32aにより取得されたアンクランプ時間t1およびクランプ時間t3と、旋回時間算出部32bにより算出された旋回時間t2と、退避動作時間算出部34cにより算出された退避動作時間t5と、移動時間算出部34bにより算出された刃物台退避時間t6とを用いて、タレット割出時間T1={t1−(t5−t6)}+t2+t3を算出する(ステップS36)。
また、ステップS33で旋回オーバーラップ実行フラグがONになっていると判断した場合、タレット割出時間算出部32c’は、タレットの割出動作(アンクランプ、旋回、クランプ)に要する時間(t1+t2+t3)が、タレット刃物台22が退避動作中に割出可能領域の範囲内にいる時間(t5−t6)よりも長くなっているか否か(t1+t2+t3>t5−t6となっているか否か)を判定する(ステップS37)。
ここで、t1+t2+t3>t5−t6となっている場合は、図9(a)の動作状態に相当する。この場合、タレット割出時間算出部32c’は、クランプ/アンクランプ時間取得部32aにより取得されたアンクランプ時間t1およびクランプ時間t3と、旋回時間算出部32bにより算出された旋回時間t2と、退避動作時間算出部34cにより算出された退避動作時間t5と、移動時間算出部34bにより算出された刃物台退避時間t6とを用いて、タレット割出時間T1=(t1+t2+t3)−(t5−t6)を算出する(ステップS38)。
一方、t1+t2+t3>t5−t6となっていない場合は、図9(b)の動作状態に相当する。この場合、タレット割出時間算出部32c’は、タレット割出時間T1=0とする(ステップS39)。ステップS32、S35、S36、S38、S39の何れかにおいてタレット割出時間T1を算出した後、動作開始タイミング設定部33は、移動時間算出部31bにより算出された刃物台アプローチ時間t4と、タレット割出時間算出部32c’により算出されたタレット割出時間T1とを比較し、刃物台アプローチ時間t4がタレット割出時間T1より短くなっているか否か(t4<T1であるか否か)を判定する(ステップS40)。
ここで、t4<T1となっている場合、動作開始タイミング設定部33は、刃物台アプローチ時間t4とタレット割出時間T1との差分時間(T1−t4)だけタレット刃物台22の退避動作完了から経過したタイミングを、タレット刃物台22のアプローチ動作の開始タイミングとして設定する(ステップS41)。一方、t4<T1となっていない場合(t4≧T1の場合)、動作開始タイミング設定部33は、タレット刃物台22の退避動作完了タイミングをアプローチ動作の開始タイミングとして設定する(ステップS42)。なお、ステップS39(T1=0)の場合は、タレット刃物台22のクランプが完了した時点で退避動作を停止してアプローチ動作を開始するように退避動作完了タイミングを設定してもよい。
ステップS41またはステップS42の処理の後、退避時間算出部34は、次のTコードを検索する(ステップS43)。その後、ステップS22の処理に戻って以上と同様の処理を行う。
以上詳しく説明したように、第2の実施形態では、タレット刃物台22のアプローチ動作とタレットの割出動作とをオーバーラップさせることに加えて、タレット刃物台22の退避動作とタレットの割出動作とをオーバーラップさせるようにしている。これにより、タレット刃物台22の移動動作とタレットの割出動作とでオーバーラップできる時間をより長くすることができ、タレット刃物台22における一連の工具交換動作時間をより一層短くすることが可能となる。
なお、上記第1および第2の実施形態では、刃物台アプローチ時間t4がタレット割出時間T1より短い場合(t4<T1の場合)、動作開始タイミング設定部33は、割出動作(クランプ)が完了する時点Pと、アプローチ動作によってタレット刃物台22が割出可能領域の境界に達する時点Qとが同じとなるように(P=Qとなるように)アプローチ動作の開始タイミングを設定していた。割出可能領域の範囲内におけるタレット刃物台22のアプローチ動作とタレットの割出動作とがオーバーラップするのであれば、P<Qとなるようにアプローチ動作の開始タイミングを設定してもよいが、P=Qとするのがより好ましい。P=Qとなるようにアプローチ動作の開始タイミングを設定することで、アプローチ動作と割出動作とをできるだけ多くオーバーラップさせた上で、アプローチ動作をできるだけ早いタイミングから開始させることができるので、タレット刃物台22における一連の工具交換動作時間をより短くすることができるからである。
また、上記第1および第2の実施形態では、タレット割出時間T1として、タレットの割出動作のうちクランプが完了するまでに要する時間を算出する例について説明したが、本発明はこれに限定されない。タレットの割出動作時に、工具とワークとの干渉はタレットの旋回によって生じる。つまり、割出可能領域の範囲内でタレットの旋回まで完了していれば、工具とワークとの干渉は生じない。そこで、タレット割出時間算出部32c,32c’は、タレットの割出動作のうち旋回が完了するまでに要する時間をタレット割出時間T1として算出するようにしてもよい。
また、上記第1および第2の実施形態では、アプローチ動作の開始タイミングを退避動作完了時からの経過時間によって制御する例について説明したが、本発明はこれに限定されない。例えば、タレット旋回角度によってアプローチ動作の開始タイミングを制御するようにしてもよい。この場合は、アプローチ動作の開始タイミングとして求めた退避動作完了時からの経過時間を、タレットの旋回角度に換算すればよい。タレットの旋回角度でアプローチ動作の開始タイミングを制御する方法は、NCプログラムに従って可動部20を制御するNC制御方式に有用である。
例えば、図4(a)のように、刃物台アプローチ時間t4とタレット割出時間T1との差分時間(T1−t4)だけ退避動作完了時から経過したタイミングをアプローチ動作の開始タイミングとして設定する場合は、当該経過時間(T1−t4)を次のようにタレットの旋回角度に換算する。まず、退避動作完了時からの経過時間(T1−t4)から、タレットが旋回しないアンクランプ時間t1を減算することにより、アプローチ動作を開始するまでの間にタレットが回転する時間T2を求める(T2=T1−t4−t1)。そして、この求めた時間T2をタレットの旋回角度θに換算し、これをアプローチ動作の開始タイミングとして設定する。この場合は、タレットが角度θだけ旋回したタイミングでタレット刃物台22のアプローチ動作を開始する。
なお、図4(a)のように、退避動作完了時からの経過時間(T1−t4)がタレットの旋回中に該当する場合は、タレットの旋回角度によってアプローチ動作の開始タイミングを制御することが可能である。しかし、退避動作完了時からの経過時間(T1−t4)がタレットのアンクランプ中に該当する場合は、タレットが旋回していないので、旋回角度によってアプローチ動作の開始タイミングを制御することができない。そのため、退避動作完了時からの経過時間(T1−t4)がタレットのアンクランプ中に該当する場合は、アンクランプ完了後の旋回開始と同時にアプローチ動作を開始する等の対応が必要である。
また、上記第1および第2の実施形態では、タレットのクランプ/アンクランプ時間t1,t3をあらかじめ記憶する例について説明したが、タレットの旋回時間t2等と同様に計算で求めてもよい。
その他、上記第1および第2の実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその精神、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。