(57)【特許請求の範囲】
【請求項１】
数値制御工作機械の加工プログラムチェック方法であって、
加工状態をグラフィック表示しながら加工プログラムのシミュレーションを行い、構造物が互いに干渉するか否かの干渉チェック及び異常に接近するか否かの異常接近チェックを行うチェック工程と、
該工程で前記干渉又は異常接近と判定した際、その動作を指示した加工プログラムのブロックをそれぞれ干渉ブロック又は異常接近ブロックとして個別に記憶する異常ブロック記憶工程と、
前記加工プログラムを修正するための編集画面を表示し、そこに前記記憶した干渉ブロック及び異常接近ブロックを他のブロックと区別して表示して加工プログラムの修正を行わせ、修正が済むとそのブロックを変更ブロックとして記憶する編集工程と、
前記チェック工程で前記干渉又は異常接近と判定した際、および前記加工プログラムの２回目以降のシミュレーション時にその加工プログラムの実行ブロックが前記干渉ブロック、前記異常接近ブロック、または前記変更ブロックとして記憶されているブロックと一致した際に、その干渉ブロック、異常接近ブロック、および変更ブロックに関してそれぞれ予め設定された条件に応じて、シミュレーション動作をそのまま続行するか、低速に切換えるか、一時停止するかを選択的に行う動作選択工程と
を有することを特徴とする数値制御工作機械の加工プログラムチェック方法。
【請求項２】
数値制御工作機械の加工プログラムチェック方法であって、
加工状態をグラフィック表示しながら加工プログラムのシミュレーションを行い、構造物が互いに干渉するか否かの干渉チェック、異常に接近するか否かの異常接近チェック、および切削速度が予め設定した速度を越えるか否かの切削速度異常チェックを行うチェック工程と、
該工程で前記干渉又は異常接近又は切削速度異常と判定した際、その動作を指示した加工プログラムのブロックをそれぞれ干渉ブロック又は異常接近ブロック又は切削速度異常ブロックとして個別に記憶する異常ブロック記憶工程と、
前記加工プログラムを修正するための編集画面を表示し、そこに前記記憶した干渉ブロック、異常接近ブロック、および切削速度異常ブロックを他のブロックと区別して表示して加工プログラムの修正を行わせ、修正が済むとそのブロックを変更ブロックとして記憶する編集工程と、
前記チェック工程で前記干渉、異常接近、または切削速度異常と判定した際、および前記加工プログラムの２回目以降のシミュレーション時にその加工プログラムの実行ブロックが前記干渉ブロック、前記異常接近ブロック、前記切削速度異常ブロック、または前記変更ブロックとして記憶されているブロックと一致した際に、その干渉ブロック、異常接ブロック、切削速度異常ブロック、および前記変更ブロックに関してそれぞれ予め設定された条件に応じて、シミュレーション動作をそのまま続行するか、低速に切換えるか、一時停止するかを選択的に行う動作選択工程と
を有することを特徴とする数値制御工作機械の加工プログラムチェック方法。
【請求項３】
請求項１記載の数値制御工作機械の加工プログラムチェック方法において、
前記各工程によりシミュレーションおよび修正を行った加工プログラムによって実際に数値制御工作機械を動作させてチェックを行う工程を有し、
該工程において前記加工プログラムを表示する際、前記記憶した干渉ブロック、異常接近ブロック、および変更ブロックをそれぞれ他のブロックとは区別して表示するとともに、その記憶した各ブロックによる動作を実行する前に、予め設定された条件に応じて、低速運転、一時停止、あるいは手動パルス発生器によるパルスでの運転のいずれかに自動的に切り換えることを特徴とする数値制御工作機械の加工プログラムチェック方法。
【請求項４】
前記実際に数値制御工作機械を動作させてチェックを行う工程で前記加工プログラムを表示する際、前記記憶した干渉ブロック、異常接近ブロック、および変更ブロックをそれぞれ予め設定された異なる色で他のブロックとは区別して表示することを特徴とする請求項３記載の数値制御工作機械の加工プログラムチェック方法。
【請求項５】
数値制御工作機械の加工プログラムチェック方法であって、
加工状態をグラフィック表示しながら加工プログラムのシミュレーションを行い、構造物が互いに干渉するか否かの干渉チェック、異常に接近するか否かの異常接近チェック、および切削速度が予め設定した速度を越えるか否かの切削速度異常チェックを行うチェック工程と、
該工程で前記干渉又は異常接近又は切削速度異常と判定した際、その動作を指示した加工プログラムのブロックをそれぞれ干渉ブロック又は異常接近ブロック又は切削速度異常ブロックとして個別に記憶する異常ブロック記憶工程と、
前記加工プログラムを修正するための編集画面を表示し、そこに前記記憶した干渉ブロック、異常接近ブロック、および切削速度異常ブロックを他のブロックと区別して表示してプログラムの修正を行わせ、プログラムが修正されるとそのブロックを変更ブロックとして記憶する編集工程と、
前記各工程によりシミュレーションおよび修正を行った加工プログラムによって実際に数値制御工作機械を動作させてチェックを行う工程とを有し、
該工程において前記加工プログラムを表示する際、前記記憶した干渉ブロック、異常接近ブロック、切削速度異常ブロック、および変更ブロックを他のブロックとは区別して表示するとともに、その記憶した各ブロックによる動作を実行する前に、予め設定された条件に応じて、低速運転、一時停止、あるいは手動パルス発生器によるパルスでの運転のいずれかに自動的に切り換えることを特徴とする数値制御工作機械の加工プログラムチェック方法。
【請求項６】
請求項２記載の数値制御工作機械の加工プログラムチェック方法において、
前記各工程によりシミュレーションおよび修正を行った加工プログラムによって実際に数値制御工作機械を動作させてチェックを行う工程を有し、
該工程において前記加工プログラムを表示する際、前記記憶した干渉ブロック、異常接近ブロック、切削速度異常ブロック、および変更ブロックを他のブロックとは区別して表示するとともに、その記憶した各ブロックによる動作を実行する前に、予め設定された条件に応じて、低速運転、一時停止、あるいは手動パルス発生器によるパルスでの運転のいずれかに自動的に切り換えることを特徴とする数値制御工作機械の加工プログラムチェック方法。
【請求項７】
前記実際に数値制御工作機械を動作させてチェックを行う工程で前記加工プログラムを表示する際、前記記憶した干渉ブロック、異常接近ブロック、切削速度異常ブロック、および変更ブロックをそれぞれ予め設定された異なる色で他のブロックとは区別して表示することを特徴とする請求項５又は６記載の数値制御工作機械の加工プログラムのチェック方法。
【請求項８】
入力部と表示部と制御部とを備え、その制御部が
数値制御工作機械の加工プログラムを、その加工状態を前記表示部にグラフィック表示しながらシミュレーションするシミュレーション制御手段と、
そのシミュレーション中に構造物が互いに干渉するか否かの干渉チェック及び異常に接近するか否かの異常接近チェックを行うチェック手段と、
該チェック手段によって前記干渉又は異常接近と判定されたとき、その動作を指示した加工プログラムのブロックをそれぞれ干渉ブロック又は異常接近ブロックとして個別に記憶する異常ブロック記憶手段と、
前記加工プログラムを修正するための編集画面を前記表示部に表示し、そこに前記異常ブロック記憶手段によって記憶した干渉ブロック及び異常接近ブロックを他のブロックと区別して表示して加工プログラムの修正を行わせ、修正が済むとそのブロックを変更ブロックとして記憶する編集制御手段と、
前記チェック手段によって前記干渉又は異常接近と判定された際、およびシミュレーション制御手段による前記加工プログラムの２回目以降のシミュレーション時にその加工プログラムの実行ブロックが前記干渉ブロック、前記異常接近ブロック、または前記変更ブロックとして記憶されているブロックと一致した際に、その干渉ブロック、異常接近ブロック、および変更ブロックに関してそれぞれ予め設定された条件に応じて、シミュレーション動作をそのまま続行するか、低速に切換えるか、一時停止するかを選択的に行う動作選択手段
の各機能を有することを特徴とする数値制御工作機械の加工プログラムチェック装置。
【請求項９】
入力部と表示部と制御部とを備え、その制御部が
数値制御工作機械の加工プログラムを、その加工状態を前記表示部にグラフィック表示しながらシミュレーションするシミュレーション制御手段と、
そのシミュレーション中に構造物が互いに干渉するか否かの干渉チェック、異常に接近するか否かの異常接近チェック、および切削速度が予め設定した速度を越えるか否かの切削速度異常チェックを行うチェック手段と、
該チェック手段によって前記干渉又は異常接近又は切削速度異常と判定されたとき、その動作を指示した加工プログラムのブロックをそれぞれ干渉ブロック又は異常接近ブロック又は切削速度異常ブロックとして個別に記憶する異常ブロック記憶手段と、
前記加工プログラムを修正するための編集画面を前記表示部に表示し、そこに前記異常ブロック記憶手段によって記憶した干渉ブロック、異常接近ブロック、および切削速度異常ブロックを他のブロックと区別して表示して加工プログラムの修正を行わせ、修正が済むとそのブロックを変更ブロックとして記憶する編集制御手段と、
前記チェック手段によって前記干渉、異常接近、または切削速度異常と判定された際、および前記加工プログラムの２回目以降のシミュレーション時にその加工プログラムの実行ブロックが前記干渉ブロック、前記異常接近ブロック、前記切削速度異常ブロック、または前記変更ブロックとして記憶されているブロックと一致した際に、その干渉ブロック、異常接近ブロック、切削速度異常ブロック、および変更ブロックに関してそれぞれ予め設定された条件に応じて、シミュレーション動作をそのまま続行するか、低速に切換えるか、一時停止するかを選択的に行う動作選択手段
の各機能を有することを特徴とする数値制御工作機械の加工プログラムチェック装置。
【請求項１０】
請求項８記載の数値制御工作機械の加工プログラムチェック装置によって前記シミュレーションおよび修正を行った加工プログラムおよび前記シミュレーション結果によって実際に加工を行うための各部を動作させてチェックを行うチェックモード運転手段と、
該手段による動作中に前記加工プログラムを、前記シミュレーション結果として記憶された干渉ブロック、異常接近ブロック、および変更ブロックを他のブロックと区別して表示する加工プログラム表示手段と、
前記干渉ブロック、異常接近ブロック、および変更ブロックによる動作を実行する前に、予め設定された条件に応じて、低速運転、一時停止、あるいは手動パルス発生器によるパルスでの運転のいずれかに自動的に切り換える運転切換手段と
を設けたことを特徴とする数値制御工作機械。
【請求項１１】
前記請求項８記載の数値制御工作機械の加工プログラムチェック装置を備えていることを特徴とする請求項９記載の数値制御工作機械。
【請求項１２】
入力部と表示部と制御部とを備え、その制御部が
数値制御工作機械の加工プログラムを、その加工状態を前記表示部にグラフィック表示しながらシミュレーションするシミュレーション制御手段と、
そのシミュレーション中に構造物が互いに干渉するか否かの干渉チェック、異常に接近するか否かの異常接近チェック、および切削速度が予め設定した速度を越えるか否かの切削速度異常チェックを行うチェック手段と、
該チェック手段によって前記干渉又は異常接近又は切削速度異常と判定されたとき、その動作を指示した加工プログラムのブロックをそれぞれ干渉ブロック又は異常接近ブロック又は切削速度異常ブロックとして個別に記憶する異常ブロック記憶手段と、
前記加工プログラムを修正するための編集画面を前記表示部に表示し、そこに前記異常ブロック記憶手段によって記憶した干渉ブロック、異常接近ブロック、および切削速度異常ブロックを他のブロックと区別して表示し、前記入力部からの情報によってプログラムが修正されるとそのブロックを変更ブロックとして記憶する編集制御手段
の各機能を有する数値制御工作機械の加工プログラムチェック装置によって前記シミュレーションおよび修正を行った加工プログラムおよび前記シミュレーション結果によって実際に加工を行うための各部を動作させてチェックを行うチェックモード運転手段と、
該手段による動作中に前記加工プログラムを、前記シミュレーション結果として記憶された干渉ブロック、異常接近ブロック、切削速度異常ブロック、および変更ブロックを他のブロックと区別して表示する加工プログラム表示手段と、
前記干渉ブロック、異常接近ブロック、切削速度異常ブロック、および変更ブロックによる動作を実行する前に、予め設定された条件に応じて、低速運転、一時停止、あるいは手動パルス発生器によるパルスでの運転のいずれかに自動的に切り換える運転切換手段と
を設けたことを特徴とする数値制御工作機械。
【請求項１３】
請求項９記載の数値制御工作機械の加工プログラムチェック装置によって前記シミュレーションおよび修正を行った加工プログラムおよび前記シミュレーション結果によって実際に加工を行うための各部を動作させてチェックを行うチェックモード運転手段と、
該手段による動作中に前記加工プログラムを、前記シミュレーション結果として記憶された干渉ブロック、異常接近ブロック、切削速度異常ブロック、および変更ブロックを他のブロックと区別して表示する加工プログラム表示手段と、
前記干渉ブロック、異常接近ブロック、切削速度異常ブロック、および変更ブロックによる動作を実行する前に、予め設定された条件に応じて、低速運転、一時停止、あるいは手動パルス発生器によるパルスでの運転のいずれかに自動的に切り換える運転切換手段と
を設けたことを特徴とする数値制御工作機械。
【請求項１４】
前記請求項９記載の数値制御工作機械の加工プログラムチェック装置を備えていることを特徴とする請求項１３記載の数値制御工作機械。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、数値制御工作機械で使用する加工プログラムのシミュレーションによるチェック方法およびチェック装置、ならびにそのチェック装置を備えた数値制御工作機械に関する。
【０００２】
【従来の技術】
数値制御の加工プログラムによって部品加工を行う数値制御工作機械（以下「ＮＣ工作機械」という）が各種の部品加工に多用されている。そのＮＣ工作機械で使用する加工プログラムを新たに作成した場合や、その一部のプログラムを変更した場合には、その加工プログラムで実際にＮＣ工作機械を動作させて部品の加工を行う生産運転の前に、その加工プログラムを充分に確認（チェック）する必要がある。
【０００３】
その際の加工プログラムのチェックを、従来は次のような方法で行っていた。・ＮＣ工作機械をプログラムチェックモードにして、手動でハンドルを操作してパルス発生器によってパルスを発生させ、そのパルスによって加工プログラムを実行させる。
・ＮＣ工作機械を、自動運転中の切削送り速度を操作盤からのダイヤル操作で任意に変えられる速度オーバーライド機能により、低速運転にして加工プログラムを実行させる。
・ＮＣ工作機械に、その刃物台から工具を取り外し、ワーク（加工材料）を供給せずに空運転で加工プログラムを実行させる。
【０００４】
【発明が解決しようとする課題】
しかしながら、このような加工プログラムのチェック方法では、確認作業に非常に多くの時間が必要だった。また、実際に使用するＮＣ工作機械（実機）を使用して長時間に亘る確認作業をするため、その確認作業の間はＮＣ工作機械による生産が止ってしまっていた。
また、従来のシミュレーションでの干渉チェックは、干渉した位置で表示画面の描画を停止させるか、干渉部分の表示色を変えるなど、シミュレーションの描画上での干渉エラー表示となっていた。そのため、加工プログラム中の干渉が生じるなどの問題がある部分（ブロック）の手直しを容易且つ迅速に行うことができなかった。
【０００５】
この発明は、このような従来のＮＣ工作機械の加工プログラムのチェック（確認）方法における種々の問題を改善するためになされたものである。
すなわち、この発明は、加工プログラムのシミュレーションをＮＣ工作機械（実機）を使用しなくても、パーソナルコンピュータ等の汎用装置を使用しても行えるようにし、しかもそれによる加工プログラムの異常部分の検出とその修正を迅速且つ容易に行えるようにすることを目的とする。また、ＮＣ工作機械上でのチェックモードの運転も能率よく、しかも問題がありそうな箇所の確認を確実に行えるようにすることも目的とする。
【０００６】
【課題を解決するための手段】
この発明は上記の目的を達成するため、次のようなＮＣ工作機械の加工プログラムチェック方法およびチェック装置ならびにそのチェック装置を備えたＮＣ工作機械を提供する。
【０００７】
まず、この発明によるＮＣ工作機械の加工プログラムチェック方法は、次の各工程を有することを特徴とする。
（１）加工状態をグラフィック表示しながら加工プログラムのシミュレーションを行い、構造物が互いに干渉するか否かの干渉チェック及び異常に接近するか否かの異常接近チェックを行うチェック工程、
（２）その工程で干渉又は異常接近と判定した際、その動作を指示した加工プログラムのブロックをそれぞれ干渉ブロック又は異常接近ブロックとして個別に記憶する異常ブロック記憶工程、
（３）加工プログラムを修正するための編集画面を表示し、そこに上記記憶した干渉ブロック及び常接近ブロックを他のブロックと区別して表示して加工プログラムの修正を行わせ、修正が済むとそのブロックを変更ブロックとして記憶する編集工程、
（４）上記チェック工程で干渉又は異常接近と判定した際、および上記加工プログラムの２回目以降のシミュレーション時にその加工プログラムの実行ブロックが上記干渉ブロック、上記異常接近ブロック、または上記変更ブロックとして記憶されているブロックと一致した際に、その干渉ブロック、異常接近ブロック、および変更ブロックに関してそれぞれ予め設定された条件に応じて、シミュレーション動作をそのまま続行するか、低速に切換えるか、一時停止するかを選択的に行う動作選択工程、
【０００８】
さらに、上記チェック工程で、切削速度が予め設定した速度を越えるか否かの切削速度異常チェックも行い、
上記異常ブロック記憶工程で、上記チェック工程で切削速度異常と判定した際、その動作を指示した加工プログラムのブロックを切削速度異常ブロックとして記憶し、
上記編集工程で、上記編集画面にその記憶した切削速度異常ブロックも他のブロックと区別して表示して加工プログラムの修正を行わせ、修正が済むとそのブロックを変更ブロックとして記憶し、
上記動作選択工程で、上記チェック工程で切削速度異常と判定した際、および上記加工プログラムの２回目以降のシミュレーション時にその加工プログラムの実行ブロックが上記切削速度異常ブロックとして記憶されているブロックと一致した際にも、その切削速度異常に関して予め設定された条件に応じて、シミュレーション動作をそのまま続行するか、低速に切換えるか、一時停止するかを選択的に行うようにするとよい。
【０００９】
これらの加工プログラムチェック方法は、ＮＣ工作機械自体の制御部によって行えるようにすることができるが、パーソナルコンピュータ等の汎用の情報処理装置を使用しても、上述の各工程を実行させるプログラムをインストールすることによって実行可能である。
【００１０】
さらに、上記各工程によりシミュレーションおよび修正を行った加工プログラムによって実際にＮＣ工作機械を動作させてチェックを行う工程を有し、
その工程において加工プログラムを表示する際、上記記憶した干渉ブロック、異常接近ブロック、切削速度異常ブロックおよび変更ブロックをそれぞれ他のブロックとは区別して表示するとともに、その記憶した各ブロックによる動作を実行する前に、予め設定された条件に応じて、低速運転、一時停止、あるいは手動パルス発生器によるパルスでの運転のいずれかに自動的に切り換えるようにすると、実機による加工プログラムのチェックを効率よく確実に行うことができる。
上記加工プログラムを表示する際、記憶した干渉ブロック、異常接近ブロック、切削速度異常ブロックおよび変更ブロックをそれぞれ予め設定された異なる色で他のブロックとは区別して表示すると、一目で判別できる。
この工程は、ＮＣ工作機械の制御部によって実行する。
【００１１】
この発明によるＮＣ工作機械の加工プログラムチェック装置は、入力部と表示部と制御部とを備え、その制御部が次の各機能を有することを特徴とする。
（１）ＮＣ工作機械の加工プログラムを、その加工状態を上記表示部にグラフィック表示しながらシミュレーションするシミュレーション制御手段、
（２）そのシミュレーション中に構造物が互いに干渉するか否かの干渉チェック及び異常に接近するか否かの異常接近チェックを行うチェック手段、
（３）そのチェック手段によって干渉又は異常接近と判定されたとき、その動作を指示した加工プログラムのブロックをそれぞれ干渉ブロック又は異常接近ブロックとして個別に記憶する異常ブロック記憶手段、
（４）上記加工プログラムを修正するための編集画面を上記表示部に表示し、そこに上記異常ブロック記憶手段によって記憶した干渉ブロック及び異常接近ブロックを他のブロックと区別して表示してプログラムの修正を行わせ、修正が済むそのブロックを変更ブロックとして記憶する編集制御手段、
（５）上記チェック手段によって干渉又は異常接近と判定された際、および上記加工プログラムの２回目以降のシミュレーション時にその加工プログラムの実行ブロックが上記干渉ブロック、上記異常接近ブロック、または上記変更ブロックとして記憶されているブロックと一致した際に、その干渉ブロック、異常接近ブロック、および変更ブロックに関してそれぞれ予め設定された条件に応じて、シミュレーション動作をそのまま続行するか、低速に切換えるか、一時停止するかを選択的に行う動作選択手段、
【００１２】
さらに、上記チェック手段が、切削速度が予め設定した速度を越えるか否かの切削速度異常チェックを行う手段も有し、
上記異常ブロック記憶手段が、上記チェック手段によって切削速度異常と判定された際、その動作を指示した加工プログラムのブロックを切削速度異常ブロックとして記憶する手段も有し、
上記編集制御手段が、上記編集画面にその記憶した切削速度異常ブロックも他のブロックと区別して表示して加工プログラムの修正を行わせ、修正が済むとそのブロックを変更ブロックとして記憶する手段も有し、
上記動作選択手段が、上記チェック手段によって上記切削速度異常と判定された際、および上記加工プログラムの２回目以降のシミュレーション時にその加工プログラムの実行ブロックが上記切削速度異常ブロックとして記憶されているブロックと一致した際にも、その切削速度異常に関して予め設定された条件に応じて、シミュレーション動作をそのまま続行するか、低速に切換えるか、一時停止するかを選択的に行う手段も有するとよい。
【００１３】
これらの加工プログラムチェック装置は、入力部と表示部と制御部を備えたＮＣ工作機械自体が兼ねることができる。しかし、ＮＣ工作機械とは別のパーソナルコンピュータ等の汎用の情報処理装置に、上述の手段の機能を実行させるプログラムをインストールすることによっても実現可能である。
【００１４】
また、この発明によるＮＣ工作機械は次の各手段を有することを特徴とする。
（１）上記ＮＣ工作機械の加工プログラムチェック装置によってシミュレーションおよび修正を行った加工プログラムおよびそのシミュレーション結果によって実際に加工を行うための各部を動作させてチェックを行うチェックモード運転手段、
（２）その手段による動作中に上記加工プログラムを、上記シミュレーション結果として記憶された干渉ブロック、異常接近ブロック、切削速度異常ブロックおよび変更ブロックを他のブロックと区別して表示する加工プログラム表示手段、
（３）上記干渉ブロック、異常接近ブロック、切削速度異常ブロック、および変更ブロックによる動作を実行する前に、予め設定された条件に応じて、低速運転、一時停止、あるいは手動パルス発生器によるパルスでの運転のいずれかに自動的に切り換える運転切換手段、
このＮＣ工作機械自体に、上記ＮＣ工作機械の加工プログラムチェック装置を備えることもできる。
【００１５】
【作用】
この発明によるＮＣ工作機械のプログラムチェック方法およびチェック装置によれば、加工プログラムのシミュレーションを実行して次の情報をメモリに記憶（記録）する。
・干渉したプログラムブロック（干渉ブロック）
・あるいは、干渉していないがぎりぎりですれ違う異常接近（ニアミス）のプログラムブロック（異常接近ブロック）
・予め工具毎および切削する材質毎の切削条件を、径方向と長手方向のそれぞれに設定し、その速度以上で切削加工するプログラムブロック（切削速度異常ブロック）
・編集画面での編集によって変更したプログラムブロック(変更ブロック)
【００１６】
２回目以降のシミュレーション時には、前回のシミュレーション時に記憶された情報を使用し、干渉ブロック、異常接近ブロック、切削速度異常ブロック、および変更ブロックの手前で自動的に低速運転に切換えたり、一時停止して状況の確認を容易にする。
また、変更したブロックの先頭でも自動的に低速運転に切換えたり、一時停止して、状況の確認を容易にすることができる。
【００１７】
そのため、１回目は高速でシミュレーションを行い、２回目も、１回目で記憶した情報から確認する必要があるプログラムブロックまでは高速でシミュレーションができるため、確認に要する時間を短縮することができる。
編集画面に加工プログラムを表示する際、シミュレーション結果の情報を取り込み、干渉ブロック、異常接近ブロック、および切削速度異常ブロックは色分けやマーキング表示、網掛け表示などによって他のブロックと一目で区別できるように、且つ異常ブロック相互の区別もできるように表示することができる。それによって、プログラマがこれらのブロックのプログラムを容易に修正することができる。
【００１８】
ＮＣ工作機械のプログラムチェックモードで、加工プログラムと一緒にシミュレーション結果の情報を取り込み、干渉ブロック、異常接近ブロック、切削速度異常ブロック、および変更ブロックの手前で、自動的に低速運転に切換えたり、ハンドルモード（手動パルス発生器によるパルスでの運転）に切換えたり、一時停止して警告表示をし、スタートキーの操作を待ったりすることができる。
また、変更ブロックの先頭でも、自動的に低速運転に切換えたり、ハンドルモードに切換えたり、一時停止して状況の確認を容易にすることができる。
また、運転中のプログラム表示画面を編集画面と同様に、色分けやマーキング表示、網掛け表示などによって、注意が必要なブロックが一目で判るようにすることもできる。
【００１９】
【発明の実施の形態】
以下、この発明の好ましい実施の形態を図面を参照して説明する。
図３はこの発明を実施するＮＣ工作機械の一例を示す正面図である。このＮＣ工作機械１は、少なくとも１つの主軸と少なくとも１つの刃物台を有する機械本体１１と、入力部１３と表示部１４を有する操作盤１２とからなり、例えば主軸移動型のＮＣ旋盤である。
そして、このＮＣ工作機械１はＮＣ加工プログラムに従って動作し、これに接続される図示しない棒材供給装置から材料（素材）として棒材が供給され、主軸内のチャックでその棒材を保持して回転させ、その主軸と刃物台とを相対移動させて、刃物台に取り付けた工具（バイトやドリル等）によってその棒材に切削加工や孔明け加工を施す。
【００２０】
次に、この工作機械の制御に係わるハード構成を図４のブロック図によって説明する。
この図４に示すＮＣ工作機械１は、入力部１３、表示部１４、外部記憶装置１５、制御部１６、外部インタフェース（Ｉ／Ｆ）２８、モータ制御部３０と、これらを結ぶバス２９と、主軸駆動機構３３および刃物台駆動機構３４等から構成されている。
制御部１６は、ＣＰＵ１７とＲＯＭ１８およびＲＡＭ１９とバス２９からなり、マイクロコンピュータを構成している。
【００２１】
ＣＰＵ１７は各種の演算・処理機能を有する中央処理装置であり、ＲＯＭ１８に格納されている動作プログラムによって動作してこの制御部１６およびＮＣ工作機械１の全体を統括制御し、外部記憶装置１５またはＲＡＭ１９に格納されたＮＣプログラムにしたがってモータ制御部３０の各部を制御する。このＣＰＵはまた、この発明による後述するシミュレーション動作およびプログラムチェックモードでの運転動作における各種の判断や処理なども実行する。
ＲＯＭ１８はリードオンリ・メモリであり、ＣＰＵ１７の動作プログラムおよび、加工条件毎の各モータの調整値を示すデータのファイル等を予め格納している。
【００２２】
ＲＡＭ１９は、ランダムアクセス・メモリであり、実行する加工プログラム（ＮＣプログラム）や、入力部１３あるいは外部Ｉ／Ｆ２８から入力される各種データ等を一時的に記憶するとともに、ＣＰＵ１７のワーキングメモリとしても使用される。入力されるデータとしては、後述する機械形状データ、素材形状データ、材質データ、ホルダ（刃物台）形状データ、工具形状データ、切削条件データなどが含まれる。また、シミュレーションの結果として判定される干渉ブロック、異常接近ブロック、切削速度異常ブロックなども一時的に記憶する。
入力部１３と表示部１４は、このＮＣ工作機械１の図３に示した操作盤１２に設けられている。その入力部１３は、このＮＣ工作機械１の各種の機能を選択したり運転に必要な情報を入力したりするためのスイッチやボタン、制御部１６が加工プログラムのシミュレーションを実行するために必要な上述した各データも、この入力部１３によって入力する。
【００２３】
表示部１４は、ＣＲＴや液晶ディスプレイなどのグラフィック表示が可能な表示装置であり、このＮＣ工作機械１の操作に必要な各種の情報や入力情報および実際の加工状況などの情報を表示する。
外部記憶装置１５は、ハードディスク装置やＦＤドライブ装置あるいはＭＯドライブ装置等の大容量の記憶媒体を用いる不揮発性の記憶装置であり、このＮＣ工作機械１で使用するＮＣ加工プログラム、加工する各種部品のデータ、シミュレーショに必要な上述の各種データ等を予め格納しておくことができる。また、ＲＡＭ１９に一時記憶された各種入力データやシミュレーション結果の情報なども、この外部記憶装置１５によってハードディスクやフロッピディスク、光磁気ディスクなどの記憶媒体に記憶保持させることができる。
【００２４】
外部Ｉ／Ｆ２８は、図示しない自動プログラミング装置やパーソナルコンピュータからＮＣプログラムを入力するためのインタフェース、図示しない棒材供給装置の制御部と接続して信号の送受を行うためのインタフェース、この発明によるシミュレーションをパーソナルコンピュータで行う場合に、そのパーソナルコンピュータと接続してシミュレーションに必要な各種のデータの送信とシミュレーション結果のデータの受信など行うためのインタフェースなどに使用され、インタフェース回路およびコネクタからなる。
後述する機械形状データ、ホルダ形状データ、工具形状データ等をパーソナルコンピュータ等の外部機器で作成し、この外部Ｉ／Ｆ２８から入力することもできる。
これらを接続するバス２９は、データバスとコントロールバスとアドレスバスとによって構成されている。
【００２５】
モータ制御部３０は、主軸制御部３１と刃物台制御部３２とからなり、それぞれ主軸駆動機構（スピンドル回転用モータと主軸移動用モータを含む）３３および刃物台駆動機構（刃物台割出回転用モータと刃物台移動用モータを含む）３４の駆動を制御する。このモータ制御部３０も、バス２９によって制御部１６に接続されている。
このＮＣ工作機械１が、主軸のほかに移動可能な背面主軸も有するなど複数の主軸を有する場合には複数の主軸駆動機構３３を備え、それを複数の主軸制御部３１によって制御する。また、複数の刃物台を有する場合には複数の刃物台駆動機構３４を備え、それを複数の刃物台制御部３２によって制御することになる。
【００２６】
次に、このＮＣ工作機械における加工作業を行う各部の配置関係と移動ストロークの例を図５によって説明する。
このＮＣ工作機械は、可動型の主軸として主軸３と背面主軸４をガイドブッシュ５を挟んで対向するように、同一軸線Ｌ上に設置可能に配置している。そして、ガイドブッシュ５は前端面の中心が定点Ｃの位置になるように固定され、素材（棒材）を回転自在に保持する。主軸３は内蔵のチャックで素材を把持して回転させながら定点Ａの位置から軸線Ｌに沿ってストロークＺ１の範囲で移動し、素材をガイドブッシュ５の前端面から突出させる。そして、ガイドブッシュ５の前端面の定点Ｃから距離Ｄ１だけ手前の位置を主軸３の前端の先進限位置とする。
背面主軸４も素材の先端部を把持して回転させることができ、定点Ｂの位置から軸線Ｌに平行にストロークＺ２の範囲で移動可能であり、その前端がガイドブッシュ５の前端面の定点Ｃから距離Ｄ２だけ手前の位置を先進限位置とする。さらに、軸線Ｌに直交する方向にストロークＸ２の範囲で移動可能である。
【００２７】
また、ガイドブッシュ５の上方には複数の工具（バイト）２１を選択可能に保持する第１刃物台６が、下方には複数の工具（ドリル）２２を選択可能に保持する第２刃物台７が、背面主軸４上には複数の工具（ドリル）２３を選択可能に保持する第３刃物台８が、それぞれ設けられている。
第１刃物台６は、工具２１の先端を定点ＤからストロークＸ１の範囲で上下（軸線Ｌに直交する方向）に移動させることができる。
第２刃物台７は、工具２２の先端が軸線Ｌに平行な方向で、背面主軸４の前端面の定点Ｂの位置から距離Ｄ３だけ離れた位置で、図示しない本体ベットに固定されている。
第３刃物台８は、背面主軸４に固着されていて共に移動し、工具２３の先端が背面主軸４の前端面の定点Ｂの位置から距離Ｄ４だけ突出している。
【００２８】
これらの各定点Ａ〜Ｄの位置及び各移動ストロークＺ１，Ｚ２，Ｘ１，Ｘ２は、各種加工パターンに応じて設定される。
部品加工中にこれらの各移動部材が加工プログラムによって制御されて相対移動し、素材を供給して加工するが、その際に相互に干渉（接触）したり、異常接近したり、切削速度が設定速度を越えたりしないようにしなければならない。
そのために、作成した加工プログラムを実際に加工作業を行う前に、シミュレーションを行ってチェックする必要がある。その加工プログラムのシミュレーションを短時間で確実に行えるようにし、その結果を判り易く表示して、チェックやプログラムの修正を容易に行えるようにするのがこの発明の目的である。
【００２９】
図１は、図４に示したＮＣ工作機械１の主として制御部１６によって加工プログラムのシミュレーションを実行する場合の機能構成を示すブロック図である。このシミュレーションを実行するときには、図４に示したモータ制御部３０は動作させず、したがって主軸台駆動機構３３および刃物台駆動機構３４も動作せず、実際の加工作業は行わない。
図１において、４０〜５０と６１，６２は、図４に示した制御部１６の主としてＣＰＵ１７がシミュレーション用プログラムを実行することによって実現する各機能であり、そのシミュレーション用プログラムは、ＲＯＭ１８に格納されているかあるいは外部記憶装置１５からＲＡＭ１９に格納される。５１〜６０はＲＡＭ１９あるいは外部記憶装置１５に記憶されたプログラムや各種のデータである。しかし、これらの機能およびデータの記憶を汎用のパーソナルコンピュータ等の情報処理装置のＣＰＵおよびメモリによって実現することもできる。
【００３０】
図１における機能部としては、加工プログラム解析部４０、実行中プログラム表示処理部４１、異常ブロック判定部４２、変更ブロック判定部４３、座標変換部４５、表示データ作成部４６、干渉判定部４７、異常接近判定部４８、切削速度判定部４９、および構造物描画処理部５０がある。
加工プログラム解析部４０は、図４に示した外部記憶装置１５に格納されている加工プログラムファイル５１から加工プログラムを読み出してＲＡＭ１９に記憶させ、その加工プログラムを１ブロックずつ順次解析し、それを異常ブロック判定部４２および変更ブロック判定部４３および座標変換部４５へ順次送る。また、その解析したブロックを実行中プログラム表示処理部４１へ送る。
【００３１】
実行中プログラム表示処理部４１は、実行中の加工プログラムの中に干渉ブロック５６、異常接近ブロック５７、切削速度異常ブロック５８、または変更ブロック５９に記憶されているブロック番号のブロックがあれば、そのブロックを他のブロックと区別して図４の表示部１４に表示させる。また、加工プログラム解析部４０から解析したブロックが送られて来ると、そのブロックが表示されるように加工プログラムをスクロールし、同じく表示部１４に表示させる。
異常ブロック判定部４２は、ＲＡＭ１９に記憶されている前回のシミュレーション実行によって記憶された干渉ブロック５６、異常接近ブロック５７、および切削速度異常ブロック５８があれば、それらのブロック番号と現在の実行ブロックのブロック番号とを比較して異常ブロックを判定し、異常ブロックと判定した場合、設定されている条件に応じて、続行、スタート待ち、低速への切換えを行う。
【００３２】
変更ブロック判定部４３は、現在の実行ブロックのブロック番号と、ＲＡＭ１９に記憶されている変更ブロック（編集画面で変更したブロック）５９があればそのブロック番号とを比較して、変更ブロックを判定し、変更ブロックと判定した場合、設定されている条件に応じて、続行、スタート待ち、低速への切換えを行う。
一方、予め図４の入力部１３又は外部Ｉ／Ｆに接続されたパーソナルコンピュータなどの外部機器から入力されて、外部記憶装置１５またはＲＡＭ１９に記憶されている機械形状データ５２、素材形状データ５３、ホルダ形状データ５４、および工具形状データ５５を参照して、工作機械構造物データ作成部４４が、図５に示したような工作機械構造物の形状を示すデータを作成する。
【００３３】
座標変換部４５は、加工プログラム解析部４０の解析結果から各部の表示位置を示す座標データに変換する。その座標データと工作機械構造物データ作成部４４で作成したデータとから、表示データ作成部４６が表示部１４に表示させるための表示データを作成する。
その表示データから、干渉判定部４７は部材間の干渉を判定して、干渉があれば干渉ブロック５６としてＲＡＭ１９にそのブロック番号を記憶させる。同様に異常接近判定部４８は、部材間の接近距離を接近許容距離データ６０と比較して異常接近を判定して、異常接近があれば異常接近ブロック５７としてそのブロック番号を記憶させる。さらに、切削速度判定部４９は切削速度を判定し、それが異常（設定されている上限速度を越えている等）であれば、切削速度異常ブロック５８としてブロック番号を記憶させる。
構造物描画処理部５０は、主軸や刃物台等の構造物のシミュレーション画面の描画処理を行う。
【００３４】
加工プログラム編集部６１は、ＮＣ工作機械１の入力部１３からの入力で編集モードになり、編集中プログラム表示処理部６２は、シミュレーション中の加工プログラムの内容を図１９のように編集画面表示する。このとき編集中プログラム表示処理部６２は、干渉ブロック５６、異常接近ブロック５７、切削速度異常ブロック５８に記憶されているブロック番号があればそれを読みとり、それぞれ予め設定された色等があればその色設定に従ってそのブロックを表示する。また、加工プログラム編集部６１は、入力部１３からの入力により変更されたブロックがあればそのブロック番号を変更ブロック５９に書き込んで記憶させる。
これらが、この発明による加工プログラムチェック装置のシミュレーション制御手段とチェック手段と異常ブロック記憶手段に相当する。
【００３５】
次に、このシミュレーションの結果のデータを用いて加工プログラムをチェックするプログラムチェックモードの処理を実行する場合の機能構成を図２によって説明する。
このときは、図１に示したシミュレーション実行時の各機能部のうち、加工プログラム解析部４０、実行中プログラム表示処理部４１、異常ブロック判定部４２、変更ブロック判定部４３、加工プログラム編集部６１、および編集中プログラム表示処理部６２だけを使用し、１ブロック実行処理部６０が追加される。
【００３６】
加工プログラム解析部４０は、加工プログラムファイル５１から加工プログラムを１ブロックずつ読み出して順次解析し、それを異常ブロック判定部４２および変更ブロック判定部４３へ順次送る。また、その解析を実行中のプログラムを、実行中プログラム表示処理部４１によって表示データを作成して図４の表示部１４に表示させる。
このとき実行中プログラム表示処理部４１は、干渉ブロック５６，異常接近ブロック５７，切削速度異常ブロック５８，変更ブロック５９に記憶されているブロック番号を読み取り、そのブロック番号のブロックのプログラムをそれぞれ予め設定された色等があればその色設定に従ってそのブロックを表示する。
【００３７】
異常ブロック判定部４２は、現在の実行ブロックのブロック番号とシミュレーション実行結果のブロックである干渉ブロック５６、異常接近ブロック５７、および切削速度異常ブロック５８に記憶されているブロック番号とを比較して異常ブロックを判定し、異常ブロックであると判定した場合には、設定されている条件に応じて、スタートキー待ち、低速への切換え、ハンドルモードに切換えのいずれかを行う。
【００３８】
変更ブロック判定部４３は、現在の実行ブロックのブロック番号と、変更ブロック（編集画面で変更したブロック）５９に記憶されているブロック番号とを比較して、変更ブロックであると判定した場合には、設定されている条件に応じて、スタートキー待ち、低速への切換え、ハンドルモードに切換えのいずれかを行う。
そして、この異常ブロック判定部４２と変更ブロック判定部４３の判定結果に応じて、１ブロック実行処理部６０が加工プログラムを１ブロック実行する。
加工プログラム編集部６１、および編集中プログラム表示処理部６２による処理は、図１によって説明したとおりである。
上記の処理の処理を加工プログラムの最後まで実行する。
【００３９】
次に、上述したＮＣ工作機械によるシミュレーションの準備段階から生産運転までの処理の流れを、図６から図９のフローチャートと図１０以降の形状データや表示画面の図を参照して説明する。
図６は、上述したＮＣ工作機械によるシミュレーションの準備段階から生産運転までの処理の流れを示すメインルーチンのフローチャートである。
この図６に示す処理を開始すると、まずステップＳ１〜Ｓ４で図４に示した入力部又は外部Ｉ／Ｆに接続されたパーソナルコンピュータ等の外部機器から入力される機械形状データ、素材形状データと材質データ、ホルダ形状データ、および工具形状データと切削条件データを順次入力して、図４に示したＲＡＭ１９又は外部記憶装置１５（以下単に「メモリ」と称す）に記憶する。
【００４０】
ここで、機械形状データとは、例えば図１１に示すようなこのＮＣ工作機械を構成する部分（主軸を含む）の形状を示すデータである。
工具形状データとは、例えば図１２に示すような加工に使用する工具（バイトやドリル）の形状を示すデータである。
ホルダ形状データとは、工具を保持する刃物台の形状を示すデータであり、例えば図１３に示すような形状のデータである。
図１４は、工具とホルダを組みあわせた状態、すなわち工具をホルダに取付けた状態の一例を示す形状データである。
【００４１】
素材形状データは、丸材の場合は直径、パイプ材の場合は直径（外径）と穴径（内径）、六角材のような異形材の場合は直径と角数のデータである。
材質データは、アルミニウムやステンレス鋼などの素材（ワーク）の材質のデータである。
切削条件データは、素材（ワーク）の材質と工具の種類によって決まり、それぞれの工具に対して、ワークの材質毎に設定される切削速度の範囲や送り速度の範囲などの切削条件のデータである。
【００４２】
次に、ステップＳ５でＮＣ加工プログラムを入力する。このＮＣ加工プログラムは、図４に示した入力部１３から入力するか、図示しない自動プログラミング装置やパーソナルコンピュータで作成され、その加工プログラムファイルが図４に示した外部Ｉ／Ｆ２８から入力されて外部記憶装置１５および／またはＲＡＭ１９（メモリ）に記憶されるか、フロッピディスクや光磁気ディスク等の記憶媒体に格納されて外部記憶装置１５に装填され、そこから読み込まれる。
その後ステップＳ６で、異常接近を判断するための接近許容距離のデータを図４に示した入力部１３から入力する。
【００４３】
次いで、ステップ７で、図４に示した表示部に図１５に示すような設定条件入力用画面を表示して、変更ブロック、干渉ブロック、異常接近ブロック、および切削速度異常ブロックのそれぞれに対して運転の条件、すなわち、「続行」、「一時停止」、「低速」のいずれかの選択（後出の「設定条件」）と、画面上の表示色（緑、赤、黄、青など）の設定を行わせる。図１５に示す例では黒丸で示されている条件が設定され、色設定の枠内に表示されている色が設定されている。これらの設定データもメモリに記憶する。
【００４４】
そして、ステップＳ８でシミュレーションを実行する。このシミュレーション実行のサブルーチンの詳細を、図７および図８に示すフローチャートによって説明する。
まず、図７のステップＳ２０で、加工プログラムを設定条件に従って色分けやマーキング等を行って表示する。
そして、ステップＳ２１でその加工プログラムを最初から１ブロックずつ解析し、座標軸動作データをメモリに記憶する。
【００４５】
次いで、ステップＳ２２で加工プログラムの実行ブロックを表示し、ステップＳ２３で現在の実行ブロックのブロック番号と前回のシミュレーション実行結果の干渉ブロック、異常接近ブロック、および切削速度異常ブロックの各ブロック番号とを比較する。
そして、ステップＳ２４でそのいずれかのブロックと一致するか否かを判別し、一致すればステップＳ２５でその異常ブロックに対する図１５に示したような設定条件を判別する。
【００４６】
その設定条件が「続行」であればシミュレーション動作をそのまま続行し、「低速」であればステップＳ２６でシミュレーション動作を低速に切換え、「一時停止」であればステップＳ２７でシミュレーション動作を一旦停止してスタートキーが押されるのを待ち、いずれの場合もステップＳ２９へ進む。ステップ２５の判断でどの異常ブロックとも一致しなかった場合も、そのままステップＳ２８へ進む。
ステップＳ２８では、現在の実行ブロックのブロック番号と編集画面で変更した変更ブロックのブロック番号とを比較し、ステップＳ２９でブロックが一致するか否かを判別する。一致すればステップＳ３０で変更ブロックに対する設定条件を判別する。
【００４７】
その設定条件が「続行」であればシミュレーション動作をそのまま続行し、「低速」であればステップＳ３１でシミュレーション動作を低速に切換え、「一時停止」であればステップＳ３２でシミュレーション動作を一旦停止してスタートキーが押されるのを待ち、いずれの場合もステップＳ３３へ進む。ステップＳ２９の判断で変更ブロックと一致しなかった場合も、そのままステップＳ３３へ進む。そして、ステップＳ３３では先にメモリに記憶した座標軸動作データを参照して、工作機械構造物データの表示のための座標変換を行う。
次いで、ステップＳ３４でシミュレーション画面を描画し、表示部１４の表示画面に、図１６に示すように実行中の加工プログラムを表示したり、図１７又は図１８に示すように加工状態をグラフィック表示することができる。
【００４８】
その後、図８のステップＳ３５へ進んで干渉判断の計算をする。そして、ステップＳ３６で干渉の有無を判断する。形状データでオーバラップをチェックし、「工具同士の接触（オーバラップ）」や「工具の刃先以外の部分とワークとの接触」などを干渉として判断する。そして、干渉があればステップＳ３７で干渉ブロックのブロック番号をメモリに記憶する。
次いで、ステップＳ３８で干渉ブロックの設定条件を判断し、その設定条件が「続行」であればシミュレーション動作をそのまま続行し、「低速」であればステップＳ３９でシミュレーション動作を低速に切換え、「一時停止」であればステップＳ４０でシミュレーション動作を一旦停止してスタートキーが押されるのを待ち、いずれの場合もステップＳ５３へ進む。
【００４９】
ステップ３６の判断で干渉がなければステップＳ４１へ進み、異常接近か否かを判断する。すなわち、工具同士の距離や、工具の刃先以外の部分とワークとの距離が異常に小さくなった場合、あるいは工具形状に接近許容距離分だけ外形をふくらませたバリヤを作り、それとの接触をチェックすることによって異常接近を判断する。そして、異常接近であれば、ステップＳ４２で異常接近ブロックのブロック番号をメモリに記憶する。
【００５０】
次いで、ステップＳ４３で異常接近ブロックの設定条件を判断し、その設定条件が「続行」であればシミュレーション動作をそのまま続行し、「低速」であればステップＳ４４でシミュレーション動作を低速に切換え、「一時停止」であればステップＳ４５でシミュレーション動作を一旦停止してスタートキーが押されるのを待ち、いずれの場合もステップＳ４６へ進む。
ステップＳ４６では材料を切削しているか否かを判断し、切削していればステップＳ４７で切削速度判断の計算をする。そして、ステップＳ４８で切削速度異常か否かを判断する。すなわち、素材（ワーク）の材質と工具の種類に応じた切削条件に対して、切削速度や送り速度がその上限を超えた場合に切削速度異常と判断する。そして、切削速度異常であればステップＳ４９で切削速度異常ブロックのブロック番号をメモリに記憶する。
【００５１】
次いで、ステップＳ５０で切削速度異常ブロックの設定条件を判断し、その設定条件が「続行」であればシミュレーション動作をそのまま続行し、「低速」であればステップＳ５１でシミュレーション動作を低速に切換え、「一時停止」であればステップＳ５２でシミュレーション動作を一旦停止してスタートキーが押されるのを待ち、いずれの場合もステップＳ５３へ進む。
ステップＳ４８で切削速度異常でなかった場合もステップＳ５３へ進んで、加工プログラムの最後まで実行したか否かを判断する。
その結果、最後まで実行していなければ図７のステップＳ２１へ戻って、加工プログラムの次のブロックについて以後の処理を繰り返す。
【００５２】
加工プログラムの最後まで実行すると、図６のメインルーチンへリターンする。そして、次にステップＳ９で加工プログラムの修正が必要か否かを判断し（図３，図４に示した入力部１３からの修正指示の有無により判断する）、修正の必要がなければそのままステップＳ１４へ進み、修正が必要であればステップＳ１０へ進んで編集画面を起動する。
そして、ステップＳ１１でその編集画面に図１９に示すように加工プログラムを表示し、シミュレーション結果の情報を取り込んで、異常ブロックについては色分け表示やマーキング表示を行って、そのブロックが一目で判るようにする。図１５では色わけの表示はされていないが、図１４に示した色設定がなされていれば、干渉ブロックは赤色、異常接近ブロックは黄色、切削速度異常ブロックは青色で表示する。
【００５３】
それによって、ステップＳ１２でプログラマに加工プログラムの修正を行わせ、修正が済むとステップＳ１３でその修正した変更ブロックのブロック番号をメモリに記憶する。その後、加工プログラムを表示する場合には変更ブロックは緑色で表示する。
そして、ステップＳ８に戻り、再び前述したシミュレーションを実行する。
ステップＳ９で加工プログラムの修正が必要でないと判断すると、ステップＳ１４へ進み、工作機械をプログラムチェックモードで運転する。その際、異常接近ブロックや切削速度異常ブロックの直前で警告メッセージを表示する。
【００５４】
このプログラムチェックモードの運転のサブルーチンについて、図９のフローチャートによって詳述する。
まず、ステップ６０で加工プログラムを設定条件に従って、色分けやマーキング等を行って表示する。次いでステップＳ６１で、加工プログラムを最初から１ブロックずつ解析する。そして、ステップＳ６２で加工プログラムの実行ブロックを表示する。
次に、ステップＳ６３で現在の実行ブロックのブロック番号とシミュレーション実行結果の干渉ブロック、異常接近ブロック、および切削速度異常ブロックの各ブロック番号とを比較する。そして、ステップＳ６４でそのいずれかのブロックと一致するか否かを判別し、一致すればステップＳ６５でその異常ブロックに対する設定条件を判別する。
【００５５】
その設定条件が「一時停止」であればステップＳ６６で運転を一旦停止してスタートキーが押されるのを待ち、「低速」であればステップＳ６６で運転を低速に切換え、「ハンドル」であればステップＳ６８で運転をハンドルモードに切換え、いずれの場合もステップＳ６９へ進む。ステップＳ６４の判断でどの異常ブロックとも一致しなかった場合も、そのままステップＳ６９へ進む。
ステップＳ６９では、現在の実行ブロックのブロック番号と編集画面で変更したブロックのブロック番号とを比較し、ステップＳ７０でブロックが一致するか否かを判別する。一致すればステップＳ７１で変更ブロックに対する設定条件を判別する。
【００５６】
その設定条件が「一時停止」であればステップＳ７２で運転を一旦停止してスタートキーが押されるのを待ち、「低速」であればステップＳ７３で運転を低速に切換え、「ハンドル」であればステップＳ７４で運転をハンドルモードに切換え、いずれの場合もステップＳ７５へ進む。ステップ７０の判断で変更ブロックと一致しなかった場合も、そのままステップＳ７５へ進む。
そのステップＳ７５で加工プログラムを１ブロック実行する。その後、ステップＳ７６で加工プログラムの最後まで実行したか否かを判断し、最後まで実行していなければステップＳ６１へ戻って、加工プログラムの次のブロックについて上述の処理を繰り返す。ステップＳ７６で最後まで実行したと判断すると、図６のメインルーチンへリターンする。
【００５７】
次に、図６のステップＳ１５で異常無しか否かを判断し、異常無しであればステップＳ１７の工作機械の生産運転（実際に部品加工を行う運転）へ進むが、異常無しでなければ、ステップＳ１６で再シミュレーションが必要か否かを判断し（図３，図４に示した入力部１３からの再シミュレーション指示の有無により判断する）、再シミュレーションが必要であればステップＳ８へ戻って、シミュレーションを再度実行する。再シミュレーションが必要でなければ、ステップＳ１０へ戻って編集画面を起動し、加工プログラムの修正作業を再び行う。
ステップＳ１７では、チェック済みの加工プログラムによって工作機械の生産運転を行い、その生産運転が終了すればこの加工プログラムの処理を終了する。
【００５８】
なお、図６における編集処理のステップＳ１１〜Ｓ１３をより詳細に示すと、図１０に示すようになる。
すなわち、編集画面が起動すると、まずステップＳ１０１で、加工プログラムを設定条件に従って、干渉ブロック、異常接近ブロック、および切削速度異常ブロックに対して色分けやマーキング等を行って表示する。
そして、ステップＳ１０２で入力部１３からプログラム修正のための入力があると、ステップＳ１０３で加工プログラムを変更し、ステップ１０４でその変更プロックのブロック番号をメモリに記憶させる。
ステップＳ１０５で編集終了（入力部１３からの編集終了の指示がある）と判断するまで、ステップＳ１０２〜Ｓ１０５の処理を繰り返しでプログラムの編集をする。そして、ステップＳ１０５で編集終了と判断すると、ステップＳ１０６へ進んで、編集済みの加工プログラムをメモリに記憶して、図６のメインルーチンへリターンする。
【００５９】
ここまでは単系統（すなわち１本の加工プログラムの指令をシリアルに実行する。）の加工プログラムで数値制御工作機械を制御する例で、シミュレーションを１ブロックずつ実行する場合について説明してきた。
しかしながら、図５に示すような複数の主軸と複数の刃物台を持つ工作機械では、通常図１６の下側に示した加工プログラム例のように複数の系統の加工プログラムにより、それぞれの系統の加工プログラムを並行して同時に実行し、複数の制御軸を互いに関連させて制御することが多い。図１６の例では現在実行中のブロックでは左側の系統ではＸ２，Ｚ１，Ｃ１の各軸を、中央の系統ではＸ１，Ｙ１の各軸を、右側の系統ではＸ３，Ｚ３，Ｃ２の各軸をそれぞれ必要に応じて補間を取りながら制御している。この場合、各系統で同時に動作を指令する複数のブロックは同時にシミュレーションを行い、各系統で指令されて同時に動作する刃物台等が干渉や異常接近しないかのチェックを行う。
【００６０】
図１６〜図２０は、図４に示した表示部１４によって表示される画面の例を示す図であり、図１６はシミュレーション実行中のプログラム表示画面の例、図１７はシミュレーション実行中の工作機械構造物の状況を示す表示画面の例、図１８はシミュレーション実行中のプログラム表示画面上に工作機械構造物の状況を示す表示画面が重なって表示された例をそれぞれ示す。この構造物（各主軸及び素材と各刃物台とそれに取付けられている工具など）の各部の相対的な動きによって、実際に加工作業を行わなくても、実際の動きに近い情況を見ながらシミュレーションすることができる。また、干渉ブロック、異常接近ブロック、切削速度異常ブロックなどの異常ブロックの手前で、自動的に低速運転に切換えたり、一時停止したりすることにより、表示画面の動きも低速になったり一時停止するので、その状況の確認を容易に行うことができる。
【００６１】
図１６に示すシミュレーション実行中のプログラム表示では色分け表示がなされていないが、図１５に示した色設定がなされていれば、干渉ブロックは赤色、異常接近ブロックは黄色、切削速度異常ブロックは青色で表示する。また、編集画面でプログラムが変更されたブロック（変更ブロック）があればそれを緑色で表示する。
図１９は、図６のステップＳ１０で表示する加工プログラム編集画面の例を示す図である。ここでは、干渉ブロック、異常接近ブロック、切削速度異常ブロックが、前述のように予め設定された異なる色で表示され、それらの異常ブロックが一目で判るように表示される。したがって、加工プログラム中の異常ブロックの確認および修正を容易に行うことができる。
【００６２】
シミュレーション実行中のプログラム表示および編集画面での加工プログラムの表示において、異常ブロックや変更ブロックを他のブロックと区別して表示する方法としては、上述した色分け表示のほかに、マーキング表示や網掛け表示（異常の種類によってマークや網目の種類や粗さを変える）、字体の変更などを行う方法もある。
図２０は、工作機械のプログラムチェックモード実行中のプログラム表示画面の例を示す。この場合も干渉ブロック、異常接近ブロック、切削速度異常ブロック、およびプログラムの修正がなされた変更ブロックは、予め設定された異なる色で表示されるか異なるマーキングあるいは網掛けなどによって他のブロックと区別して表示され、注意が必要なブロックが一目で判るように表示される。
【００６３】
上述した実施形態では、図６〜図１０のフローチャートによって説明したこの発明によるシミュレーションの実行および工作機械のプログラムチェックモードでの運転を、全て図３及び図４に示したＮＣ工作機械１（主として制御部１６）によって行う例を中心に説明したが、ＮＣ工作機械にパーソナルコンピュータを併設してそれを用いたり、別のパーソナルコンピュータ等の情報処理装置を用いても、上述したシミュレーションを実行することができる。そのためには、使用するパーソナルコンピュータにこの発明によるＮＣ加工プログラムのシミュレーション用プログラムをインストールして、図１に示した各機能を持つようにすればよい。
【００６４】
その場合には、図６に示したフローチャートの処理のうち、ステップＳ１からステップＳ１３まではパーソナルコンピュータで行い、シミュレーションの終了後、その結果のデータを加工プログラムと共にインタフェースを通して直接ＮＣ工作機械側へ転送するか、あるいはフロッピディスクや光磁気ディスクなどの情報記録媒体に書き込んで、その情報をＮＣ工作機械側に外部記憶装置で読み出して使用する。
【００６５】
それによって、ＮＣ工作機械側で、図９のフローチャートによって説明した図６のステップＳ１４の工作機械のプログラムチェックモードでの運転を実行することができる。その結果異常があった場合には、そのＮＣ加工プログラムを再びパーソナルコンピュータ側へ転送するかあるいは情報記録媒体を介して伝達し、その加工プログラムについて再度シミュレーションを実行したり、異常ブロックのプログラムの修正を行ったりすることができる。このような作業を繰り返すことによって、より完全なＮＣ加工プログラムを完成させることができる。
図６におけるステップＳ１７の「工作機械で生産運転」は、当然ながらＮＣ工作機械で実行する。
【００６６】
ここでは、外部のパーソナルコンピュータとＮＣ制御装置が分かれている場合の例について述べたが、最近ではパソコンＮＣと呼ばれるＮＣ制御装置内にパーソナルコンピュータ部を持つ制御装置が多くなってきている。この場合には、ここまで述べてきた外部のパーソナルコンピュータで行っていたことを、内部のパーソナルコンピュータ部に置き換えて行うことが出来る。
【００６７】
【発明の効果】
以上説明してきたように、この発明によれば、加工プログラムのシミュレーションをＮＣ工作機械自体によっても、あるいはパーソナルコンピュータ等の汎用装置を使用しても行うことができ、実機での加工プログラムのチェック時間を短縮することができる。しかも、加工プログラムの異常部分の検出とその修正を迅速且つ容易に行うことができる。また、ＮＣ工作機械上でのチェックモードの運転も能率よく、しかも問題がありそうな箇所の確認を確実に行うことができる。
【図面の簡単な説明】
【図１】この発明によるＮＣ工作機械の制御部によって加工プログラムのシミュレーションを実行する場合の機能構成を示すブロック図である。
【図２】この発明によるＮＣ工作機械の制御部によってプログラムチェックモードの処理を実行する場合の機能構成を示すブロック図である。
【図３】この発明を実施するＮＣ工作機械の一例を示す正面図である。
【図４】同じくそのＮＣ工作機械の制御に係わるハード構成を示すブロック図である。
【図５】同じくそのＮＣ工作機械における加工作業を行う各部の配置関係と移動ストロークの例を説明するための図である。
【図６】この発明によるＮＣ工作機械によるシミュレーションの準備段階から生産運転開始までの処理の流れを示すメインルーチンのフロー図である。
【図７】図６におけるシミュレーション実行のサブルーチンのフロー図である。
【図８】同じくその続きのフロー図である。
【図９】図６における工作機械のプログラムチェックモードで運転のサブルーチンのフロー図である。
【図１０】図６におけるステップＳ１１〜Ｓ１３に相当する編集処理の詳細例を示すフロー図である。
【図１１】機械形状データの一例を示す斜視図である。
【図１２】工具形状データの一例を示す斜視図である。
【図１３】ホルダ形状データの一例を示す斜視図である。
【図１４】工具とホルダを組み合わせた状態の形状データの一例を示す斜視図である。
【図１５】各種の異常ブロックに対する設定条件入力用画面の一例を示す図である。
【図１６】シミュレーション実行中のプログラム表示画面の例を示す図である。
【図１７】シミュレーション実行中の工作機械構造物の表示画面の例を示す図である。
【図１８】シミュレーション実行中のプログラム表示画面上に工作機械構造物の表示画面が重なって表示される例を示す図である。
【図１９】加工プログラム編集画面の例を示す図である。
【図２０】工作機械のプログラムチェックモード実行中のプログラム表示画面の例を示す図である。
【符号の説明】
１：数値制御工作機械    ３：主軸
４：背面主軸      ５：ガイドブッシュ
６：第１刃物台    ７：第２刃物台
８：第３刃物台    １１：機械本体
１２：操作盤      １３：入力部
１４：表示部      １５：外部記憶装置
１６：制御部      ２１：工具（バイト）
２２，２３工具（ドリル）
２８：外部インタフェース    ２９：バス
３０：モータ制御部    ３１：主軸制御部
３２：刃物台制御部    ３３：主軸駆動機構
３４：刃物台駆動機構
【図１】
0004011372.tif 000002
【図２】
0004011372.tif 000003
【図３】
0004011372.tif 000004
【図４】
0004011372.tif 000005
【図５】
0004011372.tif 000006
【図６】
0004011372.tif 000007
【図７】
0004011372.tif 000008
【図８】
0004011372.tif 000009
【図９】
0004011372.tif 000010
【図１０】
0004011372.tif 000011
【図１１】
0004011372.tif 000012
【図１２】
0004011372.tif 000013
【図１３】
0004011372.tif 000014
【図１４】
0004011372.tif 000015
【図１５】
0004011372.tif 000016
【図１６】
0004011372.tif 000017
【図１７】
0004011372.tif 000018
【図１８】
0004011372.tif 000019
【図１９】
0004011372.tif 000020
【図２０】
0004011372.tif 000021