(57)【特許請求の範囲】
【請求項１】
プログラムに指令された複数の動作命令を順番に実行して移動体の動作を制御する数値制御装置において、
プログラムに指令された動作命令を解析し解析データを生成する解析処理部と、
前記解析データ、及び予め記憶された補間・加減速のパラメータに基づいて、次の動作の動作開始タイミングを求めるタイミング制御部と、
前記解析データ、前記補間・加減速のパラメータ、及び前記動作開始タイミングに従い補間・加減速を行う位置指令を生成する補間・加減速部と、
前記位置指令に追従するように駆動部をサーボ制御するサーボ制御部とを備え、
前記タイミング制御部は、
現在の動作の目標位置までの残距離が終点許容誤差に一致する時刻を算出し、次の動作により移動する距離が、前記現在の動作の目標位置までの残距離が終点許容誤差に一致する時刻において、始点許容誤差に一致するように、前記動作開始タイミングを求める
ことを特徴とする数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ＮＣプログラムに指令された複数の動作命令を順番に実行して移動体の動作を制御する数値制御装置に関するものであり、特に現在の動作から次の動作へ移行する際に、現在の動作の位置決めがその目標位置に対して所定の範囲に到達すれば、次の動作を開始するインポジションチェックの制御に関するものである。
【背景技術】
【０００２】
一般に数値制御装置（ＮＣ装置）では、読み込んだＮＣプログラムを１ブロック（行）ずつ順番に実行することによって、工作機械の一連のモーションを制御する。例えば、部品加工用の工作機械においては、工具交換のための工具交換位置への移動、工具交換、工具回転、加工開始位置への位置決め（アプローチ）、切削送り開始、所定の形状を加工、早戻し、工具回転停止、原点位置への復帰、といった一連の動作（モーション）をプログラムに指令し、それぞれの命令（コマンド）を順に実行することで、加工を行う。
【０００３】
例えば、図１８に示したようなＮ１、Ｎ２の２つのブロックからなるプログラムに従って一連の動作を行う場合を考える。ここでＮ１、Ｎ２はブロック（行）毎に記述されたシーケンス番号である。１番目のブロックＮ１にはＸ１００．への位置決め動作（Ｇ０）、２番目のブロックＮ２にはＹ１００．への位置決め動作（Ｇ０）が命令されている。この一連の動作は、初期位置を原点とすると、ＸＹ平面上において図１９に示す経路となる。ここで点ＰはＮ１のブロックに指令されている位置決め動作の終点である。
【０００４】
ここで、点Ｐにおいては、例えば下記文献に開示されるように、Ｎ１のブロックの位置決めが、その目標位置に対して所定の要求精度（許容誤差＝インポジション幅）の範囲に到達すれば、次のＮ２のブロックの移動を開始するといった制御が通常行われている（例えば、特許文献１参照）。
【０００５】
この動作の速度波形を図２０に示す。ここで、横軸ｔは時刻であり、Ｖｘ、ＶｙはそれぞれＸ軸、Ｙ軸方向の速度である。図において、Ｎ１の位置決め動作であるＸ軸方向への移動の終点Ｐまでの残距離が所定の要求精度（Ｌ１）の範囲内になった時点（時刻ｔ１ｂ）で、次のＮ２の位置決め動作であるＹ軸方向の移動を開始する。実際のＮ１の動作が完全に完了する（時刻ｔ１）前に、次の動作を開始することで、サイクルタイム短縮を図り、かつそのときの運動誤差が図２１に示すように、目標位置に対して要求精度（Ｌ１）の範囲内となるように制御を行う。
【０００６】
【特許文献１】特開平１１−５８１７７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来の技術においては、ある動作（動作１とする）から次の動作（動作２とする）へ移動する際に、動作１の残距離に基づいて、次の移動（動作２）の開始タイミングを決めているため、タイミング調整可能な範囲は限られ、多様な開始タイミングの制御ができなかった。特に、従来の技術では所定の精度を保ちながらサイクルタイムを十分に短縮するという制御ができなかった。
【０００８】
本発明は、上記に鑑みてなされたものであって、現在の動作の残距離により次の動作の開始タイミングを決める従来方法では不可能であったより自由度の高い開始タイミングの制御方法を可能とし、目的に応じた多様な動作を可能とする数値制御装置を提供することを目的とし、特に、精度を保ちながらサイクルタイムをさらに短縮する数値制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本発明の数値制御装置は、プログラムに指令された複数の動作命令を順番に実行して移動体の動作を制御する数値制御装置において、プログラムに指令された動作命令を解析し解析データを生成する解析処理部と、解析データ、及び予め記憶された補間・加減速のパラメータに基づいて、次の動作の動作開始タイミングを求めるタイミング制御部と、解析データ、補間・加減速のパラメータ、及び動作開始タイミングに従い補間・加減速を行う位置指令を生成する補間・加減速部と、位置指令に追従するように駆動部をサーボ制御するサーボ制御部とを備え、タイミング制御部は、現在の動作が完了する時刻、或いは現在の動作の目標位置までの残距離が終点許容誤差に一致する時刻を算出し、次の動作が移動する距離が、前記算出された時刻において、許容誤差以下となるように、動作開始タイミングを求めることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、タイミング制御部は、現在の動作が完了する時刻、或いは現在の動作の目標位置までの残距離が終点許容誤差に一致する時刻を算出し、次の動作が移動する距離が、この時刻において、許容誤差以下となるように、動作開始タイミングを求めるので、現在の動作の残距離により次の動作の開始タイミングを決める従来方法では不可能であったより自由度の高い開始タイミングの制御方法を可能とし、目的に応じた多様な動作を可能とする。そして、次の動作の移動を考慮して、次の動作の移動における精度を許容誤差以下に制限することができ、プログラムに指令された次の動作の指令の種類（速度、移動距離、移動方向など）によらず、適切な範囲で精度を保つことができる。また、過剰に精度を出そうとした場合であっても、サイクルタイムが長くなることがない、という効果を奏する。
【発明を実施するための最良の形態】
【００１１】
以下に、本発明にかかる数値制御装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１２】
実施の形態１．
図１は本発明の数値制御装置の実施の形態の数値制御装置の全体の構成を示す図である。図１において、数値制御装置１００は、解析処理部１０２、補間・加減速部１０４、タイミング制御部１０５、及びサーボ制御部１０８を有している。解析処理部１０２は、ＮＣプログラム（加工プログラム、モーションプログラム）１０１を読み込み、読み込んだＮＣプログラム１０１に記述された動作命令（位置決め、切削送りなど）を解析してブロック毎の解析データ１０３を生成する。解析データ１０３とは、各ブロックの命令を解釈した結果として得られる、ブロック毎の移動モード（位置決め、切削送り等の区別）、移動距離、移動方向、補間モード（直線、円弧、非補間等）、移動速度などの動作に関する情報である。ＮＣプログラム１０１は、後述のタイミング制御部１０５において次の移動の情報を参照する必要がある場合には、必要な数のブロックだけ先読みされてバッファリングされる。
【００１３】
補間・加減速部１０４は、生成された解析データ１０３及び予め記憶部に設定された補間・加減速パラメータ１１０に従って、補間・加減速を行い、位置指令１０７を出力する。またタイミング制御部１０５は、解析データ１０３、補間・加減速パラメータ１１０、位置指令１０７、及び実位置１０９に従って、各ブロックの動作を開始する動作開始タイミング（時刻）１０６を決定し、前述の補間・加減速部１０４に送る。補間・加減速部１０４は、動作開始タイミング１０６に従って、次の動作を開始するタイミング（時刻）で、次の動作の補間・加減速を開始し、位置指令１０７を生成する。
【００１４】
サーボ制御部１０８は、生成された位置指令１０７に追従するようにサーボ制御を行い、図示しないアクチュエータ（駆動部）を駆動して図示しない機械を動作させることにより、ＮＣプログラム１０１に記述された目的の動作を実行する。サーボ制御部１０８は、機械の備える軸数分だけ設けられており、各軸の実位置（位置検出値）１０９が図示しない位置検出器によって検出されて、サーボ制御部１０８内で行われるフィードバック制御に使用されるとともに、タイミング制御部１０５に送られる。
【００１５】
次ぎに、タイミング制御部１０５の動作を図２に沿って説明する。図２はタイミング制御部１０５の動作を説明するためのフローチャートである。図３は図２のフローチャートの手順により、次の移動の開始タイミングを制御した場合の速度波形を示す波形図である。また、図４はその場合の軌跡を示すＸＹグラフである。ここでは、前述した図１８の動作を例として説明する。数値制御装置１００は、現在、図１８のブロックＮ１を実行中であるとする。図２において、タイミング制御部１０５は、まず、ステップＳＴ１１において、現在のブロックＮ１の完了時刻ｔ１を、解析データ１０３及びパラメータ１１０を用いて計算する。すなわち、図３において現在のブロックの解析データ１０３（移動距離、移動方向、移動速度）及びパラメータ１１０（三角波、台形、Ｓ字などの加減速パターンの種類（形）、加減速時定数、加速度、最高速度、補間モードなど）に従って公知の方法を用いて速度波形Ｖｘ（ｔ）を決定する。
【００１６】
例えば、台形加減速の場合には、移動距離を指令速度で除した時間だけ指令速度で速度一定となるステップ状の指令速度波形に対し、予め決められた加減速時定数の移動平均フィルタをかけることにより決定される。このとき移動距離を指令速度で除した時間が加減速時定数より短い場合には、加減速時定数を移動距離を指令速度で除した時間に一致させることで、三角波状の速度波形が決定される。また同様にＳ字加減速の場合には、前述のステップ状の指令速度波形に対し、二段の移動平均フィルタをかけることにより決定される。いずれの場合にも各軸の許容される最高速度を超える場合には、各軸の速度の絶対値がそれぞれの軸の最高速度以下となるように、指令速度を制限される。
【００１７】
加減速パターンが決定すると、これにより移動完了する時刻も一意に定まる。例えば、台形加減速の場合には、加減速時定数と、移動距離を指令速度で除した時間との和が移動時間となる。移動完了時刻ｔ１は移動開始時刻に移動時間を加算した時刻となる。同様にＳ字加減速の場合には、各段の加減速時定数の和と、移動距離を指令速度で除した時間との和が移動時間となる。一般には、任意の速度波形Ｖｘ（ｔ）が与えられたとして、移動開始時刻より後で速度Ｖｘ（ｔ）が０または、速度の絶対値が所定の微小な速度基準値以下となる値を解析的または数値的に求め、これを移動完了時刻ｔ１とすればよい。
【００１８】
次に、ステップＳＴ１２においては、次のブロック（Ｎ２）にて、そのブロックの移動開始から許容誤差（次の移動が先行して移動可能な最大移動距離＝始点許容誤差＝許容移動距離）Ｌ２ｍａｘだけ進むまでの時間Δｔ２を求める（予測する）。Δｔ２を求めるためには、まず前述したブロックＮ１の速度波形を求めた方法と同様に、ブロックＮ２における速度波形Ｖｙ（ｔ）を決定する。またブロックＮ２の移動開始時刻ｔ２からの距離（Ｖｙ（ｔ）の積分値）がＬ２ｍａｘに一致するまでの時刻Δｔ２を求める。例えば台形加減速で、加速中にＬ２ｍａｘだけ進む場合には、台形加減速の加速度（＝指令速度／加減速時定数）をＡとすれば、加速中の速度は
Ｖｙ（ｔ）＝Ａ×（ｔ−ｔ１）
となるので、それを積分すると
Ｙ（ｔ）＝（１／２）×Ａ×（ｔ−ｔ１）×（ｔ−ｔ１）
を得る。従って、速度波形の積分値が許容誤差Ｌ２ｍａｘに一致する条件は次式となる。      Ｌ２ｍａｘ＝（１／２）×Ａ×Δｔ２×Δｔ２
すなわち上式を満たすΔｔ２を求めればよい。
Δｔ２＝√（２×Ｌ２ｍａｘ／Ａ）
その他の速度波形の場合も同様に、速度波形の積分値が許容誤差Ｌ２ｍａｘに一致するような時刻を解析的または数値的に解けばよい。すなわちＶｙ（ｔ）を積分した関数をＹ（ｔ）とすると、位置Ｙ（ｔ）が、Ｌ２ｍａｘに一致するような時刻ｔを解析的または数値計算によって求める。
【００１９】
次いで、ステップＳＴ１３においては、ステップＳＴ１１、ステップＳＴ１２の結果を用いて、次のブロック（Ｎ２）の移動の開始時刻ｔ２を計算する。開始時刻ｔ２は、現在の移動完了時刻ｔ１から、前述のΔｔ２を減算した時刻とする。これは、現在のブロックの移動完了を待たずに先行して次のブロックを移動し始め、現在のブロックが移動完了する時点では次のブロックの移動は許容誤差Ｌ２ｍａｘだけ進んでいることを意味する。
【００２０】
さらに、ステップＳＴ１４においては、ステップＳＴ１３で求めた時刻ｔ２以降であり、かつ現在のブロックの目標位置までの残距離が許容誤差（現在の移動の最大残距離＝終点許容誤差＝許容残距離）Ｌ１ｍａｘ以下であれば、次のブロック（Ｎ１）の移動を開始する。ここで、残距離は位置指令１０７または実位置１０９と目標位置（終点）までの距離とする。すなわち、下記２条件をともに満たす場合にはじめて次のブロックの移動を開始する。
【００２１】
ｉ）現在の移動の残距離が許容誤差以下
ｉｉ）次の移動が現在の移動完了を待たずに先行して移動する距離が許容誤差以下、或いは、言い換えると、
・現在の移動の残距離が許容誤差となる時刻（ｔ１ｂ）
・現在の移動の完了時点で次の移動が許容誤差だけ先行して移動するために次の移動が開始する時刻（ｔ２）
のうち遅い方の時刻を選んでいるとも言える。
【００２２】
図３は、上記ステップＳＴ１１からステップＳＴ１４の手順により、次の移動の開始タイミングを制御した場合の速度波形を示している。図３の例では、ｔ１ｂとｔ２ではｔ２の方が時刻が遅いので、次の移動の開始タイミングは、上記ｉｉ）の条件が支配している。ここで、図４の軌跡を見ると、確かに軌跡がＮ２に接する（軌跡がプログラムに指令した経路（この場合は直線）上に来る）のは、プログラムに指令した現在の移動Ｎ１の終点（＝次の移動Ｎ２の始点＝点Ｐ）からＮ２の移動方向に距離Ｌ２ｍａｘだけ離れた地点となっている。また軌跡がＮ１から離れる地点と点Ｐとの距離はＬ１ｍａｘ以下となっている。すなわちステップＳＴ１４で条件ｉ）、ｉｉ）の両方の条件が満たされるように、次のブロック（Ｎ２）の移動を開始することにより、Ｎ１とＮ２の継ぎ目（交点）Ｐ付近の軌跡誤差が、Ｎ１方向、Ｎ２方向ともに許容誤差以下に制御されることがわかる。
【００２３】
なお、従来の方法（現在の動作の残距離が許容誤差以下となった場合に次の動作を開始する方法）による速度波形を図２２、軌跡を図２４に示す。従来の方法では、次の移動を開始してから（時刻ｔ２）、現在の移動が完了するまで（時刻ｔ１）の間に、図のＶｙの網掛けの面積（Ｌ２）だけ移動するが、この移動距離Ｌ２は次の移動の速度波形に依存し、例えば図２３のように次の移動の速度が高いと、Ｌ２は大きくなる。すなわち、図２４に示す軌跡において、軌跡がＮ２に接する地点と、Ｎ２の始点までの距離を、一定に保つことはできず、指令速度、移動距離、移動方向が変わることによって、速度波形が変化する。これはすなわち、プログラムに指令された次の指令によって、次の指令の始点付近の軌跡精度が不十分でなかったり、ばらついたり、或いは逆に過度に精度を出そうとしてサイクルタイムが長くなるという問題があった。
【００２４】
これに対し、本実施の形態によれば、次の移動を考慮して、次の移動における精度を許容誤差以下に制限することができ、プログラムに指令された次の指令の種類（速度、移動距離、移動方向など）によらず、必要な範囲で精度を保つことができ、また過剰に精度を出そうとしてサイクルタイムが長くなることがない。サイクルタイムが短縮できることにより、加工物１個あたりのエネルギー消費も減らせるという効果もある。
【００２５】
また、量産前の試し運転の際には、プログラムにＮ１、Ｎ２の順に指令されている場合に、通常はＮ１からＮ２へ移動（順方向の動作）させるが、場合によっては同じ経路を逆にたどって戻る動作（すなわちＮ２からＮ１に戻る場合）（逆方向の動作）を行いながら、機械干渉の有無や位置決め精度の確認を行う場合がある。このような場合においては、従来の技術では、順方向の動作と逆方向の動作で軌跡が同じとならず、そのために確認作業が不正確となり、確認の判断に誤りが生じたり、プログラムの先頭に戻って頭から順方向の動作確認をやり直したりしなければならず時間がかかるという問題があった。
【００２６】
本実施の形態によれば、継ぎ目（交点）Ｐ付近の軌跡誤差が、Ｐから見て通常は戻る方向（Ｎ１方向）と進む方向（Ｎ２方向）の両方において、所定の精度範囲内に制御するため、順方向の動作、逆方向の動作の軌跡はほぼ同じとなり（ともに所定の精度範囲内）、動作方向によらず安定して正確に確認作業が行え、いちいちプログラムの先頭に戻らなくても機械干渉の有無や精度の確認が短時間に行えるというメリットがある。
【００２７】
なお、ステップＳＴ１４では現在のブロックの目標位置までの残距離が許容誤差Ｌ１ｍａｘ以下かどうかを判定したが、残距離は位置指令１０７と目標位置との差から判断すればよい。
【００２８】
また、上述した許容誤差Ｌ１ｍａｘやＬ２ｍａｘはブロック毎にプログラムにて指定してもよく、例えばアドレスＥにてＥ１．０（許容誤差＝１．０ｍｍ）のように指令してもよいし、また軸毎のパラメータとして予め決めておき、各ブロックの移動方向に応じて選択してもよい。或いは１つの移動ブロックで複数軸が移動する場合には、移動がある軸に相当するパラメータの中で最小の値を用いてもよい。
【００２９】
実施の形態２．
実施の形態１では現在のブロック及び次のブロックの両方の精度を考慮して、次のブロックを開始するタイミングを決定した。本実施の形態では、同様に両方の精度を考慮しつつも、さらにサイクルタイムを短縮するための方法について述べる。
【００３０】
図５は本実施の形態における動作を説明するためのフローチャートである。図５において、ステップＳＴ２１の動作は図２のステップＳＴ１１の動作と同じであり、ステップＳＴ２２の動作は図２のステップＳＴ１２の動作と同じであるため、この２つのステップについては説明を省略する。以下、前述した図１８の例を用いて説明する。
【００３１】
ステップＳＴ２３においては、現在のブロック（Ｎ１）にて、目標位置（終点）までの残距離がＬ１ｍａｘとなってから移動完了するまでの時間Δｔ１を計算する（予測する）。Δｔ１を求めるためには、まずブロックＮ１において、実施の形態１にて述べた方法により、速度波形Ｖｘ（ｔ）と移動完了時刻ｔ１を求める。次にブロックＮ１の移動開始完了時刻ｔ１までの距離（時刻ｔからｔ１までのＶｘ（ｔ）の積分値）がＬ１ｍａｘに一致する時刻ｔ＝Δｔ２を求める。例えば台形加減速で、減速中にＬ１ｍａｘだけ進む場合には、台形加減速の加速度（＝速度／加減速時定数）をＡとすれば、減速中の速度は、
Ｖｘ（ｔ）＝Ａ×（ｔ１−ｔ）
となるので、それを積分すると
Ｘ（ｔ）＝（１／２）×Ａ×（ｔ１−ｔ）×（ｔ１−ｔ）
を得る。従って、速度波形の積分値が許容誤差Ｌ１ｍａｘに一致する条件は次式となる。      Ｌ１ｍａｘ＝（１／２）×Ａ×Δｔ１×Δｔ１
すなわち上式を満たすΔｔ１を求めればよい。
Δｔ１＝√（２×Ｌ１ｍａｘ／Ａ）
その他の速度波形の場合も同様に、速度波形Ｖｘ（ｔ）の積分値であるＸ軸の位置Ｘ（ｔ）が許容誤差Ｌ１ｍａｘに一致するような時刻を解析的または数値的に解けばよい。
【００３２】
次にステップＳＴ２４においては、次ブロック（Ｎ２）の開始時刻ｔ２は、現在のブロック（Ｎ１）の完了時刻ｔ１から、ステップＳＴ２２で求めた次のブロックが先行して動き始める時間Δｔ２と、現在のブロックが早めに移動完了とみなす時間Δｔ１の和を差し引いた時間として求める。すなわち、
ｔ２＝ｔ１−Δｔ１−Δｔ２
【００３３】
さらにステップＳＴ２５では、この時刻ｔ２において次ブロックの移動を開始する。本手順に従って制御を行った場合の速度波形を図６に、また軌跡を図７に示す。図６の例では、本来の現在のブロックの完了時刻ｔ１に対して、Δｔ１とΔｔ２だけ早い時刻であるｔ２において次の移動を開始している。またｔ２からΔｔ２だけ進んだ時点ｔ２ａでは、Ｙ軸方向に進んだ距離がＬ２ｍａｘ、Ｘ軸方向の残距離がＬ１ｍａｘに一致する。これを図７の軌跡で見ると、プログラムに指令したＮ１の終点Ｐに対して、Ｎ１方向にＬ１ｍａｘだけ戻り、かつＮ２方向にＬ２ｍａｘだけ進んだ点Ｑを通過するように軌跡が制御されることがわかる。すなわちＮ１とＮ２の継ぎ目（交点）付近の軌跡誤差が、交点付近の１点（点Ｑ）において、Ｎ１方向、Ｎ２方向の両方がそれぞれの許容誤差に一致するように制御されることがわかる。
【００３４】
本実施の形態によれば、実施の形態１に比べて、さらに次の移動の開始を早めつつ、現在の移動及び次の移動における精度を許容誤差以下に制限することができるので、実施の形態１の効果に加えて、さらにサイクルタイムを短縮することができる。また特に指定した許容誤差で決まる点（点Ｑ）を通過するように制御するので、順方向の動作と逆方向の動作ともこの点Ｑを通ることで、軌跡が完全に同じとなり、試し運転時の確認作業がより正確で短時間で行うことが可能となる。
【００３５】
実施の形態３．
実施の形態１では現在のブロック及び次のブロックの両方の精度を考慮して、次のブロックを開始するタイミングを決定した。しかし、単に次のブロックの精度が重要である場合には、それだけに着目して制御を行うことで、処理を簡略化することも可能である。本実施の形態では、そのための方法について述べる。
【００３６】
図８は本実施の形態における動作を説明するためのフローチャートである。図８において、ステップＳＴ３１はステップＳＴ１１と、ステップＳＴ３２はステップＳＴ１２と、ステップＳＴ３３はステップＳＴ１３と同じのため、この３つのステップについては説明を省略する。以下、前述した図１８の例を用いて説明する。
【００３７】
ステップＳＴ３４では、ステップＳＴ３３で求めた時刻ｔ２以降であれば、次のブロック（Ｎ１）の移動を開始する。すなわち、下記１条件のみを満たす場合に次の移動を開始する。
ｉｉ）次の移動が現在の移動完了を待たずに先行して移動する距離が許容誤差以下
【００３８】
本手順に従った場合の、速度波形を図９に、また軌跡を図１０に示す。図９に示すように、次の動作（Ｎ２）の開始タイミングは、現在の動作の残距離は考慮せず、次の動作が先行して移動する距離だけから決定される。そのため図１０に示すように、点Ｐに対して、Ｎ２方向の距離は許容誤差Ｌ２ｍａｘ以下に制限されるが、Ｎ１方向の距離は制限されない。
【００３９】
しかしながら、各軸の加減速フィルタやサーボ系の特性が、一次遅れや二次遅れなどのように、そのインパルス応答が時間とともに漸減したり、或いはピークまでの立ち上がり時間よりピークからほぼ０にたち下がるまでの時間の方が長いような特性を有する場合には、移動速度が同じであれば、軌跡が現在の移動から離れる地点と点Ｐとの距離よりも、軌跡が次の移動に接する地点と点Ｐとの距離の方が長くなる。このような場合には、次の移動方向の誤差を制限しておけば、自然と現在の移動方向の誤差もそれ以下に制限されるので、実用的にはこれで十分である。このような制御を行うことにより、図１における位置指令１０７もしくは実位置１０９といったデータを用いずに処理できるので、処理が簡略化され、より少ない通信量と演算量で実現でき、コントローラの低コスト化が期待できる。
【００４０】
実施の形態４．
実施の形態１から３では、現在の移動（Ｎ１）が完了するまでに、次の移動（Ｎ２）が先頭から先行して進む距離を一定値以下に制限するものであった。しかしながら、次の移動のさらに次の動作（Ｎ３）を行い、かつその動作（Ｎ３）での精度が強く求められるような場合では、軌跡が次の移動（Ｎ２）に接する地点とＮ２の終点までの距離を管理したほうが好適な場合がある。本実施の形態ではその方法について述べる。
【００４１】
最も簡単な例として実施の形態３の例を基礎として説明を行う。ただしプログラムは図１１に示すようにＮ１からＮ３の３つのブロックからなるとする。ブロックＮ３は、切削送り（Ｇ１）にて速度（Ｆ）１０００にてＺ軸の位置が−５０．まで移動するという指令である。
【００４２】
図１２を用いて説明する。実施の形態３において、Ｌ２ｍａｘを、移動（Ｎ２）の長さから、許容誤差Ｌ２ｍａｘ’を減算した値とする。
Ｌ２ｍａｘ＝Ｄ２−Ｌ２ｍａｘ’
ここでＤ２はブロックＮ２の移動距離、Ｌ２ｍａｘ’は、Ｎ２の残距離の最小値（最小残距離）を示し、すなわちＮ２の移動において、軌跡がプログラムに指令された指令経路（Ｎ２）に接する地点Ｒと、その終点Ｓまでの距離に相当する。
【００４３】
上記Ｌ２ｍａｘを実施の形態３に適用すると、速度波形は図１３のようになり、現在の移動（Ｎ１）が完了した時刻ｔ１において、次の移動の残距離がＬ２ｍａｘ’に一致するように、次の移動（Ｎ２）を開始する。これにより、軌跡は図１２に示すように、Ｎ２の終点から指定した距離Ｌ２ｍａｘ’だけ戻った地点Ｒにて、軌跡が指令経路に一致することになる。
【００４４】
本実施の形態によれば、例えばＮ２の後に、切削送り動作や、工具交換動作、計測動作など、より正確な位置決めや精度が求められる動作を行うような場合において、Ｎ２から見ると一つ前の移動による軌跡誤差の影響を、Ｎ２の終点から指定した距離だけ前の時点で完全に無くすことで、Ｎ２の後に行う動作を安定して正確に行うことができる。基本的な手順としては、移動の始点からの距離を指定することも、終点からの距離を指定することも大差ないが、使用する側の立場から見ると、終点からの距離を一定のパラメータ（Ｌ２ｍａｘ’）により指定しておけば、移動の距離ごとにその都度使用者が指定する必要がなく、使い勝手が良くなるという効果を得ることができる。
【００４５】
また、特殊な例として、Ｌ２ｍａｘ’を０とすることで、図１４に示すように、複数の動作の完了時期を一致させるように制御することも可能である。この場合には、Ｎ１とＮ２の両方の動作が完了して初めてそのさらに次のＮ３の動作が可能であるという順序関係がある場合に、図１３に示したように動作Ｎ２を開始すればＮ３の動作開始において、Ｎ１完了時点からの待ち時間は０となる。また、これ以上にＮ２のタイミングを早めても、サイクルタイムがこれ以上短くなるわけではなく、逆にＮ１の完了の方がＮ２よりも遅いということになり、本来プログラムに指令されていた順序を極端に崩すことになり、不要な機械干渉などを生じる恐れがある。その意味で、図１４に示したように、複数の動作の完了時期を一致させるように、Ｎ２の開始タイミングを決める方法は、サイクルタイムを最大限短縮するために必要十分なタイミングであるといえる。
【００４６】
なお、上記本実施の形態で述べた方法は、実施の形態３で述べた方法を基礎にして説明したが、実施の形態１，２で述べた方法にも同様に適用可能である。
【００４７】
実施の形態５．
実施の形態１乃至４では、説明容易とするためにブロックＮ１、Ｎ２にそれぞれ１つの軸の移動指令だけを指令した場合についての例を述べた。これに対し、各ブロックにおいて複数の軸の移動指令が命令され、それぞれの軸の移動が同時に行われる場合に対応するための方法を述べる。
【００４８】
最も典型的な例として、実施の形態１を基礎として、それを複数の軸の並列動作に拡張した場合を説明する。例えば図１５のようなプログラムが与えられたとする。ここでＸ、Ｙ、Ｚ、Ｃはそれぞれ軸名称を指し、それに続く数字は各軸の目標位置の座標値を指す。
【００４９】
図１６は本実施の形態における動作手順を示すフローチャートである。図１６において、まず、ステップＳＴ５１では、現在のブロックＮ１において、ステップＳＴ１１と同じく、Ｘ軸の移動の完了時刻ｔ１を求め、同様に、Ｚ軸の移動の完了時刻ｔ１’を求める。両者のうち、遅い方を選びＴ１とする。この例ではＴ１＝ｔ１’である。
【００５０】
次に、ステップＳＴ５２では、次のブロックＮ２において、ステップＳＴ１２と同じく、Ｙ軸の移動開始からＬ２ｍａｘだけ進むまでの時間でΔｔ２を求め、同様に、Ｃ軸についても移動開始からＬ２ｍａｘだけ進むまでの時間でΔｔ２’を求める。両者の小さい方を選びΔＴ２とする。この例ではΔＴ２＝Δｔ２’である。
【００５１】
ステップＳＴ５３では、次のブロックの開始時刻ｔ２を求める。すなわち、
ｔ２＝Ｔ１−ΔＴ２
【００５２】
ステップＳＴ５４では、ステップＳＴ５３で求めた時刻ｔ２以降であり、かつ現在のブロック（Ｎ１）のＸ軸、Ｚ軸の残距離がそれぞれ許容誤差（Ｌ１ｍａｘ）以下であれば、次のブロック（Ｎ２）の移動を開始する。
【００５３】
すなわち、上記手順は、現在のブロックにおけるすべての軸の残距離が許容誤差以下であり、かつ次のブロックにおけるすべての軸の先行移動距離が許容誤差以下となるときに、次の移動を開始する。
【００５４】
図１７に本手順を適用した場合の速度波形を示す。すなわち、次の動作Ｎ２を開始するタイミングは、以下の４つの時刻のうち、もっとも遅い時刻を選ぶことに相当する。
・ｔ１ｂ  ：現在のブロックのＸ軸の残距離が許容誤差（Ｌ１ｍａｘ）以下となる時点  ・ｔ１ｂ’：現在のブロックのＺ軸の残距離が許容誤差（Ｌ１ｍａｘ）以下となる時点  ・ｔ２    ：現在のブロックのすべての軸の移動が完了した時点での、
次のブロックのＹ軸が先行して進む距離が許容誤差（Ｌ２ｍａｘ）以下となる時点
・ｔ２’  ：現在のブロックのすべての軸の移動が完了した時点での、
次のブロックのＣ軸が先行して進む距離が許容誤差（Ｌ２ｍａｘ）以下となる時点
【００５５】
本実施の形態によれば、各ブロックにおいて複数の軸の移動が指令されていたとしても、すべての軸の誤差を管理することができ、精度を保ちながら、サイクルタイムを短縮することが可能となる。
【００５６】
なお、本実施の形態で述べた方法は、複数の工具が同時に移動するような多系統の工作機械などにおいて、複数の動作を並列に実行する際にも、同様に適用可能である。
【００５７】
また、上記では各軸が独立で動作する（各軸の動作完了時刻が軸によって異なる）場合について述べたが、全軸が同期して動作する場合（補間動作）にも同様に適用可能である。この場合には、ｔ１とｔ１’の時刻は同じ時刻となる。
【産業上の利用可能性】
【００５８】
この発明の数値制御装置は、工作機械、ロボット、産業機械等のモーションを制御する数値制御装置に適用されて好適なものであり、特に目標位置への位置決め移動動作において所定の精度を保ちながら、よりサイクルタイムを短縮したい場合に最適なものである。
【図面の簡単な説明】
【００５９】
【図１】本発明の数値制御装置の実施の形態の全体構成図である。
【図２】本発明の実施の形態１の動作を示すフローチャートの図である。
【図３】本発明の実施の形態１の速度波形を示す波形図である。
【図４】本発明の実施の形態１の軌跡を示すＸＹグラフを示す図である。
【図５】本発明の実施の形態２の動作を示すフローチャートの図である。
【図６】本発明の実施の形態２の速度波形を示す波形図である。
【図７】本発明の実施の形態２の軌跡を示すＸＹグラフを示す図である。
【図８】本発明の実施の形態３の動作を示すフローチャートの図である。
【図９】本発明の実施の形態３の速度波形を示す波形図である。
【図１０】本発明の実施の形態３の軌跡を示すＸＹグラフを示す図である。
【図１１】本発明の実施の形態４のＮＣプログラムの一例を示す図である。
【図１２】本発明の実施の形態４の軌跡を示すＸＹグラフを示す図である。
【図１３】本発明の実施の形態４の速度波形を示す波形図である。
【図１４】本発明の実施の形態４の速度波形を示す波形図である。
【図１５】本発明の実施の形態５のＮＣプログラムの一例を示す図である。
【図１６】本発明の実施の形態５の動作を示すフローチャートの図である。
【図１７】本発明の実施の形態５の速度波形を示す波形図である。
【図１８】ＮＣプログラムの一例を示す図である。
【図１９】図１８のＮＣプログラム例の指令経路を示すＸＹグラフ図である。
【図２０】従来技術の速度波形を示す波形図である。
【図２１】従来技術の軌跡を示すＸＹグラフを示す図である。
【図２２】従来技術の速度波形を示す波形図である。
【図２３】従来技術の他の速度波形を示す波形図である。
【図２４】従来技術の軌跡を示すＸＹグラフを示す図である。
【符号の説明】
【００６０】
１００  数値制御装置
１０１  ＮＣプログラム（プログラム）
１０２  解析処理部
１０３  解析データ
１０４  補間・加減速部
１０５  タイミング制御部
１０６  動作開始タイミング
１０７  位置指令
１０８  サーボ制御部
１０９  実位置
１１０  補間・加減速パラメータ（パラメータ）
【図１】
0005317532.tif 000002
【図２】
0005317532.tif 000003
【図３】
0005317532.tif 000004
【図４】
0005317532.tif 000005
【図５】
0005317532.tif 000006
【図６】
0005317532.tif 000007
【図７】
0005317532.tif 000008
【図８】
0005317532.tif 000009
【図９】
0005317532.tif 000010
【図１０】
0005317532.tif 000011
【図１１】
0005317532.tif 000012
【図１２】
0005317532.tif 000013
【図１３】
0005317532.tif 000014
【図１４】
0005317532.tif 000015
【図１５】
0005317532.tif 000016
【図１６】
0005317532.tif 000017
【図１７】
0005317532.tif 000018
【図１８】
0005317532.tif 000019
【図１９】
0005317532.tif 000020
【図２０】
0005317532.tif 000021
【図２１】
0005317532.tif 000022
【図２２】
0005317532.tif 000023
【図２３】
0005317532.tif 000024
【図２４】
0005317532.tif 000025