(57)【特許請求の範囲】
【請求項１】
複数の機械構造物の干渉領域を各々定義し、補間処理で更新される前記機械構造物の機械座標値を基に前記干渉領域を移動させ、前記各々の機械構造物の干渉領域がそれぞれ干渉するかをチェックする機能を有する数値制御装置において、
干渉チェック処理にかかる演算時間を１補間処理周期内における干渉チェック処理の占有時間で除算し得られた商に補間周期を乗算して干渉チェック計算周期を自動調整する干渉チェック計算周期自動調整手段と、
各軸の送り速度の最大速度と干渉チェック計算周期から前記干渉領域を拡張する干渉領域拡張手段と、前記拡張された干渉領域同士が干渉するかをチェックする手段と、
を備えた数値制御装置。
【請求項２】
前記干渉領域として、直方体、円筒の立体図形や平面で定義し、その各々が交差するか交差しないかにより干渉をチェックする請求項１に記載の数値制御装置。
【請求項３】
前記干渉チェック処理にかかる演算時間は、干渉チェックのための前記直方体、前記円筒の立体図形や前記平面の組み合わせの数と干渉チェックの対象となる該直方体、該円筒の立体図形や該平面の数に応じて決まる請求項２に記載の数値制御装置。
【請求項４】
前記干渉領域拡張手段によって拡張する干渉領域の大きさは、各軸の送り速度の内、最大速度に干渉チェック計算周期を掛けた大きさとする請求項１〜３のいずれか１つに記載の数値制御装置。
【請求項５】
１つの機械構造物に対して大きさの異なる複数の干渉領域データを記憶する手段を有し、所定の条件に応じて記憶してある前記干渉領域データを切換えるようにした請求項１〜４のいずれか１つに記載の数値制御装置。
【請求項６】
手動運転時には、干渉領域拡張手段により拡張した干渉領域をさらに所定量だけ拡張した干渉領域に対して干渉をチェックし、干渉すると判断したときに駆動軸を減速させるようにした請求項１〜５のいずれか１つに記載の数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工作機械などを制御する数値制御装置に関し、特に、工作機械などの可動部の干渉を防止する干渉防止機能を備えた数値制御装置に関する。
【背景技術】
【０００２】
数値制御装置で制御される工作機械などにおいては、あらかじめ作成されたＮＣプログラムに基づいて、数値制御装置が機械の可動部（制御軸）を駆動制御し、被加工物のワーク（被加工物）などに加工を行うものである。  
工作機械を用いてワークを加工中に、工具、テーブル、ワークをクランプする治具、主軸台など、機械の各部位がお互いに干渉してはならない。そのために、従来から前記機械の各部位同士やワークとが干渉しないか干渉チェックが行われている。
【０００３】
例えば、工具などの干渉する恐れのある機械部位を干渉物としていくつかの立体の組み合わせで定義してメモリに記憶しておき、現在の干渉物の位置と移動指令を補間処理して軸移動後の干渉物の移動位置を求め、補間前の干渉物の位置から補間後の干渉物の位置への移動において、干渉物を構成する立体形状の干渉しうる領域を干渉判定立体として計算し、この干渉判定立体の組み合わせにより干渉判定領域を設定し、この設定された干渉判定領域に基づいて干渉の有無を判定するものが知られている（特許文献１参照）。
【０００４】
【特許文献１】特開平９−２３０９１８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
背景技術で説明した干渉判定領域に基づいて干渉の有無を判定する技術では、数値制御装置での補間処理後に干渉チェック処理を実行している。この技術では、干渉チェックの対象物（例えば、工具、工具ホルダー、ワーク、治具、テーブル）の数と対象部を構成する立体図形の数が増大し、干渉チェック処理の時間が長くなると、数値制御装置での補間処理が玉突き状態になって遅くなり、また、干渉チェック処理が途中で中断されてしまうことになる。  
そこで、本発明の目的は、工作機械の衝突を事前にチェックする干渉防止機能を備えた数値制御装置を提供することであり、特に、干渉チェックのための計算量が増大しても、数値制御装置の補間処理に影響を及ぼさない、干渉防止のための計算を確実に実行する数値制御装置を提供することである。
【課題を解決するための手段】
【０００６】
本願の請求項１に係る発明は、複数の機械構造物の干渉領域を各々定義し、補間処理で更新される前記機械構造物の機械座標値を基に前記干渉領域を移動させ、前記各々の機械構造物の干渉領域がそれぞれ干渉するかをチェックする機能を有する数値制御装置において、干渉チェック処理にかかる演算時間を１補間処理周期内における干渉チェック処理の占有時間で除算し得られた商に補間周期を乗算して干渉チェック計算周期を自動調整する干渉チェック計算周期自動調整手段と、各軸の送り速度の最大速度と干渉チェック計算周期から前記干渉領域を拡張する干渉領域拡張手段と、前記拡張された干渉領域同士が干渉するかをチェックする手段と、を備えた数値制御装置である。  
請求項２に係る発明は、前記干渉領域として、直方体、円筒の立体図形や平面で定義し、その各々が交差するか交差しないかにより干渉をチェックする請求項１に記載の数値制御装置である。  
請求項３に係る発明は、前記干渉チェック処理にかかる演算時間は、干渉チェックのための前記直方体、前記円筒の立体図形や前記平面の組み合わせの数と干渉チェックの対象となる該直方体、該円筒の立体図形や該平面の数に応じて決まる請求項２に記載の数値制御装置である。  
請求項４に係る発明は、前記干渉領域拡張手段によって拡張する干渉領域の大きさは、各軸の送り速度の内、最大速度に干渉チェック計算周期を掛けた大きさとする請求項１〜３のいずれか１つに記載の数値制御装置である。  
請求項５に係る発明は、１つの機械構造物に対して大きさの異なる複数の干渉領域データを記憶する手段を有し、所定の条件に応じて記憶してある前記干渉領域データを切換えるようにした請求項１〜４のいずれか１つに記載の数値制御装置である。  
請求項６に係る発明は、手動運転時には、干渉領域拡張手段により拡張した干渉領域をさらに所定量だけ拡張した干渉領域に対して干渉をチェックし、干渉すると判断したときに駆動軸を減速させるようにした請求項１〜５のいずれか１つに記載の数値制御装置である。
【発明の効果】
【０００７】
本発明は、加減速を行う前の機械座標値をもとにチェックする。このため、加減速に影響せず確実に衝突前に軸移動を停止させることが可能である。  
また、本発明は、干渉チェック計算周期を自動調整し、干渉チェック量が増大しても、数値制御装置の補間処理に影響を及ぼさず、干渉チェック計算を確実に完了することが可能である。  
干渉チェックは、加減速を行う前の機械座標値を基にチェックする。このため、加減速に影響せず確実に衝突前に軸移動を停止させることが可能である。  
また、本発明は、干渉領域を拡張する手段を有することにより干渉チェック計算周期が変動しても確実に干渉チェックを実行できる。
【０００８】
また、本発明は、手動運転時には、拡張された干渉領域に対して更に所定量だけ拡張する機能を付加することにより、オペレータが干渉状態を把握しやすくなり、また、干渉領域に指定された距離手前に近づいたら減速させ、手動状態においても確実に機械の衝突防止を行うことが可能である。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の一実施形態を図面と共に説明する。  
図１は、本発明の一実施形態である数値制御装置１１の機能ブロック図である。外部から入力された加工プログラムは数値制御装置１１のメモリ１に格納される。指令解析部２は、メモリ１に格納されたＮＣプログラムから順次ブロック読み取りし解析し実行形式に変換し、移動指令及び速度指令を自動運転用補間処理部３ａに送る。自動運転用補間処理部３ａは移動指令及び速度指令にしたがって各軸の補間を行い、補間パルスを出力する。一方、工作機械を手動で運転するために手動運転用補間処理部３ｂは、手動パルス発生器ジョグ１０から入力された信号にしたがって各軸の補間を行い、補間パルスを出力する。これらの補間パルス（自動運転用補間処理部、手動運転用補間処理部）は、加減速処理部８に出力され、補間パルスを加減速してサーボモータ９ａ〜９ｎの図示しないサーボアンプに出力する。図示しないサーボアンプは加減速制御された補間パルスにしたがって、サーボモータ９ａ〜９ｎを駆動する。
【００１０】
機械座標値更新部４は、自動運転用補間処理部３ａまたは手動運転用補間処理部３ｂからの補間パルスに基づいて制御軸の機械座標値を更新し指令された前記制御軸の機械座標位置を求める。  
干渉領域定義部５には、ワークや治具の形状、工具や機械の形状が干渉領域としてあらかじめ設定されている。その干渉領域の設定は、直方体、円筒などの立体図形や平面で定義されている。そして、干渉が発生する機械部位形状を１以上の前記立体図形や前記平面の組み合わせから定義する場合もある。
【００１１】
また、ワークなどの加工中に形状が変化する干渉領域に対応するため、あらかじめ干渉領域を複数登録しておき、条件に応じて干渉領域を切り換えるようにしてもよい。条件として、ＮＣ指令文により領域の変更を行う（例えば、Ｇ２２．２）や現在の機械座標値（例えば、Ｘ＜０．０なら領域１、Ｘ≧０．０なら領域２）のようなものがある。
【００１２】
干渉チェック処理演算時間算出部６は干渉チェック処理にかかる演算時間を算出する。
前記干渉チェック処理にかかる演算時間は、干渉チェックのための前記直方体、円筒などの立体図形や平面の組み合わせの数と干渉チェックの対象となる前記直方体、円筒などの立体図形や平面の数に応じて決まる。干渉チェック処理にかかる演算時間については後述する。
【００１３】
干渉チェック部７は、干渉領域移動処理部７１、干渉チェック計算周期自動調整部７２、干渉領域拡張処理部７３、及び干渉領域交差判定処理部７４の機能を備える。干渉領域移動処理部７１は機械座標値更新部４からの更新された前記機械座標位置に基づき干渉領域定義部５で設定された前記干渉領域を移動させる。干渉チェック計算周期自動調整部７２は、干渉チェック処理演算時間算出部６で算出された干渉チェックにかかる演算時間を１補間処理周期内における干渉チェック処理を行うための占有時間で除算し得られた商に補間周期を乗算して干渉チェック計算周期を求める。ここで、干渉チェック処理にかかる演算時間または１補間演算周期内での干渉チェック処理のための占有時間が変化すると、干渉チェック計算周期自動調整部７２での演算により干渉チェック計算周期も変化する。
【００１４】
干渉領域拡張処理部７３は、干渉チェック計算周期および各軸の送り速度の最大速度とに基づき、干渉領域移動処理部７１により移動処理された干渉領域定義部５に定義された干渉領域に対して拡張処理を実行する。当該拡張処理については後述する。  
干渉領域交差判定処理部７４は干渉領域拡張処理部７３で拡張された干渉領域の干渉状態をチェックするための演算を実行する。干渉しているか干渉していないかは、一方の機械部位形状に対応する干渉領域を形成する直方体などの立体形状の辺や頂点が他方の機械部位に形状に対応する干渉領域を形成する直方体などの立体形状に干渉するかどうかを確認し判断する。
【００１５】
干渉領域交差判定処理部７４で干渉領域に干渉が発生しないと判定されたときには、自動運転用補間処理部３ａまたは手動運転用補間処理部３ｂからの補間パルスを加減速処理部８に出力する。加減速処理部８は制御軸９であるサーボモータ９ａ、９ｂ、・・・、９ｎを制御する図示しないサーボモータ制御部に補間パルスを出力する。前記サーボモータ制御部はサーボモータ９ａ、９ｂ、・・・、９ｎからの図示しない位置、速度、電流フィードバック信号に基づいて、制御軸９の位置・速度を制御する。  
干渉領域交差判定処理部７４で干渉領域に干渉が発生すると判定されたときには、干渉領域交差判定処理部７４は自動運転用補間処理部３ａまたは手動運転用補間処理部３ｂからの補間パルスを加減速処理部８へ出力することを停止する。  
また、数値制御装置１１には手動パルス発生ジョグ１０からの信号を入力する手段運転補間処理部３ｂを備えている。手動運転時には、干渉領域に指定された距離手前に近づいたら減速させることも可能とする。
【００１６】
なお、干渉チェック部７で干渉が発生すると判断されたとき、サーボモータ９ａ〜９ｎで駆動される工具やテーブルなどの機械可動部（制御軸）は移動しており、直ちに停止することはできない。停止指令を出力して停止させようとしても停止するまでの減速時間を必要とする。
【００１７】
次に、干渉チェック処理演算時間算出部６で演算される干渉チェック処理にかかる演算時間について説明する。干渉チェック処理にかかる演算時間は、干渉領域定義部５に干渉領域として定義された直方体、円筒の立体図形や平面と、それらの組み合わせの数と干渉チェックの対象となる直方体、円筒の立体図形や平面の数に応じて決まる。組み合わせの内容としては、下記の（１）〜（６）がある。ここで、組み合わせの数とは、工具*ワーク、工具*治具、工具*テーブル、工具*工具ホルダーのような組み合わせの数のことである。また、干渉が発生する機械部位形状を１以上の前記立体形状の組み合わせから定義する場合、例えば、工具が直方体１と円筒１で構成され、テーブルが直方体２と直方体３で構成されているとき、工具とテーブルの干渉チェックでは、下記（７）〜（１０）の４組の干渉チェックを行う必要がある。
【００１８】
そして、干渉チェック処理演算時間算出部６は、それぞれの計算時間に重み付けをし、全ての組み合わせ分の合計時間を求め、干渉チェック処理演算時間を得る。
（１）  直方体*直方体
（２）  立方体*円筒
（３）  直方体*平面
（４）  円筒*円筒
（５）  円筒*平面
（６）  平面*平面
（７）        直方体１*直方体２
（８）        直方体１*直方体３
（９）        円筒１*直方体２
（１０）      円筒１*直方体３
干渉チェック部７の干渉チェック計算周期自動調整部７２では、干渉チェック処理演算時間を１補間周期内の本処理の占有時間で割った値を求め、得られた商に補間周期を乗算して干渉チェック計算周期とする。
【００１９】
次に、干渉チェック部７における干渉チェック計算ついて説明する。１補間処理周期で干渉チェック部７の全ての干渉チェック計算（干渉領域移動処理部７１、干渉チェック計算周期自動調整部７２、干渉領域拡張処理部７３、及び、干渉領域交差判定処理部７４における演算処理）が終了せず、複数の補間処理周期にまたがって干渉チェック計算を行う場合、干渉を検出した時には既に干渉（衝突）している場合が起こりうる。
【００２０】
この干渉（衝突）を回避するために、干渉領域定義部５に干渉領域として定義された直方体、円筒の立体図形や平面に余裕幅を自動的に設定する。余裕幅の求め方としては（数１）を例として挙げる。干渉チェックの対象物（工具、工具ホルダー、ワーク、治具、テーブルなど）の組数（（１）〜（６））および対象物に含まれる立体図形の数が多くなると、全ての干渉チェック計算を行うのに時間がかかる。このため、本発明においては、干渉チェックの組み合わせの数や内容により、干渉チェック計算周期は自動調整される。
【００２１】
【数１】
0004298770.tif 000002
【００２２】
図２は干渉領域の一例である直方体と数１で算出された余裕幅Ｄにより拡張された前記直方体との関係を示す概念図である。干渉領域の余裕幅Ｄによる拡張は、干渉領域である立体形状の表面をその法線方向に余裕幅Ｄ膨張させることにより実行できる。このような演算は行列演算など公知の技術を用い、実行可能である。また、これ以外にも種々の画像処理技術を用いて拡張した干渉領域を求めることが可能である。
【００２３】
また、前記干渉チェック計算が１補間処理周期ですべて終了する場合でも、干渉領域の移動は１補間処理周期内に１度だけ実行する。しかし、この場合、次に移動する途中に干渉する場合（換言すると、１補間処理周期内だけで干渉する場合）である移動前（干渉なし）→移動中（干渉）→移動後（干渉なし）を見逃す可能性がある。これを回避するために、１補間周期分、上記の余裕幅を各干渉領域に付加し、１補間周期内の移動時の干渉も検出することができるようにする。
【００２４】
図３は、本発明の干渉防止機能を備えた数値制御装置１１の一実施形態である。ＣＰＵ１２は数値制御装置１１を全体的に制御するプロセッサである。ＣＰＵ１２はバス２４を介してＲＯＭ、ＲＡＭ、不揮発性ＲＡＭ、ＣＭＯＳなどで構成されるメモリ１３、ＰＭＣ（プログラマブル・マシン・コントローラ）１４、ＣＲＴや液晶で構成される表示器１５、キーボードなどの各種指令やデータを入力するための入力機器１６、外部記憶媒体やホストコンピュータなどに接続されるインタフェース１７、工作機械の各軸制御回路１８Ｘ，１８Ｙ，１８Ｚ、スピンドル制御回路２１に接続されている。
【００２５】
ＰＭＣ１４は、数値制御装置１１に内蔵されたシーケンスプログラムで制御対象物の工作機械である加工機の補助装置に信号を出力し、または、該補助装置からの信号を入力し制御する。また、数値制御装置で制御される工作機械の本体に配備された操作盤の各種スイッチなどの信号を受けて、必要な信号処理をした後、ＣＰＵ１２に渡す。
【００２６】
ＣＰＵ１２は、メモリ１３のＲＯＭに格納されたシステムプログラムを、バス２４を介して読み出し、該システムプログラムに従って数値制御装置１１全体を制御する。また、本発明に関係し、メモリ１３には、上述した干渉チェックのアルゴリズムを実施する後述する処理のソフトウェアが記憶されていると共に、干渉の可能性のある機械各部位の形状が１以上の多面体（この実施形態では、直方体、円筒、平面）の組み合わせとして定義され、そのデータが記憶されている。
【００２７】
また、上述した本発明の実施形態では、干渉チェック処理を数値制御装置１１で実施するようにしているが、数値制御装置１１と独立して設置したパーソナルコンピュータなどの情報処理装置を用いて実行してもよい。
【００２８】
この実施形態は、機械座標値更新部４で更新された制御軸の機械座標値（位置）を前記情報処理装置に送信し、該情報処理装置で干渉チェックを行い、その結果を数値制御装置１１に返信するシステム構成となる。
【００２９】
また、上述した実施形態では、工作機械を制御する数値制御装置の例を説明したが、ロボットや産業機械などの機械を制御する数値制御装置にも適用できるものであり、機械可動部（制御軸）の移動によって干渉が発生する数値制御装置に適用できるものである。
【図面の簡単な説明】
【００３０】
【図１】本発明の実施形態である数値制御装置の概略ブロック図である。
【図２】干渉領域と拡張された干渉領域の概略説明図である。
【図３】本発明の干渉防止機能を備えた数値制御装置の一実施形態である。
【符号の説明】
【００３１】
１  メモリ（ＮＣプログラム）
２  指令解析部
３ａ  自動運転用補間処理部
３ｂ  手動運転用補間処理手部
４  機械座標値更新部
５  干渉領域定義部
６  干渉チェック処理演算時間算出部
７  干渉チェック部
７１  干渉領域移動処理部
７２  干渉チェック計算周期自動調整部
７３  干渉領域拡張処理部
７４  干渉領域交差判定処理部
８  加減速処理部
９ａ、９ｂ、・・・９ｎ  サーボモータ
１０  手動パルス発生器ジョグ
１１  数値制御装置（ＣＮＣ）
【図１】
0004298770.tif 000003
【図２】
0004298770.tif 000004
【図３】
0004298770.tif 000005