(57)【特許請求の範囲】
【請求項１】
機械動作時の衝撃を和らげるため関数発生後に移動体の移動速度を加減速処理する工作機械の数値制御装置にて、プログラム指令の実行前に、前記プログラム指令において指令された移動体の移動経路及びこの指令された移動経路からダレた経路と干渉チェック対象物との干渉チェックを行い、干渉すると判断された場合には関数発生をしないことで衝突を防止する衝突防止装置において、
前記プログラム指令による実行データに対して、指示された送り速度に従ってシミュレーションを行うことによって移動経路を生成する経路生成手段と、
前記経路生成手段からの移動経路について干渉チェック対象物との干渉チェックを行い、干渉の有無を判断する干渉チェック手段と、
前記プログラム指令における送り速度から規定される送り速度の上限値と送り速度の下限値から始め、２分法により中間速度を決めながら、それぞれの送り速度を前記経路生成手段に指示してその送り速度での移動経路を生成させ、それらの移動経路と干渉チェック対象物との干渉の有無に基づき、移動経路と干渉チェック対象物とが衝突する速度帯域を判定する制限判断手段と、
前記制限判断手段により判定された前記衝突する速度帯域に基づき、関数発生の送り速度を制御する送り速度制限手段であって、前記プログラム指令における送り速度での移動経路が干渉チェック対象物と干渉する場合でも、前記プログラム指令が実行されるときの送り速度である実行時速度が前記速度帯域外であれば、その実行時速度にて移動体を送るよう制御する送り速度制限手段と、
を備える数値制御装置における衝突防止装置。
【請求項２】
前記送り速度制限手段は、前記プログラム指令が実行されるときの送り速度が前記速度帯域内であればその送り速度をその速度帯域の下限の速度に変更することで衝突を回避する、ことを特徴とする請求項１に記載の数値制御装置における衝突防止装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値制御装置における衝突防止装置に関する。
【背景技術】
【０００２】
図８に従来技術の数値制御装置における衝突防止装置の構成を示す。工作機械自体は図示していないが、Ｚ軸とＸ軸の２軸を有する工作機械を例にしており、軸を駆動することでワークと工具を相対的に移動させ加工を行う。
【０００３】
プログラム解釈手段１２は、数値制御装置の制御のためのパートプログラム１０を１ブロックずつ読み込み、そこに指令されている経路、送り速度などを解釈し、関数発生手段１６で実行可能な形の実行データを生成する。生成された実行データは一旦バッファ１４に格納される。これは時間のかかる解釈処理などを先行して実施し実行データを溜めこんでおくことで、１ブロック分の関数発生に要する時間との差を緩和し、滞りなく実行するための緩衝器である。
【０００４】
関数発生手段１６は、バッファ１４に格納されている実行データを順次読み出し、実行データにある指令経路上を、実行データに示された目標位置まで、指令された送り速度で一定時間（関数発生周期）毎に補間していく。
【０００５】
補間点は関数発生周期毎の移動指令に変換されたうえで軸毎の指令に分けられ、Ｘ軸駆動手段１７Ｘ及びＺ軸駆動手段１７Ｚが備える加減速手段１８Ｘ及び１８Ｚにて機械動作の際に不要な衝撃を与えないような時定数で加減速処理を施された後、サーボ２０Ｘ及び２０Ｚに渡される。サーボ２０Ｘ及び２０Ｚは与えられた指令にしたがい、機械を駆動するモータを検出器によりフィードバック制御する（モータ及び検出器２２Ｘ及び２２Ｚ）。
【０００６】
さて、図８における衝突防止は、工作機械がパートプログラム１０にしたがって動作するとき、衝突すると判断されたブロックの関数発生をしないことで実現している。
【０００７】
干渉チェック手段２６は、モデルデータ２４を仮想空間内で組立て、移動体を実行データの指令経路にしたがって移動させ干渉の有無を判断する。モデルデータ２４とは、工作機械の可動部単位や可変単位、つまり工作機械本体や送り軸、工具、ワークといった干渉チェックする干渉チェック対象物の形状を個別に数値として保持しているデータ群である。干渉の有無の判断は１ブロック毎に行い、干渉有無のデータは実行データのひとつとしてバッファ１４に格納していく。
【０００８】
実行管理手段２８は、実行ブロックに干渉がなかった場合には通常に関数発生手段にて補間を実行させるが、干渉があった場合には補間をさせず、干渉を検出した旨の警告を出す。
【０００９】
図８のような従来技術での衝突防止装置では、干渉しないと判断されても実際には干渉してしまう場合がある。軸駆動手段１７Ｘ及び１７Ｚの加減速手段１８Ｘ及び１８Ｚにおいて追従遅れによる軌跡のダレが生じるためで、実際の機械の動き（制御する工具の軌跡）は、指令とは異なってしまうためである。
【００１０】
この問題を解決するために、出願人は、図９のような衝突防止装置を提案した（特許文献１。例えば図２参照）。この装置では、指令軌跡に加え、実際の機械の動き（ダレた軌跡）に対しても干渉チェックを行うことで、干渉の見逃しを少なくするものである。関数発生手段１６による移動指令の実行に先立ち、局部シミュレーション手段４０が備える局部関数発生シミュレーション手段４２及び局部加減速シミュレーション手段４４によりダレた軌跡を求め、これを干渉チェックすることで、干渉の見逃しの低減を実現している。なお、直線化許容量４８の範囲内の軌跡はチェック対象選択手段４６により干渉チェックの対象から外すことで、干渉チェック手段２６の計算負荷を低減している。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２０１０−０９２１６１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、図９の衝突防止装置では、干渉すると判断されても実際には干渉しない場合がある。軌跡がダレる量は送り速度に依存するが、移動指令の実行においてオペレータが送り速度を変更することは普通に行われる。たとえば、移動指令の実行において送り速度を指令の半分で送った場合、ダレの量も事前の局部シミュレーションの半分程度になるので、干渉チェック時点で干渉すると判断されても、実際には衝突しない場合がありうる。事前のシミュレーション時点では実際の送り速度がわからないためである。このようなケースだと、干渉検知の都度衝突防止のために送りが止まるので、復旧に手間がかかるという問題につながる。
【００１３】
本発明は、実際の送り速度が指令値から変更される場合に対応して、衝突防止のために送り停止となるケースを少なくすることができる衝突防止装置を提供するものである。
【課題を解決するための手段】
【００１４】
１つの側面では、本発明は、機械動作時の衝撃を和らげるため関数発生後に移動体の移動速度を加減速処理する工作機械の数値制御装置にて、プログラム指令の実行前に、前記プログラム指令において指令された移動体の移動経路及びこの指令された移動経路からダレた経路と干渉チェック対象物との干渉チェックを行い、干渉すると判断された場合には関数発生をしないことで衝突を防止する衝突防止装置において、前記プログラム指令による実行データに対して、指示された送り速度に従ってシミュレーションを行うことによって移動経路を生成する経路生成手段と、前記経路生成手段からの移動経路について干渉チェック対象物との干渉チェックを行い、干渉の有無を判断する干渉チェック手段と、前記プログラム指令における送り速度から規定される送り速度の上限値と送り速度の下限値から始め、２分法により中間速度を決めながら、それぞれの送り速度を前記経路生成手段に指示してその送り速度での移動経路を生成させ、それらの移動経路と干渉チェック対象物との干渉の有無に基づき、移動経路と干渉チェック対象物とが衝突する速度帯域を判定する制限判断手段と、前記制限判断手段により判定された前記衝突する速度帯域に基づき、関数発生の送り速度を制御する送り速度制限手段であって、前記プログラム指令における送り速度での移動経路が干渉チェック対象物と干渉する場合でも、前記プログラム指令が実行されるときの送り速度である実行時速度が前記速度帯域外であれば、その実行時速度にて移動体を送るよう制御する送り速度制限手段と、を備える。
【００１５】
１つの態様では、前記送り速度制限手段は、前記プログラム指令が実行されるときの送り速度が前記速度帯域内であればその送り速度をその速度帯域の下限の速度に変更することで衝突を回避する、ことを特徴とする。
【発明の効果】
【００１６】
複数の送り速度でのシミュレーションにより移動軌跡についての干渉チェックを行うことで衝突する速度帯域をあらかじめ求めておき、実行時の送り速度がその帯域内か否かで制御を切り替えるので、プログラムの速度指令では干渉が生じると判断される場合でも実際の送り速度では干渉しないケースには送り停止を行わないようにことができる。つまり、実際の送り速度の変更に対応でき、操作性が向上する。
【００１７】
また、１つの態様では、送り速度を遅くすれば干渉しない場合にはその速度へと自動的に制限するので、衝突防止のために送り停止となるケースが少なくなり、停止からの復旧に要する手間や時間が少なくなる分、生産効率が上がる。
【図面の簡単な説明】
【００１８】
【図１】実施形態の構成例を示す機能ブロック図である。
【図２】制限判断手段の処理手順の一例を示すフローチャートである。
【図３】制限値上昇絞込処理の一例を示すフローチャートである。
【図４】制限値下降絞込処理の一例を示すフローチャートである。
【図５】送り速度制限手段の処理手順の一例を示すフローチャートである。
【図６ａ】指令された軌跡と指令された速度での実際の軌跡との関係を示す図である。
【図６ｂ】送り速度が１％、５０％及び１００％での軌跡の関係を示す図である。
【図６ｃ】送り速度が５０％、７５％及び１００％での軌跡の関係を示す図である。
【図７】送り速度が低い時に干渉が生じる例を示す図である。
【図８】従来技術の装置の構成の例を示す図である。
【図９】別の従来技術の装置の構成の例を示す図である。
【発明を実施するための形態】
【００１９】
図１に、本発明の実施形態の構成の一例を示す。図１において、図９に示した要素と同様の要素には同一符号を付して詳細な説明を省略する。
【００２０】
図１の経路生成手段３０は、図９（特許文献１の図２の例に対応）の局部シミュレーション手段４０とチェック対象選択手段４６と直線化許容量４８を包含したものに相当する。ただし、本実施形態の経路生成手段３０は、内包する局部シミュレーション手段４０の局部関数発生シミュレーション手段４２に相当する機能モジュール（図示省略）に対して、外部から送り速度を指定できるようになっている点が、図９に示した特許文献１の構成とは異なる。なお、局部シミュレーション手段４０とチェック対象選択手段４６と直線化許容量４８の機能や処理内容については特許文献１に詳しく説明されているので、この明細書では、経路生成手段３０が備えるそれらモジュールの機能についての説明は省略する。
【００２１】
特許文献１の装置では、指令軌跡か指令速度のダレた軌跡において干渉を検出した場合に、衝突防止のために関数発生を停止する。図６ａは工具等の移動体をＰ[-1]からＰ[0]に移動するブロックとＰ[0]からＰ[1]に移動するブロックとの２つのブロックを含んだ指令を受けた場合の動作例である。またワークは干渉チェック対象物の一例である。指令軌跡では移動体はワークに干渉しないが、指令速度のダレた軌跡ではワークとの干渉が検知されるので、２番目のブロックの関数発生は行われず、Ｐ[0]で止まってワークとの衝突が回避される。（なおこの例では、その後このままプログラムを再開しても、Ｐ[0]からＰ[1]の軌跡上を移動するので、衝突は起きない。）
【００２２】
本実施形態の構成においても、特許文献１の図２の例と同じようにダレた軌跡に対する干渉チェックを行うが、本実施形態では複数の送り速度でこれを行う点が特許文献１の場合と異なる。このような複数の送り速度でのチェックを実行するのが制限判断手段３２である。制限判断手段３２は、送り速度の上限値と送り速度の下限値から始め、２分法により中間速度を決めながら、それぞれの速度を経路生成手段３０に指示し、それぞれの速度での移動体の移動経路を生成させる。そして、それら各速度の経路とワークとの干渉の有無に基づき、衝突する速度帯域（すなわち移動体とワークの干渉が生じる移動体速度の範囲）を求める。
【００２３】
この処理の具体的な例を図２のフローチャートに示す。図２では説明の都合上、速度を基準速度に対する％で表記している。基準速度が明確であれば％表記でも等価である。また、送りオーバーライドと表記している図もあるがこれも％表記の送り速度と等価である。本例では、一例として、送り速度の上限値を１００％、下限値を１％と定めた。
【００２４】
また「高速側制限値」と「低速側制限値」は衝突する速度帯域の上限と下限を示すデータである。また、「高速側制限値：なし」とは、「低速側制限値」から送り速度の上限値（この例では基準速度の１００％）までの速度帯域で、送り速度の制限が行われることを意味する。
【００２５】
図６ａと同じケースを例にとって、制限判断手段３２の処理を説明する。まず、送りオーバーライド（送り速度）１００％と１％、そしてその中間速度として５０％の３種類の速度で移動体を送った場合の移動体の軌跡（経路）を経路生成手段３０に生成させ、これら経路とワークとの干渉チェックを行う（Ｓ１０，Ｓ１２，Ｓ１４）。そして、それら３種類の速度での移動体経路について、ワークとの干渉が生じたかどうかを判定する。この際、干渉有無の判定は低速の経路から順に行っていく（Ｓ１６，Ｓ１８，Ｓ２０）。
【００２６】
なお、各速度についての経路生成手段３０による移動体の移動経路の算出や、干渉チェック手段２６によるその軌跡とワークとの干渉の判定は、特許文献１に示される技術を用いて行えばよい。
【００２７】
この手順で、速度１％（Ｓ１６）でも速度５０％（Ｓ１８）でも干渉しないと判定した場合、更に速度１００％で干渉が発生するか否かを判定する（Ｓ２０）。その結果、速度１００％でも干渉が発生しないと判定した場合、制限判断手段３２は、高速側制限値を０（ゼロ）に設定する（Ｓ５４）。高速度制限値が０である場合、本実施形態の装置では、送り速度の制限を行わない。すなわち、指示された送り速度をそのまま用いて移動体を移動させる。速度１％、５０％、１００％のいずれでも干渉が発生しないと判定されるので、全速度範囲にわたって干渉が発生しない可能性が極めて高いと判断されるからである。
【００２８】
一方、Ｓ２０において、速度１００％で干渉があると判定した場合、制限判断手段３２は、（１００％は送り速度の上限なので）干渉が発生する可能性が高い範囲の上限速度（高速側制限値と呼ぶ）は１００％（なお、この実施形態では、高速側制限値が１００％の場合、高速側制限値を「なし」と表現する）とするとともに（Ｓ４６）、その範囲の下限速度である低速側制限値を求める（Ｓ４８〜Ｓ５２）。
【００２９】
送り速度１００％、５０％及び１％のそれぞれの場合の軌跡を図６ｂに示す。図６ｂの例では、送り速度１００％の軌跡だけが干渉すると判断される。この場合、Ｓ２０の判定結果が「あり」となり、図２の右から２列目のパスを通ることになる。この場合、制限判断手段３２は、「高速側制限値」を「なし」に設定するが（Ｓ４６）、「低速側制限値」は５０％よりも高い速度であると推定できるので（１％でも５０％でも干渉しないため）、Ａ＝１００％、Ｂ＝５０％に設定し（Ｓ４８）、２分法による絞り込みを行う。これが「制限値上昇絞り込み」処理（Ｓ５０）である。
【００３０】
「制限値上昇絞り込み」処理Ｓ５０の詳細な手順の例を図３に示す。この処理は、二分法により速度の制限値を徐々に上昇させながら、適切な制限値を判定するための処理である。「制限値上昇絞り込み」処理では、ＡとＢの中間速度Ｃ（図示例ではＡとＢの平均）を計算し（Ｓ１００）、その中間速度Ｃでの移動体の移動経路を生成して干渉チェックを行い（Ｓ１０２）、干渉の有無を判定する（Ｓ１０４）。この例では、１回目の呼び出しでは、データＡに１００％を、データＢに５０％が設定されている。したがって、ＡとＢの中間速度Ｃは７５％である。送り速度７５％の場合の軌跡が、図６ｃのようであったとすると、干渉なしとなる。この判定の後、２分法の繰り返し回数が所定回数に達したかどうかを判定する（Ｓ１０６）。この繰り返し回数を多くするほど、処理に要する時間が長くなるものの、制限値の絞り込みが細やかになる。「所定回数」の値は、この処理所要時間と絞り込みの細かさのトレードオフを考慮してあらかじめ定めておく。繰り返し回数が所定回数に達していれば、制限値ＲにＣを代入して（Ｓ１０８）、処理を終える。この制限値Ｒが呼び出し側のルーチン（特に図２のＳ５０）に戻される。図２のＳ５２では、この制限値Ｒを低速側制限値とする。
【００３１】
例えば、「所定回数」を１回とすると、この例ではすでに中間速度７５％について干渉チェックを１回済ませているので、Ｓ１０６の判定はＹｅｓとなり、その結果としての制限値Ｒが７５％となる（Ｓ１０８）。これを呼び出し側で「低速側制限値」として保持する（図２のＳ５２）。
【００３２】
この例では、以上のような処理により、制限判断手段３２は、「高速側制限値：なし」「低速側制限値＝７５％」を決定する。
【００３３】
なお、Ｓ１０６で繰り返しが所定回数に達していない場合は、制限判断手段３２は、今回求めた中間速度Ｃを低速側の速度Ｂに代入し（Ｓ１１０）、Ｓ１００以降の処理を繰り返す。
【００３４】
また、Ｓ１０４で「干渉あり」と判定した場合、２分法の繰り返し回数があらかじめ定めた所定回数に達しているかどうかを判定する（Ｓ１１２）。所定回数に達していれば、制限値ＲにＢを代入し（Ｓ１１４）、この制限値Ｒを呼び出し側ルーチンに戻す。Ｓ１１２で、繰り返し回数が所定回数に達していない場合は、Ｓ１００で計算した中間速度Ｃを高速側の速度Ａに代入し（Ｓ１１６）、Ｓ１００以降の処理を繰り返す。
【００３５】
このようにして高速側制限値及び低速側制限値が求められると、図１の送り速度制限手段３４は、それら高速側制限値及び低速側制限値に基づき関数発生手段１６が発生する送り速度を制限する。通常の関数発生では、プログラムから指示された送り速度で軸を送るが、本実施形態の送り速度制限手段３４は高速側制限値及び低速側制限値により規定される、衝突（干渉）が生じる速度帯域を避けるように送り速度を変更する。
【００３６】
図５のフローチャートは、送り速度制限手段３４の処理の流れの一例を示すものである。この処理はパートプログラム１０の個々のブロックの開始時に実行され、そのブロックでの実際の送り速度を決める。
【００３７】
この手順では、まず停止指示（図２のＳ２２。詳細は後述）があるかどうかを判定する（Ｓ１４０）があれば、どのような速度でも干渉する可能性が高いので、送り速度制限手段３４は、関数発生手段１６の関数発生を停止させ、軸送りを止めて衝突を防止する（Ｓ１４２）。
【００３８】
停止指示がなければ、次は「高速側制限値」があるかどうかを判断する（Ｓ１４４）。高速側制限値がある場合には、これと指示された送り速度とを比較する（Ｓ１４６）。ここでいう「指示された送り速度」は、基本的にはパートプログラム１０により指示された送り速度であるが、数値制御装置のオペレータが実際の移動速度をパートプログラム１０に規定された送り速度から変更している場合は、オペレータにより変更された送り速度である。指示された送り速度が「高速側制限値」以上である場合には、干渉しないので実速度は指示された送り速度のままでよい（Ｓ１４８）。実速度とは、移動体を実際に移動させる際の速度のことである。なお「高速側制限値」がゼロのときは、このパスを通ることになり、これは制限速度がないこと（すなわち指示された速度を制限する必要がないこと）を意味する。
【００３９】
「高速側制限値」がない場合、あるいは、指示された送り速度が「高速側制限値」より小さい場合、「低速側制限値」と指示された送り速度とを比較する（Ｓ１５０）。なお、「高速側制限値」が「ない」とは、送り速度の上限値までの範囲で、速度制限が行われることを意味する。また、このときには、「低速側制限値」は必ず存在するので、「低速側制限値」の有無の判定はしていない。
【００４０】
指示された送り速度が「低速側制限値」以下である場合には、干渉しないので実速度は指示された送り速度のままでよい（Ｓ１５２）。逆に、指示された送り速度が「低速側制限値」より大きい場合には、干渉する危険性が高いので、実速度を「低速側制限値」に置き換える（Ｓ１５４）。
【００４１】
さて、前述の図６ａ〜図６ｃの例では「高速側制限値：なし」、「低速側制限値＝７５％」と決定されている。この場合において、現在の実際の送り速度がオーバーライド１００％であったとする。この場合、送り速度制限手段３４の処理は、図５のフローチャートのＳ１４０，Ｓ１４４，Ｓ１５０，Ｓ１５４のパスを通るので、実速度が７５％に抑えられることになる。ここで、仮にオペレータが、オーバーライド５０％で運転していたとすると、Ｓ１４０，Ｓ１４４，Ｓ１５０，Ｓ１５２のパスを通ることになり、その結果、オーバーライド５０％の速度のままで運転される。いずれにしても、これらの例では、関数発生手段１６の関数発生処理が衝突防止のために停止されることはない。
【００４２】
もう一つの例として、図７のケースで説明する。この例は、指令軌跡とほぼ同じ送りオーバーライド１％の軌跡で干渉が検知された場合である。制限判断手段３２の処理（図２）の最左列のパス（Ｓ１０，Ｓ１２，Ｓ１４，Ｓ１６，Ｓ２２）を通り停止指示が出力される。すなわち、Ｓ１６の判定結果が「あり」となり、Ｓ２２にて制限判断手段３２が停止指示を出力する。停止指示が出されると、送り速度制限手段３４の処理（図５）にて、Ｓ１４０の判定結果が「あり」となり、Ｓ１４２で関数発生手段１６の関数発生が停止することで、移動体とワークとの衝突が防止される。
【００４３】
なお、送り速度の下限値でワークとの干渉が生じても、図７の例のように送り速度が高くなれば干渉しなくなる場合もある。このため、送り速度の下限値で干渉が発生するとシミュレーションで求められた場合、実際の送り速度をある速度以下にしないように送り速度制限手段３４を構成することで干渉を回避することも可能である。しかし、この実施形態では、異常事態で停止した時も安全なようにするための措置として、送り速度の下限値で干渉を検知した場合は停止するようにした。
【００４４】
次に、図２のフローチャートにおいて、送り速度の下限値（図示例では１％）の経路で干渉なしと判定され（Ｓ１６の判定結果が「なし」）、下限値と上限値の中間速度（図示例では５０％）の経路で干渉ありと判定された場合の処理の流れを説明する。
【００４５】
この場合、制限判断手段３２は、更に速度が上限値（１００％）のときの経路で干渉が生じるかどうかを判定する（Ｓ２４）。この判定の結果、上限値（１００％）のときも干渉が発生することが分かった場合、制限判断手段３２は、（５０％でも１００％でも干渉が生じるため）高速側制限値を「なし」に設定すると共に（Ｓ２６）、低速側制限値を下限値（１％）から中間値（５０％）の範囲から探す。このために、Ａ＝５０％、Ｂ＝１％に設定し（Ｓ２８）、２分法による制限値上昇絞込処理を行う（Ｓ３０）。Ｓ３０では、既に説明した図３に示した処理手順を実行すればよい。Ｓ３０で制限値Ｒが求められると、このＲを低速側制限値に設定する（Ｓ３２）。
【００４６】
また、Ｓ２４で速度１００％の経路で干渉がないと判定された場合について考える。この場合、１％でも１００％でも干渉は生じないが、その間の５０％では干渉が生じている。したがって、干渉が発生する可能性の高い範囲の上限（高速側制限値）は５０％と１００％の間にあり、下限（低速側制限値）は１％と５０％の間にある。そこで、Ｓ３４〜Ｓ３８で高速側制限値を、Ｓ４０〜Ｓ４４で低速側制限値を求める。なお、Ｓ３４〜Ｓ３８と、Ｓ４０〜Ｓ４４とは、どちらを先に実行してもよい。
【００４７】
Ｓ３４ではＡ＝１００％、Ｂ＝５０％に設定し、Ｓ３６にて図４に示すような「制限値下降絞り込み」処理を行う。この処理は、図３の「制限値上昇絞り込み」処理と類似した２分法の処理であるが、速度が高い方には干渉がなく速度の低い方で干渉する図３とは逆のパターンにおいて、制限速度を速度の低い方に向って２分法で求めてゆくものである。
【００４８】
この「制限値下降絞り込み」処理では、ＡとＢの中間速度Ｃを計算し（Ｓ１２０）、その中間速度Ｃでの移動体の移動経路を生成して干渉チェックを行い（Ｓ１２２）、干渉の有無を判定する（Ｓ１２４）。干渉なしと判定した場合、２分法の繰り返し回数が所定回数に達したかどうかを判定する（Ｓ１２６）。繰り返し回数が所定回数に達していれば、制限値ＲにＣを代入して（Ｓ１２８）、処理を終える。この制限値Ｒが呼び出し側のルーチン（特に図２のＳ３６）に戻される。図２のＳ３８では、この制限値Ｒを高速側制限値とする。Ｓ１２６で繰り返しが所定回数に達していない場合は、制限判断手段３２は、今回求めた中間速度Ｃを高速側の速度Ａに代入し（Ｓ１３０）、Ｓ１２０以降の処理を繰り返す。
【００４９】
また、Ｓ１２４で「干渉あり」と判定した場合、２分法の繰り返し回数があらかじめ定めた所定回数に達しているかどうかを判定する（Ｓ１３２）。所定回数に達していれば、制限値ＲにＡを代入し（Ｓ１３４）、この制限値Ｒを呼び出し側ルーチン（図２のＳ３６）に戻す。Ｓ１３２で、繰り返し回数が所定回数に達していない場合は、Ｓ１２０で計算した中間速度Ｃを低速側の速度Ｂに代入し（Ｓ１３６）、Ｓ１３０以降の処理を繰り返す。
【００５０】
また、制限判断手段３２は、Ｓ４０でＡ＝５０％、Ｂ＝１％に設定し、Ｓ４２にて２分法による制限値上昇絞込処理を行う。Ｓ４２では、既に説明した図３に示した処理手順を実行すればよい。Ｓ３０で制限値Ｒが求められると、このＲを低速側制限値に設定する（Ｓ４４）。
【００５１】
以上のように、本発明によって実際の送り速度の変更に対応できる衝突防止装置を実現することができる。さらに、衝突防止のために送り停止となるケースを少なくすることができる。
【００５２】
この実施形態の衝突防止装置は、上述した各手段の機能を記述したプログラムをコンピュータに実行させることにより実現することができる。
【符号の説明】
【００５３】
１０  パートプログラム、１２  プログラム解釈手段、１４  バッファ、１６  関数発生手段、１７Ｘ  Ｘ軸駆動手段、１７Ｚ  Ｚ軸駆動手段、１８Ｘ，１８Ｚ  加減速手段、２０Ｘ，２０Ｚ  サーボ、２２Ｘ，２２Ｚ  モータ及び検出器、２６  干渉チェック手段、３０  経路生成手段、３２  制限判断手段、３４  送り速度制限手段。
【図１】
0005492034.tif 000002
【図２】
0005492034.tif 000003
【図３】
0005492034.tif 000004
【図４】
0005492034.tif 000005
【図５】
0005492034.tif 000006
【図６ａ】
0005492034.tif 000007
【図６ｂ】
0005492034.tif 000008
【図６ｃ】
0005492034.tif 000009
【図７】
0005492034.tif 000010
【図８】
0005492034.tif 000011
【図９】
0005492034.tif 000012