(57)【特許請求の範囲】
【請求項１】
工具と加工対象を相対的に振動させる制御を行う数値制御装置であって、
主軸回転速度の変化を検出する主軸処理部と、
振動前進位置に対する振動後退位置の時間的な遅れである位相差を算出する位相差算出部と、
振動前進位置と振動後退位置の差分である振動振幅を算出する振動振幅算出部と、
指令ブロック実行中に、主軸回転速度と主軸１回転当たりの振動回数より振動周波数を算出する振動周波数算出部と、
を備え、
前記主軸処理部が前記指令ブロック実行中に主軸回転速度の変化を検出した場合、前記位相差算出部は主軸回転速度の変化による振動振幅の変動を抑制する位相差を再計算し、
前記振動周波数算出部は前記振動周波数に基づいて振幅減衰を算出し、
前記振動振幅算出部は、再計算された前記位相差に基づいて振動振幅を変更する時に、前記振幅減衰を抑制するように振動振幅を変更することを特徴とする数値制御装置。
【請求項２】
前記振動振幅算出部は、再計算された前記位相差に基づいて振動後退位置の経路を調整することにより、振動振幅を変更することを特徴とする請求項１に記載の数値制御装置。
【請求項３】
工具と加工対象を相対的に振動させる制御を行う数値制御装置であって、
主軸１回転当たりの振動回数を変更する振動回数変更部と、
指令ブロック実行中に、主軸回転速度と主軸１回転当たりの振動回数より振動周波数を継続的に算出する振動周波数算出部とを備え、
前記振動回数変更部は、前記振動周波数算出部により算出される振動周波数と、設定された振動周波数の閾値とを比較し、算出された前記振動周波数が、閾値により定まる振動周波数領域の範囲外である場合、前記指令ブロック実行中に閾値により定まる範囲内に収まるように振動回数を変更することを特徴とする数値制御装置。
【請求項４】
前記振動回数変更部は、閾値により定まる振動周波数領域の範囲内に収まり、かつ、変更前後の差が最小となる振動回数に変更することを特徴とする請求項３に記載の数値制御装置。
【請求項５】
前記振動回数変更部は、算出された前記振動周波数が、振動周波数領域内であるが共振周波数帯に含まれる場合、振動周波数領域内で、かつ、共振周波数帯に含まれない振動周波数となる振動回数に変更することを特徴とする請求項３または４に記載の数値制御装置。
【請求項６】
工具と加工対象を相対的に振動させる制御を行う数値制御装置であって、
主軸１回転当たりの振動回数を変更する振動回数変更部を備え、
前記振動回数変更部は、指令ブロック実行中の加工により生じた切屑の長さと設定された切屑の長さの閾値との比較に基づいて、加工により生じた切屑の長さが、閾値により定められる切屑の長さの領域の範囲外である場合、前記指令ブロック実行中に閾値により定まる範囲内に収まるように振動回数を変更することを特徴とする数値制御装置。
【請求項７】
工具と加工対象を相対的に振動させる制御を行う数値制御装置であって、
主軸１回転当たりの振動回数を変更する振動回数変更部と、
前記加工対象と前記工具のいずれか一方または両方を少なくとも２軸方向に駆動する駆動部と、を備え、
前記振動回数変更部は、指令ブロック実行中の前記駆動部から得られた負荷トルクと設定された負荷トルクの閾値とを比較に基づいて、前記駆動部から得られた負荷トルクが、閾値により定められる負荷トルクの領域の範囲外である場合、前記指令ブロック実行中に閾値により定まる範囲内に収まるように振動回数を変更することを特徴とする数値制御装置。
【請求項８】
工具と加工対象を相対的に振動させる制御を行う数値制御装置であって、
主軸１回転当たりの振動回数を変更する振動回数変更部と、
前記加工対象と前記工具のいずれか一方または両方を少なくとも２軸方向に駆動する駆動部と、を備え、
前記振動回数変更部は、指令ブロック実行中に前記駆動部から得られたモータ駆動電流値と設定されたモータ駆動電流値の閾値との比較に基づいて、前記駆動部から得られたモータ駆動電流値が、閾値により定められるモータ駆動電流値の領域の範囲外である場合、前記指令ブロック実行中に閾値により定まる範囲内に収まるように振動回数を変更することを特徴とする数値制御装置。
【請求項９】
前記振動回数変更部は、０．５に０または自然数を足し合わせた数に振動回数を変更することを特徴とする請求項３から８のいずれか１項に記載の数値制御装置。
【請求項１０】
前記振動回数変更部が０．５に０または自然数を足し合わせた数以外の振動回数に変更した場合、主軸位相と各軸の移動経路に基づいて、切屑分断に必要な空振り区間が生じるように振動振幅が補正されることを特徴とする請求項３から９のいずれか１項に記載の数値制御装置。
【請求項１１】
工具と加工対象を相対的に振動させる制御を行う数値制御装置方法であって、
指令ブロック実行中の主軸回転速度の変化を検出するステップと、
前記主軸回転速度の変化による振動振幅の変動を抑制する位相差を再計算するステップと、
前記指令ブロック実行中に、主軸回転速度と主軸１回転当たりの振動回数より振動周波数を算出するステップと、
前記振動周波数に基づいて振幅減衰を算出するステップと、
再計算された前記位相差に基づいて振動振幅を変更する時に、前記振幅減衰を抑制するように振動振幅を変更するステップと、を含む数値制御方法。
【請求項１２】
指令ブロック実行中に取得される振動周波数、負荷トルク、モータ駆動電流値、加工により生じた切屑の長さ、のパラメータの内、少なくともいずれか１つのパラメータを監視するステップと、
監視対象である前記パラメータと設定された前記パラメータの閾値とを比較するステップと、
監視対象である前記パラメータが、閾値により定まるパラメータの許容される領域の範囲外である場合、前記指令ブロック実行中に閾値により定まる範囲内に収まるように振動回数を変更するステップと、を含む数値制御方法。
【請求項１３】
前記指令ブロック実行中に振動回数を変更する際、主軸位相と各軸の移動経路から、切屑分断に必要な空振り区間が生じるかを判断するステップと、
切屑分断に必要な空振り区間が得られない場合、振動振幅を空振り区間が生じるように補正するステップと、を含むことを特徴とする請求項１２に記載の数値制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、数値制御装置及び数値制御方法に関する。
【背景技術】
【０００２】
工作機械でワークを加工する際に、加工送り方向に切削工具とワークとを相対的に振動させ切屑を分断する方法がある。特許文献１には、移動に際して指定される振動の振幅とワークに対する工具の送り速度の比率から、加工プログラム中の指令ブロックに基づいて生成される振動前進位置に対する振動後退位置の時間的な遅れを位相差として算出し、位相差に基づき振動前進位置と振動後退位置とを移動経路として駆動軸ごとに生成する手段を有する数値制御装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５７４５７１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載の技術事項では、振動前進位置に対する振動後退位置の位相差は、指令ブロック単位に作成されるため、指令ブロック実行中に振動切削の主軸回転速度が変動する場合（例えば、周速一定制御または主軸オーバーライドで指令値に対する割合を変更した場合）、その変化による位相差の誤差を補正することができない。それにより、振動条件が適切に設定されず、切屑の分断が不十分になることや、工作機械の部品(ボールねじ等)、サーボモータ及び切削工具に過度な負荷を与えるという課題があった。【０００５】
本開示は、主軸回転速度が変化する場合においても、振動切削の振動条件を動的に追従させ、切屑の分断不良を防止し、工作機械及び切削工具が耐えられる負荷内で幅広い条件での加工が可能となる数値制御装置及び数値制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決するために、本開示にかかる数値制御装置は、工具と加工対象を相対的に振動させる制御を行う数値制御装置であって、主軸回転速度の変化を検出する主軸処理部と、振動前進位置に対する振動後退位置の時間的な遅れである位相差を算出する位相差算出部と、振動前進位置と振動後退位置の差分である振動振幅を算出する振動振幅算出部と、指令ブロック実行中に、主軸回転速度と主軸１回転当たりの振動回数より振動周波数を算出する振動周波数算出部と、を備え、主軸処理部が指令ブロック実行中に主軸回転速度の変化を検出した場合、位相差算出部は主軸回転速度の変化による振動振幅の変動を抑制する位相差を再計算し、前記振動周波数算出部は前記振動周波数に基づいて振幅減衰を算出し、振動振幅算出部は、再計算された位相差に基づいて振動振幅を変更する時に、前記振幅減衰を抑制するように振動振幅を変更することを特徴とする。
【発明の効果】
【０００７】
本開示にかかる数値制御装置は、主軸回転速度が変化する場合においても、振動切削の振動条件を動的に追従させ、切屑の分断不良を防止し、工作機械及び切削工具が耐えられる負荷内で幅広い条件での加工が可能となる。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１に係る数値制御装置の構成の一例を示すブロック図である。
【図２】実施の形態１に係る工作機械の軸の構成を模式的に示す図である。
【図３】実施の形態１に係る加工プログラムの一例を示す図である。
【図４】実施の形態１に係る補間処理部で算出される振動波形の例を示す図である。
【図５】実施の形態１に係る振動前進位置Ｒ１と振動後退位置Ｒ２の関係を模式的に示す図である。
【図６】従来技術における補間処理部で算出される振動波形の例を示す図である。
【図７】実施の形態１に係る振動条件を再設定する手順を示すフローチャートである
【図８】実施の形態２に係る数値制御装置の構成の一例を示すブロック図である。
【図９】実施の形態２に係る工作機械の軸の構成を模式的に示す図である。
【図１０】実施の形態２に係る振動回数の変更を模式的に示す図である。
【図１１】実施の形態２に係る振動条件を再設定する手順を示すフローチャートである。
【図１２】実施の形態３に係る送り軸の移動量と振動波形の関係を示した図である。
【図１３】実施の形態３における振動条件の再設定の手順を説明するフローチャートである。
【図１４】実施の形態１から３に係る制御演算部のハードウェア構成例である。
【図１５】実施の形態１から３に係る制御演算部のハードウェア構成例である。
【発明を実施するための形態】
【０００９】
以下に、本開示の実施の形態について添付の図面を用いて説明する。各図では、同一又は相当する部分に同一の符号を付している。重複する説明は、適宜簡略化あるいは省略する。なお、以下に説明される実施の形態により本開示が限定されるものではない。また、以下に示す図面においては、現実とは縮尺が異なる場合があるが、それによって本開示の内容は限定されない。
【００１０】
実施の形態１．
図１は、本開示の数値制御装置１の構成の一例を示すブロック図である。数値制御装置１は、駆動部１０と、入力操作部２０と、表示部３０と、制御演算部４０と、を有する。
【００１１】
駆動部１０は、加工対象及び工具のいずれか一方または両方を少なくとも２軸方向に駆動する機構である。数値制御装置１上で規定されたＸ軸、Ｚ軸方向にそれぞれ加工対象及び／または工具を移動させるＸ軸サーボモータ１２、Ｚ軸サーボモータ１３を有する。また、Ｘ軸サーボモータ１２とＺ軸サーボモータ１３の位置・速度に基づいて、それぞれの軸方向の加工対象及び／または工具の位置や速度の制御を行うＸ軸サーボ制御部１５、Ｚ軸サーボ制御部１６を有する。また、加工対象を固定する主軸を回転させる主軸モータ１１と、主軸モータ１１の位置、加工対象を固定する主軸の回転を制御する主軸サーボ制御部１４と、を有する。なお、本開示においては説明を簡単にするためＸ軸、Ｚ軸の２軸のみを例示しているが、これに限定されず３軸以上また各軸に複数の系統（例えば、Ｘ１、Ｘ２・・・）を制御する数値制御装置であってもよい。
【００１２】
図２は、実施の形態１に係る工作機械１１０の軸の構成を模式的に示す図である。工作機械１１０は数値制御装置１によって制御される。工作機械１１０の切削工具５０が取り付けられた刃物台５１は数値制御装置１のＸ軸サーボモータ１２、Ｚ軸サーボモータ１３によってそれぞれＸ軸、Ｚ軸方向の移動が制御される。加工対象６０は主軸台７０に固定されており、主軸台７０は主軸モータ１１によって位置及び回転が制御される。加工対象６０は、主軸台７０の回転軸７１を中心に主軸台７０上で回転する。
【００１３】
図２では、主軸台７０が回転軸７１を中心に回転している状態で、切削工具５０は移動経路５２に沿って移動し、加工対象６０の側面を切削する。但し、図中の移動経路５２には送り軸側（Ｘ軸またはＺ軸）の振動は表現されていない。なお、以降の説明における振動切削は、送り軸側（工具側）を振動させるものとして説明する。しかしながら、これに限定されず、工具と加工対象６０が相対的に振動していればよく、主軸側を振動させてもよい。
【００１４】
入力操作部２０は、キーボードやボタン、マウスなどの入力手段によって構成され、ユーザによる数値制御装置１に対するコマンドなどの入力、または加工プログラムもしくはパラメータなどの入力が行われる。表示部３０は、液晶表示装置などの表示手段によって構成され、制御演算部４０によって処理された情報が表示される。
【００１５】
制御演算部４０は、入力制御部４１と、データ設定部４２と、記憶部４３と、画面処理部４４と、解析処理部４５と、補間処理部４６と、主軸処理部４７と、加減速処理部４８と、軸データ出力部４９と、を有する。
【００１６】
入力制御部４１は、入力操作部２０から入力される情報を受け付ける。データ設定部４２は、入力制御部４１で受け付けられた情報を記憶部４３に記憶する。例えば、入力された内容が加工プログラム４３２の編集の場合には、記憶部４３に記憶されている加工プログラム４３２に編集された内容を反映させ、パラメータが入力された場合には記憶部４３のパラメータ４３１の記憶領域に記憶する。
【００１７】
記憶部４３は、制御演算部４０の処理で使用されるパラメータ４３１、実行される加工プログラム４３２、表示部３０に表示させる画面表示データ４３３などの情報を記憶する。また、記憶部４３には、パラメータ４３１、加工プログラム４３２以外の一時的に使用されるデータを記憶する共有エリア４３４が設けられている。画面処理部４４は、記憶部４３の画面表示データを表示部３０に表示させる制御を行う。
【００１８】
解析処理部４５は、移動指令解析部４５１と振動指令解析部４５２とを有する。移動指令解析部４５１は、記憶部４３に格納されている１以上の指令ブロック（或いは、単にブロックと称する）を含む加工プログラム４３２を読み込み、読み込んだ加工プログラム４３２を１ブロック毎に解析し、指令ブロックに含まれる軸の移動、回転、速度等の移動指令を生成する。振動指令解析部４５２は、加工プログラム４３２に振動指令が含まれているかを解析し、振動指令が含まれている場合に、振動指令に含まれる振動周波数と振動振幅などの振動条件を生成する。補間処理部４６と主軸処理部４７は、解析処理部４５が解析した移動指令、振動指令を取得する。
【００１９】
図３は加工プログラム４３２の一例を示す図である。加工プログラム４３２は、行（指令ブロック）ごとに読み込まれ、解析処理部４５において移動指令及び振動指令が解析され、後述する補間処理部４６において各指令に基づく各軸の駆動と振動が実行される。例示する加工プログラム中の各ブロックは、主軸回転速度指令、位置決め、振動切削、旋削加工の実行を意味している。各ブロックには実行される指令が含まれており、例えば、「Ｇ１Ｚ−１０．Ｆ０．１」に含まれるＦ指令は主軸１回転に対する送り軸（Ｘ軸またはＺ軸）の移動量を示し、Ｆ０．１の場合は０．１ｍｍ／ｒｅｖの速度で送り軸を移動させる。このような指令ブロックに含まれる移動指令と振動指令に基づいて振動切削を行う。
【００２０】
補間処理部４６は、位相差算出部４６２、振動振幅算出部４６３、振動周波数算出部４６４、振動移動量算出部４６５、移動量合成部４６６を有する。
【００２１】
図４を参照して補間処理部４６の機能を説明する。図４は補間処理部４６で算出される振動波形の例を示す図である。図４（ａ）は、主軸回転速度の時間的変化を示す図である。ある時刻ｔ０において指令ブロックの実行により振動切削が開始され、時刻ｔ２において主軸回転速度が増加することを示している。このような主軸回転速度の変化は後述する主軸処理部４７において検出され、補間処理部４６に提供される。
【００２２】
図４（ｂ）は振動前進位置Ｒ１と振動後退位置Ｒ２の関係を示す図である。縦軸は送り軸（Ｘ軸またはＺ軸）の移動量を示す。振動前進位置Ｒ１に対して、振動後退位置Ｒ２はｔ１−ｔ０だけ時間的に遅れて移動を開始する。位相差算出部４６２は、振動前進位置Ｒ１に対する振動後退位置Ｒ２のｔ１−ｔ０の時間的な遅れである位相差（図中のＷとＷ’）を算出する。位相差算出部４６２は、後述するように指令ブロック実行中に主軸回転速度の変化に応じて位相差Ｗを再計算する。振動条件や加工条件に基づいて、算出された位相差を用いて振動前進位置Ｒ１と振動後退位置Ｒ２の２種類の経路が作成される。
【００２３】
振動振幅算出部４６３は、指令ブロックの開始から完了までの各時間における振動前進位置Ｒ１と振動後退位置Ｒ２の移動量の差分である振動振幅を算出する。図４（ｃ）は時刻ｔ０で開始された処理が時刻ｔ４で終了するまでの振動振幅の時間的変化を示したものである。
【００２４】
振動周波数算出部４６４は、主軸１回転当たりの振動回数と主軸回転速度から振動周波数を算出する。図５は、振動前進位置Ｒ１と振動後退位置Ｒ２の関係を模式的に表した図である。図５中のＲ３は送り軸の１つの軸（Ｘ軸またはＺ軸）の移動経路を示しており、この移動経路Ｒ３の山の位置を結んだ直線が振動前進位置Ｒ１、谷の位置を結んだ直線が振動後退位置Ｒ２である。振動前進位置Ｒ１と振動後退位置Ｒ２の差分である振動振幅Ａ、主軸１回転当たりの送り軸の送り量Ｆ、主軸１回転当たりの所要時間Ｔは図示するような関係で表される。図５で例示するように主軸１回転当たりの振動回数が３．５回、主軸回転速度が６０００ｒ／ｍｉｎであるとすると、振動周波数は３５０Ｈｚとして算出される。
【００２５】
振動移動量算出部４６５は、各時間における振動前進位置Ｒ１と振動後退位置Ｒ２との差分に対して、振動波形を掛け合わせた振動移動量を算出する（図４（ｄ））。移動量合成部４６６は、１ブロック毎に解析された指令移動量と振動移動量とを合成した合成移動量を算出する（図４（ｅ））。
【００２６】
主軸処理部４７は、主軸回転指令作成部４７１、主軸回転速度算出部４７２を有する。主軸回転指令作成部４７１は、加工プログラム４３２に基づいて主軸モータ１１に指令すべき回転速度を演算し、回転速度指令を軸データ出力部４９へ出力する。主軸回転速度算出部４７２は、主軸モータ１１に取り付けられた図示していない、例えばエンコーダ等の検出器から主軸モータ１１の位相を取得し、主軸回転速度を算出する。或いは、主軸サーボ制御部１４からフィードバックされる信号に基づいて、主軸回転速度が算出されてもよい。主軸処理部４７は、指令ブロック実行中における主軸回転速度を監視し、主軸回転速度の変化を検出する。例えば、主軸回転速度算出部４７２が指令ブロック実行中の主軸回転速度を継続的に算出することにより、主軸処理部４７は主軸回転速度の変化を検出する。また、主軸処理部４７は継続的に算出される主軸回転速度を逐次補間処理部４６側に送信する。
【００２７】
加減速処理部４８は、補間処理部４６から出力された各駆動軸の合成移動量を、予め指定された加減速パターンに従って加減速を考慮した単位時間当たりの移動指令に変換する。軸データ出力部４９は、主軸回転指令、及び、加減速処理部４８で処理された送り軸の移動指令及び振動指令を駆動部１０の各軸に出力する。
【００２８】
ここで、位相差Ｗを再計算する理由について説明する。加工プログラム４３２中に定義されている振動振幅送り比率Ｑは、振動振幅Ａと、主軸の回転毎送り量Ｆの比率であるため、次式（１）の関係にある。
Ｑ＝Ａ／Ｆ  ・・・（１）
【００２９】
主軸１回転当たりの所要時間をＴとすると、位相差Ｗ、振動振幅Ａ、主軸の回転毎送り量Ｆは、次式（２）の関係があり、（１）と（２）式から位相差Ｗについて（３）式が示される。
Ａ／Ｗ＝Ｆ／Ｔ  ・・・（２）
Ｗ＝ＡＴ／Ｆ＝ＱＴ  ・・・（３）
【００３０】
（３）式は、ブロック実行中の主軸回転速度の変化に伴って、主軸１回転当たりの所要時間Ｔが変化した場合、位相差Ｗは主軸１回転当たり所要時間Ｔに依存して増減することを示している。
【００３１】
図６は、従来技術における補間処理部で算出される振動波形の例を示す図である。図４では主軸回転速度の増加に対して位相差Ｗが再計算されるが、図６においては図６（ｂ）のように位相差Ｗを固定している。周速一定制御または主軸オーバーライドでの指令値から割合を変更することにより、主軸回転速度が指令ブロック実行中に増加した場合、指令ブロックで指定された振動条件のまま位相差Ｗを一定とすると、図６（ｃ）から６（ｅ）に示されるように、主軸回転速度の変化前後で振動前進位置Ｒ１と振動後退位置Ｒ２の差分である振動振幅が増加する。このような変動は工作機械の部品等への過剰な振幅となる可能性がある。逆に、主軸回転速度が遅くなった場合に位相差Ｗを固定していると、振動振幅が不足して切屑の分断が不十分となり、加工不良が発生する可能性が生じる。
【００３２】
これに対して、図４では指令ブロック実行中に主軸回転速度の変化に対して、振動振幅の変動を抑制するために主軸回転速度変化後の位相差Ｗ’を再計算する。再計算された位相差Ｗ’に基づいて振動振幅の変動を抑制するように振動後退位置Ｒ２の経路を調整することによって、振動振幅の過剰または過少による不具合を解消することができる。
【００３３】
また振動振幅成分は実際にサーボモータを駆動する前に位置ループゲインを通すこととなる。位置ループゲインはローパスフィルタの役割があり、送り軸の振動周波数が高くなると振幅減衰が発生する。そこで、好ましい付加的な構成として、振動周波数算出部４６４は振動周波数に基づいて振幅減衰を算出する。振動振幅算出部４６３は、再計算された位相差に基づいて振動振幅を変更する時に、振幅減衰を抑制するように振動振幅を変更する。このようにすれば、主軸回転速度の変動に伴う振動周波数の増減に対して、振動振幅の減衰を緩和することが可能となり、振動振幅の過剰又は過少による不具合を解消することができる。このような振動減衰の抑制は、以降に説明する実施の形態においても組み合わせ可能である。
【００３４】
次に、実施の形態１における振動条件を再設定する手順を図７のフローチャートを用いて説明する。当該フローチャートの手順により本開示における数値制御装置１の数値制御方法が示される。
【００３５】
ステップＳ１０１において加工プログラム４３２に含まれる指令ブロックが実行され、振動条件が設定される。ステップＳ１０２において、主軸回転及び加工が開始される。ステップＳ１０３において、主軸処理部４７は主軸回転速度の変化の有無を検出する。主軸回転速度の変化が検出された場合、ステップＳ１０５に進む。一方、主軸回転速度の変化がない場合、ステップＳ１０４において、指令ブロックで定義された振動条件は維持される。一方、ステップＳ１０５では、位相差算出部４６２は主軸回転速度変化後での振動振幅Ａの変動を抑制する位相差Ｗを再計算する。ここで、振動振幅Ａの変動抑制は、指令ブロック実行中の主軸回転速度変化前後の振動振幅Ａが一定となることが理想的ではあるが、完全に一定値となることが要求されるものではなく、制御演算部４０の演算能力、加工プログラム４３２等の実際の加工における種々の要因による変動は許容される。ステップＳ１０６において、振動振幅算出部４６３が、再計算された位相差Ｗに基づいて振動後退位置Ｒ２の移動経路を調整することにより、振動振幅Ａが変更される。
【００３６】
ステップＳ１０７において、指令ブロックが終了したかの判断がされ、指令ブロックが終了していない場合、ステップＳ１０３の前に戻り、主軸回転速度の監視が繰り返される。指令ブロックが終了している場合には処理が終了する。
【００３７】
以上、実施の形態１に係る数値制御装置１は、工具と加工対象６０を相対的に振動させる制御を行う数値制御装置１であって、主軸回転速度の変化を検出する主軸処理部４７と、振動前進位置に対する振動後退位置の時間的な遅れである位相差を算出する位相差算出部４６２と、振動前進位置と振動後退位置の移動量の差分から振動振幅を算出する振動振幅算出部４６３と、を備え、主軸処理部４７が加工プログラムの指令ブロック実行中に主軸回転速度の変化を検出した場合、位相差算出部４６２は主軸回転速度の変化による振動振幅の変動を抑制する位相差を再計算し、振動振幅算出部４６３は、再計算された位相差に基づいて振動振幅を変更する、構成としている。このような構成によって、主軸回転速度が変化する場合においても、振動切削の振動条件を動的に追従させ、切屑の分断不良を防止し、工作機械及び切削工具が耐えられる負荷内で幅広い条件での加工が可能となる。
【００３８】
実施の形態２．
実施の形態２に係る数値制御装置１は、振動回数変更部４６１を更に備える構成としている。実施の形態２に係る数値制御装置１の説明に図８を用いるが、各部の構成について実施の形態１と重複する説明は省略する。
【００３９】
実施の形態１で述べたように、振動切削の振動周波数は主軸回転速度と主軸１回転当たりの振動回数により算出される。指令ブロック実行中に主軸回転速度が速くなると振動周波数も高くなりすぎ、工作機械の部品（ボールねじ等）、サーボモータ及び切削工具に過度な負荷を与えてしまう可能性がある。このため、振動回数変更部４６１は、指令ブロック実行中の主軸回転速度の変化に対応して、主軸１回転当たりの振動回数を動的に変化させる。
【００４０】
図９は実施の形態２に係る工作機械１１０の軸の構成を模式的に示す図である。図では加工対象６０に対して周速一定制御で端面加工を行った例を示している。主軸台７０が回転軸７１を中心に回転している状態で、切削工具５０は移動経路５３に沿って移動し、加工対象６０の端面を切削する。周速一定制御の場合、Ｘ軸の変化に対して一定の周速度になるように主軸回転速度が制御される。指令ブロック実行中に加工径が小さくなるほど（すなわち、Ｘ座標が中心に近づくほど）主軸回転速度は速くなり、振動周波数は主軸回転速度に比例して高くなる。なお、周速一定制御による端面加工は指令ブロック実行中に振動周波数が変動する一例として示したものであり、かかる制御に本開示は限定されない。
【００４１】
振動回数変更部４６１は振動周波数算出部４６４により算出される振動周波数と、設定される振動周波数の閾値と比較する。振動周波数算出部４６４は指令ブロック実行中に継続的に振動周波数を算出しており、振動回数変更部４６１はその変動を監視する。算出された振動周波数が閾値により定められる振動周波数領域の範囲外となる場合、振動回数変更部４６１は、現在設定されている主軸１回転当たりの振動回数を変更し、振動周波数領域の範囲内において、工作機械１１０が運転できるように制御する。
【００４２】
図１０は、振動回数の変更を模式的に示す図である。図１０（ａ）は送り軸であるＸ軸の座標が時間経過とともに５０から０に向かって減少し、切削工具５０が移動経路５３に沿って回転軸７１向かって加工対象６０の加工が進む状況を示す。図１０（ｂ）は主軸回転速度の変化を示しており、Ｘ軸位置の減少に対して、主軸回転速度は増加して４５００ｒ／ｍｉｎに達して一定となることを示している。図１０（ｃ）は振動回数変更部４６１により設定される主軸１回転当たりの振動回数を示し、図１０（ｄ）は振動周波数算出部４６４により算出される振動周波数を示す。
【００４３】
振動切削において、切屑を効率よく分断するには主軸１回転当たりの振動回数は自然数でないことが必要であり、理想的な振動回数はｎを用いてｎ＋０．５（ｎ＝０，１，２・・・）で表される。すなわち、ｎは０または自然数である。なお、切屑を効率よく分断するとは、切屑の長さにばらつきのある分断ではなく、切屑を平均的に短く分断することをいう。また、ｎ＋０．５からずれがある場合、切屑の長さに多少のばらつきが生じることになるが、加工への実質的な影響がでなければそのずれは許容される。加工への実質的な影響とは、切屑の分断不良が発生したり、切屑の長さに、例えば±５０％程度以上のばらつきが生じたりすることを意味する。
【００４４】
図１０（ｃ）では、加工プログラム４３２によって定まる振動回数の初期値の例として３．５回が設定されている。図１０（ｄ）では、設定された振動周波数の閾値の例として１００Ｈｚが設定される。設定された振動周波数の閾値はパラメータ４３１として記憶部４３に格納されている。パラメータ４３１として設定された振動周波数の閾値は工作機械や切削工具の負荷のフィードバックに応じて動的に変更可能であってもよい。
【００４５】
振動周波数の上限の閾値が１００Ｈｚの場合、主軸１回転当たりの送り軸の振動回数３．５回、２．５回、１．５回、０．５回において許容される主軸回転速度はそれぞれ、
１００（Ｈｚ）×６０（ｓ）／３．５（回／ｒ）＝１７１４（ｒ／ｍｉｎ）
１００（Ｈｚ）×６０（ｓ）／２．５（回／ｒ）＝２４００（ｒ／ｍｉｎ）
１００（Ｈｚ）×６０（ｓ）／１．５（回／ｒ）＝４０００（ｒ／ｍｉｎ）
１００（Ｈｚ）×６０（ｓ）／０．５（回／ｒ）＝１２０００（ｒ／ｍｉｎ）
となる。周速一定制御で切削工具５０のＸ軸の座標が５０から０に移動して、主軸回転速度が増加していく場合、主軸回転速度が１７１４ｒ／ｍｉｎを超えると、振動回数の初期値である３．５回では閾値の１００Ｈｚを超えることになるため、振動回数変更部４６１は指令ブロック実行中に主軸１回転当たりの振動回数を３．５回から２．５回に変更する。これにより、算出された振動周波数が閾値により定まる振動周波数領域（１００Ｈｚ以下）において制御される。なお、振動周波数の上限の閾値のみを設定していたが、下限の閾値、例えば１０Ｈｚを設け、算出された振動周波数を閾値により定まる振動周波数領域の範囲内（この場合は、下限の閾値１０Ｈｚ以上から上限の閾値１００Ｈｚ以内）で制御することも可能である。
【００４６】
振動回数の変更は初期値から自然数を増減させるものであるが、閾値により定まる周波数領域の範囲内に収まり、かつ、変更前後の差が最小となる振動回数が選択される。例えば、初期値の振動回数が３．５回である場合に、２．５回では閾値により定まる振動周波数領域の範囲に収まらない場合、次の振動回数の候補としては１．５回が選択される。
【００４７】
次に、実施の形態２における振動条件の再設定の手順を図１１のフローチャートを用いて説明する。当該フローチャートの手順により本開示における数値制御装置１の数値制御方法が示される。図１１において、図７と同様のステップについては重複する説明を省略する。ステップＳ２０１からステップＳ２０６はステップＳ１０１からステップＳ１０６と同様、またステップＳ２０９とステップＳ１０７は同様であるのでそれぞれ説明を省略する。
【００４８】
ステップＳ２０７において、振動回数変更部４６１は、振動周波数算出部４６４により算出される振動周波数と、設定された振動周波数の閾値とを比較し、算出された振動周波数が閾値により定まる振動周波数領域の範囲内であるかを判断する。算出された振動周波数が振動周波数領域の範囲内である場合、振動回数は変更されずステップＳ２０９に進む。一方、算出された振動周波数が範囲外である場合、ステップＳ２０８に進み、算出された振動周波数が振動周波数領域の範囲内となる振動回数に指令ブロック実行中に変更される。変更された振動条件でステップＳ２０９に進む。
【００４９】
また、閾値により定まる振動周波数領域の一部の周波数帯で工作機械の機械的構造等の関係で共振が発生する場合がある。このような場合、好ましい付加的な構成として、振動周波数領域における共振周波数帯を避けるよう設定することが望ましい。振動回数変更部４６１は、ステップＳ２０７において、算出された振動周波数が閾値により定まる振動周波数領域の範囲内であるのかを判断すると共に、共振周波数帯に含まれるかを判断する。算出された振動周波数が振動周波数領域の範囲内であっても、共振周波数帯に含まれている場合、振動周波数領域内に収まり、かつ、共振周波数帯に含まれない振動周波数とするために、変更前後の差が最小となる振動回数を選択する。
【００５０】
なお、ステップＳ２０７では振動周波数の閾値に基づいて振動回数を変更するかの判断がされるが、切屑の長さを振動回数変更の判断基準としてもよい。切屑の長さＬは主軸１回転当たりの振動回数Ｋ、加工対象６０の加工径をｒとすると、
Ｌ＝２πｒ／Ｋ・・・（４）
で概算される。上述の周速一定制御で加工対象６０の端面加工を行う場合、切削工具５０がＸ軸の座標が５０から０に移動すると、加工径ｒの減少により切屑の長さが小さくなる。切屑が小さくなりすぎるとチップコンベアなどに切屑が詰まるなどの問題が生じる場合がある。
【００５１】
そこで、設定された振動周波数の閾値の代わりに切屑の長さをステップＳ２０７の判断基準とすることが可能である。この場合、指令ブロック実行中に、切削加工により生じた切屑の長さを取得するカメラ等の認識手段を設け、振動回数変更部４６１は認識手段から切屑の長さに関する情報を取得し、記憶部４３に記憶されているパラメータ４３１として設定された切屑の長さの閾値と比較する。切削加工により生じた切屑の長さが、閾値により定まる切屑の長さの領域の範囲外である場合、ステップＳ２０８に進んで、振動回数変更部４６１は指令ブロック実行中に振動回数を変更する。切削加工により生じた切屑の長さが、閾値により定まる切屑の長さの領域の範囲内であれば、振動回数は変更されずステップＳ２０９に進む。これにより、切屑の長さが閾値により定まる領域の範囲内となるように制御され、チップコンベアなどへの切屑の詰まりを防止すると共に、振動切削の振動条件を動的に追従させ、切屑の分断不良を防止し、工作機械及び切削工具が耐えられる負荷内で幅広い条件での加工が可能となる。
【００５２】
また、振動周波数、切屑の長さの閾値を設定する代わりに、負荷トルクの閾値を設定することも可能である。この場合、振動回数変更部４６１は、指令ブロック実行中の駆動部１０の主軸サーボ制御部１４、Ｘ軸サーボ制御部１５、Ｚ軸サーボ制御部１６から得られたモータ駆動電流値に基づいて現在の負荷トルクを算出する。ステップＳ２０７において、振動回数変更部４６１は、算出された負荷トルクと記憶部４３にパラメータ４３１として設定された負荷トルクの閾値とを比較する。算出された負荷トルクが閾値により定まる負荷トルクの領域の範囲外となっている場合、ステップＳ２０８に進んで、振動回数変更部４６１は指令ブロック実行中に算出された負荷トルクが閾値により定まる負荷トルクの領域の範囲内となるように振動回数を変更する。算出された負荷トルクが閾値により定まる負荷トルクの領域の範囲内であれば、振動回数は変更されず、ステップＳ２０９に進む。これにより、振動切削の振動条件を動的に追従させ、切屑の分断不良を防止し、工作機械及び切削工具が耐えられる負荷内で幅広い条件での加工が可能となる。なお、負荷トルクを算出に代わって、モータ駆動電流値に閾値を設定し、上記振動周波数、切屑の長さ、負荷トルクと同様にステップＳ２０７において振動回数変更の必要性の判断対象としてもよい。
【００５３】
図１１では、振動回数変更部４６１による振動回数の変更（すなわち、ステップＳ２０７とＳ２０８）はステップＳ２０５、Ｓ２０６の後に実行されるとしているが、同時並行で実行されてもよい。また、ステップＳ２０７とステップＳ２０８による振動回数変更が実行された後、ステップＳ２０４、Ｓ２０５による位相差の再計算と振動振幅Ａの変更が実行されてもよい。ステップＳ２０７における振動回数変更部４６１が指令ブロック実行中の監視対象としているパラメータ４３１として振動周波数、切屑の長さ、負荷トルク、モータ駆動電流値を上げたが、これらの内、少なくとも１つを監視対象とすればよく、複数のパラメータ４３１を組み合わせ、いずれか１つのパラメータが閾値により許容される範囲外となれば、振動回数が変更されてもよい。例えば、振動周波数と切屑の長さの２つのパラメータを監視対象として、振動周波数は閾値で定められる領域の範囲内であるが、切屑の長さが閾値で定められる領域の範囲外となれば、振動回数が変更される。
【００５４】
以上、実施の形態２に係る数値制御装置１は、振動回数変更部４６１を更に備え、指令ブロック実行中に、振動回数変更部４６１は、振動周波数算出部４６４が算出する振動周波数と、設定された振動周波数領域の閾値とを比較し、算出された振動周波数が閾値により定まる振動周波数領域の範囲外である場合、指令ブロック実行中に閾値により定まる範囲内に収まるように振動回数を変更する、構成としている。このような構成によって、主軸回転速度が変化する場合において、振動切削の振動条件を動的に追従させ、切屑の分断不良を防止し、工作機械及び切削工具が耐えられる負荷内で幅広い条件での加工が可能となる。
【００５５】
実施の形態３．
実施の形態３に係る数値制御装置１は、振動回数を変更する場合、切屑の空振り区間を設けるように振動振幅を補正する構成を有する。
【００５６】
実施の形態２において、振動回数変更部４６１は、変更後の振動回数としてｎ（ｎ＝0，１，２，・・・）を用いてｎ＋０．５を満たす条件で選択することを説明した。しかしながら、振動周波数を下げるために０．５回を振動回数の候補としたが、変更しても閾値により定まる振動周波数領域の範囲内に収めることができない場合、ｎ＋０．５の条件を満たす振動回数を選択することができない。このような場合には、理想的な条件であるｎ＋０．５からずらした、例えばｎ＋０．３などの振動回数を選択することも許容される。
【００５７】
図１２は送り軸の移動量と振動波形の関係を示した図である。縦軸を送り軸（Ｘ軸またはＺ軸）の移動量、横軸を主軸の位相としている。実線は送り軸の振動波形であり、破線は主軸１回転前の送り軸の振動波形を示したものである。
【００５８】
振動切削で切屑の分断を効率的に行うには、振動回数としてｎ＋０．５を選択することで、主軸Ｎ回転目（Ｎは自然数）の振動切削経路と次の主軸Ｎ＋１回転目の振動切削経路の位相をずらし、主軸Ｎ回転目で切削済みの経路を部分的に次の主軸Ｎ＋１回転目の振動切削経路が通過するようにする。これにより、主軸Ｎ＋１回転目の振動切削経路で切屑が発生しない空振り区間が生じ、切屑を順次分断しながら加工することが可能となる。なお、実際の加工においては、主軸Ｎ回転目は、次のＮ＋１回転目だけではなく、それ以降の回転、例えばＮ＋２回転目とも移動経路が重なる場合があり、図１２で例示した場合には限られない。
【００５９】
図１２（ａ）はｎ＋０．５を満たす理想的な振動回数が設定された振動波形を示しており、主軸Ｎ回転目の移動経路と主軸Ｎ＋１回転目の移動経路が一部重なり、空振り区間が設けられている。これに対して図１２（ｂ）はｎ＋０．５からずれた振動回数が設定された振動波形を示しており、主軸Ｎ回転目の移動経路と主軸Ｎ＋１回転目の移動経路が重なる空振り区間が得られず、切屑の分断が十分に実行されない。
【００６０】
そこで、図１２（ｃ）に示すように、ｎ＋０．５からずれた振動回数が設定された場合、空振り区間が生じるように振動振幅を補正する。振動回数変更部４６１が０．５に０または自然数を足し合わせた数以外の振動回数に変更した場合、振動振幅算出部４６３は、主軸位相と各軸の移動経路から、空振り区間が生じるように振動振幅を補正する。
【００６１】
図１３は、実施の形態３における振動条件の再設定の手順を説明するフローチャートである。当該フローチャートの手順により本開示における数値制御装置１の数値制御方法が示される。図１３において、図１１と同様のステップについては重複する説明を省略する。ステップＳ３０１からステップＳ３０６はステップＳ２０１からステップＳ２０６と同様、またステップＳ３１１とステップＳ２０９は同様であるのでそれぞれ説明を省略する。
【００６２】
図１３のステップＳ３０７において振動周波数算出部４６４により算出される振動周波数が閾値により定まる振動周波数領域の範囲内であるかが判断される。なお、実施の形態２で説明した通り、振動周波数以外に、切屑の長さ、負荷トルク、モータ駆動電流を振動回数変更の判断基準のパラメータとすることが可能である。
【００６３】
ステップＳ３０７で、算出された振動周波数が閾値により定まる振動周波数領域の範囲外である場合、ステップＳ３０８に進み、理想的な振動回数ｎ＋０．５で変更可能かが判断される。ここで、変更可能である場合、ステップＳ３０９において、振動回数ｎ＋０．５の条件を満たす振動回数が設定される。変更ができない場合、ステップＳ３１０により、振動回数をｎ＋０．５を満たさない条件で変更すると共に、空振り区間が生じるよう振動振幅Ａを補正する。なお、理想的な振動回数からずれがあっても（例えば、ｎ＋０．３）、切屑分断に必要な空振り区間が得られる場合、ステップＳ３１０において振動回数の変更だけが実行されてもよい。
【００６４】
以上、実施の形態３に係る数値制御装置１は、振動回数変更部４６１が０．５に０または自然数を足し合わせた数以外の振動回数に変更する場合、振動振幅算出部４６３は、主軸位相と各軸の移動経路に基づいて、空振り区間が生じるように振動振幅を補正する、構成にしている。このような構成によって、主軸回転速度が変化する場合において、振動切削の振動条件を動的に追従させ、切屑の分断不良を防止し、工作機械及び切削工具が耐えられる負荷内で幅広い条件での加工が可能となる。また振動回数が理想的な条件からずれがあっても切屑の切断が効率的に実行される。
【００６５】
次に、数値制御装置１が備える制御演算部４０のハードウェア構成について説明する。図１４は、実施の形態１から３にかかる制御演算部４０のハードウェア構成例を示す図である。制御演算部４０は、図１４に示した、すなわちプロセッサ４０１及びメモリ４０２により実現することができる。プロセッサ４０１の例は、ＣＰＵ（Central  Processing  Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサ（Digital  Signal  Processor）ともいう）またはシステムＬＳＩ（Large  Scale  Integration）である。メモリ４０２の例は、ＲＡＭ（Random  Access  Memory）またはＲＯＭ（Read  Only  Memory）などである。
【００６６】
制御演算部４０は、プロセッサ４０１が、メモリ４０２で記憶されている、制御演算部４０の動作を実行するためのプログラムを読み出して実行することにより実現される。また、このプログラムは、制御演算部４０の手順または方法をコンピュータに実行させるものであるともいえる。メモリ４０２は、プロセッサ４０１が各種処理を実行する際の一時メモリにも使用される。
【００６７】
プロセッサ４０１が実行するプログラムは、コンピュータで実行可能な、データ処理を行うための複数の命令を含むコンピュータ読取り可能かつ非遷移的な（non-transitory）記録媒体を有するコンピュータプログラムプロダクトであってもよい。プロセッサ４０１が実行するプログラムは、複数の命令がデータ処理を行うことをコンピュータに実行させる。
【００６８】
図１５で示すように制御演算部４０を専用のハードウェア（処理回路４０３）で実現してもよい。例えば、単一回路、複合回路、プログラム化されたプロセッサ、並列プログラム化されたプロセッサ、ＡＳＩＣ(Application Specific Integrated Circuit)、ＦＰＧＡ（Field-Programmable Gate Array）、又はこれらを組み合わせたものである。また、制御演算部４０の機能について、一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしてもよい。
【００６９】
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略又は変更することも可能である。
【符号の説明】
【００７０】
１  数値制御装置、１０  駆動部、２０  入力操作部、３０  表示部、４０  制御演算部、１１  主軸モータ、１２  Ｘ軸サーボモータ、１３  Ｚ軸サーボモータ、１４  主軸サーボ制御部、１５  Ｘ軸サーボ制御部、１６  Ｚ軸サーボ制御部、４１  入力制御部、４２  データ設定部、４３  記憶部、４４  画面処理部、４５  解析処理部、４６  補間処理部、４７  主軸処理部、４８  加減速処理部、４９  軸データ出力部、５０  切削工具、５１  刃物台、６０  加工対象、７０  主軸台、７１  回転軸、４０１  プロセッサ、４０２  メモリ、４０３  処理回路、４３１  パラメータ、４３２  加工プログラム、４３３  画面表示データ、４３４  共有エリア、４５１  移動指令解析部、４５２  振動指令解析部、４６１  振動回数変更部、４６２  位相差算出部、４６３  振動振幅算出部、４６４  振動周波数算出部、４６５  振動移動量算出部、４６６  移動量合成部、４７１  主軸回転指令作成部、４７２  主軸回転速度算出部
【要約】
工具と加工対象を相対的に振動させる制御を行う数値制御装置であって、主軸回転速度の変化を検出する主軸処理部と、振動前進位置に対する振動後退位置の時間的な遅れである位相差を算出する位相差算出部と、振動前進位置と振動後退位置の差分である振動振幅を算出する振動振幅算出部と、を備え、主軸処理部が指令ブロック実行中に主軸回転速度の変化を検出した場合、位相差算出部は主軸回転速度の変化による振動振幅の変動を抑制する位相差を再計算し、振動振幅算出部は、再計算された位相差に基づいて振動振幅を変更する、ことを特徴とする。【図１】
0006984790.tif 000002
【図２】
0006984790.tif 000003
【図３】
0006984790.tif 000004
【図４】
0006984790.tif 000005
【図５】
0006984790.tif 000006
【図６】
0006984790.tif 000007
【図７】
0006984790.tif 000008
【図８】
0006984790.tif 000009
【図９】
0006984790.tif 000010
【図１０】
0006984790.tif 000011
【図１１】
0006984790.tif 000012
【図１２】
0006984790.tif 000013
【図１３】
0006984790.tif 000014
【図１４】
0006984790.tif 000015
【図１５】
0006984790.tif 000016