(57)【特許請求の範囲】
【請求項１】
複数の並進軸と１以上の回転軸によりテーブルおよび工具を動かして前記テーブル上のワークと前記工具との位置関係を制御する工作機械の数値制御装置において、
複数の指令ブロックを含む加工プログラムに基づいて移動データを出力する解析処理部と、
前記移動データに基づき、前記テーブルの座標系上で経路を補間するとともに前記回転軸の角度を補間して、補間周期毎のテーブル座標系上の並進軸位置と回転軸角度を出力する補間処理部と、
前記テーブル座標系上の並進軸位置と回転軸角度に対して、前記工作機械の構造に基づいて座標変換を行い、機械座標系上での並進軸機械位置および回転軸角度を計算する座標変換部と、
前記テーブル座標系上の並進軸位置と回転軸角度、前記機械座標系上での並進軸機械位置および回転軸角度、および平滑化量に基づき、前記テーブルの座標系上において前記指令ブロック毎に定められた平滑化区間内を移動する間の前記機械座標系上での合成方向距離を修正後の平滑化量として計算する平滑化量計算部と、
補間周期毎の前記機械座標系上での並進軸機械位置および回転軸角度の変化量に基づき、加減速後の機械座標系上の合成方向速度を計算する加減速処理部と、
前記合成方向速度と前記修正後の平滑化量と前記機械座標系上での並進軸機械位置および回転軸角度に基づいて、前記指令ブロック毎の経路が滑らかに接続されるように前記複数の並進軸と１以上の回転軸への移動指令を生成する平滑化経路生成部と、
を備える
ことを特徴とする数値制御装置。
【請求項２】
前記平滑化量計算部が計算した前記修正後の平滑化量と、前記座標変換部が補間周期毎に計算した前記機械座標系上での並進軸機械位置および回転軸角度と、を格納する経路バッファを更に備える
ことを特徴とする請求項１に記載の数値制御装置。
【請求項３】
前記平滑化量計算部は、前記指令ブロックの継ぎ目が成す角度に比例した値となる前記平滑化量を用いて、前記修正後の平滑化量を計算する
ことを特徴とする請求項１または２に記載の数値制御装置。
【請求項４】
前記平滑化量は、前記加工プログラムに記載されている
ことを特徴とする請求項１、２または３に記載の数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、補間前加減速制御中に移動経路を平滑化可能な数値制御装置に関する。
【背景技術】
【０００２】
数値制御装置が搭載された工作機械では、加工プログラムにて指令された位置に移動するよう、各駆動軸の制御を行うことで可動部を移動させながら加工が行われるが、５軸加工機のような並進移動軸と回転移動軸とを有する機械では、並進軸の位置により決定される工具の先端位置と、回転軸の回転角度により決定される工具の姿勢を指令することで、より複雑な加工を実現している。
【０００３】
工具の姿勢を決定する回転軸の回転中心は、工具の根元や加工物が置かれるテーブルにあるのが一般的であるため、工具の姿勢を変更すると、加工物から見た工具の先端位置は変わるようになる。そこで、工具の姿勢を変更しながら並進軸が移動する場合、加工プログラムから指令された工具の先端位置の移動量に加えて、工具の姿勢変更に伴う加工物から見た工具の先端位置を補正するための移動量分も移動させる必要がある。
【０００４】
特許文献１には、テーブルをＸ軸、Ｙ軸方向に直線駆動しＣ軸方向に回転するとともに、工具をＺ軸方向に直線駆動しＡ軸方向に回転する５軸加工機を制御する数値制御装置において、ＮＣプログラムで指令されたワーク座標系上の位置、速度に基づき、Ｘ軸、Ｙ軸、Ｚ軸について開始位置から指令位置に向かって補間を行った後、Ａ軸、Ｃ軸について開始位置から指令位置に向かって補間を行い、Ａ軸、Ｃ軸（回転軸）の補間位置に基づいてＸ軸、Ｙ軸、Ｚ軸（並進軸）の補間位置を補正することが記載されている。これにより、特許文献１によれば、回転するテーブルに載置されたワークに対して、簡単なＮＣプログラムにより補間しながら正確な加工を行うことができるとされている。
【０００５】
特許文献１に記載された工具先端点制御は、加工プログラムにて指令するワーク上の軌跡および速度と、工具の刃先位置（工具先端点）のワーク上の軌跡および速度とが一致するように各駆動軸の移動を補間しながら工具姿勢を補間することで、工具姿勢を変化させながらワークに対する工具先端点の軌跡を制御するものであると考えられる。このため、特許文献１に記載の技術であっても、プログラムに記載された経路や工具姿勢が急峻に変化する場合は、指令ブロックの継ぎ目における各駆動軸の移動方向が大きく変化し、振動が生じやすくなる問題があった。このため、特許文献１のような同時５軸加工を行う場合でも、以下に説明する特許文献２のような、指令ブロックの継ぎ目のみを平滑化するための技術が必要となっていた。
【０００６】
特許文献２は、加工プログラムに記載された移動経路を指令された速度で精度よく移動させつつ、指令ブロックの継ぎ目を滑らかに接続するために、加減速器と補間制御器を複数用意し、各制御のタイミングをコントロールする技術が開示されている。この技術により、経路方向の移動量に対して補間前加減速を行っている途中に、急峻に変化する経路がある場合でも、振動なく滑らかに移動することが可能となる。これより、補間前加減速でコーナを通過する度に行っていた加減速が不要となり、移動時間の短縮が可能になるとされている。
【０００７】
特許文献２に記載された技術は、加減速器の出力タイミングをコントロールする事で滑らかに遷移する経路を生成する技術である。この技術は、生成される経路は各加減速処理の出力結果に依存した経路となるため、平滑化する区間の加速度と、平滑化しない区間の加速度を柔軟に変更することができなかった。また、各加減速器の加減速時定数が同じ場合、指令ブロックの継ぎ目よりも前の経路の平滑化する区間と指令ブロックの継ぎ目よりも後の経路の平滑化する区間を異なる長さにするなど、柔軟に設定することができなかった。また、特許文献２の技術であっても、各加減速器の加減速時定数を異なる値に設定することで指令ブロック継ぎ目前後の平滑化量を変更することが可能となるが、各加減速器の加減速時定数の比率に応じた一定の比率にしか設定できないため、やはり、柔軟な設定を行うことができなかった。また、加減速時定数を各加減速器で異なる値に設定すると平滑化する区間以外の区間の加速度も変化してしまうので、無用に加減速時間が長くなる、または、加速度が過大となり、場合によっては許容加速度を超過してしまう問題が生じるため、加減速時定数を異なる設定にできなかった。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００３−１９５９１７号公報
【特許文献２】特許第３３５３６０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１に記載された技術を用いた同時５軸制御中は、工具姿勢を変更する度に並進軸の移動に加えて回転軸の移動も同時に行われるため、回転軸の移動に伴う並進軸の補正量が発生する。このため、並進軸の移動経路が同じ場合であっても、回転軸の移動の有無によって、全軸移動量に対する並進軸移動量の割合が変化することになる。また、特許文献２の技術を用いて、指令ブロックの継ぎ目前後の指令ブロックでの移動量を同じ合成方向距離だけ平滑化しても、指令ブロック内の回転軸の移動量や、回転軸の移動に伴う並進軸の補正量が大きくなるほど工具先端の並進移動量が小さくなってしまう。これにより、回転軸移動量のない場合の経路は、指令ブロック前後の距離が同じ距離であっても、回転軸移動量の大きさにより指令ブロックの継ぎ目を平滑化した後の経路が非対称な経路となり、経路がばらつき、傷の原因となっていた。すなわち、５軸の場合、合成距離一致の状態で経路を合成すると、軌跡の対称性が崩れ、傷の原因となるという問題があった。
【００１０】
また、特許文献２に記載の技術は、各駆動軸の許容加速度を考慮に入れて重ね合わせのタイミングを計算する方式であるため、経路の内回り量（軌跡誤差）や、指令ブロック終点からの距離を所定の区間内とすることができない問題があった。特に、回転軸の移動を伴って並進軸の移動を行う場合、工具先端経路の内回り量を所定の区間内とすることができないという問題があった。
【００１１】
本発明は、上記に鑑みてなされたものであって、同時５軸制御中に工具先端の経路を指令ブロックの継ぎ目前後で滑らか且つ対称に接続することが可能な数値制御装置を得ることを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決し、目的を達成するために、本発明は、複数の並進軸と１以上の回転軸によりテーブルおよび工具を動かして前記テーブル上のワークと前記工具との位置関係を制御する工作機械の数値制御装置において、複数の指令ブロックを含む加工プログラムに基づいて移動データを出力する解析処理部と、前記移動データに基づき、前記テーブルの座標系上で経路を補間するとともに前記回転軸の角度を補間して、補間周期毎のテーブル座標系上の並進軸位置と回転軸角度を出力する補間処理部と、前記テーブル座標系上の並進軸位置と回転軸角度に対して、前記工作機械の構造に基づいて座標変換を行い、機械座標系上での並進軸機械位置および回転軸角度を計算する座標変換部と、前記テーブル座標系上の並進軸位置と回転軸角度、前記機械座標系上での並進軸機械位置および回転軸角度、および平滑化量に基づき、前記テーブルの座標系上において前記指令ブロック毎に定められた平滑化区間内を移動する間の前記機械座標系上での合成方向距離を修正後の平滑化量として計算する平滑化量計算部と、補間周期毎の前記機械座標系上での並進軸機械位置および回転軸角度の変化量に基づき、加減速後の機械座標系上の合成方向速度を計算する加減速処理部と、前記合成方向速度と前記修正後の平滑化量と前記機械座標系上での並進軸機械位置および回転軸角度に基づいて、前記指令ブロック毎の経路が滑らかに接続されるように前記複数の並進軸と１以上の回転軸への移動指令を生成する平滑化経路生成部と、を備えることを特徴とする。
【発明の効果】
【００１３】
この発明によれば、工具先端点制御のような同時５軸制御が有効な状態で、移動方向が急峻に変化する場合であっても、各軸の移動を滑らかにすることを可能にしつつ、工具先端の移動経路（加工経路）が非対称になることで生じる傷を防ぐことができる、といった従来にない顕著な効果を奏する。
【図面の簡単な説明】
【００１４】
【図１】図１は、本発明の実施の形態にかかる数値制御装置の構成を示すブロック図である。
【図２−１】図２−１は、本発明の実施の形態における工作機械の構成を示す図である。
【図２−２】図２−２は、本発明の実施の形態における工作機械の構成を示す図である。
【図２−３】図２−３は、本発明の実施の形態における工作機械の構成を示す図である。
【図２−４】図２−４は、本発明の実施の形態における工作機械の構成を示す図である。
【図２−５】図２−５は、本発明の実施の形態における工作機械の構成を示す図である。
【図３】図３は、本発明の実施の形態における平滑化量計算部の処理を示すフローチャートである。
【図４】図４は、本発明の実施の形態における平滑化経路生成部の処理を示すフローチャートである。
【図５】図５は、本発明の実施の形態１における回転軸移動を伴わない場合の平滑化経路を示す図である。
【図６】図６は、従来の制御における問題点である工具側回転軸移動を伴う場合の問題を示す図である。
【図７】図７は、従来の制御における問題点である工具側回転軸移動を伴う場合の問題を示す図である。
【図８】図８は、本発明の実施の形態２におけるテーブル側回転軸移動を伴う場合の動作を示す図である。
【図９】図９は、本発明の実施の形態１における工具が傾いたときの様子を示す図である。
【発明を実施するための形態】
【００１５】
以下に、本発明にかかる数値制御装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１６】
実施の形態１．
図１は、本発明の実施の形態にかかる数値制御装置２の構成を示すブロック図である。図２−１は、本発明の実施の形態における工作機械１００の構成を示す図である。本実施の形態にかかる数値制御装置２について説明する。数値制御装置２は、工作機械１００を数値制御（ＮＣ：Ｎｕｍｅｒｉｃａｌ  Ｃｏｎｔｒｏｌ）する装置であり、例えば、図２−１における工具１０２の先端位置と工具１０２の姿勢を制御する装置である。
【００１７】
数値制御装置２が搭載された工作機械１００では、加工プログラム（ＮＣプログラム、モーションプログラム）にて指令された位置に移動するよう、各軸の制御を行うことで可動部を移動させながら加工が行われる。工作機械１００は、複数の並進軸と１以上の回転軸とを有する。
【００１８】
具体的には、工作機械１００は、例えば、図２−１に示すように、３つの直線軸（並進軸）であるＸ軸、Ｙ軸、Ｚ軸と２つの回転軸であるＢ軸、Ｃ軸とを有する５軸加工機である。Ｘ軸は、Ｘ軸サーボモータ１０３Ｘが工具１０２を直線移動させるための軸である。Ｙ軸は、Ｙ軸サーボモータ１０３Ｙが工具１０２を直線移動させるための軸である。Ｚ軸は、Ｚ軸サーボモータ１０３Ｚが工具１０２を直線移動させるための軸である。Ｘ軸、Ｙ軸、及びＺ軸は、例えば、互いに直交する。Ｂ軸（第１の回転軸）は、Ｂ軸サーボモータ１０３Ｂが工具１０２を回転移動させるための軸であり、例えばＹ軸の周りに回転移動させる。Ｃ軸（第２の回転軸）は、Ｃ軸サーボモータ１０３Ｃがテーブル１０１を回転移動させるための軸であり、例えばＺ軸の周りに回転移動させる。テーブル１０１は、その主面１０１ａ上にワークＷＫが載置される。
【００１９】
なお、図２−１は、回転軸（Ｂ軸、Ｃ軸）が工具側とワーク側とに１軸ずつある場合の工作機械１００の構成を例示的に示す図である。しかし、工作機械１００は、図２−２に示すように、回転軸（Ｂ軸、Ｃ軸）がワーク側に２軸ある場合の５軸加工機であってもよいし、図２−３に示すように、回転軸（Ｂ軸、Ｃ軸）が工具側に２軸ある場合の５軸加工機であってもよい。また、直線軸（並進軸）についても工具側にあってもよいし、ワーク側にあってもよい。また、回転軸が１つの場合は、回転軸が工具側にある図２−４のケースと、回転軸がワーク側にある図２−５のケースがある。
【００２０】
以後、本実施の形態においては、Ｂ軸のようにワークＷＫに対する工具の傾きを決定するための軸を傾斜軸と称し、Ｃ軸のように傾斜した工具を旋回するための軸を旋回軸と定義する。
【００２１】
図１の加工プログラム１は、Ｇコードと呼ばれる指令コードを用いて記述されたプログラムであり、移動指令として、位置決め指令（Ｇ００）や切削指令（Ｇ０１）の他、同時５軸制御機能として工具先端点制御（Ｇ４３．４／Ｇ４３．５）指令などの指令コードを用いて記述されたプログラムである。また、以降では、加工プログラム１に記載された移動指令それぞれを指令ブロックと表現することとし、通常、加工プログラム１の１行１行が１つの指令ブロックに相当する。
【００２２】
図１の平滑化量４は、加工プログラム１に含まれる指令ブロックの継ぎ目を中心とした前後の経路に沿った距離として予め設定された距離であり、指令ブロック継ぎ目から指令経路に沿って平滑化量４だけ戻った位置（平滑化区間の始点）から、指令ブロック継ぎ目から指令経路に沿って、平滑化量４だけ進んだ位置（平滑化区間の終点）までを平滑化区間と呼ぶこととする。なお、平滑化量４は、加工プログラム１にて指令し、加工プログラム１の途中での変更を可能とする形態でもよい。平滑化量４を加工プログラム１にて指令する場合、加工プログラム１に記載された平滑化量４を含んだ移動データ２１０が、補間処理部２２に与えられ、補間処理部２２から平滑化量計算部２６に平滑化量４が与えられることとなる。なお、便宜上、平滑化量Ｗに対して、指令ブロック継ぎ目よりも前の指令ブロックの終点における平滑化量をＷＥ、指令ブロック継ぎ目よりも後ろの指令ブロックの始点における平滑化量をＷＳとして表現することとし、通常、Ｗ＝ＷＥ＝ＷＳの関係となる。
【００２３】
数値制御装置２は、加工プログラム１を解析し、解析結果に応じてサーボアンプ３を介して、例えば、図２−１に示すような５軸加工機である工作機械１００を制御して、テーブル１０１に載置されたワークＷＫに対する相対的な工具姿勢を制御しながら、ワークＷＫの加工を行う。
【００２４】
例えば、数値制御装置２は、工具１０２の位置や姿勢を所望の工具位置、工具姿勢となるように、Ｘ、Ｙ、Ｚ、Ｂ、Ｃ軸のそれぞれを適切に制御することで、ワークＷＫに対する複雑な加工を実現している。例えば、数値制御装置２は、図１に示すように所定の移動指令２５０をサーボアンプ３におけるＸ軸アンプ３Ｘ、Ｙ軸アンプ３Ｙ、Ｚ軸アンプ３Ｚ、Ｂ軸アンプ３Ｂ、及びＣ軸アンプ３Ｃのそれぞれへ出力する。
【００２５】
これにより、Ｘ軸アンプ３Ｘ、Ｙ軸アンプ３Ｙ、Ｚ軸アンプ３Ｚ、Ｂ軸アンプ３Ｂ、及びＣ軸アンプ３Ｃは、それぞれ、Ｘ軸サーボモータ１０３Ｘ、Ｙ軸サーボモータ１０３Ｙ、Ｚ軸サーボモータ１０３Ｚ、Ｂ軸サーボモータ１０３Ｂ、Ｃ軸サーボモータ１０３Ｃに電圧指令を出力し駆動する。
【００２６】
以下においては、数値制御装置２について詳細にその内容を示す。まず、数値制御装置２は、図１に示すように、解析処理部２１、補間処理部２２、座標変換部２３、加減速処理部２４、平滑化経路生成部２５、平滑化量計算部２６、および経路バッファ２７を有する。
【００２７】
解析処理部２１は、工具先端の位置と工具の姿勢の指令からなる加工プログラム１を１指令ブロックずつ読み込み、読み込んだ加工プログラム１に記述された動作命令を解析して指令ブロック毎の移動データ２１０を生成し、補間処理部２２へ供給する。
【００２８】
移動データ２１０は、各指令ブロックの命令を解釈した結果得られ、指令ブロック毎の工具の先端位置を決める各並進軸の移動位置（指令ブロック始点位置、終点位置）、工具の姿勢を決める各回転軸の回転角度（指令ブロック始点での角度、終点での角度）、各駆動軸の移動距離、移動速度、指令座標系（テーブル座標系での指令、ワーク座標系での指令）、補間モード（直線、円弧、非補間等）、制御モード（工具先端点制御の有効・無効の区別）、前後の指令経路となす角度（軸比変化量）など、軸毎の補間点を決定するために必要な情報である。
【００２９】
なお、テーブル座標系とは、テーブル１０１を回転させるための回転軸（図２−１の場合、Ｃ軸）を有する機械において、テーブル回転に連動する座標系であり、ワーク座標系とは、テーブル１０１の回転とは無関係の座標系で、空間上に固定される座標系を表す。工具先端点制御では、機械の構成、加工形状の特徴に応じて、このどちらかの座標系で工具軌跡を指令しているが、どちらの指令方法であっても、機械構造に応じた座標変換を行うことで、テーブル座標系、および、ワーク座標系での移動データを計算することが可能である。また、テーブル１０１を回転させるための回転軸を有さない機械では、テーブル座標系とワーク座標系は常に一致する座標系となる。
【００３０】
補間処理部２２は、解析処理部２１にて作成された移動データ２１０に基づき、テーブル座標系上での補間を行うことで、補間周期毎のテーブル座標系上での並進軸位置および回転軸角度２２０を求め、平滑化量計算部２６および座標変換部２３に出力する。なお、補間処理については、従来技術と同様の処理を行うことができ、補間処理部２２における具体的な補間処理の一例を以下に示す。
【００３１】
補間処理部２２では、テーブル座標系上の経路（並進軸移動）を補間周期と送り速度に応じて順次経路を細分化し、補間周期毎の指令位置を決定するものである。つまり、指令ブロック始点、終点位置を位置ベクトルＰＳ、ＰＥとすると、工具先端位置の補間点Ｐは、
Ｐ＝（ＰＥ−ＰＳ）／｜ＰＥ−ＰＳ｜×（ｎ×Ｆｄｔ）  ＋  ＰＳ    （１）
で表すことができる。なお、Ｆｄｔは、加工プログラムに記載された工具先端の合成方向移動速度と補間周期で決定する値であり、補間周期毎の移動量に相当する。また、｜ＰＥ−ＰＳ｜は、指令ブロックの始点から終点までの距離であり、当該指令ブロックにおけるテーブル座標系上の並進軸の合成移動量に相当する。さらに、ｎは、指令ブロック内の補間点の数（｜ＰＥ−ＰＳ｜／Ｆｄｔの小数部を切り捨てた値）を上限とする０以上の整数値となっている。
【００３２】
｜ＰＥ−ＰＳ｜は、以下の数式（２）で表される。
｜ＰＥ−ＰＳ｜  ＝  √（ΔＸ＾２＋ΔＹ＾２＋ΔＺ＾２）      （２）
なお、ここでは、ΔＸ，ΔＹ，ΔＺをテーブル座標系上における指令ブロックのＸ軸、Ｙ軸、Ｚ軸の並進移動量とした。
【００３３】
また、回転軸の回転角度である回転軸角度は、指令ブロックの並進軸の合成移動量と、指令ブロック内の補間済みの距離（または、指令ブロック内の残距離）の比率に合わせて、指令ブロック内の回転軸の角度を変化させる。つまり、回転軸角度の移動量全体に対する割合と、補間済みの回転軸移動量（または、指令ブロックの残距離）が並進軸の比率と同じ比率になるように変化させるものである。
【００３４】
つまり、指令ブロック始点角度をＲＳ、指令ブロック終点角度をＲＥとした場合、回転軸角度Ｒを、以下の数式（３）で表現したものである。
Ｒ＝（ＲＥ−ＲＳ）×（｜Ｐ−ＰＳ｜／｜ＰＥ−ＰＳ｜）＋ＲＳ      （３）
【００３５】
なお、上記は、並進軸の移動量に合わせて回転軸角度を変化させる例としたが、指令ブロック始点の工具姿勢ベクトルから指令ブロック終点の工具姿勢ベクトルまでの間を並進軸の移動比率に合わせて徐々に変化させるものでもよく、工作機械１００の構成に応じて、補間した工具姿勢ベクトルを回転軸角度に座標変換することで回転軸角度を計算できる。
【００３６】
補間処理部２２は、このようにして得た補間周期毎のテーブル座標系上での並進軸位置（工具先端位置）および回転軸角度２２０に加え、補間点と指令ブロック始点との間のテーブル座標系上での距離、補間点と指令ブロック終点との間のテーブル座標系上での距離を、平滑化量計算部２６および座標変換部２３に出力する。
【００３７】
次に、座標変換部２３は、工具先端位置と回転軸の回転角度から、工作機械１００の構成に応じた関係式を用いて、並進軸の機械位置へ座標変換するものであり、座標変換後の機械座標系上での並進軸機械位置および回転軸角度２３０を、加減速処理部２４および平滑化量計算部２６に出力する。それとともに、座標変換部２３は、機械座標系上での並進軸機械位置および回転軸角度、機械座標系上の合成方向移動量２３０を、経路情報として経路バッファ２７に保存する。なお、座標変換部２３では、並進軸の位置のみを座標変換する処理を行い、回転軸の角度については、座標変換を行うものではない。
【００３８】
平滑化量計算部２６は、補間処理部２２の出力である補間点と指令ブロック始点との間のテーブル座標系上での距離、および、補間点と指令ブロック終点との間のテーブル座標系上での距離、並進軸位置および回転軸角度２２０と、平滑化量４、および、機械座標系上での並進軸機械位置および回転軸角度２３０に基づいて、機械座標系上での合成方向距離に相当する修正後の平滑化量２６０の計算を行うものである。
【００３９】
平滑化量４は、指令ブロック間の角度が浅く、滑らかに遷移する経路では平滑化量を小さくするなど、指令ブロックの継ぎ目がなす角度に比例した係数を乗じた値を使用するようにしてもよい。これにより、例えば、ある指令ブロックと前の指令ブロックとの継ぎ目を平滑化するための平滑化量ＷＳと、ある指令ブロックと後ろの指令ブロックとの継ぎ目を平滑化するための平滑化量ＷＥの２種類の平滑化量が１つの指令ブロックに対して設定されるようになっていても構わない。
【００４０】
図３は、本発明の実施の形態における平滑化量計算部の処理を示すフローチャートである。以下、平滑化量計算部２６の詳細な処理内容を、図３のフローチャートに従って説明する。
【００４１】
まず、ステップＳ１では、補間処理部２２で計算した指令ブロック始点と補間点との間のテーブル座標系上での距離ＬＳ、補間点と指令ブロック終点との間のテーブル座標系上での距離ＬＥ、指令ブロック始点における平滑化量ＷＳ、指令ブロック終点における平滑化量ＷＥを取得する。
【００４２】
次に、ステップＳ２では、指令ブロック始点と補間点との間のテーブル座標系上での距離ＬＳと、指令ブロック始点におけるテーブル座標系上での平滑化量ＷＳに基づいて、補間点が、指令ブロックの始点から、経路に沿って指令ブロック始点における平滑化量ＷＳだけ進んだ位置（平滑化区間の終点）まで移動する間の機械座標系の合成方向距離を累積する。つまり、指令ブロック始点における平滑化量ＷＳに相当する機械座標系上での合成方向距離の計算を行う。
【００４３】
具体的には、補間周期毎に、指令ブロック始点と補間点との間のテーブル座標系上での距離ＬＳと、指令ブロック始点における平滑化量ＷＳを比較し、指令ブロック始点と補間点との間のテーブル座標系上での距離ＬＳが、指令ブロック始点における平滑化量ＷＳ以下である場合、補間点が平滑化区間に入っていると判断し、今回の補間による機械座標系上での合成方向距離を計算、累積することで、指令ブロック始点における平滑化区間を移動する際の機械座標系上での合成方向距離を計算する。そうでない場合、補間点が平滑化区間に入っていないと判断し、合成方向距離の計算、および、合成方向距離の累積を行わない。
【００４４】
なお、補間点が指令ブロック始点に一致せずに平滑化区間の中に入る場合、または、平滑化区間の終点に一致せずに平滑化区間の外に出る場合、指令ブロックの始点、または、平滑化区間の終点における機械座標系上の各駆動軸の機械位置を座標変換により算出し、補間点における各駆動軸の機械位置と、指令ブロックの始点、または、平滑化区間の終点における各駆動軸の機械位置から機械座標系上での合成方向距離を計算する。これにより、平滑化区間内の機械座標系上の合成方向距離を正確に計算することができる。
【００４５】
ステップＳ３では、ステップＳ２同様の処理を指令ブロック終点について行い、指令ブロック終点と補間点との間のテーブル座標系上での距離ＬＥと、指令ブロック終点における平滑化量ＷＥとに基づいて、補間点が、指令ブロック始点から指令ブロック始点からＷＥだけ経路に沿って進んだ点（平滑化区間の終点）まで移動する間の機械座標系の合成方向距離を計算する。つまり、指令ブロック終点における平滑化量ＷＥに相当する機械座標系上での合成方向距離の計算を行う。
【００４６】
具体的には、指令ブロック終点と補間点との間のテーブル座標系上での距離ＬＥと、指令ブロック終点における平滑化量ＷＥとを比較し、指令ブロック終点と補間点との間のテーブル座標系上での距離ＬＥが、指令ブロック終点における平滑化量ＷＥ以下である場合、補間点が平滑化区間に入っていると判断し、今回の補間による機械座標系での合成方向距離を計算、累積することで、指令ブロック終点における平滑化区間を移動する際の機械座標系上での合成方向距離を計算する。そうでない場合、平滑化区間に入っていないと判断し、合成方向距離の計算、および、累積を行わない。
【００４７】
なお、補間点が平滑化区間の始点に一致せずに平滑化区間の中に入る場合、または、指令ブロック終点に一致せずに平滑化区間の外に出る場合、指令ブロックの終点または、平滑化区間の始点における機械座標系上の各駆動軸の機械位置を座標変換により算出し、補間点における各駆動軸の機械位置と、平滑化区間の始点、または、指令ブロックの終点における各駆動軸の機械位置から機械座標系上での合成方向距離を計算する。これにより、平滑化区間内の機械座標系上の移動距離を正確に計算することができる。
【００４８】
なお、ここで計算する機械座標系上での合成方向距離は、座標変換部２３の出力である補間周期毎の機械座標系上での各駆動軸の機械位置から合成方向距離を計算し、累積するものである。補間周期毎の機械座標系上での各軸（Ｘ軸、Ｙ軸、Ｚ軸、Ｂ軸、Ｃ軸）移動量をΔＸＭ、ΔＹＭ、ΔＺＭ、ΔＢ、ΔＣとすると、補間周期毎の合成方向の距離ΔＬＭは、以下の数式（４）で表される。なお、ΔＸＭ、ΔＹＭ、ΔＺＭ、ΔＢ、ΔＣは、前回補間周期の各駆動軸の機械位置と今回補間周期の各駆動軸の機械位置の差分により計算されるものである。
ΔＬＭ＝√（ΔＸＭ＾２＋ΔＹＭ＾２＋ΔＺＭ＾２＋ΔＢ＾２＋ΔＣ＾２）    （４）
【００４９】
この数式（４）で計算されるΔＬＭを指令ブロック始点付近の平滑化区間、指令ブロック終点付近の平滑化区間それぞれの区間内の補間点に対して計算し、累積することで、補間点が平滑化区間を移動する間の機械座標系上での合成方向距離を計算し、修正後の平滑化量２６０として経路バッファ２７に出力する。
【００５０】
この修正後の平滑化量２６０は、指令ブロックの継ぎ目を平滑化する区間を決定するために使用し、回転軸の軸移動量がゼロとなる指令ブロックでは、平滑化量４に一致し、回転軸の軸移動量がゼロでない指令ブロックでは、平滑化量４とは異なる値となる。
【００５１】
なお、指令ブロック始点における修正後の平滑化量２６０の数値をＷＳ１、指令ブロック終点における修正後平滑化量２６０の数値をＷＥ１で表すと、以下の数式（５）、（６）の関係となる。
ＷＥ１＝Σ（指令ブロック終点における機械座標系上での合成方向距離）      （５）
ＷＳ１＝Σ（指令ブロック始点における機械座標系上での合成方向距離）      （６）
【００５２】
修正後の平滑化ＷＳ１、ＷＥ１は、回転軸の移動量がゼロでない場合、ＷＳ１≠ＷＳ、ＷＥ１≠ＷＥの関係となり、回転軸の移動量がゼロの場合、修正後の平滑化量ＷＳ１、ＷＥ１は、それぞれ平滑化量ＷＳ、ＷＥに一致することとなる。
【００５３】
なお、上に示した数式（４）においては、並進軸の移動量と回転軸の移動量の２乗値を加算し平方根を計算することとしており、回転軸の回転角度１［ｄｅｇ］を１［ｍｍ］相当として扱うことで計算することができる。
【００５４】
また、平滑化量計算部２６では、平滑化区間内を移動する際の機械座標系上の各駆動軸の移動量、および合成方向距離を計算する際に、補間周期毎の各駆動軸の機械位置から各駆動軸の移動距離、合成方向移動量を算出して累積することで計算したが、解析的に計算できる場合は、解析的に計算した結果を使ってもよい。また、補間周期よりも細かい時間周期での機械座標系上の機械位置を求め、工具の移動距離の近似誤差を小さくするようにしてもよい。
【００５５】
加減速処理部２４は、機械座標系上での並進軸機械位置および回転軸角度２３０、すなわち各駆動軸（並進軸、および回転軸）の機械位置に対して補間前加減速を行い、加減速後の機械座標系上の合成方向速度２４０を出力する。すなわち、補間周期毎の機械座標系上での並進軸機械位置および回転軸角度２３０の変化量に基づき、加減速後の機械座標系上の合成方向速度を計算する。ここで、補間前加減速処理は、公知の技術でありその詳細については触れないものとする。
【００５６】
なお、補間前加減速では、指令ブロック継ぎ目の角度に応じて減速させて、指令ブロックの継ぎ目を通過するように減速速度を決定するものでもよい。
【００５７】
平滑化経路生成部２５には、経路バッファ２７から経路情報および平滑化量２７０が与えられる。経路情報および平滑化量２７０は、経路情報（機械座標系上での並進軸機械位置および回転軸角度、機械座標系上の合成方向移動量２３０）と修正後の平滑化量２６０を含む。平滑化経路生成部２５は、加減速処理部２４で計算された加減速後の速度である機械座標系上の合成方向速度２４０と、経路バッファ２７に格納された経路情報と、に基づいて各軸への移動指令２５０を算出する。このとき、平滑化経路生成部２５は、平滑化量計算部２６にて計算された修正後の平滑化量２６０での平滑化を行う。
【００５８】
具体的には、図４の平滑化経路生成部２５の処理を示すフローチャートに従い、以下の手順で経路の平滑化を行う。
【００５９】
まず、ステップＳ１１０では、加減速後速度である機械座標系上の合成方向速度２４０を用いて計算した補間点の位置と処理中の指令ブロック終点との間の機械座標系上での距離ＤＥを計算するとともに、指令ブロック終点における修正後の平滑化量ＷＥ１を取得し、ステップＳ１１１に移行する。
【００６０】
なお、補間点の位置と処理中の指令ブロック終点との間の機械座標系上での距離ＤＥは、経路バッファ２７に保存された機械座標系上の合成方向移動量を補間点の位置から指令ブロック終点までの区間、累積することで計算することができる。
【００６１】
ステップＳ１１１では、補間点の位置と処理中の指令ブロック終点までの機械座標系上での距離ＤＥと、指令ブロック終点における修正後の平滑化量ＷＥ１とを比較し、補間点の位置が平滑化区間内であるか否かを判定する。今回の補間点の位置が平滑化区間内であると判断した場合（ステップＳ１１１：Ｙｅｓ）は、ステップＳ１１２に移行し、今回の補間点の位置が平滑化区間内ではないと判断した場合（ステップＳ１１１：Ｎｏ）、ステップＳ１２０に移行する。
【００６２】
ステップＳ１１２では、今回の補間点と処理中の指令ブロック終点との間の機械座標系上での距離ＤＥと、指令ブロック終点における修正後の平滑化量ＷＥ１と、次の指令ブロック始点における修正後の平滑化量ＷＳとを用いて、後述の指令ブロック間の移動を滑らかに変化させることができる経路を生成し、処理を終了する。
【００６３】
また、ステップＳ１２０では、加減速後の速度である機械座標系上の合成方向速度２４０を用いて計算された補間点の位置と処理中の指令ブロック始点との間の機械座標系上での距離ＤＳを計算するとともに、指令ブロック始点における修正後の平滑化量ＷＳ１を取得し、ステップＳ１２１に移行する。
【００６４】
なお、補間点の位置と処理中の指令ブロック始点との間の機械座標系上での距離ＤＳは、経路バッファ２７に保存された機械座標系上の合成方向移動量を補間点の位置から指令ブロック始点までの区間、累積することで計算することができる。
【００６５】
ステップＳ１２１では、補間点の位置と処理中の指令ブロック始点までの機械座標系上での距離ＤＳと、指令ブロック始点における修正後の平滑化量ＷＳ１とを比較し、補間点の位置が平滑化区間内であるか否かを判定する。今回の補間点の位置が平滑化区間内であると判断した場合（ステップＳ１２１：Ｙｅｓ）は、ステップＳ１２２に移行し、補間点の位置が平滑化区間内ではないと判断した場合（ステップＳ１２１：Ｎｏ）は、処理を終了する。
【００６６】
ステップＳ１２２では、今回の補間点と処理中の指令ブロック始点との間の機械座標系上での距離ＤＳと、指令ブロック始点における修正後の平滑化量ＷＳ１と、前の指令ブロック終点における修正後の平滑化量ＷＥ１とを用いて、後述の指令ブロック間の移動を滑らかに変化させることができる経路を生成し、処理を終了する。
【００６７】
以下に、指令ブロック間の移動を滑らかに変化させることができる経路生成方法の具体的な一例を示す。まず、指令ブロックの継ぎ目より前の経路をパラメータ表現し、Ｐ１（ｔ１）とし、指令ブロックの継ぎ目より後の経路をパラメータ表現し、Ｐ２（ｔ２）とする。ここで、Ｐ１、および、Ｐ２は、全ての駆動軸の位置を要素とする位置ベクトルとして表現したものであり、ｔ１、ｔ２に応じた位置を示す値となっている。
【００６８】
ここで、ｔ１は、平滑化区間の始点（指令ブロック継ぎ目から経路に沿って機械座標系上での距離ＷＥ１だけ戻った位置）でｔ１＝０、指令ブロック終点（指令ブロックの継ぎ目）でｔ１＝１となる値であり、ｔ２は、指令ブロック始点（指令ブロックの継ぎ目）でｔ２＝０、平滑化区間の終点（指令ブロック継ぎ目から経路に沿って機械座標系上での距離ＷＳだけ進んだ位置）でｔ２＝１となる値である。さらに、各指令ブロックを平滑化した経路をＱ（τ）として表す。ここでτは、前述の平滑化区間の始点でτ＝０、平滑化区間の終点でτ＝１となる、距離に連動するパラメータである。
【００６９】
このとき、平滑化した後の経路Ｑ（τ）は、以下の数式（７）で計算される。
Ｑ（τ）＝  Ｐ１（１−（１−τ）＾２）＋Ｐ２（τ＾２）−Ｐ２（０）      （７）
これにより、各指令ブロック間の移動を滑らかに変化する経路を生成することができる。
【００７０】
なお、τは、平滑化区間の始点でゼロとし、平滑化経路上の補間済み長さと平滑化区間全体の距離との比率に応じて０から１の間を変化する。つまり、補間点が指令ブロック終点の平滑化区間にある場合（図４のステップＳ１１１で平滑化区間内と判断した場合）は、τを以下の数式（８）で計算する。
τ＝（ＷＥ１−ＤＥ）／（ＷＥ１＋ＷＳ１）          （８）
そして、補間点が指令ブロック始点の平滑化区間内にある場合（図４のステップＳ１２１で平滑化区間内と判断した場合）は、τを以下の数式（９）で計算する。
τ＝（ＷＥ１＋ＤＳ）／（ＷＥ１＋ＷＳ１）          （９）
【００７１】
また、数式（７）は、ｔ１、ｔ２をτの２次式としているが、Ｐ１（ｔ１）の経路とＰ２（ｔ２）の経路の間を徐々に変化するものであれば、その形態は問わず、τのＮ次式としてもよく、平滑化した後の経路Ｑ（τ）を、以下の数式（１０）のように計算してもよい。
Ｑ（τ）＝  Ｐ１（１−（１−τ）＾Ｎ）＋Ｐ２（τ＾Ｎ）−Ｐ２（０）      （１０）
【００７２】
以降、加工プログラムを例に、従来の制御方法における動作を説明した後、本実施の形態における動作を具体的に説明する。
【００７３】
例えば、加工プログラムが、以下のように記載されていたとする。このときの工具１０２の動作を図５に示す。
【００７４】
Ｏ１００
Ｎ１  Ｇ５４  Ｇ９０  Ｇ４３
Ｎ２  Ｇ０  Ｘ０．Ｙ０．Ｚ０．Ｂ０．Ｃ０．；
Ｎ３  Ｇ４３．４；
Ｎ１０  Ｇ１  Ｘ６０．Ｆ３０００；
Ｎ１１  Ｙ−６０．；
・・・
Ｎ５０  Ｇ４９
【００７５】
上記加工プログラム１の１行目の「Ｏ１００」は、「Ｏアドレス」に続く数字により、プログラム番号を示すものであり、プログラム１００番を示している。上記プログラムを以下では、加工プログラム１００番と呼ぶことにする。
【００７６】
加工プログラム１００番のシーケンス番号「Ｎ１」では、「Ｇ５４」では座標系原点位置を指定し、「Ｇ９０」で指令された座標値がワーク座標系の絶対位置であることを示している。また、「Ｇ４３」で工具長の補正を行う制御モードとすることで、工具の長さ分の補正を行い、プログラムに記載された位置に工具先端を移動する制御モードに切り換えている。
【００７７】
なお、工具長をＨとし、加工プログラムでワーク座標系上の点（Ｘ，Ｙ，Ｚ）＝（０，０，０）の位置に移動するよう指令した場合、制御点は、工具の長さ分だけ補正され、ワーク座標系上の点（Ｘ，Ｙ，Ｚ）＝（０，０，Ｈ）の位置に位置決めされることになる。以降では、工具先端点の位置を（Ｘ，Ｙ，Ｚ）とし、制御点の機械位置を（ＸＭ，ＹＭ，ＺＭ）として表現する。
【００７８】
次に、加工プログラム１００番の「Ｎ２」では、「Ｇ０」で現在の位置、現在の回転軸角度から、ワーク座標系上の点（Ｘ，Ｙ，Ｚ）＝（０，０，０）の位置に工具先端点が移動し、各軸の最大速度での移動を行う。
【００７９】
次に、加工プログラム１００番の「Ｎ３」では、「Ｇ４３．４」で先端点制御を有効とし、シーケンス番号「Ｎ５０」の「Ｇ４９」で先端点制御を無効とするまで先端点制御を有効状態としており、テーブル１０１の回転に連動した座標系（テーブル座標系）に対して工具１０２の先端点をＸ，Ｙ，Ｚで指令し、工具姿勢を回転軸角度Ｂ，Ｃで指令することが可能となる。なお、「Ｇ４３．４」では、「Ｇ５４」で指定したワーク座標系をテーブル１０１に固定し、テーブル回転に連動する座標系としてテーブル座標系を設定する。
【００８０】
そして、加工プログラム１００番の「Ｎ１０」ブロックでは、「Ｎ２」で位置決めした位置から、テーブル座標系（Ｘ，Ｙ，Ｚ）＝（６０，０，０）まで速度３０００ｍｍ／ｍｉｎで移動する指令を行う。つまり、工具先端点がテーブル座標系（Ｘ，Ｙ，Ｚ）＝（０，０，０）の位置から（Ｘ，Ｙ，Ｚ）＝（６０，０，０）の位置に移動し、制御点は、（ＸＭ，ＹＭ，ＺＭ）＝（０，０，Ｈ）の位置から（ＸＭ，ＹＭ，ＺＭ）＝（６０，０，Ｈ）の位置に移動を行う。
【００８１】
加工プログラム１００番の「Ｎ１１」ブロックでは、「Ｎ１０」の終点からテーブル座標系（Ｘ，Ｙ，Ｚ）＝（６０，−６０，０）の位置に工具先端を移動する指令を行っており、制御点は、（ＸＭ，ＹＭ，ＺＭ）＝（６０，−６０，Ｈ）の位置に移動する（図５）。
【００８２】
このとき、「Ｎ１０」ブロックの移動と「Ｎ１１」ブロックの移動での合成方向距離を考えると、各指令ブロックの移動は、１軸のみの移動であるため、Ｘ方向、または、Ｙ方向の移動距離が合成方向距離に一致する。
【００８３】
このため、指令ブロック終点における平滑化量ＷＥを１０ｍｍとすると、修正後の平滑化量ＷＥ１も１０ｍｍとなり、「Ｎ１０」ブロックでは、指令ブロックの継ぎ目からＸ方向に１０ｍｍ分が平滑化の区間となる。また、指令ブロック始点における平滑化量もＷＳ＝１０ｍｍとすると、修正後の平滑化量ＷＳ１も１０ｍｍとなり、「Ｎ１１」ブロックでは、指令ブロックの継ぎ目からＹ方向に１０ｍｍ分が平滑化の区間となる。
【００８４】
つまり、工具１０２の先端点が、「Ｎ１０」ブロック上の、（Ｘ，Ｙ，Ｚ）＝（５０，０，０）の位置から（Ｘ，Ｙ，Ｚ）＝（６０，０，０）の位置までの経路と、「Ｎ１１」ブロック上の、（Ｘ，Ｙ，Ｚ）＝（６０，０，０）の位置から（Ｘ，Ｙ，Ｚ）＝（６０，−１０，０）の位置までの経路が平滑化の対象区間となる（図５）。
【００８５】
加工プログラム１００番のように、並進軸のみ動く場合は、「Ｎ１０」ブロックの終点位置を中心とした、前後１０ｍｍの区間が平滑化対象区間となり、平滑化区間は対称となる。
【００８６】
次に、加工プログラム１００番から、「Ｎ２０」ブロックと「Ｎ２１」ブロックを変更した、以下に示すような加工プログラム（以下では、加工プログラム２００番と呼ぶ）を用いて、工具根元の回転軸のような傾斜軸の移動量がゼロでない場合について説明する。このときの工具１０２の動作を図６に示す。
【００８７】
Ｏ２００
Ｎ１  Ｇ５４  Ｇ９０  Ｇ４３
Ｎ２  Ｇ０  Ｘ０．Ｙ０．Ｚ０．Ｂ０．Ｃ０．；
Ｎ３  Ｇ４３．４；
Ｎ２０  Ｇ１  Ｘ６０．Ｆ３０００；
Ｎ２１  Ｙ−６０．Ｂ３０．；
・・・
Ｎ５０  Ｇ４９
【００８８】
この加工プログラム２００番では、「Ｎ１」から「Ｎ３」までは、加工プログラム１００番と同じ処理を行っており、「Ｎ２０」は、加工プログラム１００番の「Ｎ１０」と同じ指令となっている。また、「Ｎ２１」ブロックの動作が加工プログラム１００番の「Ｎ１１」と異なっており、Ｙ軸方向に工具先端点を−６０ｍｍ移動するとともに、指令ブロック終点のＢ軸角度が３０度となる工具姿勢に位置決めするよう指令がなされている。
【００８９】
このとき、加工プログラム２００番の「Ｎ２１」ブロックの移動における合成方向距離は、Ｂ軸が回転する分だけ、「Ｎ１１」ブロックの合成方向移動量とは異なる値となり、Ｂ軸の回転に連動して、Ｘ軸、Ｚ軸の位置を補正することで工具先端位置をプログラムで記載された位置になるよう制御を行っている。
【００９０】
具体的には、「Ｎ２１」ブロックでは、工具先端点がテーブル座標系上を「Ｎ２０」ブロック終点での位置からＹ軸は−６０ｍｍ、Ｂ軸は３０度動くので、機械座標系上での各駆動軸の機械位置は、図９の関係より（ＸＭ，ＹＭ，ＺＭ，Ｂ，Ｃ）＝（６０，０，Ｈ，０，０）の位置から（ＸＭ，ＹＭ，ＺＭ，Ｂ，Ｃ）＝（６０＋Ｈ×ＳＩＮ（θＢ），−６０，Ｈ×ＣＯＳ（θＢ），３０，０）の位置に移動する。なお、θＢは、Ｂ軸角度を弧度法表現したものであり、単位はラジアンとなっている。この場合、３０度のラジアンでの値がθＢになっている。
【００９１】
次に、「Ｎ２１」ブロック内での機械座標系上での移動量は、指令ブロック始点から終点までの距離として計算でき、（ΔＸＭ，ΔＹＭ，ΔＺＭ，ΔＢ，ΔＣ）＝（Ｈ×ＳＩＮ（θＢ），−６０，Ｈ×ＣＯＳ（θＢ）−Ｈ，３０，０）となる。
【００９２】
ただし、工具先端の経路を制御しながら回転軸を変化させる場合、合成方向移動量は、（ΔＸＭ，ΔＹＭ，ΔＺＭ，ΔＢ，ΔＣ）を数式（４）に代入することで計算される値と異なる値となる。「Ｎ２１」ブロックの動作では、テーブル座標系上の合成方向移動量ＬＴを解析的に計算することができ、以下の数式（１１）となる。
ＬＴ＝√（ΔＹ＾２＋ΔＢ＾２＋（Ｈ×θＢ）＾２）      （１１）
【００９３】
数式（１１）では、右辺第一項がＹ軸移動量、第二項が回転軸（Ｂ軸）移動量、第３項が回転軸の移動に伴う並進軸位置の補正量を示すものとなっている。工具長をＨ＝１００ｍｍ、ΔＢ＝３０度とすると、テーブル座標系上の合成方向移動量はＬＴ≒８５．１０ｍｍとなる。ただし、回転角度は１度＝１ｍｍ相当とみなした場合の距離である。
【００９４】
なお、「Ｎ２１」ブロックの始点における平滑量ＷＳを１０ｍｍとする場合、Ｘ軸、Ｙ軸、Ｚ軸、Ｂ軸、Ｃ軸の移動量（ΔＸＭＷ，ΔＹＭＷ，ΔＺＭＷ，ΔＢＭＷ，ΔＣＭＷ）は、
ΔＸＭＷ＝（ＷＳ／ＬＴ）×Ｈ×ＳＩＮ（ΔθＢＭＷ）＝０．７２ｍｍ
ΔＹＭＷ＝（ＷＳ／ＬＴ）×（−６０）≒−７．０５ｍｍ
ΔＺＭＷ＝（ＷＳ／ＬＴ）×（Ｈ×ＣＯＳ（ΔθＢＭＷ）−Ｈ）≒−０．０２ｍｍ
ΔＢＭＷ＝（ＷＳ／ＬＴ）×ΔＢ≒３．５３度
ΔＣＭＷ＝（ＷＳ／ＬＴ）×０＝０度
となり、工具先端は、Ｙ軸方向−７．０５ｍｍ分が平滑化区間となり、加工プログラム１００番でのＹ軸方向移動量−１０ｍｍとは異なる距離になっていることが分かる。
【００９５】
これに対して、「Ｎ２０」ブロックでは回転軸の移動がないため、「Ｎ２０」ブロック終点における平滑化量ＷＥ１は１０ｍｍとなり、ブロック継ぎ目前後の平滑化区間に違いが現れる。この平滑化区間の違いは、経路の違い、ひいては、加工面に傷として現れるため、問題となっている（図７参照）。なお、ΔθＢＭＷは、ΔＢＭＷを弧度法表現したものであり、単位はラジアンとなっている。
【００９６】
以上より、従来の制御方法では、テーブル座標系上での合成方向距離が一致するように経路の平滑化を行った場合であっても、同時５軸制御のように回転軸の移動量を含む場合の移動では、工具先端経路のテーブル座標系上での平滑化区間が指令ブロック前後で異なる長さとなる場合があることが分かる。
【００９７】
このため、本実施の形態においては、テーブル座標系ＸＹＺの移動量と回転軸の移動量、機械座標系でのＸＹＺの移動量に基づき、指令ブロック前後の平滑化量を決定するものである。以下、加工プログラム２００番に、本実施の形態の数値制御装置２の制御方法を適用した場合を例に説明を行う。
【００９８】
本実施の形態にかかる数値制御装置２では、平滑化量計算部２６にて、補間処理部２２の出力であるテーブル座標系上での並進軸位置および回転軸角度２２０と、平滑化量４、および、機械座標系上での並進軸機械位置および回転軸角度２３０に基づいて、指令ブロック内における修正後の平滑化量２６０の計算を行う。平滑化量Ｗを１０ｍｍとする場合、プログラム２００番の「Ｎ２１」ブロックの始点における平滑化量ＷＳは、Ｗに一致し、平滑化区間は、（Ｘ，Ｙ，Ｚ，Ｂ，Ｃ）＝（６０，０，０，０，０）から、（Ｘ，Ｙ，Ｚ，Ｂ，Ｃ）＝（６０，−１０，０，５，０）までの区間となり、工具先端の移動量は、（ΔＸＷ，ΔＹＷ，ΔＺＷ，ΔＢＷ，ΔＣＷ）＝（０，−１０，０，５，０）となる。
【００９９】
このとき、テーブル座標系上の「Ｎ２１」ブロックの平滑化区間を移動する際の機械座標系上の合成方向距離ＬＭＷは、以下の数式（１２）により解析的に計算することができる。
ＬＭＷ＝√（ΔＹＷ＾２＋ΔＢＷ＾２＋（Ｈ×θＢＷ）＾２）≒１４．１８  （１２）
そして、このＬＭＷを「Ｎ２１」ブロックにおける修正後の平滑化量ＷＳ１として設定する。
【０１００】
なお、指令ブロック始点における修正後の平滑化量ＷＳ１を、１４．１８ｍｍとした場合、機械座標系上での各駆動軸（Ｘ軸、Ｙ軸、Ｚ軸、Ｂ軸、Ｃ軸）の移動量（ΔＸＭＷ，ΔＹＭＷ，ΔＺＭＷ，ΔＢＭＷ，ΔＣＭＷ）は、
ΔＸＭＷ＝（ＷＳ１／ＬＣ）×（Ｈ×ＳＩＮ（θＢＭＷ））＝１．４５ｍｍ
ΔＹＭＷ＝（ＷＳ１／ＬＣ）×（−６０）≒−１０ｍｍ
ΔＺＭＷ＝（ＷＳ１／ＬＣ）×（Ｈ×ＣＯＳ（θＢＭＷ）−Ｈ）≒−０．０６ｍｍ
ΔＢＭＷ＝（ＷＳ１／ＬＣ）×ΔＢ≒５度
ΔＣＭＷ＝（ＷＳ１／ＬＣ）×０＝０度
となり、平滑化区間における工具先端のＹ軸方向移動量を−１０ｍｍに一致させることが可能となる。これより、平滑化区間、回転軸が同時に移動する場合でも、工具先端の平滑化量を所定の値に一致させることが可能となる。
【０１０１】
なお、本実施の形態では、工具回転に伴う機械の移動経路が解析的に計算することができたため、解析的に計算する方法での説明を行ったが、解析的に計算ができない場合、または、解析的に計算するための計算負荷が重いなどの場合には、座標変換部で計算される補間点毎の各駆動軸の機械位置の変化量に基づいて、機械座標系上での合成方向移動量を近似計算すればよい。
【０１０２】
以上より、工具先端点制御、補間前加減速が有効となる状態であっても、工具が回転する場合に平滑化量を修正することで、工具先端経路の平滑化量を指令ブロック前後で一致させる（対称にする）ことができ、平滑化経路のばらつきを抑えることが可能となる。
【０１０３】
これにより、平滑化した後の経路が異なることで生じていた加工面に筋ができるなどの傷の発生を回避できるので、加工品位の向上が可能となる。
【０１０４】
実施の形態２．
次に、実施の形態２にかかる数値制御装置２について説明する。なお、実施の形態２にかかる数値制御装置２の構成は、実施の形態１と同様に図１に示される。また、その構成要素内の動作も同様であるが、本実施の形態において実行する加工プログラムが実施の形態１とは異なるものとなっている。以下では、実施の形態１と異なる部分を中心に説明する。
【０１０５】
実施の形態１では、工具の根元の回転軸の移動量がゼロでない場合、すなわち工具回転軸が移動するケースの適用方法について示し、機械座標系の合成方向移動量が解析的に計算できる場合の適用例を示した。これに対し、本実施の形態２では、機械座標系の合成方向移動量が解析的に計算できない場合の適用例を示すものであり、テーブル側の回転軸の移動を伴う場合を例としてその適用方法について示す。
【０１０６】
本実施の形態にかかる加工プログラムは、並進軸の移動のみで構成された加工プログラムであり、以下の加工プログラム３００番である。
【０１０７】
Ｏ３００
Ｎ１  Ｇ５４  Ｇ９０  Ｇ４３
Ｎ２  Ｇ０  Ｘ０．Ｙ０．Ｚ０．Ｂ０．Ｃ０．；
Ｎ３  Ｇ４３．４；
Ｎ３０  Ｇ１  Ｙ６０．Ｆ３０００；
Ｎ３１  Ｘ−６０．；
・・・
Ｎ５０  Ｇ４９
【０１０８】
この加工プログラム３００番では、「Ｎ１」から「Ｎ３」までは、加工プログラム１００番および２００番と同じ処理を行っており、「Ｎ３０」、「Ｎ３１」が異なっている。
【０１０９】
加工プログラム３００番の「Ｎ３０」ブロックでは、Ｎ２で位置決めした位置から、テーブル座標系（Ｘ，Ｙ，Ｚ）＝（０，６０，０）まで速度３０００ｍｍ／ｍｉｎで移動する指令を行う。つまり、工具先端点がテーブル座標系（Ｘ，Ｙ，Ｚ）＝（０，０，０）の位置から（Ｘ，Ｙ，Ｚ）＝（０，６０，０）の位置に移動し、制御点は、（ＸＭ，ＹＭ，ＺＭ）＝（０，０，Ｈ）の位置から（ＸＭ，ＹＭ，ＺＭ）＝（０，６０，Ｈ）の位置に移動を行う。
【０１１０】
次に、加工プログラム３００番の「Ｎ３１」ブロックでは、「Ｎ３０」の終点からテーブル座標系（Ｘ，Ｙ，Ｚ）＝（−６０，６０，０）の位置に工具先端を移動する指令を行っており、制御点は、（ＸＭ，ＹＭ，ＺＭ）＝（−６０，６０，Ｈ）の位置に移動する。
【０１１１】
このとき、「Ｎ３０」ブロックの移動と「Ｎ３１」ブロックの移動での合成方向距離を考えると、各指令ブロックの移動は、１軸のみの移動であるため、Ｙ方向、または、Ｘ方向の移動距離が合成方向距離に一致する。このため、平滑化量Ｗを１０ｍｍとした場合、「Ｎ３０」ブロックの終点位置を中心として、経路に沿って前後１０ｍｍの区間が平滑化対象区間となり、平滑化区間を対称にすることができる。
【０１１２】
次に、加工プログラム３００番から、「Ｎ３０」ブロックと「Ｎ３１」ブロックを変更した、以下に示すような加工プログラム（以下では、加工プログラム４００番と呼ぶ）を用いて、テーブル回転軸の移動量がゼロでない場合について説明する。このときの動作を図８に示す。
【０１１３】
Ｏ４００
Ｎ１  Ｇ５４  Ｇ９０  Ｇ４３
Ｎ２  Ｇ０  Ｘ０．Ｙ０．Ｚ０．Ｂ０．Ｃ０．；
Ｎ３  Ｇ４３．４；
Ｎ４０  Ｇ１  Ｙ６０．Ｆ３０００；
Ｎ４１  Ｘ−６０．Ｃ１８０．；
・・・
Ｎ５０  Ｇ４９
【０１１４】
この加工プログラム４００番では、「Ｎ１」から「Ｎ３」までは、加工プログラム１００番、２００番、および３００番と同じ処理を行っており、「Ｎ４０」は、プログラム３００番の「Ｎ３０」と同じ指令となっている。また、「Ｎ４１」ブロックの動作が加工プログラム３００番の「Ｎ３１」と異なっており、プログラムで指令した座標がテーブルの回転に連動する座標系（テーブル座標系）上の位置を指定する場合、「Ｎ４１」ブロックは、テーブル回転軸の回転角度（Ｃ軸角度）が０度から１８０度にまで変化する間に、テーブル座標系上をＸ軸方向に−６０ｍｍ移動するよう指令がなされている。このとき、「Ｎ４１」ブロックの移動における合成方向距離は、Ｃ軸の回転に伴い、「Ｎ３１」ブロックの合成方向移動量とは異なる値となる。
【０１１５】
なお、本実施の形態でのテーブル回転軸のような旋回軸の移動を伴う場合、工具先端がテーブル座標系上を直線状に動く場合でも、一般に、座標変換後の経路は解析的に計算することができない。このため、平滑化量計算部２６では、補間点毎に座標変換を行い、計算した機械座標系上における各駆動軸の機械位置の変化量に基づいて、機械座標系での合成方向移動量、および、その累積値を計算する。
【０１１６】
例えば、補間周期を１ｍｓ、送り速度を３０００ｍｍ／ｍｉｎとすると、補間周期あたりの送り速度は、
Ｆｄｔ＝３０００／６０×０．００１＝０．０５ｍｍ
となる。つまり、テーブル座標系上の経路を０．０５ｍｍ間隔で補間することとなる。
【０１１７】
また、「Ｎ４１」ブロックの始点位置ＰＳは、（Ｘ，Ｙ，Ｚ）＝（０，６０，０）であり、指令ブロックの始点ＰＥは、（Ｘ，Ｙ，Ｚ）＝（−６０，６０，０）であるため、指令ブロック始点から１補間周期だけ進んだ時刻（ｎ＝１）の補間点Ｐは、数式（１）より、
Ｐ（１）＝［−１，０，０ ］×ｎ×Ｆｄｔ＋［０，６０，０ ］
＝［−０．０５，６０，０］
となる。
【０１１８】
そして、指令ブロック始点、および終点における回転軸の角度ＲＳ＝０、ＲＥ＝１８０を用いて、数式（３）により、
Ｒ＝（１８０）×（０．０５／６０）＋０
＝０．１５
となる。
【０１１９】
これより、指令ブロック始点から１補間周期だけ進んだ時刻では、（ＸＴ１，ＹＴ１，ＺＴ１，Ｂ１，Ｃ１）＝（−０．０５，６０，０，０，０．１５）の点が補間されることになる。ここで、（ＸＴ１，ＹＴ１，ＺＴ１）は、ｎ＝１におけるテーブル座標系上の工具先端の補間点位置を示し、（Ｂ１，Ｃ１）は、ｎ＝１におけるＢ軸、Ｃ軸の回転軸角度である。
【０１２０】
テーブル回転中心位置を（ＸＣ，ＹＣ，ＺＣ）＝（０，０，０）の位置とし、テーブル座標系上の補間点を座標変換すると、ｎ＝１における機械座標系上での機械位置（ＸＭ１，ＹＭ１，ＺＭ１）は、
ＸＭ１＝ＸＴ１×ＣＯＳ（−θＣ１）−ＹＴ１×ＳＩＮ（−θＣ１）≒  ０．１０７１
ＹＭ１＝ＸＴ１×ＳＩＮ（−θＣ１）＋ＹＴ１×ＣＯＳ（−θＣ１）≒５９．９９９９
ＺＭ１＝ＺＴ１＝０
となる。なお、θＣ１は、Ｃ軸角度を弧度法表現したものであり、単位はラジアンとなっている。これより、前回補間点である指令ブロック始点の位置からの差分を計算することで、今回の補間による機械座標系上での各駆動軸移動距離（ΔＸＭ，ΔＹＭ，ΔＺＭ，ΔＢ，ΔＣ）＝（０．１０７１，−０．０００１，０，０，０．１５）が求まる。
【０１２１】
機械座標系上での合成方向移動量は、数式（４）を用いて計算することができ、時刻ｎ＝１における補間による合成方向移動距離はΔＬＭ≒０．０３４０となる。
【０１２２】
以降、補間点が指令ブロック終点に到達するまで時刻ｎを増加し、上記手順と同様の手順により、合成方向移動量を求め、平滑化区間内を移動する間、累積し、累積が終了した時点での値を修正後の平滑化量ＷＳ１として経路バッファ２７に設定する。
【０１２３】
以上より、実施の形態２のように、並進軸の移動に加え、テーブル座標系の移動も行う場合に本方式を適用することで、平滑化経路のばらつきを抑えることが可能となる。これにより、平滑化した後の経路が異なることで生じていた加工面の傷の発生を回避できるので、加工品位の向上が可能となる。
【０１２４】
さらに、本願発明は上記実施の形態に限定されるものではなく、実施段階ではその要旨を逸脱しない区間で種々に変形することが可能である。また、上記実施の形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出されうる。例えば、上記実施の形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出されうる。更に、異なる実施の形態にわたる構成要素を適宜組み合わせてもよい。
【産業上の利用可能性】
【０１２５】
以上のように、本発明にかかる数値制御装置は、加工プログラムに基づいて加工を実行する工作機械の数値制御装置に有用であり、特に、同時５軸制御中に工具先端の経路を指令ブロックの継ぎ目前後で滑らかに接続することが可能な数値制御装置に適している。
【符号の説明】
【０１２６】
１  加工プログラム、２  数値制御装置、３  サーボアンプ、３Ｘ  Ｘ軸アンプ、３Ｙ  Ｙ軸アンプ、３Ｚ  Ｚ軸アンプ、３Ｂ  Ｂ軸アンプ、３Ｃ  Ｃ軸アンプ、２１  解析処理部、２２  補間処理部、２３  座標変換部、２４  加減速処理部、２５  平滑化経路生成部、２６  平滑化量計算部、２７  経路バッファ、１００  工作機械、１０１  テーブル、１０２  工具、１０３Ｘ  Ｘ軸サーボモータ、１０３Ｙ  Ｙ軸サーボモータ、１０３Ｚ  Ｚ軸サーボモータ、１０３Ｂ  Ｂ軸サーボモータ、１０３Ｃ  Ｃ軸サーボモータ、２１０  移動データ、２２０  テーブル座標系上での並進軸位置および回転軸角度、２３０  機械座標系上での並進軸機械位置および回転軸角度、２４０  機械座標系上の合成方向速度、２５０  移動指令、２６０  修正後の平滑化量、２７０  経路情報および平滑化量、ＷＫ  ワーク。
【図１】
0006012560.tif 000002
【図２−１】
0006012560.tif 000003
【図２−２】
0006012560.tif 000004
【図２−３】
0006012560.tif 000005
【図２−４】
0006012560.tif 000006
【図２−５】
0006012560.tif 000007
【図３】
0006012560.tif 000008
【図４】
0006012560.tif 000009
【図５】
0006012560.tif 000010
【図６】
0006012560.tif 000011
【図７】
0006012560.tif 000012
【図８】
0006012560.tif 000013
【図９】
0006012560.tif 000014