(58)【調査した分野】(Int.Cl.,DB名)
前記パラメトリック曲線は、B−スプライン曲線、ベジェ曲線、又はNURBS(Non−Uniform Rational B−Spline)曲線のいずれかである請求項1又は請求項2に記載の数値制御装置。
【発明を実施するための形態】
【0016】
[第1実施形態]
以下、本発明の第1実施形態について説明する。
本実施形態に係る数値制御装置1は、指令ブロック単位で各軸の位置を示す座標及び送り速度が指定された加工プログラムを実行し、工作機械を制御する。
数値制御装置1は、加工プログラムを実行する際に各指令ブロックを解析し、指定された座標まで、指定された速度に基づいて実際の送り速度の制御を行う。このとき、数値制御装置1は、指令ブロック毎に指定された座標から算出される累積の移動距離と、指定された速度とを対応付けた複数の制御点に対して、速度変化を緩やかにしたパラメトリック曲線を生成し、このパラメトリック曲線に沿って、移動距離に対する指令速度を出力する。
【0017】
図1は、本実施形態に係る加工プログラムを例示する図である。
この例では、ブロック番号1で指定された原点から、ブロック番号2において座標(10.0,10.0)まで送り速度F1000で加工することが指定されている。同様に、ブロック番号3において座標(15.0,13.0)まで送り速度F2000で、ブロック番号4において座標(18.0,11.0)まで送り速度F2500で、ブロック番号5において座標(20.0,5.0)まで送り速度F1100で加工することが指定されている。
【0018】
図2は、本実施形態に係る加工プログラムの指令ブロック毎に指定された速度の推移を例示する図である。
この例では、
図1に示した加工プログラムから読み取れる、原点からの累積の移動距離に対して、指令ブロック毎に指定された速度が描画されている。
【0019】
指定された速度の通りに工作機械を制御すると、指令ブロックが切り替わる位置、例えば、ブロック番号2からブロック番号3に切り替わる位置A、及びブロック番号3からブロック番号4に切り替わる位置B等)で速度が不連続に変化する。このため、これらの位置で加工負荷が急激に上昇し、工具寿命及び加工面質の低下が懸念される。
【0020】
図3は、本実施形態に係る加工プログラムに基づいて、指定された速度への加減速を従来の技術により制御した場合の速度の推移を例示する図である。
この場合、指令速度の変化が
図2の場合よりも緩やかとなり、加工負荷の急激な上昇は抑制されるが、加減速に掛かる時間に応じて加工に要する時間が長くなる。そこで、加減速に掛ける時間を短くすると、速度の変化に伴う指令ブロック間での加工面質の変化も急となるため、連続した面質が要求される場合に加工面質不良と判断されやすい。
【0021】
図4は、本実施形態に係る数値制御装置1が加工プログラムから生成したパラメトリック曲線に沿って、工作機械への指令速度を制御した場合の速度の推移を例示する図である。
この例では、指令ブロックの始点及び終点に対応する制御点が設けられ、これらの制御点に基づいてパラメトリック曲線が描画されている。
【0022】
この場合、指令速度の変化が緩やかになり、かつ、加工プログラムで指定された速度に基づく加工時間と比較して、速度が高い部分及び低い部分が生じ、同等の加工時間が維持される。
【0023】
図5は、本実施形態に係る数値制御装置1の機能構成を示す図である。
数値制御装置1は、制御部10及び記憶部20を備えた情報処理装置である。
加工プログラムの指令ブロックで指定された座標及び速度からパラメトリック曲線を生成し、このパラメトリック曲線に沿って実際の指令速度を出力するために、制御部10は、プログラム解析部11と、制御点生成部12と、指令速度生成部13と、指令速度出力部14とを備える。これらの各機能部は、制御部10が記憶部20に格納された数値制御プログラムを読み込み実行することにより実現される。
【0024】
プログラム解析部11は、工作機械を制御するための加工プログラムを記憶部20又は外部機器から読み込み解析する。具体的には、本実施形態において、プログラム解析部11は、加工プログラムを構成する指令ブロックのそれぞれから、終点座標及び速度の指定値を抽出する。
【0025】
さらに、プログラム解析部11は、抽出した座標に基づいて、加工開始点から各指令ブロックの終点までの累積の移動量B
pを算出し、指令ブロック毎に累積の移動距離B
p及び指定速度F
pを取得する。
【0026】
図6は、本実施形態に係る指令ブロックと、累積の移動距離及び指定速度との対応付けを示す図である。
各指令ブロックからは、座標及び速度の指定値が抽出され、ブロック番号に累積の移動距離と指定速度とが対応付けられる。
【0027】
ここで、指令ブロック毎の移動距離ΔB
pは、各軸の移動量ΔA
iを用いて、
【数1】
と定義される。例えば、XYの2軸の指令の場合、
【数2】
である。したがって、指令ブロック毎に指定された座標から、
【数3】
と計算でき、累積の移動距離は、
B
0=ΔB
0=0
B
1=ΔB
0+ΔB
1=14.142
B
2=ΔB
0+ΔB
1+ΔB
2=19.973
となる。
【0028】
制御点生成部12は、指令ブロック毎の終点までの累積の移動距離B
p及び速度F
pに基づいて、これらの指令ブロックの始点及び終点における累積の移動距離及び速度の組である制御点P
i=(P
bi,P
fi)を生成する。
【0029】
図7は、本実施形態に係る制御点の生成方法を示すフローチャートである。
ステップS1において、プログラム解析部11は、加工プログラムの指令ブロックそれぞれの指定内容に基づいて、指令ブロック毎の累積の移動距離B
p及び速度F
pを算出する。
【0030】
ステップS2において、制御点生成部12は、制御点のインデックスi、及び指令ブロックのインデックスpを0に初期化する。
ステップS3において、制御点生成部12は、i(≧0)番目の制御点を、P
fi=F
p、P
bi=B
pと計算する。
【0031】
ステップS4において、制御点生成部12は、p+1番目の指令ブロック、すなわちB
p+1及びF
p+1があるか否かを判定する。この判定がYESの場合、処理はステップS5に移り、判定がNOの場合、制御点の生成が完了したので、処理は終了する。
【0032】
ステップS5において、制御点生成部12は、現在(p番目)の指令ブロックと次(p+1番目)の指令ブロックとで指定速度が等しいか否かを判定する。この判定がYESの場合、処理はステップS8に移り、判定がNOの場合、処理はステップS6に移る。
【0033】
ステップS6において、制御点生成部12は、次(p+1番目)の指令ブロックの始点に相当し現在(p番目)と速度が異なる制御点を生成するために、インデックスiをカウントアップする。
ステップS7において、制御点生成部12は、i番目の制御点を、P
fi=F
p+1、P
bi=B
pと計算する。
【0034】
ステップS8において、次(p+1番目)の指令ブロックの終点に相当する制御点を生成するために、インデックスi及びpをカウントアップする。その後、処理は、ステップS3に戻る。
【0035】
図8は、本実施形態に係る制御点の生成例を示す図である。
この例では、各指令ブロックの指定速度がそれぞれ異なる場合を示している。
この場合、まず、ブロック番号1からは、加工開始点に対応する制御点P
0=(B
0,F
0)が生成される。
ブロック番号i(i≧2)からは、始点に対応する制御点P
2i−1=(B
i−1,F
i)と、終点に対応する制御点P
2i=(B
i,F
i)が生成される。
【0036】
指令速度生成部13は、生成された制御点に基づいて、移動距離に対する指令速度を定義したパラメトリック曲線を生成する。
パラメトリック曲線は、例えば、B−スプライン曲線、ベジェ曲線、又はNURBS(Non−Uniform Rational B−Spline)曲線のいずれかであってよい。以下、パラメトリック曲線は、B−スプライン曲線であるものとして説明する。
【0037】
B−スプライン曲線C(t)は、基底関数(ブレンディング関数)N
in(t)、制御点P
i、ノット(ノットベクトル)t、次数n、制御点の数m+1によって定義される。また、移動距離B(t)及び指令速度F(t)は、それぞれP
bi及びP
fiから次のように求められる。
【数4】
【0038】
ここで、最初の制御点P
0及び最後の制御点P
mを通過する開一様B−スプラインを得るためには、次のように、最初と最後にn+1個の多重ノットが設けられる。なお、ノットベクトルの数pは、p=m+n+1である。
t
0=t
1=・・・=t
n=0
t
p−n=t
p−n+1=・・・=t
p=1
【0039】
図9は、本実施形態に係る制御点及びB−スプライン曲線の生成例を示す図である。
この例では、移動距離Bと速度Fとを軸とする座標系において、
図8の制御点P
0〜P
8が設けられている。例えば、ブロック番号3の指令ブロックにおける始点に相当する制御点P
3は、座標(P
b3,P
f3)に設けられる。
これらの制御点に基づいて、指定された次数、例えば2次のB−スプライン曲線C(t)が作成される。
【0040】
指令速度出力部14は、生成された指令速度を補間単位である所定の移動量毎に出力し、工作機械を制御する。
具体的には、指令速度出力部14は、補間単位毎に移動距離B(t)が測定されると、次のようにノットtの2次方程式の解としてtを算出し、tから指令速度F(t)を計算して出力する。なお、α、β、γは、制御点における移動距離P
bi及び与えられたB(t)から定まる係数である。
【数5】
【0041】
次に、B−スプライン曲線の計算例を示す。
(計算例1: セグメント数L=1、次数n=2、制御点数m+1=3の場合)
P
0,P
1,P
2を制御点とし、両端のP
0及びP
2を通り、1セグメントからなる2次のB−スプライン曲線C(t)は、次の式で表される。なお、制御点数m+1、次数n及びセグメント数Lの関係は、m=n+L−1である。
【数6】
【0042】
ここで、ノットベクトル{t
0,・・・,t
p}の数pは、p=m+n+1=5である。
開一様B−スプライン曲線を得るために、始点及び終点において、n+1=3個の多重ノットを設けると、ノットベクトルは{t
0,・・・,t
5}={0,0,0,1,1,1}となる。
また、定義域がt
2≦t<t
3なので、0次の基底関数は、t
2≦t<t
3のみ1となり、0次から2次の基底関数は、それぞれ次のように計算される。
【数7】
【0043】
したがって、補間単位で移動距離B(t)が与えられると、指令速度F(t)は、次のようにノットtを介して計算される。
【数8】
【0044】
(計算例2: セグメント数L=2、次数n=2、制御点数m+1=4の場合)
P
0,P
1,P
2,P
3を制御点とし、両端のP
0及びP
4を通り、2セグメントからなる2次のB−スプライン曲線C(t)は、次の式で表される。
【数9】
【0045】
ここで、ノットベクトル{t
0,・・・,t
p}の数pは、p=m+n+1=6である。
開一様B−スプライン曲線を得るために、始点及び終点において、n+1=3個の多重ノットを設けると、ノットベクトルは{t
0,・・・,t
6}={0,0,0,1,2,2,2}となる。なお、多重ノット区間外で一様の変化をすることで、開一様B−スプライン曲線が得られ、非一様の変化又は多重をさせることで、各制御点の重みを変化させた非一様B−スプライン曲線が得られる。
また、定義域がt
2≦t<t
4なので、0次の基底関数は、次のようにt
2≦t<t
4のみ1となる。
【数10】
【0046】
また、1セグメント目のノットtの範囲0≦t<1において、1次及び2次の基底関数は、それぞれ次のように計算される。
【数11】
【0047】
また、2セグメント目のノットtの範囲1≦t<2において、1次及び2次の基底関数は、それぞれ次のように計算される。
【数12】
【0048】
したがって、補間単位で移動距離B(t)が与えられると、指令速度F(t)は、ノットtを介してセグメント別に計算される。
すなわち、1セグメント目の0≦t<1では、移動距離B
0(t)に対して、指令速度F(t)が次のように計算される。
【数13】
【0049】
また、2セグメント目の1≦t<2では、移動距離B
1(t)に対して、指令速度F(t)が次のように計算される。
【数14】
【0050】
本実施形態によれば、数値制御装置1は、加工プログラムの指令ブロック毎に指定された移動距離及び速度に基づいて、この指令ブロックの始点位置及び終点位置に対応した累積の移動距離及び速度の組で表される制御点を生成する。そして、数値制御装置1は、これらの制御点から、移動距離に対する指令速度を定義したパラメトリック曲線を生成し、補間単位毎の移動距離に対応する指令速度をパラメトリック曲線に沿って出力する。
【0051】
したがって、数値制御装置1は、加工効率を図るために指令速度を指令ブロック単位で変化させた加工プログラムを用いた場合に、加減速による衝撃を低減し、かつ、指定速度の変更箇所で加工面質に連続性を持たせることができる。この結果、数値制御装置1は、加工効率を上げつつ、加工面質の低下を抑制できる。
【0052】
数値制御装置1は、パラメトリック曲線として、B−スプライン曲線、ベジェ曲線、又はNURBS曲線を用いて、適切な指令速度を算出できる。
【0053】
[第2実施形態]
以下、本発明の第2実施形態について説明する。
第1の実施形態では、数値制御装置1は、パラメトリック曲線を用いて、速度変化を緩やかに制御した。
このとき、パラメトリック曲線の特性により、次数nを増加させることで、速度変化がより滑らかに、すなわち変化率が一定に近づいていく。一方、パラメトリック曲線で示される指令速度は、加工プログラムにより指定された速度からは乖離してしまう。
【0054】
図10は、本実施形態に係るパラメトリック曲線の次数による変化を示す図である。
2次のB−スプライン曲線に比べて、5次のB−スプライン曲線では、指定速度を大きく上回ったり、逆に下回ったりする。例えば、破線の円で示した極大部分では、5次のB−スプライン曲線が指定速度を下回っている。
【0055】
そこで、本実施形態では、指令速度生成部13は、所定の係数を乗じることにより指令速度を調整する。
具体的には、指令速度生成部13は、加工プログラムにおいて指定された係数aを用いて、次のように、指令速度F(t)を増減させる。
【数15】
【0056】
図11は、本実施形態に係る加工プログラムにおける係数の指定方法を例示する図である。
パラメトリック曲線による速度制御機能をオンにする際(M400)、例えば、パラメータCにより次元nが指定され、パラメータAにより係数aが指定される。
この例では、「C5」により5次のパラメトリック曲線が生成され、「A110」により指令速度は110%に増加する。
【0057】
図12は、本実施形態に係る指令速度の調整結果を例示する図である。
実線で示したグラフは、係数を用いない(A0)又は等倍する(A100)指定がされた場合のパラメトリック曲線である。
破線で示したグラフは、「A110」等により倍率が指定された場合のパラメトリック曲線であり、調整前に比べて、加工中の全域にわたって指令速度が高く調整される。
【0058】
本実施形態によれば、数値制御装置1は、係数を用いて指令速度を調整することにより、高次のパラメトリック曲線を用いた場合に、指令速度の過度な低下又は上昇を抑制できる。この結果、数値制御装置1は、加工の効率性を高め、かつ、高品質な加工を実現できる。
【0059】
[第3実施形態]
以下、本発明の第3実施形態について説明する。
第1実施形態及び第2実施形態では、指令ブロックそれぞれにおいて、速度が明示的に指定されていたが、加工プログラムにおける速度の指定方法はこれに限られない。複数の連続した指令ブロックで同一の速度が求められる場合、連続した最初の指令ブロックのみに速度の指定値が記述されてもよい。この場合、プログラム解析部11により、省略した指定速度がモーダル速度情報として抽出される。
【0060】
図13は、本実施形態に係る加工プログラムにおけるモーダル速度情報を例示する図である。
例えば、ブロック番号2で指定された「F1000」がブロック番号3においても、モーダル速度情報として継続して用いられる。同様に、ブロック番号4で指定された「F1005」がブロック番号5において、ブロック番号6で指定された「F2000」がブロック番号7において、ブロック番号8で指定された「F2500」がブロック番号9において、ブロック番号10で指定された「F1000」がブロック番号11において、それぞれモーダル速度情報として継続して用いられる。
【0061】
図14は、本実施形態に係る加工プログラムの指令ブロックに記述された速度及びモーダル速度情報を用いて生成した制御点と、これらの制御点に基づくパラメトリック曲線とを例示する図である。
図13の加工プログラムに基づいて制御点P
0〜P
14が生成されると、モーダル速度情報、又はブロック番号4の「F1005」のように前ブロックからの変化が小さい速度情報があるために、略直線上に制御点が多数(3個以上)配置される。
【0062】
このような配置の制御点に基づくパラメトリック曲線は、その特性上、局所的に横軸方向への直進性を持つ。したがって、図のように、5次のB−スプライン曲線であっても、急激な速度変化が認められ、さらに高次であっても同様の特徴が現れ、加工面質が低下するおそれがある。
【0063】
そこで、本実施形態では、制御点生成部12は、制御点の生成に際して、前後の制御点の両方と速度が等しい制御点を省略する。そして、指令速度生成部13は、一部が省略された制御点に基づいてパラメトリック曲線を生成する。
このとき、制御点生成部12は、前後の制御点の両方との速度の差が指定された速度範囲内の制御点を省略してもよい。
【0064】
図15は、本実施形態に係る加工プログラムから省略して生成された制御点と、これらの制御点に基づくパラメトリック曲線とを例示する図である。
この例では、
図14に示した制御点P
0〜P
14のうち、前後の制御点と速度が等しいか又は近似している制御点が省かれている。この結果、略直線上に並んだ制御点のうち、両端の制御点のみが残っている。
省略後の制御点P
0〜P
8に基づくパラメトリック曲線には、
図14に見られた横軸方向への直進性がなく、速度変化が緩やかとなっている。
【0065】
図16は、本実施形態に係る制御点の生成方法を示すフローチャートである。
ステップS1〜S8は、第1実施形態のフローチャート(
図7)と同様であるが、ステップS5aが変更され、ステップS9及びS10が追加されている。
【0066】
ステップS5aにおいて、制御点生成部12は、所定範囲D以内の速度変化を、等しい場合と同様に扱う。すなわち、制御点生成部12は、現在(p番目)の指令ブロックと次(p+1番目)の指令ブロックとで指定速度の差がD以内か否かを判定する。
【0067】
また、ステップS8においてインデックスi及びpをカウントアップした後、ステップS9において、制御点生成部12は、現在(p番目)の指令ブロックと指定速度の差がD以内である次(p+1番目)の指令ブロックがあるか否かを判定する。この判定がYESの場合、処理はステップS10に移り、判定がNOの場合、処理はステップS3に移る。
【0068】
ステップS10において、制御点生成部12は、現在(p番目)の指令ブロックの終点に相当する制御点の生成を省略し、インデックスpをカウントアップする。その後、処理はステップS9に戻る。
【0069】
図17は、本実施形態に係る加工プログラムから生成され得る制御点のうち、いずれも省略しない場合の制御点の生成例を示す図である。
この場合、
図13の加工プログラムからは、指定速度が等しい又は近似した制御点が連続して生成されている。具体的には、制御点P
1〜P
5、制御点P
6〜P
8、制御点P
9〜P
11、制御点P
12〜P
14は、それぞれ横軸方向の略直線上に生成されている。
【0070】
図18は、本実施形態に係る加工プログラムから生成され得る制御点のうち、一部を省略した場合の制御点の生成例を示す図である。
この場合、
図17で生成された制御点P
0〜P
14のうち、P
2〜P
4、P
7、P
10、P
13が省略され、新たな制御点P
0〜P
8が生成されている。
【0071】
図19は、本実施形態に係る加工プログラムにおける、制御点の省略機能の指定方法を例示する図である。
パラメトリック曲線による速度制御機能をオンにする際(M400)、例えば、パラメータBにより制御点の省略機能のオン(B1)又はオフ(B0)が指定され、パラメータDにより省略する速度範囲が指定される。
この例では、「D10」により、±10mm/minの速度変化が無視される。
【0072】
本実施形態によれば、数値制御装置1は、速度が等しい連続した制御点の一部を省略することにより、これらの制御点から生成されるパラメトリック曲線の横軸(移動距離)方向への直進性を低減し、速度変化が緩やかにできる。
したがって、数値制御装置1は、連続する複数の指令ブロックから同一の速度(記述された速度又はモーダル速度情報)が抽出され場合であっても、適切なパラメトリック曲線を生成できるため、加工効率を上げつつ、加工面質の低下を抑制できる。
【0073】
また、数値制御装置1は、前後の制御点と速度が同一の制御点に加えて、速度の差が指定された範囲内の制御点を省略することにより、パラメトリック曲線の横軸方向への直進性をさらに低減し、速度変化を緩やかにできる。
【0074】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、本実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本実施形態に記載されたものに限定されるものではない。
【0075】
数値制御装置1による数値制御方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、コンピュータにインストールされる。また、これらのプログラムは、リムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。