(57)【特許請求の範囲】
【請求項１】
複数の直線軸と第１の回転軸と第２の回転軸とを有する工作機械を制御して、テーブルに載置されたワークに対する相対的な工具姿勢を制御する数値制御装置であって、
前記工作機械に対する指令コードによって記述されたブロックを複数含んだ加工プログラムから、ワークに対する工具姿勢を前記ブロック毎に順次読み取るプログラム読み取り部と、
前記読み取られた工具姿勢が所定の工具姿勢範囲内に入るか否かを判定する判定部と、  前記判定部による判定結果に応じて、工具姿勢の制御内容を決定する工具姿勢制御部と、
前記決定された工具姿勢の制御内容に従って、前記複数の直線軸及び前記２以上の回転軸を制御する補間・加減速処理部と、
を備え、
前記所定の工具姿勢範囲は、前記テーブルの主面と工具の中心軸とが垂直に交わる前記第１の回転軸の角度に対応する特異姿勢を含み、
前記判定部は、読み込まれた前記ブロックの始点における前記第１の回転軸の角度が前記所定の工具姿勢範囲内に入り且つ読み込まれた前記ブロックの終点における前記第１の回転軸の角度が前記所定の工具姿勢範囲内に入る場合に、前記読み取られた工具姿勢が前記所定の工具姿勢範囲内に入ると判定し、
前記工具姿勢制御部は、前記読み取られた工具姿勢が前記所定の工具姿勢範囲内に入る場合、前回の前記第２の回転軸の角度からの前記第２の回転軸の角度の変更が制限されるように、前記第２の回転軸の回転軸角度を決定する
ことを特徴とする数値制御装置。
【請求項２】
前記工具姿勢制御部は、前記読み取られた工具姿勢が前記所定の工具姿勢範囲内に入る場合、前回の前記第１の回転軸の角度からの前記第１の回転軸の角度の変更が制限されないように、前記第１の回転軸の回転軸角度を決定する
ことを特徴とする請求項１に記載の数値制御装置。
【請求項３】
前記補間・加減速処理部により制御された工具姿勢を記憶する記憶部をさらに備えた
ことを特徴とする請求項１に記載の数値制御装置。
【請求項４】
前記工具姿勢制御部は、前記読み取られた工具姿勢が前記所定の工具姿勢範囲内に入る場合、前回の前記第２の回転軸の角度が保持されるように、前記第２の回転軸の回転軸角度を決定する
ことを特徴とする請求項１に記載の数値制御装置。
【請求項５】
前記工具姿勢制御部は、前記所定の工具姿勢範囲内に入った時点の工具姿勢から前記所定の工具姿勢範囲外に出る直前の工具姿勢まで、前記第２の回転軸の回転軸角度を漸増又は漸減させるように、前記第２の回転軸の回転軸角度を変化させる
ことを特徴とする請求項１に記載の数値制御装置。
【請求項６】
前記工具姿勢制御部は、前記直線軸の移動距離に応じて、回転軸角度の前記漸増又は漸減させるべき単位量を変化させる
ことを特徴とする請求項５に記載の数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値制御装置に関する。
【背景技術】
【０００２】
数値制御装置が搭載された工作機械では、加工プログラムにて指令された位置に移動するよう、各軸の制御を行うことで可動部を移動させながら加工が行われるが、５軸加工機のような直線移動軸と回転移動軸とを有する機械では、工具位置、工具姿勢を所望の位置、姿勢となるようそれぞれの軸を適切に制御することで、より複雑な加工を実現している。【０００３】
特許文献１には、テーブルをＸ軸、Ｙ軸方向に直線駆動しＣ軸方向に回転するとともに、工具をＺ軸方向に直線駆動しＡ軸方向に回転する５軸加工機を制御する数値制御装置において、ＮＣプログラムで指令されたワーク座標系上の位置、速度に基づき、Ｘ軸、Ｙ軸、Ｚ軸について開始位置から指令位置に向かって補間を行った後、Ａ軸、Ｃ軸について開始位置から指令位置に向かって補間を行い、Ａ軸、Ｃ軸（回転軸）の補間位置に基づいてＸ軸、Ｙ軸、Ｚ軸（直線軸）の補間位置を補正することが記載されている。これにより、特許文献１によれば、回転するテーブルに載置されたワークに対して、簡単なＮＣプログラムにより補間しながら正確な加工を行うことができるとされている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−１９５９１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載された工具先端点制御は、加工プログラムにて指令するワーク上の軌跡および速度と、工具の刃先位置（工具先端点）のワーク上の軌跡および速度とが一致するように各軸移動を補間しながら工具姿勢を補間することで、工具姿勢を変化させながらワークに対する工具先端点の軌跡を制御するものであると考えられる。すなわち、特許文献１に記載の技術は、工具姿勢を常に正確に変化させることができることが前提になっている。【０００６】
一方、本発明者は、検討を行ったところ、工具姿勢がばらつく加工プログラムが作成される場合があることを見出した。【０００７】
例えば、５軸加工機等の工作機械で使用する加工プログラムは、工具位置だけでなく工具姿勢も指令するため複雑なプログラムとなることが多い。このため、通常、ＣＡＭ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｍａｎｕｆａｃｔｕｒｉｎｇ）装置などで作成されるが、ＣＡＭでは、理想的な工具位置、工具姿勢に対してＣＡＭで設定されるトレランス幅（許容幅）程度、量子化誤差を含んで出力されるため、工具位置、工具姿勢がばらつく加工プログラムが作成される場合がある。【０００８】
これについて、本発明者が検討を行ったところ、工具姿勢のばらつきは、工具姿勢が特異姿勢から離れている場合にはあまり問題ないが、工具姿勢が特異姿勢に近い場合、小さな姿勢ばらつきが大きな回転軸の移動量となる場合があることを見出した。ここで、特異姿勢とは、工作機械における工具の回転軸が０度となる（工具の中心軸がテーブルの主面に垂直なＺ軸と平行となる）姿勢を指しており、このときテーブルの回転軸の角度は一意に決まらず、任意の角度を選択することができる。【０００９】
特許文献１に記載された工具先端点制御では、工具姿勢が特異姿勢に近い場合、ＣＡＭでの量子化誤差による問題に起因する微小な工具姿勢変化が、大きな回転軸の移動量となりやすく、回転軸の移動時間が増大する傾向にある。【００１０】
また、特許文献１に記載された工具先端点制御では、回転軸の補間位置に基づいて直線軸の補間位置を補正するので、工具姿勢が特異姿勢に近い場合、回転軸の移動量が大きくなることに伴い、直線軸の移動量も大きくなるので、バックラッシ、ロストモーション、摩擦の影響が顕著に発生しやすく、加工精度が低下する可能性がある。【００１１】
本発明は、上記に鑑みてなされたものであって、回転軸の回転移動の時間を低減でき、加工精度を向上できる数値制御装置を得ることを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決し、目的を達成するために、本発明の１つの側面にかかる数値制御装置は、複数の直線軸と１以上の回転軸とを有する工作機械を制御して、テーブルに載置されたワークに対する相対的な工具姿勢を制御する数値制御装置であって、加工プログラムから、ワークに対する工具姿勢を順次読み取るプログラム読み取り部と、前記読み取られた工具姿勢が所定の工具姿勢範囲内に入るか否かを判定する判定部と、前記判定部による判定結果に応じて、工具姿勢の制御内容を決定する工具姿勢制御部と、前記決定された工具姿勢の制御内容に従って、前記複数の直線軸及び前記１以上の回転軸を制御する補間・加減速処理部とを備え、前記所定の工具姿勢範囲は、前記テーブルの主面と工具の中心軸とが略垂直に交わる特異姿勢を含み、前記工具姿勢制御部は、前記読み取られた工具姿勢が前記所定の工具姿勢範囲内に入る場合、前回の工具姿勢からの工具姿勢の変更が制限されるように、前記１以上の回転軸の回転軸角度を決定することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、加工プログラムで指令された工具姿勢が特異姿勢近傍である場合に、回転軸の回転移動量を抑制でき、回転軸の回転移動の時間を低減できる。また、回転軸の補間位置に基づいて直線軸の補間位置を補正する制御を行っても、工具姿勢が特異姿勢に近い場合に、回転軸の回転移動量を抑制できるので、直線軸の移動量も抑制でき、バックラッシ、ロストモーション、摩擦の影響を低減でき、加工精度を向上できる。すなわち、回転軸の回転移動の時間を低減でき、加工精度を向上できる。
【図面の簡単な説明】
【００１４】
【図１】図１は、実施の形態１における工作機械の構成を示す図である。
【図２】図２は、実施の形態１にかかる数値制御装置の構成を示す図である。
【図３】図３は、実施の形態１にかかる数値制御装置の動作を示すフローチャートである。
【図４】図４は、実施の形態２にかかる数値制御装置の動作を示すフローチャートである。
【図５】図５は、実施の形態２にかかる数値制御装置の動作を示す図である。
【発明を実施するための形態】
【００１５】
以下に、本発明にかかる数値制御装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１６】
実施の形態１．
実施の形態１にかかる数値制御装置２について説明する。
【００１７】
数値制御装置２は、工作機械１００を数値制御（ＮＣ：Ｎｕｍｅｒｉｃａｌ  Ｃｏｎｔｒｏｌ）する装置であり、例えば、工具１０２の先端位置と工具１０２の姿勢を制御する装置である。
【００１８】
数値制御装置２が搭載された工作機械１００では、加工プログラム（ＮＣプログラム、モーションプログラム）にて指令された位置に移動するよう、各軸の制御を行うことで可動部を移動させながら加工が行われる。工作機械１００は、複数の直線軸と１以上の回転軸とを有する。具体的には、工作機械１００は、例えば図１に示すように、３つの直線軸（並進軸）であるＸ軸、Ｙ軸、Ｚ軸と２つの回転軸であるＢ軸、Ｃ軸とを有する５軸加工機である。Ｘ軸は、Ｘ軸サーボモータ１０３Ｘが工具１０２を直線移動させるための軸である。Ｙ軸は、Ｙ軸サーボモータ１０３Ｙが工具１０２を直線移動させるための軸である。Ｚ軸は、Ｚ軸サーボモータ１０３Ｚが工具１０２を直線移動させるための軸である。Ｘ軸、Ｙ軸、及びＺ軸は、例えば、互いに直交する。Ｂ軸（第１の回転軸）は、Ｂ軸サーボモータ１０３Ｂが工具１０２を回転移動させるための軸であり、例えばＹ軸の周りに回転移動させる。Ｃ軸（第２の回転軸）は、Ｃ軸サーボモータ１０３Ｃがテーブル１０１を回転移動させるための軸であり、例えばＺ軸の周りに回転移動させる。テーブル１０１は、その主面１０１ａ上にワークＷＫが載置される。
【００１９】
なお、図１は、回転軸（Ｂ軸、Ｃ軸）が工具側とワーク側とに１軸ずつある場合の工作機械１００の構成を例示的に示す図であるが、工作機械１００は、回転軸（Ｂ軸、Ｃ軸）がワーク側に２軸ある場合の５軸加工機であってもよいし、回転軸（Ｂ軸、Ｃ軸）が工具側に２軸ある場合の５軸加工機であってもよい。
【００２０】
加工プログラム１（図２参照）は、Ｇコードと呼ばれる指令コードを用いて記述されたプログラムであり、移動指令として、位置決め指令（Ｇ００）や切削指令（Ｇ０１）の他、同時５軸制御機能として工具先端点制御（Ｇ４３．４／Ｇ４３．５）指令などを用いて記述されたプログラムである。
【００２１】
数値制御装置２は、加工プログラム１を解析し、解析結果に応じてサーボアンプ３を介して工作機械１００（例えば、５軸加工機）を制御して（図１参照）、テーブル１０１に載置されたワークＷＫに対する相対的な工具姿勢を制御しながら、ワークＷＫの加工を行う。例えば、数値制御装置２は、工具１０２の位置や姿勢を所望の工具位置、工具姿勢となるように、Ｘ、Ｙ、Ｚ、Ｂ、Ｃ軸のそれぞれを適切に制御することで、ワークＷＫに対する複雑な加工を実現している。例えば、数値制御装置２は、所定の移動指令２３０をサーボアンプにおけるＸ軸アンプ３Ｘ、Ｙ軸アンプ３Ｙ、Ｚ軸アンプ３Ｚ、Ｂ軸アンプ３Ｂ、及びＣ軸アンプ３Ｃのそれぞれへ出力する（図２参照）。これにより、Ｘ軸アンプ３Ｘ、Ｙ軸アンプ３Ｙ、Ｚ軸アンプ３Ｚ、Ｂ軸アンプ３Ｂ、及びＣ軸アンプ３Ｃは、それぞれ、Ｘ軸サーボモータ１０３Ｘ、Ｙ軸サーボモータ１０３Ｙ、Ｚ軸サーボモータ１０３Ｚ、Ｂ軸サーボモータ１０３Ｂ、Ｃ軸サーボモータ１０３Ｃに電圧指令を出力し駆動する。
【００２２】
この加工プログラムについて、本発明者が検討を行ったところ、工具姿勢がばらつく加工プログラムが作成される場合があることを見出した。
【００２３】
例えば、５軸加工機等の工作機械で使用する加工プログラムは、工具位置だけでなく工具姿勢も指令するため複雑なプログラムとなることが多い。このため、通常、ＣＡＭ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｍａｎｕｆａｃｔｕｒｉｎｇ）装置などで作成されるが、ＣＡＭでは、理想的な工具位置、工具姿勢に対してＣＡＭで設定されるトレランス幅（許容幅）程度、量子化誤差を含んで出力されるため、工具位置、工具姿勢がばらつく加工プログラムが作成される場合がある。
【００２４】
これについて、本発明者がさらに検討を行ったところ、工具姿勢のばらつきは、工具姿勢が特異姿勢から離れている場合にはあまり問題ないが、工具姿勢が特異姿勢に近い場合、小さな姿勢ばらつきが大きな回転軸の移動量となる場合があることを見出した。ここで、特異姿勢とは、工作機械１００における工具１０２の回転軸であるＢ軸が０度となる（工具の中心軸ＣＡがテーブル１０１の主面に垂直なＺ軸と平行となる）姿勢を指しており、このときテーブル１０１の回転軸であるＣ軸の角度は一意に決まらず、任意の角度を選択することができる。
【００２５】
具体的には、工具姿勢が特異姿勢から離れている場合について、Ｂ軸角度が０度でない角度で工具姿勢にばらつきが存在する場合を例に挙げる。このとき、ＣＡＭで作成される加工プログラムが、例えば次の通りであるとする。
【００２６】
Ｎ１  Ｇ４３．５  Ｘ０．  Ｙ０．  Ｉ０．７０７１  Ｊ０．００００  Ｋ０．７０７１；
Ｎ２  Ｘ１０．  Ｙ０．  Ｉ０．１７３６４８  Ｊ０．０００３０３  Ｋ０．９８４８０８；
Ｎ３  Ｘ０．１  Ｙ０．  Ｉ０．１７３８２０  Ｊ０．００００００  Ｋ０．９８４７７７；
・・・
Ｎ１０  Ｇ４９；
【００２７】
この加工プログラムは、シーケンス番号「Ｎ１」の「Ｇ４３．５」で先端点制御を有効とし、シーケンス番号「Ｎ１０」の「Ｇ４９」で先端点制御を無効とする加工プログラムで、テーブル１０１の回転に連動した座標系（テーブル座標系）に対して工具軌跡をＸ、Ｙで指令し、テーブル座標系から見た方向ベクトルＩ、Ｊ、Ｋを用いて工具姿勢を指令している。なお、この加工プログラムでは、「Ｎ２」ブロック、「Ｎ３」ブロックの工具姿勢が０．０２８度程度の微小な角度差の工具姿勢となっている。
【００２８】
今、「Ｎ１」ブロック終点で、Ｂ軸角度が４５度、Ｃ軸角度が０度、または、Ｂ軸角度が−４５度、Ｃ軸角度が１８０度の２種類の解が存在するが、仮に前者の解が選択された場合、Ｂ軸４５度、Ｃ軸０度に位置決めされる。すなわち、Ｂ軸角度が０度から大きく異なる値であり、工具姿勢が特異姿勢から離れている。
【００２９】
さらに、「Ｎ２」ブロック、「Ｎ３」ブロックにおいて回転軸の移動量が少なくなるような解を選択すると、「Ｎ２」ブロック終点では、Ｂ軸角度が１０度、Ｃ軸角度が０．１度となり、「Ｎ３」ブロック終点では、Ｂ軸角度が１０．０２度、Ｃ軸角度が０度となる。このとき、「Ｎ３」ブロックでの移動量は、Ｂ軸移動量が０．０２度、Ｃ軸移動量が−０．１度となり、Ｂ軸、Ｃ軸共に少ない移動量となっている。なお、「Ｎ２」ブロック、「Ｎ３」ブロックにおける他方の解は、Ｂ軸角度が−１０度、Ｃ軸角度が１８０．１度、Ｂ軸角度が−１０．０２度、Ｃ軸角度が１８０度となり、このケースでも「Ｎ３」ブロックでの移動量はＢ軸移動量が−０．０２度、Ｃ軸移動量が−０．１度とＢ軸、Ｃ軸共に少ない移動量となっている。
【００３０】
これに対して、工具姿勢が特異姿勢に近い場合について、Ｂ軸角度が０度付近で工具姿勢にばらつきが存在する場合を例に挙げる。このとき、ＣＡＭで作成される加工プログラムが、例えば、次の通りであるとする。
【００３１】
Ｎ１１  Ｇ４３．５  Ｘ０．  Ｙ０．  Ｉ０．７０７１  Ｊ０．００００  Ｋ０．７０７１；
Ｎ１２  Ｘ１０．  Ｙ０．  Ｉ０．０００３４９  Ｊ０．００００００  Ｋ１．００００００：
Ｎ１３  Ｘ０．１  Ｙ０．  Ｉ０．００００００  Ｊ０．０００３４９  Ｋ１．００００００；
・・・
Ｎ２０  Ｇ４９；
【００３２】
この加工プログラムでは、「Ｎ１２」ブロックと「Ｎ１３」ブロックとで微小な工具姿勢のばらつきが存在し、その角度差は０．０２０度となっている。「Ｎ１２」ブロック終点で、Ｂ軸角度が０．０２度、Ｃ軸角度が０度に位置決めされたとする。
【００３３】
このとき、「Ｎ１３」ブロック終点では、Ｂ軸角度が０．０２度、Ｃ軸角度が９０度、または、Ｂ軸角度が−０．０２度、Ｃ軸角度が２７０度のいずれかの解が選択され、「Ｎ１３」ブロックでの移動量は、前者の解が選択された場合、Ｂ軸移動量が０度、Ｃ軸移動量が９０度となり、回転軸移動量の少ない後者の解が選択した場合でも、Ｂ軸移動量が０．０４度、Ｃ軸移動量が−９０度となり、どちらの場合でもＣ軸が大きく回転することとなる。
【００３４】
このように、加工プログラムにて指令した工具姿勢に従って工具姿勢の制御を単純に行うと、工具姿勢が特異姿勢に近い場合、ＣＡＭでの量子化誤差による問題に起因する微小な工具姿勢変化が、大きなＣ軸の回転移動量となりやすく、Ｃ軸の回転移動の時間が増大する傾向にある。
【００３５】
また、仮に、Ｂ軸、Ｃ軸の補間位置に基づいてＸ軸、Ｙ軸、Ｚ軸の補間位置を補正する制御を行うと、工具姿勢が特異姿勢に近い場合、Ｃ軸の移動量が大きくなることに伴い、Ｘ軸、Ｙ軸、Ｚ軸の移動量も大きくなるので、バックラッシ、ロストモーション、摩擦の影響が顕著に発生しやすく、加工精度が低下する可能性がある。
【００３６】
そこで、本実施の形態では、加工プログラムに指令された工具姿勢が特異姿勢に近いか否かについて判定を行い、工具姿勢が特異姿勢に近い場合に工具姿勢の変更を制限するよう制御することで、Ｃ軸の回転移動量の抑制を目指す。
【００３７】
具体的には、数値制御装置２は、図２に示すように、プログラム読み取り部２１、判定部２４、工具姿勢制御部２２、補間・加減速処理部２３、及び記憶部２５を有する。
【００３８】
プログラム読み取り部２１は、加工プログラム１を読み込み、読み込んだ加工プログラム１に記述された動作命令を解析して指令ブロック毎の移動データ２１０を生成して工具姿勢制御部２２へ供給する。
【００３９】
移動データ２１０とは、各ブロックの命令を解釈した結果得られるブロック毎の移動位置（ブロック始点位置、終点位置）、工具姿勢、移動距離、移動速度、指令座標系（テーブル座標系での指令、ワーク座標系での指令）、補間モード（直線、円弧、非補間等）、制御モード（工具先端点制御の有効・無効の区別）などの動作に関する情報である。なお、テーブル座標系とは、テーブルを回転させるための回転軸（図１の場合、Ｃ軸）を有する機械において、テーブル回転に連動する座標であり、ワーク座標系指令とは、テーブルの回転とは無関係の座標系で、空間上に固定される座標系を表す。工具先端点制御では、機械の構成、加工形状の特徴に応じて、このどちらかの座標系で工具軌跡を指令している。
【００４０】
すなわち、プログラム読み取り部２１は、加工プログラム１から、ワークＷＫに対する工具姿勢（例えば、工具姿勢を示すベクトルの値）をブロック毎に順次読み取る。プログラム読み取り部２１は、読み取られた工具姿勢を判定部２４へ供給する。
【００４１】
判定部２４は、読み取られた工具姿勢が所定の工具姿勢範囲内に入るか否かを判定する。所定の工具姿勢範囲は、特異姿勢を含む範囲である。特異姿勢は、Ｂ軸によりテーブル１０１の主面１０１ａと工具１０２の中心軸ＣＡとが略垂直に交わるような工具１０２の姿勢であり（図１参照）、例えばＢ軸角度０度であるような工具１０２の姿勢である。所定の工具姿勢範囲は、例えば、特異姿勢（例えばＢ軸角度０度）を中央値として含み、特異姿勢の近傍とみなせる範囲（例えば、Ｂ軸角度−１度〜Ｂ軸角度＋１度）である。判定部２４は、判定結果を工具姿勢制御部２２へ供給する。
【００４２】
工具姿勢制御部２２は、移動データ２１０をプログラム読み取り部２１から受け、判定結果を判定部２４から受ける。工具姿勢制御部２２は、判定部２４による判定結果に応じて、移動データ２１０を用いて工具姿勢の制御内容を決定する。
【００４３】
すなわち、工具姿勢制御部２２は、読み取られた工具姿勢が所定の工具姿勢範囲内に入る場合（すなわち、工具姿勢が特異姿勢に近い場合）、記憶部２５を参照して前回の工具姿勢に関するデータ（例えば、工具姿勢を示すベクトルの値）を取得する。そして、工具姿勢制御部２２は、前回の工具姿勢からの工具姿勢の変更が制限されるように、Ｃ軸の回転軸角度を含む各軸の目標位置を決定する。
【００４４】
例えば、工具姿勢制御部２２は、読み取られた工具姿勢が所定の工具姿勢範囲内に入る場合、前回の工具姿勢が保持されるように、Ｃ軸の回転軸角度を含む各軸の目標位置を決定する。
【００４５】
補間・加減速処理部２３は、前回の工具姿勢に関するデータ（例えば、前回の補間・加減速処理の結果）を記憶部２５から受け、今回の工具姿勢に関するデータ（すなわち更新後の移動データ２２０）を工具姿勢の制御内容として工具姿勢制御部２２から受ける。補間・加減速処理部２３は、工具姿勢の制御内容に従って、各軸（Ｘ軸、Ｙ軸、Ｚ軸、Ｂ軸、Ｃ軸）を制御する。補間・加減速処理部２３は、現在の工具姿勢から、工具姿勢制御部２２で決定した工具姿勢に変化するまでの姿勢変化を制御する。
【００４６】
すなわち、補間・加減速処理部２３は、前回の工具姿勢に関するデータと今回の工具姿勢に関するデータとに応じて、補間・加減速処理を行い、各軸（Ｘ軸、Ｙ軸、Ｚ軸、Ｂ軸、Ｃ軸）の移動指令２３０を生成してサーボアンプ３へ出力する。また、補間・加減速処理部２３は、今回の工具姿勢に関するデータ（例えば、工具姿勢を示すベクトルの値や、補間・加減速処理の結果）を記憶部２５へ供給する。
【００４７】
なお、補間・加減速処理の方法は、特に限定するものではないが、例えば特許文献１のような公知の技術を用いた補間を行うものであってもよい。例えば、Ｂ軸、Ｃ軸の補間位置に基づいてＸ軸、Ｙ軸、Ｚ軸の補間位置を補正する制御を行ってもよい。
【００４８】
記憶部２５は、今回の工具姿勢に関するデータを補間・加減速処理部２３から受けて記憶する。これにより、記憶部２５は、補間・加減速処理部２３により制御された工具姿勢を記憶する。
【００４９】
次に、数値制御装置２の動作を図３に沿って説明する。図３は、数値制御装置２の動作を説明するためのフローチャートである。
【００５０】
ステップＳ１では、プログラム読み取り部２１が、加工プログラム１を読み込み、読み込んだ加工プログラム１に記述された動作命令を解析して指令ブロック毎の移動データ２１０を生成して工具姿勢制御部２２へ供給する。
【００５１】
また、プログラム読み取り部２１は、加工プログラム１から、ワークＷＫに対する工具姿勢（例えば、工具姿勢を示すベクトルの値）をブロック毎に順次読み取る。プログラム読み取り部２１は、読み取られた工具姿勢を判定部２４へ供給する。
【００５２】
判定部２４は、加工プログラム１で指令された工具姿勢（読み込んだブロックの終点における工具姿勢）が特異姿勢近傍の所定の工具姿勢範囲に入るかどうかの判定を行う。判定部２４は、ブロックの終点における工具姿勢が特異姿勢近傍の所定の工具姿勢範囲内である場合（ステップＳ１で「Ｙｅｓ」）、処理をステップＳ２へ進め、ブロックの終点における工具姿勢が所定の工具姿勢範囲外の場合（ステップＳ１で「Ｎｏ」）、処理をステップＳ３へ進める。
【００５３】
ここで、特異姿勢近傍の所定の工具姿勢範囲とは、予め特異点付近の姿勢とみなすために決定しておいた範囲であり、例えば、特異姿勢（Ｂ軸角度０度）を基準として特異姿勢近傍の範囲を１度とすると、Ｂ軸角度が−１度以上、＋１度以下の範囲を特異姿勢近傍とみなすものである。
【００５４】
ステップＳ２では、判定部２４が、読み込んだブロックの始点における工具姿勢が特異姿勢近傍の所定の工具姿勢範囲に入るかどうかの判定を行う。判定部２４は、ブロックの始点における工具姿勢が特異姿勢近傍の所定の工具姿勢範囲内である場合（ステップＳ２で「Ｙｅｓ」）、処理をステップＳ４へ進め、ブロックの始点における工具姿勢が所定の工具姿勢範囲外の場合（ステップＳ２で「Ｎｏ」）、処理をステップＳ３へ進める。
【００５５】
ステップＳ３では、工具姿勢制御部２２が、加工プログラム１で指令された工具姿勢を示すデータを、工具姿勢の制御内容として出力する。
【００５６】
ステップＳ４では、工具姿勢制御部２２が、加工プログラム１で指令された工具姿勢とは異なる工具姿勢を示すデータを、工具姿勢の制御内容として出力する。例えば、工具姿勢制御部２２は、記憶部２５を参照して前回の工具姿勢に関するデータを取得し、工具姿勢を実現するための機械の角度（Ｂ軸、Ｃ軸）のいずれか、または、両方の軸の角度を前回の工具姿勢に一致させるように、Ｂ軸及び／又はＣ軸の回転軸角度を決定し、決定結果に応じた工具姿勢を示すデータを、工具姿勢の制御内容として出力する。
【００５７】
なお、ステップＳ４では、移動データ２１０のうち、指令座標系がワーク座標系指令である場合には、以下の処理を行う。まず、加工プログラム１で指令された工具先端位置（ワーク座標値）から、加工プログラム１で指令された回転軸角度を用いて、テーブル座標値に座標変換する。次に、上記に示した方法により、工具姿勢（回転軸角度）の変更を行う。さらに、テーブル座標値を変更後の回転軸角度を用いて、各軸の移動位置に座標変換することでブロック終点位置を計算し、これを移動データ２１０の終点座標値とする処理を行う。
【００５８】
ステップＳ５では、次の移動データがあるかどうかのチェックを行い、次の移動データがある場合（ステップＳ５で「Ｙｅｓ」）、移動データを更新し（ステップＳ６）、処理をステップＳ１に移す。なお、次の移動データがない場合（ステップＳ５で「Ｎｏ」）、処理を終了する。
【００５９】
以上のように、実施の形態１では、数値制御装置２において、判定部２４が、プログラム読み取り部２１により読み取られた工具姿勢が特異姿勢を含む所定の工具姿勢範囲内に入るか否かを判定する。工具姿勢制御部２２は、工具姿勢が特異姿勢を含む所定の工具姿勢範囲内に入る場合、前回の工具姿勢からの工具姿勢の変更が制限されるように、回転軸（Ｂ軸、Ｃ軸）の回転軸角度を決定する。これにより、加工プログラムで指令された工具姿勢が特異姿勢近傍である場合に、回転軸（Ｂ軸、Ｃ軸）の回転移動量を抑制でき、回転軸（Ｂ軸、Ｃ軸）の回転移動の時間を低減できる。また、Ｂ軸、Ｃ軸の補間位置に基づいてＸ軸、Ｙ軸、Ｚ軸の補間位置を補正する制御を行っても、工具姿勢が特異姿勢に近い場合に、回転軸（Ｂ軸、Ｃ軸）の回転移動量を抑制できるので、Ｘ軸、Ｙ軸、Ｚ軸の移動量も抑制でき、バックラッシ、ロストモーション、摩擦の影響を低減でき、加工精度を向上できる。すなわち、回転軸の回転移動の時間を低減でき、加工精度を向上できる。
【００６０】
また、実施の形態１では、数値制御装置２において、記憶部２５が、補間・加減速処理部２３により制御された工具姿勢を記憶する。これにより、工具姿勢制御部２２は、記憶部２５を参照して前回の工具姿勢を把握することができ、工具姿勢が特異姿勢を含む所定の工具姿勢範囲内に入る場合、前回の工具姿勢からの工具姿勢の変更が制限されるように、回転軸（Ｂ軸、Ｃ軸）の回転軸角度を決定することができる。
【００６１】
また、実施の形態１では、数値制御装置２において、工具姿勢制御部２２が、読み取られた工具姿勢が所定の工具姿勢範囲内に入る場合、前回の工具姿勢が保持されるように、回転軸（Ｂ軸、Ｃ軸）の回転軸角度を決定する。これにより、工具姿勢制御部２２は、前回の工具姿勢からの工具姿勢の変更が制限されるように、回転軸（Ｂ軸、Ｃ軸）の回転軸角度を決定することができる。
【００６２】
例えば、工具姿勢制御部２２は、読み取られた工具姿勢が所定の工具姿勢範囲内に入る場合、２つの回転軸であるＢ軸及びＣ軸の少なくとも一方の回転軸角度を前回の回転軸角度に一致させる処理を行う。これにより、無用な軸移動をなくすことができ、無用な軸移動をなくすことにより、各軸の移動方向が反転する際に発生するバックラッシやロストモーションの発生を防ぐことができる。
【００６３】
例えば、特異姿勢近傍で工具姿勢がばらつく場合に、加工プログラムで指定された工具姿勢を実現するための回転軸角度のうち、Ｂ軸の角度だけ計算された角度とし、Ｃ軸の角度は、前回と同じ値（工具姿勢が特異姿勢近傍の所定の範囲内に入ったときの工具姿勢）を保持するように工具姿勢を変更する場合でもよく、これにより、Ｂ軸動作を指令通り動かすとともに、より高速、かつ、より指令された工具姿勢に近い工具姿勢で工具姿勢を変化させることが可能となる効果がある。
【００６４】
また、実施の形態１では、判定部２４が、例えば、読み込んだブロックの始点及び終点の両方が所定の工具姿勢範囲内である場合に、読み取られた工具姿勢が所定の工具姿勢範囲内に入ると判定し、読み込んだブロックの始点及び終点の少なくとも一方が所定の工具姿勢範囲外である場合に、読み取られた工具姿勢が所定の工具姿勢範囲内に入らないと判定する。これにより、読み取られた工具姿勢が所定の工具姿勢範囲内に入るか否かを確実に判定することができる。
【００６５】
実施の形態２．
次に、実施の形態２にかかる数値制御装置２について説明する。以下では、実施の形態１と異なる部分を中心に説明する。
【００６６】
実施の形態１では、加工プログラムおいて指令された工具姿勢が特異姿勢近傍でばらつく場合に、例えば前回の工具姿勢を保持するような制御を行うが、実施の形態２では、特異姿勢近傍における姿勢変化を徐々に行うような制御を行う。
【００６７】
具体的には、数値制御装置２は、図４に示すように、次の点で異なる動作を行う。図４は、実施の形態２にかかる数値制御装置の動作を示すフローチャートである。なお、ステップＳ３、Ｓ５、Ｓ６については実施の形態１と同様であるため説明を省略する。
【００６８】
ステップＳ１では、判定部２４が、ブロックの終点における工具姿勢が所定の工具姿勢範囲外の場合（ステップＳ１で「Ｎｏ」）、処理をステップＳ１１へ進める。
【００６９】
ステップＳ２では、判定部２４が、ブロックの始点における工具姿勢が特異姿勢近傍の所定の工具姿勢範囲内である場合（ステップＳ２で「Ｙｅｓ」）、処理をステップＳ４１へ進め、ブロックの始点における工具姿勢が所定の工具姿勢範囲外の場合（ステップＳ２で「Ｎｏ」）、処理をステップＳ２１へ進める。
【００７０】
ステップＳ１１は、読み込んだブロックの終点が特異姿勢近傍の所定の工具姿勢範囲外のケースに行われる処理であり、工具姿勢の変更を実施しないケースとなる。このため、前回のステップＳ２１で記憶した工具姿勢の情報を記憶部２５からクリア（消去）する処理を行う。
【００７１】
ステップＳ２１は、特異姿勢近傍の所定の工具姿勢範囲内に入ってから出るまでの間の工具姿勢を変更する範囲の抽出を行う。すなわち、工具姿勢制御部２２が、所定の工具姿勢範囲内に入った時の工具姿勢を記憶部２５に記憶（メモ）させ、また、所定の工具姿勢範囲内から所定の工具姿勢範囲外へ出る直前の工具姿勢を記憶部２５に記憶（メモ）させる。
【００７２】
具体的には、ステップＳ２１では、読み込んだ加工プログラム始点における工具姿勢が特異姿勢の範囲外、終点における工具姿勢が特異姿勢の範囲内となる場合に実施されるステップであり、加工プログラムに記載された終点における工具姿勢ＶＳを記憶しておくとともに、加工プログラムの先読みを行い、特異姿勢近傍の所定の範囲を出る直前の工具姿勢ＶＥの取得および記憶を行う。
【００７３】
ステップＳ４１は、加工プログラムに記載された工具姿勢とは異なる工具姿勢を出力する点で実施の形態１のステップＳ４と同様であるが、工具姿勢の変更方法について実施の形態１のステップＳ４と異なる処理を行う。
【００７４】
具体的には、ステップＳ４１では、ステップＳ２１で記憶しておいた工具姿勢ＶＳ、ＶＥを用いて工具姿勢を変更する処理を行うものであり、後述するように、少なくとも１軸以上の回転軸角度が漸増、または、漸減するように変化させる処理を行う。
【００７５】
例えば、ＣＡＭで作成される加工プログラムが、例えば次の通りであるとする。
【００７６】
Ｎ２１  Ｇ４３．５  Ｘ０．  Ｙ０．  Ｉ０．７０７１  Ｊ０．００００  Ｋ０．７０７１；
Ｎ２２  Ｘ１０．  Ｙ０．  Ｉ０．００３４９１  Ｊ０．００００００  Ｋ０．９９９９９４；
Ｎ２３  Ｘ０．  Ｙ１０．  Ｉ０．００３４９１  Ｊ０．００６０４６  Ｋ０．９９９９７６；
Ｎ２４  Ｘ１．  Ｙ１１．  Ｉ０．００００００  Ｊ０．００００００  Ｋ１．００００００；
Ｎ２５  Ｘ６．  Ｙ１０．  Ｉ０．００３４３８  Ｊ０．０００６０６  Ｋ０．９９９９９４；
Ｎ２６  Ｘ１５．  Ｙ１１．  Ｉ０．０００３６４  Ｊ０．００２０６３  Ｋ０．９９９９９８；
Ｎ２７  Ｘ１５．  Ｙ３０．  Ｉ０．３５３５５３  Ｊ０．３５３５５３  Ｋ０．８６６０２５；
・・・
Ｎ３０  Ｇ４９；
【００７７】
この加工プログラムは、特異姿勢近傍の所定の範囲でＢ軸角度がばらつく場合を示したものであり、「Ｎ２２」〜「Ｎ２６」ブロックが特異姿勢に近い工具姿勢となっている。
【００７８】
このとき、仮に、加工プログラム通りに回転軸を移動させ、回転軸角度の移動量が小さくなるよう解の選択を行った場合、回転軸角度は、図５（ａ）の表に示すような角度に位置決めされ、「Ｎ２２」〜「Ｎ２６」ブロックでＣ軸角度が０度から８０度までを大きく往復する、すなわち大きく増減を繰り返すプログラムとなっている。なお、このケースでは、ステップＳ２１において計算される工具姿勢ＶＳは「Ｎ２２」ブロック終点における工具姿勢であり、ＶＥは「Ｎ２６」ブロック終点における工具姿勢となる。
【００７９】
それに対して、実施の形態２では、特異姿勢近傍の範囲の始点〜終点の間を例えば等間隔に分割して、回転軸の回転移動が徐々に行われるようにする。すなわち、特異姿勢近傍の所定の工具姿勢範囲に入った時点での工具姿勢ＶＳから特異姿勢近傍の所定の工具姿勢範囲から出る直前の工具姿勢ＶＥまで、少なくとも１軸以上の回転軸を漸減、または、漸増させる。
【００８０】
例えば、Ｃ軸角度のみ変更する場合、図５（ｂ）の表に示すように変化させる。図５（ｂ）の表に示す場合、「Ｎ２２」〜「Ｎ２６」ブロックでＣ軸角度が０度から８０度まで徐々に増加している。例えば「Ｎ２２」〜「Ｎ２６」ブロックでＣ軸角度が２０度ずつの等間隔の単位量で漸増している。
【００８１】
あるいは、例えば、Ｃ軸を漸増させるだけでなく、Ｂ軸も漸減させる場合、図５（ｃ）の表に示すように変化させるものである。図５（ｃ）の表に示す場合、「Ｎ２２」〜「Ｎ２６」ブロックにおいて、Ｃ軸角度が０度から８０度まで徐々に増加しているとともに、Ｂ軸角度が０．２０度から０．１２度まで徐々に減少している。例えば、「Ｎ２２」〜「Ｎ２６」ブロックにおいて、「Ｎ２２」〜「Ｎ２６」ブロックにおいて、Ｃ軸角度が２０度ずつの等間隔の単位量で漸増しているとともに、Ｂ軸角度が０．０２度ずつの等間隔の単位量で漸減している。
【００８２】
このように、実施の形態２では、工具姿勢制御部２２が、所定の工具姿勢範囲内に入った時点の工具姿勢から所定の工具姿勢範囲外に出る直前の工具姿勢まで、回転軸（Ｂ軸、Ｃ軸）の回転軸角度を漸増又は漸減させるように、回転軸（Ｂ軸、Ｃ軸）の回転軸角度を変化させる。これにより、工具姿勢が特異姿勢に近い場合に、回転軸（Ｂ軸、Ｃ軸）の回転移動量を抑制でき、工具姿勢を滑らかに変化させることが可能となる。
【００８３】
また、実施の形態２では、工具姿勢制御部２２が、所定の工具姿勢範囲内に入った時点の工具姿勢から所定の工具姿勢範囲外に出る直前の工具姿勢まで、回転軸（Ｂ軸、Ｃ軸）の回転軸角度を複数のブロックのそれぞれについて等間隔の単位量で漸増又は漸減させるように、回転軸（Ｂ軸、Ｃ軸）の回転軸角度を変化させる。これにより、複数のブロックの間で工具姿勢を滑らかに変化させることが容易である。
【００８４】
なお、実施の形態２では、特異姿勢近傍の所定の工具姿勢範囲内にある移動指令のＢ軸角度、Ｃ軸角度の変化が複数のブロックのそれぞれについて等間隔になるよう漸減、漸増させているが、ワークから見た工具先端位置の直線移動量、すなわちＸ軸、Ｙ軸、Ｚ軸の直線移動量に関連付けて間隔を変動させてもよい。すなわち、工具姿勢制御部２２は、直線軸の移動距離に応じて、回転軸角度の漸増又は漸減させるべき単位量を変化させてもよい。
【００８５】
例えば、図１に示す場合、Ｃ軸の回転がＸ−Ｙ平面に沿ったものであることから、Ｘ軸の直線移動量やＹ軸の直線移動量が大きくなるに従って、Ｃ軸の回転移動量の漸増又は漸減させるべき単位量が小さくなるように制御されてもよい。また、Ｂ軸の回転がＸ−Ｚ平面に沿ったものであることから、Ｘ軸の直線移動量やＺ軸の直線移動量が大きくなるに従って、Ｂ軸の回転移動量の漸増又は漸減させるべき量が小さくなるように制御されてもよい。
【００８６】
このように、工具姿勢制御部２２が、直線軸の移動距離に応じて、回転軸角度の漸増又は漸減させるべき単位量を変化させた場合、特異姿勢近傍の所定の工具姿勢範囲での直線軸の移動量と工具姿勢の変化とを連動させることができるため、さらに滑らかな加工面を得ることができるという効果がある。
【産業上の利用可能性】
【００８７】
以上のように、本発明にかかる数値制御装置は、工作機械の制御に有用である。
【符号の説明】
【００８８】
１  加工プログラム
２  数値制御装置
３  サーボアンプ
３Ｘ  Ｘ軸アンプ
３Ｙ  Ｙ軸アンプ
３Ｚ  Ｚ軸アンプ
３Ｂ  Ｂ軸アンプ
３Ｃ  Ｃ軸アンプ
２１  プログラム読み取り部
２２  工具姿勢制御部
２３  補間・加減速処理部
２４  判定部
２５  記憶部
１００  工作機械
１０１  テーブル
１０２  工具
１０３Ｘ  Ｘ軸サーボモータ
１０３Ｙ  Ｙ軸サーボモータ
１０３Ｚ  Ｚ軸サーボモータ
１０３Ｂ  Ｂ軸サーボモータ
１０３Ｃ  Ｃ軸サーボモータ
２１０  移動データ
２２０  更新後の移動データ
２３０  移動指令
【要約】
数値制御装置は、複数の直線軸と１以上の回転軸とを有する工作機械を制御して、テーブルに載置されたワークに対する相対的な工具姿勢を制御する数値制御装置であって、加工プログラムから、ワークに対する工具姿勢を順次読み取るプログラム読み取り部と、前記読み取られた工具姿勢が所定の工具姿勢範囲内に入るか否かを判定する判定部と、前記判定部による判定結果に応じて、工具姿勢の制御内容を決定する工具姿勢制御部と、前記決定された工具姿勢の制御内容に従って、前記複数の直線軸及び前記１以上の回転軸を制御する補間・加減速処理部とを備え、前記所定の工具姿勢範囲は、前記テーブルの主面と工具の中心軸とが略垂直に交わる特異姿勢を含み、前記工具姿勢制御部は、前記読み取られた工具姿勢が前記所定の工具姿勢範囲内に入る場合、前回の工具姿勢からの工具姿勢の変更が制限されるように、前記１以上の回転軸の回転軸角度を決定する。【図１】
0005425342.tif 000002
【図２】
0005425342.tif 000003
【図３】
0005425342.tif 000004
【図４】
0005425342.tif 000005
【図５】
0005425342.tif 000006