しかし、モデルを使用する方法では想定したモデルが実際のものが異なる場合の衝突回避が困難であり、切削負荷電流を監視する方法においては、高速スピンドルや高速切削に対しては電流からの衝突検知が困難である。更に、特許文献1〜3における衝突防止システムにおいては、工具の位置情報や衝突判定を開始すべき状況等、作業の進行状況に関する情報を衝突防止システムで把握する必要があるため、このような情報を提供する機能を有しないタイプの工作機械に適用するのは困難である。特に特許文献1においては、加工動作中の工具及びワークを常時監視する必要があり処理負担も大きい。
そこで、本発明は、処理負担が少なく、かつ工作機械の機能を問わず加工動作中における衝突判定を可能する工具衝突防止装置等を提供することを目的とする。
本発明は、以下の手段により上述した課題を解決する。なお、本発明の理解を容易にするために添付図面の参照符号を括弧書きにて付記するが、それにより本発明が図示の形態に限定されるものではない。
本発明の工具衝突防止装置(200)は、複数のコードが記述されたプログラムに従って順次動作する工作機械(100)における工具(101)と、その工具によって加工されるワーク(102)を含むワーク部とが衝突するか否かの衝突判定を行う工具衝突防止装置であって、前記工作機械を動作させるプログラム(400)において、前記工具を少なくとも一方向に移動させるコードを衝突判定トリガー部(401、402)として検出する検出手段(250)と、前記衝突判定の開始指示を含み、前記衝突判定で使用される前記工具の位置に関する情報である開始情報を前記工作機械に出力させるコード群が記述された情報出力ブロック(501、502)を、前記検出手段によって検出された前記衝突判定トリガー部の直前に挿入することにより処理後プログラムを生成するプログラム生成手段(250)と、前記処理後プログラムに従って動作中の前記工作機械から、前記情報出力ブロックに基づいて出力された前記開始情報を受信する開始情報受信手段(210)と、前記工具の現在位置情報および移動予定位置情報を、前記開始情報から取得して、前記工具の現在位置および移動予定位置を決定する工具位置決定手段(225)と、所定の形状計測装置によって計測された前記工作機械のワーク部の計測情報を取得し、その取得された計測情報により前記ワーク部の形状を決定するワーク形状決定手段(220)と、前記開始情報受信手段によって前記開始情報の開始指示が受信されると、前記工具位置決定手段によって決定された前記工具の位置と、前記ワーク形状決定手段によって決定された前記ワーク部の形状とに基づいて、前記工具と前記ワーク部との衝突判定を開始し、判定結果に応じた処理を行う衝突判定手段(240)とを備えることにより、上記の課題を解決する。
本発明の工具衝突防止装置によれば、プログラム生成手段において、開始情報を工作機械に出力させる情報出力ブロックが衝突判定トリガー部の直前に挿入された処理後プログラムが生成される。処理後プログラムに従って動作する工作機械は、処理が情報出力ブロックに及ぶと、少なくとも開始情報を出力する。動作中の工作機械から出力された開始情報が受信されると、衝突判定手段により衝突判定が開始される。従って、開始情報をトリガーとして衝突判定を行えばよく、衝突判定を行うか否かの判断のために工具とワーク部との位置関係を監視する必要はない。
衝突判定においては、ワーク形状決定手段によって決定されたワーク部の形状と、工具位置決定手段によって決定された工具の位置とに基づいて判定が行われる。工具位置決定手段は、位置情報を開始情報から取得する。従って、工作機械が作業の進行状況に関する情報を提供する機能を有していないタイプであっても、位置情報が開始情報に含まれる情報出力ブロックが挿入された処理後プログラムを工作機械に実行させることにより、開始指示と共に位置情報を工作機械から出力させることができる。これにより、工作機械の機能を問わず、衝突判定を行うことができ、判定結果に応じた処理を行う工具衝突防止装置を提供することができる。
なお、「ワーク部」はワークのみの場合と、ワークに加えて、ジグ、テーブル、計測機等その他の構成を含む場合とを含む概念である。検出手段が検索するプログラムは、予め工具衝突防止装置に記憶されているものでもよいし、工具衝突防止装置にて作成されたものでよいし、他の装置から取得されたものでもよい。現在位置情報および移動予定位置情報のそれぞれは、衝突判定にて使用される現在位置および移動予定位置を直接示す情報である場合と、現在位置および移動予定位置のそれぞれを決定するために必要な情報である場合がある。
また、生成された処理後プログラムは工作機械へ送信されてもよいし、所定の記憶媒体に記憶された状態で工作機械に提供されてもよい。「所定の形状計測装置」は、レーザスキャナ等の計測物の形状を数値化して表す計測情報を得ることができる装置である。「判定結果に応じた処理」は、通常の工具衝突防止装置における処理と同様であればよい。例えば、判定結果が「衝突する」の場合は、警告メッセージを表示する処理、警告通知を工作機械に送信する処理、又は警告音を発生する処理等があり、判定結果が「衝突しない」の場合は、安全メッセージを表示する処理や安全通知を工作機械に送信する処理等がある。
前記プログラム生成手段は、前記工具の現在位置情報および移動予定位置情報を含む前記開始情報を前記工作機械に出力させる前記情報出力ブロックを、前記衝突判定トリガー部の直前に挿入し、前記工具位置決定手段は、前記工作機械から出力された前記開始情報に含まれる前記工具の現在位置情報および移動予定位置情報を取得して、前記工具の現在位置および移動予定位置を決定してもよい。
これにより、特に、工具の現在位置などの作業の進行状況に関する情報を提供する機能を有しないタイプの工作機械に対しても、本発明の工具衝突防止装置は衝突判定を行うことができる。工具の現在位置情報および移動予定位置情報は、プログラムに記載されたコードにより得ることができる。例えば、衝突判定トリガー部である移動命令に指示されている位置情報は移動予定位置情報であり、移動命令の直前の位置情報は現在位置情報として設定すればよい。
本発明の工具衝突防止装置は、前記工具の補正値情報と、前記工具を識別可能な工具識別情報とが対応付けられた工具情報を前記工作機械から取得する工具情報取得手段(250)を更に有し、前記プログラム生成手段は、前記衝突判定の対象の工具の工具識別情報を更に含む前記開始情報を前記工作機械に出力させる前記情報出力ブロックを、前記衝突判定トリガー部の直前に挿入し、前記衝突判定手段は、前記工具情報取得手段によって取得された工具情報のうち、前記受信された開始情報の工具識別情報に対応づけられた補正値情報を考慮して、衝突判定を行ってもよい。
これにより、衝突判定の対象となる工具を識別するための工具識別情報も開始情報として出力されるので、工具識別情報からその工具の補正値を特定することができる。従って、複数の工具を使用する作業であっても、各工具の大きさの違いを考慮した衝突判定を行うことができ、正確な衝突判定を行うことができる。補正値情報には、例えば、工具の長さや径がある。工具情報の取得の態様には、工具の補正値が予め計測されて工作機械にて記憶されている工具情報が取得されてもよいし、工作機械において補正値の計測が行われた時に工具情報が取得されてもよい。
前記プログラム生成手段は、前記ワーク部の形状の計測を指示する形状計測指示を更に含む前記開始情報を前記工作機械に出力させる前記情報出力ブロックを、前記衝突判定トリガー部の直前に挿入し、前記ワーク形状決定手段は、前記形状計測指示が前記開始情報受信手段にて受信されると、前記ワーク部の形状の計測を前記形状計測装置により取得して、前記ワーク部の形状を決定してもよい。これにより、衝突判定が行われるごとにワーク部の形状の計測値を取得して形状を決定することができる。シミュレーションではなく、リアルタイムにワーク部の形状が決定されるので、より正確な衝突判定を行うことができる。
前記プログラム生成手段は、前記開始指示の後に前記工作機械の動作を一時停止する停止指示を含む前記情報出力ブロックを、前記衝突判定トリガー部の直前に挿入してもよい。これにより、例えば、工具の回転動作等の移動動作以外の動作が実行中である場合に、実行中の動作を停止させることができる。
前記工作機械を動作させるためのプログラムを取得するプログラム取得手段(250)が更に備えられ、前記検出手段が前記衝突判定トリガー部を検出するプログラムおよび前記プログラム生成手段が前記情報出力ブロックを挿入するプログラムは、前記プログラム取得手段によって取得されたプログラムであってもよい。これにより、工作機械や他の装置が保持するプログラムを取得して処理後プログラムを生成することができる。
前記検出手段によって検出されるべき前記工具を少なくとも一方向に移動させるコードを指定する検出コード指定部を更に備え、前記検出手段は、前記検出コード指定部によって指定されたコードを検出してもよい。検出手段は、検出コード指定部によって指定されたコードのみを衝突トリガー部として検出する。検出コード指定部における検出手段によって検出されるべきコードが指定される態様は、ユーザによって指定される場合や他のシステムによって制定される場合がある。例えば、ユーザによって指定される場合は、ユーザは所望の工具移動コードを衝突トリガー部として指定することができる。
本発明の工具衝突防止方法は、複数のコードが記述されたプログラムに従って順次動作する工作機械における工具(101)と、その工具によって加工されるワーク(102)を含むワーク部とが衝突するか否かの衝突判定を行う工具衝突防止方法であって、前記工作機械を動作させるプログラム(400)において、前記工具を少なくとも一方向に移動させるコードを衝突判定トリガー部(401、402)として検出するステップと、前記衝突判定の開始指示を含み、前記衝突判定で使用される前記工具の位置に関する情報である開始情報を前記工作機械に出力させるコード群が記述された情報出力ブロック(501、502)を、前記検出手段によって検出された衝突判定トリガー部の直前に挿入することにより処理後プログラムを生成するステップと、前記処理後プログラムに従って動作中の前記工作機械から、前記情報出力ブロックに基づいて出力された前記開始情報を受信するステップと、前記工具の現在位置情報および移動予定位置情報を、前記開始情報から取得して、前記工具の現在位置および移動予定位置を決定するステップと、所定の形状計測装置によって計測された前記工作機械のワーク部の計測情報を取得し、その取得された計測情報により前記ワーク部の形状を決定するステップと、前記開始情報受信手段によって前記開始情報の開始指示が受信されると、前記工具位置決定手段によって決定された前記工具の位置と、前記ワーク形状決定手段によって決定された前記ワーク部の形状とに基づいて、前記工具と前記ワーク部との衝突判定を開始し、判定結果に応じた処理を行うステップとを含むことにより、上記の課題を解決する。本発明は請求項1の工具衝突防止装置として具現化される。
本発明のNCプログラム(500)は、工作機械を動作させるための複数のコードが記述されたNCプログラムであって、前記工作機械の工具(101)を少なくとも一方向に移動させるコード(401、402)の直前に、前記工具とその工具によって加工されるワーク(102)を含むワーク部とが衝突するか否かを判定する衝突判定を開始する開始指示、前記工具の現在位置情報および移動予定位置情報を前記工作機械に出力させるコード群が記述された情報出力ブロックが挿入されたことにより、上述の課題を解決する。本発明のNCプログラムは、請求項2の工具衝突防止装置のプログラム生成手段によって生成される処理後プログラムとして機能する。
上述したように、本発明によれば、プログラム生成手段において、開始情報を工作機械に出力させる情報出力ブロックが衝突判定トリガー部の直前に挿入された処理後プログラムが生成され、動作中の工作機械から開始情報が出力されると、衝突判定手段によって衝突判定が開始される。従って、衝突判定を行うか否かの判断は開始情報の出力を待つだけでよく、工具とワーク部との位置関係を監視する必要はない。また、衝突判定に使用されるワーク部の形状は、形状計測装置によって計測された計測情報に基づいて決定され、工具の位置情報は定期的に工作機械から取得されるかまたは開始情報から取得される。従って、工作機械が作業の進行状況に関する情報を提供する機能を有していないタイプであっても、位置情報を出力させる開始情報が挿入された処理後プログラムによって工作機械に制御することにより、開始指示と共に位置情報を工作機械から出力させることができる。これにより、処理負担は少なく、工作機械の機能を問わずに衝突判定を行うことができる工具衝突防止装置等を提供することができる。
図1は、本発明のNC工作機械100及び工具衝突防止装置200の一実施形態である。NC工作機械100は、複数のコードが記述されたNCプログラムに従って順次動作する工作機械であり、ネットワーク対応のタイプ(以下「オープンNC」という。)とネットワークに対応していないタイプ(以下「従来型NC」という。)とがある。更に、従来型NCにはマクロ機能を有するタイプ(以下「マクロNC」という。)及びマクロ機能を有しないタイプ(以下「D&MNC」という。)とがある。本発明のNC工作機械100として機能するNC工作機械は、いずれのタイプであってもよい。
NC工作機械100には、工具101と、その工具によって加工されるワーク102と、工具101の長さ及び径を計測する工具計測センサ103と、ワーク102の形状を異なる角度から計測する形状計測装置としての複数の3Dレーザスキャナ104…104(以下「スキャナ104」といいます。)と、必要に応じて各種メッセージが表示されるモニタ105とが備えられている。工具衝突防止装置200はいわゆるパーソナルコンピュータとして構成される。工具衝突防止装置200とNC工作機械100とを接続する接続回線には、スキャナ104によって計測されたワーク102の形状の計測値を送受信するためのUSB回線107と、その他の情報の送受信のためのイーサネット(登録商標)回線108とがある。なお、スキャナ104および工具計測センサ103は従来既知のものでよい。
NC工作機械100及び工具衝突防止装置200のハードウェア構成の概略について図2を用いて説明する。NC工作機械100は従来既知の構成であればよく、工具情報記憶部110、プログラム記憶部120、NC制御部130、スキャナ104、工具101およびワーク102を含む加工部150、およびモニタ105や各種入力ボタンを含むユーザインターフェース部160が備えられている。工具情報記憶部110は、NC工作機械100にて使用される各工具の工具長値及び工具径値を示す工具情報テーブル300を記憶する。工具情報テーブル300における各工具の各値は、工具計測センサ103によって予め計測されて設定される。工具情報テーブル300の一例を図3に示す。工具情報テーブル300は、各工具の識別情報である工具番号301にその工具の工具長値302および工具径値303が対応付けられた工具情報306で構成されている。なお、図3では工具長値302および工具径値303のそれぞれは工具番号301に直接対応付けられているが、実際は記憶場所である工具長アドレス304および工具径アドレス305を介して工具番号301に対応付けられている。
図2に戻って、プログラム記憶部120はNC工作機械100を動作させるNCプログラムを記憶する。NC制御部130はNCプログラムに記述されたコード、又はユーザからの指示に従ってNC工作機械100の動作を制御し、また、イーサネット(登録商標)回線108を介して工具衝突防止装置200と各種情報の送受信を制御する。
工具衝突防止装置200は、接続インターフェース210と、ワーク形状決定部220と、工具位置決定部225と、工具情報記憶部230と、衝突判定部240と、加工動作開始前処理部250とを有する。接続インターフェース210は、例えば従来型NCであってもNC工作機械100と情報の送受信を可能にする従来既知のもの(ORiN(登録商標)等)であればよい。ワーク形状決定部220は、スキャナ104にワーク102の形状の計測を指示し、取得された計測情報からワーク102の形状を決定する。以下、スキャナ104によってワーク102の形状を計測することを「ワーク102をスキャンする」というときがある。
工具位置決定部225は、工具101の現在位置の座標および移動予定位置の座標を決定する。工具情報記憶部230は、工具情報記憶部110から取得された工具情報306を記憶する。衝突判定部240は、工具101とワーク102とが衝突するか否かの判定に関する処理を行う。加工動作開始前処理部250は、NC工作機械100における加工動作が開始されるまでに行われる処理を行う。例えば、オリジナルのNCプログラム(以下「オリジナルプログラム」という。)から処理後プログラムを生成し、NC工作機械100へ提供する。
なお、ワーク形状決定部220、工具位置決定部225、衝突判定部240および加工動作開始前処理部250のそれぞれは、パーソナルコンピュータの動作を制御する従来既知の制御ユニット260を機能的に分けて示したものである。制御ユニット260は、CPUおよびその動作に必要なRAM、ROM等の記憶域が備えられている。ROMに記憶されたコンピュータプログラムにより、制御ユニット260は、主に、各部220、225、240、250として機能する。また、工具衝突防止装置200は通常のパーソナルコンピュータとしての構成として、不図示のモニタやキーボート等のユーザインターフェースを有している。
工具衝突防止装置200は、NC工作機械100を動作させるNCプログラムを加工動作の開始前に加工することにより、NC工作機械100の加工動作中に工具101がワーク102に衝突するか否かの判定(以下「衝突判定」という。)を適宜行うことができる。NC工作機械100にて加工動作が開始されるまでに、工具衝突防止装置200の加工動作開始前処理部250によって行われる処理について図4を用いて説明する。まず、ステップS10にて、衝突判定のための処理パターンをユーザに選択させる。本形態の処理パターンには図5に示すように、ワークスキャンタイプとして、「事前スキャン型」と「都度スキャン型」とが用意されている。「事前スキャン型」は加工動作の開始前にワーク102の全形状をスキャナ104によって計測するパターンであり、「都度スキャン型」は加工動作中に衝突判定がある度に、ワーク102の加工される付近の所定範囲をスキャナ104によって計測するパターンである。
更に、ステップS11にて、衝突判定トリガー動作としての1つ以上の動作をユーザに指定させる。これにより、加工動作開始前処理部250は制御検出コード指定部として機能する。衝突判定トリガー動作として指定可能な動作は、工具の衝突が発生しやすい動作に設定することが望ましい。本形態では、ワークスキャンタイプが事前スキャン型の場合の指定可能な動作として、「全ての軸の早送り」「全てのZ軸の早送り」および「工具交換直後Z軸早送り」の3種の動作が用意され、ワークスキャンタイプが都度スキャン型の場合の指定可能な動作として、「全てのZ軸の早送り」および「工具交換直後Z軸早送り」の2種の動作が用意されている。例えば、図5のような一覧が表示され、ユーザ所望のスキャンタイプや衝突判定トリガー動作が従来既知の方法によって選択されるように構成されればよい。なお、「早送り」とは衝突判定対象の工具の早送りを意味する。以下、「事前スキャン型」に含まれる動作が選択された状態を事前スキャンモードといい、「都度スキャン型」に含まれる動作が選択された状態を都度スキャンモードという。
処理パターンが選択により決定すると、ステップS12へ進み、上述した工具情報テーブル300をNC工作機械100から取得して、工具情報記憶部230に記憶する。これにより、加工動作開始前処理部250は工具情報取得手段として機能する。続いて、ステップS14に進み、処理後プログラム生成処理が行われる。処理後プログラム生成処理では、オリジナルプログラムにおいて衝突判定トリガー動作として指定されたコードが検出され、検出されたコードの直前に衝突判定に関するコード群を挿入することにより、処理後プログラムが生成される。
生成された処理後プログラムは、処理後プログラム生成処理においてNC工作機械100へ送信される。NC工作機械100は受信した処理後プログラムをプログラム記憶部120に記憶し、処理後プログラムに従って加工作業を行う。処理後プログラムおよび処理後プログラム生成処理の詳細については後述する。
処理後プログラムの生成後、事前スキャンモードの場合はステップS16で事前スキャン処理が行われ、その後ステップS18へ進む。都度スキャンモードの場合は、ステップS16をスキップしてステップS18へ進む。ステップS16の事前スキャン処理では、スキャナ104に対してワーク102の全体形状をスキャンするように要求する。スキャナ104によって計測されたワーク102の全体形状の計測情報は、USB回線108を介して工具衝突防止装置200の制御ユニット260の記憶域に記憶される。ステップS18では、NC工作機械100がD&MNCの場合、後述する理由によりユーザによる機械座標の入力が要求される。
なお、NC工作機械100のタイプは、ステップS10にて指定されるように構成してもよいし、工具衝突防止装置200に接続されるNC工作機械100が固定的な場合は、予めNC工作機械100のタイプを固定的に設定しておいてもよい。
以下、ステップS10にて、事前スキャン型の「全てのZ軸の早送り」が衝突判定トリガー動作として指定された場合について説明する。処理後プログラム生成手段によって生成される処理後プログラムについて図6〜図8を用いて説明する。図6は、オリジナルプログラム400およびオリジナルプログラム400から生成される処理後プログラム500の関係を示す。オリジナルプログラム400には、衝突判定トリガー動作のコードが記述された衝突判定トリガー部として2つのZ軸方向の早送り指示部401、402(以下、早送り指示部401、402」という。)が存在する。
処理後プログラム500には、Z軸早送り指示部401、402のそれぞれの直前に、情報出力ブロックとしての挿入コード部501、502がそれぞれ挿入される。各挿入コード部501、502には、衝突判定の開始を示す開始情報を出力させるコードが記述され、例えば、工具衝突防止装置200における衝突判定に必要な情報(工具の位置等)を工具衝突防止装置200へ出力させるコード群が記述されている。挿入コード部501には、早送り指示部401の動作についての衝突判定の開始を示すコードが記述され、挿入コード部502には、早送り指示部402の動作についての衝突判定の開始を示すコードが記述されている。このように、移動動作が指示されている指示部はZ軸に関する早送り指示部401、402だけではないが、上述したように、ステップS10の処理パターンの選択時に衝突トリガー操作としてZ軸早送りが選択されることにより、早送り指示部401、403のみについて衝突が行われるように、各早送り指示部401、402のみの直前に挿入コード部501、502が挿入される。
更に、処理後プログラム500には、G92コードの直後に座標変換に関する挿入コード部503及びNCプログラムの実行開始を工具衝突防止装置200に通知する挿入コード部504が挿入される。座標系には、ワーク102の所定点を原点とするワーク座標系とNC工作機械100の所定点を原点とする機械座標系があり、本形態のNCプログラムでは工具の位置をワーク座標系で示し、本形態の衝突判定は機械座標系で計算される。従って、挿入コード部503はワーク座標系と機械座標系との座標変換に必要な情報が出力されるように記述される。以下、機械座標系における座標値を機械座標、ワーク座標系における座標値をワーク座標という。本形態では、挿入コード部503には、G92コードで指定されている位置の機械座標およびワーク座標が出力されるための出力命令が記述される。工具衝突防止装置200にて両座標の差が求められることにより、座標変換が可能になる。
なお、処理後プログラムの各挿入コード部501、502、503において出力が指示される情報の出力先は、例えば、接続インターフェース210が記憶域を有している場合は当該記憶域に設定し、制御ユニット260は必要な情報を接続インターフェースの記憶域を参照することにより得るように構成されてもよいし、制御ユニット260の所定の記憶域に直接出力されるように構成されてもよい。
処理後プログラム生成処理によって生成されるマクロNC用の処理後プログラム500aについて、処理後プログラム500aの一部を示す図7を用いて説明する。処理後プログラム500aには、オリジナルプログラム400に対して、衝突判定トリガー動作である早送り指示部401の直前に、当該早送りの衝突判定をするための挿入コード部501a、座標変換に関する挿入コード部503a、及び挿入されたコードを機能させるための挿入コード部504aが挿入されている。マクロNC用の処理後プログラム500aの場合、マクロNCは工具101の現在位置や工具番号を変数に保持しているので、当該変数を利用して記述される。なお、処理後プログラム500aの早送り指示部402の直前にも挿入コード部502a(不図示)が挿入される。挿入コード部501aに記述される命令群と挿入コード部502aに記述される命令群は同じである。
挿入コード部504aはNC工作機械100の通信ポート(例えばRS232C)をオープンさせるオープン命令510とNCプログラムの開始、即ちNCプログラムによる処理の開始を工具衝突防止装置200へ通知する通知命令511とで構成される。挿入コード部503aには、G92コードで指示された位置の機械座標を出力する出力命令512、G92コードで指示された位置のワーク座標を出力する出力命令513が記述されている。挿入コード部503aには、更に、G92指令時の座標が出力されたことを示すチェック指示出力命令514が記述されている。
挿入コード部501aは、スキャンに関する命令群515〜520、524、現在座標出力命令521、現在の工具101に関する情報を出力する工具情報出力命令群522、523、次の動作に関する情報を出力する次の動作情報出力命令群525、526、衝突判定開始命令527、一時停止命令528、及び動作再開命令529で構成される。スキャンに関する命令群515〜520、524は、工具衝突防止装置200にスキャナ104によってワーク102の形状を計測させるための命令群であり、スキャンのタイプ指示517、スキャン開始指示518、及びスキャン終了指示524が含まれる。これにより、スキャンに関する命令群は形状計測指示として機能する。
なお、タイプ指示517及びスキャン開始指示518において、「2C1」はスキャン実行を示し、「2C0」はスキャンの不実行を示す。従って、処理パターンにて都度スキャンモードが選択された場合は「2C1」が設定され、衝突判定毎にスキャンが実行されてワーク102の形状が決定される。また、スキャンに関する命令群には、スキャンのために工具101の位置を一時的に避難させかつ回復させるスキャン用移動命令群515、516、520、及びNC工作機械100の動作と工具衝突防止装置200によるスキャン動作の同期をとるための同期命令519が含まれる。なお、本形態の命令515、519、520にはサブルーチンが設定されている。従って、各命令515、519、520の処理として、各命令に設定されたサブルーチンに記述された処理が行われる。
現在座標出力命令521は、工具101の現在位置のワーク座標を出力するための命令である。工具情報出力命令群は、工具101の工具番号を出力する出力命令522、及び工具101の現在の工具長を補正するための補正モードを出力する出力命令523を含む。次の動作情報出力命令群は、次の動作である早送り指示401における目的位置である移動予定位置のワーク座標を出力する出力命令525と早送り指示401における補正モードを出力する出力命令526を含む。出力命令525では、現在位置と移動予定位置とに基づく相対座標が出力されるように設定される。
衝突判定開始命令527は、衝突判定の開始指示を出力するための命令である。一時停止命令528は、NC工作機械100の動作を一時的に停止させる命令である。本形態の場合、オリジナルプログラムの「S100M03」の「M03」によって主軸が回転するが、一時停止命令528によって停止する。後の動作再開命令529によって、主軸の回転動作が再開される。なお、不図示の命令群502aにも命令群501aと同様の命令が記述される。
D&MNC用の処理後プログラムは、上述したマクロNC用の処理後プログラム500aと同様である。但し、D&MNCにおいてはシステム変数が認識されないため、システム変数の部分には当該変数に設定すべき数値や文字が設定される。
処理後プログラム生成処理によって生成されるオープンNC用の処理後プログラム500bについて、処理後プログラム500bの一部を示す図8を用いて説明する。処理後プログラム500bには、オリジナルプログラム400に対して、衝突判定トリガー動作である早送り指示部401の直前に、当該早送りの衝突判定をするための挿入コード部501b、座標変換に関する挿入コード部503b、及び挿入されたコードを機能させるための挿入コード部504bが挿入されている。オープンNCでは工具101の位置や補正モード等が所定の変数として管理されているため、これら所定の変数の値をマクロNC用の処理後プログラム500aと共通する変数(以下「共通変数」という。)に出力する。これにより、本システムはマクロNCであってもオープンNCであっても適用が可能となる。以下、共通変数に値を出力することを単に「出力する」という。
なお、処理後プログラム500bの早送り指示部402の直前にも挿入コード部502b(不図示)が挿入される。挿入コード部501bに記述される命令群と挿入コード部502bに記述される命令群は同じである。挿入コード部504bはNCプログラムの開始、即ちNCプログラムによる処理の開始を工具衝突防止装置200へ通知する通知命令530で構成される。挿入コード部503bには、G92コードで指示された位置の機械座標を出力する出力命令532、G92コードで指示された位置のワーク座標を出力する出力命令533が記述されている。挿入コード部503bには、更に、G92指令時の座標が出力されたことを示すチェック指示出力命令534が記述されている。
挿入コード部501bは、スキャンに関する命令群535〜540、544、現在座標出力命令541、現在の工具101に関する情報を出力する工具情報出力命令群542、543、次の動作に関する情報を出力する次の動作情報出力命令群545、546、衝突判定開始命令547、一時停止命令548、及び動作再開命令549で構成される。スキャンに関する命令群535〜540、544は、工具衝突防止装置200にスキャナ104によってワーク102の形状を計測させるための命令群であり、スキャンのタイプ指示537、スキャン開始指示538、及びスキャン終了指示544が含まれる。これにより、スキャンに関する命令群は形状計測指示として機能する。
なお、タイプ指示517及びスキャン開始指示518において、「2C1」はスキャン実行を示し、「2C0」はスキャンの不実行を示す。従って、本形態のように都度スキャンモードが選択された場合は「2C1」が設定され、衝突判定毎にスキャンが実行されてワーク102の形状が決定される。また、スキャンに関する命令群には、スキャンのために工具101の位置を一時的に避難させかつ回復させるスキャン用移動命令群535、536、540、及びNC工作機械100の動作と工具衝突防止装置200によるスキャン動作の同期をとるための同期命令539が含まれる。なお、本形態の命令535、539、540にはサブルーチンが設定されている。従って、各命令535、539、540の処理として、各命令に設定されたサブルーチンに記述された処理が行われる。
現在座標出力命令541は、工具101の現在位置のワーク座標を出力するための命令である。工具情報出力命令群は、工具101の工具番号を出力する出力命令542、及び工具101の現在の工具長を補正するための補正モードを出力する出力命令543を含む。次の動作情報出力命令群は、次の動作である早送り指示401における目的位置である移動予定位置のワーク座標を出力する出力命令545と早送り指示401における補正モードを出力する出力命令546を含む。出力命令545では、現在位置と移動予定位置とに基づく相対座標が出力されるように設定される。
衝突判定開始命令547は、衝突判定の開始指示を出力するための命令である。一時停止命令548は、NC工作機械100の動作を一時的に停止させる命令である。本形態の場合、オリジナルプログラムの「S100M03」の「M03」によって主軸が回転するが、一時停止命令548によって停止する。後の動作再開命令549によって、主軸の回転動作が再開される。本形態では、一時停止後にユーザによる所定の操作があった場合に動作再開命令549によって主軸の回転動作が再開される。なお、不図示の命令群502bにも命令群501bと同様の命令が記述される。
処理後プログラム生成処理について、図9のフローチャートに従って説明する。まず、ステップS20にてオリジナルプログラムを取得する。これにより、加工動作開始前処理部250はプログラム取得手段として機能する。オリジナルプログラムは、NC工作機械100から取得してもよいし、他の装置やシステムから取得してもよい。オリジナルプログラムを取得すると、ステップS22へ進み、指定された衝突判定トリガー動作、即ち衝突判定トリガー部の検索を開始する。ステップS11にて指定された動作コードを検索すればよい。ステップS23にてプログラム終了か否かが判断され、プログラムが終了でない場合は、ステップS24に進み衝突判定トリガー部を検出したか否かが判断される。
ステップS22〜ステップS24により加工動作開始前処理部250は検出手段として機能する。衝突判定トリガー部を検出していない時は、ステップS22へ戻り衝突判定トリガー部の検索を続行する。衝突判定トリガー部を検出した時は、ステップS26へ進み、衝突判定に関する命令群を生成して衝突判定トリガー部の直前に挿入コード部として挿入する。当該命令群は、上述したようにNC工作機械100のタイプに応じて衝突判定を行うために必要な情報を得るための命令及び衝突判定の開始命令等で構成される。
上述した要領にて、各NC工作機械100のタイプに応じた衝突判定に関する命令群が生成されればよい。各NC工作機械のタイプのオリジナルプログラムに挿入される命令群の内容は共通である。命令群の挿入後、次の衝突判定トリガー部の検索をするためにステップS22へ戻る。
ステップS23にて、プログラムが終了したと判断された時はステップS27へ進み、NC工作機械100のタイプによって異なる必要な命令群をオリジナルプログラムに挿入する。例えば、マクロNCの場合は、挿入コード部504aおよび挿入コード部503aであり、D&MNCの場合は挿入コード部504b及び挿入コート部503bである。最後にステップS28にて、生成された処理後プログラムをNC工作機械100へ送信して処理後プログラム生成処理を終了する。ステップS26、27、28により、加工動作開始前処理部250はプログラム生成手段として機能する。
次に、加工動作開始後のNC工作機械100および工具衝突防止装置200のそれぞれにて行われる処理について説明する。図10は、マクロNCであるNC工作機械100と工具衝突防止装置200とにおいて行われる処理の流れについて示すシーケンス図である。マクロNC100では、NCプログラム(処理後プログラム500a)の処理が開始されると、まず、挿入コード部504aの通知命令511により処理後プログラム500aによる処理の開始が通知される。続いて、挿入コード部503aによって、座標変換に関する情報が出力される。以下、処理後プログラム500aに記述されたコードに従って処理が進められる。挿入コード部501aに処理が進むと、各命令に従って処理を行い、動作一時停止命令528によって動作を一時的に停止する。
工具衝突防止装置200は、マクロNC100から出力された情報を、接続インターフェース210にて受信する。これにより接続インターフェース210は開始情報受信手段として機能する。具体的には、まず、スキャンに関する命令群515〜520によってワーク102のスキャナ104によるスキャンを開始し、計測情報を取得する。更に、現在の工具に関する情報(現在位置、工具番号、補正モード)及び次の回の工具に関する情報(移動予定位置、補正モード)を取得する。マクロNC100から出力された情報は、例えば、接続インターフェース210の記憶域にて保持され、工具衝突防止装置200は接続インターフェース210を介してマクロNC100から出力された情報を取得する。衝突判定開始命令527によって、衝突判定処理を開始し、工具101がワーク102に衝突するか否かの判定を行う。
所定の算出方法により判定結果が得られると、判定結果に基づくメッセージを工具衝突防止装置200のモニタに表示する。例えば、判定結果が「衝突する」の場合は衝突警告メッセージを表示し、判定結果が「衝突しない」の場合は安全メッセージを表示する。一時停止状態のマクロNC100にて、処理を再開させるための所定の再開操作があると一時停止されていた処理後プログラム500aの処理が進められる。終了操作があった場合は、そのまま処理後プログラム500aに基づいた処理は終了される。次の挿入コード部502aにおいても挿入コード部501aと同様の処理が行われる。
NC工作機械100がD&MNCの場合及びオープンNCの場合であっても、処理後プログラム開始後のNC工作機械100および工具衝突防止装置200のそれぞれにて行われる処理は、マクロNC100の場合と同様の処理が行われる。工具衝突防止装置100にて行われる衝突判定処理の詳細については後述する。
衝突判定処理において行われる処理について図11に示すフローチャートに従って説明する。まず、ステップS30にて、工具補正値の特定を行う。NC工作機械100から取得した工具番号に基づいて工具情報記憶部230の工具情報テーブル300を参照することにより、工具101の工具補正値を特定する。本形態では工具補正値のうち特に工具径を使用する。次に、ステップS31へ進み、工具101の現在位置の機械座標を決定する。本形態ではNC工作機械100から出力されたワーク座標及び補正モードから機械座標を算出する。ワーク座標から機械座標への座標変換は挿入コード部503にて出力されたワーク座標と機械座標との差を求めることにより算出できる。
続いて、ステップS32へ進み、工具101の移動予定位置の機械座標を決定する。開始情報に含まれる移動予定位置のワーク座標及び移動指示における補正モードから算出する。続いて、ステップS33では、スキャン命令がスキャン実行の場合、すなわちステップS10で選択された処理パターンが都度スキャンモードの場合、ワークスキャン処理が行われる。ワークスキャン処理では、工具の工具径、現在位置、および移動予定位置に基づいてスキャン範囲が算出され、算出されたスキャン範囲の計測情報が得られるようにスキャナ104に対してスキャンが指示される。スキャナ104によって得られた計測情報は制御ユニット260の記憶域に取り込まれる。続くステップS34にて、取り込まれた計測情報に基づいてワーク102の形状が決定される。都度スキャンモードの場合はスキャン範囲におけるワーク102の形状が決定される。
ワーク102の形状が決定されるとステップS35へ進み、衝突の判定が行われる。本形態では、形状情報によりワーク102の形状における最大の高さを算出し、その最大の高さと工具101の移動予定位置の座標とを比較することにより衝突の判定を行う。判定結果が決定すると、ステップS36に進み、判定結果に基づいたメッセージが工具衝突防止装置200のモニタに表示される。衝突すると判定された場合は警告メッセージが表示され、衝突しないと判定された場合は安全メッセージが表示される。メッセージの表示後、衝突判定処理を終了する。
衝突判定処理において、ステップS31およびステップS32の処理は工具位置決定部225によって制御される。これにより、工具位置決定部225は工具位置決定手段として機能する。ステップS33及びステップS34の処理はワーク形状決定部220によって制御される。これにより、ワーク形状決定部220はワーク形状決定手段として機能する。ステップS35及びステップS36の処理は、衝突判定部240によって制御される。これにより、衝突判定部240は衝突判定手段として機能する。
本発明は上述した形態に限らず、様々な形態にて実施して良い。例えば、ワーク形状決定部220は、ワーク102だけでなく、ジグやテーブル等を含んだワーク部の形状を計測してワーク部の形状を決定し、衝突判定部240はワーク部と工具との衝突について判定を行ってもよい。処理後プログラムにおいて、挿入コード部501、502の記述はサブルーチン化できる部分はサブルーチン化してもよい。衝突判定トリガー動作は図5に示す動作に限らず、衝突が発生しやすい動作を適宜設定すればよい。
また、事前スキャンモードの処理後プログラムの場合、開始情報に含まれるスキャン実行に関する命令群は含まれない。事前スキャンモードの場合の衝突判定処理では、ステップS33のワークスキャン処理は行われず、ステップS34にて、保持されているワーク102の全体形状からシミュレーションにより現在の形状を決定する。工具情報306は、工具衝突防止装置200の工具情報取得時に、工具計測センサ103を用いて工具補正値の計測を行って、計測結果を取得するように構成してもよい。
更に、工具の現在値や補正モード等、現在のNC工作機械の状況を示す情報の出力機能を有するオープンNCにおいては、工具衝突防止装置200の所定の記憶域に出力された情報を保持しておき、制御ユニット260が定期的に当該記憶域を参照するように構成してもよい。当該場合、処理後プログラムにおける未実行ブロックも定期的に出力されるように設定し、当該未実行ブロックを参照することにより、移動予定位置の座標や補正コードを取得するようい構成すればよい。