以下に、本発明の実施の形態にかかる数値制御装置を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態.
図1は、実施の形態にかかる数値制御装置1の構成を示す図である。数値制御装置1は、ワーク20に対してねじ切りを行う工具30の動作を制御するための装置である。図1には、ワーク20及び工具30も示されている。数値制御装置1は、数値制御装置1の外部から与えられるねじ切りサイクル指令を解析する解析部2と、解析部2によって得られた解析結果をもとに工具30の動作を制御するための処理を行うねじ切りサイクル処理部3とを有する。
ねじ切りサイクル処理部3は、工具30を移動させるための指令を作成するねじ切り送り指令作成部4と、ねじ切りサイクルの荒加工において工具30を退避位置から指定された向きに指定された量だけ退避させるための指令である退避指令を作成する退避指令作成部5とを有する。退避位置は、工具30がワーク20から退避を開始する位置である。ねじ切りサイクルは、ねじ切りについての複数回の荒加工と仕上げ加工とで構成されるものである。
数値制御装置1は、退避指令作成部5によって作成された退避指令にしたがって工具30を退避位置から退避させる制御部6を更に有する。制御部6は、退避指令作成部5によって作成された退避指令にしたがって工具30が退避位置から退避した後に、工具30を、ねじを形成する際に工具30が進行する向きの側と違う向きである第3の向きに移動させると共に、工具30が第3の向きに移動した後に、工具30を退避位置に移動させる。
上記の第3の向きは、ねじを形成する際に工具30が進行する向きも、ねじを形成する際に工具30が進行する向きの斜め前方の向きも含まない。第3の向きの一例は、リード軸の方向と平行であって、ねじを形成する際に工具30が進行する向きと逆の向きである。第3の向きは、リード軸の方向と平行でなくてもよい。第3の向きは、ねじを形成する際に工具30が進行する向きの斜め後ろ上の向き又は斜め後ろ下の向きであってもよい。上は鉛直方向の上であり、下は鉛直方向の下である。
ねじ切りサイクル処理部3は、制御部6による制御によって工具30が上記の第3の向きに移動してから工具30が退避位置に移動する場合において、工具30が退避した後に工具30が上記の第3の向きに移動する量であるアプローチの距離を算出するアプローチ算出部7を更に有する。更に説明すると、アプローチ算出部7は、荒加工において不完全ねじ部が形成されることを抑制するアプローチの距離を算出する。工具30がねじを形成する際に進行する向きは、リード軸の方向と平行である。
上記の第3の向きが、リード軸の方向と平行であって、工具30がねじを形成する際に進行する向きと逆の向きである場合、アプローチ算出部7は、退避指令作成部5によって作成された退避指令にしたがって工具30が退避位置から退避した後に工具30がねじを形成する際に進行する向きと逆の向きに移動してから工具30が退避位置に移動する場合において、工具30が退避した後に工具30が上記の逆の向きに移動する量であるアプローチの距離を算出する。更に説明すると、アプローチ算出部7は、荒加工において不完全ねじ部が形成されることを抑制するアプローチの距離を算出する。
ねじ切りサイクル処理部3は、ねじ切りを行っている工具30がねじ切りサイクルのなかの荒加工を行っているのか仕上げ加工を行っているのかを判断する判断部8を更に有する。解析部2、ねじ切り送り指令作成部4、退避指令作成部5、制御部6、アプローチ算出部7及び判断部8の詳細については、後述する。図1には、主軸アンプ用データ作成部11、主軸アンプ12、主軸モータ13、サーボアンプ用データ作成部14、サーボアンプ15及びサーボモータ16も示されている。主軸アンプ用データ作成部11、主軸アンプ12、主軸モータ13、サーボアンプ用データ作成部14、サーボアンプ15及びサーボモータ16の詳細についても、後述する。
退避指令作成部5及びアプローチ算出部7の詳細を説明するために、ねじの始端部から終端部までのねじ切りがひとつのねじ切り加工工程で行われる場合の工具30の動作について説明する。図2は、ワーク20に対してねじ切り加工の始端部から終端部までのねじ切りをひとつのねじ切り加工工程で行う場合の工具30の動作を説明するための図である。図2において、点(a)、点(b)、点(c)及び点(d)の各々は、工具30が移動する際の経路における互いに異なる点を示している。点(b)は、ねじ切り加工の始端部に対応する点である。点(c)は、ねじ切り加工の終端部に対応する点である。
ワーク20に対してねじの始端部から終端部までのねじ切りをひとつのねじ切り加工工程で行う場合、工具30は、点(a)、点(b)、点(c)及び点(d)をこの順に結ぶ経路を、点(a)、点(b)、点(c)、点(d)及び点(a)の順に移動する。工具30は、当該経路を移動すると、切り込み量を変化させて当該経路を再度移動する。工具30は、上述の動作を繰り返し行ってワーク20にねじを形成する。
当該経路のうちの点(b)と点(c)とを結ぶ部分経路が比較的長い場合、つまりねじ切り加工の始端部から終端部までの距離が比較的長い場合、工具30が当該部分経路を移動するとき、ワーク20の粘度が高いと、比較的長い切粉が生成される。比較的長い切粉は、ワーク20と工具30との一方又は双方に巻き付くことがあるので、ワーク20と工具30との一方又は双方を欠損させる可能性がある。ねじ切りで生成される切粉の長さを短くするために、リード軸方向におけるワーク20の被ねじ切り加工部を複数の区間に分割し、各区間でねじ切り加工を行い、各区間でのねじ切り加工が終了する毎に作業を中断してワーク20から工具30を退避させる。被ねじ切り加工部は、点(b)と点(c)とを結ぶ部分経路である。
図3は、実施の形態の荒加工においてワーク20にねじを形成する場合の工具30の動作を説明するための図である。言い換えると、図3は、実施の形態の荒加工において、リード軸の方向におけるワーク20の被ねじ切り加工部を複数の区間に分割し、各区間でねじ切り加工を行い、各区間でのねじ切り加工が終了する毎に工具30をワーク20から退避させることによりワーク20にねじを形成する場合の工具30の動作を説明するための図である。
図3において、点(a)、点(b)、点(c)、点(d)、点(e)、点(f)、点(g)、点(h)、点(i)及び点(j)の各々は、実施の形態において工具30が移動する際の経路における互いに異なる点を示している。図3における点(a)、点(b)、点(c)及び点(d)は、図2における点(a)、点(b)、点(c)及び点(d)と機械的な位置が同じである。
第1ステップにおいて、工具30は、点(a)、点(b)及び点(e)をこの順で結ぶ第1部分経路を、点(a)から点(e)まで移動する。点(b)から点(e)への向きは、工具30がねじを形成する際に進行する向きである。上述の通り、工具30がねじを形成する際に進行する向きは、リード軸の方向と平行である。工具30が点(b)から点(e)まで移動する際、工具30はワーク20に対して切削加工を行う。点(e)は、工具30がワーク20から退避する位置である。つまり、点(e)は、退避位置である。
第2ステップにおいて、工具30は、点(e)と点(f)とを結ぶ第2部分経路を、点(e)から点(f)まで移動する。点(e)から点(f)への向きは、指定された向きである。点(e)から点(f)までの距離は、指定された量である。つまり、工具30は、退避位置である点(e)から指定された向きに指定された量だけワーク20から退避する。更に言うと、退避指令作成部5は、ねじ切りサイクルの荒加工において、工具30を退避位置である点(e)から指定された向きに指定された量だけワーク20から退避させるための指令である退避指令を作成する。第2ステップでは、工具30はワーク20に対して切削加工を行わない。
第3ステップにおいて、工具30は、点(f)と点(g)とを結ぶ第3部分経路を、点(f)から点(g)まで移動する。点(f)から点(g)への向きは、工具30がねじを形成する際に進行する向きと逆の向きである。点(f)から点(g)までの距離は、ひとつのアプローチの距離である。アプローチ算出部7は、点(f)から点(g)までのアプローチの距離を算出する。第3ステップでは、工具30はワーク20に対して切削加工を行わない。
なお、工具30は、点(e)に位置した後に、点(f)を通ることなく、点(e)から点(g)までの線分を直線的に移動して点(g)に退避してもよい。この場合、退避指令作成部5は、ねじ切りサイクルの荒加工において、工具30を、退避位置である点(e)から工具30がねじを形成する際に進行する向きの側と違う向きであって工具30がねじを形成する際に進行する向きと平行でない向きに指定された量だけワーク20から直線的に退避させるための指令である退避指令を作成する。指定された量は、点(e)から点(g)までの距離である。制御部6は、退避指令作成部5によって作成された退避指令にしたがって工具30を退避位置から移動させる。
退避指令作成部5によって作成された退避指令にしたがって工具30が退避位置から移動する際の工具30の移動量について、更に説明する。第1ベクトルが、工具30が退避位置から指定された向きに指定された量だけ移動したときの退避位置から工具30の到達位置である中間位置までのベクトルであると定義されるとする。第1ベクトルの一例は、始点が点(e)であって終点が点(f)であるベクトルである。
第2ベクトルが、工具30が中間位置から工具30がねじを形成する際に進行する向きと逆の向きに工具30が荒加工において不完全ねじ部が形成されることを抑制するアプローチの距離だけ移動したときの中間位置から工具30の到達位置までのベクトルであると定義されるとする。第2ベクトルの一例は、始点が点(f)であって終点が点(g)であるベクトルである。第1ベクトル及び第2ベクトルが上述の通りに定義された場合、退避指令作成部5によって作成された退避指令にしたがって工具30が退避位置から移動する際の工具30の移動量は、第1ベクトルに第2ベクトルを加えることによって得られる合成ベクトルの大きさである。つまり、当該移動量は、点(e)から点(g)までの距離である。
第4ステップにおいて、工具30は、点(g)、点(e)及び点(h)をこの順で結ぶ第4部分経路を、点(g)から点(h)まで移動する。工具30は、第4部分経路を移動する際に点(g)から退避位置である点(e)に戻り、点(e)に戻った後に点(e)から点(h)までの部分経路においてワーク20に対して切削加工を行う。点(e)から点(h)への向きは、点(b)から点(e)への向きと同じである。つまり、点(e)から点(h)への向きは、工具30がねじを形成する際に進行する向きである。
制御部6は、工具30が第3の向きに移動した後に、工具30を退避位置に移動させる。上述の例では、制御部6は、工具30が点(f)から点(g)まで移動した後に、工具30を退避位置である点(e)に移動させる。工具30が退避位置である点(e)から点(g)までの線分を直線的に移動して退避した後においても、制御部6は、工具30を退避位置である点(e)に移動させる。工具30が退避した後に退避位置である点(e)に戻った後、制御部6は工具30を点(e)から点(h)まで移動させる。
第5ステップにおいて、第2ステップにおける場合と同様に、工具30は、点(h)と点(i)とを結ぶ第5部分経路を、点(h)から点(i)まで移動する。点(h)から点(i)への向きは、指定された向きである。点(h)から点(i)までの距離は、指定された量である。つまり、工具30は、退避位置である点(h)から指定された向きに指定された量だけワーク20から退避する。更に言うと、退避指令作成部5は、ねじ切りサイクルの荒加工において、工具30を退避位置である点(h)から指定された向きに指定された量だけワーク20から退避させるための指令である退避指令を作成する。第5ステップでは、工具30はワーク20に対して切削加工を行わない。
第6ステップにおいて、第3ステップにおける場合と同様に、工具30は、点(i)と点(j)とを結ぶ第6部分経路を、点(i)から点(j)まで移動する。点(i)から点(j)への向きは、工具30がねじを形成する際に進行する向きと逆の向きである。点(i)から点(j)までの距離は、ひとつのアプローチの距離である。アプローチ算出部7は、点(i)から点(j)までのアプローチの距離を算出する。第6ステップでは、工具30はワーク20に対して切削加工を行わない。
第7ステップにおいて、第4ステップにおける場合と同様に、工具30は、点(j)、点(h)及び点(c)をこの順で結ぶ第7部分経路を、点(j)から点(c)まで移動する。工具30は、第7部分経路を移動する際に点(j)から退避位置である点(h)に戻り、点(h)に戻った後に点(h)から点(c)までの部分経路においてワーク20に対して切削加工を行う。点(h)から点(c)への向きは、点(b)から点(e)への向きと同じである。つまり、点(h)から点(c)への向きは、工具30がねじを形成する際に進行する向きである。
第8ステップにおいて、工具30は、点(c)、点(d)及び点(a)をこの順で結ぶ第8部分経路を、点(c)から点(a)まで移動する。工具30は、終端点である点(c)においてワーク20から退避する。第8ステップでは、工具30はワーク20に対して切削加工を行わない。上述した第1ステップから第8ステップまでの8個のステップが、実施の形態における荒加工の1サイクルである。ねじ切りサイクルにおいて、上記の1サイクルの荒加工が切り込み量を変化させながら複数回行われる。
図3の例では、点(b)から点(c)までの間の被ねじ切り加工部は、二つの退避位置である点(e)及び点(h)において分割される。つまり、図3の例では、リード軸の方向における被ねじ切り加工部が、点(b)から点(e)までの第1区間と、点(e)から点(h)までの第2区間と、点(h)から点(c)までの第3区間との3個の区間に分割される。そのため、図2を用いて説明した場合に比べて、図3を用いて説明した実施の形態では、切粉の長さは短くなる。つまり、切粉がワーク20と工具30との一方又は双方に巻き付くことは抑制され、ひいてはワーク20と工具30との一方又は双方が欠損することは抑制される。
ねじ切りサイクルにおける仕上げ加工では、形成されるねじの形状の精度を向上させるために、工具30は、図3の点(a)、点(b)、点(c)、点(d)及び点(a)をこの順に移動する。工具30は、点(b)から点(c)まで移動する際、ワーク20に対して切削加工を行う。
次に、工具30が上述した第1ステップから第8ステップまでの8個のステップを含む荒加工において移動する場合の数値制御装置1の機能について更に説明する。解析部2は、数値制御装置1の外部からワーク20を回転させるための指令である回転指令を受け取って解析する。解析部2は、解析結果を主軸アンプ用データ作成部11に出力する。主軸アンプ用データ作成部11は、解析結果に対応するデータであって主軸アンプ12が処理することができる主軸用データを作成して主軸アンプ12に出力する。
主軸アンプ12は、主軸アンプ用データ作成部11から主軸用データを受け取って、解析結果に対応する単位時間当たりの回転数で主軸モータ13を回転させる。主軸モータ13は、主軸アンプ12による制御によって回転し、工作機械の主軸を回転させて工作機械に取り付けられたワーク20を回転させる。工作機械は、図示されていない。
解析部2は、数値制御装置1の外部から与えられるねじ切りサイクル指令も解析する。例えば、ねじ切りサイクル指令は下記のプログラムされた指令である。下記のねじ切りサイクル指令の文字列「G76」は、ねじ切りサイクルを指定する準備機能指令である。
G76 Xx Zz Kk Dd Ff Lmr Jj;
上記のねじ切りサイクル指令の文字列「Xx」のうちの文字「X」はねじ切りの始点の座標を意味し、文字列「Xx」のうちの文字「x」はねじ切りの始点の座標における具体的な値を意味する。上記のねじ切りサイクル指令の文字列「Zz」のうちの文字「Z」はねじ切りの終点の座標を意味し、文字列「Zz」のうちの文字「z」はねじ切りの終点の座標における具体的な値を意味する。
上記のねじ切りサイクル指令の文字列「Kk」のうちの文字「K」はねじ山の高さを意味し、文字列「Kk」のうちの文字「k」はねじ山の高さの具体的な値を意味する。上記のねじ切りサイクル指令の文字列「Dd」のうちの文字「D」は荒加工におけるサイクル毎の切り込み量を意味し、文字列「Dd」のうちの文字「d」は当該切り込み量の具体的な値を意味する。
上記のねじ切りサイクル指令の文字列「Ff」のうちの文字「F」はねじのリードを意味する。リードは、ワーク20が一回転する場合の工具30の移動量である。文字列「Ff」のうちの文字「f」は当該リードの具体的な値を意味する。上記のねじ切りサイクル指令の文字列「Lmr」のうちの文字「L」は工具30がワーク20から退避することに関することを意味し、文字列「Lmr」のうちの文字「m」は退避軸番号を意味し、文字列「Lmr」のうちの文字「r」は退避回数を意味する。
上記のねじ切りサイクル指令の文字列「Jj」のうちの文字「J」は工具30がワーク20から退避する際の移動量を意味し、文字列「Jj」のうちの文字「j」は当該移動量の具体的な値を意味する。上記のねじ切りサイクル指令の文字列「;」は、当該指令の終わりを意味する。
上述の通り、解析部2は、例えば上記の文字列「G76」から始まるねじ切りサイクル指令を解析する。つまり、解析部2は、ねじ切りの始点の座標と、ねじ切りの終点の座標と、ねじ山の高さと、荒加工におけるサイクル毎の切り込み量と、リードと、退避軸と、退避回数と、工具30がワーク20から退避する際の移動量とを特定する。図3を用いて説明した例では、退避軸が点(e)から点(f)までの直線部を含む第1の軸と、点(h)から点(i)までの直線部を含む第2の軸とであると解析部2によって特定される。
加えて、解析部2によって、退避回数は2回であって、2回の退避回数、第1の軸及び第2の軸から、退避位置は点(e)及び点(h)であると特定される。解析部2は、工具30がワーク20から退避する際の移動量、第1の軸及び第2の軸から、二つの退避位置である点(e)及び点(h)の各々から工具30を退避させる向きと退避させる量とを特定する。
解析部2は、解析結果をねじ切りサイクル処理部3に出力する。ねじ切りサイクル処理部3において、退避指令作成部5は、解析部2からの解析結果をもとに、ねじ切りサイクルの荒加工における工具30を退避位置から指定された向きに指定された量だけ退避させるための指令である退避指令を作成する。図3の例では、指定された向きのひとつは、点(e)から点(f)への向きであり、指定された向きの別のひとつは、点(h)から点(i)への向きである。指定された量のひとつは点(e)から点(f)までの長さであり、指定された量の別のひとつは点(h)から点(i)までの長さである。
退避回数が「r」で示され、図3の点(b)の位置の座標が「A」であって、図3の点(b)から点(c)までの長さが「B」である場合、退避指令作成部5は、下記の数式(1)により1番目の退避位置P1を特定し、下記の数式(2)により2番目の退避位置P2を特定し、下記の数式(3)によりr番目の退避位置Prを特定する。なお、rは2以上の整数である。座標Aは、リード軸上の座標である。退避位置P1、退避位置P2及び退避位置Prの各々の座標は、図2の点(b)から点(c)への向きが正である場合の座標である。
アプローチ算出部7は、上述のように、退避指令作成部5によって作成された退避指令にしたがって工具30が退避位置から退避した後に工具30がねじを形成する際に進行する向きの側と違う向きである第3の向きに移動してから工具30が退避位置に移動する場合において、工具30が退避した後に工具30が上記の第3の向きに移動する量であるアプローチの距離を算出する。更にいうと、アプローチ算出部7は、荒加工において不完全ねじ部が形成されることを抑制するアプローチの距離を算出する。
工具30は、サーボモータ16に駆動されて移動する。例えば、アプローチ算出部7は、工具30が向きを変えて移動する際のサーボモータ16が工具30を加速させる能力をもとにアプローチの距離を算出する。
又は、上記の第3の向きが、工具30がねじを形成する際に進行する向きと逆の向きである場合、アプローチ算出部7は、下記の数式(4)によりアプローチの距離δを算出する。数式(4)において、δの単位は「mm」であり、Vはねじ切り速度(mm/min)であり、t1はねじのピッチの誤差が許容限界になるまでの時間(秒)であり、Tsは工具30の加減速時定数(秒)であり、Tpは工具30の位置ループ時定数(秒)である。
ねじ切り送り指令作成部4は、解析部2からの解析結果と、主軸アンプ12からのデータとをもとに、リード軸において工具30がねじを形成する際に進行する向きに工具30を移動させるための送り指令を作成する。以下では、リード軸において工具30がねじを形成する際に進行する向きに工具30を移動させるための送り指令を、「リード軸の送り指令」と記載する。主軸アンプ12からのデータは、主軸モータ13の単位時間当たりの回転数を示すデータである。具体的には、主軸アンプ12からのデータは、主軸モータ13の1分間当たりの回転数を示すデータである。
ねじ切り送り指令作成部4は、解析部2からの解析結果と、退避指令作成部5によって作成された退避指令と、アプローチ算出部7によって算出されたアプローチの距離とをもとに、工具30が退避指令にしたがって退避した後に上記の第3の向きに、算出されたアプローチの距離だけ工具30を移動させる指令を作成する。以下では、工具30が退避指令にしたがって退避した後に上記の第3の向きに、算出されたアプローチの距離だけ工具30を移動させる指令を「アプローチの距離の移動の指令」と記載する。
ねじ切り送り指令作成部4は、主軸アンプ12からのデータを用いて、工具30が上記の第3の向きにアプローチの距離だけ移動した後に工具30を退避位置に移動させる指令を作成する。以下では、工具30が上記の第3の向きにアプローチの距離だけ移動した後に工具30を退避位置に移動させる指令を「復帰のための送り指令」と記載する。
制御部6は、図3を用いて説明した第1ステップから第7ステップまでの7個のステップの各々において、リード軸の送り指令と、退避指令と、アプローチの距離の移動の指令と、復帰のための送り指令とのうちのひとつ又は二つをサーボアンプ用データ作成部14に出力する。
サーボアンプ用データ作成部14は、制御部6からの指令に対応するデータであってサーボアンプ15が処理することができるサーボ用データを作成してサーボアンプ15に出力する。サーボアンプ15は、サーボアンプ用データ作成部14からサーボ用データを受け取って、制御部6からの指令に対応する単位時間当たりの回転数でサーボモータ16を回転させる。サーボモータ16は、サーボアンプ15による制御によって回転し、工具30を制御部6からの指令の通りに移動させる。工具30は、例えば図3を用いて説明した通りに移動する。
図3を用いて説明した第1ステップから第8ステップまでの8個のステップと、ねじ切り送り指令作成部4、退避指令作成部5、制御部6及びアプローチ算出部7の機能との関係について説明する。第1ステップについて、制御部6はリード軸の送り指令をサーボアンプ用データ作成部14に出力する。第2ステップについて、退避指令作成部5は退避指令を作成し、制御部6は退避指令をサーボアンプ用データ作成部14に出力する。
第3ステップについて、アプローチ算出部7はアプローチの距離を算出し、制御部6はアプローチの距離の移動の指令をサーボアンプ用データ作成部14に出力する。第4ステップについて、制御部6は、復帰のための送り指令と、工具30が退避位置である点(e)に移動した後のリード軸の送り指令とをサーボアンプ用データ作成部14に出力する。
第5ステップについて、退避指令作成部5は退避指令を作成し、制御部6は退避指令をサーボアンプ用データ作成部14に出力する。第6ステップについて、アプローチ算出部7はアプローチの距離を算出し、制御部6はアプローチの距離の移動の指令をサーボアンプ用データ作成部14に出力する。第7ステップについて、制御部6は、復帰のための送り指令と、工具30が退避位置である点(h)に移動した後のリード軸の送り指令とをサーボアンプ用データ作成部14に出力する。
第8ステップについて、制御部6は、点(c)、点(d)及び点(a)をこの順で結ぶ第8部分経路において、工具30を点(c)から点(a)まで移動させる送り指令を作成し、当該送り指令をサーボアンプ用データ作成部14に出力する。
ねじ切りサイクルの仕上げ加工では、ねじ切り送り指令作成部4は、工具30を退避させない指令を作成する。つまり、仕上げ加工では、ねじ切り送り指令作成部4は、工具30を点(a)、点(b)、点(c)、点(d)及び点(a)の順に移動させる送り指令を作成し、制御部6は当該送り指令をサーボアンプ用データ作成部14に出力する。
図4は、実施の形態にかかる数値制御装置1が有する制御部6が指令をサーボアンプ用データ作成部14に出力する際の制御部6と数値制御装置1が有する判断部8との動作の手順を示すフローチャートである。ねじ切りサイクル処理部3の判断部8は、ねじ切りサイクルにおける現在の加工が荒加工であるか否かを判断する(S11)。例えば、判断部8は、現在の切り込み量をもとに現在の加工が荒加工であるか否かを判断する(S11)。現在の加工が荒加工でないと判断部8によって判断された場合(S11でNo)、制御部6は、リード軸の送り指令をサーボアンプ用データ作成部14に出力する(S12)。
現在の加工が荒加工であると判断部8によって判断された場合(S11でYes)、判断部8は、工具30が退避位置に到達したか否かを判断する(S13)。ステップS13において、例えば、工具30が退避位置を通過したときにオンとなり工具30が退避位置に到達していないときにオフとなるフラグが数値制御装置1に設けられている場合、判断部8は当該フラグをもとに、工具30が退避位置に到達したか否かを判断する。工具30が退避位置に到達していないと判断部8によって判断された場合(S13でNo)、制御部6は、リード軸の送り指令をサーボアンプ用データ作成部14に出力する(S12)。
工具30が退避位置に到達したと判断部8によって判断された場合(S13でYes)、制御部6は、退避指令をサーボアンプ用データ作成部14に出力する。制御部6が退避指令を出力した後、判断部8は、工具30が退避しているか否かを判断する(S14)。工具30が退避していないと判断部8によって判断された場合(S14でNo)、制御部6は、退避指令をサーボアンプ用データ作成部14に出力する(S15)。
工具30が退避中であると判断部8によって判断された場合(S14でYes)、判断部8は、工具30がアプローチ算出部7によって算出されたアプローチの距離を移動することが完了したか否かを判断する(S16)。工具30がアプローチの距離を移動することが完了していないと判断部8によって判断された場合(S16でNo)、制御部6は、アプローチの距離の移動の指令をサーボアンプ用データ作成部14に出力する(S17)。
工具30がアプローチの距離を移動することが完了したと判断部8によって判断された場合(S16でYes)、制御部6は、復帰のための送り指令と、工具30が退避位置に移動した後のリード軸の送り指令とをサーボアンプ用データ作成部14に出力する(S18)。図4のステップS18では、工具30が退避位置に移動した後のリード軸の送り指令は「復帰後のリード軸の送り指令」と記載されている。
不完全ねじ部が形成されることを抑制するために、工具30がワーク20から退避する位置と、工具30がワーク20から退避した後にリード軸に復帰する位置とは一致しなければならない。例えば、退避前のねじ溝の位置と復帰後のねじ溝の位置とは一致しなければならない。退避から復帰までの工具30の動作について、以下の条件1、条件2及び条件3が必要になる。
条件1は、工具30が退避指令作成部5によって作成された退避指令にしたがって退避する動作についての条件である。図5は、実施の形態にかかる数値制御装置1が有する退避指令作成部5によって作成された退避指令にしたがって工具30が退避する動作を説明するための図である。図5の上部は、工具30がワーク20にねじを形成する際に進行する向きを矢印で示している。図5の上部には、ワーク20も示されている。ワーク20は、ねじが形成された状態で示されている。
図5の下部は、ワーク20が取り付けられた工作機械の主軸の外周の特定の部位が時間の経過と共に変化する状況を示している。主軸は主軸モータ13によって制御されて回転するので、上記の特定の部位の位置は0度から360度までの間の角度で表現される。360度は、0度と同じ位置である。図5の例えば二つの破線に着目して図5の上部と下部とを対比すると明らかな通り、上記の特定の部位が0度に位置する場合にねじ溝が形成されるように、工具30はリード軸を進行する。
上述のように、工具30はあるねじ溝においてワーク20から退避し、退避した後に当該あるねじ溝に復帰してねじを形成する。図5において、ねじ切りサイクル指令をもとにした計算によって特定された退避位置が点C1及び点C2である場合を仮定する。点C1及び点C2はいずれも、工具30がねじを形成する際に進行する向きにおいて、ねじ溝の手前に位置する。
ねじ切り送り指令作成部4は、工具30がねじを形成する際に進行する向きに進行する場合において、工具30が計算によって特定された点C1の直後に到達するねじ溝の位置である点R1を第1の退避位置と決定して退避指令を作成する。同様に、ねじ切り送り指令作成部4は、工具30が計算によって特定された点C2の直後に到達するねじ溝の位置である点R2を第2の退避位置と決定して退避指令を作成する。制御部6は、ねじ切り送り指令作成部4によって作成された退避指令をサーボアンプ用データ作成部14に出力する。図5では、点R1及び点R2は実際の退避位置と記載されている。
すなわち、条件1は、工具30がねじを形成する際に進行する向きに進行する場合において、工具30が計算によって特定された点の直後に到達するねじ溝の位置を退避位置とするというものである。
条件2は、上記の数式(4)により算出されるアプローチの距離δをリードの整数倍とするというものである。例えば、アプローチの距離δが5.3mmであって、リードが3mmである場合、アプローチ算出部7は3mmの2倍の6mmをアプローチの距離と算出する。このように、アプローチ算出部7は、アプローチの距離δをリードの整数倍となるように丸め込む場合、丸め込まれた後の値を丸め込まれる前の値より大きくしてアプローチの距離を算出する。
条件3は、工具30が復帰する位置を上記の特定の部位が0度となる位置とするというものである。すなわち、工具30は、ワーク20から退避した後にねじ切り加工に復帰する場合、ワーク20から退避したときの位置であってねじ溝の位置に復帰する。
上述の通り、退避指令作成部5によって作成された退避指令にしたがって工具30が退避位置から退避した後に工具30がねじを形成する際に進行する向きの側と違う向きである第3の向きに移動してから工具30が退避位置に移動する場合において、アプローチ算出部7は、工具30が退避した後に工具30が上記の第3の向きに移動する量であるアプローチの距離を算出する。更に言うと、アプローチ算出部7は、荒加工において不完全ねじ部が形成されることを抑制するアプローチの距離を算出する。
具体的には、アプローチ算出部7は、工具30が向きを変えて移動する際のサーボモータ16が工具30を加速させる能力をもとに、荒加工において不完全ねじ部が形成されることを抑制するアプローチの距離を算出する。又は、アプローチ算出部7は、上記の数式(4)によりアプローチの距離δを算出する。数値制御装置1は、不完全ねじ部が形成されることを抑制するアプローチの距離を算出するので、ねじ切りサイクルにおいて切粉の長さを短くすると共に、不完全ねじ部が形成されることを抑制することができる。
上述したように、リード軸方向におけるワーク20の被ねじ切り加工部を複数の区間に分割することにより、切粉の長さを短くすることができ、切粉がワーク20と工具30との一方又は双方に巻き付くことは抑制される。つまり、リード軸方向におけるワーク20の被ねじ切り加工部を複数の区間に分割することにより、ワーク20と工具30との一方又は双方が欠損することを抑制することができる。そのため、ねじ切りサイクルの荒加工では、ワーク20の被ねじ切り加工部を複数の区間に分割することが好ましい。
被ねじ切り加工部が複数の区間に分割された場合、ねじ切りサイクルの荒加工において工具30は複数の退避位置の各々から退避する。退避位置から退避した工具30が退避位置に復帰する場合、ワーク20にねじを形成するために、退避位置における工具30が進行する向きはリード軸方向と平行でなければならない。そのため、工具30は、退避位置から退避した後に、工具30がねじを形成する際に進行する向きの側と違う向きである第3の向きに移動する。
退避位置から退避した工具30が退避位置に復帰する場合、サーボモータ16が、工具30が進む向きを変えて工具30を移動させる。工具30が向きを変えて移動する際のサーボモータ16が工具30を加速させる能力には限界がある。アプローチの距離が短いと、あらかじめ決められた時間に工具30が退避位置に復帰することができない事態が生じたり、退避位置に復帰したときの工具30が進行する向きがリード軸方向と平行にならない事態が生じる場合がある。その場合、工具30が退避位置から退避したときにはワーク20にはねじ山及びねじ谷が既に形成されているので、不完全ねじ部が形成される可能性が生じる。
実施の形態にかかる数値制御装置1は、工具30が向きを変えて移動する際のサーボモータ16が工具30を加速させる能力をもとに、荒加工において不完全ねじ部が形成されることを抑制するアプローチの距離を算出する。又は、数値制御装置1は、上記の数式(4)によりアプローチの距離を算出する。つまり、数値制御装置1は、荒加工において不完全ねじ部が形成されることを抑制するアプローチの距離を算出する。そのため、数値制御装置1は、ねじ切りサイクルにおいて切粉の長さを短くすると共に、不完全ねじ部が形成されることを抑制することができる。
ねじ切りサイクルにおける仕上げ加工では、ねじ切り送り指令作成部4は、工具30を退避させない指令を作成する。そのため、数値制御装置1は、比較的精度の高いねじを形成させることができる。
図6は、実施の形態にかかる数値制御装置1が有する解析部2、ねじ切り送り指令作成部4、退避指令作成部5、制御部6、アプローチ算出部7及び判断部8の少なくとも一部の機能がプロセッサ61によって実現される場合のプロセッサ61を示す図である。つまり、解析部2、ねじ切り送り指令作成部4、退避指令作成部5、制御部6、アプローチ算出部7及び判断部8の少なくとも一部の機能は、メモリ62に格納されるプログラムを実行するプロセッサ61によって実現されてもよい。プロセッサ61は、CPU(Central Processing Unit)、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、又はDSP(Digital Signal Processor)である。図6には、メモリ62も示されている。
解析部2、ねじ切り送り指令作成部4、退避指令作成部5、制御部6、アプローチ算出部7及び判断部8の少なくとも一部の機能がプロセッサ61によって実現される場合、当該一部の機能は、プロセッサ61と、ソフトウェア、ファームウェア、又は、ソフトウェア及びファームウェアとの組み合わせにより実現される。ソフトウェア又はファームウェアはプログラムとして記述され、メモリ62に格納される。プロセッサ61は、メモリ62に記憶されたプログラムを読み出して実行することにより、解析部2、ねじ切り送り指令作成部4、退避指令作成部5、制御部6、アプローチ算出部7及び判断部8の少なくとも一部の機能を実現する。
すなわち、解析部2、ねじ切り送り指令作成部4、退避指令作成部5、制御部6、アプローチ算出部7及び判断部8の少なくとも一部の機能がプロセッサ61によって実現される場合、数値制御装置1は、解析部2、ねじ切り送り指令作成部4、退避指令作成部5、制御部6、アプローチ算出部7及び判断部8の一部によって実行されるステップが結果的に実行されることになるプログラムを格納するためのメモリ62を有する。メモリ62に格納されるプログラムは、解析部2、ねじ切り送り指令作成部4、退避指令作成部5、制御部6、アプローチ算出部7及び判断部8の一部が実行する手順又は方法をコンピュータに実行させるものであるともいえる。
メモリ62は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、EPROM(Erasable Programmable Read Only Memory)、EEPROM(登録商標)(Electrically Erasable Programmable Read-Only Memory)等の不揮発性もしくは揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク又はDVD(Digital Versatile Disk)等である。
図7は、実施の形態にかかる数値制御装置1が有する解析部2、ねじ切り送り指令作成部4、退避指令作成部5、制御部6、アプローチ算出部7及び判断部8を構成する少なくとも一部の構成要素が処理回路71によって実現される場合の処理回路71を示す図である。つまり、解析部2、ねじ切り送り指令作成部4、退避指令作成部5、制御部6、アプローチ算出部7及び判断部8の機能の少なくとも一部は、処理回路71によって実現されてもよい。
処理回路71は、専用のハードウェアである。処理回路71は、例えば、単一回路、複合回路、プログラム化されたプロセッサ、並列プログラム化されたプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)、又はこれらを組み合わせたものである。解析部2、ねじ切り送り指令作成部4、退避指令作成部5、制御部6、アプローチ算出部7及び判断部8の一部は、残部とは別個の専用のハードウェアであってもよい。
解析部2、ねじ切り送り指令作成部4、退避指令作成部5、制御部6、アプローチ算出部7及び判断部8の複数の機能について、当該複数の機能の一部がソフトウェア又はファームウェアで実現され、当該複数の機能の残部が専用のハードウェアで実現されてもよい。このように、解析部2、ねじ切り送り指令作成部4、退避指令作成部5、制御部6、アプローチ算出部7及び判断部8の複数の機能は、ハードウェア、ソフトウェア、ファームウェア、又はこれらの組み合わせによって実現することができる。
図1に示される主軸アンプ用データ作成部11、主軸アンプ12、サーボアンプ用データ作成部14及びサーボアンプ15の少なくとも一部の機能は、上述のプロセッサ61と同じ機能を有するプロセッサによって実現されてもよい。主軸アンプ用データ作成部11、主軸アンプ12、サーボアンプ用データ作成部14及びサーボアンプ15の少なくとも一部の機能がプロセッサによって実現される場合、主軸アンプ用データ作成部11、主軸アンプ12、サーボアンプ用データ作成部14及びサーボアンプ15の少なくとも一部によって実行されるステップが結果的に実行されることになるプログラムを格納するためのメモリが用いられる。当該メモリは、上述のメモリ62と同じ機能を有するメモリである。主軸アンプ用データ作成部11、主軸アンプ12、サーボアンプ用データ作成部14及びサーボアンプ15の少なくとも一部の機能は、上述の処理回路71と同じ機能を有する処理回路によって実現されてもよい。
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略又は変更することも可能である。
上述した課題を解決し、目的を達成するために、本発明は、ねじ切りサイクルの荒加工において、工具を、前記工具が退避を開始する位置である退避位置から指定された向きに指定された量だけ退避させるための指令である退避指令を作成する退避指令作成部と、前記退避指令作成部によって作成された前記退避指令にしたがって前記工具が前記退避位置から退避した後に、前記工具を、ねじを形成する際に前記工具が進行する向きの側と違う向きである第3の向きに移動させると共に、前記工具が前記第3の向きに移動した後に、前記工具を前記退避位置に移動させる制御部とを有する。本発明は、前記制御部による制御によって前記工具が前記第3の向きに移動してから前記工具が前記退避位置に移動する場合において、前記工具が退避した後に前記工具が前記第3の向きに移動する量であるアプローチの距離であって前記荒加工において不完全ねじ部が形成されることを抑制する前記アプローチの距離を算出するアプローチ算出部を更に有する。前記工具は、サーボモータに駆動されて移動し、前記アプローチ算出部は、前記工具が向きを変えて移動する際の前記サーボモータが前記工具を加速させる能力をもとに前記アプローチの距離を算出する。