(57)【特許請求の範囲】
【請求項１】
工具および加工対象の少なくともいずれか一方に設けられた駆動軸によって、前記工具と前記加工対象とを相対的に移動させながら前記加工対象の加工を行う数値制御装置であって、
加工プログラムを解析し、前記工具を移動経路上で移動させる移動指令を前記加工プログラム中の指令ブロックごとに取得する解析処理手段と、
対象となる指令ブロックでの第１移動経路とつぎの指令ブロックでの第２移動経路とが振動を伴う加工である場合に、前記第１移動経路と前記第２移動経路との間で前記振動が継続するようにブロック間振動継続経路を前記駆動軸ごとに生成するブロック間振動継続経路生成手段と、
振動条件を用いて、前記ブロック間振動継続経路に重畳させる基準振動波形を前記駆動軸ごとに生成する振動波形生成手段と、
前記基準振動波形を用いて、前記ブロック間振動継続経路における振動移動量を前記駆動軸ごとに算出する振動移動量生成手段と、
前記ブロック間振動継続経路に前記振動移動量を加算した合成移動量を前記駆動軸ごとに生成する移動量合成手段と、
を備え、
前記ブロック間振動継続経路生成手段は、時間に対する前記移動経路に前記振動条件の振幅を加算した振動前進位置と、時間に対する前記移動経路から前記振動条件の振幅を減算した振動後退位置と、を含む前記ブロック間振動継続経路を生成し、
前記振動移動量生成手段は、前記振動前進位置と前記振動後退位置との差に、振幅が１の前記基準振動波形を掛け合わせて前記振動移動量を算出し、
前記移動量合成手段は、前記振動後退位置に前記振動移動量を加算することを特徴とする数値制御装置。
【請求項２】
前記ブロック間振動継続経路生成手段は、前記第１移動経路と前記第２移動経路との間で前記振動条件を連続的に変化させて前記ブロック間振動継続経路を生成することを特徴とする請求項１に記載の数値制御装置。
【請求項３】
前記第１移動経路と前記第２移動経路との間で前記振動が収束するようにブロック間振動収束経路を前記駆動軸ごとに生成するブロック間振動収束経路生成手段と、
前記ブロック間振動収束経路または前記ブロック間振動継続経路のいずれを生成するかを切り替えるブロック間移動切替手段と、
をさらに備え、
前記ブロック間振動収束経路生成手段は、時間に対する前記移動経路に前記振動条件の振幅を加算した振動前進位置と、時間に対する前記移動経路から前記振動条件の振幅を減算した振動後退位置と、を含む前記ブロック間振動収束経路を生成し、
前記振動波形生成手段は、前記振動条件を用いて、前記ブロック間振動収束経路または前記ブロック間振動継続経路に重畳させる基準振動波形を前記駆動軸ごとに生成し、
前記振動移動量生成手段は、前記ブロック間振動収束経路または前記ブロック間振動継続経路の前記振動前進位置と前記振動後退位置との差に、振幅が１の前記基準振動波形を掛け合わせて、前記ブロック間振動収束経路または前記ブロック間振動継続経路における振動移動量を前記駆動軸ごとに算出し、
前記移動量合成手段は、前記ブロック間振動収束経路または前記ブロック間振動継続経路の前記振動後退位置に前記振動移動量を加算した合成移動量を前記駆動軸ごとに生成することを特徴とする請求項１に記載の数値制御装置。
【請求項４】
選択された波形の種類を前記基準振動波形に設定する振動波形種類選択手段をさらに備え、
前記振動波形生成手段は、選択された前記波形の種類を用いて前記基準振動波形を生成することを特徴とする請求項１に記載の数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値制御装置に関するものである。
【背景技術】
【０００２】
従来では、旋削加工において、切削工具をワークに対して送り動作させる切削工具送り機構と、上記切削工具を低周波振動させて切削工具送り駆動モータを制御する制御機構と、を有する数値制御装置が提案されている（たとえば、特許文献１〜３参照）。この数値制御装置では制御機構は、各種設定を行う操作手段と、操作手段によって設定されたワークの回転数または切削工具１回転当たりの切削工具の送り量に応じて、切削工具を同期させて送り動作させる２５Ｈｚ以上の低周波で動作可能なデータとして、送り軸のイナーシャまたはモータ特性等の機械特性に応じた少なくとも切削工具送り機構の前進量、後退量、前進速度、後退速度が予め表にされて格納されている振動切削情報格納手段と、振動切削情報格納手段に格納されている当該データに基づいて切削工具送り駆動モータを制御してなるモータ制御手段と、を有している。これによって、補間経路に沿って前進、後退動作を繰り返すことによって、低周波振動を生成している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５０３３９２９号公報
【特許文献２】特許第５１３９５９１号公報
【特許文献３】特許第５１３９５９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記特許文献１〜３では、補間経路に沿って振動させているが、このとき指令ブロックで一度振動を収束させてからつぎの指令ブロックに移り変わるようにしている。しかし、加工の種類によっては、指令ブロックでの処理終了後に、振動を収束させずに次の指令ブロックに移るようにしたい場合もあるが、上記特許文献１〜３では、このような処理に対応していない。【０００５】
本発明は、上記に鑑みてなされたもので、補間経路に沿って振動させる加工プログラムを実行する際に、ある指令ブロックから振動を収束させてからつぎの指令ブロックに移行する処理と、ある指令ブロックから振動を継続させながらつぎの指令ブロックに移行する処理と、の両方に対応することができる数値制御装置を得ることを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、この発明にかかる数値制御装置は、工具および加工対象の少なくともいずれか一方に設けられた駆動軸によって、前記工具と前記加工対象とを相対的に移動させながら前記加工対象の加工を行う数値制御装置であって、加工プログラムを解析し、前記工具を移動経路上で移動させる移動指令を前記加工プログラム中の指令ブロックごとに取得する解析処理手段と、対象となる指令ブロックでの第１移動経路とつぎの指令ブロックでの第２移動経路とが振動を伴う加工である場合に、前記第１移動経路と前記第２移動経路との間で前記振動が継続するようにブロック間振動継続経路を前記駆動軸ごとに生成するブロック間振動継続経路生成手段と、振動条件を用いて、前記ブロック間振動継続経路に重畳させる基準振動波形を前記駆動軸ごとに生成する振動波形生成手段と、前記基準振動波形を用いて、前記ブロック間振動継続経路における振動移動量を前記駆動軸ごとに算出する振動移動量生成手段と、前記ブロック間振動継続経路に前記振動移動量を加算した合成移動量を前記駆動軸ごとに生成する移動量合成手段と、を備え、前記ブロック間振動継続経路生成手段は、時間に対する前記移動経路に前記振動条件の振幅を加算した振動前進位置と、時間に対する前記移動経路から前記振動条件の振幅を減算した振動後退位置と、を含む前記ブロック間振動継続経路を生成し、前記振動移動量生成手段は、前記振動前進位置と前記振動後退位置との差に、振幅が１の前記基準振動波形を掛け合わせて前記振動移動量を算出し、前記移動量合成手段は、前記振動後退位置に前記振動移動量を加算することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、対象となる指令ブロックでの第１移動経路とつぎの指令ブロックでの第２移動経路との間で振動が収束するようにブロック間振動収束経路を駆動軸ごとに生成するブロック間振動収束経路生成手段と、第１移動経路と第２移動経路との間で振動が継続するようにブロック間振動継続経路を駆動軸ごとに生成するブロック間振動継続経路生成手段とを備えたので、補間経路に沿って振動させる加工プログラムを実行する際に、ある指令ブロックから振動を収束させてからつぎの指令ブロックに移行する処理と、ある指令ブロックから振動を継続させながらつぎの指令ブロックに移行する処理と、の両方に対応することができるという効果を有する。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施の形態１による数値制御装置の構成の一例を示すブロック図である。
【図２】図２は、指令ブロック間の振動を収束させる条件の一例を示す図である。
【図３】図３は、旋削加工を行う実施の形態１による数値制御装置の軸の構成を模式的に示す図である。
【図４】図４は、実施の形態１による加工方法を模式的に示す図である。
【図５】図５は、実施の形態１による加工プログラムの一例を示す図である。
【図６】図６は、実施の形態１による振動切削の加工の一例を示す図である。
【図７】図７は、実施の形態１によるブロック間振動が収束してからつぎの指令ブロックの移動を行う場合の振動を伴う移動経路の算出方法の手順の一例を示す図である。
【図８】図８は、実施の形態１によるブロック間振動が収束してからつぎの指令ブロックの移動を行う場合の振動を伴う移動経路の算出方法の手順の一例を示す図である。
【図９】図９は、実施の形態１によるブロック間振動を継続してつぎの指令ブロックの移動を行う場合の振動を伴う移動経路の算出方法の手順の一例を示す図である。
【図１０】図１０は、実施の形態１によるブロック間振動を継続してつぎの指令ブロックの移動を行う場合の振動を伴う移動経路の算出方法の手順の一例を示す図である。
【図１１】図１１は、振動切削を行う加工プログラムの一例を示す図である。
【図１２】図１２は、図１１の加工プログラムを指令ブロック間で振動を収束させて実行したときの様子を示す図である。
【図１３】図１３は、図１１の加工プログラムを指令ブロック間で振動を継続させて実行したときの様子を示す図である。
【図１４】図１４は、実施の形態２による数値制御装置の構成の一例を示すブロック図である。
【図１５】図１５は、振動波形の一例を示す図である。
【発明を実施するための形態】
【０００９】
以下に添付図面を参照して、本発明の実施の形態にかかる数値制御装置を詳細に説明する。なお、これらの実施の形態により本発明が限定されるものではない。
【００１０】
実施の形態１．
図１は、実施の形態１による数値制御装置の構成の一例を示すブロック図である。数値制御装置１は、駆動部１０と、入力操作部２０と、表示部３０と、制御演算部４０と、を有する。
【００１１】
駆動部１０は、加工対象および工具のいずれか一方または両方を少なくとも２軸方向に駆動する機構である。ここでは、数値制御装置１上で規定された各軸方向に加工対象および／または工具を移動させるサーボモータ１１と、サーボモータ１１の位置・速度を検出する検出器１２と、検出器１２からの位置・速度に基づいて、加工対象および／または工具の位置や速度の制御を行う各軸方向のサーボ制御部１３（Ｘ軸サーボ制御部１３Ｘ、Ｚ軸サーボ制御部１３Ｚ、・・・。なお、以下では、駆動軸の方向を区別する必要がない場合には、単にサーボ制御部１３と表記する）と、を有する。また、加工対象に設けられた主軸を回転させる主軸モータ１４と、主軸モータ１４の位置・回転数を検出する検出器１５と、検出器１５からの位置・回転数に基づいて、加工対象に設けられた主軸の回転を制御する主軸制御部１６と、を有する。
【００１２】
入力操作部２０は、キーボード、ボタンまたはマウスなどの入力手段によって構成され、ユーザによる数値制御装置１に対するコマンドなどの入力、または加工プログラムもしくはパラメータなどの入力が行われる。表示部３０は、液晶表示装置などの表示手段によって構成され、制御演算部４０によって処理された情報が表示される。
【００１３】
制御演算部４０は、入力制御部４１と、データ設定部４２と、記憶部４３と、画面処理部４４と、解析処理部４５と、機械制御信号処理部４６と、ＰＬＣ（Programmable  Logic  Controller）回路部４７と、補間処理部４８と、加減速処理部４９と、軸データ出力部５０と、を有する。
【００１４】
入力制御部４１は、入力操作部２０から入力される情報を受け付ける。データ設定部４２は、入力制御部４１で受け付けられた情報を記憶部４３に記憶する。たとえば入力された内容が加工プログラム４３２の編集の場合には、記憶部４３に記憶されている加工プログラム４３２に編集された内容を反映させ、パラメータが入力された場合には記憶部４３のパラメータ４３１の記憶領域に記憶する。
【００１５】
記憶部４３は、制御演算部４０の処理で使用されるパラメータ４３１、実行される加工プログラム４３２、表示部３０に表示させる画面表示データ４３３などの情報を記憶する。また、記憶部４３には、パラメータ４３１、加工プログラム４３２以外の一時的に使用されるデータを記憶する共有エリア４３４が設けられている。画面処理部４４は、記憶部４３の画面表示データを表示部３０に表示させる制御を行う。
【００１６】
解析処理部４５は、移動指令生成部４５１と、追加指令生成部４５２と、振動指令解析部４５３と、を有する。移動指令生成部４５１は、１以上のブロックを含む加工プログラムを読み込み、読み込んだ加工プログラムを１ブロック毎に解析し、１ブロックで移動する移動指令を生成する。追加指令生成部４５２は、読み込んだ１ブロック中に数値制御装置１で自動的に経路を生成する指示（以下、経路生成指示という）が含まれるかを解析し、経路生成指示が含まれている場合に、その経路生成指示にしたがって加工プログラムには規定されていない追加の指令ブロックを生成する。また、その追加の指令ブロックに関して追加指令を生成する。振動指令解析部４５３は、加工プログラムに振動指令が含まれているかを解析し、振動指令が含まれている場合に、振動指令に含まれる周波数と振幅などの振動情報を生成する。なお、この明細書においては、加工プログラムに含まれる振動指令の振幅は１ミクロン以上３００ミクロン以下であることが望ましい。これは、振幅が１ミクロンより小さいと、切削効率が悪くなり、またサーボ系が応答できなくなるからであり、振幅が３００ミクロンより大きいと、機械振動につながる虞があるからである。また、周波数は１０Ｈｚ以上３００Ｈｚ以下であることが望ましい。これは、周波数が１０Ｈｚより小さいと振動切削の効果が得られなくなるからであり、３００Ｈｚよりも大きいとサーボ系が応答できなくなるからである。
【００１７】
機械制御信号処理部４６は、解析処理部４５によって、数値制御軸（駆動軸）を動作させる指令以外の機械を動作させる指令としての補助指令を読み込んだ場合に、補助指令が指令されたことをＰＬＣ回路部４７に通知する。ＰＬＣ回路部４７は、機械制御信号処理部４６から補助指令が指令されたことの通知を受けると、その補助指令に対応する処理を実行する。
【００１８】
補間処理部４８は、ブロック間移動切替部４８１と、ブロック間振動収束経路生成部４８２と、ブロック間振動継続経路生成部４８３と、振動波形生成部４８４と、振動移動量生成部４８５と、移動量合成部４８６と、を有する。
【００１９】
ブロック間移動切替部４８１は、解析処理部４５からの移動指令と追加指令とから、対象となる指令ブロックと、その指令ブロックに引き続いて実行される指令ブロックと、が移動経路に沿って振動を加える指令であって、対象となる指令ブロックでの振動を収束させてからつぎの指令ブロックに移行するのか、または振動を継続させたままつぎの指令ブロックに移行するのか、を判定する。なお、指令ブロックとして、加工プログラムに規定されている指令ブロックのほかに、指令ブロック中に経路生成指示が含まれ、その経路生成指示に基づいて作成される加工プログラムには規定されていない追加の指令ブロックも含まれる。
【００２０】
図２は、指令ブロック間の振動を収束させる条件の一例を示す図である。指令ブロック間の振動の収束を待つ条件は、振動切削モードではない慣用切削モードで減速チェックを行う条件に対応している。具体的には、（１）エラーディテクトモードが設定されている場合、（２）イグザクトストップチェック（Ｇ０９）が指令された場合、（３）イグザクトストップチェックモード（Ｇ６１）が選択されている場合、（４）次指令ブロックが切削送り指令でない場合、などを挙げることができる。
【００２１】
上記（１）〜（３）は、振動切削モードでは連続する指令ブロック間で振動を収束させる条件を、慣用切削モードでは連続する指令ブロック間で減速チェックが実行される場合の条件を示したものであり、（１）はＰＬＣ（ラダープログラム）で指定される場合であり、（２）は加工プログラムで指定される場合であり、（３）は加工プログラム中でモードを用いて指定される場合である。
【００２２】
ブロック間移動切替部４８１は、たとえば上記の指令ブロック間の振動（以下、ブロック間振動という）を収束させる条件を加工プログラムが満たす場合には、ブロック間振動を収束させるように、ブロック間振動収束経路生成部４８２に移動量を生成する処理を行う指示を与える。一方、ブロック間移動切替部４８１は、たとえば上記のブロック間振動を収束させる条件を加工プログラムが満たさない場合には、ブロック間振動を継続させるように、ブロック間振動継続経路生成部４８３に移動量を生成する処理を行う指示を与える。なお、ここでは、ブロック間振動を収束させる条件を示しているが、ブロック間振動を継続させる条件を設けてもよい。
【００２３】
ブロック間振動収束経路生成部４８２は、ブロック間移動切替部４８１からブロック間振動を収束させる移動量の生成処理が指示された場合に、解析処理部４５から取得した振動条件から振幅を取得し、ブロック間振動を収束させる場合の単位時間（補間周期）での各軸方向の時間に対する移動経路（以下、ブロック間振動収束経路という）を生成する。ここでは、対象の指令ブロックに基づく時間に対する移動経路に振動条件の振幅を加算した振動前進位置と、時間に対する移動経路から振動条件の振幅を減算した振動後退位置と、を求める。このとき、対象の指令ブロックの終点、すなわちつぎの指令ブロックの始点で、振動前進位置と振動後退位置とが一致したときに、つぎの指令ブロックでの振動前進位置と振動後退位置とを求める。
【００２４】
ブロック間振動継続経路生成部４８３は、ブロック間移動切替部４８１からブロック間振動を継続させる移動経路の生成処理が指示された場合に、解析処理部４５から取得した振動条件から振幅を取得し、ブロック間振動を継続させる場合に振幅が滑らかに変化するように、単位時間（補間周期）での各軸方向の時間に対する移動経路を生成する。具体的には、対象の指令ブロックに基づく時間に対する移動経路に振動条件の振幅を加算した振動前進位置と、時間に対する移動経路から振動条件の振幅を減算した振動後退位置と、を求める。このとき、対象の指令ブロックで振動前進位置が目標位置に到達した場合には、その点を始点とするつぎの指令ブロックの振動前進位置を求める。また、対象の指令ブロックの振動後退位置が目標位置に到達すると、その点を始点とするつぎの指令ブロックの振動後退位置を求める。このようにして、振動前進位置と振動後退位置とを含むブロック間振動移動経路を求める。
【００２５】
振動波形生成部４８４は、解析処理部４５から取得した振動指令から、工具または加工対象を振動させるための基準となる振動波形（以下、基準振動波形という）を各軸について生成する。基準振動波形は、時間に対する各軸方向の位置を示すものである。基準振動波形として、任意のものを用いることができるが、ここでは振動波形は三角波であるとする。この三角波は、振幅が１．０であり、周期は振動条件で指定される値を有する。
【００２６】
振動移動量生成部４８５は、各時間における振動前進位置と振動後退位置との差を求め、これに振動波形を掛け合わせた振動移動量を各軸について算出する。
【００２７】
移動量合成部４８６は、ブロック間振動収束経路生成部４８２またはブロック間振動継続経路生成部４８３で生成された振動後退位置と、振動移動量生成部４８５で生成された振動移動量と、を加算して、単位時間（補間周期）での各軸の合成移動量を算出する。
【００２８】
加減速処理部４９は、補間処理部４８から出力された各駆動軸の合成移動量を、予め指定された加減速パターンに従って加減速を考慮した単位時間当たりの移動指令に変換する。軸データ出力部５０は、加減速処理部４９で処理された単位時間当たりの移動指令を、各駆動軸を制御するサーボ制御部１３Ｘ，１３Ｚ，・・・に出力する。
【００２９】
工具または加工対象を振動させながら加工を行うためには、上記したように、加工を行う際に、加工対象と工具とを相対的に移動させればよい。図３は、旋削加工を行う実施の形態１による数値制御装置の軸の構成を模式的に示す図である。この図では、紙面内に直交するＺ軸とＸ軸を設けている。図３（ａ）は、加工対象６１を固定し、たとえば旋削加工を行う旋削加工用工具である工具６２のみをＺ軸とＸ軸方向に移動させる場合であり、図３（ｂ）は、加工対象６１をＺ軸方向に移動させ、工具６２をＸ軸方向に移動させる場合である。これらのいずれの場合でも、移動させる対象（加工対象６１および／または工具６２）にサーボモータ１１を設けることで、以下に説明する処理を行うことが可能となる。
【００３０】
図４は、実施の形態１による加工方法を模式的に示す図である。ここでは、紙面内に直交するＺ軸とＸ軸が設けられ、このＺＸ面内の移動経路１０１に沿って工具６２と加工対象とを相対的に移動させながら加工を行う場合が示されている。実施の形態１では、移動経路１０１に沿って工具６２を加工対象に対して相対的に移動させる際に、移動経路１０１をなぞるように工具６２を振動させるようにしている。すなわち、直線の区間では直線に沿って往復するように工具６２を振動させ、曲線の区間では曲線に沿って往復するように工具６２を振動させる。なお、工具６２を振動させるという記載は、工具６２の加工対象６１に対する相対的な運動であり、実際には図３に示したように、工具６２と加工対象６１のいずれを動かしてもよい。以下の説明も同様である。
【００３１】
図５は、実施の形態１による加工プログラムの一例を示す図である。加工プログラムは、行（ブロック）ごとに読み込まれ、実行されていく。この加工プログラム中の行４０１の「Ｍ３  Ｓ１０００；」は主軸の回転指令であり、行４０３の「Ｇ０１  Ｘ１０．０  Ｚ２０．０  Ｆ０．０１；」は直線補間の指令であり、行４０４の「Ｇ０２  Ｘ１４．０  Ｚ２３．５  Ｒ４．０；」は時計回りの円弧補間の指令であり、一般的な数値制御装置で使用される指令である。
【００３２】
一方、行４０２の「Ｇ２００；」と行４０５の「Ｇ２０１；」は、この実施の形態１の振動切削を指令するものであり、新たに設けられる指令である。ここでは、指令「Ｇ２００」は振動切削の開始を意味するものであり、指令「Ｇ２０１」は振動切削の終了を意味するものである。また、振動条件である周波数と振幅の指令値については任意の数値を設定することができるが、曲線経路上で精度良く振動させるため、また、切削により発生する切屑を振動により細かく分断するために、微小な振動（振幅が数百マイクロメートル以下かつ周波数が数百Ｈｚ以下）を一般的に指令する。
【００３３】
つぎに、実施の形態１の数値制御装置１による加工方法について、具体例を挙げながら説明する。
【００３４】
まず、解析処理部４５の移動指令生成部４５１で、加工プログラムの指令ブロックから始点と終点を含む移動指令が生成され、補間処理部４８に出力される。また、指令ブロック中に経路生成指示が含まれる場合には、追加指令生成部４５２で、その経路生成指示にしたがって経路を生成する追加指令が生成され、補間処理部４８に出力される。この追加指令は、加工プログラム中にもともと含まれる指令ブロックではないが、加工を行う際に追加で生成される指令ブロックに基づいて生成されるものである。また、振動指令解析部４５３によって、加工プログラムに含まれるまたはパラメータで設定される周波数と振幅を含む振動条件が補間処理部４８に出力される。
【００３５】
ついで、補間処理部４８のブロック間移動切替部４８１は、対象となる指令（移動指令または追加指令）について、加工プログラム中でブロック間振動の収束または継続が規定されているかを判定する。ブロック間振動の収束が規定されている場合には、ブロック間振動収束経路生成部４８２に、ブロック間振動収束経路の生成を指示し、ブロック間振動の継続が規定されている場合には、ブロック間振動継続経路生成部４８３に、ブロック間振動継続経路の生成を指示する。この判定は、たとえば図２に示されるような条件に基づいて行われる。
【００３６】
以下では、切削振動の場合の（Ａ）ブロック間振動収束経路の生成、および（Ｂ）ブロック間振動継続経路の生成について順に説明する。図６は、実施の形態１による振動切削の加工の一例を示す図であり、（ａ）は移動経路に対して振動を生じさせる加工プログラムの一例を示す図であり、（ｂ）は（ａ）の加工プログラムから得られるＺＸ面内での移動経路の一例を示す図である。ここでは、Ｘ＝０，Ｚ＝０からＸ＝１０．０，Ｚ＝５．０まで経路に沿って振動させながら切削し、そこからさらにＸ＝１５．０，Ｚ＝１５．０まで経路に沿って振動させながら切削する場合が例示されている。
【００３７】
（Ａ）ブロック間振動収束経路の生成
図７と図８は、実施の形態１によるブロック間振動が収束してからつぎの指令ブロックの移動を行う場合の振動を伴う移動経路の算出方法の手順の一例を示す図であり、図７は、Ｘ軸に沿った移動経路の算出方法の手順の一例を示す図であり、図８は、Ｚ軸に沿った移動経路の算出方法の手順の一例を示す図である。
【００３８】
ブロック間振動収束経路生成部４８２は、ブロック間振動収束経路の生成の指示を受けると、対象となる指令とそのつぎの指令とから、各軸方向での時間に対する移動経路を生成する。また、加工の種類が切削振動の場合には、解析処理部４５の振動指令解析部４５３から取得した振動条件を用いて、振動前進位置と振動後退位置の２種類の経路を作成する。
【００３９】
具体的には、振動前進位置の移動指令開始タイミングは、前の指令での経路の振動後退位置の移動完了後の位置となる。また、振動前進位置では、目標位置に到達して移動指令が完了した後、つぎの指令が切削振動の指令であっても振動後退位置の移動が完了する（目標位置に到達する）まで停止する。
【００４０】
振動後退位置は、振動前進位置の移動開始後、所定時間（Ｔｗ）だけ待ってから移動開始する。また、振動後退位置の移動完了後、つぎの経路の動作に移る。
【００４１】
このような規則に従って作成されたＸ軸方向とＺ軸方向の振動前進位置Ｒ1X，Ｒ1Zと振動後退位置Ｒ2X，Ｒ2Zとが、それぞれ図７（ａ）と図８（ａ）に示されている。これらの図に示されるように、対象となる指令による振動後退位置Ｒ2X，Ｒ2Zの移動と、つぎの指令による振動前進位置Ｒ1X，Ｒ1Zの移動とはオーバラップしない。
【００４２】
つぎに、振動波形生成部４８４は、移動経路に重畳させる基準振動波形を、振動指令解析部４５３からの振動条件を用いて生成する。具体的には、振動条件中の周波数を有し、谷から山までの高さが１の振動波形を生成する。このとき、振動波形は予め定められた波形（たとえば三角波）が用いられる。このような規則によって生成されたＸ軸方向とＺ軸方向の基準振動波形が、それぞれ図７（ｂ）と図８（ｂ）に示されている。この基準振動波形は、時間の関数となっている。
【００４３】
その後、振動移動量生成部４８５は、各時間における振動前進位置と振動後退位置との差を求める。Ｘ軸方向とＺ軸方向の振動前進位置と振動後退位置との差が、それぞれ図７（ｃ）と図８（ｃ）に示されている。さらに、振動移動量生成部４８５は、振動前進位置と振動後退位置との差に、振動波形生成部４８４で生成した基準振動波形を乗算し、振動移動量を算出する。すなわち、Ｘ軸方向では、図７（ｂ）のグラフと図７（ｃ）のグラフとを乗算し、Ｚ軸方向では、図８（ｂ）のグラフと図８（ｃ）のグラフとを乗算して、振動移動量を算出する。このようにして算出されたＸ軸方向とＺ軸方向の振動移動量が、それぞれ図７（ｄ）と図８（ｄ）に示されている。
【００４４】
そして、移動量合成部４８６は、各軸について、ブロック間振動収束経路生成部４８２で生成された振動後退位置と、振動移動量生成部４８５で生成した振動移動量と、を重畳（加算）することで、時間に対する移動経路を生成する。このようにして生成されたＸ軸方向とＺ軸方向の移動経路Ｒ3X，Ｒ3Zが、それぞれ図７（ｅ）と図８（ｅ）に示されている。
【００４５】
図７（ｅ）と図８（ｅ）に示されるように、対象の指令に対応する移動経路Ｒ3X，Ｒ3Zが目標位置に到達しても、移動経路Ｒ3X，Ｒ3Zの振動後退位置が目標位置に到達するまでの間は、移動経路Ｒ3X，Ｒ3Zが目標位置を超えることがない。その後、振幅を徐々に減少させながら移動経路Ｒ3X，Ｒ3Zの振動後退位置が目標位置に到達する。そして、移動経路Ｒ3X，Ｒ3Zの振動後退位置が目標位置に到達し、振動が収束すると、つぎの振動を伴う指令が実行されることになる。以上で、ブロック間振動収束経路の生成処理が終了する。
【００４６】
（Ｂ）ブロック間振動継続経路の生成
図９と図１０は、実施の形態１によるブロック間振動を継続してつぎの指令ブロックの移動を行う場合の振動を伴う移動経路の算出方法の手順の一例を示す図であり、図９は、Ｘ軸に沿った移動経路の算出方法の手順の一例を示す図であり、図１０は、Ｚ軸に沿った移動経路の算出方法の手順の一例を示す図である。
【００４７】
ブロック間振動継続経路生成部４８３は、ブロック間振動継続経路の生成の指示を受けると、対象となる指令とそのつぎの指令とから、各軸方向での時間に対する移動経路を生成する。また、加工の種類が切削振動の場合には、解析処理部４５の振動指令解析部４５３から取得した振動条件を用いて、振動前進位置と振動後退位置の２種類の経路を作成する。
【００４８】
具体的には、振動前進位置の移動指令開始タイミングは、前の指令での経路の振動前進位置の移動完了後の位置となる。ここでは、振動後退位置の移動の完了を待たず、振動前進位置の移動完了後につぎの移動指令開始とすることができる。また、振動前進位置では、目標位置に到達して移動指令が完了した後、つぎの指令が振動切削移動指令でない場合には、振動後退位置の移動が完了する（目標位置に到達する）まで停止する。
【００４９】
振動後退位置は、振動前進位置の移動開始後、所定時間（Ｔｗ）だけ待ってから移動開始する。なお、所定時間Ｔｗは、加工プログラムまたはパラメータにて設定される。
【００５０】
このような規則に従って作成されたＸ軸方向とＺ軸方向の振動前進位置Ｒ1X，Ｒ1Zと振動後退位置Ｒ2X，Ｒ2Zとが、それぞれ図９（ａ）と図１０（ａ）に示されている。これらの図に示されるように、対象となる指令による振動前進位置Ｒ1X，Ｒ1Zが、時刻ｔ1で目標位置（Ｘ＝１０．０，Ｚ＝５．０）に到達すると、その点からつぎの指令による振動前進位置Ｒ1X，Ｒ1Zが作成される。ここでは、時刻ｔ1で振動前進位置Ｒ1X，Ｒ1Zの速度が変わっている。しかし、この時点では、振動後退位置Ｒ2X，Ｒ2Zは対象となる指令によるものとなっている。
【００５１】
時刻ｔ1から所定時間Ｔｗが経過し、時刻ｔ2で振動後退位置Ｒ2X，Ｒ2Zが目標位置に到達するまでは、振動後退位置Ｒ2X，Ｒ2Zは対象となる指令によるものとなる。その後、時刻ｔ2で振動後退位置Ｒ2X，Ｒ2Zが目標位置に到達すると、その点からつぎの指令による振動後退位置Ｒ2X，Ｒ2Zが作成される。ここでは、時刻ｔ2で振動後退位置Ｒ2X，Ｒ2Zの速度が変わっている。
【００５２】
このようなブロック間振動継続経路では、時刻ｔ1〜ｔ2で示されるように、対象となる指令による振動後退位置の移動と、つぎの指令による振動前進位置の移動とは、オーバラップすることになる。
【００５３】
つぎに、振動波形生成部４８４は、移動経路に重畳させる基準振動波形を、振動指令解析部からの振動条件を用いて生成する。この処理は、（Ａ）ブロック間振動収束経路の生成で説明したものと同様である。生成されたＸ軸方向とＺ軸方向の基準振動波形が、それぞれ図９（ｂ）と図１０（ｂ）に示されている。
【００５４】
その後、振動移動量生成部４８５は、各時間における振動前進位置と振動後退位置との差を求める。Ｘ軸方向とＺ軸方向の振動前進位置と振動後退位置との差が、それぞれ図９（ｃ）と図１０（ｃ）に示されている。さらに、振動移動量生成部４８５は、振動前進位置と振動後退位置との差に、振動波形生成部４８４で生成した基準振動波形を乗算し、振動移動量を算出する。このようにして算出されたＸ軸方向とＺ軸方向の振動移動量が、それぞれ図９（ｄ）と図１０（ｄ）に示されている。
【００５５】
そして、移動量合成部４８６は、各軸について、ブロック間振動継続経路生成部４８３で生成された振動後退位置と、振動移動量生成部４８５で生成した振動移動量と、を重畳（加算）することで、振動を重畳した移動経路が生成される。このようにして生成されたＸ軸方向とＺ軸方向の移動経路Ｒ3X，Ｒ3Zが、それぞれ図９（ｅ）と図１０（ｅ）に示されている。
【００５６】
図９（ｅ）と図１０（ｅ）に示されるように、移動経路の山の部分を連ねた振動前進位置Ｒ1X，Ｒ1Zが目標位置に到達すると、移動経路の振動後退位置Ｒ2X，Ｒ2Zが目標位置に到達しない状態でも、つぎの指令の移動が開始される。その後、移動経路の振動後退位置Ｒ2X，Ｒ2Zが目標位置に到達するまでの間は、つぎの移動経路の振動前進位置Ｒ1X，Ｒ1Zと対象となる指令の振動後退位置との間で振動が行われる。そして、移動経路の振動後退位置Ｒ2X，Ｒ2Zが目標位置に到達すると、振動後退位置でもつぎの指令が実行されることになる。すなわち、目標位置に到達しても振動は収束せず、そのままつぎの指令に従って振動が開始される。時刻ｔ0〜ｔ1では、振動前進位置と振動後退位置との差は一定であるが、時刻ｔ1〜ｔ2では、振動前進位置と振動後退位置との差が徐々に減少していく。そして、時刻ｔ2以降で、振動前進位置と振動後退位置との差は一定となる。このように、対象となる指令での移動経路上での振幅が、つぎの指令での移動経路上での振幅へと滑らかに変化する。以上で、ブロック間振動継続経路の生成処理が終了する。
【００５７】
図１１は、振動切削を行う加工プログラムの一例を示す図である。この加工プログラムは、Ｘ＝０．０，Ｚ＝０．０からＸ軸に沿って振動を伴う切削加工を行い、Ｘ＝１０．０，Ｚ＝１０．０から９０度向きを変えてＺ軸に沿って振動を伴う切削加工を行うものである。
【００５８】
図１２は、図１１の加工プログラムを指令ブロック間で振動を収束させて実行したときの様子を示す図である。図１２（ａ）は、Ｘ軸方向とＺ軸方向の時間に対する移動経路Ｒ3X，Ｒ3Zを示す図であり、図１２（ｂ）は、図１２（ａ）の条件で加工を行った場合のＺＸ面内での移動経路の軌跡を示す図である。なお、図１２（ａ）の移動経路Ｒ3X，Ｒ3Zは、上記したような手順によって求められる。
【００５９】
このような条件の加工では、まず、図１１のシーケンス番号「Ｎ０３」で示される指令にしたがって、Ｘ軸に沿った振動が加えられる。つまり、Ｘ軸方向に振動を加えながら加工が行われ、Ｚ軸方向は振動しない状態である。そして、時刻ｔ11でＸ軸方向の移動経路Ｒ3Xの振動前進位置Ｒ1Xが目標位置（Ｘ＝１０．０）に到達すると振幅が徐々に減少し、時刻ｔ12で振動後退位置Ｒ2Xが目標位置に到達し、振動が収束する。そして、時刻ｔ12で図１１のシーケンス番号「Ｎ０４」で示される指令から作成される移動経路Ｒ3Zにしたがって、Ｚ軸に沿った振動が加えられる。
【００６０】
このような加工では、Ｘ＝１０．０，Ｚ＝０．０で一度振動が収束するため、図１２（ｂ）に示されるように、Ｘ＝１０．０，Ｚ＝０．０でコーナを正確に出すことができる。
【００６１】
図１３は、図１１の加工プログラムを指令ブロック間で振動を継続させて実行したときの様子を示す図である。図１３（ａ）は、Ｘ軸方向とＺ軸方向の時間に対する移動経路Ｒ3X，Ｒ3Zを示す図であり、図１３（ｂ）は、図１３（ａ）の条件で加工を行った場合のＺＸ面内での移動経路の軌跡を示す図である。なお、図１３（ａ）の移動経路Ｒ3X，Ｒ3Zは、上記したような手順によって求められる。
【００６２】
このような条件の加工では、まず、図１１のシーケンス番号「Ｎ０３」で示される指令にしたがって、Ｘ軸に沿った振動が加えられる。つまり、Ｘ軸方向に振動を加えながら加工が行われ、Ｚ軸方向は振動しない状態である。そして、時刻ｔ11でＸ軸方向の移動経路Ｒ3Xの振動前進位置Ｒ1Xが目標位置（Ｘ＝１０．０）に到達すると、図１１のシーケンス番号「Ｎ０４」で示される指令から作成される移動経路Ｒ3Zにしたがって、Ｚ軸方向にも振動を加えた加工が行われる。そして、時刻ｔ12でＸ軸方向の移動経路Ｒ3Xの振動後退位置Ｒ2Xが目標位置に到達すると、その後はＺ軸方向での加工のみとなる。
【００６３】
つまり、Ｘ軸方向の移動経路Ｒ3Xで、振動前進位置Ｒ1Xが目標位置に到達すると、Ｚ軸方向の加工も始まるので、図１３（ｂ）に示されるように、Ｘ＝１０．０，Ｚ＝０．０付近でコーナを滑らかにすることができる。図１３（ｃ）は、図１３（ｂ）のコーナ部Ｒでの工具の軌跡を拡大して示す図である。振動後退位置Ｒ2Xが目標位置に到達するまでつぎの指令を待つのではなく、振動前進位置Ｒ1Xが目標位置に到達すると、つぎの指令が実行されることになるので、コーナ部Ｒでの工具の移動経路は、Ｘ軸方向とＺ軸方向との合成となり、結果的に滑らかな加工が行われることになる。
【００６４】
なお、上記した説明では、実施の形態の内容を分かり易く説明するために、加工プログラムの１ブロック単位で波形を計算しているが、実際には補間処理部４８で単位時間（補間周期）ごとに計算が行われることになる。
【００６５】
実施の形態１では、ブロック間振動収束経路生成部４８２で振動前進位置と振動後退位置とを含むブロック間振動収束経路を生成し、ブロック間振動継続経路生成部４８３で振動前進位置と振動後退位置とを含むブロック間振動継続経路を生成し、振動移動量生成部４８５で振動前進位置と振動後退位置との差に基準振動波形を掛け合わせて振動移動量を生成し、移動量合成部４８６で振動移動量と振動後退位置とを重畳させて移動経路を生成した。これによって、ブロック間振動を収束させる場合と継続させる場合とで、異なる振動経路を生成することができるという効果を有する。
【００６６】
また、ブロック間振動収束経路生成部４８２とブロック間振動継続経路生成部４８３のいずれかで振動前進位置と振動後退位置を生成させるかを切り替えるブロック間移動切替部４８１を設けたので、加工プログラムでの加工内容またはラダープログラムでの指示内容にしたがって生成する経路の切り替えを行うことができるという効果を有する。
【００６７】
さらに、補間処理部４８では、加工プログラムで規定された指令ブロックに対応する指令のみではなく、指令ブロックに経路生成指示が含まれる場合に、その経路生成指示に従って作成された追加ブロックに対応する指令に対しても、ブロック間振動収束経路生成部４８２でブロック間振動収束経路を生成し、またはブロック間振動継続経路生成部４８３でブロック間振動継続経路を生成し、これに基づいて移動経路を生成するようにした。これによって、加工プログラムで規定されていないが、実際の加工に出現する指令ブロックについても、ブロック間振動の収束または継続を選択することができるという効果を有する。
【００６８】
さらにまた、対象となる指令による振動前進位置が目標位置に到達すると、つぎの指令による速さの振動前進位置に変わり、対象となる指令による振動後退位置が目標位置に到達すると、つぎの指令による速さの振動後退位置に変わるようにした。これによって、対象となる指令による振動前進位置が目標位置に到達してから振動後退位置が目標位置に到達するまでの間は、振動前進位置と振動後退位置との時間は一定だが、各時間での振動前進位置と振動後退位置との差が徐々に変わるため、移動経路の振幅が緩やかに変化することになる。その結果、対象となる指令による移動経路上での振幅からつぎの指令の移動経路上での振幅へと滑らかに変化しながら、指令ブロック間の処理を滑らかにつなぐことができるという効果を有する。
【００６９】
実施の形態２．
図１４は、実施の形態２による数値制御装置の構成の一例を示すブロック図である。この数値制御装置１は、実施の形態１と補間処理部４８の構成が異なる。
【００７０】
補間処理部４８は、入力操作部２０によって振動波形が選択されると、選択された振動波形を振動波形生成部４８４に渡す振動波形種類選択部４８７をさらに備える。なお、実施の形態１と同一の構成要素には、同一の符号を付してその説明を省略する。
【００７１】
図１５は、振動波形の一例を示す図である。振動波形として、三角波（図１５（ａ））、矩形波（図１５（ｂ）、（ｃ））、正弦波（図１５（ｄ））、台形波（図１５（ｅ）、（ｆ））、のこぎり波（図１５（ｇ）、（ｈ））などを例示することができる。
【００７２】
図１５（ａ）に示される三角波は、振動時の指令速度を最も小さくできる振動波形である。そのため、指令速度を大きくすることができない場合に有効である。図１５（ｂ）に示される矩形波は、指令振幅に対して最も大きなフィードバック振幅を得ることができる振動波形である。そのため、指令振幅に対して、フィードバック振幅の減衰が大きい場合に有効である。なお、移動経路を形成した後の時間に対する振動位置において、図１５（ｂ）では、矩形波の立ち上がった点Ａ１が振動前進位置Ｒ1に接し、矩形波の立ち下がった点Ａ３が振動後退位置Ｒ2に接しているが、これに限定されるものではない。たとえば図１５（ｃ）のように、矩形波の点Ａ１〜Ａ２を振動前進位置Ｒ1と重なるように配置し、点Ａ３〜Ａ４を振動後退位置Ｒ2と重なるように配置してもよい。
【００７３】
図１５（ｃ）に示される正弦波は、理想的な振動形状をそのまま指令することができる振動波形である。そのため、指令に対してフィードバックが十分に追従する場合には、理想的な振動形状を作り出すことができる。
【００７４】
図１５（ｅ）に示される台形波は、矩形波に近いが指令速度を緩やかに調整することができる振動波形である。この台形波の場合にも、矩形波の場合と同様に、図１５（ｅ）では、台形波の立ち上がった点Ａ１が振動前進位置Ｒ1に接し、台形波の立ち下がった点Ａ３が振動後退位置Ｒ2に接しているが、これに限定されるものではない。たとえば図１５（ｆ）のように、台形波の点Ａ１〜Ａ２を振動前進位置Ｒ1と重なるように配置し、点Ａ３〜Ａ４を振動後退位置Ｒ2と重なるように配置してもよい。図１５（ｇ）、（ｈ）に示されるのこぎり波は、前進／後退の速度を大きく変えたい場合に使用することができる。
【００７５】
なお、移動経路の生成について、振動波形種類選択部４８７による振動波形の種類の選択以外は、実施の形態１と同様であるのでその説明を省略する。
【００７６】
実施の形態２では、振動波形種類選択部４８７で、ユーザによって指定された波形の種類を選択し、振動波形生成部４８４で選択された波形に基づいて振動波形を生成するようにした。これによって、加工プログラムで要求される制御の種類に適した振動波形に変更することができるという効果を有する。
【００７７】
なお、上記した説明では、加工プログラム上の移動経路について説明したが、加工プログラム上の移動経路は、一般的にその命令によって加工された後の加工対象の輪郭の軌跡を示すものである。そのような加工対象の輪郭を得るために、工具で切削するのであるが、加工対象に対して工具を移動させる際の工具の基準位置（たとえば工具の中心位置）の軌跡は、上記移動経路とは異なる。それは、工具の基準位置と刃先の位置とが一致していないためである。そこで、上記の加工プログラム上の移動経路が工具の基準位置となるように補正を行って補正経路を生成し、この補正経路に対して振動を加えるようにしてもよい。
【００７８】
なお、上記した実施の形態１，２は、ドリル加工に対しても適用することができる。
【産業上の利用可能性】
【００７９】
以上のように、本発明にかかる数値制御装置は、加工プログラムを用いた工作機械の数値制御に適している。
【符号の説明】
【００８０】
１  数値制御装置、１０  駆動部、１１  サーボモータ、１２  検出器、１３，１３Ｘ，１３Ｚ  サーボ制御部、１４  主軸モータ、１５  検出器、１６  主軸制御部、２０  入力操作部、３０  表示部、４０  制御演算部、４１  入力制御部、４２  データ設定部、４３  記憶部、４４  画面処理部、４５  解析処理部、４６  機械制御信号処理部、４７  ＰＬＣ回路部、４８  補間処理部、４９  加減速処理部、５０  軸データ出力部、６１  加工対象、６２  工具、１０１  移動経路、４３１  パラメータ、４３２  加工プログラム、４３３  画面表示データ、４３４  共有エリア、４５１  移動指令生成部、４５２  追加指令生成部、４５３  振動指令解析部、４８１  ブロック間移動切替部、４８２  ブロック間振動収束経路生成部、４８３  ブロック間振動継続経路生成部、４８４  振動波形生成部、４８５  振動移動量生成部、４８６  移動量合成部、４８７  振動波形種類選択部。
【要約】
数値制御装置（１）は、対象となる指令ブロックでの第１移動経路とつぎの指令ブロックでの第２移動経路とが振動を伴う加工である場合に、前記第１移動経路と前記第２移動経路との間で振動が継続するようにブロック間振動継続経路を駆動軸ごとに生成するブロック間振動継続経路生成部（４８３）と、振動条件を用いて、ブロック間振動継続経路に重畳させる基準振動波形を駆動軸ごとに生成する振動波形生成部（４８４）と、基準振動波形を用いて、ブロック間振動継続経路における振動移動量を駆動軸ごとに算出する振動移動量生成部（４８５）と、ブロック間振動継続経路に振動移動量を加算した合成移動量を駆動軸ごとに生成する移動量合成部（４８６）と、を備える。【図１】
0005781241.tif 000002
【図２】
0005781241.tif 000003
【図３】
0005781241.tif 000004
【図４】
0005781241.tif 000005
【図５】
0005781241.tif 000006
【図６】
0005781241.tif 000007
【図７】
0005781241.tif 000008
【図８】
0005781241.tif 000009
【図９】
0005781241.tif 000010
【図１０】
0005781241.tif 000011
【図１１】
0005781241.tif 000012
【図１２】
0005781241.tif 000013
【図１３】
0005781241.tif 000014
【図１４】
0005781241.tif 000015
【図１５】
0005781241.tif 000016