(57)【特許請求の範囲】
【請求項１】
工具および加工対象の少なくともいずれか一方に設けられた２以上の駆動軸によって、前記工具と前記加工対象とを相対的に移動させながら前記加工対象の加工を行う数値制御装置であって、
加工プログラムの曲線移動経路上を移動させる移動指令と、前記曲線移動経路に沿って振動させる振動条件と、を取得する解析処理手段と、
単位時間での前記移動指令による移動量である指令移動量を算出する指令移動量算出手段と、
前記移動指令に対応する時刻における前記単位時間での振動による移動量である振動移動量を、前記振動条件を用いて算出する振動移動量算出手段と、
前記指令移動量と前記振動移動量とを合成して合成移動量を算出し、前記合成移動量の算出基準となる位置から前記合成移動量だけ移動した位置が前記曲線移動経路上に位置するように、前記単位時間内の移動量を求める移動量合成手段と、
を備えることを特徴とする数値制御装置。
【請求項２】
前記振動条件は、周波数と振幅を含み、
前記振動移動量算出手段は、前記振動条件から正弦波を生成し、前記正弦波を用いて前記移動指令に対応する時刻における前記振動移動量を算出することを特徴とする請求項１に記載の数値制御装置。
【請求項３】
工具および加工対象の少なくともいずれか一方に設けられた２以上の駆動軸に接続されるモータを制御し、前記モータ毎に設けられる駆動軸制御部と、
前記工具と前記加工対象とを相対的に移動させながら前記加工対象の加工を行うように前記駆動軸制御部に対して指示を行う制御演算部と、
を備える数値制御装置であって、
前記制御演算部は、
加工プログラムの移動経路上を移動させる移動指令と、前記移動経路に沿って振動させる振動条件と、を取得する解析処理手段と、
単位時間での前記移動指令による移動量である指令移動量を算出する指令移動量算出手段と、
前記指令移動量を前記２以上の前記駆動軸方向に分解した軸指令移動量の比と前記振動条件とから、前記駆動軸毎の振動条件を算出する振動条件算出手段と、
を有し、
前記駆動軸制御部は、
前記制御演算部から受信した前記駆動軸毎の振動条件から前記単位時間当たりの振動による移動量である軸振動移動量を算出する軸振動移動量算出手段と、
前記軸指令移動量と前記軸振動移動量とを合成した合成移動量を算出する移動量合成手段と、
を有することを特徴とする数値制御装置。
【請求項４】
前記振動条件は、周波数と振幅を含み、
前記制御演算部の前記振動条件算出手段は、前記振動条件から正弦波を生成し、前記正弦波を用いて前記移動指令に対応する時刻における前記駆動軸毎の振動条件を算出することを特徴とする請求項３に記載の数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値制御装置に関するものである。
【背景技術】
【０００２】
従来では、旋削加工において、切削工具をワークに対して、少なくとも２軸方向に送り動作させる切削工具送り機構と、上記少なくとも２軸方向に切削工具を低周波振動させて切削工具送り駆動モータを制御する制御機構と、を有する数値制御装置が提案されている（たとえば、特許文献１参照）。この数値制御装置では制御機構は、各種設定を行う操作手段と、操作手段によって設定されたワークの回転数または切削工具１回転当たりの切削工具の送り量に応じて、切削工具を少なくとも２軸方向に同期させて送り動作させる２５Ｈｚ以上の低周波で動作可能なデータとして、送り軸のイナーシャやモータ特性等の機械特性に応じた少なくとも切削工具送り機構の前進量、後退量、前進速度、後退速度が予め表にされて格納されている振動切削情報格納手段と、振動切削情報格納手段に格納されている当該データに基づいて切削工具送り駆動モータを制御してなるモータ制御手段と、を有している。【０００３】
これによって、操作手段から設定されたワークの回転数または切削工具１回転当たりの切削工具の送り量が表に存在する場合には、それに対応する切削工具送り機構の前進量、後退量、前進速度、後退速度で切削加工が行われる。また、操作手段から設定されたワークの回転数または切削工具１回転当たりの切削工具の送り量が表に存在しない場合には、適正値がプログラム設定されていない旨の警告が表示され、処理が終了する。【０００４】
また、輪郭制御を行うための２軸以上の制御軸を制御し、輪郭制御を行う数値制御装置において、２軸以上の制御軸を同時制御してチョッピング動作させると同時に輪郭制御する移動データを生成する数値制御装置が提案されている（たとえば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第５０３３９２９号公報
【特許文献２】特許第４２９３１３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１によれば、表に設定する切削工具を少なくとも２軸方向に同期させて送り動作させる２５Ｈｚ以上の低周波で動作可能なデータを作成しにくいという問題点があった。たとえば、表を作成する際には、ワークの回転数または切削工具１回転当たりの切削工具の送り量ごとに、切削工具送り機構の前進量、後退量、前進速度、後退速度を定めなければならないので、数値制御装置で使用され得るワークの回転数または切削工具１回転当たりの切削工具の送り量を網羅しなければならない。そのため、表の作成には手間がかかっていた。【０００７】
また、表に設定されていないワークの回転数または切削工具１回転当たりの切削工具の送り量が入力された場合には、加工が行われず、処理が終了してしまうので、操作手段から入力した条件が加工可能であるか否かが、実際に処理を始めるまで不明であるという問題点もあった。【０００８】
また、特許文献２は、チョッピングを行いながら輪郭制御を行うための数値制御装置に関するものである。チョッピング動作は、特許文献１同様振動を伴いながら輪郭制御するためのものであるが、振動の方向は輪郭制御の方向に対し、所定の角度で交わることを前提としており、加工方向に工具を振動させることについては、考慮されていない。【０００９】
本発明は、上記に鑑みてなされたもので、加工経路に沿って振動させながら加工する数値制御装置において、工具の振動条件を格納した表を必要とすることなく、加工プログラムによって加工経路を与えると、加工経路上で工具が所定の周波数で振動しながら加工することができる数値制御装置を得ることを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、本発明にかかる数値制御装置は、工具および加工対象の少なくともいずれか一方に設けられた２以上の駆動軸によって、前記工具と前記加工対象とを相対的に移動させながら前記加工対象の加工を行う数値制御装置であって、加工プログラムの曲線移動経路上を移動させる移動指令と、前記曲線移動経路に沿って振動させる振動条件と、を取得する解析処理手段と、単位時間での前記移動指令による移動量である指令移動量を算出する指令移動量算出手段と、前記移動指令に対応する時刻における前記単位時間での振動による移動量である振動移動量を、前記振動条件を用いて算出する振動移動量算出手段と、前記指令移動量と前記振動移動量とを合成して合成移動量を算出し、前記合成移動量の算出基準となる位置から前記合成移動量だけ移動した位置が前記曲線移動経路上に位置するように、前記単位時間内の移動量を求める移動量合成手段と、を備えることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、与えられた振動条件、例えば周波数と振幅に基づいて数値制御装置が加工経路に沿った振動を加えることが可能となるので、工具の振動条件を格納した表を必要とすることなく、種々の条件で加工することができるという効果を有する。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施の形態１による数値制御装置の構成の一例を示すブロック図である。
【図２】図２は、実施の形態１による数値制御装置の軸の構成を模式的に示す図である。
【図３】図３は、実施の形態１による加工方法を模式的に示す図である。
【図４】図４は、実施の形態１による加工プログラムの一例を示す図である。
【図５】図５は、実施の形態１による振動を伴う補間処理の一例を示すフローチャートである。
【図６】図６は、実施の形態１による振動を伴う補間処理の具体的な処理手順の一例を示す図である。
【図７】図７は、図６で求めた合成移動量の単位時間ごとの方向と大きさを示す図である。
【図８】図８は、移動経路が円弧状の場合のＸ軸とＺ軸の指令位置を示す図である。
【図９】図９は、実施の形態１によるドリルでの加工方法を模式的に示す図である。
【図１０】図１０は、実施の形態２による数値制御装置の構成の一例を示すブロック図である。
【図１１】図１１は、実施の形態２による振動を伴う補間処理の手順の一例を示すフローチャートである。
【図１２】図１２は、実施の形態２による加工方法を模式的に示す図である。
【図１３】図１３は、実施の形態２による移動経路への振動の付加を概念的に示す図である。
【図１４】図１４は、実施の形態２による加工処理の際のＺ軸とＸ軸の位置指令値の時間による変化の一例を示す図である。
【図１５】図１５は、実施の形態３による数値制御装置の構成の一例を示すブロック図である。
【図１６】図１６は、実施の形態３による制御演算部側での振動を伴う補間処理の手順の一例を示すフローチャートである。
【図１７】図１７は、実施の形態３による駆動部側で振動を発生させる処理の手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下に添付図面を参照して、本発明の実施の形態にかかる数値制御装置を詳細に説明する。なお、これらの実施の形態により本発明が限定されるものではない。
【００１４】
実施の形態１．
図１は、実施の形態１による数値制御装置の構成の一例を示すブロック図である。数値制御装置１は、駆動部１０と、入力操作部２０と、表示部３０と、制御演算部４０と、を有する。
【００１５】
駆動部１０は、加工対象および工具のいずれか一方または両方を少なくとも２軸方向に駆動する機構である。ここでは、数値制御装置１上で規定された各軸方向に加工対象および／または工具を移動させるサーボモータ１１と、サーボモータ１１の位置・速度を検出する検出器１２と、検出器１２からの位置・速度に基づいて、加工対象および／または工具の位置や速度の制御を行う各軸方向のサーボ制御部１３（Ｘ軸サーボ制御部１３Ｘ，Ｚ軸サーボ制御部１３Ｚ，・・・。なお、以下では、駆動軸の方向を区別する必要がない場合には、単にサーボ制御部１３と表記する）と、を有する。また、加工対象に設けられた主軸を回転させる主軸モータ１４と、主軸モータ１４の位置・回転数を検出する検出器１５と、検出器１５からの位置・回転数に基づいて、加工対象に設けられた主軸の回転を制御する主軸サーボ制御部１６と、を有する。
【００１６】
入力操作部２０は、キーボードやボタン、マウスなどの入力手段によって構成され、ユーザによる数値制御装置１に対するコマンドなどの入力、または加工プログラムもしくはパラメータなどの入力が行われる。表示部３０は、液晶表示装置などの表示手段によって構成され、制御演算部４０によって処理された情報が表示される。
【００１７】
制御演算部４０は、入力制御部４１と、データ設定部４２と、記憶部４３と、画面処理部４４と、解析処理部４５と、機械制御信号処理部４６と、ＰＬＣ（Programmable  Logic  Controller）回路部４７と、補間処理部４８と、加減速処理部４９と、軸データ出力部５０と、を有する。
【００１８】
入力制御部４１は、入力操作部２０から入力される情報を受け付ける。データ設定部４２は、入力制御部４１で受け付けられた情報を記憶部４３に記憶する。たとえば入力された内容が加工プログラム４３２の編集の場合には、記憶部４３に記憶されている加工プログラム４３２に編集された内容を反映させ、パラメータが入力された場合には記憶部４３のパラメータの記憶領域４３１に記憶する。
【００１９】
記憶部４３は、制御演算部４０の処理で使用されるパラメータ４３１、実行される加工プログラム４３２、表示部３０に表示させる画面表示データ４３３などの情報を記憶する。また、記憶部４３には、パラメータ４３１、加工プログラム４３２以外の一時的に使用されるデータを記憶する共有エリア４３４が設けられている。画面処理部４４は、記憶部４３の画面表示データを表示部３０に表示させる制御を行う。
【００２０】
解析処理部４５は、１以上のブロックを含む加工プログラムを読み込み、読み込んだ加工プログラムを１ブロック毎に解析し、１ブロックで移動する移動指令を生成する移動指令生成部４５１と、加工プログラムに振動指令が含まれているかを解析し、振動指令が含まれている場合に、振動指令に含まれる周波数と振幅などの振動情報を生成する振動指令解析部４５２と、を有する。
【００２１】
機械制御信号処理部４６は、解析処理部４５によって、数値制御軸（駆動軸）を動作させる指令以外の機械を動作させる指令としての補助指令を読み込んだ場合に、補助指令が指令されたことをＰＬＣ回路部４７に通知する。ＰＬＣ回路部４７は、機械制御信号処理部４６から補助指令が指令されたことの通知を受けると、その補助指令に対応する処理を実行する。
【００２２】
補間処理部４８は、解析処理部４５が解析した移動指令を用い、単位時間（補間周期）で移動する移動量である指令移動量を算出する指令移動量算出部４８１と、工具または加工対象を振動させるための単位時間での移動量である振動移動量を算出する振動移動量算出部４８２と、単位時間当たりの指令移動量と振動移動量とを合成した合成移動量を算出する移動量合成部４８３と、移動経路内を通るように単位時間当たりの合成移動量から各駆動軸の移動量を算出する合成移動量分解部４８４と、を有する。
【００２３】
加減速処理部４９は、補間処理部４８から出力された各駆動軸の合成移動量を、予め指定された加減速パターンに従って加減速を考慮した単位時間当たりの移動指令に変換する。軸データ出力部５０は、加減速処理部４９で処理された単位時間当たりの移動指令を、各駆動軸を制御するサーボ制御部１３Ｘ，１３Ｚ，・・・に出力する。
【００２４】
工具または加工対象を振動させながら加工を行うためには、上記したように、加工を行う際に、加工対象と工具とを相対的に移動させればよい。図２は、旋削加工を行う実施の形態１による数値制御装置の軸の構成を模式的に示す図である。この図では、紙面内に直交するＺ軸とＸ軸を設けている。図２（ａ）は、加工対象６１を固定し、たとえば旋削加工を行う旋削加工用工具である工具６２のみをＺ軸とＸ軸方向に移動させる場合であり、図２（ｂ）は、加工対象６１をＺ軸方向に移動させ、工具６２をＸ軸方向に移動させる場合である。これらのいずれの場合でも、移動させる対象（加工対象６１および／または工具６２）にサーボモータ１１を設けることで、以下に説明する処理を行うことが可能となる。
【００２５】
図３は、実施の形態１による加工方法を模式的に示す図である。ここでは、紙面内に直交するＺ軸とＸ軸が設けられ、このＺＸ面内の移動経路１０１に沿って工具６２と加工対象とを相対的に移動させながら加工を行う場合が示されている。実施の形態１では、移動経路１０１に沿って工具６２を加工対象に対して相対的に移動させる際に、移動経路１０１をなぞるように工具６２を振動させるようにしている。すなわち、直線の区間では直線に沿って往復するように工具６２を振動させ、曲線の区間では曲線に沿って往復するように工具６２を振動させる。なお、工具６２を振動させるという記載は、工具６２の加工対象６１に対する相対的な運動であり、実際には図２に示したように、工具６２と加工対象６１のいずれを動かしてもよい。以下の説明も同様である。
【００２６】
図４は、実施の形態１による加工プログラムの一例を示す図である。加工プログラムは、行（ブロック）ごとに読み込まれ、実行されていく。この加工プログラム中の行４０１の「Ｍ３  Ｓ１０００；」は主軸の回転指令であり、行４０３の「Ｇ０１  Ｘ１０．０  Ｚ２０．０  Ｆ０．０１；」は直線補間の指令であり、行４０４の「Ｇ０２  Ｘ１４．０  Ｚ２３．５  Ｒ４．０；」は時計回りの円弧補間の指令であり、一般的な数値制御装置で使用される指令である。
【００２７】
一方、行４０２の「Ｇ２００  Ｆ５０  Ａ０．０３；」と行４０５の「Ｇ２０１；」は、この実施の形態１の振動切削を指令するものであり、新たに設けられる指令である。ここでは、指令「Ｇ２００」は振動切削の開始を意味するものであり、指令「Ｇ２０１」は振動切削の終了を意味するものである。また、「Ｆ」とそれに続く数値は振動させる周波数（Ｈｚ）を意味するものであり、「Ａ」とそれに続く数値は振動させる振幅（たとえばｍｍ）を意味するものである。なお、これは一例であり、振動切削の開始と終了、振動させる周波数と振幅を意味する記号は、他のものであってもよく、周波数と振幅の指令値についても任意の数値で構わないが、曲線経路上で精度良く振動させるため、また、切削により発生する切屑を振動により細かく分断するために、微小な振動（振幅が数十マイクロメートル以下かつ周波数が数百Ｈｚ以下）を一般的に指令する。
【００２８】
つぎに、実施の形態１の数値制御装置による加工方法について説明する。図５は、実施の形態１による振動を伴う補間処理の一例を示すフローチャートである。
【００２９】
まず、解析処理部４５の移動指令生成部４５１によって加工プログラムから工具および／または加工対象の位置と速度を含む移動経路を有する移動指令が補間処理部４８に出力される。また、振動指令解析部４５２によって、周波数と振幅を含む振動条件が補間処理部４８に出力される。補間処理部４８は、解析処理部４５によって出力される移動指令と振動条件を取得する（ステップＳ１１）。
【００３０】
ついで、補間処理部４８の指令移動量算出部４８１は、移動指令から単位時間（補間周期）当たりの指令移動量（移動指令による移動量である）を算出する（ステップＳ１２）。これは、直線補間、円弧補間などの種類によって、予め定められた手法によって求められる。
【００３１】
その後、振動移動量算出部４８２は、単位時間当たりの振動による移動量である振動移動量を算出する（ステップＳ１３）。振動移動量は取得した振動条件（周波数、振幅）の正弦波を想定し、今回の補間時刻に対応する正弦波上の位置を求め、前回補間時刻時の位置との差として今回補間時刻に対応する振動移動量を求める（つまり、図６（ｅ）で今回補間時刻をｔ２とすると、時刻ｔ２におけるΔａ２を求める）。
【００３２】
ついで、移動量合成部４８３は、指令移動量と振動移動量とを合成した合成移動量を算出する（ステップＳ１４）。ここでは、指令移動量に振動移動量を加算するものとする。
【００３３】
その後、合成移動量分解部４８４は、移動経路内を通るように、単位時間当たりの合成移動量を各駆動軸の成分に分解した軸移動量を算出する（ステップＳ１５）。そして、算出した軸移動量は、軸データ出力部５０を介して各駆動軸のサーボ制御部１３に出力される（ステップＳ１６）。
【００３４】
なお、ステップＳ１４で、合成移動量の終点の位置が加工開始位置から加工方向の反対側に位置してしまう場合、または合成移動量の終点が加工終了位置から加工方向側を過ぎてしまう場合には、意図しない領域まで加工されることになる。そのため、合成移動量の終点の位置が加工開始位置から加工方向の反対側に位置してしまう場合には、合成移動量の終点の位置が加工開始点までとなるように、また合成移動量の終点が加工終了位置から加工方向側を過ぎてしまう場合には、合成移動量の終点が加工終了点までとなるように、合成移動量を補正してもよい。
【００３５】
その後、指令移動量算出部４８１は、指令済みの指令移動量のそれまでの合算値が目標移動量未満であるかを判定する（ステップＳ１７）。指令移動量の合算値が目標移動量未満である場合（ステップＳ１７でＹｅｓの場合）には、ステップＳ１２へと処理が戻り、上述した処理が繰り返し実行される。一方、指令移動量の合算値が目標移動量に到達した場合（ステップＳ１７でＮｏの場合）には、加工が目標位置まで進行したので、処理が終了する。
【００３６】
図６は、実施の形態１による振動を伴う補間処理の具体的な処理手順の一例を示す図であり、図７は、図６で求めた合成移動量の単位時間ごとの方向と大きさを示す図である。まず、図６（ａ）に示されるように、ＺＸ平面内で円弧状の移動経路に沿って、工具と加工対象とを相対的に移動させる場合について説明する。加工プログラムには、加工開始点、加工終了点、加工対象に対する工具の相対的な移動速度Ｆ、補間方式（直線補間、円弧補間など）、振動条件が規定されており、これらの条件を補間処理部４８はステップＳ１１で取得する。
【００３７】
指令移動量算出部４８１は、加工開始点、加工終了点、移動速度および補間方式を用いて、加工開始点から加工終了点までの移動距離Ｌと所要時間Ｔを求める。このときの時間に対する移動距離は、図６（ｂ）のようになる。
【００３８】
その後、移動距離Ｌと補間周期（単位時間）Δｔから、各時刻での単位時間当たりの移動量である指令移動量ΔＬを求める（ステップＳ１２）。この結果が、図６（ｄ）に示されている。この図６（ｄ）は、図６（ｂ）の時刻ｔ１〜ｔ７の間を拡大して示したものである。ここでは、指令移動量ΔＬはどの時刻でも一定であるものとする。
【００３９】
まず、指令移動量算出部４８１は、時刻ｔ１での指令移動量ΔＬを求める。また、振動移動量算出部４８２は、加工プログラムから得られる振動条件を用いて図６（ｃ）に示される振動の時間的変化を示す関数を作成し、時刻ｔ１での単位時間（補間周期）Δｔ当たりの振動による移動量である振動移動量Δａ１を求める（ステップＳ１３）。この結果が、図６（ｅ）に示されている。この図６（ｅ）も、図６（ｂ）の時刻ｔ１〜ｔ７の間を拡大して表示している。
【００４０】
移動量合成部４８３は、指令移動量ΔＬと振動移動量Δａ１とを合算し、時刻ｔ１での単位時間当たりの合成移動量ｓ１を求める（ステップＳ１４）。これは、図６（ｄ）に、図６（ｅ）から求まる振動移動量Δａ１を加算することで求められ、その結果は図６（ｆ）のようになる。ここでは、時刻ｔ１での単位時間Δｔ当たりの合成移動量ｓ１（＝ΔＬ＋Δａ１）が、時刻ｔ１での位置Ｐ１に加算される。この位置Ｐ１から合成移動量ｓ１だけ移動経路を通るように加算した位置が移動先の位置Ｐ２となる。ここで、補間方式と移動量が分かっていれば、移動先の位置を算出することができる。
【００４１】
ついで、合成移動量分解部４８４は、移動経路上の現在の位置Ｐ１と補間方式にしたがって、図７の時刻ｔ１に示されるように、単位時間当たりの合成移動量ｓ１を駆動軸Ｚ，Ｘの成分の移動量ｓ１Ｚ，ｓ１Ｘに分配する（ステップＳ１５）。そして、軸データ出力部５０は、Ｘ軸サーボ制御部１３Ｘには移動量ｓ１Ｘを指令し、Ｚ軸サーボ制御部１３Ｚには移動量ｓ１Ｚを指令する（ステップＳ１６）。なお、このとき指令される移動量ｓ１Ｚ，ｓ１Ｘは、加減速処理部４９で加減速処理されたものである。
【００４２】
その後、指令済み移動量の合算値が目標移動量未満であるかを判定する（ステップＳ１７）。この場合には、指令済み移動量の合算値が目標移動量未満であるので、つぎの時刻ｔ２における処理が行われる。
【００４３】
時刻ｔ２では、単位時間当たりの指令移動量がΔＬであり、振動移動量がΔａ２であるので、これらから単位時間当たりの合成移動量ｓ２（＝ΔＬ＋Δａ２）が求められる。また、これによって、単位時間後の移動先の位置Ｐ３が定まる。この位置Ｐ３は、位置Ｐ２に移動経路に沿って合成移動量ｓ２を加算したものである。そして、図７の時刻ｔ２に示されるように、この合成移動量ｓ２から各駆動軸方向の各軸移動量ｓ２Ｚ，ｓ２Ｘが求められる。
【００４４】
時刻ｔ３では、単位時間当たりの指令移動量がΔＬであり、振動移動量がΔａ３であるので、これらから単位時間当たりの合成移動量ｓ３（＝ΔＬ＋Δａ３）が求められる。また、これによって、単位時間後の移動先の位置Ｐ４が定まる。この位置Ｐ４は、位置Ｐ３に移動経路に沿って合成移動量ｓ３（＝ΔＬ＋Δａ３）を加算したものである。この合成移動量ｓ３は、図６（ｆ）に示されるように、時刻ｔ１，ｔ２での合成移動量ｓ１，ｓ２とは反対向きとなる。図７の時刻ｔ３に示されるように、この合成移動量ｓ３から各駆動軸方向の各軸移動量ｓ３Ｚ，ｓ３Ｘが求められる。その後の点についても同様の処理が行なわれる。
【００４５】
そして、時刻ｔ６では、単位時間当たりの指令移動量がΔＬであり、振動移動量がΔａ６であるので、これらから単位時間当たりの合成移動量ｓ６（＝ΔＬ＋Δａ６）が求められる。また、これによって、単位時間後の移動先の位置Ｐ７が定まる。この位置Ｐ７は、位置Ｐ６に移動経路に沿って合成移動量ｓ６を加算したものである。そして、図７の時刻ｔ６に示されるように、この合成移動量ｓ６から各駆動軸方向の各軸移動量ｓ６Ｚ，ｓ６Ｘが求められる。この例では、位置Ｐ７は、振動を加えない場合の移動経路上の時刻ｔ７における位置と一致している。以上のようにして、移動経路に沿った振動を加えて工具を被加工物に対して移動させる処理が行われる。
【００４６】
図８は、移動経路が円弧状の場合のＸ軸とＺ軸の指令位置を示す図である。図８（ａ）に示されるように、紙面内にＺ軸とＸ軸を取り、ＺＸ平面内で加工対象に対して工具６２が円弧状の移動経路を描くように、工具６２または加工対象の位置を移動させていく。この加工の最中には、振動の位置が時間に対して正弦波を描くような振動を加える。加工開始点Ｐ０における工具６２の加工対象に対する移動方向はＺ軸方向となっており、加工終了点Ｐ１における工具６２の加工対象に対する移動方向はＸ軸方向となっている。そのため、加工開始では振動はＺ軸方向の成分のみでＸ軸方向の成分はない。工具６２が移動経路上を進行するにつれて、振動の各駆動軸方向の成分は、Ｚ軸方向で徐々に減少し、Ｘ軸方向で徐々に増大するようになる。そして、加工終了では、振動はＸ軸方向のみでＺ軸方向の成分はない。このように、工具６２の移動方向に応じて振動角度が変化する様子が、図８（ｂ）と（ｃ）に示されている。
【００４７】
この実施の形態１では、加工中に移動経路に沿って加える振動の周波数と振幅とを規定した振動切削を行う指令を加工プログラムに設け、補間処理部４８で単位時間当たりの指令移動量に単位時間当たりの振動移動量を加えた合成移動量を算出し、この合成移動量を移動経路上を通るように駆動軸方向の成分に分解した軸移動量を算出する。これによって、制御演算部４０は、加工経路に沿った振動を加えることが可能となる。また、加工経路に沿って振動を加えるので、加工経路以外の位置を削ったり、加工対象を削りすぎたりすることを防ぐことができる。
【００４８】
また、合成移動量が加工開始位置から加工方向の反対側になってしまう場合には、合成移動量の終点が加工開始点までとなるように合成移動量を補正し、また合成移動量が加工終了位置から加工方向側を過ぎてしまう場合には、合成移動量の終点が加工終了点までとなるように、合成移動量を補正するようにした。これによって、加工開始位置と加工終了位置をはみ出した加工を行うことがないという効果も有する。
【００４９】
さらに、加工プログラムに振動切削を行う指令を記述するようにしたので、加工時に加える振動に関する表を制御演算部４０が保持する必要がなく、また表に振動に関する加工条件を入力する手間を省くことができるという効果も有する。また、補間処理時に振動を付加するので、補間処理よりも大きい区間が指定される加工プログラムで振動条件を直接指令する（前進・後退の繰り返し指令を行う）場合に比して、より高い周波数の振動を発生させて加工を行うことができるという効果を有する。
【００５０】
また実施の形態１では、ドリル加工においても同様の振動加工を行うことができる。図９は、実施の形態１によるドリルでの加工方法を模式的に示す図である。ドリル６３を用いたドリル加工の場合は必ず直線の輪郭制御となるが、その直線形状の加工経路上を同様に振動制御を行う。また、この直線形状上の加工経路は斜め方向１０１で振動制御を行ってもよい。ドリル加工においては前述のように加工経路１０１以外の位置を削るということは起こりえないが、前述と同様に加工開始位置と加工終了位置をはみ出すことがないという効果、およびより高い振動を発生できるという効果は有する。
【００５１】
実施の形態２．
図１０は、実施の形態２による数値制御装置の構成の一例を示すブロック図である。この数値制御装置１は、実施の形態１と補間処理部４８の構成が異なる。すなわち、補間処理部４８は、解析処理部４５が解析した移動指令を用い、単位時間（補間周期）で移動する移動量である指令移動量を算出する指令移動量算出部４８１と、工具または加工対象を振動させることによる単位時間での移動量である振動移動量を算出する振動移動量算出部４８２と、指令移動量の各駆動軸方向の移動量である軸指令移動量を算出する指令移動量分解部４８５と、各駆動軸の軸指令移動量の比にしたがって振動移動量を各駆動軸方向の移動量である軸振動移動量を算出する振動移動量分解部４８６と、各駆動軸方向の軸指令移動量と軸振動移動量とを加算して各駆動軸の軸合成移動量を算出する軸移動量合成部４８７と、を有する。なお、実施の形態１と同一の構成要素には、同一の符号を付してその説明を省略する。
【００５２】
つぎに、実施の形態２の数値制御装置による加工方法について説明する。図１１は、実施の形態２による振動を伴う補間処理の手順の一例を示すフローチャートである。
【００５３】
まず、実施の形態１の図２のステップＳ１１〜１３と同様に、解析処理部４５から出力される移動指令と振動条件を取得し、指令移動量算出部４８１は移動指令から単位時間当たりの指令移動量を算出し、振動移動量算出部４８２は振動条件から単位時間当たりの振動移動量を算出する（ステップＳ３１〜Ｓ３３）。
【００５４】
ついで、指令移動量分解部４８５は、指令移動量を各駆動軸方向の成分に分解し、軸指令移動量を算出する（ステップＳ３４）。これによって、各駆動軸方向の軸指令移動量の比が得られる。
【００５５】
その後、振動移動量分解部４８６は、各駆動軸方向の分解指令移動量の比を用いて、振動移動量を各駆動軸方向の成分に分解した軸振動移動量を算出する（ステップＳ３５）。
【００５６】
ついで、軸移動量合成部４８７は、ステップＳ３４で求められた軸指令移動量とステップＳ３５で求められた軸振動移動量とを駆動軸毎に加算して、各駆動軸の軸合成移動量を算出する（ステップＳ３６）。そして、軸データ出力部５０は、算出した軸合成移動量を各駆動軸のサーボ制御部１３に出力する（ステップＳ３７）。
【００５７】
なお、ステップＳ３６で、各駆動軸の軸合成移動量の終点が加工開始位置から加工方向の反対側になってしまう場合、または各駆動軸の軸合成移動量の終点が加工終了位置から加工方向側を過ぎてしまう場合には、意図しない領域まで加工されることになる。そのため、各駆動軸の軸合成移動量の終点が加工開始位置から加工方向の反対側になってしまう場合には、軸合成移動量の終点が加工開始点までとなるように、また各駆動軸の合成移動量の終点が加工終了位置から加工方向側を過ぎてしまう場合には、軸合成移動量の終点が加工終了点までとなるように、軸合成移動量を補正してもよい。
【００５８】
その後、指令移動量算出部４８１は、指令済みの指令移動量のそれまでの合算値が目標移動量未満であるかを判定する（ステップＳ３８）。指令移動量の合算値が目標移動量未満である場合（ステップＳ３８でＹｅｓの場合）には、ステップＳ３２へと処理が戻り、上記した処理が繰り返し実行される。一方、指令移動量の合算値が目標移動量に到達した場合（ステップＳ３８でＮｏの場合）には、加工が目標位置まで進行したので、処理が終了する。
【００５９】
図１２は、実施の形態２による加工方法を模式的に示す図である。ここでは、紙面内に直交するＺ軸とＸ軸が設けられ、このＺＸ面内の移動経路１０１に沿って工具６２と加工対象とを相対的に移動させながら加工を行う場合が示されている。実施の形態２では、移動経路１０１に沿って工具６２を加工対象に対して相対的に移動させる際に、移動経路１０１上の補間周期に対応する位置での接線方向に工具６２を振動させるようにしている。すなわち、直線の区間では直線に沿って往復するように工具６２を振動させ、曲線の区間では補間周期に対応する位置での接線方向に沿って往復するように工具６２を振動させる。
【００６０】
図１３は、実施の形態２による移動経路への振動の付加を概念的に示す図である。図１３（ａ）は、指令移動量の時間による変化を示している。この図では、横軸は時間であり、縦軸は送り軸の位置指令値である。時間の経過とともに送り軸位置指令値が直線的に増加している。
【００６１】
図１３（ｂ）は、振動移動量の時間による変化を示しており、横軸は時間であり、縦軸は送り軸の位置指令値である。時間の経過とともに周期的に送り軸位置指令値が増減している。この例では、送り軸位置指令値は時間に対する正弦波として表される。この図より、加える振動の振幅と周波数（＝１／波長）が得られる。逆に、振幅と周波数を任意に設定することで、任意の振動移動量を得ることができる。
【００６２】
図１３（ｃ）は、（ａ）と（ｂ）を合成したものである。この図でも、横軸は時間であり、縦軸は送り軸の位置指令値である。また、合成前の移動指令による移動量と振動による移動量は破線で示されており、これら２つを合成した合成移動量は、実線で示されている。このように、実施の形態２では、移動指令による移動量に対して、移動量を増減させながら加工が行われる。
【００６３】
図１４は、実施の形態２による加工処理の際のＺ軸とＸ軸の位置指令値の時間による変化の一例を示す図である。図１４（ａ）は、工具の加工経路の一例を示している。ここでは、ＺＸ平面内で交わる角度の異なる２つの連続する線分を移動経路とする加工の例を示している。指令Ｉは、Ｘ軸方向の移動量がＺ軸方向の移動量に比して少ない場合であり、指令ＩＩは、Ｘ軸方向の移動量とＺ軸方向の移動量が同じ場合である。
【００６４】
図１４（ｂ）はＺ軸位置指令値の時間による変化を示す図であり、図１４（ｃ）はＸ軸位置指令値の時間による変化を示す図である。図１４（ｂ）で、直線ＡＺは、移動経路の開始点からの移動指令によるＺ軸方向の位置の変化を示しており、曲線ＢＺは、振動によるＺ軸方向の位置の変化を示している。そして、曲線ＣＺは、直線ＡＺと曲線ＢＺとを合成したものである。また、図１４（ｃ）で、直線ＡＸは、移動経路の開始点からの移動指令によるＸ軸方向の位置の変化を示しており、曲線ＢＸは、振動によるＸ軸方向の位置の変化を示している。そして、曲線ＣＸは、直線ＡＸと曲線ＢＸとを合成したものである。指令Ｉでは、Ｘ軸方向に比してＺ軸方向の移動量が大きく、指令ＩＩでは、Ｘ軸方向とＺ軸方向の移動量は同じである。
【００６５】
各指令が実行される期間では、各指令で規定される方向を有する移動指令量をＺ軸とＸ軸方向に分解した軸指令移動量の比にしたがって、単位時間当たりの振動移動量がＺ軸とＸ軸方向に分解される。その結果、指令Ｉが実行される期間では、Ｚ軸方向の振動成分がより大きくなり、指令ＩＩが実行される期間では、Ｚ軸方向とＸ軸方向の振動成分は同じ大きさとなる。
【００６６】
この実施の形態２でも、実施の形態１と同様の効果を得ることができる。また、実施の形態１に比して演算処理負荷が軽くなるという効果も有する。
【００６７】
実施の形態３．
図１５は、実施の形態３による数値制御装置の構成の一例を示すブロック図である。この数値制御装置１は、実施の形態２で移動指令による移動経路に付加する振動をサーボ制御部１３Ｘ，１３Ｚ，・・・側で行うように構成したものであり、実施の形態２の数値制御装置とは、補間処理部４８と各駆動軸のサーボ制御部１３Ｘ，１３Ｚ，・・・の構成が異なっている。
【００６８】
補間処理部４８は、解析処理部４５が解析した移動指令を用い、単位時間（補間周期）で移動する移動量である指令移動量を算出する指令移動量算出部４８１と、指令移動量の各駆動軸方向の移動量である軸指令移動量を算出する指令移動量分解部４８５と、取得した振動条件から単位時間当たりの各駆動軸の振動条件を算出する振動条件算出部４８８と、振動モードでの加工のオン（実行）／オフ（終了）の指令を各駆動軸のサーボ制御部１３Ｘ，１３Ｚ，・・・に通知する振動モード指令部４８９と、を有する。振動条件算出部４８８は、振動条件の振幅を、指令移動量分解部４８５で算出した各駆動軸の軸指令移動量間の比にしたがって分配する。指令移動量分解部４８５で作られた各駆動軸の指令移動量は、加減速処理部４９および軸データ出力部５０を介して各駆動軸を制御するサーボ制御部１３Ｘ，１３Ｚ，・・・に出力される。
【００６９】
また、各駆動軸のサーボ制御部１３（Ｘ軸サーボ制御部１３Ｘ、Ｚ軸サーボ制御部１３Ｚ）は、制御演算部４０からの振動モードでの加工の実行のオン／オフの指令と、制御演算部４０からの軸指令移動量と単位時間当たりの各駆動軸の振動条件と、を受信する振動条件受信部１３１と、受信した振動条件を用いて単位時間当たりの振動による移動量である軸振動移動量を算出する軸振動移動量算出部１３２と、軸データ出力部５０から受信した軸指令移動量と軸振動移動量算出部１３２で算出した軸振動移動量とを合成して移動量を算出し、合成移動量に応じた電流指令をサーボモータ１１に印加する移動量合成部１３３と、を有する。
【００７０】
つぎに、実施の形態３の数値制御装置による加工方法について説明する。図１６は、実施の形態３による制御演算部側での振動を伴う補間処理の手順の一例を示すフローチャートであり、図１７は、実施の形態３による駆動部側で振動を発生させる処理の手順の一例を示すフローチャートである。
【００７１】
まず、制御演算部４０側での処理について図１６を参照しながら説明する。解析処理部４５の移動指令生成部４５１によって加工プログラムから工具および／または加工対象の目標位置と速度と移動経路を含む移動指令が補間処理部４８に出力される。また、振動指令解析部４５２によって、周波数と振幅を含む振動条件が補間処理部４８に出力される。補間処理部４８は、解析処理部４５によって出力される移動指令と振動条件を取得する（ステップＳ５１）。
【００７２】
ついで、振動モード指令部４８９は、解析処理部４５から振動条件を受信すると、各駆動軸のサーボ制御部１３Ｘ，１３Ｚ，・・・に振動モードを有効にする指令を送信する（ステップＳ５２）。その後、指令移動量算出部４８１は、移動指令から単位時間（補間周期）当たりの移動指令による移動量である指令移動量を算出する（ステップＳ５３）。これは、直線補間、円弧補間などの種類によって、予め定められた手法によって求められる。
【００７３】
その後、指令移動量分解部４８５は、指令移動量を各駆動軸方向の成分に分解し、軸指令移動量を算出する（ステップＳ５４）。これによって、各駆動軸方向の軸指令移動量の比が得られる。
【００７４】
ついで、振動条件算出部４８８は、取得した振動条件の振幅を、ステップＳ５４で取得した各駆動軸方向の軸指令移動量の比で分配し、各駆動軸方向の振動条件を算出する（ステップＳ５５）。
【００７５】
その後、軸データ出力部５０は、算出した単位時間当たりの各駆動軸の軸指令移動量と各駆動軸の振動条件とを、対応する駆動軸のサーボ制御部１３Ｘ，１３Ｚ，・・・に出力する（ステップＳ５６）。
【００７６】
その後、指令移動量算出部４８１は、指令済みの指令移動量のそれまでの合算値が目標移動量未満であるかを判定する（ステップＳ５７）。指令移動量の合算値が目標移動量未満である場合（ステップＳ５７でＹｅｓの場合）には、ステップＳ５３へと処理が戻り、上記した処理が繰り返し実行される。一方、指令移動量の合算値が目標移動量に到達した場合（ステップＳ５７でＮｏの場合）には、加工が目標位置まで進行したので、振動モード指令部４８９は、各駆動軸のサーボ制御部１３Ｘ，１３Ｚ，・・・へ振動モードを無効に（停止）する指令を出力し（ステップＳ５８）、処理が終了する。
【００７７】
つぎに、駆動部１０側での処理について図１７を参照しながら説明する。まず、各駆動軸のサーボ制御部１３Ｘ，１３Ｚ，・・・の振動条件受信部１３１は、制御演算部４０から振動モードを受信すると（ステップＳ７１）、振動モードが有効であるか否かを判定する（ステップＳ７２）。
【００７８】
振動モードが有効である場合（ステップＳ７２でＹｅｓの場合）には、振動条件受信部１３１は、制御演算部４０から送信される単位時間当たりの軸指令移動量と単位時間当たりの振動条件とを受信する（ステップＳ７３）。
【００７９】
ついで、軸振動移動量算出部１３２は、取得した単位時間当たりの振動条件を用いて、単位時間当たりの振動による振動移動量を算出する（ステップＳ７４）。その後、移動量合成部１３３は、取得した単位時間当たりの軸指令移動量と算出した振動移動量とを加算し、合成移動量を算出する（ステップＳ７５）。そして、合成移動量に応じた電流指令をサーボモータ１１に印加し（ステップＳ７６）、処理が終了する。
【００８０】
一方、ステップＳ７２で振動モードが有効でない場合（ステップＳ７２でＮｏの場合）には、振動条件受信部１３１は、単位時間当たりの軸指令移動量に応じた電流指令をサーボモータ１１に印加し（ステップＳ７７）、処理が終了する。
【００８１】
このような構成および手順によっても、実施の形態２と同様の加工を行うことができる。
【００８２】
実施の形態３では、加工プログラムに指令された振動指令に応じた振動を各駆動軸のサーボ制御部１３Ｘ，１３Ｚ，・・・で生成させるようにした。サーボ制御部１３Ｘ，１３Ｚ，・・・での制御は、補間周期よりもさらに短い周期で行うことが可能であるので、より周波数の高い振動を生成することができるという効果を実施の形態２の効果に加えて得ることができる。
【００８３】
なお、上記した説明では、加工対象および／または工具を２軸方向に移動させる場合を示したが、３軸方向以上に移動させて加工を行う場合も同様である。
【００８４】
ここで、上記した実施の形態１〜３と特許文献２との違いについて説明する。特許文献２はチョッピングを行いながら輪郭制御を行うための数値制御装置に関するものである。特許文献２に述べられているチョッピング動作は研磨加工を目的としたものであり、研磨用工具を用いて、研磨を行う形状に沿って輪郭制御を行いながら、輪郭制御の方向とは基本的に直交する方向（もしくは所定の角度を伴った交差する方向）に工具を振動させて加工を行う。このためバイト（旋削加工用工具）を使って旋削加工を行いながら、即ち旋削形状を輪郭制御しながら輪郭制御の方向にバイトを振動させる本願の加工とは本質的に振動制御が異なるものであり、特許文献２に記されている振動制御の技術は本願の振動制御技術に適用できない。実際に使用される振動の振幅や周期も、チョッピングの振動の場合と本願の振動とを比較すると、チョッピングはそれぞれミリメータ、数Ｈｚのオーダであるのに対し、本願の振動においてはそれぞれ数十ミクロン以下、数十から数百Ｈｚのオーダにある。
【産業上の利用可能性】
【００８５】
以上のように、本発明にかかる数値制御装置は、加工プログラムを用いた工作機械の数値制御に適している。
【符号の説明】
【００８６】
１  数値制御装置、１０  駆動部、１１  サーボモータ、１２  検出器、１３  サーボ制御部、１３Ｘ  Ｘ軸サーボ制御部、１３Ｚ  Ｚ軸サーボ制御部、１４  主軸モータ、１５  検出器、１６  主軸サーボ制御部、２０  入力操作部、３０  表示部、４０  制御演算部、４１  入力制御部、４２  データ設定部、４３  記憶部、４４  画面処理部、４５  解析処理部、４６  機械制御信号処理部、４７  ＰＬＣ回路部、４８  補間処理部、４９  加減速処理部、５０  軸データ出力部、６１  加工対象、６２  工具、１３１  振動条件受信部、１３２  軸振動移動量算出部、１３３  移動量合成部、４５１  移動指令生成部、４５２  振動指令解析部、４８１  指令移動量算出部、４８２  振動移動量算出部、４８３  移動量合成部、４８４  合成移動量分解部、４８５  指令移動量分解部、４８６  振動移動量分解部、４８７  軸移動量合成部、４８８  振動条件算出部、４８９  振動モード指令部。
【要約】
加工プログラムの移動経路上を移動させる移動指令と移動経路に沿って振動させる振動条件とを取得する解析処理部（４５）と、単位時間での指令移動量を算出する指令移動量算出部（４８１）と、移動指令に対応する時刻における単位時間での振動移動量を、振動条件を用いて算出する振動移動量算出部（４８２）と、指令移動量と振動移動量とを合成して合成移動量を算出し、合成移動量の算出基準となる位置から合成移動量だけ移動した位置が移動経路上に位置するように、単位時間内の移動量を求める移動量合成部（４８３）と、を備える。【図１】
0005599523.tif 000002
【図２】
0005599523.tif 000003
【図３】
0005599523.tif 000004
【図４】
0005599523.tif 000005
【図５】
0005599523.tif 000006
【図６】
0005599523.tif 000007
【図７】
0005599523.tif 000008
【図８】
0005599523.tif 000009
【図９】
0005599523.tif 000010
【図１０】
0005599523.tif 000011
【図１１】
0005599523.tif 000012
【図１２】
0005599523.tif 000013
【図１３】
0005599523.tif 000014
【図１４】
0005599523.tif 000015
【図１５】
0005599523.tif 000016
【図１６】
0005599523.tif 000017
【図１７】
0005599523.tif 000018