以下に、本発明にかかる数値制御装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態1.
図1は、本発明の実施の形態にかかる数値制御装置2の構成を示すブロック図である。図2−1は、本発明の実施の形態における工作機械100の構成を示す図である。本実施の形態にかかる数値制御装置2について説明する。数値制御装置2は、工作機械100を数値制御(NC:Numerical Control)する装置であり、例えば、図2−1における工具102の先端位置と工具102の姿勢を制御する装置である。
数値制御装置2が搭載された工作機械100では、加工プログラム(NCプログラム、モーションプログラム)にて指令された位置に移動するよう、各軸の制御を行うことで可動部を移動させながら加工が行われる。工作機械100は、複数の並進軸と1以上の回転軸とを有する。
具体的には、工作機械100は、例えば、図2−1に示すように、3つの直線軸(並進軸)であるX軸、Y軸、Z軸と2つの回転軸であるB軸、C軸とを有する5軸加工機である。X軸は、X軸サーボモータ103Xが工具102を直線移動させるための軸である。Y軸は、Y軸サーボモータ103Yが工具102を直線移動させるための軸である。Z軸は、Z軸サーボモータ103Zが工具102を直線移動させるための軸である。X軸、Y軸、及びZ軸は、例えば、互いに直交する。B軸(第1の回転軸)は、B軸サーボモータ103Bが工具102を回転移動させるための軸であり、例えばY軸の周りに回転移動させる。C軸(第2の回転軸)は、C軸サーボモータ103Cがテーブル101を回転移動させるための軸であり、例えばZ軸の周りに回転移動させる。テーブル101は、その主面101a上にワークWKが載置される。
なお、図2−1は、回転軸(B軸、C軸)が工具側とワーク側とに1軸ずつある場合の工作機械100の構成を例示的に示す図である。しかし、工作機械100は、図2−2に示すように、回転軸(B軸、C軸)がワーク側に2軸ある場合の5軸加工機であってもよいし、図2−3に示すように、回転軸(B軸、C軸)が工具側に2軸ある場合の5軸加工機であってもよい。また、直線軸(並進軸)についても工具側にあってもよいし、ワーク側にあってもよい。また、回転軸が1つの場合は、回転軸が工具側にある図2−4のケースと、回転軸がワーク側にある図2−5のケースがある。
以後、本実施の形態においては、B軸のようにワークWKに対する工具の傾きを決定するための軸を傾斜軸と称し、C軸のように傾斜した工具を旋回するための軸を旋回軸と定義する。
図1の加工プログラム1は、Gコードと呼ばれる指令コードを用いて記述されたプログラムであり、移動指令として、位置決め指令(G00)や切削指令(G01)の他、同時5軸制御機能として工具先端点制御(G43.4/G43.5)指令などの指令コードを用いて記述されたプログラムである。また、以降では、加工プログラム1に記載された移動指令それぞれを指令ブロックと表現することとし、通常、加工プログラム1の1行1行が1つの指令ブロックに相当する。
図1の平滑化量4は、加工プログラム1に含まれる指令ブロックの継ぎ目を中心とした前後の経路に沿った距離として予め設定された距離であり、指令ブロック継ぎ目から指令経路に沿って平滑化量4だけ戻った位置(平滑化区間の始点)から、指令ブロック継ぎ目から指令経路に沿って、平滑化量4だけ進んだ位置(平滑化区間の終点)までを平滑化区間と呼ぶこととする。なお、平滑化量4は、加工プログラム1にて指令し、加工プログラム1の途中での変更を可能とする形態でもよい。平滑化量4を加工プログラム1にて指令する場合、加工プログラム1に記載された平滑化量4を含んだ移動データ210が、補間処理部22に与えられ、補間処理部22から平滑化量計算部26に平滑化量4が与えられることとなる。なお、便宜上、平滑化量Wに対して、指令ブロック継ぎ目よりも前の指令ブロックの終点における平滑化量をWE、指令ブロック継ぎ目よりも後ろの指令ブロックの始点における平滑化量をWSとして表現することとし、通常、W=WE=WSの関係となる。
数値制御装置2は、加工プログラム1を解析し、解析結果に応じてサーボアンプ3を介して、例えば、図2−1に示すような5軸加工機である工作機械100を制御して、テーブル101に載置されたワークWKに対する相対的な工具姿勢を制御しながら、ワークWKの加工を行う。
例えば、数値制御装置2は、工具102の位置や姿勢を所望の工具位置、工具姿勢となるように、X、Y、Z、B、C軸のそれぞれを適切に制御することで、ワークWKに対する複雑な加工を実現している。例えば、数値制御装置2は、図1に示すように所定の移動指令250をサーボアンプ3におけるX軸アンプ3X、Y軸アンプ3Y、Z軸アンプ3Z、B軸アンプ3B、及びC軸アンプ3Cのそれぞれへ出力する。
これにより、X軸アンプ3X、Y軸アンプ3Y、Z軸アンプ3Z、B軸アンプ3B、及びC軸アンプ3Cは、それぞれ、X軸サーボモータ103X、Y軸サーボモータ103Y、Z軸サーボモータ103Z、B軸サーボモータ103B、C軸サーボモータ103Cに電圧指令を出力し駆動する。
以下においては、数値制御装置2について詳細にその内容を示す。まず、数値制御装置2は、図1に示すように、解析処理部21、補間処理部22、座標変換部23、加減速処理部24、平滑化経路生成部25、平滑化量計算部26、および経路バッファ27を有する。
解析処理部21は、工具先端の位置と工具の姿勢の指令からなる加工プログラム1を1指令ブロックずつ読み込み、読み込んだ加工プログラム1に記述された動作命令を解析して指令ブロック毎の移動データ210を生成し、補間処理部22へ供給する。
移動データ210は、各指令ブロックの命令を解釈した結果得られ、指令ブロック毎の工具の先端位置を決める各並進軸の移動位置(指令ブロック始点位置、終点位置)、工具の姿勢を決める各回転軸の回転角度(指令ブロック始点での角度、終点での角度)、各駆動軸の移動距離、移動速度、指令座標系(テーブル座標系での指令、ワーク座標系での指令)、補間モード(直線、円弧、非補間等)、制御モード(工具先端点制御の有効・無効の区別)、前後の指令経路となす角度(軸比変化量)など、軸毎の補間点を決定するために必要な情報である。
なお、テーブル座標系とは、テーブル101を回転させるための回転軸(図2−1の場合、C軸)を有する機械において、テーブル回転に連動する座標系であり、ワーク座標系とは、テーブル101の回転とは無関係の座標系で、空間上に固定される座標系を表す。工具先端点制御では、機械の構成、加工形状の特徴に応じて、このどちらかの座標系で工具軌跡を指令しているが、どちらの指令方法であっても、機械構造に応じた座標変換を行うことで、テーブル座標系、および、ワーク座標系での移動データを計算することが可能である。また、テーブル101を回転させるための回転軸を有さない機械では、テーブル座標系とワーク座標系は常に一致する座標系となる。
補間処理部22は、解析処理部21にて作成された移動データ210に基づき、テーブル座標系上での補間を行うことで、補間周期毎のテーブル座標系上での並進軸位置および回転軸角度220を求め、平滑化量計算部26および座標変換部23に出力する。なお、補間処理については、従来技術と同様の処理を行うことができ、補間処理部22における具体的な補間処理の一例を以下に示す。
補間処理部22では、テーブル座標系上の経路(並進軸移動)を補間周期と送り速度に応じて順次経路を細分化し、補間周期毎の指令位置を決定するものである。つまり、指令ブロック始点、終点位置を位置ベクトルPS、PEとすると、工具先端位置の補間点Pは、
P=(PE−PS)/|PE−PS|×(n×Fdt) + PS (1)
で表すことができる。なお、Fdtは、加工プログラムに記載された工具先端の合成方向移動速度と補間周期で決定する値であり、補間周期毎の移動量に相当する。また、|PE−PS|は、指令ブロックの始点から終点までの距離であり、当該指令ブロックにおけるテーブル座標系上の並進軸の合成移動量に相当する。さらに、nは、指令ブロック内の補間点の数(|PE−PS|/Fdtの小数部を切り捨てた値)を上限とする0以上の整数値となっている。
|PE−PS|は、以下の数式(2)で表される。
|PE−PS| = √(ΔX^2+ΔY^2+ΔZ^2) (2)
なお、ここでは、ΔX,ΔY,ΔZをテーブル座標系上における指令ブロックのX軸、Y軸、Z軸の並進移動量とした。
また、回転軸の回転角度である回転軸角度は、指令ブロックの並進軸の合成移動量と、指令ブロック内の補間済みの距離(または、指令ブロック内の残距離)の比率に合わせて、指令ブロック内の回転軸の角度を変化させる。つまり、回転軸角度の移動量全体に対する割合と、補間済みの回転軸移動量(または、指令ブロックの残距離)が並進軸の比率と同じ比率になるように変化させるものである。
つまり、指令ブロック始点角度をRS、指令ブロック終点角度をREとした場合、回転軸角度Rを、以下の数式(3)で表現したものである。
R=(RE−RS)×(|P−PS|/|PE−PS|)+RS (3)
なお、上記は、並進軸の移動量に合わせて回転軸角度を変化させる例としたが、指令ブロック始点の工具姿勢ベクトルから指令ブロック終点の工具姿勢ベクトルまでの間を並進軸の移動比率に合わせて徐々に変化させるものでもよく、工作機械100の構成に応じて、補間した工具姿勢ベクトルを回転軸角度に座標変換することで回転軸角度を計算できる。
補間処理部22は、このようにして得た補間周期毎のテーブル座標系上での並進軸位置(工具先端位置)および回転軸角度220に加え、補間点と指令ブロック始点との間のテーブル座標系上での距離、補間点と指令ブロック終点との間のテーブル座標系上での距離を、平滑化量計算部26および座標変換部23に出力する。
次に、座標変換部23は、工具先端位置と回転軸の回転角度から、工作機械100の構成に応じた関係式を用いて、並進軸の機械位置へ座標変換するものであり、座標変換後の機械座標系上での並進軸機械位置および回転軸角度230を、加減速処理部24および平滑化量計算部26に出力する。それとともに、座標変換部23は、機械座標系上での並進軸機械位置および回転軸角度、機械座標系上の合成方向移動量230を、経路情報として経路バッファ27に保存する。なお、座標変換部23では、並進軸の位置のみを座標変換する処理を行い、回転軸の角度については、座標変換を行うものではない。
平滑化量計算部26は、補間処理部22の出力である補間点と指令ブロック始点との間のテーブル座標系上での距離、および、補間点と指令ブロック終点との間のテーブル座標系上での距離、並進軸位置および回転軸角度220と、平滑化量4、および、機械座標系上での並進軸機械位置および回転軸角度230に基づいて、機械座標系上での合成方向距離に相当する修正後の平滑化量260の計算を行うものである。
平滑化量4は、指令ブロック間の角度が浅く、滑らかに遷移する経路では平滑化量を小さくするなど、指令ブロックの継ぎ目がなす角度に比例した係数を乗じた値を使用するようにしてもよい。これにより、例えば、ある指令ブロックと前の指令ブロックとの継ぎ目を平滑化するための平滑化量WSと、ある指令ブロックと後ろの指令ブロックとの継ぎ目を平滑化するための平滑化量WEの2種類の平滑化量が1つの指令ブロックに対して設定されるようになっていても構わない。
図3は、本発明の実施の形態における平滑化量計算部の処理を示すフローチャートである。以下、平滑化量計算部26の詳細な処理内容を、図3のフローチャートに従って説明する。
まず、ステップS1では、補間処理部22で計算した指令ブロック始点と補間点との間のテーブル座標系上での距離LS、補間点と指令ブロック終点との間のテーブル座標系上での距離LE、指令ブロック始点における平滑化量WS、指令ブロック終点における平滑化量WEを取得する。
次に、ステップS2では、指令ブロック始点と補間点との間のテーブル座標系上での距離LSと、指令ブロック始点におけるテーブル座標系上での平滑化量WSに基づいて、補間点が、指令ブロックの始点から、経路に沿って指令ブロック始点における平滑化量WSだけ進んだ位置(平滑化区間の終点)まで移動する間の機械座標系の合成方向距離を累積する。つまり、指令ブロック始点における平滑化量WSに相当する機械座標系上での合成方向距離の計算を行う。
具体的には、補間周期毎に、指令ブロック始点と補間点との間のテーブル座標系上での距離LSと、指令ブロック始点における平滑化量WSを比較し、指令ブロック始点と補間点との間のテーブル座標系上での距離LSが、指令ブロック始点における平滑化量WS以下である場合、補間点が平滑化区間に入っていると判断し、今回の補間による機械座標系上での合成方向距離を計算、累積することで、指令ブロック始点における平滑化区間を移動する際の機械座標系上での合成方向距離を計算する。そうでない場合、補間点が平滑化区間に入っていないと判断し、合成方向距離の計算、および、合成方向距離の累積を行わない。
なお、補間点が指令ブロック始点に一致せずに平滑化区間の中に入る場合、または、平滑化区間の終点に一致せずに平滑化区間の外に出る場合、指令ブロックの始点、または、平滑化区間の終点における機械座標系上の各駆動軸の機械位置を座標変換により算出し、補間点における各駆動軸の機械位置と、指令ブロックの始点、または、平滑化区間の終点における各駆動軸の機械位置から機械座標系上での合成方向距離を計算する。これにより、平滑化区間内の機械座標系上の合成方向距離を正確に計算することができる。
ステップS3では、ステップS2同様の処理を指令ブロック終点について行い、指令ブロック終点と補間点との間のテーブル座標系上での距離LEと、指令ブロック終点における平滑化量WEとに基づいて、補間点が、指令ブロック始点から指令ブロック始点からWEだけ経路に沿って進んだ点(平滑化区間の終点)まで移動する間の機械座標系の合成方向距離を計算する。つまり、指令ブロック終点における平滑化量WEに相当する機械座標系上での合成方向距離の計算を行う。
具体的には、指令ブロック終点と補間点との間のテーブル座標系上での距離LEと、指令ブロック終点における平滑化量WEとを比較し、指令ブロック終点と補間点との間のテーブル座標系上での距離LEが、指令ブロック終点における平滑化量WE以下である場合、補間点が平滑化区間に入っていると判断し、今回の補間による機械座標系での合成方向距離を計算、累積することで、指令ブロック終点における平滑化区間を移動する際の機械座標系上での合成方向距離を計算する。そうでない場合、平滑化区間に入っていないと判断し、合成方向距離の計算、および、累積を行わない。
なお、補間点が平滑化区間の始点に一致せずに平滑化区間の中に入る場合、または、指令ブロック終点に一致せずに平滑化区間の外に出る場合、指令ブロックの終点または、平滑化区間の始点における機械座標系上の各駆動軸の機械位置を座標変換により算出し、補間点における各駆動軸の機械位置と、平滑化区間の始点、または、指令ブロックの終点における各駆動軸の機械位置から機械座標系上での合成方向距離を計算する。これにより、平滑化区間内の機械座標系上の移動距離を正確に計算することができる。
なお、ここで計算する機械座標系上での合成方向距離は、座標変換部23の出力である補間周期毎の機械座標系上での各駆動軸の機械位置から合成方向距離を計算し、累積するものである。補間周期毎の機械座標系上での各軸(X軸、Y軸、Z軸、B軸、C軸)移動量をΔXM、ΔYM、ΔZM、ΔB、ΔCとすると、補間周期毎の合成方向の距離ΔLMは、以下の数式(4)で表される。なお、ΔXM、ΔYM、ΔZM、ΔB、ΔCは、前回補間周期の各駆動軸の機械位置と今回補間周期の各駆動軸の機械位置の差分により計算されるものである。
ΔLM=√(ΔXM^2+ΔYM^2+ΔZM^2+ΔB^2+ΔC^2) (4)
この数式(4)で計算されるΔLMを指令ブロック始点付近の平滑化区間、指令ブロック終点付近の平滑化区間それぞれの区間内の補間点に対して計算し、累積することで、補間点が平滑化区間を移動する間の機械座標系上での合成方向距離を計算し、修正後の平滑化量260として経路バッファ27に出力する。
この修正後の平滑化量260は、指令ブロックの継ぎ目を平滑化する区間を決定するために使用し、回転軸の軸移動量がゼロとなる指令ブロックでは、平滑化量4に一致し、回転軸の軸移動量がゼロでない指令ブロックでは、平滑化量4とは異なる値となる。
なお、指令ブロック始点における修正後の平滑化量260の数値をWS1、指令ブロック終点における修正後平滑化量260の数値をWE1で表すと、以下の数式(5)、(6)の関係となる。
WE1=Σ(指令ブロック終点における機械座標系上での合成方向距離) (5)
WS1=Σ(指令ブロック始点における機械座標系上での合成方向距離) (6)
修正後の平滑化WS1、WE1は、回転軸の移動量がゼロでない場合、WS1≠WS、WE1≠WEの関係となり、回転軸の移動量がゼロの場合、修正後の平滑化量WS1、WE1は、それぞれ平滑化量WS、WEに一致することとなる。
なお、上に示した数式(4)においては、並進軸の移動量と回転軸の移動量の2乗値を加算し平方根を計算することとしており、回転軸の回転角度1[deg]を1[mm]相当として扱うことで計算することができる。
また、平滑化量計算部26では、平滑化区間内を移動する際の機械座標系上の各駆動軸の移動量、および合成方向距離を計算する際に、補間周期毎の各駆動軸の機械位置から各駆動軸の移動距離、合成方向移動量を算出して累積することで計算したが、解析的に計算できる場合は、解析的に計算した結果を使ってもよい。また、補間周期よりも細かい時間周期での機械座標系上の機械位置を求め、工具の移動距離の近似誤差を小さくするようにしてもよい。
加減速処理部24は、機械座標系上での並進軸機械位置および回転軸角度230、すなわち各駆動軸(並進軸、および回転軸)の機械位置に対して補間前加減速を行い、加減速後の機械座標系上の合成方向速度240を出力する。すなわち、補間周期毎の機械座標系上での並進軸機械位置および回転軸角度230の変化量に基づき、加減速後の機械座標系上の合成方向速度を計算する。ここで、補間前加減速処理は、公知の技術でありその詳細については触れないものとする。
なお、補間前加減速では、指令ブロック継ぎ目の角度に応じて減速させて、指令ブロックの継ぎ目を通過するように減速速度を決定するものでもよい。
平滑化経路生成部25には、経路バッファ27から経路情報および平滑化量270が与えられる。経路情報および平滑化量270は、経路情報(機械座標系上での並進軸機械位置および回転軸角度、機械座標系上の合成方向移動量230)と修正後の平滑化量260を含む。平滑化経路生成部25は、加減速処理部24で計算された加減速後の速度である機械座標系上の合成方向速度240と、経路バッファ27に格納された経路情報と、に基づいて各軸への移動指令250を算出する。このとき、平滑化経路生成部25は、平滑化量計算部26にて計算された修正後の平滑化量260での平滑化を行う。
具体的には、図4の平滑化経路生成部25の処理を示すフローチャートに従い、以下の手順で経路の平滑化を行う。
まず、ステップS110では、加減速後速度である機械座標系上の合成方向速度240を用いて計算した補間点の位置と処理中の指令ブロック終点との間の機械座標系上での距離DEを計算するとともに、指令ブロック終点における修正後の平滑化量WE1を取得し、ステップS111に移行する。
なお、補間点の位置と処理中の指令ブロック終点との間の機械座標系上での距離DEは、経路バッファ27に保存された機械座標系上の合成方向移動量を補間点の位置から指令ブロック終点までの区間、累積することで計算することができる。
ステップS111では、補間点の位置と処理中の指令ブロック終点までの機械座標系上での距離DEと、指令ブロック終点における修正後の平滑化量WE1とを比較し、補間点の位置が平滑化区間内であるか否かを判定する。今回の補間点の位置が平滑化区間内であると判断した場合(ステップS111:Yes)は、ステップS112に移行し、今回の補間点の位置が平滑化区間内ではないと判断した場合(ステップS111:No)、ステップS120に移行する。
ステップS112では、今回の補間点と処理中の指令ブロック終点との間の機械座標系上での距離DEと、指令ブロック終点における修正後の平滑化量WE1と、次の指令ブロック始点における修正後の平滑化量WSとを用いて、後述の指令ブロック間の移動を滑らかに変化させることができる経路を生成し、処理を終了する。
また、ステップS120では、加減速後の速度である機械座標系上の合成方向速度240を用いて計算された補間点の位置と処理中の指令ブロック始点との間の機械座標系上での距離DSを計算するとともに、指令ブロック始点における修正後の平滑化量WS1を取得し、ステップS121に移行する。
なお、補間点の位置と処理中の指令ブロック始点との間の機械座標系上での距離DSは、経路バッファ27に保存された機械座標系上の合成方向移動量を補間点の位置から指令ブロック始点までの区間、累積することで計算することができる。
ステップS121では、補間点の位置と処理中の指令ブロック始点までの機械座標系上での距離DSと、指令ブロック始点における修正後の平滑化量WS1とを比較し、補間点の位置が平滑化区間内であるか否かを判定する。今回の補間点の位置が平滑化区間内であると判断した場合(ステップS121:Yes)は、ステップS122に移行し、補間点の位置が平滑化区間内ではないと判断した場合(ステップS121:No)は、処理を終了する。
ステップS122では、今回の補間点と処理中の指令ブロック始点との間の機械座標系上での距離DSと、指令ブロック始点における修正後の平滑化量WS1と、前の指令ブロック終点における修正後の平滑化量WE1とを用いて、後述の指令ブロック間の移動を滑らかに変化させることができる経路を生成し、処理を終了する。
以下に、指令ブロック間の移動を滑らかに変化させることができる経路生成方法の具体的な一例を示す。まず、指令ブロックの継ぎ目より前の経路をパラメータ表現し、P1(t1)とし、指令ブロックの継ぎ目より後の経路をパラメータ表現し、P2(t2)とする。ここで、P1、および、P2は、全ての駆動軸の位置を要素とする位置ベクトルとして表現したものであり、t1、t2に応じた位置を示す値となっている。
ここで、t1は、平滑化区間の始点(指令ブロック継ぎ目から経路に沿って機械座標系上での距離WE1だけ戻った位置)でt1=0、指令ブロック終点(指令ブロックの継ぎ目)でt1=1となる値であり、t2は、指令ブロック始点(指令ブロックの継ぎ目)でt2=0、平滑化区間の終点(指令ブロック継ぎ目から経路に沿って機械座標系上での距離WSだけ進んだ位置)でt2=1となる値である。さらに、各指令ブロックを平滑化した経路をQ(τ)として表す。ここでτは、前述の平滑化区間の始点でτ=0、平滑化区間の終点でτ=1となる、距離に連動するパラメータである。
このとき、平滑化した後の経路Q(τ)は、以下の数式(7)で計算される。
Q(τ)= P1(1−(1−τ)^2)+P2(τ^2)−P2(0) (7)
これにより、各指令ブロック間の移動を滑らかに変化する経路を生成することができる。
なお、τは、平滑化区間の始点でゼロとし、平滑化経路上の補間済み長さと平滑化区間全体の距離との比率に応じて0から1の間を変化する。つまり、補間点が指令ブロック終点の平滑化区間にある場合(図4のステップS111で平滑化区間内と判断した場合)は、τを以下の数式(8)で計算する。
τ=(WE1−DE)/(WE1+WS1) (8)
そして、補間点が指令ブロック始点の平滑化区間内にある場合(図4のステップS121で平滑化区間内と判断した場合)は、τを以下の数式(9)で計算する。
τ=(WE1+DS)/(WE1+WS1) (9)
また、数式(7)は、t1、t2をτの2次式としているが、P1(t1)の経路とP2(t2)の経路の間を徐々に変化するものであれば、その形態は問わず、τのN次式としてもよく、平滑化した後の経路Q(τ)を、以下の数式(10)のように計算してもよい。
Q(τ)= P1(1−(1−τ)^N)+P2(τ^N)−P2(0) (10)
以降、加工プログラムを例に、従来の制御方法における動作を説明した後、本実施の形態における動作を具体的に説明する。
例えば、加工プログラムが、以下のように記載されていたとする。このときの工具102の動作を図5に示す。
O100
N1 G54 G90 G43
N2 G0 X0.Y0.Z0.B0.C0.;
N3 G43.4;
N10 G1 X60.F3000;
N11 Y−60.;
・・・
N50 G49
上記加工プログラム1の1行目の「O100」は、「Oアドレス」に続く数字により、プログラム番号を示すものであり、プログラム100番を示している。上記プログラムを以下では、加工プログラム100番と呼ぶことにする。
加工プログラム100番のシーケンス番号「N1」では、「G54」では座標系原点位置を指定し、「G90」で指令された座標値がワーク座標系の絶対位置であることを示している。また、「G43」で工具長の補正を行う制御モードとすることで、工具の長さ分の補正を行い、プログラムに記載された位置に工具先端を移動する制御モードに切り換えている。
なお、工具長をHとし、加工プログラムでワーク座標系上の点(X,Y,Z)=(0,0,0)の位置に移動するよう指令した場合、制御点は、工具の長さ分だけ補正され、ワーク座標系上の点(X,Y,Z)=(0,0,H)の位置に位置決めされることになる。以降では、工具先端点の位置を(X,Y,Z)とし、制御点の機械位置を(XM,YM,ZM)として表現する。
次に、加工プログラム100番の「N2」では、「G0」で現在の位置、現在の回転軸角度から、ワーク座標系上の点(X,Y,Z)=(0,0,0)の位置に工具先端点が移動し、各軸の最大速度での移動を行う。
次に、加工プログラム100番の「N3」では、「G43.4」で先端点制御を有効とし、シーケンス番号「N50」の「G49」で先端点制御を無効とするまで先端点制御を有効状態としており、テーブル101の回転に連動した座標系(テーブル座標系)に対して工具102の先端点をX,Y,Zで指令し、工具姿勢を回転軸角度B,Cで指令することが可能となる。なお、「G43.4」では、「G54」で指定したワーク座標系をテーブル101に固定し、テーブル回転に連動する座標系としてテーブル座標系を設定する。
そして、加工プログラム100番の「N10」ブロックでは、「N2」で位置決めした位置から、テーブル座標系(X,Y,Z)=(60,0,0)まで速度3000mm/minで移動する指令を行う。つまり、工具先端点がテーブル座標系(X,Y,Z)=(0,0,0)の位置から(X,Y,Z)=(60,0,0)の位置に移動し、制御点は、(XM,YM,ZM)=(0,0,H)の位置から(XM,YM,ZM)=(60,0,H)の位置に移動を行う。
加工プログラム100番の「N11」ブロックでは、「N10」の終点からテーブル座標系(X,Y,Z)=(60,−60,0)の位置に工具先端を移動する指令を行っており、制御点は、(XM,YM,ZM)=(60,−60,H)の位置に移動する(図5)。
このとき、「N10」ブロックの移動と「N11」ブロックの移動での合成方向距離を考えると、各指令ブロックの移動は、1軸のみの移動であるため、X方向、または、Y方向の移動距離が合成方向距離に一致する。
このため、指令ブロック終点における平滑化量WEを10mmとすると、修正後の平滑化量WE1も10mmとなり、「N10」ブロックでは、指令ブロックの継ぎ目からX方向に10mm分が平滑化の区間となる。また、指令ブロック始点における平滑化量もWS=10mmとすると、修正後の平滑化量WS1も10mmとなり、「N11」ブロックでは、指令ブロックの継ぎ目からY方向に10mm分が平滑化の区間となる。
つまり、工具102の先端点が、「N10」ブロック上の、(X,Y,Z)=(50,0,0)の位置から(X,Y,Z)=(60,0,0)の位置までの経路と、「N11」ブロック上の、(X,Y,Z)=(60,0,0)の位置から(X,Y,Z)=(60,−10,0)の位置までの経路が平滑化の対象区間となる(図5)。
加工プログラム100番のように、並進軸のみ動く場合は、「N10」ブロックの終点位置を中心とした、前後10mmの区間が平滑化対象区間となり、平滑化区間は対称となる。
次に、加工プログラム100番から、「N20」ブロックと「N21」ブロックを変更した、以下に示すような加工プログラム(以下では、加工プログラム200番と呼ぶ)を用いて、工具根元の回転軸のような傾斜軸の移動量がゼロでない場合について説明する。このときの工具102の動作を図6に示す。
O200
N1 G54 G90 G43
N2 G0 X0.Y0.Z0.B0.C0.;
N3 G43.4;
N20 G1 X60.F3000;
N21 Y−60.B30.;
・・・
N50 G49
この加工プログラム200番では、「N1」から「N3」までは、加工プログラム100番と同じ処理を行っており、「N20」は、加工プログラム100番の「N10」と同じ指令となっている。また、「N21」ブロックの動作が加工プログラム100番の「N11」と異なっており、Y軸方向に工具先端点を−60mm移動するとともに、指令ブロック終点のB軸角度が30度となる工具姿勢に位置決めするよう指令がなされている。
このとき、加工プログラム200番の「N21」ブロックの移動における合成方向距離は、B軸が回転する分だけ、「N11」ブロックの合成方向移動量とは異なる値となり、B軸の回転に連動して、X軸、Z軸の位置を補正することで工具先端位置をプログラムで記載された位置になるよう制御を行っている。
具体的には、「N21」ブロックでは、工具先端点がテーブル座標系上を「N20」ブロック終点での位置からY軸は−60mm、B軸は30度動くので、機械座標系上での各駆動軸の機械位置は、図9の関係より(XM,YM,ZM,B,C)=(60,0,H,0,0)の位置から(XM,YM,ZM,B,C)=(60+H×SIN(θB),−60,H×COS(θB),30,0)の位置に移動する。なお、θBは、B軸角度を弧度法表現したものであり、単位はラジアンとなっている。この場合、30度のラジアンでの値がθBになっている。
次に、「N21」ブロック内での機械座標系上での移動量は、指令ブロック始点から終点までの距離として計算でき、(ΔXM,ΔYM,ΔZM,ΔB,ΔC)=(H×SIN(θB),−60,H×COS(θB)−H,30,0)となる。
ただし、工具先端の経路を制御しながら回転軸を変化させる場合、合成方向移動量は、(ΔXM,ΔYM,ΔZM,ΔB,ΔC)を数式(4)に代入することで計算される値と異なる値となる。「N21」ブロックの動作では、テーブル座標系上の合成方向移動量LTを解析的に計算することができ、以下の数式(11)となる。
LT=√(ΔY^2+ΔB^2+(H×θB)^2) (11)
数式(11)では、右辺第一項がY軸移動量、第二項が回転軸(B軸)移動量、第3項が回転軸の移動に伴う並進軸位置の補正量を示すものとなっている。工具長をH=100mm、ΔB=30度とすると、テーブル座標系上の合成方向移動量はLT≒85.10mmとなる。ただし、回転角度は1度=1mm相当とみなした場合の距離である。
なお、「N21」ブロックの始点における平滑量WSを10mmとする場合、X軸、Y軸、Z軸、B軸、C軸の移動量(ΔXMW,ΔYMW,ΔZMW,ΔBMW,ΔCMW)は、
ΔXMW=(WS/LT)×H×SIN(ΔθBMW)=0.72mm
ΔYMW=(WS/LT)×(−60)≒−7.05mm
ΔZMW=(WS/LT)×(H×COS(ΔθBMW)−H)≒−0.02mm
ΔBMW=(WS/LT)×ΔB≒3.53度
ΔCMW=(WS/LT)×0=0度
となり、工具先端は、Y軸方向−7.05mm分が平滑化区間となり、加工プログラム100番でのY軸方向移動量−10mmとは異なる距離になっていることが分かる。
これに対して、「N20」ブロックでは回転軸の移動がないため、「N20」ブロック終点における平滑化量WE1は10mmとなり、ブロック継ぎ目前後の平滑化区間に違いが現れる。この平滑化区間の違いは、経路の違い、ひいては、加工面に傷として現れるため、問題となっている(図7参照)。なお、ΔθBMWは、ΔBMWを弧度法表現したものであり、単位はラジアンとなっている。
以上より、従来の制御方法では、テーブル座標系上での合成方向距離が一致するように経路の平滑化を行った場合であっても、同時5軸制御のように回転軸の移動量を含む場合の移動では、工具先端経路のテーブル座標系上での平滑化区間が指令ブロック前後で異なる長さとなる場合があることが分かる。
このため、本実施の形態においては、テーブル座標系XYZの移動量と回転軸の移動量、機械座標系でのXYZの移動量に基づき、指令ブロック前後の平滑化量を決定するものである。以下、加工プログラム200番に、本実施の形態の数値制御装置2の制御方法を適用した場合を例に説明を行う。
本実施の形態にかかる数値制御装置2では、平滑化量計算部26にて、補間処理部22の出力であるテーブル座標系上での並進軸位置および回転軸角度220と、平滑化量4、および、機械座標系上での並進軸機械位置および回転軸角度230に基づいて、指令ブロック内における修正後の平滑化量260の計算を行う。平滑化量Wを10mmとする場合、プログラム200番の「N21」ブロックの始点における平滑化量WSは、Wに一致し、平滑化区間は、(X,Y,Z,B,C)=(60,0,0,0,0)から、(X,Y,Z,B,C)=(60,−10,0,5,0)までの区間となり、工具先端の移動量は、(ΔXW,ΔYW,ΔZW,ΔBW,ΔCW)=(0,−10,0,5,0)となる。
このとき、テーブル座標系上の「N21」ブロックの平滑化区間を移動する際の機械座標系上の合成方向距離LMWは、以下の数式(12)により解析的に計算することができる。
LMW=√(ΔYW^2+ΔBW^2+(H×θBW)^2)≒14.18 (12)
そして、このLMWを「N21」ブロックにおける修正後の平滑化量WS1として設定する。
なお、指令ブロック始点における修正後の平滑化量WS1を、14.18mmとした場合、機械座標系上での各駆動軸(X軸、Y軸、Z軸、B軸、C軸)の移動量(ΔXMW,ΔYMW,ΔZMW,ΔBMW,ΔCMW)は、
ΔXMW=(WS1/LC)×(H×SIN(θBMW))=1.45mm
ΔYMW=(WS1/LC)×(−60)≒−10mm
ΔZMW=(WS1/LC)×(H×COS(θBMW)−H)≒−0.06mm
ΔBMW=(WS1/LC)×ΔB≒5度
ΔCMW=(WS1/LC)×0=0度
となり、平滑化区間における工具先端のY軸方向移動量を−10mmに一致させることが可能となる。これより、平滑化区間、回転軸が同時に移動する場合でも、工具先端の平滑化量を所定の値に一致させることが可能となる。
なお、本実施の形態では、工具回転に伴う機械の移動経路が解析的に計算することができたため、解析的に計算する方法での説明を行ったが、解析的に計算ができない場合、または、解析的に計算するための計算負荷が重いなどの場合には、座標変換部で計算される補間点毎の各駆動軸の機械位置の変化量に基づいて、機械座標系上での合成方向移動量を近似計算すればよい。
以上より、工具先端点制御、補間前加減速が有効となる状態であっても、工具が回転する場合に平滑化量を修正することで、工具先端経路の平滑化量を指令ブロック前後で一致させる(対称にする)ことができ、平滑化経路のばらつきを抑えることが可能となる。
これにより、平滑化した後の経路が異なることで生じていた加工面に筋ができるなどの傷の発生を回避できるので、加工品位の向上が可能となる。
実施の形態2.
次に、実施の形態2にかかる数値制御装置2について説明する。なお、実施の形態2にかかる数値制御装置2の構成は、実施の形態1と同様に図1に示される。また、その構成要素内の動作も同様であるが、本実施の形態において実行する加工プログラムが実施の形態1とは異なるものとなっている。以下では、実施の形態1と異なる部分を中心に説明する。
実施の形態1では、工具の根元の回転軸の移動量がゼロでない場合、すなわち工具回転軸が移動するケースの適用方法について示し、機械座標系の合成方向移動量が解析的に計算できる場合の適用例を示した。これに対し、本実施の形態2では、機械座標系の合成方向移動量が解析的に計算できない場合の適用例を示すものであり、テーブル側の回転軸の移動を伴う場合を例としてその適用方法について示す。
本実施の形態にかかる加工プログラムは、並進軸の移動のみで構成された加工プログラムであり、以下の加工プログラム300番である。
O300
N1 G54 G90 G43
N2 G0 X0.Y0.Z0.B0.C0.;
N3 G43.4;
N30 G1 Y60.F3000;
N31 X−60.;
・・・
N50 G49
この加工プログラム300番では、「N1」から「N3」までは、加工プログラム100番および200番と同じ処理を行っており、「N30」、「N31」が異なっている。
加工プログラム300番の「N30」ブロックでは、N2で位置決めした位置から、テーブル座標系(X,Y,Z)=(0,60,0)まで速度3000mm/minで移動する指令を行う。つまり、工具先端点がテーブル座標系(X,Y,Z)=(0,0,0)の位置から(X,Y,Z)=(0,60,0)の位置に移動し、制御点は、(XM,YM,ZM)=(0,0,H)の位置から(XM,YM,ZM)=(0,60,H)の位置に移動を行う。
次に、加工プログラム300番の「N31」ブロックでは、「N30」の終点からテーブル座標系(X,Y,Z)=(−60,60,0)の位置に工具先端を移動する指令を行っており、制御点は、(XM,YM,ZM)=(−60,60,H)の位置に移動する。
このとき、「N30」ブロックの移動と「N31」ブロックの移動での合成方向距離を考えると、各指令ブロックの移動は、1軸のみの移動であるため、Y方向、または、X方向の移動距離が合成方向距離に一致する。このため、平滑化量Wを10mmとした場合、「N30」ブロックの終点位置を中心として、経路に沿って前後10mmの区間が平滑化対象区間となり、平滑化区間を対称にすることができる。
次に、加工プログラム300番から、「N30」ブロックと「N31」ブロックを変更した、以下に示すような加工プログラム(以下では、加工プログラム400番と呼ぶ)を用いて、テーブル回転軸の移動量がゼロでない場合について説明する。このときの動作を図8に示す。
O400
N1 G54 G90 G43
N2 G0 X0.Y0.Z0.B0.C0.;
N3 G43.4;
N40 G1 Y60.F3000;
N41 X−60.C180.;
・・・
N50 G49
この加工プログラム400番では、「N1」から「N3」までは、加工プログラム100番、200番、および300番と同じ処理を行っており、「N40」は、プログラム300番の「N30」と同じ指令となっている。また、「N41」ブロックの動作が加工プログラム300番の「N31」と異なっており、プログラムで指令した座標がテーブルの回転に連動する座標系(テーブル座標系)上の位置を指定する場合、「N41」ブロックは、テーブル回転軸の回転角度(C軸角度)が0度から180度にまで変化する間に、テーブル座標系上をX軸方向に−60mm移動するよう指令がなされている。このとき、「N41」ブロックの移動における合成方向距離は、C軸の回転に伴い、「N31」ブロックの合成方向移動量とは異なる値となる。
なお、本実施の形態でのテーブル回転軸のような旋回軸の移動を伴う場合、工具先端がテーブル座標系上を直線状に動く場合でも、一般に、座標変換後の経路は解析的に計算することができない。このため、平滑化量計算部26では、補間点毎に座標変換を行い、計算した機械座標系上における各駆動軸の機械位置の変化量に基づいて、機械座標系での合成方向移動量、および、その累積値を計算する。
例えば、補間周期を1ms、送り速度を3000mm/minとすると、補間周期あたりの送り速度は、
Fdt=3000/60×0.001=0.05mm
となる。つまり、テーブル座標系上の経路を0.05mm間隔で補間することとなる。
また、「N41」ブロックの始点位置PSは、(X,Y,Z)=(0,60,0)であり、指令ブロックの始点PEは、(X,Y,Z)=(−60,60,0)であるため、指令ブロック始点から1補間周期だけ進んだ時刻(n=1)の補間点Pは、数式(1)より、
P(1)=[−1,0,0 ]×n×Fdt+[0,60,0 ]
=[−0.05,60,0]
となる。
そして、指令ブロック始点、および終点における回転軸の角度RS=0、RE=180を用いて、数式(3)により、
R=(180)×(0.05/60)+0
=0.15
となる。
これより、指令ブロック始点から1補間周期だけ進んだ時刻では、(XT1,YT1,ZT1,B1,C1)=(−0.05,60,0,0,0.15)の点が補間されることになる。ここで、(XT1,YT1,ZT1)は、n=1におけるテーブル座標系上の工具先端の補間点位置を示し、(B1,C1)は、n=1におけるB軸、C軸の回転軸角度である。
テーブル回転中心位置を(XC,YC,ZC)=(0,0,0)の位置とし、テーブル座標系上の補間点を座標変換すると、n=1における機械座標系上での機械位置(XM1,YM1,ZM1)は、
XM1=XT1×COS(−θC1)−YT1×SIN(−θC1)≒ 0.1071
YM1=XT1×SIN(−θC1)+YT1×COS(−θC1)≒59.9999
ZM1=ZT1=0
となる。なお、θC1は、C軸角度を弧度法表現したものであり、単位はラジアンとなっている。これより、前回補間点である指令ブロック始点の位置からの差分を計算することで、今回の補間による機械座標系上での各駆動軸移動距離(ΔXM,ΔYM,ΔZM,ΔB,ΔC)=(0.1071,−0.0001,0,0,0.15)が求まる。
機械座標系上での合成方向移動量は、数式(4)を用いて計算することができ、時刻n=1における補間による合成方向移動距離はΔLM≒0.0340となる。
以降、補間点が指令ブロック終点に到達するまで時刻nを増加し、上記手順と同様の手順により、合成方向移動量を求め、平滑化区間内を移動する間、累積し、累積が終了した時点での値を修正後の平滑化量WS1として経路バッファ27に設定する。
以上より、実施の形態2のように、並進軸の移動に加え、テーブル座標系の移動も行う場合に本方式を適用することで、平滑化経路のばらつきを抑えることが可能となる。これにより、平滑化した後の経路が異なることで生じていた加工面の傷の発生を回避できるので、加工品位の向上が可能となる。
さらに、本願発明は上記実施の形態に限定されるものではなく、実施段階ではその要旨を逸脱しない区間で種々に変形することが可能である。また、上記実施の形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出されうる。例えば、上記実施の形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出されうる。更に、異なる実施の形態にわたる構成要素を適宜組み合わせてもよい。