以下に、本発明にかかる数値制御装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
被加工物を基準とした工具姿勢を変更可能な回転自由度を有する工作機械には、直線軸3軸と回転軸2軸を有する5軸工作機械を例示することができる。
実施の形態.
図1は、本発明にかかる数値制御装置により制御される5軸工作機械の一例を示す図である。図1に示す5軸工作機械では、互いに直交するX軸、Y軸、Z軸方向に工具2が駆動され、さらに、Y軸周りの回転軸Bにより工具2が回転し、Z軸周りの回転軸Cによりテーブル1が回転することにより、テーブル1に固定された被加工物3が加工される。このように、テーブル側に回転軸1軸を有し、工具側に回転軸1軸を有する機械を混合型の5軸工作機械と呼ぶ。
なお、5軸工作機械は図1に例示するもの以外にもテーブルチルト型または工具チルト型と呼ばれるものがある。テーブルチルト型はテーブル側に回転軸2軸を有し、工具チルト型は工具側に回転軸2軸を有し、X軸方向の回転軸はA軸と呼ばれ、Y軸方向の回転軸はB軸と呼ばれ、Z軸方向の回転軸はC軸と呼ばれる。このように、5軸工作機械にはさまざまなタイプが存在する。本実施の形態では、図1に示す混合型の回転軸B軸及びC軸を有する工作機械を例示して説明するが、これに限定されず、本発明は、その他のタイプの工作機械を含む。
図2は、本発明にかかる数値制御装置の実施の形態の構成の一例を示すブロック図である。図2に示す数値制御装置100は、回転自由度を有する工作機械を制御する。図2に示す数値制御装置100は、加工プログラム読み取り部11、第1機械経路計算部12、圧縮可否判定部13、圧縮処理部14、補間処理部15及び第2機械経路計算部16を備える。加工プログラム読み取り部11には加工プログラム10が記憶され、または加工プログラム10が入力される。
加工プログラム読み取り部11は、加工プログラム10により指令された工具先端の指令経路、工具姿勢を決定するための回転軸移動指令及び加工情報を1経路ずつ読み取り、第1機械経路計算部12及び圧縮可否判定部13へ出力する。ここで、加工情報とは、補間に必要な動作を示す情報であり、具体的には、被加工物への工具の送り速度指令及び機械の動作を指令するためのGコード指令及びMコード指令を含む。
第1機械経路計算部12は、加工プログラム読み取り部11から出力された指令経路及び回転軸移動指令を用いて座標変換の近似式により第1の機械経路を算出し、圧縮可否判定部13に出力する。
圧縮可否判定部13は、加工プログラム読み取り部11から出力された加工情報及び第1機械経路計算部12より出力された第1の機械経路に基づいて圧縮の可否を判定する。
圧縮可否判定部13により圧縮可能と判定された場合には、圧縮処理部14は、加工プログラム読み取り部11から圧縮可否判定部13を経由して出力された連続した複数の指令経路及び複数の回転軸移動指令の始点と終点とを結ぶ新たな1つの圧縮後指令経路及び圧縮後回転軸移動指令を作成する。その後、再度、加工プログラム読み取り部11に戻り、次の指令経路、回転軸移動指令及び加工情報が読み取られる。
圧縮可否判定部13により圧縮不可と判定された場合には、補間処理部15は、圧縮後指令経路及び圧縮後回転軸移動指令を指令送り速度で補間周期毎に補間し、被加工物への工具先端の移動経路及び回転軸角度を出力する。ここで、指令送り速度は、加工プログラム読み取り部11から圧縮可否判定部13を経由して出力された加工情報に含まれる送り速度指令とする。また、指令送り速度は、工作機械の各軸を駆動するサーボモータに加わる加速度が許容値以内になるように第1の機械経路に基づいて計算したクランプ速度と送り速度指令とのうち小さいほうを採用してもよい。
第2機械経路計算部16は、補間処理部15から出力された補間周期毎の被加工物への工具先端の移動経路及び回転軸角度を用いて座標変換を行い、第2の機械経路を算出し、図示しない加減速処理部及びサーボ制御装置へ出力することで、図示しない各軸のサーボモータを駆動させることができる。
次に、数値制御装置100の動作について説明する。まず、加工プログラム読み取り部11、第1機械経路計算部12、圧縮可否判定部13及び圧縮処理部14の動作について説明する。最初に、圧縮処理部14から出力される圧縮後指令経路及び圧縮後回転軸移動指令の作成手順について説明する。
図3は、圧縮後指令経路及び圧縮後回転軸移動指令の作成処理を示すフローチャートである。なお、加工プログラム10により指令されたi番目の指令経路をN(i)とし、回転軸移動指令をT(i)とし、N(i),T(i)に対応する機械経路をM(i)とする。また、複数の指令経路及び回転軸移動指令N(i),T(i)を圧縮したj番目の圧縮後指令経路をN’(j)とし、圧縮後回転軸移動指令をT’(j)とし、N’(j),T’(j)に対応する圧縮後機械経路をM’(j)とする。
図4は、N(i)とN’(j)との関係及びT(i)とT’(j)との関係の一例を示す図である。なお、図4において、工具姿勢を決定する回転軸移動指令T(i)及び圧縮後回転軸移動指令T’(j)は終点の工具姿勢のみを示しているが、始点の工具姿勢は1つ前の経路の終点の姿勢と等しい。すなわち、i番目の経路の始点における工具姿勢はi−1番目の終点における工具姿勢T(i−1)と等しく、j番目の圧縮経路の始点における工具姿勢はj−1番目の終点における工具姿勢T’(j−1)と等しい。
図3において、まず、処理をスタートし、加工プログラム読み取り部11が、加工プログラム10の実行が初回か否かを判定する(S1)。加工プログラム10の実行が初回である場合、すなわち、S1においてYesに分岐する場合には、指令経路N(i)及び回転軸移動指令T(i)の指令経路番号iを0とし、圧縮後指令経路N’(j)及び圧縮後回転軸移動指令T’(j)の圧縮後経路番号jを1として初期化する(S2)。
S2において初期化を行った後、または加工プログラム10の実行が初回でない場合、すなわち、S1においてNoに分岐する場合には、加工プログラム読み取り部11は、指令経路番号iをインクリメントする(S3)。
加工プログラム読み取り部11は、S3において指令経路番号iをインクリメントした後、加工プログラム10から指令された工具先端の指令経路N(i)及び工具姿勢を決定する回転軸移動指令T(i)を読み取る(S4)。
指令経路N(i)及び回転軸移動指令T(i)の読み取り後、第1機械経路計算部12は、工具先端の指令経路N(i)及び回転軸移動指令T(i)を座標変換の近似式にて第1の機械経路M(i)に変換する近似計算を行い、第1の機械経路M(i)を指令毎に保存する(S5)。ここで、工具先端の指令経路N(i)は工具先端の直線軸3軸の経路であり、回転軸移動指令T(i)は工具姿勢を決定する回転軸への指令であるが、第1の機械経路M(i)は直線軸及び回転軸を駆動するサーボモータへの指令である。
その後、圧縮可否判定部13は、j番目の圧縮経路である圧縮後指令経路N’(j)及び圧縮後回転軸移動指令T’(j)の圧縮処理が初回か否か、すなわち、圧縮後指令経路N’(j)及び圧縮後回転軸移動指令T’(j)に含まれる指令経路N(i)及び回転軸移動指令T(i)が1つであるか否かを判定する(S6)。
圧縮処理が初回である場合、すなわち、S6においてYesに分岐する場合には、圧縮可否判定部13は、圧縮後指令経路N’(j)の始点を指令経路N(i)の始点で初期化し、圧縮後回転軸移動指令T’(j)の始点を回転軸移動指令T(i)の始点で初期化し、圧縮後機械経路M’(j)の始点を機械経路M(i)の始点で初期化する(S7)。
その後、圧縮可否判定部13は、圧縮後指令経路N’(j)の終点に指令経路N(i)の終点を設定し、圧縮後回転軸移動指令T’(j)の終点に回転軸移動指令T(i)の終点を設定し、圧縮後機械経路M’(j)の終点に機械経路M(i)の終点を設定する(S9)。そして、設定後にはS3に戻る。
ここまでの処理で圧縮後指令経路N’(j)、圧縮後回転軸移動指令T’(j)及び圧縮後機械経路M’(j)が作成される。なお、S6の判定において、j番目の圧縮経路である圧縮後指令経路N’(j)及び圧縮後回転軸移動指令T’(j)の圧縮処理が初回であると判定された場合、すなわち、S6においてYesに分岐する場合には、圧縮後指令経路N’(j)と指令経路N(i)は等しく、圧縮後回転軸移動指令T’(j)と回転軸移動指令T(i)も等しく、また、圧縮後機械経路M’(j)と機械経路M(i)も等しい。
加工プログラム読み取り部11は、S9を経た後のS3においても指令経路番号iをインクリメントし(S3)、加工プログラム10から指令された指令経路N(i)及び回転軸移動指令T(i)を読み取る(S4)。すなわち、加工プログラム読み取り部11は、前回のS4で読み取った指令経路及び回転軸移動指令の次の指令経路及び回転軸移動指令を読み取る。その後、第1機械経路計算部12は、今回のS4で読み取った指令経路N(i)及び回転軸移動指令T(i)を座標変換の近似式にて算出して第1の機械経路M(i)に変換し、保存する(S5)。その後、圧縮可否判定部13は、j番目の圧縮経路である圧縮後指令経路N’(j)及び圧縮後回転軸移動指令T’(j)の圧縮処理が初回であるか否か、すなわち、圧縮後指令経路N’(j)及び圧縮後回転軸移動指令T’(j)に含まれる指令経路N(i)及び回転軸移動指令T(i)が1つであるか否かを再び判定する(S6)。ここでは既に前回の指令経路N(i−1)及び回転軸移動指令T(i−1)の圧縮処理を行っているため、Noに分岐する。
その後、圧縮可否判定部13は、j番目の圧縮経路である圧縮後指令経路N’(j)及び圧縮後回転軸移動指令T’(j)と、i番目の指令である指令経路N(i)及び回転軸移動指令T(i)とが圧縮可能か否かを判定する(S8)。圧縮可能である場合、すなわちS8においてYesに分岐する場合には、圧縮後指令経路N’(j)の終点を指令経路N(i)の終点で更新し、圧縮後回転軸移動指令T’(j)の終点を回転軸移動指令T(i)の終点で更新し、また、圧縮後機械経路M’(j)の終点を機械経路M(i)の終点で更新する(S9)。そして、その後、S9以降の処理を繰り返すことで、複数の指令経路及び複数の回転軸移動指令を圧縮した圧縮後指令経路、圧縮後回転軸移動指令及び圧縮後機械経路が作成される。
一方で、圧縮不可と判定された場合、すなわちS8においてNoに分岐する場合には、圧縮可否判定部13が指令経路番号iをデクリメントし、圧縮後経路番号jをインクリメントして圧縮処理を終了する(S10)。
なお、本実施の形態では、指令経路番号iをデクリメントすることで、圧縮不可と判定されたi番目の指令は一旦破棄され、次回圧縮処理でS4にて再度i番目の指令を読み込むようにしているが、圧縮不可と判定されたi番目の指令も保存しておき、次回圧縮処理のS4では加工プログラム10からi番目の指令を読み込むのではなく、保存したi番目の指令を使用するように設定してもよい。
ここで、S5において第1機械経路計算部12が行う第1の機械経路M(i)の近似計算方法について述べる。加工プログラム10により指令された工具先端の指令経路N(i)及び回転軸移動指令T(i)から第1の機械経路M(i)への座標変換には三角関数及び逆三角関数の計算が必要となる。しかしながら、三角関数及び逆三角関数の計算では処理負荷が重く、計算に処理時間がかかる。そのため、S5の第1の機械経路M(i)の計算では、三角関数及び逆三角関数を使用することなく、近似式によって第1の機械経路M(i)を計算する。なお、第1の機械経路M(i)は、S8において圧縮可否判定部13が行う圧縮可否判定に使用し、補間処理部15では使用しない。
回転軸移動指令T(i)を工具方向ベクトルで指令した場合について説明する。図5は、工具方向ベクトル指令を示す図である。まず、図5に示すように、回転軸移動指令T(i)が工具方向ベクトル(Ii,Ji,Ki)で指令された場合について説明する。ここで、工具方向ベクトルは単位ベクトルとする。
回転軸移動指令T(i)が工具方向ベクトルで指令された場合には、まず、工具姿勢が指令された工具方向ベクトルとなる回転軸の角度を近似計算する。
圧縮後回転軸移動指令T’(j)の始点における工具ベクトル、すなわち圧縮後回転軸移動指令T’(j−1)の工具方向ベクトルを(Ij−1,Jj−1,Kj−1)とし、このときのB軸角度をbj−1、C軸角度をcj−1とする。工具側にB軸回転軸があり、テーブル側にC軸回転軸がある機械構成の場合には、工具方向ベクトルと回転軸角度の関係は以下の式(1)〜(3)で表される。
同様に、i番目の回転軸移動指令T(i)の工具ベクトルを(Ii,Ji,Ki)とし、そのときのB軸角度をbj=bj−1+Δbとし、C軸角度をcj=cj−1+Δcとすると、下記の式(4)〜(6)が成り立つ。
ここで、sin(bj−1)またはsin(bj−1+Δb)が0の点は特異点と呼ばれ、C軸角度が任意となる。特異点付近では工具方向の変化は小さくてもC軸が大きく移動することがあるため、本実施の形態では特異点から予めパラメータで設定された範囲内の工具方向ベクトルが指令された場合には、その時点で圧縮不可と判定するものとする。以降では特異点でない場合について説明する。
式(1)〜(3)を式変換すると、圧縮後回転軸移動指令T’(j)の始点での各回転軸角度での三角関数は、下記の式(7)〜(10)で表される。
また、式(4),(5)から以下の式(11)が導出される。
Δb及びΔcが無視できるほどに十分に小さいとすると、式(6),(11)を式展開して下記の式(12),(13)を導くことができる。なお、Δb及びΔcが大きい場合には、例えば、予めパラメータで設定された工作機械の回転軸最高送り速度の補間周期あたりの移動量よりもΔb及びΔcの合成移動量が大きい場合には圧縮不可であると判定してもよい。
式(12),(13)に式(7)〜(10)を代入すると、下記の式(14),(15)が得られる。
圧縮後回転軸移動指令T’(j)の始点でのB軸角度bj−1及びC軸角度cj−1は前回の圧縮処理で計算済みのため、i番目の回転軸移動指令T(i)が指令されたときのbi,ciは下記の式(16),(17)で算出することができる。
式(16),(17)で表されるbi、ciが回転軸の第1の機械経路M(i)となる。
次に、工具先端の指令経路N(i)に直線軸の位置(Xti,Yti,Zti)が指令されたときの直線軸X軸,Y軸,Z軸の機械経路M(i)を近似計算する。
図6は、機械経路を計算するための座標系を示す図である。本実施の形態では、図6に示す座標系にて説明を行う。すなわち、予め設定されている機械座標系ΣMからベクトルW1(Xw1,Yw1,Zw1)だけオフセットした場所にC軸の回転中心Coが存在し、回転中心CoからベクトルW2(Xw2,Yw2,Zw2)だけオフセットした場所にワーク座標系ΣWが設定されている場合を想定している。ここで、ベクトルW1,W2は、予めパラメータで設定されている値である。なお、ワーク座標系ΣWは空間に固定された座標系とし、C軸が回転してもワーク座標系ΣWは回転しないものとする。一方、テーブル1に固定され、C軸の回転に連動して回転する座標系をC軸連動座標系ΣW*とする。また、加工プログラム10により指令された指令経路N(i)はC軸連動座標系ΣW*で工具先端点Tpの経路を指令しているものとし、工具先端点Tpから制御点Pまでの距離を工具長Hとする。
C軸連動座標系ΣW*で指令された工具先端点をTpw(Xtwi,Ytwi,Ztw i)とすると、機械座標系ΣMでの工具先端点位置Tpm(Xtmi,Ytmi,Ztm i)は下記の式(18)〜(20)で表される。
ここで、式(7)〜(10)の「j−1」を「i」に置き換えると、i番目の回転軸移動指令T(i)が指令されたときのbi,ciの三角関数は、下記の式(21)〜(24)で表すことができる。
式(23),(24)を式(18)〜(20)に代入すると、下記の式(25)〜(27)が得られる。
式(25)〜(27)で表される機械座標系ΣMにおける工具先端点位置Tpm(Xtmi,Ytmi,Ztmi)に工具先端点Tpが移動するためには、制御点P(Xmi,Ymi,Zmi)を以下の式(28)〜(30)で表される位置に移動する必要がある。
さらに、式(21),(22)を式(28)〜(30)に代入すると、下記の式(31)〜(33)が得られる。
式(31)〜(33)で表されるXmi、Ymi、Zmiが、直線軸の第1の機械経路M(i)となる。ここで、回転軸の第1の機械経路M(i)を導出する式(14)〜(17)、直線軸の第1の機械経路M(i)を導出する式(25)〜(27)及び式(31)〜(33)から明らかなように、回転軸及び直線軸の第1の機械経路M(i)の計算には三角関数及び逆三角関数を用いることなく、S5において第1機械経路計算部12が指令毎に√(1−(Ki)2)を計算し、S10において圧縮可否判定部13が圧縮後経路毎に√(1−(Kj)2)を計算し、計算結果を保存しておくことで、回転軸及び直線軸の第1の機械経路M(i)を計算することができる。
なお、直線軸の第1の機械経路M(i)を導出する式(25)〜(27)及び式(31)〜(33)では、加工プログラム10により指令された指令経路N(i)がC軸の回転に連動して回転する座標系をC軸連動座標系ΣW*で指令された場合について説明したが、指令経路N(i)をC軸に連動して回転しないワーク座標系ΣWで指令してもよい。ワーク座標系ΣWで指令した場合には、式(25)〜(27)に代えて下記の式(34)〜(36)を用いてワーク座標系ΣWで指令された工具先端点Tpw(Xtwi,Ytwi,Ztwi)を機械座標系ΣMでの工具先端点位置Tpm(Xtmi,Ytmi,Ztm i)に座標変換し、式(31)〜(33)により直線軸の第1の機械経路M(i)を導出すればよい。
次に、回転軸移動指令T(i)が回転軸角度(bi,ci)で指令された場合について説明する。回転軸移動指令T(i)が工具方向ベクトルで指令された場合には、回転軸角度(bi,ci)を計算する必要があるが、回転軸移動指令T(i)により回転軸角度(bi,ci)が加工プログラム10から直接に指令されるため、回転軸の第1の機械経路M(i)は加工プログラム10により指令された回転軸角度(bi,ci)となる。
圧縮後回転軸移動指令T’(j)の始点におけるB軸角度及びC軸角度、すなわち、圧縮後回転軸移動指令T’(j−1)におけるB軸角度をbj−1とし、C軸角度をcj− 1とし、bj−1,cj−1からi番目の指令の回転軸角度(bi,ci)までの回転角度量をΔb,Δcとする。ここで、bi=bj−1+Δb、ci=cj−1+Δcである。回転角度量Δb,Δcが無視できる程度に十分に小さいとすると、i番目の指令の回転軸角度(bi,ci)の三角関数は式(37)〜(40)で表すことができる。なお、回転角度量Δb,Δcが大きい場合、例えば、予めパラメータで設定された工作機械の回転軸最高送り速度の補間周期あたりの移動量よりもΔb,Δcの合成移動量が大きい場合には、圧縮不可と判定してもよい。
式(37)〜(40)より、S10において圧縮可否判定部13が圧縮後経路毎に各回転軸(B軸及びC軸)の回転軸角度での三角関数の値を計算し、計算結果を保存しておけば、加工プログラム10により指令された回転軸角度(bi,ci)の三角関数の値は、加工プログラム10の指令毎に三角関数を用いることなく、近似式で計算することができる。
式(37)〜(40)により計算した三角関数の値を用いて、式(18)〜(20)及び式(28)〜(30)により直線軸の第1の機械経路M(i)であるXmi、Ymi、Zmiを計算すると、加工プログラム10の指令毎に三角関数を用いることなく直線軸の第1の機械経路M(i)を計算することができる。
なお、加工プログラム10により指令された指令経路N(i)がC軸の回転に連動して回転する座標系をC軸連動座標系ΣW*で指令された場合について説明したが、指令経路N(i)をC軸に連動して回転しないワーク座標系ΣWで指令してもよい。ワーク座標系ΣWで指令した場合には、式(18)〜(20)に代えて式(34)〜(36)を用いてワーク座標系ΣWにおいて指令された工具先端点Tpw(Xtwi,Ytwi,Ztwi)を機械座標系ΣMにおいて工具先端点位置Tpm(Xtmi,Ytmi,Ztmi)に座標変換し、式(37)〜(40)により計算した三角関数の値を用いて式(28)〜(30)により直線軸の第1の機械経路M(i)を求めればよい。
次に、S8において、圧縮可否判定部13が行う圧縮の可否判定の方法について説明する。S8において、圧縮可否判定部13は、S5で計算した第1の機械経路M(i)がコーナか否かを判定することで、j番目の圧縮経路である圧縮後指令経路N’(j)及び圧縮後回転軸移動指令T’(j)と、i番目の指令である指令経路N(i)及び回転軸移動指令T(i)とが圧縮可能か否かを判定する。すなわち、第1の機械経路M(i)がコーナの場合には圧縮不可と判定し、圧縮を一時的に中断する。
数値制御装置では、コーナのような経路の方向が急峻に変化する形状では自動的に工具の送り速度をクランプし、工作機械が振動することを防止している。そこで、本実施の形態では、第1の機械経路M(i)及び圧縮後機械経路M’(j)におけるクランプ速度を計算し、第1の機械経路M(i)及び圧縮後機械経路M’(j)におけるクランプ速度が加工プログラム10により指令された指令送り速度よりも小さい場合にはコーナであると判定し、圧縮を一時的に中断する。
図7は、S8における圧縮可否を判定する処理の一例を示すフローチャートである。図7において、まず、処理をスタートし、i番目の指令経路N(i)及び回転軸移動指令T(i)に対応する第1の機械経路M(i)のクランプ速度Vc(i)を計算する(S11)。
図8は、クランプ速度の計算方法を示す図である。図8に示すように、機械経路M(i−1)と機械経路M(i)とのなす角がΘ(i)であり、機械経路M(i−1)と機械経路M(i)とのつなぎ目を単位時間あたりの送り速度Fc(i)で通過するときに単位時間あたりの加速度Ac(i)が発生する場合には、加速度Ac(i)は下記の式(41)で求めることができる。
したがって、機械経路M(i−1)と機械経路M(i)のつなぎ目で発生する単位時間あたりの加速度が許容加速度Aoとなるクランプ速度Fo(i)は下記の式(42)で求めることができる。
次に、i番目の指令経路N(i)及び回転軸移動指令T(i)に対応する第1の機械経路M(i)をj番目の圧縮後機械経路M’(j)に暫定的に圧縮した場合の暫定圧縮後機械経路M’’(j)を作成する。具体的には、暫定圧縮後機械経路M’’(j)の始点に圧縮後機械経路M’(j)の始点を設定し、暫定圧縮後機械経路M’’(j)の終点に機械経路M(i)の終点を設定する(S12)。
次に、j番目の暫定圧縮後機械経路M’’(j)の圧縮クランプ速度Vc’(j)を計算する(S13)。図9は、圧縮後経路におけるクランプ速度の計算方法を示す図である。図9に示すように、圧縮後機械経路M’(j−1)と暫定圧縮後機械経路M’’(j)とのなす角がΘ’(j)であり、圧縮後機械経路M’(j−1)と暫定圧縮後機械経路M’’(j)とのつなぎ目を単位時間あたりの送り速度Fc’(j)で通過するときに単位時間あたりの加速度Ac’(j)が発生する場合について説明する。このとき、加速度Ac’(j)は下記の式(43)で求めることができる。
したがって、圧縮後機械経路M’(j−1)と暫定圧縮後機械経路M’’(j)とのつなぎ目で発生する単位時間あたりの加速度が許容加速度Aoとなる圧縮クランプ速度Fo’(j)は、下記の式(44)で求めることができる。
次に、S11及びS13で計算したクランプ速度に基づいて、圧縮によりクランプ速度が変化したか否かを判定し、圧縮によりクランプ速度が変化しない場合には圧縮可能と判定する(S14)。一方、圧縮によりクランプ速度が変化する場合には圧縮不可と判定する。具体的には、クランプ速度Fo(i)が加工プログラム10により指令された指令送り速度よりも小さい場合、または、圧縮クランプ速度Fo’(j)が加工プログラム10により指令された指令送り速度よりも小さい場合には圧縮不可と判定し、S14においてNoに分岐して圧縮可否判定部13が指令経路番号iをデクリメントし、圧縮後経路番号jをインクリメントして(S10)、補間処理部15へと移る。
図10は、コーナ形状を圧縮した場合の圧縮後形状を示す図である。すなわち、機械経路M(i)の経路方向が急峻に変化するコーナ形状ではクランプ速度Fo(i)が小さくなり圧縮不可とすることで、図10に示すように、圧縮によりコーナを潰した形状となりクランプ速度が変化しない範囲で圧縮を行う。また、図9に示すように円弧形状を圧縮することで、圧縮クランプ速度Fo’(j)が低くなり、不要な減速が発生しない範囲で圧縮を行う。また、クランプ速度Fo(i)が加工プログラム10により指令された指令送り速度よりも小さい場合には、クランプ速度Fo(i)を新たな指令送り速度とし、補間処理部15へと出力する。
一方、クランプ速度Fo(i)が加工プログラム10により指令された指令送り速度よりも大きく、かつ、圧縮クランプ速度Fo’(j)が加工プログラム10により指令された指令送り速度よりも大きい場合には圧縮可能と判定し、S14においてYesに分岐して圧縮処理部14へと移る。
なお、ここまではクランプ速度の変化による圧縮可否判定について説明したが、経路長に基づいて圧縮可否を判定してもよい。すなわち、j番目の圧縮後指令経路N’(j)及び圧縮後回転軸移動指令T’(j)に圧縮された指令経路N(i)及び回転軸移動指令T(j)に対応する機械経路M(i)の経路長の総和が、予めパラメータで設定された工作機械の最高送り速度における補間周期あたりの移動量よりも大きい場合には圧縮不可と判定してもよい。
また、j番目の圧縮後指令経路N’(j)に圧縮された指令経路N(i)の経路長の総和が加工プログラム10により指令された指令送り速度における補間周期あたりの移動量よりも大きい場合には圧縮不可と判定してもよい。
補間処理部15は、圧縮後指令経路N’(j)及び圧縮後回転軸移動指令T’(j)を指令送り速度における補間周期あたりの移動量毎に補間して補間点(Xc,Yc,Zc,Bc,Cc)を求める。単位時間あたりの指令送り速度をFとし、補間周期をdtとすると、指令送り速度における補間周期あたりの移動量はFdtとなる。
図11は、補間点の計算方法を示す図である。まず、C軸連動座標系ΣW*上の工具先端の補間点pt(Xc,Yc,Zc)を図11に基づいて求める。ここで、圧縮後指令経路N’(j)の経路長をL’(j)とする。前回の工具先端の補間点をptoとすると、ptoからFdtだけ進んだ点が今回の工具先端の補間点pt(Xc,Yc,Zc)となる。
まず、補間点ptのある圧縮後指令経路N’(j)の圧縮後経路番号mを求める。ここでは、簡単のために前回の工具先端の補間点ptoが圧縮後指令経路N’(j)の始点にあるものとする。まず、移動量Fdtが圧縮後指令経路N’(j)の経路長L’(j)よりも大きいか否かを判定する。移動量Fdtが経路長L’(j)よりも小さい場合には、補間点ptは圧縮後指令経路N’(j)にある。一方、移動量Fdtが経路長L’(j)よりも大きい場合には、移動量Fdtから経路長L’(j)を差し引いた移動量Fdt’と次の圧縮後指令経路N’(j+1)の経路長L’(j+1)との大小比較を行う。そして、差し引いた移動量Fdt’の方が小さい場合には、補間点ptは圧縮後指令経路N’(j+1)にあることになる。
上記を繰り返すことで、補間点ptのある圧縮後指令経路N’(m)を求めることができる。以下、補間点ptがある圧縮後指令経路をN’(m)とする。また、上記の例では前回の補間点ptoが圧縮後指令経路N’(j)の始点にあるものとして算出したが、前回の補間点ptoが圧縮後指令経路N’(j)の始点にない場合には、改めて前回の補間点ptoがある圧縮後指令経路N’(j)の残り経路長である前回の補間点ptoから圧縮後指令経路N’(j)の終点までの長さをL’(j)とすると、上記と同様の手順にて補間点ptがある工具移動経路Nt’(m)を求めることができる。
次に、補間点pt(Xc,Yc,Zc)を求める。圧縮後指令経路N’(m)の始点を(Xs’(m),Ys’(m),Zs’(m))とし、終点を(Xe’(m),Ye’(m),Ze’(m))とすると、補間点pt(Xc,Yc,Zc)は下記の式(45)〜(47)のように、圧縮後指令経路N’(m)の始点と移動量Fdt’による圧縮後指令経路N’(m)の移動量との和で表される。
次に、工具先端の補間点ptの圧縮後指令経路N’(m)での移動量と同じ分配比率で、圧縮後回転軸移動指令T’(m)上の回転軸の補間点(Bc、Cc)を求める。すなわち、下記の式(48),(49)のように、圧縮後指令経路N’(m)の経路長L’(m)に対する移動量Fdt’の比率分だけ、圧縮後回転軸移動指令T’(m)上を移動した点を回転軸の補間点(Bc,Cc)とする。
ここで、圧縮後回転軸移動指令T’(m)の始点を(Bs’(m),Cs’(m))とし、終点を(Be’(m),Ce’(m))としている。
なお、加工プログラム10により指令された指令経路N(i)がC軸に連動しない座標系ΣWで指令されている場合には、圧縮後指令経路N’(j)もΣWでの経路となるが、その場合には、圧縮後指令経路N’(j)をW2だけオフセットし、下記の式(50)に示す回転行列Rwをかけ、さらに−W2に回転行列Rwをかけた分だけオフセットすれば、C軸連動座標系ΣW*での経路に変換することができる。
このようにして、補間点(Xc,Yc,Zc,Bc,Cc)を計算し、第2機械経路計算部16へ出力する。
第2機械経路計算部16は、補間処理部15から出力された直線軸の補間点(Xc,Yc,Zc)を機械座標系ΣMにおける制御点Pの補間点(Xcm,Ycm,Zcm)に座標変換する。
第1機械経路計算部12と同様に、図6に示す座標系にて説明を行う。C軸連動座標系ΣW*上の工具先端の補間点(Xc,Yc,Zc)から、機械座標系ΣMでの工具先端の補間点(Xctm,Yctm,Zctm)への座標変換は下記の式(51)〜(53)で表される。
式(51)〜(53)で表される機械座標系ΣMでの工具先端の補間点(Xctm,Yctm,Zctm)に工具先端点Tpが移動するためには、制御点Pの補間点(Xcm,Ycm,Zcm)を下記の式(54)〜(56)で表される位置に移動する必要がある。
なお、機械座標系ΣMでの回転軸の補間点(Bcm,Ccm)は、補間処理部15から出力された回転軸の補間点(Bc,Cc)と等しい。
上記説明したように、機械座標系ΣMでの補間点(Xcm,Ycm,Zcm,Bcm,Ccm)が求まり、この値を、各軸を駆動するサーボモータへの指令値とし、出力する。
以上説明した本実施の形態を比較例と対比しつつ以下に説明する。図12〜15は、比較例の指令経路と機械経路とを示す図である。例えば、図12のような工具姿勢を滑らかに変化させた微小線分加工プログラムを用いて工具側面で加工を行う場合、指令経路は一直線となるが、機械経路は曲線形状を描く。ここで、指令経路にのみ着目して圧縮を行うと、加工開始点から加工終了点まで指令経路は一直線上にあるため、加工開始点から加工終了点までの微小経路が全て圧縮されてしまう。そのため、加工開始点から加工終了点までの工具姿勢の情報が圧縮により失われてしまい、その結果、図13のように工具姿勢が変化せず、加工物の加工後形状が圧縮により変化してしまう(削り残し及び削り過ぎが生じる)。
更に、図14に示すように、指令経路を加工物鉛直方向にずらして加工面に沿うように工具先端を移動させて加工を行う場合、工具先端が加工物鉛直方向に上がるにつれて指令経路の曲率は大きくなる。そのため、図15(a),(b),(c)に示すように指令経路毎に圧縮できる経路数が異なり、圧縮後の機械経路がなす角がばらついてしまう。
数値制御装置では、経路方向が大きく異なる部分(コーナ形状部分)では機械振動を防止するために自動的に機械の送り速度を落として加工を行うため、指令経路毎に機械経路のなす角がばらつくと機械の送り速度も指令経路毎に変化し、加工面に傷が生じる。なお、機械経路のなす角は、工具先端が加工物鉛直方向に上がるにつれて大きくなるわけではないため、特定の指令経路でのみ機械の送り速度が大きく減速することも起こり得る。
圧縮による加工後形状の変化及び加工面の傷の発生を防止するためには、工具姿勢の影響も考慮して機械経路でも圧縮の可否判定を行う必要がある。ここで、単純に機械経路を考慮して特許文献1の圧縮方法を適用した場合に考えられる構成を図16に示す。
図16は、機械経路を考慮して圧縮の可否判定を行う数値制御装置の比較例の構成の一例を示すブロック図である。図16の構成では、加工プログラム読み取り部により加工プログラムを1経路ずつ読み取り、機械経路計算部により加工プログラムから指令された指令経路毎に座標変換を行い、経路傾きによる圧縮可否判定部により機械経路の傾きの変化量がしきい値以下であれば圧縮可能と判定し、圧縮可能と判定した場合にはその指令経路を圧縮して、加工プログラム読み取り部にて次の経路を読み取って同様の処理を行う構成である。なお、経路傾きによる圧縮可否判定部により圧縮不可と判定された場合は経路の圧縮を終了し、補間処理へと移る。
ここで、図16に示す構成では、指令経路から機械経路への変換を指令経路毎に行っているが、指令経路から機械経路への座標変換には三角関数または逆三角関数を用いるために計算負荷が重い。そのため、指令経路毎に機械経路を計算すると処理負荷が増大し、一定時間内に処理できる経路数が減少してしまうため、圧縮により経路長を長くしても、工具の送り速度を高速化することができなくなってしまう。
そこで、本実施の形態にて説明したように、工具先端点制御で経路長の短い複数の指令経路を含む加工プログラムを用いた場合においても、加工精度を低下させることなく、従来よりも加工の高速化を図ることが可能な数値制御装置を得ることを目的とし、連続した複数の指令経路で構成された加工プログラム10に従って被加工物3への工具2の工具姿勢を変更することが可能な回転自由度を有する工作機械を制御し、被加工物3を工具2により加工する数値制御装置100において、加工プログラム10により指令された被加工物3への工具2の送り速度指令、工具先端の指令経路、及び工具姿勢を決定する回転軸移動指令を読み取る加工プログラム読み取り部11と、被加工物3への工具先端の指令経路及び回転軸移動指令を近似座標変換することにより、工作機械の第1の機械経路を近似計算する第1機械経路計算部12と、第1の機械経路がコーナ形状か否かを判定することにより、複数の指令経路及び複数の回転軸移動指令を、1つの指令経路及び1つの回転軸移動指令に圧縮可能か否かを判定する圧縮可否判定部13と、圧縮可否判定部13により圧縮可能と判定された場合には、複数の指令経路及び複数の回転軸移動指令を1つの指令経路及び1つの回転軸移動指令に圧縮して圧縮後指令経路及び圧縮後回転軸移動指令を作成する圧縮処理部14と、圧縮後指令経路及び圧縮後回転軸移動指令を補間し、補間周期毎に被加工物3への工具先端の移動経路及び回転軸角度を計算する補間処理部15と、補間周期毎の被加工物3への工具先端の移動経路及び回転軸角度を座標変換することにより工作機械の第2の機械経路を計算する第2機械経路計算部16とを備える構成とする。
このような構成の数値制御装置とすることで、各軸を駆動するサーボモータの移動経路である機械経路を指令経路毎に近似計算し、近似した第1の機械経路に基づいて圧縮の可否判定を行うため、圧縮による加工形状の変化及び加工面の傷の発生を防止しつつ、従来よりも高速な加工を行うことができる。なお、近似した第1の機械経路は圧縮の可否判定にのみ使用し、各軸を駆動するサーボモータへの指令は圧縮後経路上の補間点毎に座標変換を行った第2の機械経路とするため、座標変換の近似による実際の機械経路の誤差は発生しない。
なお、圧縮可否判定部13は、第1の機械経路に基づいてクランプ速度を計算し、クランプ速度が加工プログラム10により指令された被加工物3への工具2の送り速度よりも小さい場合にはコーナ形状であり圧縮不可と判定することが好ましい。機械経路に基づいたクランプ速度により圧縮の判定を行うことによりコーナ部では圧縮不可と判定され、圧縮によるクランプ速度のばらつきを防止することができる。
なお、圧縮可否判定部13は、1つの経路に圧縮した複数の指令経路及び複数の回転軸移動指令に対応する第1の機械経路の合成移動量の総和が、予め設定された補間周期毎の移動量よりも大きい場合には圧縮不可と判定することが好ましい。機械経路の合成移動量が許容速度を超えた場合には圧縮する必要がないため、圧縮不可とすることができる。
なお、圧縮可否判定部13は、1つの経路に圧縮した複数の指令経路の合成移動量の総和が、加工プログラム10により指令された被加工物3への工具2の送り速度における補間周期毎の移動量よりも大きい場合には圧縮不可と判定することが好ましい。先端点の移動量が指令送り速度を超えた場合には圧縮する必要がないため、圧縮不可とすることができる。
以上説明したように、本実施の形態によれば、第1機械経路計算部12にて機械経路を近似計算し、算出した機械経路でのクランプ速度が変化しない範囲で圧縮を行うため、先端点制御中においても圧縮によりクランプ速度がばらつき加工面に傷が生じることを防止することができる。また、工具先端の経路のみならず、機械経路での圧縮可否判定も行うため、工具先端の経路または工具姿勢が急峻に変化した点では圧縮不可とし、圧縮により加工形状が変化することも防止することができる。
また、機械経路での移動量が予め設定された最高送り速度以上になる場合、または、工具先端の移動量が加工プログラムにより指令された指令送り速度以上になる場合には、圧縮不可とするため、必要以上に圧縮することがなく、圧縮により加工形状が変化し、削り残し及び削り過ぎが発生することを防止することができる。
また、指令毎に計算する機械経路は近似式により計算するため、処理負荷を増大させることなく従来よりも高速な加工を実現することができる。
なお、近似計算した機械経路は圧縮可否判定にのみ使用し、補間には別途座標変換を行うため、補間点には近似誤差は発生しない。
上述した課題を解決し、目的を達成するために、本発明は、連続した複数の指令経路で構成された加工プログラムに従って被加工物への工具の工具姿勢を変更することが可能な回転自由度を有する工作機械を制御し、前記被加工物を前記工具により加工する数値制御装置において、前記加工プログラムにより指令された前記被加工物への工具の送り速度指令、工具先端の指令経路、及び工具姿勢を決定する回転軸移動指令を読み取る加工プログラム読み取り部と、前記被加工物への前記工具先端の指令経路及び前記回転軸移動指令を近似座標変換することにより、前記工作機械の第1の機械経路を近似計算する第1機械経路計算部と、前記第1の機械経路がコーナ形状か否かを判定することにより、前記複数の指令経路及び前記複数の回転軸移動指令を、1つの指令経路及び1つの回転軸移動指令に圧縮可能か否かを判定する圧縮可否判定部と、前記圧縮可否判定部により圧縮可能と判定された場合には、前記複数の指令経路及び前記複数の回転軸移動指令を1つの指令経路及び1つの回転軸移動指令に圧縮して圧縮後指令経路及び圧縮後回転軸移動指令を作成する圧縮処理部と、前記圧縮後指令経路及び前記圧縮後回転軸移動指令を補間し、補間周期毎に前記被加工物への前記工具先端の移動経路及び回転軸角度を計算する補間処理部と、前記補間周期毎の前記被加工物への前記工具先端の移動経路及び前記回転軸角度を座標変換することにより前記工作機械の第2の機械経路を計算する第2機械経路計算部とを備え、前記圧縮可否判定部は、前記第1の機械経路に基づいてクランプ速度を計算し、前記クランプ速度が前記加工プログラムにより指令された前記被加工物への前記工具の送り速度よりも小さい場合にはコーナ形状であり圧縮不可と判定することを特徴とする。