(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0026】
本発明は、早送りブロックを利用することの速度的な優位性が失われる場合には、送りの種類を切換えずに切削送りを連続的に実行する方が、より短時間で工具を移動できることに着目したものである。
【0027】
本発明にかかる数値制御装置は、切削送りブロック間に早送りブロックが存在する場合、プログラム指令どおりに早送りブロックを実行する場合の実行時間と、早送りブロックを切削送りブロックに置換えて実行する場合の実行時間とを計算する。早送りブロックを切削送りブロックに置換えて実行する場合の方が実行時間が短いならば、早送りブロックを切削送りブロックに置換えることでサイクルタイムの短縮を行う。切削送りが連続する場合には、加減速時にオーバラップが行われるので、ブロックの切換え時間を短縮することができる。
【0028】
以下、本発明の実施の形態を図面と共に説明する。
<実施の形態1>
図6は、本発明の実施の形態1にかかる数値制御装置100の構成を示すブロック図である。数値制御装置100は、プログラム指令解析部101を有する。
【0029】
なお、数値制御装置100は、図示しない工作機械に接続され、工作機械が備える工具の動作を加工プログラムに従って制御する。数値制御装置100は、プロセッサが、記憶装置に格納された処理プログラムを実行することにより、種々の処理部を論理的に実現する。
【0030】
プログラム解析指令部101は、加工プログラムを解析して、ブロックパターンの検出、実行時間の計算及び比較、早送りブロックの切削ブロックへの置換、送り速度の決定等の処理を行う。
【0031】
次に、
図5に示すフローチャートを用いて、数値制御装置100の動作について説明する。
【0032】
S1:
まず、プログラム解析指令部101が、ブロック実行中に、次ブロック以降の先読みを行う。ここで、切削送り、早送り、切削送り、と変化するブロックを検出した場合、以下の処理を実行する。
【0033】
S3:
プログラム解析指令部101は、切削送りの減速に要する時間Tcut[ms]、及び早送りブロックの実行に要する時間Trpd[ms]をそれぞれ計算する。インポジションチェックに要する時間を無視すれば、Tcut+Trpdが、1つ目の切削ブロックの減速開始から2つ目の切削ブロック開始までの時間となる。
【0034】
機械制御では、機械にショックを与えずスムーズな動作を実現するため、加減速制御が必須である。そのため、本実施形態でも、上述のように加減速にかかる時間を考慮するものとする。なお、送りの種類が切換わる場合、実際にはTcut+Trpdに加えてインポジションチェックの時間が必要となる。しかしながら、インポジションチェックの時間は、機械のイナーシャや摩擦、制御モータの影響等を受けるため定量的に算出することは困難である。よって、本実施形態ではインポジションチェックの時間をゼロと考えて計算を行うものとする。
【0035】
次に、プログラム解析指令部101が、早送りブロックを切削送りに置換した場合の分配時間Tipl[ms]を計算する。切削送りが連続して実行される場合、先のブロックの分配が終わると直ちに次のブロックの実行が開始される。よって、Tiplが、1つ目の切削ブロックの減速開始から、置換える前の2つ目の切削ブロック開始までの時間となる。
【0036】
S4:
プログラム解析指令部101は、Tipl < Tcut+Trpdであるか否かを判定する。
Tipl < Tcut+Trpdであれば、早送りブロックを切削送りに置換えたほうが、実行時間を短縮できることになる。よって、プログラム解析指令部101は、早送りブロックを切削送りに置換える。一方、Tipl ≧ Tcut+Trpdであれば、置換処理を行わず、S7に遷移する。
【0037】
S7:
プログラム解析指令部101は、プログラムに従って加工を制御する。もしS4で早送りブロックが切削送りブロックに置換されていれば、その置換された解析情報によって加工が実施される。
【0038】
この置換処理による計算上の短縮時間は、Tcut+Trpd − Tiplであるが、実際には、計算上無視していたインポジションチェックに要する時間も含めて短縮される。したがって、時間短縮効果はより大きくなる。
【0039】
図1に、所定の指令経路と送り種類とで加工を行った場合の、XZ軸の合成速度と時間との関係を示す。上図は、早送りブロックをそのまま実行した場合を示す。下図は、早送りブロックを切削送りに置換えて実行した場合を示す。本図からも、早送りブロックを切削送りに置換えて実行した場合の方が、実行時間を短縮できることが分かる。
【0040】
ここで、Tcut、Trpd、Tiplの具体的な計算方法を説明する。
切削送りの減速に要する時間Tcut[ms]は、送り速度やブロック長によらず、あらかじめ設定されている切削送りの時定数Tc[ms]である。
【0041】
早送りブロックの実行に要する時間Trpd[ms]は、早送りブロックが、早送り速度に達するブロック長よりも長いか否かに依存する。早送りでは、早送り速度Frと加減速時間(時定数Tr1)があらかじめ設定されており、加速度が変化しないように加減速が制御される。つまり、時定数に設定された時間だけ経過して初めて、工具は早送り速度に達することになる。このときの移動距離L[mm]は、早送り速度と加減速時間との積であり、(Fr/60,000)×Tr1である。
【0042】
L ≧ (Fr/60,000)×Tr1である場合、すなわち工具が早送り速度に到達する場合は、Trpdは式(1)で計算できる。
Trpd = (60,000×L)/Fr + Tr1 + Tr2 ・・(1)
【0043】
ただし、変数の意味は以下のとおりである(
図2参照)。
L:早送りブロックのブロック長[mm]
Tr1:早送りの時定数1[ms]
Tr2:早送りの時定数2[ms]
Fr:早送り速度[mm/min]
【0044】
L < (Fr/60,000)×Tr1である場合、すなわち工具が早送り速度に到達しない場合は、Trpdは式(2)で計算できる。
Trpd = 2×√((60,000×L×Tr1)/Fr) + Tr2
・・(2)
【0045】
式(2)は、直線形加減速における時刻tまでの移動距離、すなわち
図3に示す時間と速度の関係の図の面積から求められる。まず、直線形加減速における時刻t/2における速度は、早送りでは加速度が一定となる制御が行われることから(Fr/Tr1)*(t/2)である。時刻tまでの移動距離Lは、
図3の三角形の面積であるから(Fr/Tr1)*(t/2)*(t/2)となる。tについて解いて、ベル部の時定数Tr2を考慮すると式(2)となる。
【0046】
次に、早送りブロックを切削送りブロックに置換えて実行した場合の分配時間Tiplは、以下の式(3)で計算できる。
Tipl = (60,000×L)/Fcut ・・(3)
【0047】
ただし、変数の意味は以下のとおりである。
Fcut:切削送り速度(F)、又はあらかじめ設定された値[mm/min]
L:早送りブロックのブロック長[mm]
【0048】
本実施の形態によれば、数値制御装置100は、切削送り間に早送りブロックが含まれるプログラムの実行時間を、加工プログラムを変更せずに短縮することが可能となる。なお、上述のとおり、本実施の形態では短縮時間として加減速部分のみを考慮しているが、実際にはインポジションチェックに要する時間も短縮される。通常、送りの種類が切換わる際には、インポジションチェックのために数十msの時間を要するから、本実施の形態による時間短縮効果は、より大きくなる。
【0049】
また、本実施の形態では、工具の移動方向は同一方向に制限されない。そのため、ブロック間で複数の軸にまたがる移動指令がある場合にも適用が可能である。
【0050】
<実施例>
実施の形態1にかかる数値制御装置100が、以下の加工プログラムO0001を実行した場合の動作について説明する。なお、この加工プログラムを実行した場合の工具の動きを、
図4に示す。
【0051】
加工プログラム
O0001 (SAMPLE) ;
N10 G90 X100.0 Y100.0 Z100.0 ;
N20 S5000 ;
N30 G01 G91 X20.0 F2000.0 ;
N40 G00 Z-1.0 ;
N50 G01 X-20.0 ;
N60 G00 Z-5.0 ;
N70 G01 X20.0 ;
N80 G00 Z-2.0 ;
N90 G01 X-20.0 ;
:
:
【0052】
また、本実施例に関連する設定値は以下のとおりである。
切削送りの時定数Tc:24[ms]
早送りの時定数Tr1:80[ms]
早送りの時定数Tr2:16[ms]
早送り速度Fr:15,000[mm/min]
【0053】
プログラム解析指令部101は、プログラム実行中に、随時次ブロック以降の解析を行い、送りの種類を判定する。ここで、N30、N40、N50を解析すると、送りの種類が切削送り、早送り、切削送りと変化することが分かる。
【0054】
ここで、プログラム解析指令部101は、N40ブロックを早送りのまま実行した場合に、N30の減速開始からN50が開始されるまでの時間を計算する。まず、プログラム解析指令部101は、切削送りの減速に要する時間Tcutと早送りブロックの実行に要する時間Trpdをそれぞれ計算する。
【0055】
切削送りの減速に要する時間Tcutは、あらかじめ設定されている時定数Tcであるから、24[ms]である。
【0056】
早送りブロックの実行に要する時間Trpdは、そのブロック長により計算式が異なる。早送りブロックN40は、ブロック長が上述の式で求められる移動距離L(15,000/60,000*80=20[mm])未満である。よって、式(2)によりTrpdを計算する。
Trpd=2*√(60,000*1*80/15,000)+16≒52[ms]
【0057】
したがって、N40ブロックを早送りのまま実行すると、N30の減速開始からN50が開始されるまでの時間は、約76[ms](=24+52)である。
【0058】
次に、プログラム解析指令部101は、N40ブロックを切削送りに置換えた場合に、N30の減速開始からN50が開始されるまでの時間を計算する。早送りブロックを切削送りに置換えて実行した場合の分配時間Tiplは、式(3)で計算できる。
Tipl=(60,000*1/2,000)=30[ms]
【0059】
よって、切削送りに置換えて実行することで約46[ms](=76−30)の短縮となる。
【0060】
同様に、N50、N60、N70についても、送りの種類が切削送り、早送り、切削送りと変化することが分かる。先の場合との違いは、早送りブロックのブロック長のみである。
【0061】
切削送りの減速に要する時間Tcutは、あらかじめ設定されている時定数Tcであるから、24[ms]である。
【0062】
早送りブロックの実行に要する時間Trpdは、そのブロック長により計算式が異なる。早送りブロックN60についても、ブロック長が上述の式で求められる移動距離L(15,000/60,000*80=20[mm])未満である。よって、式(2)によりTrpdを計算する。
Trpd=2*√(60,000*5*80/15,000)+16=96[ms]
【0063】
したがって、N60ブロックを早送りのまま実行すると、N50の減速開始からN70が開始されるまでの時間は、120[ms](=24+96)である。
【0064】
一方、N60ブロックを切削送りに置換えた場合の分配時間Tiplは式(3)で計算できる。
Tipl=(60,000*5/2,000)=150[ms]
【0065】
そうすると、N60ブロックは早送りのまま実行した方が短時間である。したがって、プログラム解析指令部101は、N60ブロックを置換えずにそのまま実行する。
【0066】
<実施の形態2>
実施の形態1に加え、数値制御装置100は、次のような制御を行うこととしてもよい。
プログラム解析指令部101は、任意の条件判定を行い、その判定結果に応じ、早送りブロックを切削ブロックに置換える処理を実行するか否かを切換える。すなわち、所定の条件をみたす場合のみ、S3以降の、早送りブロックを切削ブロックに置換する処理を実施することとしてもよい。これにより、置換え処理が実行される条件を任意に設定することができるので、早送りブロックが不用意に切削送りに置換えられないよう制御することができる。
【0067】
また、早送りブロックを切削ブロックに置換えた場合、実行時間は短縮されるが、加工精度の低下が懸念される。このような場合において、加工精度が維持できるよう、置換えたブロックの前後では、必要に応じて任意のインポジション幅でのインポジションチェックを行うこととしてもよい。ここでのインポジション幅は、置換えを行った場合専用の値とすることが、時間短縮の観点から好ましい。
【0068】
また、早送りブロックを切削送りブロックに置換えた場合の移動速度に関しては、直前の切削ブロックの速度を継続することとしても良く、あらかじめ指定された速度としても良い。又は、いずれか一方の速度を選択可能としても良い。
【0069】
図8に、実施の形態2にかかる数値制御装置100の構成を示す。数値制御装置100は、実施の形態1で説明したプログラム指令解析部101に加え、インポジションチェック処理部102を有する。なお、後述のステップS6を実行しない場合には、数値制御装置100はインポジションチェック処理部102を備えなくても良い。
【0070】
インポジションチェック処理部102は、早送りブロックが切削ブロックに置換えられた場合に、置換えられた切削送りブロックの前後でインポジションチェックを実行する。
【0071】
図7のフローチャートを用いて、実施の形態2にかかる数値制御装置100の動作について説明する。なお、ステップS1、S3、S4及びS7については、実施の形態1と同じ動作を行うため、詳細な説明を省略する。
【0072】
S1:
プログラム解析指令部101は、プログラム実行中にブロックを先読みし、切削送り、早送り、切削送りのパターンを検出する。
【0073】
S2:
プログラム解析指令部101は、所定の条件判定の結果に応じ、早送りブロックを切削ブロックに置換える処理を実行するか否かを切換える。例えば、プログラム指令解析部101は、S1で検出されたパターンに含まれる早送りブロックの長さが、あらかじめ設定された距離未満であるか否かを判定する。ここで、早送りブロックの長さがあらかじめ設定された距離未満であれば、プログラム解析指令部101は、S3以降の処理を実行する。
【0074】
あるいは、プログラム解析指令部101は、早送りブロックの実行時間があらかじめ設定された時間未満である場合に、置換え処理を実行しても良い。あるいは、プログラム解析指令部101は、所定の加工領域の範囲内においてのみ、置換え処理を実行しても良い。あるいは、プログラム解析指令部101は、加工の際に使用する工具の種類(Tコード)に応じて、置換え処理を実行の有無を決定しても良い。あるいは、プログラム解析指令部101は、数値制御装置100の外部からの信号、加工プログラム内の指令など、任意のトリガやパラメータに基づいて置換え処理を実行の有無を決定しても良い。
【0075】
S3:
プログラム解析指令部101は、早送りブロックをそのまま実行した場合の実行時間と、切削送りに置換えた場合の実行時間とを計算する。
【0076】
S4:
プログラム解析指令部101は、早送りブロックを切削送りに置換えた方が実行時間が短くなる場合は、早送りブロックを切削送りブロックに置換し、S5以降の処理を実行する。その他の場合は、S7に遷移する。
【0077】
S5:
プログラム解析指令部101は、S4で置換えられた切削送りブロックにおける移動速度を決定する。例えば、直前の切削ブロックの速度を引継ぐか、あらかじめ定められた専用の速度を使用するか、何らかの手段で与えられる速度を使用するかを、あらかじめ設定されたパラメータ等に基づいて決定する。
【0078】
ここで、プログラム解析指令部101は、数値制御装置100の外部からの信号、加工プログラム内の指令など、任意のパラメータに基づいて、使用すべき移動速度の種類や、移動速度の値を決定してもよい。
【0079】
S6:
インポジションチェック処理部102は、S4で置換えられた切削送りブロックの前後で、所定のインポジション幅でインポジションチェックを行う。
【0080】
ここで、インポジションチェック処理部102は、数値制御装置100の外部からの信号、加工プログラム内の指令など、任意のパラメータに基づいて、インポジション幅を決定してもよい。
【0081】
また、インポジションチェック処理部102は、インポジション幅を軸ごとに独立に決定することとしてもよい。
【0082】
S7:
プログラム解析指令部101はブロックの実行を開始する。
【0083】
本実施の形態によれば、数値制御装置100は、切削送り間に早送りブロックが含まれるプログラムの実行時間を、加工プログラムを変更せずに、必要な加工精度を維持しつつ短縮することが可能となる。
【0084】
なお、本発明は上述の種々の実施の形態に限られたものではなく、趣旨を逸脱しない範囲で、構成要素の置換、省略、付加、順序の入れ替え等の変更を施すことが可能である。例えば、実施の形態2で説明したS2、S5、S6の各処理については、いずれかを省略しても構わない。
【0085】
また、上述の実施の形態では、ベル形加減速を考慮して説明を行ったが、Tr2=0とすれば直線形加減速となるため、本発明は、加減速タイプによらず有効である。