(58)【調査した分野】(Int.Cl.,DB名)
前記振動振幅算出部は、再計算された前記位相差に基づいて振動後退位置の経路を調整することにより、振動振幅を変更することを特徴とする請求項1に記載の数値制御装置。
前記振動回数変更部は、閾値により定まる振動周波数領域の範囲内に収まり、かつ、変更前後の差が最小となる振動回数に変更することを特徴とする請求項3に記載の数値制御装置。
前記振動回数変更部は、算出された前記振動周波数が、振動周波数領域内であるが共振周波数帯に含まれる場合、振動周波数領域内で、かつ、共振周波数帯に含まれない振動周波数となる振動回数に変更することを特徴とする請求項3または4に記載の数値制御装置。
指令ブロック実行中に取得される振動周波数、負荷トルク、モータ駆動電流値、加工により生じた切屑の長さ、のパラメータの内、少なくともいずれか1つのパラメータを監視するステップと、
監視対象である前記パラメータと設定された前記パラメータの閾値とを比較するステップと、
監視対象である前記パラメータが、閾値により定まるパラメータの許容される領域の範囲外である場合、前記指令ブロック実行中に閾値により定まる範囲内に収まるように振動回数を変更するステップと、を含む数値制御方法。
【発明を実施するための形態】
【0009】
以下に、本開示の実施の形態について添付の図面を用いて説明する。各図では、同一又は相当する部分に同一の符号を付している。重複する説明は、適宜簡略化あるいは省略する。なお、以下に説明される実施の形態により本開示が限定されるものではない。また、以下に示す図面においては、現実とは縮尺が異なる場合があるが、それによって本開示の内容は限定されない。
【0010】
実施の形態1.
図1は、本開示の数値制御装置1の構成の一例を示すブロック図である。数値制御装置1は、駆動部10と、入力操作部20と、表示部30と、制御演算部40と、を有する。
【0011】
駆動部10は、加工対象及び工具のいずれか一方または両方を少なくとも2軸方向に駆動する機構である。数値制御装置1上で規定されたX軸、Z軸方向にそれぞれ加工対象及び/または工具を移動させるX軸サーボモータ12、Z軸サーボモータ13を有する。また、X軸サーボモータ12とZ軸サーボモータ13の位置・速度に基づいて、それぞれの軸方向の加工対象及び/または工具の位置や速度の制御を行うX軸サーボ制御部15、Z軸サーボ制御部16を有する。また、加工対象を固定する主軸を回転させる主軸モータ11と、主軸モータ11の位置、加工対象を固定する主軸の回転を制御する主軸サーボ制御部14と、を有する。なお、本開示においては説明を簡単にするためX軸、Z軸の2軸のみを例示しているが、これに限定されず3軸以上また各軸に複数の系統(例えば、X1、X2・・・)を制御する数値制御装置であってもよい。
【0012】
図2は、実施の形態1に係る工作機械110の軸の構成を模式的に示す図である。工作機械110は数値制御装置1によって制御される。工作機械110の切削工具50が取り付けられた刃物台51は数値制御装置1のX軸サーボモータ12、Z軸サーボモータ13によってそれぞれX軸、Z軸方向の移動が制御される。加工対象60は主軸台70に固定されており、主軸台70は主軸モータ11によって位置及び回転が制御される。加工対象60は、主軸台70の回転軸71を中心に主軸台70上で回転する。
【0013】
図2では、主軸台70が回転軸71を中心に回転している状態で、切削工具50は移動経路52に沿って移動し、加工対象60の側面を切削する。但し、図中の移動経路52には送り軸側(X軸またはZ軸)の振動は表現されていない。なお、以降の説明における振動切削は、送り軸側(工具側)を振動させるものとして説明する。しかしながら、これに限定されず、工具と加工対象60が相対的に振動していればよく、主軸側を振動させてもよい。
【0014】
入力操作部20は、キーボードやボタン、マウスなどの入力手段によって構成され、ユーザによる数値制御装置1に対するコマンドなどの入力、または加工プログラムもしくはパラメータなどの入力が行われる。表示部30は、液晶表示装置などの表示手段によって構成され、制御演算部40によって処理された情報が表示される。
【0015】
制御演算部40は、入力制御部41と、データ設定部42と、記憶部43と、画面処理部44と、解析処理部45と、補間処理部46と、主軸処理部47と、加減速処理部48と、軸データ出力部49と、を有する。
【0016】
入力制御部41は、入力操作部20から入力される情報を受け付ける。データ設定部42は、入力制御部41で受け付けられた情報を記憶部43に記憶する。例えば、入力された内容が加工プログラム432の編集の場合には、記憶部43に記憶されている加工プログラム432に編集された内容を反映させ、パラメータが入力された場合には記憶部43のパラメータ431の記憶領域に記憶する。
【0017】
記憶部43は、制御演算部40の処理で使用されるパラメータ431、実行される加工プログラム432、表示部30に表示させる画面表示データ433などの情報を記憶する。また、記憶部43には、パラメータ431、加工プログラム432以外の一時的に使用されるデータを記憶する共有エリア434が設けられている。画面処理部44は、記憶部43の画面表示データを表示部30に表示させる制御を行う。
【0018】
解析処理部45は、移動指令解析部451と振動指令解析部452とを有する。移動指令解析部451は、記憶部43に格納されている1以上の指令ブロック(或いは、単にブロックと称する)を含む加工プログラム432を読み込み、読み込んだ加工プログラム432を1ブロック毎に解析し、指令ブロックに含まれる軸の移動、回転、速度等の移動指令を生成する。振動指令解析部452は、加工プログラム432に振動指令が含まれているかを解析し、振動指令が含まれている場合に、振動指令に含まれる振動周波数と振動振幅などの振動条件を生成する。補間処理部46と主軸処理部47は、解析処理部45が解析した移動指令、振動指令を取得する。
【0019】
図3は加工プログラム432の一例を示す図である。加工プログラム432は、行(指令ブロック)ごとに読み込まれ、解析処理部45において移動指令及び振動指令が解析され、後述する補間処理部46において各指令に基づく各軸の駆動と振動が実行される。例示する加工プログラム中の各ブロックは、主軸回転速度指令、位置決め、振動切削、旋削加工の実行を意味している。各ブロックには実行される指令が含まれており、例えば、「G1Z−10.F0.1」に含まれるF指令は主軸1回転に対する送り軸(X軸またはZ軸)の移動量を示し、F0.1の場合は0.1mm/revの速度で送り軸を移動させる。このような指令ブロックに含まれる移動指令と振動指令に基づいて振動切削を行う。
【0020】
補間処理部46は、位相差算出部462、振動振幅算出部463、振動周波数算出部464、振動移動量算出部465、移動量合成部466を有する。
【0021】
図4を参照して補間処理部46の機能を説明する。
図4は補間処理部46で算出される振動波形の例を示す図である。
図4(a)は、主軸回転速度の時間的変化を示す図である。ある時刻t0において指令ブロックの実行により振動切削が開始され、時刻t2において主軸回転速度が増加することを示している。このような主軸回転速度の変化は後述する主軸処理部47において検出され、補間処理部46に提供される。
【0022】
図4(b)は振動前進位置R1と振動後退位置R2の関係を示す図である。縦軸は送り軸(X軸またはZ軸)の移動量を示す。振動前進位置R1に対して、振動後退位置R2はt1−t0だけ時間的に遅れて移動を開始する。位相差算出部462は、振動前進位置R1に対する振動後退位置R2のt1−t0の時間的な遅れである位相差(図中のWとW’)を算出する。位相差算出部462は、後述するように指令ブロック実行中に主軸回転速度の変化に応じて位相差Wを再計算する。振動条件や加工条件に基づいて、算出された位相差を用いて振動前進位置R1と振動後退位置R2の2種類の経路が作成される。
【0023】
振動振幅算出部463は、指令ブロックの開始から完了までの各時間における振動前進位置R1と振動後退位置R2の移動量の差分である振動振幅を算出する。
図4(c)は時刻t0で開始された処理が時刻t4で終了するまでの振動振幅の時間的変化を示したものである。
【0024】
振動周波数算出部464は、主軸1回転当たりの振動回数と主軸回転速度から振動周波数を算出する。
図5は、振動前進位置R1と振動後退位置R2の関係を模式的に表した図である。
図5中のR3は送り軸の1つの軸(X軸またはZ軸)の移動経路を示しており、この移動経路R3の山の位置を結んだ直線が振動前進位置R1、谷の位置を結んだ直線が振動後退位置R2である。振動前進位置R1と振動後退位置R2の差分である振動振幅A、主軸1回転当たりの送り軸の送り量F、主軸1回転当たりの所要時間Tは図示するような関係で表される。
図5で例示するように主軸1回転当たりの振動回数が3.5回、主軸回転速度が6000r/minであるとすると、振動周波数は350Hzとして算出される。
【0025】
振動移動量算出部465は、各時間における振動前進位置R1と振動後退位置R2との差分に対して、振動波形を掛け合わせた振動移動量を算出する(
図4(d))。移動量合成部466は、1ブロック毎に解析された指令移動量と振動移動量とを合成した合成移動量を算出する(
図4(e))。
【0026】
主軸処理部47は、主軸回転指令作成部471、主軸回転速度算出部472を有する。主軸回転指令作成部471は、加工プログラム432に基づいて主軸モータ11に指令すべき回転速度を演算し、回転速度指令を軸データ出力部49へ出力する。主軸回転速度算出部472は、主軸モータ11に取り付けられた図示していない、例えばエンコーダ等の検出器から主軸モータ11の位相を取得し、主軸回転速度を算出する。或いは、主軸サーボ制御部14からフィードバックされる信号に基づいて、主軸回転速度が算出されてもよい。主軸処理部47は、指令ブロック実行中における主軸回転速度を監視し、主軸回転速度の変化を検出する。例えば、主軸回転速度算出部472が指令ブロック実行中の主軸回転速度を継続的に算出することにより、主軸処理部47は主軸回転速度の変化を検出する。また、主軸処理部47は継続的に算出される主軸回転速度を逐次補間処理部46側に送信する。
【0027】
加減速処理部48は、補間処理部46から出力された各駆動軸の合成移動量を、予め指定された加減速パターンに従って加減速を考慮した単位時間当たりの移動指令に変換する。軸データ出力部49は、主軸回転指令、及び、加減速処理部48で処理された送り軸の移動指令及び振動指令を駆動部10の各軸に出力する。
【0028】
ここで、位相差Wを再計算する理由について説明する。加工プログラム432中に定義されている振動振幅送り比率Qは、振動振幅Aと、主軸の回転毎送り量Fの比率であるため、次式(1)の関係にある。
Q=A/F ・・・(1)
【0029】
主軸1回転当たりの所要時間をTとすると、位相差W、振動振幅A、主軸の回転毎送り量Fは、次式(2)の関係があり、(1)と(2)式から位相差Wについて(3)式が示される。
A/W=F/T ・・・(2)
W=AT/F=QT ・・・(3)
【0030】
(3)式は、ブロック実行中の主軸回転速度の変化に伴って、主軸1回転当たりの所要時間Tが変化した場合、位相差Wは主軸1回転当たり所要時間Tに依存して増減することを示している。
【0031】
図6は、従来技術における補間処理部で算出される振動波形の例を示す図である。
図4では主軸回転速度の増加に対して位相差Wが再計算されるが、
図6においては
図6(b)のように位相差Wを固定している。周速一定制御または主軸オーバーライドでの指令値から割合を変更することにより、主軸回転速度が指令ブロック実行中に増加した場合、指令ブロックで指定された振動条件のまま位相差Wを一定とすると、
図6(c)から6(e)に示されるように、主軸回転速度の変化前後で振動前進位置R1と振動後退位置R2の差分である振動振幅が増加する。このような変動は工作機械の部品等への過剰な振幅となる可能性がある。逆に、主軸回転速度が遅くなった場合に位相差Wを固定していると、振動振幅が不足して切屑の分断が不十分となり、加工不良が発生する可能性が生じる。
【0032】
これに対して、
図4では指令ブロック実行中に主軸回転速度の変化に対して、振動振幅の変動を抑制するために主軸回転速度変化後の位相差W’を再計算する。再計算された位相差W’に基づいて振動振幅の変動を抑制するように振動後退位置R2の経路を調整することによって、振動振幅の過剰または過少による不具合を解消することができる。
【0033】
また振動振幅成分は実際にサーボモータを駆動する前に位置ループゲインを通すこととなる。位置ループゲインはローパスフィルタの役割があり、送り軸の振動周波数が高くなると振幅減衰が発生する。そこで、好ましい付加的な構成として、振動周波数算出部464は振動周波数に基づいて振幅減衰を算出する。振動振幅算出部463は、再計算された位相差に基づいて振動振幅を変更する時に、振幅減衰を抑制するように振動振幅を変更する。このようにすれば、主軸回転速度の変動に伴う振動周波数の増減に対して、振動振幅の減衰を緩和することが可能となり、振動振幅の過剰又は過少による不具合を解消することができる。このような振動減衰の抑制は、以降に説明する実施の形態においても組み合わせ可能である。
【0034】
次に、実施の形態1における振動条件を再設定する手順を
図7のフローチャートを用いて説明する。当該フローチャートの手順により本開示における数値制御装置1の数値制御方法が示される。
【0035】
ステップS101において加工プログラム432に含まれる指令ブロックが実行され、振動条件が設定される。ステップS102において、主軸回転及び加工が開始される。ステップS103において、主軸処理部47は主軸回転速度の変化の有無を検出する。主軸回転速度の変化が検出された場合、ステップS105に進む。一方、主軸回転速度の変化がない場合、ステップS104において、指令ブロックで定義された振動条件は維持される。一方、ステップS105では、位相差算出部462は主軸回転速度変化後での振動振幅Aの変動を抑制する位相差Wを再計算する。ここで、振動振幅Aの変動抑制は、指令ブロック実行中の主軸回転速度変化前後の振動振幅Aが一定となることが理想的ではあるが、完全に一定値となることが要求されるものではなく、制御演算部40の演算能力、加工プログラム432等の実際の加工における種々の要因による変動は許容される。ステップS106において、振動振幅算出部463が、再計算された位相差Wに基づいて振動後退位置R2の移動経路を調整することにより、振動振幅Aが変更される。
【0036】
ステップS107において、指令ブロックが終了したかの判断がされ、指令ブロックが終了していない場合、ステップS103の前に戻り、主軸回転速度の監視が繰り返される。指令ブロックが終了している場合には処理が終了する。
【0037】
以上、実施の形態1に係る数値制御装置1は、工具と加工対象60を相対的に振動させる制御を行う数値制御装置1であって、主軸回転速度の変化を検出する主軸処理部47と、振動前進位置に対する振動後退位置の時間的な遅れである位相差を算出する位相差算出部462と、振動前進位置と振動後退位置の移動量の差分から振動振幅を算出する振動振幅算出部463と、を備え、主軸処理部47が加工プログラムの指令ブロック実行中に主軸回転速度の変化を検出した場合、位相差算出部462は主軸回転速度の変化による振動振幅の変動を抑制する位相差を再計算し、振動振幅算出部463は、再計算された位相差に基づいて振動振幅を変更する、構成としている。このような構成によって、主軸回転速度が変化する場合においても、振動切削の振動条件を動的に追従させ、切屑の分断不良を防止し、工作機械及び切削工具が耐えられる負荷内で幅広い条件での加工が可能となる。
【0038】
実施の形態2.
実施の形態2に係る数値制御装置1は、振動回数変更部461を更に備える構成としている。実施の形態2に係る数値制御装置1の説明に
図8を用いるが、各部の構成について実施の形態1と重複する説明は省略する。
【0039】
実施の形態1で述べたように、振動切削の振動周波数は主軸回転速度と主軸1回転当たりの振動回数により算出される。指令ブロック実行中に主軸回転速度が速くなると振動周波数も高くなりすぎ、工作機械の部品(ボールねじ等)、サーボモータ及び切削工具に過度な負荷を与えてしまう可能性がある。このため、振動回数変更部461は、指令ブロック実行中の主軸回転速度の変化に対応して、主軸1回転当たりの振動回数を動的に変化させる。
【0040】
図9は実施の形態2に係る工作機械110の軸の構成を模式的に示す図である。図では加工対象60に対して周速一定制御で端面加工を行った例を示している。主軸台70が回転軸71を中心に回転している状態で、切削工具50は移動経路53に沿って移動し、加工対象60の端面を切削する。周速一定制御の場合、X軸の変化に対して一定の周速度になるように主軸回転速度が制御される。指令ブロック実行中に加工径が小さくなるほど(すなわち、X座標が中心に近づくほど)主軸回転速度は速くなり、振動周波数は主軸回転速度に比例して高くなる。なお、周速一定制御による端面加工は指令ブロック実行中に振動周波数が変動する一例として示したものであり、かかる制御に本開示は限定されない。
【0041】
振動回数変更部461は振動周波数算出部464により算出される振動周波数と、設定される振動周波数の閾値と比較する。振動周波数算出部464は指令ブロック実行中に継続的に振動周波数を算出しており、振動回数変更部461はその変動を監視する。算出された振動周波数が閾値により定められる振動周波数領域の範囲外となる場合、振動回数変更部461は、現在設定されている主軸1回転当たりの振動回数を変更し、振動周波数領域の範囲内において、工作機械110が運転できるように制御する。
【0042】
図10は、振動回数の変更を模式的に示す図である。
図10(a)は送り軸であるX軸の座標が時間経過とともに50から0に向かって減少し、切削工具50が移動経路53に沿って回転軸71向かって加工対象60の加工が進む状況を示す。
図10(b)は主軸回転速度の変化を示しており、X軸位置の減少に対して、主軸回転速度は増加して4500r/minに達して一定となることを示している。
図10(c)は振動回数変更部461により設定される主軸1回転当たりの振動回数を示し、
図10(d)は振動周波数算出部464により算出される振動周波数を示す。
【0043】
振動切削において、切屑を効率よく分断するには主軸1回転当たりの振動回数は自然数でないことが必要であり、理想的な振動回数はnを用いてn+0.5(n=0,1,2・・・)で表される。すなわち、nは0または自然数である。なお、切屑を効率よく分断するとは、切屑の長さにばらつきのある分断ではなく、切屑を平均的に短く分断することをいう。また、n+0.5からずれがある場合、切屑の長さに多少のばらつきが生じることになるが、加工への実質的な影響がでなければそのずれは許容される。加工への実質的な影響とは、切屑の分断不良が発生したり、切屑の長さに、例えば±50%程度以上のばらつきが生じたりすることを意味する。
【0044】
図10(c)では、加工プログラム432によって定まる振動回数の初期値の例として3.5回が設定されている。
図10(d)では、設定された振動周波数の閾値の例として100Hzが設定される。設定された振動周波数の閾値はパラメータ431として記憶部43に格納されている。パラメータ431として設定された振動周波数の閾値は工作機械や切削工具の負荷のフィードバックに応じて動的に変更可能であってもよい。
【0045】
振動周波数の上限の閾値が100Hzの場合、主軸1回転当たりの送り軸の振動回数3.5回、2.5回、1.5回、0.5回において許容される主軸回転速度はそれぞれ、
100(Hz)×60(s)/3.5(回/r)=1714(r/min)
100(Hz)×60(s)/2.5(回/r)=2400(r/min)
100(Hz)×60(s)/1.5(回/r)=4000(r/min)
100(Hz)×60(s)/0.5(回/r)=12000(r/min)
となる。周速一定制御で切削工具50のX軸の座標が50から0に移動して、主軸回転速度が増加していく場合、主軸回転速度が1714r/minを超えると、振動回数の初期値である3.5回では閾値の100Hzを超えることになるため、振動回数変更部461は指令ブロック実行中に主軸1回転当たりの振動回数を3.5回から2.5回に変更する。これにより、算出された振動周波数が閾値により定まる振動周波数領域(100Hz以下)において制御される。なお、振動周波数の上限の閾値のみを設定していたが、下限の閾値、例えば10Hzを設け、算出された振動周波数を閾値により定まる振動周波数領域の範囲内(この場合は、下限の閾値10Hz以上から上限の閾値100Hz以内)で制御することも可能である。
【0046】
振動回数の変更は初期値から自然数を増減させるものであるが、閾値により定まる周波数領域の範囲内に収まり、かつ、変更前後の差が最小となる振動回数が選択される。例えば、初期値の振動回数が3.5回である場合に、2.5回では閾値により定まる振動周波数領域の範囲に収まらない場合、次の振動回数の候補としては1.5回が選択される。
【0047】
次に、実施の形態2における振動条件の再設定の手順を
図11のフローチャートを用いて説明する。当該フローチャートの手順により本開示における数値制御装置1の数値制御方法が示される。
図11において、
図7と同様のステップについては重複する説明を省略する。ステップS201からステップS206はステップS101からステップS106と同様、またステップS209とステップS107は同様であるのでそれぞれ説明を省略する。
【0048】
ステップS207において、振動回数変更部461は、振動周波数算出部464により算出される振動周波数と、設定された振動周波数の閾値とを比較し、算出された振動周波数が閾値により定まる振動周波数領域の範囲内であるかを判断する。算出された振動周波数が振動周波数領域の範囲内である場合、振動回数は変更されずステップS209に進む。一方、算出された振動周波数が範囲外である場合、ステップS208に進み、算出された振動周波数が振動周波数領域の範囲内となる振動回数に指令ブロック実行中に変更される。変更された振動条件でステップS209に進む。
【0049】
また、閾値により定まる振動周波数領域の一部の周波数帯で工作機械の機械的構造等の関係で共振が発生する場合がある。このような場合、好ましい付加的な構成として、振動周波数領域における共振周波数帯を避けるよう設定することが望ましい。振動回数変更部461は、ステップS207において、算出された振動周波数が閾値により定まる振動周波数領域の範囲内であるのかを判断すると共に、共振周波数帯に含まれるかを判断する。算出された振動周波数が振動周波数領域の範囲内であっても、共振周波数帯に含まれている場合、振動周波数領域内に収まり、かつ、共振周波数帯に含まれない振動周波数とするために、変更前後の差が最小となる振動回数を選択する。
【0050】
なお、ステップS207では振動周波数の閾値に基づいて振動回数を変更するかの判断がされるが、切屑の長さを振動回数変更の判断基準としてもよい。切屑の長さLは主軸1回転当たりの振動回数K、加工対象60の加工径をrとすると、
L=2πr/K・・・(4)
で概算される。上述の周速一定制御で加工対象60の端面加工を行う場合、切削工具50がX軸の座標が50から0に移動すると、加工径rの減少により切屑の長さが小さくなる。切屑が小さくなりすぎるとチップコンベアなどに切屑が詰まるなどの問題が生じる場合がある。
【0051】
そこで、設定された振動周波数の閾値の代わりに切屑の長さをステップS207の判断基準とすることが可能である。この場合、指令ブロック実行中に、切削加工により生じた切屑の長さを取得するカメラ等の認識手段を設け、振動回数変更部461は認識手段から切屑の長さに関する情報を取得し、記憶部43に記憶されているパラメータ431として設定された切屑の長さの閾値と比較する。切削加工により生じた切屑の長さが、閾値により定まる切屑の長さの領域の範囲外である場合、ステップS208に進んで、振動回数変更部461は指令ブロック実行中に振動回数を変更する。切削加工により生じた切屑の長さが、閾値により定まる切屑の長さの領域の範囲内であれば、振動回数は変更されずステップS209に進む。これにより、切屑の長さが閾値により定まる領域の範囲内となるように制御され、チップコンベアなどへの切屑の詰まりを防止すると共に、振動切削の振動条件を動的に追従させ、切屑の分断不良を防止し、工作機械及び切削工具が耐えられる負荷内で幅広い条件での加工が可能となる。
【0052】
また、振動周波数、切屑の長さの閾値を設定する代わりに、負荷トルクの閾値を設定することも可能である。この場合、振動回数変更部461は、指令ブロック実行中の駆動部10の主軸サーボ制御部14、X軸サーボ制御部15、Z軸サーボ制御部16から得られたモータ駆動電流値に基づいて現在の負荷トルクを算出する。ステップS207において、振動回数変更部461は、算出された負荷トルクと記憶部43にパラメータ431として設定された負荷トルクの閾値とを比較する。算出された負荷トルクが閾値により定まる負荷トルクの領域の範囲外となっている場合、ステップS208に進んで、振動回数変更部461は指令ブロック実行中に算出された負荷トルクが閾値により定まる負荷トルクの領域の範囲内となるように振動回数を変更する。算出された負荷トルクが閾値により定まる負荷トルクの領域の範囲内であれば、振動回数は変更されず、ステップS209に進む。これにより、振動切削の振動条件を動的に追従させ、切屑の分断不良を防止し、工作機械及び切削工具が耐えられる負荷内で幅広い条件での加工が可能となる。なお、負荷トルクを算出に代わって、モータ駆動電流値に閾値を設定し、上記振動周波数、切屑の長さ、負荷トルクと同様にステップS207において振動回数変更の必要性の判断対象としてもよい。
【0053】
図11では、振動回数変更部461による振動回数の変更(すなわち、ステップS207とS208)はステップS205、S206の後に実行されるとしているが、同時並行で実行されてもよい。また、ステップS207とステップS208による振動回数変更が実行された後、ステップS204、S205による位相差の再計算と振動振幅Aの変更が実行されてもよい。ステップS207における振動回数変更部461が指令ブロック実行中の監視対象としているパラメータ431として振動周波数、切屑の長さ、負荷トルク、モータ駆動電流値を上げたが、これらの内、少なくとも1つを監視対象とすればよく、複数のパラメータ431を組み合わせ、いずれか1つのパラメータが閾値により許容される範囲外となれば、振動回数が変更されてもよい。例えば、振動周波数と切屑の長さの2つのパラメータを監視対象として、振動周波数は閾値で定められる領域の範囲内であるが、切屑の長さが閾値で定められる領域の範囲外となれば、振動回数が変更される。
【0054】
以上、実施の形態2に係る数値制御装置1は、振動回数変更部461を更に備え、指令ブロック実行中に、振動回数変更部461は、振動周波数算出部464が算出する振動周波数と、設定された振動周波数領域の閾値とを比較し、算出された振動周波数が閾値により定まる振動周波数領域の範囲外である場合、指令ブロック実行中に閾値により定まる範囲内に収まるように振動回数を変更する、構成としている。このような構成によって、主軸回転速度が変化する場合において、振動切削の振動条件を動的に追従させ、切屑の分断不良を防止し、工作機械及び切削工具が耐えられる負荷内で幅広い条件での加工が可能となる。
【0055】
実施の形態3.
実施の形態3に係る数値制御装置1は、振動回数を変更する場合、切屑の空振り区間を設けるように振動振幅を補正する構成を有する。
【0056】
実施の形態2において、振動回数変更部461は、変更後の振動回数としてn(n=0,1,2,・・・)を用いてn+0.5を満たす条件で選択することを説明した。しかしながら、振動周波数を下げるために0.5回を振動回数の候補としたが、変更しても閾値により定まる振動周波数領域の範囲内に収めることができない場合、n+0.5の条件を満たす振動回数を選択することができない。このような場合には、理想的な条件であるn+0.5からずらした、例えばn+0.3などの振動回数を選択することも許容される。
【0057】
図12は送り軸の移動量と振動波形の関係を示した図である。縦軸を送り軸(X軸またはZ軸)の移動量、横軸を主軸の位相としている。実線は送り軸の振動波形であり、破線は主軸1回転前の送り軸の振動波形を示したものである。
【0058】
振動切削で切屑の分断を効率的に行うには、振動回数としてn+0.5を選択することで、主軸N回転目(Nは自然数)の振動切削経路と次の主軸N+1回転目の振動切削経路の位相をずらし、主軸N回転目で切削済みの経路を部分的に次の主軸N+1回転目の振動切削経路が通過するようにする。これにより、主軸N+1回転目の振動切削経路で切屑が発生しない空振り区間が生じ、切屑を順次分断しながら加工することが可能となる。なお、実際の加工においては、主軸N回転目は、次のN+1回転目だけではなく、それ以降の回転、例えばN+2回転目とも移動経路が重なる場合があり、
図12で例示した場合には限られない。
【0059】
図12(a)はn+0.5を満たす理想的な振動回数が設定された振動波形を示しており、主軸N回転目の移動経路と主軸N+1回転目の移動経路が一部重なり、空振り区間が設けられている。これに対して
図12(b)はn+0.5からずれた振動回数が設定された振動波形を示しており、主軸N回転目の移動経路と主軸N+1回転目の移動経路が重なる空振り区間が得られず、切屑の分断が十分に実行されない。
【0060】
そこで、
図12(c)に示すように、n+0.5からずれた振動回数が設定された場合、空振り区間が生じるように振動振幅を補正する。振動回数変更部461が0.5に0または自然数を足し合わせた数以外の振動回数に変更した場合、振動振幅算出部463は、主軸位相と各軸の移動経路から、空振り区間が生じるように振動振幅を補正する。
【0061】
図13は、実施の形態3における振動条件の再設定の手順を説明するフローチャートである。当該フローチャートの手順により本開示における数値制御装置1の数値制御方法が示される。
図13において、
図11と同様のステップについては重複する説明を省略する。ステップS301からステップS306はステップS201からステップS206と同様、またステップS311とステップS209は同様であるのでそれぞれ説明を省略する。
【0062】
図13のステップS307において振動周波数算出部464により算出される振動周波数が閾値により定まる振動周波数領域の範囲内であるかが判断される。なお、実施の形態2で説明した通り、振動周波数以外に、切屑の長さ、負荷トルク、モータ駆動電流を振動回数変更の判断基準のパラメータとすることが可能である。
【0063】
ステップS307で、算出された振動周波数が閾値により定まる振動周波数領域の範囲外である場合、ステップS308に進み、理想的な振動回数n+0.5で変更可能かが判断される。ここで、変更可能である場合、ステップS309において、振動回数n+0.5の条件を満たす振動回数が設定される。変更ができない場合、ステップS310により、振動回数をn+0.5を満たさない条件で変更すると共に、空振り区間が生じるよう振動振幅Aを補正する。なお、理想的な振動回数からずれがあっても(例えば、n+0.3)、切屑分断に必要な空振り区間が得られる場合、ステップS310において振動回数の変更だけが実行されてもよい。
【0064】
以上、実施の形態3に係る数値制御装置1は、振動回数変更部461が0.5に0または自然数を足し合わせた数以外の振動回数に変更する場合、振動振幅算出部463は、主軸位相と各軸の移動経路に基づいて、空振り区間が生じるように振動振幅を補正する、構成にしている。このような構成によって、主軸回転速度が変化する場合において、振動切削の振動条件を動的に追従させ、切屑の分断不良を防止し、工作機械及び切削工具が耐えられる負荷内で幅広い条件での加工が可能となる。また振動回数が理想的な条件からずれがあっても切屑の切断が効率的に実行される。
【0065】
次に、数値制御装置1が備える制御演算部40のハードウェア構成について説明する。
図14は、実施の形態1から3にかかる制御演算部40のハードウェア構成例を示す図である。制御演算部40は、
図14に示した、すなわちプロセッサ401及びメモリ402により実現することができる。プロセッサ401の例は、CPU(Central Processing Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサ(Digital Signal Processor)ともいう)またはシステムLSI(Large Scale Integration)である。メモリ402の例は、RAM(Random Access Memory)またはROM(Read Only Memory)などである。
【0066】
制御演算部40は、プロセッサ401が、メモリ402で記憶されている、制御演算部40の動作を実行するためのプログラムを読み出して実行することにより実現される。また、このプログラムは、制御演算部40の手順または方法をコンピュータに実行させるものであるともいえる。メモリ402は、プロセッサ401が各種処理を実行する際の一時メモリにも使用される。
【0067】
プロセッサ401が実行するプログラムは、コンピュータで実行可能な、データ処理を行うための複数の命令を含むコンピュータ読取り可能かつ非遷移的な(non-transitory)記録媒体を有するコンピュータプログラムプロダクトであってもよい。プロセッサ401が実行するプログラムは、複数の命令がデータ処理を行うことをコンピュータに実行させる。
【0068】
図15で示すように制御演算部40を専用のハードウェア(処理回路403)で実現してもよい。例えば、単一回路、複合回路、プログラム化されたプロセッサ、並列プログラム化されたプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)、又はこれらを組み合わせたものである。また、制御演算部40の機能について、一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしてもよい。
【0069】
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略又は変更することも可能である。
工具と加工対象を相対的に振動させる制御を行う数値制御装置であって、主軸回転速度の変化を検出する主軸処理部と、振動前進位置に対する振動後退位置の時間的な遅れである位相差を算出する位相差算出部と、振動前進位置と振動後退位置の差分である振動振幅を算出する振動振幅算出部と、を備え、主軸処理部が指令ブロック実行中に主軸回転速度の変化を検出した場合、位相差算出部は主軸回転速度の変化による振動振幅の変動を抑制する位相差を再計算し、振動振幅算出部は、再計算された位相差に基づいて振動振幅を変更する、ことを特徴とする。