(57)【要約】【課題】非常に微小なブロック指令が大量にかつ高速に指令される場合であっても急激に減速したり停止することなく適切な速度で補間を行うことを可能にする。【解決手段】先読みされたブロック数ＰＮを読み出す（ｂ１）。先読み可能な数として設定されたブロック数ＭＡＸ＿ＮＵＭと、十分な量のブロックが先読みされていると見なす割合Ｋより求めた値とブロック数ＰＮを比較する（ｂ２）。ブロック数ＰＮの方が大きければ、現在速度より１補間周期分だけ増速し、ブロック数ＰＮの方が小さければ、現在速度より１補間周期分だけ減速し理論速度ＦＢを求める（ｂ３、ｂ４）。理論速度ＦＢと指令速度ＦＣを比較し（ｂ５）、小さい方を変更速度ＦＤとする（ｂ６、ｂ７）。この変更速度ＦＤで補間処理を行う。先読みされたブロック数によって、補間処理での速度が増減されるから、急激に減速したり停止することはない。【選択図】図６
2007094936.tif 000002
【特許請求の範囲】
【請求項１】
各軸がサーボモータで駆動される機械を制御するために、指令プログラムで指令された複数ブロックを先読みする先読み処理部を備え、指令速度（ＦＣ）と先読みされた指令ブロックにしたがって補間を行う補間部とによって指令プログラムの読み込みと補間を行う数値制御装置において、
加速度設定手段と、
先読みされた先頭ブロックの指令位置を距離先端とし該距離先端から現在の補間位置までの残距離を計算する残距離計算部と、
該残距離計算部によって計算された残距離に対して前記加速度設定手段によって設定された各軸の加速度にしたがって減速するとした場合に距離先端で予め設定された速度になるべき現在の補間位置での最大速度（ＦＥ）を計算する最大速度計算部と、
前記補間部での補間処理における実速度（ＦＡ）に対して前記加速度設定手段で設定された加速度にしたがって１補間周期分増速した速度と前記最大速度（ＦＥ）を比較し、最大速度（ＦＥ）の方が大の場合は実速度（ＦＡ）に対して１補間周期分増速した速度を理論速度（ＦＢ）とし、最大速度（ＦＥ）の方が小の場合は最大速度（ＦＥ）を理論速度（ＦＢ）として求める理論速度計算部と、
前記理論速度（ＦＢ）と前記指令速度（ＦＣ）を比較し、理論速度（ＦＢ）の方が大の場合は指令速度（ＦＣ）を変更速度（ＦＤ）とし、指令速度（ＦＣ）の方が大の場合は理論速度（ＦＢ）を変更速度（ＦＤ）とする変更速度計算部とを備え、
前記補間部では前記変更速度計算部で計算された変更速度（ＦＤ）にしたがって補間を行うとともに前記実速度（ＦＡ）を変更速度（ＦＤ）に置き換えることを特徴とする数値制御装置。
【請求項２】
前記最大速度計算部に予め設定された速度は０である請求項１に記載の数値制御装置。
【請求項３】
各軸がサーボモータで駆動される機械を制御するために、指令プログラムで指令された複数ブロックを先読みする先読み処理部を備え、指令速度（ＦＣ）と先読みされた指令ブロックにしたがって補間を行う補間部とによって指令プログラムの読み込みと補間を行う数値制御装置において、
加速度設定手段と、
前記先読み処理部において先読みされたブロック数と予め設定された十分な量のブロック数を比較し、先読みブロック数の方が大の場合は前記補間部での補間処理における実速度（ＦＡ）に対して前記加速度設定手段で設定された加速度にしたがって１補間周期分増速した速度を理論速度（ＦＢ）とし、先読みブロック数の方が小の場合は実速度（ＦＡ）に対して設定された加速度にしたがって１補間周期分減速した速度を理論速度（ＦＢ）とする理論速度計算部と、
前記理論速度（ＦＢ）と前記指令速度（ＦＣ）を比較し、理論速度（ＦＢ）の方が大の場合は指令速度（ＦＣ）を変更速度（ＦＤ）とし、指令速度（ＦＣ）の方が大の場合は理論速度（ＦＢ）を変更速度（ＦＤ）とする変更速度計算部とを備え、
前記補間部では前記変更速度計算部で計算された変更速度（ＦＤ）にしたがって補間を行うとともに前記実速度（ＦＡ）を変更速度（ＦＤ）に置き換えることを特徴とする数値制御装置。
【請求項４】
前記先読み処理部での最大先読みブロック数を設定する最大先読みブロック数設定手段と、
最大先読みブロック数に対して十分な量のブロックが先読みされていると見なす割合を設定する設定手段とを備え、
前記理論速度計算部では、設定最大先読みブロック数に設定割合を乗じて得られたブロック数を前記予め設定された十分な量のブロックとする請求項３に記載の数値制御装置。
【請求項５】
前記先読み処理部の処理をプロセッサが管理する複数レベルの中の先読み処理レベルで行い、前記補間部、前記残距離計算部、前記最大速度計算部、前記理論速度計算部、および前記変更速度計算部の処理を前記プロセッサが管理する複数レベルの中の先読み処理レベルよりも高い補間レベルで行うことを特徴とする請求項１又は請求項２に記載の数値制御装置。
【請求項６】
前記先読み処理部の処理をプロセッサが管理する複数レベルの中の先読み処理レベルで行い、前記補間部、前記理論速度計算部、および前記変更速度計算部の処理を前記プロセッサが管理する複数レベルの中の該先読み処理レベルよりも高い補間レベルで行うことを特徴とする請求項３又は請求項４に記載の数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工作機械、各種加工機等の機械を制御する数値制御装置に関する。特にプログラムから指令ブロックを先読みして実行可能なデータを作成し、該データに基づいて補間処理を行う際に、先読み処理部の遅れで補間を行うに十分な指令ブロックが読み込まれてないときの対策技術に関する。
【背景技術】
【０００２】
数値制御装置においては、プログラムで指令された指令ブロックを１つずつ読み込んで解釈し実行可能なデータに変換する先読み処理を行う。この先読み処理で得られた実行データに基づいて補間処理部で補間処理して各軸サーボモータの制御部に移動指令を出力する。  
しかし、短い移動指令が連続するときなど、補間処理が終了したにも拘わらず、次のブロックの指令に対する先読み処理が終了していない場合には、補間処理ができず、動作が停止する場合がある。
【０００３】
例えば、特許文献１に記載されているように、直線加工がプログラムによる指令速度Ｆが一定で、Ｎ１〜Ｎ７のブロックにより図１０でベクトルで示すように指令されているものとする。このときの送り速度は図１１に示すものとなる。一方、先読み処理における最小先読み処理時間に対応する許容最小移動時間をＴａ、ブロックで指令されている移動距離をＬとすると、該指令移動距離Ｌを指令速度Ｆで割った時間（Ｌ／Ｆ）が当該ブロックでの指令移動距離を移動する時間である。この時間（Ｌ／Ｆ）が許容最小移動時間Ｔａより小さいと、図１２に示すように、モータの移動が停止してしまい、断続的な移動となる。
【０００４】
そこで、特許文献１に記載された発明は、ブロックの移動距離Ｌとから許容最大送り速度を、
Ｆｄ＝Ｌ／Ｔａ
として求め、指令送り速度Ｆが許容最大送り速度Ｆｄよりも大きいときには、実際の送り速度を許容最大送り速度Ｆｄとしている。
【０００５】
また、各ブロック毎の加工形状や加工種類等のブロックで指令している要素の種類によって、先読み処理部において各要素の解釈に要する先読み処理の時間が異なることから、この要素による処理時間を考慮した先読み処理時間に対応する許容最小移動時間Ｔａを求め許容最小移動時間Ｔａとブロックの移動距離Ｌとから許容最大送り速度を、
Ｆｄ＝Ｌ／Ｔａ
として求め、指令送り速度Ｆが許容最大送り速度Ｆｄよりも大きいときには、実際の送り速度を許容最大送り速度Ｆｄとするようにしたものも提案されている（特許文献２参照）。
【０００６】
また、前述した特許文献１に記載された方法では、各ブロック毎に速度が変化するという問題があることから、先読み処理部の先読み処理時間に対応して１ブロックで指令された移動距離だけ移動するときに停止することなく移動できる許容最小移動時間をｔａとし、先読み処理部において先読みされた複数ブロックｎの総移動距離Ｌと速度制御係数Ｋから許容最大送り速度を
Ｖａ＝（Ｌ／（ｔａ・ｎ））・Ｋ
として求め、指令送り速度Ｆが許容最大送り速度Ｖａよりも大きいときには、実際の送り速度を許容最大送り速度Ｖａとする方法も提案されている（特許文献３参照）。
【０００７】
【特許文献１】特開平７−１９１７２８号公報
【特許文献２】特許第３１５１２５６号公報
【特許文献３】特許第３１８８３９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上述した従来技術では、先読み処理部において１ブロック毎に移動距離Ｌと許容最小移動時間Ｔａとから実際の送り速度を求めている。特許文献２に記載された方法では許容最小移動時間Ｔａをより細かな条件から求めるようにした点が特許文献１に記載の方法と異なる。又、特許文献３に記載された方法は、複数ブロックから実際の送り速度を求めるようにした点であり、先読み処理部において１ブロック毎に移動距離Ｌと許容最小移動時間Ｔａとから実際の送り速度を求めている点では同様である。
【０００９】
しかし、プログラムの各ブロックで指令された移動距離Ｌを求めることは比較的簡単だが、許容最小移動時間Ｔａを正確に求めることは非常に難しい。正確に求めるには、特許文献２（図３）に記載されているように各要素によってどの程度の処理時間がかかるのかを前もって調査して設定しておくことになるが、それは簡単でない。また、これらの処理時間は各要素によって一定ではなく、数値制御装置の様々な条件（機種、ＣＰＵ能力、搭載機能など）によって相違する。したがって、数値制御装置の様々な条件毎に各要素の処理時間を前もって調査して設定しておくことになり、非常に煩雑である。しかし、そのようにしなければ許容最小移動時間Ｔａは不正確であり、正確な実際の送り速度を求める計算はできない。
【００１０】
また、最近の数値制御装置は補間技術が向上し、いくつかの移動距離の短いブロック群が指令されても、それらをまとめて補間することができる。そのため、いくつかの移動距離の短いブロック群が指令されても送り速度が急激に変化することはない。例えば、図１０で示した例の場合、この複数のブロックをまとめて補間する技術を用いれば、図１３に示すように、速度の変化を抑えることができる。したがって、先読み処理部において１ブロック毎に移動距離Ｌと許容最小移動時間Ｔａとから実際の送り速度を求める必要性は少なくなっている。
【００１１】
しかし、一般的な傾向としてより高速で高精度な加工を行うために非常に微小なブロック指令が大量にかつ高速に指令される傾向がある。そのような場合、先読み処理部におけるブロック先読み処理が間に合わず、補間部に十分なブロックの量が供給できず、急激に減速したり停止する場合がある。  
そこで、本発明の目的は、非常に微小なブロック指令が大量にかつ高速に指令される場合であっても急激に減速したり停止することなく適切な速度で補間を行うことを可能にすることにある。
【課題を解決するための手段】
【００１２】
本願請求項１に係る発明は、各軸がサーボモータで駆動される機械を制御するために、指令プログラムで指令された複数ブロックを先読みする先読み処理部を備え、指令速度（ＦＣ）と先読みされた指令ブロックにしたがって補間を行う補間部とによって指令プログラムの読み込みと補間を行う数値制御装置において、加速度設定手段と、先読みされた先頭ブロックの指令位置を距離先端とし該距離先端から現在の補間位置までの残距離を計算する残距離計算部と、該残距離計算部によって計算された残距離に対して前記加速度設定手段によって設定された各軸の加速度にしたがって減速するとした場合に距離先端で予め設定された速度になるべき現在の補間位置での最大速度（ＦＥ）を計算する最大速度計算部と、前記補間部での補間処理における実速度（ＦＡ）に対して前記加速度設定手段で設定された加速度にしたがって１補間周期分増速した速度と前記最大速度（ＦＥ）を比較し、最大速度（ＦＥ）の方が大の場合は実速度（ＦＡ）に対して１補間周期分増速した速度を理論速度（ＦＢ）とし、最大速度（ＦＥ）の方が小の場合は最大速度（ＦＥ）を理論速度（ＦＢ）として求める理論速度計算部と、前記理論速度（ＦＢ）と前記指令速度（ＦＣ）を比較し、理論速度（ＦＢ）の方が大の場合は指令速度（ＦＣ）を変更速度（ＦＤ）とし、指令速度（ＦＣ）の方が大の場合は理論速度（ＦＢ）を変更速度（ＦＤ）とする変更速度計算部とを備え、前記補間部では前記変更速度計算部で計算された変更速度（ＦＤ）にしたがって補間を行うとともに前記実速度（ＦＡ）を変更速度（ＦＤ）に置き換えて、補間処理における速度を制御することによって、先読みデータの不足を解消したものである。  
又、請求項２に係る発明は、前記最大速度計算部に予め設定された速度を０としたものである。
【００１３】
本願請求項３に係る発明は、各軸がサーボモータで駆動される機械を制御するために、指令プログラムで指令された複数ブロックを先読みする先読み処理部を備え、指令速度（ＦＣ）と先読みされた指令ブロックにしたがって補間を行う補間部とによって指令プログラムの読み込みと補間を行う数値制御装置において、加速度設定手段と、前記先読み処理部において先読みされたブロック数と予め設定された十分な量のブロック数を比較し、先読みブロック数の方が大の場合は前記補間部での補間処理における実速度（ＦＡ）に対して前記加速度設定手段で設定された加速度にしたがって１補間周期分増速した速度を理論速度（ＦＢ）とし、先読みブロック数の方が小の場合は実速度（ＦＡ）に対して設定された加速度にしたがって１補間周期分減速した速度を理論速度（ＦＢ）とする理論速度計算部と、前記理論速度（ＦＢ）と前記指令速度（ＦＣ）を比較し、理論速度（ＦＢ）の方が大の場合は指令速度（ＦＣ）を変更速度（ＦＤ）とし、指令速度（ＦＣ）の方が大の場合は理論速度（ＦＢ）を変更速度（ＦＤ）とする変更速度計算部とを備え、前記補間部では前記変更速度計算部で計算された変更速度（ＦＤ）にしたがって補間を行うとともに前記実速度（ＦＡ）を変更速度（ＦＤ）に置き換えて、補間処理における速度を制御することによって、先読みデータの不足を解消したものである。
【００１４】
又、請求項４に係る発明は、請求項３に係る発明において、十分な量のブロックを予め設定する手段として、前記先読み処理部での最大先読みブロック数を設定する最大先読みブロック数設定手段と、最大先読みブロック数に対して十分な量のブロックが先読みされていると見なす割合を設定する設定手段とを設け、前記理論速度計算部では、設定最大先読みブロック数に設定割合を乗じて得られたブロック数を前記予め設定された十分な量のブロックとしたものである。
【００１５】
請求項５に係る発明においては、請求項１、請求項２に係る発明において、前記先読み処理部の処理をプロセッサが管理する複数レベルの中の先読み処理レベルで行い、前記補間部、前記残距離計算部、前記最大速度計算部、前記理論速度計算部、および前記変更速度計算部の処理を前記プロセッサが管理する複数レベルの中の先読み処理レベルよりも高い補間レベルで行うものとした。  
又、請求項６に係る発明は、請求項３、請求項４に係る発明において、前記先読み処理部の処理をプロセッサが管理する複数レベルの中の先読み処理レベルで行い、前記補間部、前記理論速度計算部、および前記変更速度計算部の処理を前記プロセッサが管理する複数レベルの中の該先読み処理レベルよりも高い補間レベルで行うものとした。
【発明の効果】
【００１６】
非常に微小な移動指令のブロック指令が大量に指令された場合であっても、先読み処理部におけるブロック先読み処理が間に合わなくなることはなく、補間部に十分なブロックの量が供給でき、その結果急激に減速したり停止することなく、適切な速度で補間を行うことが可能になる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施形態を図面と共に説明する。  
図１は、本発明の第１の実施形態の要部を示す機能ブロック図である。数値制御装置のハードウェアとしては、従来の数値制御装置と何ら変わりはなく、該数値制御装置に本発明に関係するソフトウェアが格納され、実行される点において相違するものである。図１は、この実施形態における該本発明が特徴とするソフトウェア部分を中心とした機能ブロック図である。又、数値制御装置のハードウェアの構成は、従来と同様であることから図示していない。
【００１８】
図１において、符号１は、加工プログラム等のＮＣプログラムよりブロックを複数先読みし、そのブロックでの指令を解釈して実行データを作成する先読み処理部である。この先読みデータに基づいて補間部２は、補間処理して各軸のサーボモータを駆動するＸ，Ｙ，Ｚ軸のサーボ制御部９ｘ、９ｙ，９ｚに移動指令を分配する。
【００１９】
これまでの説明は、従来の数値制御装置の処理と同一であるが、補間部２にて補間処理を行うときの指令速度を制御する点が本実施形態では従来と相違するものであり、そのために、本実施形態は、加速度設定手段３、残距離計算部７，最大速度計算部８、実速度記憶部５，理論速度計算部４，変更速度計算部６等を備える点に特徴を有するものである。
【００２０】
残距離計算部７は現在の補間位置から先読み処理部１で先読みされている先頭ブロックでの指令位置である距離先端までの残距離を計算する。最大速度計算部８では、加速度設定手段３で設定された各軸の加速度を越えない合成速度方向の最大の加速度で減速するとした場合に距離先端で速度が所定値（この実施形態では０）になるべき現在の補間位置での最大速度ＦＥを計算する。理論速度計算部４では、この最大速度と、補間部２の実速度記憶部５に記憶する実速度ＦＡに基づいて理論速度ＦＢを求める。変更速度計算部６ではプログラムにおいてＦアドレスで指令された速度にオーバライドがかけられている速度ＦＣと理論速度ＦＢを比較し、小さい方を変更速度ＦＤとして補間部２に出力し、補間部２ではこの変更速度ＦＤで、補間処理を行い、実速度ＦＡとしてその記憶部５に記憶する。
【００２１】
以上が本実施形態の概要であるが、図２に示したプログラム指令を例にとって、以下詳細に説明する。  
図２に示した例では、Ｘ軸、Ｙ軸に対する移動指令がベクトル（矢印）で指令され、先読み処理部１でブロックＮ１〜Ｎ７まで、読み込まれ実行データが作成されているものとする。そして、現在ブロックＮ１の途中まで補間が行われているとする。また、数値制御装置に備えられたキーボード等のデータ入力手段で構成された加速度設定手段３によって、加速度が、例えば、次のように設定されているものとする。
【００２２】
Ｘ軸    １００００ｍｍ／ｓｅｃ2
Ｙ軸      ５０００ｍｍ／ｓｅｃ2
また、指令速度は、指令プログラムにおいてＦアドレスで指令された速度にオーバライドがかけられている速度ＦＣが指令されているものとする。
【００２３】
残距離計算部７は現在の補間位置から先読みされた先頭ブロックＮ７での指令位置である距離先端までの残距離を計算する。そして、この残距離の合計だけ移動したとき、移動速度が設定値（本実施形態では速度０）になるべき現在の補間位置での最大速度ＦＥを計算する。図３は、この現在実行中のブロックＮ１の指令から先読みした先頭のブロックＮ７の指令による先端位置までの時間に対する合成速度の変化を示す図である。この図３において斜線部の面積で示される部分が残距離の合計に対応する。  
最大速度計算部８は、設定された各軸の加速度を越えない合成速度方向の最大の加速度で減速するとした場合に距離先端で速度０になるべき現在の補間位置での最大速度ＦＥを計算する。
【００２４】
Ｘ軸のみの指令ブロックでの加速度は１００００ｍｍ／ｓｅｃ2であり、Ｙ軸のみの指令ブロックでの加速度は５０００ｍｍ／ｓｅｃ2である。Ｘ軸、Ｙ軸ともに指令されているブロックでは、Ｘ軸、Ｙ軸の指令移動量をΔＸ，ΔＹとし、設定された各軸の加速度を越えない合成速度方向の最大の加速度をＡｔとすると、Ａｔは
Ａｔ＊ΔＸ／（ΔＸ2＋ΔＹ2）1/2  ≦１００００ｍｍ／ｓｅｃ2    …（１）
Ａｔ＊ΔＹ／（ΔＸ2＋ΔＹ2）1/2  ≦５０００ｍｍ／ｓｅｃ2      …（２）
を満たす最大の値となる。現在の補間位置からこれらの加速度Ａｔで減速した場合に距離先端で速度０となるべき現在の補間位置での最大速度ＦＥを求める。
【００２５】
実際の計算としては、先読みされた先頭ブロックＮ７における距離先端において速度０となるべき先頭ブロックＮ７の始点における速度ＦＥ７を求め、先頭ブロックの１個手前のブロックＮ６における終点速度が速度ＦＥ７となるようにその始点における速度ＦＥ６を求め、これを繰り返し、最終的には、現在の補間位置での最大速度ＦＥを求める。
【００２６】
各ブロックにおける残距離（各ブロックで指令されている移動量で、現在補間中のブロックＮ１では、現在位置から該ブロックＮ１で指令された終点位置までの残距離）をＬ、ブロックの終点速度をＶｅ、始点速度をＶｓとし、当該ブロックにおいて上述した（１）、（２）式を満たす最大の値として求められる合成速度方向の最大の加速度Ａｔより、ブロックの始点速度Ｖｓは次の（３）式より求められる。
【００２７】
Ｖｓ＝（２Ｌ・Ａｔ＋Ｖｅ2）1/2    …（３）
まず、先読みされた先頭ブロックＮ７における合成速度方向の最大の加速度Ａｔを、上述した（１）、（２）式を満たす最大の値として求め、次に、距離先端において速度０となるべき先頭ブロックＮ７の始点における速度ＦＥ７を求める。上記（３）式において、Ｖｓ＝ＦＥ７、Ｖｅ＝０、Ａｔ＝求めた最大加速度値、Ｌ＝ブロックＮ７の移動指令量を代入することによって、ブロックＮ７の始点における速度ＦＥ７を求める。
【００２８】
次に先頭ブロックの１個手前のブロックＮ６に対して該ブロックＮ６における合成速度方向の最大の加速度Ａｔを求め、ブロックＮ６の終点において速度ＦＥ７となるべきブロックＮ６の始点における速度ＦＥ６を求める（（３）式にＶｓ＝ＦＥ６、Ｖｅ＝ＦＥ７、Ａｔ＝求めた最大加速度値、Ｌ＝ブロックＮ６の移動指令量を代入して速度ＦＥ６を求める）。
【００２９】
以下、このように先頭ブロックから順にそれらのブロックにおける合成速度方向の最大の加速度を求め、それらのブロックにおいて最大の加速度で減速する場合に指定された終点速度となるべき始点速度を求める。ブロックＮ１では、ブロックＮ１における合成速度方向の最大の加速度を求めブロックＮ１の終点において速度ＦＥ２となるべき現在の補間位置における速度ＦＥを求める。この場合、（３）式において、Ｖｓ＝ＦＥ、Ｖｅ＝ＦＥ２、Ａｔ＝ブロックＮ１での最大加速度値、Ｌ＝現在補間位置からブロックＮ１における終点位置までの残移動量を代入して速度ＦＥを求める。この速度ＦＥが、設定された各軸の加速度を越えない合成速度方向の最大の加速度で減速するとした場合に、距離先端で速度０になるべき現在の補間位置での最大速度ＦＥである。
【００３０】
理論速度計算部４では、まず、補間部２で補間処理として現時点において用いられ記憶部５に記憶されている実速度ＦＡに対して加速度設定手段３で設定されている加速度に基づいて１補間周期分増設した速度をＦＡＰ１として求め、最大速度ＦＥがＦＡＰ１よりも大である場合は十分な量のブロックが先読みされていると判断してＦＡＰ１を理論速度ＦＢとし、最大速度ＦＥがＦＡＰ１よりも小である場合は十分な量のブロックが先読みされていないと判断して最大速度ＦＥを理論速度ＦＢとする。
【００３１】
例えば１補間周期を１ｍｓｅｃとし、現在補間中のブロック（Ｎ１）のＸ軸、Ｙ軸の指令移動量をΔＸ１，ΔＹ１とすると、上記（１）、（２）式において、ΔＸ＝ΔＸ１、ΔＹ＝ΔＹ１、Ａｔ＝Ａｔ１と代入し、設定された各軸の加速度を越えない合成速度方向の最大の加速度Ａｔ１を求め、
ＦＡＰ１＝ＦＡ＋Ａｔ１＊１ｍｓｅｃ
として１補間周期分増速した速度ＦＡＰ１として求める。
【００３２】
そして、
最大速度ＦＥ≧１補間周期分増速した速度ＦＡＰ１
であれば、十分な量のブロックが先読みされていると判断して１補間周期分増速した速度ＦＡＰ１を理論速度ＦＢとして、変更速度計算部６に出力する。
【００３３】
最大速度ＦＥ＜１補間周期分増速した速度ＦＡＰ１
であれば、十分な量のブロックが先読みされていないと判断して最大速度ＦＥを理論速度ＦＢとして、変更速度計算部６に出力する。
【００３４】
変更速度計算部６では、理論速度ＦＢとプログラムで指令されオーバライドがかけられている指令速度ＦＣとを比較し、
理論速度ＦＢ≧指令速度ＦＣ
ならば指令速度ＦＣを変更速度ＦＤとし
指令速度ＦＣ＞理論速度ＦＢ
ならば理論速度ＦＢを変更速度ＦＤとして補間部２に出力する。  
補間部２では該変更速度ＦＤにしたがって補間を行うとともに、実速度記憶部５に記憶する実速度ＦＡをこの変更速度ＦＤに置き換えて記憶する。
【００３５】
図４は、数値制御装置のプロセッサが補間処理に使用する速度を変更速度ＦＤとして求める所定周期毎実施される処理（残距離計算部７，最大速度計算部８，理論速度計算部４，変更速度計算部６の処理）のフローチャートである。
【００３６】
まず、先読み処理部１で先読みされ実行データが作成された先頭ブロックで指令された位置から現在の補間位置までの残距離を各ブロック毎に求める。すなわち、残距離計算部７の処理を行う（ステップａ１）。次に、加速度設定手段３で設定されている各軸毎の最大加速度により、合成速度方向の許容される最大加速度Ａｔを各ブロック毎求め、先頭ブロックで指令された距離先端において速度が０となるものとして先頭ブロックから各ブロックの始点速度（ＦＥ７〜ＦＥ２）を求める。最後に、現在補間中のブロックにおける補間位置での最大速度ＦＥを求める。すなわち、最大速度計算部８の処理を行う（ステップａ２）。
【００３７】
次に、当該時点の補間処理で使用されている実速度ＦＡを、当該補間中のブロック指令において求められる加速度に従って１補間周期分だけ増速させた速度ＦＡＰ１を求める（ステップａ３）。該求めた速度ＦＡＰ１とステップａ２で求めた最大速度ＦＥを比較し（ステップａ４）、ＦＥ≧ＦＡＰ１であれば、ＦＡＰ１を理論速度ＦＢとする（ステップａ５）。又、ＦＥ＜ＦＡＰ１であれば、ＦＥを理論速度ＦＢとする（ステップａ６）。このステップａ３〜ステップａ６までの処理が理論速度計算部４の処理に対応する。
【００３８】
次に、求められた理論速度ＦＢと、プログラムで指令された速度にオーバライド手段でオーバライドが掛けられていればそのオーバライドが掛けられた速度ＦＣとを比較し（ステップａ７）、ＦＢ≧ＦＣであれば、指令速度ＦＣを変更速度ＦＤとし（ステップａ８）、ＦＢ＜ＦＣであれば、理論速度ＦＢを変更速度ＦＤとする（ステップａ９）。このステップａ７〜ステップａ９の処理が、変更速度計算部６の処理となる。こうして、変更速度ＦＤが求まると、補間部２では、この変更速度ＦＤによって補間処理を行い、実速度ＦＡとして記憶する記憶部５をこの変更速度ＦＤに書き換える。
【００３９】
上述した処理を所定周期毎実行し、先読み処理部で新たなブロックが先読みされ実行データが求められる毎に、先読みされたブロックの先端指令位置が変更され、その先端ブロックの指令位置を示す距離先端によって、上述した処理により、順次、変更速度ＦＤが求められることになる。そして、プログラムによる移動指令のブロックが終了すると、該最終移動指令のブロックで指令された位置で速度が０となるように制御されることになる。
【００４０】
なお、上述した実施形態では、先読みした先頭ブロックで指令される位置の距離先端で速度が０となるようにしたが、距離先端で所定値になるようにしてもよいものであり、先読み処理部で先読みされた移動指令のブロックが連続していないような場合には、位置決め停止指令として、このときは、距離先端で速度を所定値から０に代えるようにしてもよいものである。
【００４１】
上述した実施形態では、先読み処理部１で先読みしたブロックの先頭ブロックで指令される位置の距離先端で速度が０となるように、補間処理での速度を制御するようにしたが、先読み処理部で所定数のブロックが先読みされていれば、速度を増速し、先読みブロック数が所定数に満たないときには速度を減速し、この増速、減速の制御を行うことによって、補間処理を行うとき、先読みされ実行データに変換されたブロックがなくなり、機械の動作が停止するのを防止するようにしてもよい。この例を本発明の第２の実施形態として、以下説明する。
【００４２】
図５は、本発明の第２の実施形態におけるの要部機能ブロック図である。図１に示した第１の実施形態と相違する点は、第１の実施形態において設けられていた残距離計算部７，最大速度計算部８が設けられず、先読み処理部１で先読みされる最大先読みブロック数ＭＡＸ＿ＮＵＭを設定するＭＡＸ＿ＮＵＭ設定手段１０と、最大先読みブロック数ＭＡＸ＿ＮＵＭに対して十分な量のブロックが先読みされていると見なす割合Ｋを設定するＫ設定手段１１とが設けられている点、及び、理論速度計算部４の処理が相違するものである。
【００４３】
又、図６は、この第２の実施形態における数値制御装置のプロセッサが所定周期毎実施し、補間処理に使用する速度を求める処理（理論速度計算部４，変更速度計算部６の処理）のフローチャートである。
【００４４】
この第２の実施形態では、先読み処理部で先読みされ実行データが作成されて記憶される最大先読みブロック数をＭＡＸ＿ＮＵＭ設定手段１０で設定する。又、プログラムで指令された速度にオーバライドを掛けた速度まで、補間における速度を上昇しても、速度変化が大きく機械にショック等を与えない程度に十分な量のブロックが先読みされていると見なす割合ＫをＫ設定手段に設定する。なお、ＭＡＸ＿ＮＵＭ設定手段１０、Ｋ設定手段は数値制御装置に設けられたキーボード、表示器、記憶手段等で構成され、入力された数値を数値制御装置内に記憶するメモリ等で構成される。
【００４５】
そこで、例えば、図７に示すような指令プログラムの場合において、現在Ｎ００２のブロックを実行中とする。また、ＭＡＸ＿ＮＵＭ＝１０、Ｋ＝０．５、加速度設定手段３でＸ軸、Ｙ軸に対して加速度が、先の例と同じように、Ｘ軸方向加速度＝１００００ｍｍ／ｓｅｃ2、Ｙ軸方向加速度＝５０００ｍｍ／ｓｅｃ2と設定されているとした例を参照しながら以下説明する。又、指令速度ＦＣは、この指令プログラムにおいてＦ＝アドレスで指令された速度「２０００」にオーバライドがかけられている速度とする。なお、先読み処理部１に十分時間的な余裕がある場合は先読み可能なブロック数の１０個のブロックが先読みされ、Ｎ００３からＮ０１２のブロックまで先読みされることになる。
【００４６】
ここで、まず、数値制御装置のプロセッサは先読み処理部において読み込まれているブロック数ＰＮを読み出し（ステップｂ１）、ＭＡＸ＿ＮＵＭ設定手段１０に設定されているブロック数（ＭＡＸ＿ＮＵＭ）にＫ設定手段１１に設定されている割合Ｋを乗じた値と、読み込まれたブロック数ＰＮを比較する（ステップｂ２）。先の例では、（ＭＡＸ＿ＮＵＭ）＊Ｋ＝５であり、このブロック数５は、指令速度ＦＣまで補間処理における速度（実速度ＦＡ＝変更速度ＦＤ）を上昇しても機械にショック等を与えない程度の十分な量のブロックであることから（このような機械にショックを与えないようにＫの値が設定される）、理論速度計算部４においては、
ＰＮ≧（ＭＡＸ＿ＮＵＭ）＊Ｋ＝５
の場合は、十分な量のブロックが先読みされていると判断して、実速度ＦＡに対して該設定された加速度にしたがって、第１の実施形態と同様にして求められた１補間周期分増速した速度を理論速度ＦＢとする（ステップｂ３）。又、
ＰＮ＜（ＭＡＸ＿ＮＵＭ）＊Ｋ＝５
の場合は、十分な量のブロックが先読みされていないと判断して実速度ＦＡに対して該設定された加速度にしたがって、１補間周期分減速した速度を理論速度ＦＢとする（ステップｂ４）。
【００４７】
つまり、現在Ｎ００２のブロックを実行中に、先読み処理部においてＮ００３からＮ００７以降のブロックまで先読みされている場合は十分な量のブロックが先読みされていると判断して実速度ＦＡに対して該設定された加速度にしたがって１補間周期分増速した速度を理論速度ＦＢとし、先読み処理部においてＮ００３からＮ００６以前のブロックまでしか先読みされていない場合は十分な量のブロックが先読みされていないと判断して、実速度ＦＡに対して該設定された加速度にしたがって１補間周期分減速した速度を理論速度ＦＢとする。
【００４８】
１補間周期分増速した、または減速した速度については、先の第１の実施形態と同様に、例えば１補間周期が１ｍｓｅｃとし、現在補間中のブロックのＸ軸、Ｙ軸の指令移動量をΔＸ１，ΔＹ１とすると、設定された各軸の加速度を越えない合成速度方向の最大の加速度Ａｔ１を、上記（１）、（２）式において、ΔＸ＝ΔＸ１、ΔＹ＝ΔＹ１、Ａｔ＝Ａｔ１と代入し、（１）、（２）式を満たし、設定された各軸の加速度を越えない合成速度方向の最大の加速度Ａｔ１を求め、実速度記憶部５に記憶する当該時点で補間処理を行っている実速度ＦＡに、増速する場合は、求めた合成速度方向の最大の加速度Ａｔ１に１ｍｓｅｃを乗じた値を加算して、理論速度ＦＢを求める（ステップｂ３）。
【００４９】
ＦＢ＝ＦＡ＋Ａｔ１＊１ｍｓｅｃ
又、減速する場合は、実速度ＦＡに、合成速度方向の最大の加速度Ａｔ１に１ｍｓｅｃを乗じた値を減算して、理論速度ＦＢを求める（ステップｂ４）。
【００５０】
ＦＢ＝ＦＡ−Ａｔ１＊１ｍｓｅｃ
このステップｂ１〜ステップｂ４までの処理がこの第２の実施形態の理論速度計算部４の処理となる。
【００５１】
次に、求められた理論速度ＦＢと指令速度ＦＣを比較し（ステップｂ５）、
ＦＢ≧ＦＣ
ならば指令速度ＦＣを変更速度ＦＤとし（ステップｂ６）、
ＦＣ＞ＦＢ
ならば理論速度ＦＢを変更速度ＦＤとする（ステップｂ７）。  
このステップｂ５〜ステップｂ７の処理がこの第２の実施形態における変更速度計算部６の処理である。
【００５２】
補間部２では該変更速度ＦＤにしたがって補間を行うとともに、実速度ＦＡを記憶する記憶部の記憶値をこの変更速度ＦＤに書き換える。
【００５３】
この第２の実施形態では、以上のようにして、先読み処理部１で先読みされているブロック数ＰＮが（ＭＡＸ＿ＮＵＭ）＊Ｋの値（先の例で「５」）以上であれば、補間処理における速度は増速され、（ＭＡＸ＿ＮＵＭ）＊Ｋの値に達していなければ、補間処理における速度は減速され、先読み処理部１で先読みされているブロック数ＰＮに応じて、補間処理における速度が制御されることになることから、先読みされたブロック数が足りなくて移動が急停止したり、急激な速度変化が生じることはない。
【００５４】
数値制御装置では、通常、先読み処理部１の先読み処理は、数値制御装置のプロセッサが管理する複数レベルの中の先読み処理レベルで行い、補間部２の補間処理はプロセッサが管理する複数レベルの中で、先読み処理レベルよりも高い補間レベルで行う。そして、それらは図８に示すように、一定周期毎に行われる。  
つまり、補間処理が最優先され、先読み処理は補間処理の余った時間の中で他の処理と共に行う。そのため、非常に微小な移動を指令するブロックが大量に連続して指令されると、先読み処理部におけるブロック先読み処理が間に合わず、補間部に十分なブロックの量が供給できず、急激に減速したり停止することが起こりうる。
【００５５】
そこで、上述した第１、第２の実施形態においては、図９に示すように、理論速度計算部４、変更速度計算部６、残距離計算部７、および最大速度計算部８を補間レベルにて補間処理の前に行うようにする。このことによって、補間レベルの時間が少しかかることになるが、先読み処理部におけるブロック先読み処理が間に合わず補間部に十分なブロックの量が供給できず、その結果急激に減速したり停止することを防ぎ、適切な速度で補間を行うことが可能になる。
【図面の簡単な説明】
【００５６】
【図１】本発明の第１の実施形態の要部を示す機能ブロック図である。
【図２】プログラム指令の例を示す図である。
【図３】本発明の第１の実施形態において、プログラム指令の例による現在実行中のブロックＮ１の指令から先読みした先頭のブロックの指令による先端位置までの時間に対する合成速度の変化を示す図である。
【図４】同第１の実施形態における数値制御装置のプロセッサが補間処理に使用する速度を変更速度ＦＤとして求める処理のフローチャートである。
【図５】本発明の第２の実施形態におけるの要部機能ブロック図である。
【図６】同第２の実施形態における数値制御装置のプロセッサが補間処理に使用する速度を求める処理のフローチャートである。
【図７】指令プログラムの例を示す図である。
【図８】従来の数値制御装置で一定周期毎実行される処理レベルの説明図である。
【図９】本発明における第１、第２の実施形態において一定周期毎実行される処理レベルの説明図である。
【図１０】プログラムのブロックＮ１〜Ｎ７における移動指令をベクトルで示した直線加工の例の説明図である。
【図１１】図１０に示したプログラム例における送り速度の説明図である。
【図１２】図１０に示したプログラム例において生じる断続的な移動の説明図である。
【図１３】いくつかのブロックの指令をまとめて補間する従来の技術を適用したとき、図１０に示したプログラム例において生じる移動の説明図である。
【符号の説明】
【００５７】
ＦＡ  実速度
ＦＥ  最大速度
ＦＢ  理論速度
ＦＣ  指令速度
ＦＤ  変更速度
【図１】
2007094936.tif 000003
【図２】
2007094936.tif 000004
【図３】
2007094936.tif 000005
【図４】
2007094936.tif 000006
【図５】
2007094936.tif 000007
【図６】
2007094936.tif 000008
【図７】
2007094936.tif 000009
【図８】
2007094936.tif 000010
【図９】
2007094936.tif 000011
【図１０】
2007094936.tif 000012
【図１１】
2007094936.tif 000013
【図１２】
2007094936.tif 000014
【図１３】
2007094936.tif 000015