(57)【要約】【課題】指令軌跡に対して実際の移動軌跡がだれることを考慮し、正しく衝突を防止することのできる衝突防止装置を提供する。【解決手段】関数発生手段１６からの移動指令を加減速手段１８ｘ及び１８ｚと同じ方法で加減速処理し、加減速処理後の移動経路を求める加減速シミュレーション手段３０と、加減速シミュレーション手段３０から出力される移動経路により移動体と干渉物との干渉チェックを行い、干渉の有無を判断する干渉チェック手段３４と、関数発生手段１６からの移動指令を逐次蓄えてゆき、所定の時間前の移動指令を逐次出力する遅延手段３２と、干渉チェック手段３４で干渉なしと判断された場合には遅延手段３２からの移動指令を加減速手段１８ｘ及び１８ｚに出力し、干渉したと判断された場合は加減速手段１８ｘ及び１８ｚへの移動指令の出力を遮断する移動指令遮断手段３６と、を有する。【選択図】図１
2010092161.tif 000002
【特許請求の範囲】
【請求項１】
機械動作時の衝撃を和らげるため関数発生からの移動指令を軸毎に加減速処理する加減速処理手段を備える工作機械の数値制御装置にて、指令経路に基づきあらかじめ干渉チェックを行い、干渉すると判断された場合には関数発生をしないことで衝突を防止する衝突防止装置において、
関数発生からの移動指令を加減速処理手段と同じ方法で加減速処理し、加減速処理後の移動経路を求める加減速シミュレーション手段と、
前記加減速シミュレーション手段から出力される移動経路により移動体と干渉物との干渉チェックを行い、干渉の有無を判断する干渉チェック手段と、
前記関数発生からの移動指令を逐次蓄えてゆき、所定の時間前の移動指令を逐次出力する遅延手段と、
前記干渉チェック手段で干渉なしと判断された場合には前記遅延手段からの移動指令を前記加減速処理手段に出力し、干渉したと判断された場合は前記加減速処理手段への移動指令の出力を遮断する移動指令遮断手段と、
を有し、
前記指令経路だけではなく前記加減速シミュレーション手段から出力される移動経路についても干渉チェックを行うことを特徴とする数値制御装置における衝突防止装置。
【請求項２】
機械動作時の衝撃を和らげるために、数値制御プログラムに基づく関数発生からの移動指令を軸毎に加減速処理する加減速処理手段を備える工作機械の数値制御装置にて、指令経路に基づきあらかじめ干渉チェックを行い、干渉すると判断された場合には関数発生をしないことで衝突を防止する衝突防止装置において、
前記数値制御プログラムに従い、当該数値制御プログラムにて指令された目標位置近傍に対して前記関数発生および前記加減速手段を模擬する局部シミュレーション手段と、
前記局部シミュレーション手段で得られた軌跡と、あらかじめ指定されている直線化許容量と、に基づき、干渉チェックをする経路を選択するチェック対象選択手段と、
を有し、
前記選択された経路で移動体と干渉物との干渉チェックを行うことを特徴とする数値制御装置における衝突防止装置。
【請求項３】
機械動作時の衝撃を和らげるために、数値制御プログラムに基づく関数発生からの移動指令を軸毎に加減速処理する加減速処理手段を備える工作機械の数値制御装置にて、指令経路に基づきあらかじめ干渉チェックを行い、干渉すると判断された場合には関数発生をしないことで衝突を防止する衝突防止装置において、
前記数値制御プログラムに従い、前記関数発生および前記加減速手段を模擬するシミュレーション手段と、
前記指令経路と前記シミュレーション手段により求められた経路の差を打ち消すように実行データの経路を変更する指令経路変更手段と、
を有し、
前記指令経路変更手段により変更された指令経路に基づき前記関数発生を実行することにより、干渉チェックした前記指令経路に近い移動経路で動作するようにしたことを特徴とする数値制御装置における衝突防止装置。
【請求項４】
機械動作時の衝撃を和らげるため関数発生からの移動指令を軸毎に加減速処理する加減速処理手段を備える工作機械の数値制御装置にて、指令経路に基づきあらかじめ干渉チェックを行い、干渉すると判断された場合には関数発生をしないことで衝突を防止する衝突防止装置において、
だれがあらかじめ定められたクリアランス以内となるような送り速度を決定するだれ抑止送り速度決定手段と、
前記だれ抑止送り速度決定手段が決定した送り速度に応じた移動指令を発生するように前記関数発生を制御するだれ抑止送り手段と、
を有し、
干渉チェックした前記指令経路に対するだれがクリアランス以内となる移動経路で動作するようにしたことを特徴とする数値制御装置における衝突防止装置。
【請求項５】
機械動作時の衝撃を和らげるために、数値制御プログラムに基づく関数発生からの移動指令を軸毎に加減速処理する加減速処理手段を備える工作機械の数値制御装置にて、指令経路に基づきあらかじめ干渉チェックを行い、干渉すると判断された場合には関数発生をしないことで衝突を防止する衝突防止装置において、
前記指令経路の方向転向角に応じただれ抑止待ち回数を格納するためのだれ抑止待ち回数テーブルと、
前記数値制御プログラムの指令が解釈される際に前記だれ抑止待ち回数テーブルから方向転向角に該当する待ち回数を選び出すだれ抑止待ち回数決定手段と、
前記だれ抑止待ち回数決定手段で選びだされた待ち回数分だけ関数発生の開始を待たせるだれ抑止待ち管理手段と、
を有し、
干渉チェックした前記指令経路に対するだれがクリアランス以内となる移動経路で動作するようにしたことを特徴とする数値制御装置における衝突防止装置。
【請求項６】
前記関数発生および前記軸毎の加減速処理手段をシミュレーションしてだれ量を評価し、クリアランス以内となる最大の関数発生開始待ち回数を前記だれ抑止待ち回数テーブルに登録するだれ抑止待ち回数テーブル作成手段、を更に備える請求項５記載の数値制御装置における衝突防止装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値制御装置における衝突防止装置に関する。
【背景技術】
【０００２】
図６に従来技術の数値制御装置における衝突防止装置の構成を示す。工作機械自体は図示していないが、Ｚ軸とＸ軸の２軸を有する工作機械を例にしており、軸を駆動することでワークと工具を相対的に移動させ加工を行う。
【０００３】
プログラム解釈手段１２は、数値制御装置の制御のためのパートプログラム１０を１ブロックずつ読み込み、そこに指令されている経路、送り速度などを解釈し、関数発生手段１６で実行可能な形の実行データを生成する。生成された実行データは一旦バッファ１４に格納される。これは時間のかかる解釈処理などを先行して実施し実行データを溜めこんでおくことで、１ブロック分の関数発生に要する時間との差を緩和し、滞りなく実行するための緩衝器である。
【０００４】
関数発生手段１６は、バッファ１４に格納されている実行データを順次読み出し、実行データにある指令経路上を、実行データに示された目標位置まで指令された送り速度で一定時間（関数発生周期）毎に補間していく。
【０００５】
補間点は関数発生周期毎の移動指令に変換されたうえで軸毎の指令に分けられ、Ｘ軸駆動手段１７ｘ及びＺ軸駆動手段１７ｚが備える加減速手段１８ｘ及び１８ｚにて機械動作の際に不要な衝撃を与えないような時定数で加減速処理を施された後、サーボ２０ｘ及び２０ｚに渡される。サーボ２０ｘ及び２０ｚは与えられた指令にしたがい、機械を駆動するモータを検出器（モータ及び検出器２２ｘ及び２２ｚ）によりフィードバック制御する。
【０００６】
さて、図６における衝突防止は、工作機械がパートプログラム１０にしたがって動作するとき、衝突すると判断されたブロックの関数発生をしないことで実現している。
【０００７】
干渉チェック手段２６は、モデルデータ２４を仮想空間内で組立て、移動体を実行データの指令経路にしたがって移動させ干渉の有無を判断する。モデルデータ２４とは、工作機械の可動部単位や可変単位、つまり工作機械本体や送り軸、工具、ワークといったものの形状を個別に数値として保持しているデータ群である。干渉の有無の判断は１ブロック毎に行い、干渉有無のデータは実行データのひとつとしてバッファ１４に格納していく。
【０００８】
実行管理手段２８は、実行ブロックに干渉がなかった場合には通常に関数発生手段にて補間を実行させるが、干渉があった場合には補間をさせず、干渉を検出した旨の警告を出す。
【０００９】
【特許文献１】特開２００６−５９１８７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
図６のような従来技術での数値制御装置における衝突防止装置では、干渉しないと判断されても実際には干渉してしまう問題がある。干渉チェック手段２６がチェックする軌跡は、パートプログラム１０で指令された経路である（図７ａ参照）のだが、実際の機械の動き（駆動される軸によって動作する工具などの移動経路）は、指令経路とは異なる部分があるためである。
【００１１】
図６のような関数発生後に軸駆動手段において軸別の加減速を行う構成の数値制御装置は一般的なものであるが、実際の移動経路は図７ｂのように一致しない。この例は移動指令が連続しており移動方向が変化する場合のもので、軸毎に加減速を行っているがゆえに指令位置近傍では実際の工具軌跡が、指令の軌跡よりもだれたようになる。この差により、指令経路では干渉しないと判断されても実際には干渉してしまうことが生じうる。
【００１２】
本発明は、指令軌跡に対して実際の移動軌跡がだれることを考慮し、正しく衝突を防止することのできる衝突防止装置を提供するものである。
【課題を解決するための手段】
【００１３】
請求項１に係る発明は、機械動作時の衝撃を和らげるため関数発生からの移動指令を軸毎に加減速処理する加減速処理手段を備える工作機械の数値制御装置にて、指令経路に基づきあらかじめ干渉チェックを行い、干渉すると判断された場合には関数発生をしないことで衝突を防止する衝突防止装置において、関数発生からの移動指令を加減速処理手段と同じ方法で加減速処理し、加減速処理後の移動経路を求める加減速シミュレーション手段と、前記加減速シミュレーション手段から出力される移動経路により移動体と干渉物との干渉チェックを行い、干渉の有無を判断する干渉チェック手段と、前記関数発生からの移動指令を逐次蓄えてゆき、所定の時間前の移動指令を逐次出力する遅延手段と、前記干渉チェック手段で干渉なしと判断された場合には前記遅延手段からの移動指令を前記加減速処理手段に出力し、干渉したと判断された場合は前記加減速処理手段への移動指令の出力を遮断する移動指令遮断手段とを有し、前記指令経路だけではなく前記加減速シミュレーション手段から出力される移動経路についても干渉チェックを行うことを特徴とする数値制御装置における衝突防止装置である。
【００１４】
請求項２に係る発明は、機械動作時の衝撃を和らげるために、数値制御プログラムに基づく関数発生からの移動指令を軸毎に加減速処理する加減速処理手段を備える工作機械の数値制御装置にて、指令経路に基づきあらかじめ干渉チェックを行い、干渉すると判断された場合には関数発生をしないことで衝突を防止する衝突防止装置において、前記数値制御プログラムに従い、当該数値制御プログラムにて指令された目標位置近傍に対して前記関数発生および前記加減速手段を模擬する局部シミュレーション手段と、前記局部シミュレーション手段で得られた軌跡と、あらかじめ指定されている直線化許容量と、に基づき、干渉チェックをする経路を選択するチェック対象選択手段とを有し、前記選択された経路で移動体と干渉物との干渉チェックを行うことを特徴とする数値制御装置における衝突防止装置である。
【００１５】
請求項３に係る発明は、機械動作時の衝撃を和らげるために、数値制御プログラムに基づく関数発生からの移動指令を軸毎に加減速処理する加減速処理手段を備える工作機械の数値制御装置にて、指令経路に基づきあらかじめ干渉チェックを行い、干渉すると判断された場合には関数発生をしないことで衝突を防止する衝突防止装置において、前記数値制御プログラムに従い、前記関数発生および前記加減速手段を模擬するシミュレーション手段と、前記指令経路と前記シミュレーション手段により求められた経路の差を打ち消すように実行データの経路を変更する指令経路変更手段と、を有し、前記指令経路変更手段により変更された指令経路に基づき前記関数発生を実行することにより、干渉チェックした前記指令経路に近い移動経路で動作するようにしたことを特徴とする数値制御装置における衝突防止装置である。
【００１６】
請求項４に係る発明は、機械動作時の衝撃を和らげるため関数発生からの移動指令を軸毎に加減速処理する加減速処理手段を備える工作機械の数値制御装置にて、指令経路に基づきあらかじめ干渉チェックを行い、干渉すると判断された場合には関数発生をしないことで衝突を防止する衝突防止装置において、だれがあらかじめ定められたクリアランス以内となるような送り速度を決定するだれ抑止送り速度決定手段と、前記だれ抑止送り速度決定手段が決定した送り速度に応じた移動指令を発生するように前記関数発生を制御するだれ抑止送り手段と、を有し、干渉チェックした前記指令経路に対するだれがクリアランス以内となる移動経路で動作するようにしたことを特徴とする数値制御装置における衝突防止装置である。
【００１７】
請求項５に係る発明は、機械動作時の衝撃を和らげるために、数値制御プログラムに基づく関数発生からの移動指令を軸毎に加減速処理する加減速処理手段を備える工作機械の数値制御装置にて、指令経路に基づきあらかじめ干渉チェックを行い、干渉すると判断された場合には関数発生をしないことで衝突を防止する衝突防止装置において、前記指令経路の方向転向角に応じただれ抑止待ち回数を格納するためのだれ抑止待ち回数テーブルと、前記数値制御プログラムの指令が解釈される際に前記だれ抑止待ち回数テーブルから方向転向角に該当する待ち回数を選び出すだれ抑止待ち回数決定手段と、前記だれ抑止待ち回数決定手段で選びだされた待ち回数分だけ関数発生の開始を待たせるだれ抑止待ち管理手段と、を有し、干渉チェックした前記指令経路に対するだれがクリアランス以内となる移動経路で動作するようにしたことを特徴とする数値制御装置における衝突防止装置である。
【００１８】
請求項６に係る発明は、前記関数発生および前記軸毎の加減速処理手段をシミュレーションしてだれ量を評価し、クリアランス以内となる最大の関数発生開始待ち回数を前記だれ抑止待ち回数テーブルに登録するだれ抑止待ち回数テーブル作成手段、を更に備える請求項５記載の衝突防止装置である。
【発明の効果】
【００１９】
請求項１の構成の衝突防止装置によれば、指令軌跡に対してだれる移動軌跡に対しても干渉チェックするので、正確に干渉有無が判断できる。衝突がなくなると、例えば、機械修理などの復旧に要する時間分、機械稼働率が上がり、生産性がよくなることが期待される。
【００２０】
請求項２〜６の構成の衝突防止装置によれば、指令軌跡に対してだれる移動軌跡を考慮して干渉チェックするので、これまでより正確に干渉有無が判断できる。衝突が少なくなると、例えば、機械修理などの復旧に要する時間分、機械稼働率が上がり、生産性がよくなることが期待される。また、請求項２〜５の構成では、干渉チェックする処理の負担を軽くすることができるので、装置のコストを抑えることができる。
【発明を実施するための最良の形態】
【００２１】
図１は請求項１に係る発明の実施形態の構成である。図６と同じ名称の要素は従来技術と同じである。
【００２２】
本実施形態の構成においても、従来技術と同じように指令軌跡に対する干渉チェックを行う。干渉と判断した場合には、そのブロックの関数発生を実行しないので衝突前に機械は停止する。干渉しないと判断した場合には、そのブロックの関数発生を実行し関数発生周期毎に移動指令を出力する。
【００２３】
従来技術では関数発生周期毎の関数発生手段１６からの移動指令を各軸駆動手段１７ｘ、１７ｚに渡すが、本実施形態では加減速シミュレーション手段３０と遅延手段３２に渡す。
【００２４】
遅延手段３２は、関数発生周期毎の移動指令を一時的に蓄えておき、時定数分前の移動指令を順次出力する。この時定数は、軸駆動手段１７ｘ及び１７ｚにある加減速手段１８ｘ及び１８ｚで用いられる時定数と同じ値である。つまり、関数発生からの移動指令は遅延手段３２により時定数分遅れて出力される。
【００２５】
加減速シミュレーション手段３０は、軸駆動手段にある加減速手段１８ｘ及び１８ｚと同じ処理を行う。図示はしてないが、移動指令はＸ軸とＺ軸に分配され、軸駆動手段と同じように軸ごとに加減速される。指令軌跡に対して移動軌跡がだれるのは軸別の加減速によるので、移動軌跡を事前に知るためである。
【００２６】
第２の干渉チェック手段３４は、加減速シミュレーション手段３０で求められた移動軌跡に対して干渉チェックを行う。入力である軌跡は異なるものの、処理の内容は干渉チェック手段２６と同じでよく、本例ではモデルデータ（図示省略）を用いて干渉の有無を判断する。
【００２７】
第２の干渉チェック手段３４で干渉ありと判断されたら、移動指令遮断手段３６に対して干渉ありを通知する。この場合、移動指令遮断手段３６は、遅延手段３２から出力される移動指令を遮断する。移動指令がなくなるので、軸は最後の移動指令による位置のところで停止することになる。
【００２８】
干渉なしと判断された場合には、第２の干渉チェック手段３４は移動指令遮断手段３６に対して干渉なしを通知するが、この場合には移動指令遮断手段３６は遅延手段からの移動指令を遮断せずに軸駆動手段に渡すので、移動は継続する。
【００２９】
図７ｂで示したようなケースで、この本発明の構成による動作を図８ａ〜ｄで説明する。本例では、加減速手段１８ｘ及び１８ｚ及び加減速シミュレーション手段３０の時定数は８周期としてある。
【００３０】
本ケースでは、N010ブロック（つまり指令経路P[-1]-> P[0]）で干渉しない。もしN010ブロックで干渉ありと判断されたならば、N010ブロックの関数発生をしないので、P[-1]で停止することになる。干渉しないので、P[-1]-> P[0]へ向かうようにN010ブロックを関数発生し、関数発生周期ごとに順次・・・・Q[-3]、Q[-2]、Q[-1]、Q[0]を遅延手段３２および加減速シミュレーション手段３０に出力する。
【００３１】
加減速シミュレーション手段３０は、関数発生周期ごとに・・・Q[-2]、Q[-1]、Q[0]を受けて順次加減速していき・・・R[-2]、R[-1]、R[0]を第２の干渉チェック手段３４に出力する。
【００３２】
第２の干渉チェック手段３４は、関数発生周期ごとに・・・R[-3]->R[-2]、R[-2]->R[-1]、R[-1]->R[0]の経路の干渉をチェックする。本ケースでは、このシミュレーション経路では干渉しないので、移動指令遮断手段３６は遅延手段３２からの出力を関数発生周期ごとに軸駆動手段へ出力する。遅延手段３２からの出力は、時定数分（８周期）前の指令であり、・・・・Q[-10]-> Q[-9]->Q[-8]である。N010ブロックの関数発生終了時の様子を図８ａに示す。この図の工具の絵はQ[0]の関数発生をした周期、つまりR[-1]->R[0]の経路の干渉チェックした状況を示している。軸駆動手段へ出力した指令位置Q[-10]、Q[-9]、Q[-8]は白丸で示してある。すなわち、図８ａの時点では、Q[0]を関数発生した周期の、第２の干渉チェック手段３４での干渉チェックの対象はR[-1]->R[0]である。このときの遅延手段３２の出力はQ[-8]であり、干渉しないので、移動指令遮断手段３６はこれを軸駆動手段に出力する。
【００３３】
本ケースでは、次のN011ブロック（つまり指令経路P[0]-> P[1]）でも干渉しないので、次はN011ブロックの関数発生を開始する。Q[2]まで関数発生した時点のR[0]->R[1]->R[2]のシミュレーション経路では干渉しないので、上述のようにQ[-8]->Q[-7]->Q[-6]を各軸の駆動手段に出力する。N011ブロックのQ[2]まで関数発生した時点の様子を図８ｂに示す。この図の工具の絵は干渉チェックした状況を示している。軸駆動手段へ出力したので指令位置Q[-7]、Q[-6]は白丸にした。すなわち、図８ｂの例では、Q[1], Q[2]を関数発生した周期の、第２の干渉チェック手段３４での干渉チェックの対象はそれぞれR[0]->R[1], R[1]->R[2]である。これらに対応する遅延手段の出力はそれぞれQ[-7]、Q[-6]であり、干渉しないので、移動指令遮断手段３６はこれらを軸駆動手段に出力する。
【００３４】
さて、次の関数発生によりQ[3]が出力され、R[2]->R[3]のシミュレーション経路を得るが、本ケースではこの経路で第２の干渉チェック手段３４は干渉を検出することになる（図８ｃ）。このとき、移動指令遮断手段３６は第２の干渉チェック手段３４から干渉有りの通知を受け、遅延手段３２からのQ[-6]->Q[-5]の移動を遮断する。つまり、軸駆動手段への位置指令としてはQ[-6]のままとなる。一旦遮断されたらこの状態を維持するので、軸駆動手段による軸の移動はQ[-6]に収束し停止する。図８ｄに示すように、実際の工具の位置はQ[-6]の位置で止まる。つまり、実際の移動経路での衝突が防止できる。
【００３５】
図２は請求項２に係る発明の実施形態の構成である。図６と同じ名称の要素は従来技術と同じである。
【００３６】
本実施形態の構成においても、従来技術と同じように指令軌跡に対する干渉チェックを行うが、これに加え、だれた移動軌跡に対しても干渉チェックを行う。ただし、だれた移動軌跡は後述する局部シミュレーション手段４０によって事前に求めた軌跡に基づき許容範囲内の軌跡を選択して使う。
【００３７】
この結果、干渉と判断した場合には、そのブロックの関数発生を実行しないので衝突前に機械は停止する。干渉しないと判断した場合には、そのブロックの関数発生を実行し関数発生周期毎に移動指令を出力する。
【００３８】
パートプログラム１０にて図７ａの経路が指令された場合を例にとって、図９ａ〜ｄを用いて説明していく。
【００３９】
局部シミュレーション手段４０は、局部関数発生シミュレーション手段４２と局部加減速シミュレーション手段４４とを備える。局部関数発生シミュレーション手段４２は、関数発生手段１６と同様な方法で指令の移動経路を補間する手段である。ただし、関数発生手段１６がブロックの指令全域を補間するのに対して、局部関数発生シミュレーション手段４２は目標位置Ｐ[0]の近傍だけを補間する。近傍とは、図９ａに示すようにＰ[0]からＰ[-1]方向に加減速時定数Ｔだけ、Ｐ[0]からＰ[+1]方向にも加減速時定数Ｔだけの範囲である。これによりＱ[-T]からＱ[+T]の補間点が決定される。図９ａの例では、Ｔ＝８としている。
【００４０】
局部加減速シミュレーション手段４２は、加減速手段１８ｘ及び１８ｚと同様な方法で補間点を加減速する手段である。むろん、加減速には加減速手段１８ｘ及び１８ｚの加減速時定数と同じ値を使い、各軸分の加減速をすべて行う。ただし、加減速手段１８ｘ及び１８ｚがブロックの指令全域で補間された位置を順次加減速処理していくのに対して、局部加減速シミュレーション手段４４は図９ｂの補間点Ｑについてのみ加減速処理する。このようにして図９ｂのようなＲ[-T']からＲ[+T']までの加減速後の指令点が決定される（この例ではT'= T/2としている）。
【００４１】
なお、これら２つのシミュレーション手段が「局部」としてあるのは、「だれ」が生じるのは移動方向が変化する位置近傍だけであり、遠い部分では指令軌跡と一致するので、わざわざシミュレーションする必要がないためである。
【００４２】
チェック対象選択手段４６は、Ｒ[-T']からＲ[+T']までの指令点の中から、干渉チェックする指令点を選択する。直線とみなせる許容量（直線化許容量４８）を設け、許容範囲内の点は干渉チェックの対象から外すことで干渉チェックの計算時間を削減する目的のためである。詳細な方法は後述する。選択された指令点は移動方向順に直線経路として干渉チェック手段２６に渡される。
【００４３】
干渉チェック手段２６は、入力された経路と位置に基づき、図６の従来技術と同じ方法で干渉チェックを行う。
【００４４】
以上は目標位置Ｐ[0]についての説明であるが、これをパートプログラムすべての目標位置Ｐについて順次実施していく。
【００４５】
さて、チェック対象選択手段４６での指令点選択方法であるが、まず、Ｐ[0]とＲ[0]との距離が直線化許容量４８以内であれば、（だれは極めて少ないとみなせるので）プログラムの指令点Ｐ[0]のみをチェック対象とする。（結果、従来と同じになる。）
【００４６】
Ｐ[0]とＲ[0]との距離が直線化許容量４８より離れている場合は、Ｒ点群からチェック対象を選択する。ただし、処理範囲の両端であるＲ[-T']とＲ[+T']はこの後の処理の起点と終点とするためチェック対象となる。そして、以降、２分割法の考え方で、Ｒ[-T']とＲ[+T']を初期値として処理していく。まずは、これら注目する２点の中央の点であるＲ[0]と線分Ｒ[-T']・Ｒ[+T']（それら注目する２点を結んだ線分）の距離を調べる。この距離が直線化許容量４８以内であれば、Ｒ[0]はチェック対象とせずに終了する。
【００４７】
この距離が直線化許容量より離れている場合は、Ｒ[0]をチェック対象とする。さらに、Ｒ[0]より前のＲ[-T']とＲ[0]とを注目する２点として同様の処理を行いその間のＲ点を調べていく。また、並行して、Ｒ[0]より後ろのＲ[0]とＲ[+T']とを注目する２点として同様の処理を行う（前後に２分割している）。この２分割法処理は、注目する両端の点同士の中央の点がチェック対象とされないか、あるいは、調べるべき中点がなくなると、終了する。
【００４８】
具体的な例を図９ｃに掲載する。直線化許容量４８が図中に示す矢印Ｔｈの長さで示される量であった場合、各Ｒ点のうち黒い菱形◆の点がチェック対象として選ばれる。例えば、Ｒ[-2]と線分Ｒ[-4]・Ｒ[0]との距離ｄ２は直線化許容量（Ｔｈ）より小さいので、Ｒ[-2]はチェック対象に選ばれない。
【００４９】
このようなチェック対象選択手段４６の処理の結果、本構成における干渉チェック手段２６がチェックする経路は、図９ｄに太い矢印で示すＰ[-1]→Ｒ[-4]→Ｒ[0]→Ｒ[4]の経路となり、実際の工具の移動経路に近い経路で干渉チェックが行われる。
【００５０】
図３は請求項３に係る発明の実施形態の構成である。図６と同じ名称の要素は従来技術と同じである。
【００５１】
本実施形態の構成においても、従来技術と同じように指令軌跡に対する干渉チェックを行う。干渉と判断した場合には、そのブロックの関数発生を実行しないので衝突前に機械は停止する。
【００５２】
逆に干渉しないと判断した場合には、後述する本発明の指令経路変更手段５６によって変更された経路で関数発生を実行し、関数発生周期毎に移動指令を出力する。
【００５３】
シミュレーション手段５０は、関数発生シミュレーション手段５２と加減速シミュレーション手段５４から成る。関数発生シミュレーション手段５２は、従来技術の関数発生手段１６と同じ処理を行う。加減速シミュレーション手段５４は、軸駆動手段１７ｘ及び１７ｚにある加減速手段１８ｘ及び１８ｚと同じ処理を行う。シミュレーション手段５０により指令軌跡に対してだれる移動軌跡を事前に知ることができる。
【００５４】
指令経路変更手段５６は、関数発生シミュレーション手段５２からの指令軌跡と加減速シミュレーション手段５４により得られた「だれた」移動軌跡と、の差から、「だれ」を打ち消すような新たな指令軌跡を生成する。干渉チェック手段２６で干渉しないと判断された場合には、関数発生手段１６は、この新たな指令軌跡を関数発生する。干渉すると判断された場合は、従来技術と同様、実行管理手段２８により関数発生手段１６の補間処理が停止され、警告が発せられる。
【００５５】
図７ｂで示したようなケースで、この本発明の構成による動作を図１０ａ〜ｄで説明する。本例では、加減速手段１８ｘ及び１８ｚおよび加減速シミュレーション手段５４の時定数は８周期としてある。
【００５６】
図１０ａは、シミュレーション手段５２及び５４からの出力を説明する図である。ただし、説明の便宜上、P[0]の近傍だけを抽出したものである。N010ブロックおよびN011ブロックが解釈され、関数発生ができる経路データや送り速度の実行データが確定すると、関数発生シミュレーション手段５２はこれに基づき関数発生し、点群Q[n]を出力する。これらQ[n]を加減速シミュレーション手段５４は加減速して、点群R[n]を出力する。
【００５７】
図１０ａの点群Q[n]、点群R[n]を受けて、指令経路変更手段５６は、各Q点のだれを測定する。Q点のだれとは、互いに隣接するR同士を結んだ経路に対しての点Qのからの距離である。測定しただれのベクトルをS[n]として図に示したのが図１０ｂである。図１０ｂでは、Q[-5],Q[-4],Q[4],Q[5]のだれは０なので、だれはない。また、Q[-3],Q[-2],Q[2],Q[3]のだれは０ではないが、小さいので、図示は省略した。
【００５８】
この後指令経路変更手段５６は、各点Q[n]に対し、ベクトルS[n]の反対向きのベクトルS'[n]を加算することで、各点T[n]を作り出す。これを図１０ｃに示す。
【００５９】
この点群Tの軌跡を新たな軌跡として、プログラム指令の指令軌跡の代わりにバッファ１４に格納していく。関数発生手段１６は、このTの新たな軌跡を関数発生して軸駆動手段１７ｘ及び１７ｚに出力する。軸駆動手段１７ｘ及び１７ｚの加減速によりだれた移動軌跡となる（図１０ｄの黒い菱形◆の点を繋いだ経路）が、だれはプログラム指令軌跡から見れば十分小さい範囲に収まる。つまり、本実施形態によれば、実際の移動軌跡はプログラム指令軌跡に近くなるので、干渉チェック手段２６がプログラム指令軌跡で干渉チェックをしても従来技術より正確な衝突防止ができる。
【００６０】
図４は請求項４に係る発明の実施形態の構成である。図６と同じ名称の要素は従来技術と同じである。
【００６１】
本実施形態の構成においても、従来技術と同じように指令軌跡に対する干渉チェックを行う。干渉すると判断した場合には、そのブロックの関数発生は実行しないので衝突前に機械は停止する。
【００６２】
逆に干渉しないと判断した場合には、そのブロックの関数発生を実行し関数発生周期毎に移動指令を出力する。本実施形態では関数発生が実行されるとき、だれ抑止送り手段６２からの指示により、だれがクリアランス量６４以内となるように送り速度を調整する。だれがクリアランス量６４以内となるような送り速度を「だれ抑止送り速度」と称する。
【００６３】
加減速処理で生じるだれの量は、送り速度、加減速時定数、方向転向角に依存する。方向転向角とは移動の方向が変わった時の角度で、図７ａではP[-1]->P[0]の方向を基準にしたP[0]->P[1]の方向の角度のことで、この例は６０度であるとする。方向転向角は、プログラム指令経路で決まり、加減速時定数は軸駆動手段１７ｘ及び１７ｚの加減速手段１８ｘ及び１８ｚと同じ値であるべきなので変更することはできない。したがって、だれの量を許容値内に抑えるには速度を調整することになる。だれ抑止送り速度決定手段６０は、指令経路（方向転向角）に応じて、次の式でだれ抑止送り速度を算出する。
【数１】
2010092161.tif 000003
ε：クリアランス量
τ：加減速時定数
θ：方向転向角
【００６４】
許容されるだれの量を示すクリアランス量は、干渉チェック手段２６の機能や性能の特性（干渉チェック誤差など）に基づいて、あらかじめ設定されるものである。
【００６５】
関数発生で方向転向する際に、だれ抑止送り手段６２はだれ抑止送り速度を関数発生手段１６に指示する。関数発生手段１６は方向転向する点の前後ｆ×τ分の範囲については、指示された速度で関数発生する。これにより、方向転向する点の近傍の移動経路のだれはクリアランス量以内に収まる。したがって、干渉チェック手段２６がパートプログラム１０の指令経路で干渉チェックするだけでも、移動経路で不用意な干渉が発生することはなく、従来技術より正確な衝突防止ができる。
【００６６】
図５は請求項５に係る発明の実施形態の構成である。図６と同じ名称の要素は従来技術と同じである。
【００６７】
本実施形態の構成においても、従来技術と同じように指令軌跡に対する干渉チェックを行う。干渉と判断された場合には、そのブロックの関数発生は実行されないので衝突前に機械は停止する。
【００６８】
逆に干渉しないと判断された場合には、後述する本実施形態のだれ抑止待ち管理手段７０によって指示された関数発生周期の回数だけ待ってから、そのブロックの関数発生を実行し関数発生周期毎に移動指令を出力する。
【００６９】
だれ抑止待ち回数テーブル７２は、方向転向角をキーとして、その角度に応じただれ抑止待ち回数が格納されている。テーブルの一例を表１に示す。待ち回数とは関数発生周期単位で数えた数である。０回とは待ちなしのことで、現ブロックの関数発生が終了した次の関数発生周期で次のブロックの関数発生を開始することを意味する。１回とは、現ブロックの関数発生が終了した次の関数発生周期では関数発生をせずに待ち、その次の周期で次のブロックの関数発生を開始することを意味する。
【表１】
2010092161.tif 000004
【００７０】
だれ抑止待ち回数テーブル作成手段７４は、だれ発生の大きな要因である軸ごとの加減速手段１８ｘ及び１８ｚと、その前段である位置決めの関数発生をシミュレーションしてだれ量を評価し、だれ抑止待ち回数テーブル７２を作成する。処理をシミュレートするのはもちろん、パラメータも加減速には実際の加減速時定数を、関数発生には実際の送り速度を用いて、だれ量を精度よく評価できるようにしてある。具体的手順は後述する。
【００７１】
このシミュレーションには、大きな計算量がかかるが、初期化時に実施するように構成しているので、数値制御装置としての時間的制約（後述の解釈系、実行系での制約）にはならない。
【００７２】
だれ抑止待ち回数決定手段７６は、だれ抑止待ち回数テーブル７２から方向転向角に該当する待ち回数を選び出す。方向転向角は、前のブロックの移動方向に対する現ブロックの移動方向の変化分で、例えば同じ方向なら０度、方向が反転した場合には１８０度となる。移動方向は、実行データのひとつである移動ベクトルを用いる。表１に示したように、キーである方向転向角は離散値であり、キーにないたとえば１５度といった場合には、最も近い２０度のところの回数を引き出す。引き出した回数を、そのブロックの実行データのひとつとしてバッファ１４に格納する。だれ抑止待ち回数決定手段７６は、ブロックの「解釈」と同様に先行して実行される。解釈系には関数発生が滞りなく関数発生できるような時間的制約があるが、表引き程度の処理なので支障になるほどの増加にはならない。
【００７３】
だれ抑止待ち管理手段７０は、実行データのだれ抑止待ち回数にしたがって、そのブロックの関数発生の開始を待たせる。上述のだれ抑止待ち回数テーブル７２の項で説明したように作用する。だれ抑止待ち管理手段７０は、関数発生と同じ実行系で実施される。実行系は一定の周期（関数発生周期）ごとに実施されるため、この一定周期内で処理が終了しなければならない厳しい時間的制約があるが、処理は待ち回数のカウント程度なのでこの制約に十分収まる。
【００７４】
さて、だれ抑止待ち回数テーブル作成手段７４の具体的手順を、図１１のフローチャートおよび図１２ａ〜ｅを用いて説明する。
【００７５】
テーブルは０度から１８０度までの方向転向角θをキーとしているので、それぞれの角度の待ち回数を順次求めていくように、Ｓ１、Ｓ２、Ｓ１１でそのループ処理を構成している。
【００７６】
待ち回数を求めるためにまず、方向転向角がθとなるパスを作る（Ｓ３）。方向が変わる点P[0]を原点としたシミュレーション座標をとり、Ｚ軸上のマイナスからP[0]に向かうパスと、これを基準に方向転向角θのパスを作る。図１２ａに方向転向角６０度の例を示す。P[0]を原点に置いたのは、後の計算が簡便になるからである。
【００７７】
次に、早送り速度Ｆで位置決め関数発生をシミュレーションし点群Ｑを得る（Ｓ４）。ただし、だれ量を求めるには次の加減速シミュレーションで使う時定数τ個分の点を求めればよく、点P[0]を中心にP[-1]方向とP[1]方向にそれぞれτ／２個ずつ求める。図１２ｂにτ＝９の例を示す。
【００７８】
ステップＳ５で待ち回数のシミュレーションのための待ち回数Ｗの初期化を行う。０回から始める。
【００７９】
ステップＳ６で加減速シミュレーションを行う。Ｗ＝０の場合はτ個分のＱの平均をとることで、R[0]が求められる。τ＝９なら、Q[-4]からQ[4]の９点の平均をとる（図１２ｃ）。Ｗ＝１でτ＝９なら、Q[-4]からQ[3]の８点とQ[0]の１点の計９点の平均をとる。Ｗ＝２でτ＝９なら、Q[-3]からQ[3]の７点とQ[0]２回分（待ちの分）の２点との計９点の平均をとる。Ｗ＝３でτ＝９なら、Q[-3]からQ[2]の６点とQ[0]３回分の３点との計９点の平均をとる（この場合を図１２ｄに示す）。待ちが多いほどR[0]はP[0]に近づくが、時定数τと同じ回数待ちでR[0]はP[0]に一致し、それ以上は変わらない。
【００８０】
R[0]はP[0]の近くには求まるが、ベクトルP[0]->R[0]の距離が必ずしもそのままだれ量となるわけではない。このため、ステップS７で、R[0]からだれ量ｄを求める。だれ量は角P[-1]、P[0]、P[1]の半分の方向（それら３点P[-1]、P[0]、P[1]が張る角の中央（半角）の方向）で測るものとし、ベクトルR[0]をこの方向の線上に写像したときの距離をだれ量ｄとする。図１２ｅに示すように、方向転向角θから半角の単位ベクトルｈを求め、ベクトルR[0]と内積をとり、だれ量ｄとする。
【００８１】
このようにして求めただれ量ｄを評価するのがステップＳ８である。だれ量ｄがクリアランスε７８以下であれば、待ち回数Ｗをだれ抑止待ち回数テーブルに登録する（Ｓ１０）。だれ量ｄがクリアランスε７８より大きければ、待ち回数Ｗを一つ増やし（Ｓ９）、ステップＳ６からを実行する。
【００８２】
なお、だれ抑止待ち回数テーブル７２は、上述の説明ではキーである方向転向角が一定の間隔で作られるが、待ち回数を引き出すのが目的であるので、待ち回数がひとつずつ増えるような形に整形してもよい。また、方向転向角は角度で説明したが、０から１８０度で一義に決まる、たとえば余弦といったような値で、全体を構成してもよい。
【００８３】
以上のような構成により、干渉しないと判断された場合にだれ抑止待ち管理手段７０によって指示された関数発生周期の回数だけ待ってからそのブロックの関数発生を実行するので、方向転向する点の近傍の移動経路だれはクリアランス量以内に収まる。したがって、指令経路で干渉チェックするだけでも、移動経路で不用意な干渉が発生することはなく、従来技術より正確な衝突防止ができる。
【図面の簡単な説明】
【００８４】
【図１】第１の実施形態の構成例を示す機能ブロック図である。
【図２】第２の実施形態の構成例を示す機能ブロック図である。
【図３】第３の実施形態の構成例を示す機能ブロック図である。
【図４】第４の実施形態の構成例を示す機能ブロック図である。
【図５】第５の実施形態の構成例を示す機能ブロック図である。
【図６】従来の装置構成を示す機能ブロック図である。
【図７ａ】指令経路の例を示す図である。
【図７ｂ】図７に例示した指令経路に対する、従来装置の実際の移動経路を示す図である。
【図８ａ】第１の実施形態の作用効果を説明するための図である。
【図８ｂ】第１の実施形態の作用効果を説明するための図である。
【図８ｃ】第１の実施形態の作用効果を説明するための図である。
【図８ｄ】第１の実施形態の作用効果を説明するための図である。
【図９ａ】第２の実施形態の作用効果を説明するための図である。
【図９ｂ】第２の実施形態の作用効果を説明するための図である。
【図９ｃ】第２の実施形態の作用効果を説明するための図である。
【図９ｄ】第２の実施形態の作用効果を説明するための図である。
【図１０ａ】第３の実施形態の作用効果を説明するための図である。
【図１０ｂ】第３の実施形態の作用効果を説明するための図である。
【図１０ｃ】第３の実施形態の作用効果を説明するための図である。
【図１０ｄ】第３の実施形態の作用効果を説明するための図である。
【図１１】だれ抑止待ち回数テーブル作成手段の処理手順の例を示すフローチャートである。
【図１２ａ】だれ抑止待ち回数テーブル作成手段の処理を説明するための図である。
【図１２ｂ】だれ抑止待ち回数テーブル作成手段の処理を説明するための図である。
【図１２ｃ】だれ抑止待ち回数テーブル作成手段の処理を説明するための図である。
【図１２ｄ】だれ抑止待ち回数テーブル作成手段の処理を説明するための図である。
【図１２ｅ】だれ抑止待ち回数テーブル作成手段の処理を説明するための図である。
【符号の説明】
【００８５】
１０  パートプログラム、１２  プログラム解釈手段、１４  バッファ、１６  関数発生手段、１７ｘ  Ｘ軸駆動手段、１７ｚ  Ｚ軸駆動手段、１８ｘ，１８ｚ  加減速手段、２０ｘ，２０ｚ  サーボ、２２ｘ，２２ｚ  モータ及び検出器、２６  干渉チェック手段、２８  実行管理手段、３０  加減速シミュレーション手段、３２  遅延手段、３４  第２の干渉チェック手段、３６  移動指令遮断手段。
【図１】
2010092161.tif 000005
【図２】
2010092161.tif 000006
【図３】
2010092161.tif 000007
【図４】
2010092161.tif 000008
【図５】
2010092161.tif 000009
【図６】
2010092161.tif 000010
【図７ａ】
2010092161.tif 000011
【図７ｂ】
2010092161.tif 000012
【図８ａ】
2010092161.tif 000013
【図８ｂ】
2010092161.tif 000014
【図８ｃ】
2010092161.tif 000015
【図８ｄ】
2010092161.tif 000016
【図９ａ】
2010092161.tif 000017
【図９ｂ】
2010092161.tif 000018
【図９ｃ】
2010092161.tif 000019
【図９ｄ】
2010092161.tif 000020
【図１０ａ】
2010092161.tif 000021
【図１０ｂ】
2010092161.tif 000022
【図１０ｃ】
2010092161.tif 000023
【図１０ｄ】
2010092161.tif 000024
【図１１】
2010092161.tif 000025
【図１２ａ】
2010092161.tif 000026
【図１２ｂ】
2010092161.tif 000027
【図１２ｃ】
2010092161.tif 000028
【図１２ｄ】
2010092161.tif 000029
【図１２ｅ】
2010092161.tif 000030