(57)【要約】【課題】各々非同期で動作する複数のシステムを1つの制御装置として動作させる際の安全性を高めた数値制御システムを提供する。【解決手段】数値制御装置は、プログラムを解釈して生成した指令に指令番号を付与して出力し、指令を衝突検知システムに送信するとともに衝突検知システムからのチェック結果データを受信し、指令バッファ部に保管されている指令のうちチェック結果データが得られた指令の個数が予め設定された第２の閾値以上のとき、チェック結果データを分析して衝突可能性がないとき、チェック結果データに付与されている指令番号を出力する機械制御システムと、連携データ送受信部から受信した指令の衝突可能性のチェックをした結果を返信するとき、チェック結果データにチェックした指令に付与されている指令番号を付与して連携データ送受信部に返信する衝突検知システムとを備える。【選択図】図１
2008129994.tif 000002
【特許請求の範囲】
【請求項１】
一定周期で機械を制御する機械制御システムと、上記機械制御システムとは異なる周期または刻々変動する周期で動作し上記機械を動作する指令の衝突可能性をチェックする衝突検知システムとが互いに連携して動作する数値制御システムにおいて、
上記機械制御システムは、
上記機械を動作するためのプログラムを解釈して、上記機械への制御単位の指令を生成するとともに該指令に制御単位で一意に上記プログラムの実行箇所を特定する指令番号を付与して出力する指令生成部と、
上記指令生成部から出力される指令を所定の個数保管する指令バッファ部と、
上記指令バッファ部に保管されている指令の１つを複製して上記衝突検知システムに送信するとともに上記衝突検知システムから上記指令の衝突可能性に関するチェック結果データの返信があった場合、該チェック結果データを転送する連携データ送受信部と、
上記連携データ送受信部から転送されたチェック結果データを保管するチェック結果データバッファ部と、
上記指令バッファ部に保管されている指令のうちチェック結果データが得られた指令の個数が予め設定された第２の閾値以上のとき、上記チェック結果データバッファ部に保管されているチェック結果データのうち最も早く保管されたチェック結果データを分析し、且つ上記チェック結果データを分析して衝突可能性がないとき、該チェック結果データに付与されている指令番号を出力する指令出力判定部と、
上記指令出力判定部から指令番号が出力されたとき該指令番号の指令を上記指令バッファ部から取り出して上記機械の適用し、また、上記指令出力判定部から指令番号の出力がないとき上記機械を一時停止して減速もしくは停止する機械駆動部と、
が搭載され、
上記衝突検知システムは、
上記連携データ送受信部から受信した指令の衝突可能性をチェックするとき、チェック結果データにチェックした指令に付与されている指令番号を付与して上記連携データ送受信部に返信することを特徴とする数値制御システム。
【請求項２】
上記指令番号は、１つの上記プログラムを実行している間、上記プログラムの命令を解釈する順番に生成された連番であることを特徴とする請求項１に記載の数値制御システム。
【請求項３】
上記指令番号は、１つの上記プログラムを実行している間、上記プログラムの命令の順番を示す番号と、各上記プログラムの命令を解釈する順番を示す番号とを組合せたデータであることを特徴とする請求項１に記載の数値制御システム。
【請求項４】
上記連携データ送受信部は、上記指令バッファ部に保管された指令のうち、チェック未実施の指令の数が予め設定された第１の閾値以上になったとき、最後に上記指令バッファ部に保管された最新の指令を上記衝突検知システムに送信することを特徴とする請求項１に記載の数値制御システム。
【請求項５】
上記連携データ送受信部は、上記衝突検知システムに前回送信した指令と最後に上記指令バッファ部に保管された最新の指令の間の距離が予め設定された第１の閾値以上になったとき、最後に上記指令バッファ部に保管された最新の指令を上記衝突検知システムに送信することを特徴とする請求項１に記載の数値制御システム。
【請求項６】
上記指令生成部は、上記機械への指令を生成するとき、生成した指令の元となった上記プログラム単位の命令種別も上記指令と共に出力し、
上記指令出力判定部は、上記衝突検知システムから返信された最新のチェック結果データに付与された指令番号と上記機械駆動部から出力する指令に付与された指令番号とを比較し、上記衝突検知システムに処理遅延が発生する可能性があると判断し、且つ上記指令バッファ部内に切削送り命令以外の命令がある場合には、切削送り命令以外の命令内の指令の出力を所定時間停止し、また上記衝突検知システムに処理遅延が発生する可能性があると判断した場合には、チェックが終了するまで注意命令の実行を停止することを特徴とする請求項１に記載の数値制御システム。
【請求項７】
上記衝突検知システムは、衝突可能性が有ると検知した指令に対するチェック結果データを送信した後、上記連携データ送受信部から送信されてきた指令に対して衝突可能性の検知を行わないまたはチェック結果データを返信しないことを特徴とする請求項１に記載の数値制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、制御周期が異なる複数のシステムからなる数値制御システムに関するものである。
【背景技術】
【０００２】
近年の数値制御装置は、数値制御装置の主要機能である、機械を制御している制御システムと、工作機械を動作させるためのプログラム作成、パラメータ設定、工具データ設定などを行うための入出力機能を提供する操作系システムから構成させ、それらが連携して数値制御システムとして機能するものがある（例えば、特許文献１参照）。
このような数値制御システムでは、２つのシステム間でデータ送受信が行われている。特許文献１においては、機械を制御している制御部と、その外部にある操作部とが接続されており、制御部から操作部に処理要求を出したときに受信しなければ異常が発生しているとみなしている。
ところで、数値制御装置には、従来から機械部位、工具、治具、素材間の衝突を、計算機内で形状データを用いてチェックし、衝突を防ぐ衝突防止機能が備えられている（例えば、特許文献２参照）。
そして、従来では２次元平面内の形状を用いて衝突チェックを行っていたが、近年３次元の形状データを用いてチェックを行うようになってきている（例えば、特許文献３参照）。
【０００３】
【特許文献１】特開２００２−１０８４２３号公報
【特許文献２】特開平５−８１５２号公報
【特許文献３】特開平９−２３０９１８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１のような数値制御装置では、操作部が受信したかしないかのみを判断基準としているためシステム異常しか判定できないという問題がある。
また、特許文献２のような数値制御システムでは、３次元形状を用いて高精度な衝突検知を行おうとして現実の機械を精度良く表現しようとするほど処理時間を多大に要し、その場合、システム異常をきたすという問題がある。
また、工具と素材が接している場合に衝突検知の処理時間が多大に要する状態に陥ると、加工物に傷が付いたり、工具が折損したりするという問題がある。
【０００５】
この発明の目的は、各々非同期で動作する複数のシステムを1つの制御装置として動作させる際の安全性を高めた数値制御システムを提供することである。
【課題を解決するための手段】
【０００６】
この発明に係る数値制御システムは、一定周期で機械を制御する機械制御システムと、上記機械制御システムとは異なる周期または刻々変動する周期で動作し上記機械を動作する指令の衝突可能性をチェックする衝突検知システムとが互いに連携して動作する数値制御システムにおいて、上記機械制御システムは、上記機械を動作するためのプログラムを解釈して、上記機械への制御単位の指令を生成するとともに該指令に制御単位で一意に上記プログラムの実行箇所を特定する指令番号を付与して出力する指令生成部と、上記指令生成部から出力される指令を所定の個数保管する指令バッファ部と、上記指令バッファ部に保管されている指令の１つを複製して上記衝突検知システムに送信するとともに上記衝突検知システムから上記指令の衝突可能性に関するチェック結果データの返信があった場合、該チェック結果データを転送する連携データ送受信部と、上記連携データ送受信部から転送されたチェック結果データを保管するチェック結果データバッファ部と、上記指令バッファ部に保管されている指令のうちチェック結果データが得られた指令の個数が予め設定された第２の閾値以上のとき、上記チェック結果データバッファ部に保管されているチェック結果データのうち最も早く保管されたチェック結果データを分析し、且つ上記チェック結果データを分析して衝突可能性がないとき、該チェック結果データに付与されている指令番号を出力する指令出力判定部と、上記指令出力判定部から指令番号が出力されたとき該指令番号の指令を上記指令バッファ部から取り出して上記機械の適用し、また、上記指令出力判定部から指令番号の出力がないとき上記機械を一時停止して減速もしくは停止する機械駆動部と、が搭載され、上記衝突検知システムは、上記連携データ送受信部から受信した指令の衝突可能性をチェックするとき、チェック結果データにチェックした指令に付与されている指令番号を付与して上記連携データ送受信部に返信する。
【発明の効果】
【０００７】
この発明に係わる数値制御システムの効果は、制御周期に比して処理時間が大きくなりがちな衝突検知システムを用いた数値制御システムにおいて、衝突検知システムからの応答が遅れた場合や、通信障害が発生した場合でも安全に機械を停止することができることである。
【発明を実施するための最良の形態】
【０００８】
実施の形態１．
図１は、この発明の実施の形態１に係わる数値制御システムの構成を示すブロック図である。
この発明の実施の形態１に係わる数値制御システムは、一定周期で機械を制御する機械制御システム１と、機械制御システム１とは異なる周期または刻々変動する周期で動作する衝突検知システム２とを備え、互いに連携して動作する。
機械制御システム１は、プログラム記憶部１１、指令生成部１２、指令バッファ部１３、連携データ送受信部１４、チェック結果データバッファ部１５、指令出力判定部１６、機械駆動部１７を有する。
【０００９】
また、機械制御システム１は、直近の機械制御システム１の制御周期（以下、制御周期と称す）において生成した指令に割り当てた指令番号（以下、保管指令番号と称す）を保持する保管指令番号レジスタ３１、指令バッファ部１３のデータムの残りの個数（以下、指令バッファ残数と称す）を保持する指令バッファ残数レジスタ３２、直近に衝突検知システム２に衝突可能性のチェックを依頼した指令の指令番号（以下、依頼済指令番号と称す）を保持する依頼済指令番号レジスタ３３、衝突検知システム２において直近に衝突可能性のチェックが完了した指令の指令番号（以下、チェック済指令番号と称す）を保持するチェック済指令番号レジスタ３４、指令バッファ部１３に保管されている次の制御周期で機械駆動部１７に出力する指令に付与されている指令番号（以下、出力指令番号と称す）を保持する出力指令番号レジスタ３５を有する。
【００１０】
プログラム記憶部１１は、入力手段２１から入力された加工プログラムを記憶する記憶媒体である。
指令生成部１２は、プログラム記憶部１１に記憶された加工プログラムを解釈して、制御単位の指令を生成する。なお、制御単位の指令は、加工プログラム中に記述された移動命令が示す経路上を工具が移動するように、図２に示すように、予め設定された制御周期毎の経路上の位置からなる機械各軸の移動指令と、工具交換指令、旋削主軸回転指令などのような軸移動を伴わない非移動指令とからなる。
【００１１】
なお、この発明の説明においては、加工プログラム内に記述されている単位の命令を単に「命令」または「プログラム命令」と称す。また、制御単位の指令を「指令」、移動命令が成す線分を制御周期で進める長さで分割（補間）して得られる位置からなる機械各軸の移動指令を「移動指令」と称する。
また、指令生成部１２は、制御単位の指令を指令バッファ部１３に出力するとき、制御単位で一意にプログラムの実行箇所を特定するデータとして、プログラム開始時から生成した指令を順にカウントした番号を指令に付与する。この番号を、以後単に「指令番号」と称し、指令バッファ部１３に指令を出力する度に保管指令番号レジスタ３１をインクリメントし、指令バッファ残数レジスタ３２をディクリメントする。
このように指令番号を命令を解釈して指令を生成する度に連番の番号を生成して付与するので、簡単に昇り順で一意の番号を指令に付与することができる。
【００１２】
なお、制御単位で一意にプログラムの実行箇所を特定するデータの他の形態として、図３に示すように、プログラムの先頭の命令から順次命令の数をカウントした番号と、１つのプログラム命令毎にそのプログラム命令に対して初めて生成された移動指令から順次指令の数をカウントした番号の２つからなるデータであっても良い。
【００１３】
また、制御単位で一意にプログラムの実行箇所を特定するデータの他の形態として、プログラムの先頭の命令から順次命令の数をカウントした番号と、１つのプログラム命令毎にそのプログラム命令に対して初めて生成された移動指令から順次算出した、プログラム命令の示す端点から指令までの距離の２つからなるデータであっても良い。
このように、プログラム内の命令順番と、命令内に閉じた距離もしくは順番によって特定できるため、オーバーフローする恐れが無くなる。
【００１４】
指令バッファ部１３は、機械駆動部１７が取り出す前に指令を衝突検知システム２で衝突チェックするために、一時的に指令番号が付与された指令を保管しておくＭ個のデータムである。この指令バッファ部１３では、機械駆動部１７が指令を取り出すことによりその指令が保管されていたデータムが空になる。そして、指令バッファ残数レジスタ３２はデータムが空になる度にインクリメントされる。
【００１５】
連携データ送受信部１４は、保管指令番号から依頼済指令番号を減算して得られた差が予め設定された第１の閾値以上のとき、指令バッファ部１３に保管された指令のうち依頼済指令番号に第１の閾値を加算して得られた指令番号の指令を衝突検知部２３に送信し、且つ、送信した指令に付与されている指令番号を依頼済指令番号レジスタ３３に保持する。
また、連携データ送受信部１４は、衝突検知部２３が返信してくる指令番号が付与されたチェック結果データを受信し、且つ、受信したチェック結果データをチェック結果データバッファ部１５の最後尾のデータムに追加する。このとき、チェック済指令番号レジスタ３４に追加したチェック結果データに付与されている指令番号を保持する。
【００１６】
指令出力判定部１６は、チェック済指令番号から出力指令番号を減算して得られた差が第２の閾値以上のとき、最も指令番号の小さいチェック結果データをチェック結果データバッファ部１５から取り出し、分析して衝突可能性を判断して衝突の可能性がない場合機械駆動部１７に分析したチェック結果データに付与された指令番号を出力する。このとき、出力指令番号レジスタ３５を出力した指令番号をインクリメントして更新する。
他方、指令出力判定部１６は、反対に衝突の可能性があると判断した場合には、チェック結果データに付与されている指令番号を機械駆動部１７に出力しない。このとき、出力指令番号レジスタ３５をインクリメントして更新する。
【００１７】
機械駆動部１７は、指令出力判定部１６から出力された指令番号の指令を指令バッファ部１３から取り出して機械各軸の移動に適用する。
また、機械駆動部１７は、指令出力判定部１６からの指令番号が送られてこないときには、加減速フィルタ処理を施し機械を減速し最後には完全に停止する。
【００１８】
なお、機械駆動部１７は、周知の数値制御装置と同様に、指令バッファ部１３から取り出した指令に対して例えば移動平均フィルタを掛けて加減速処理を行い、ステップ状な速度変化で動作をしないように機械各軸を滑らかに動作させても良い。
【００１９】
チェック結果データバッファ部１５の最後尾のデータムに保管された移動指令により移動する機械の位置と、現在の機械の位置と、指令バッファ部１３の先頭のデータムに保管された指令により移動する機械の位置の関係は、図４のようになる。
【００２０】
衝突検知システム２は、入力手段２１、形状データ記憶部２２、衝突検知部２３、画面２４を有する。
入力手段２１は、キーボード、マウス等のマンマシンインターフェイス装置や、フラッシュメモリ、ハードディスク等の記憶媒体で構成され、加工プログラムを入力する。
形状データ記憶部２２は、制御対象の機械各部、機械に装着される工具、素材を機械に取り付ける治具、素材など機械に存在している物体の形状データを記憶している記憶媒体である。なお、以後の説明では、制御対象の機械に存在している物体の形状データを単に「形状データ」と称す。
【００２１】
衝突検知部２３は、連携データ送受信部１４から受信した指令が移動指令の場合、移動指令に従って形状データを移動させて、各形状データ間が予め設定されている距離を超える非衝突状態、各形状データ間が予め設定されている距離以下になる近接状態または完全に形状データが一部重なる衝突状態のいずれかであるかチェックする。
また、衝突検知部２３は、近接状態、衝突状態または非衝突状態を示すチェック結果データを、チェックした指令に付与されていた指令番号を付与して、連携データ送受信部１４に返信する。
【００２２】
なお、衝突検知部２３は、非衝突状態、近接状態または衝突状態を検知するとともに、そのような状態下にある形状データを特定し、例えば、部位名や部位番号などのデータ、形状データ間の最近接距離をチェック結果データとして含んでも良い。
【００２３】
次に、この発明の実施の形態１に係わる機械制御システムの処理の流れを図５を参照して説明する。図５は、この発明の実施の形態１に係わる機械制御システムの処理の流れを示すフローチャートである。
実施の形態１に係わる機械制御システムの処理の流れは、制御周期度に、指令生成ルーティン（ステップＳ１）、連携データ送受信ルーティン（ステップＳ２）、指令出力判定ルーティン（ステップＳ３）、機械駆動ルーティン（ステップＳ４）から構成される。
【００２４】
指令生成部１２において実行される指令生成ルーティンについて図６を参照して説明する。図６は、この発明の実施の形態１に係わる指令生成ルーティンの手順を示すフローチャートである。
ステップＳ１１において、指令バッファ残数レジスタ３２から指令バッファ残数を読み出し、指令バッファ部１３に空きが有るか否かを判断し、空きが有るときにはステップＳ１２に進み、空きがないときには指令生成ルーティンを終了する。
ステップＳ１２において、保管指令番号レジスタ３１から保管指令番号を読み出し、インクリメントして指令番号を生成する。
ステップＳ１３において、加工プログラムを解釈して指令を生成する。
ステップＳ１４において、生成した指令に生成した指令番号を付与して指令バッファ部１３に送信する。
ステップＳ１５において、指令バッファ残数をディクリメントして指令生成ルーティンを終了する。
【００２５】
次に、連携データ送受信部１４において実行される連携データ送受信ルーティンを図７を参照して説明する。図７は、この発明の実施の形態１に係わる連携データ送受信ルーティンの手順を示すフローチャートである。
ステップＳ２１において、保管指令番号レジスタ３１から保管指令番号を読み出す。
ステップＳ２２において、依頼済指令番号レジスタ３３から依頼済指令番号を読み出す。
ステップＳ２３において、保管指令番号から依頼済指令番号を減算して差を算出する。
ステップＳ２４において、差が第１の閾値以上か否かを判断し、差が第１の閾値以上のときステップＳ２５に進み、差が第１の閾値未満のときＳ２７に進む。
ステップＳ２５において、依頼済指令番号に第１の閾値を加算し、依頼済指令番号レジスタ３３を更新する。
ステップＳ２６において、依頼済指令番号の指令を指令バッファ部１３から複製し、依頼済指令番号を付与して衝突検知部２３に送信する。
ステップＳ２７において、衝突検知部２３からチェック結果データを受信したか否かを判断し、チェック結果データを受信したときステップＳ２８に進み、チェック結果データを受信していないとき連携データ送受信ルーティンを終了する。
ステップＳ２８において、受信したチェック結果データに付与されている指令番号でチェック済指令番号を更新する。
ステップＳ２９において、受信した指令番号が付与されたチェック結果データをチェック結果データバッファ部１５に送信して連携データ送受信ルーティンを終了する。
【００２６】
次に、指令出力判定部１６において実行される指令出力判定ルーティンについて図８を参照して説明する。図８は、この発明の実施の形態１に係わる指令出力判定ルーティンの手順を示すフローチャートである。
ステップＳ４１において、出力指令番号レジスタ３５から出力指令番号を読み出す。
ステップＳ４２において、チェック済指令番号レジスタ３４からチェック済指令番号を読み出す。
ステップＳ４３において、チェック済指令番号から出力指令番号を減算して差を算出する。
ステップＳ４４において、差が第２の閾値以上か否かを判断し、差が第２の閾値以上のときステップＳ４５に進み、差が第２の閾値未満のときＳ５０に進む。
ステップＳ４５において、出力指令番号のチェック結果データを読み出す。
ステップＳ４６において、読み出したチェック結果データを衝突可能性について分析する。
ステップＳ４７において、分析の結果、衝突の可能性が有るか否かを判断し、衝突の可能性がないときステップＳ４８に進み、衝突の可能性が有るときステップＳ５０に進む。
ステップＳ４８において、分析したチェック結果データに付与された指令番号を機械駆動部１７に送る。
ステップＳ４９において、送った指令番号に１を加算して出力指令番号レジスタ３５を更新して指令出力判定ルーティンを終了する。
ステップＳ５０において、分析したチェック結果データに付与された指令番号に１を加算して出力指令番号レジスタ３５を更新し、分析したチェック結果データに付与された指令番号の指令を指令バッファ部１３から削除し、指令バッファ残数レジスタ３２をインクリメントして指令出力判定ルーティンを終了する。
【００２７】
次に、具体的な例を用いて、機械制御システム１の動作を例示する。
加工プログラムの最初の命令から指令を生成する以前においては、保管指令番号、依頼済指令番号、チェック済指令番号、出力指令番号は０、指令バッファ残数は１００に設定されている。また、第１の閾値および第２の閾値は２に設定されている。これらの値は一例であり、これに限るものではない。
第１の制御周期において、指令バッファ残数が１００であり零でないので、保管指令番号を１増加して１とし、指令番号１の指令を指令バッファ部１３に保管する。保管指令番号が１で依頼済指令番号が０であるので、差が１となり、第１の閾値未満であるので第１の制御周期の動作は終了する。
【００２８】
第２の制御周期において、指令バッファ残数が９９であり零でないので、保管指令番号を１増加して２とし、指令番号２の指令を指令バッファ部１３に保管する。保管指令番号が２で依頼済指令番号が０であるので、差が２となり、第１の閾値以上となるので、指令番号２の指令を衝突検知部２３に送信する。衝突検知部２３では機械制御システムの１制御周期では返信しないので、第２の制御周期の動作は終了する。
【００２９】
第３の制御周期において、指令バッファ残数が９８であり零でないので、保管指令番号を１増加して３とし、指令番号３の指令を指令バッファ部１３に保管する。保管指令番号が３で依頼済指令番号が２であるので、差が１となり、第１の閾値未満であるので、指令を衝突検知部２３に送信しない。衝突検知部２３では指令番号２のチェック結果データを返信してくるので、チェック結果データバッファ部１５に保管し、チェック済指令番号を２にする。チェック済指令番号が２で出力指令番号が０であるので、差が２であり、差が第２の閾値以上であるので、指令番号１の指令を機械駆動部１７に出力して第３の制御周期の動作は終了する。
【００３０】
第４の制御周期において、指令バッファ残数が９７であり零でないので、保管指令番号を１増加して４とし、指令番号４の指令を指令バッファ部１３に保管する。保管指令番号が４で依頼済指令番号が２であるので、差が２となり、第１の閾値以上となるので、指令番号４の指令を衝突検知部２３に送信する。衝突検知部２３からはこの制御周期で返信がないので、第４の制御周期の動作は終了する。
【００３１】
第５の制御周期において、指令バッファ残数が９６であり零でないので、保管指令番号を１増加して５とし、指令番号５の指令を指令バッファ部１３に保管する。保管指令番号が５で依頼済指令番号が４であるので、差が１となり、第１の閾値未満であるので、指令を衝突検知部２３に送信しない。衝突検知部２３では指令番号４のチェック結果データを返信してくるので、チェック結果データバッファ部１５に保管し、チェック済指令番号を５にする。チェック済指令番号が５で出力指令番号が１であるので、差が４であり、差が第２の閾値以上であるので、衝突可能性を判定し、指令番号２を機械駆動部１７に出力して第５の制御周期の動作は終了する。
【００３２】
この実施の形態１に係わる数値制御システムは、制御単位で一意にプログラムの実行箇所を特定するデータである指令番号を付与した指令を機械制御システムから送信し、他方、衝突検知システムはチェック結果データにチェックした指令に付与されていた指令番号を付与して送り返すので、処理周期が同期しない複合的な数値制御システムにおいても、衝突検知システムの処理時間が延びたり、システムダウンしたりしたとき、衝突を起こさないようにすることができる。
【００３３】
なお、実施の形態１においては指令番号の差が予め設定されている第１の閾値に達したとき、連携データ送受信部１４が衝突検知部２３にチェック用の指令を送信することにしているが、図９に示すように、保持している指令番号に対応する指令間の距離が予め設定されている距離に達したときに衝突検知部２３にチェック用の指令を送信するようにしても良い。
【００３４】
実施の形態２．
図１０は、この発明の実施の形態２に係わる機械制御システムのブロック図である。
この発明の実施の形態２に係わる数値制御システムは、図１０に示すように、実施の形態１に係わる数値制御システムと機械制御システム１Ｂが異なり、それ以外は同様であるので同様な部分に同じ符号を付記し説明は省略する。
この実施の形態２に係わる機械制御システム１Ｂは、実施の形態１に係わる機械制御システム１と指令生成部１２Ｂおよび指令出力判定部１６Ｂが異なり、それ以外は同様であるので同様な部分に同じ符号を付記し説明は省略する。
【００３５】
実施の形態２に係わる指令生成部１２Ｂは、プログラム記憶部１１に記憶された加工プログラムを解釈して、加工プログラム中に記述された移動命令が示す経路上を工具が移動するように、予め設定された制御周期毎の経路上の位置を求めて制御対象の機械各軸の移動指令を生成する。
また、指令生成部１２Ｂは、生成した移動指令とともに、その移動指令を生成する元になった加工プログラム中の命令の種別（例えば、早送り命令、切削直線移動命令、切削円弧移動命令、ねじ切り命令、タップ命令など）も対にして指令バッファ部１３に出力する。
【００３６】
ここで、命令の種別とは、例えば位置決め（早送り）命令、直線補間（切削送り）命令、円弧補間（切削送り）命令、タッピング命令、ねじきり命令などのことであり、以後「命令種別」と呼ぶことにする。
【００３７】
また、指令生成部１２Ｂは、実施の形態１に係わる指令生成部１２と同様に、指令バッファ部１３に出力するデータには、機械各軸の移動指令および命令種別の他に、制御単位で一意にプログラムの実行箇所を特定するデータである指令番号が付与している。この指令番号としては、実施の形態１と同様であり、以下の説明ではプログラム開始時から生成した指令を順にカウントした番号であるとして説明を続ける。
【００３８】
実施の形態２に係わる指令出力判定部１６Ｂは、チェック結果データに付与されている指令番号に対応する指令を命令種別と合わせて指令バッファ部１３から複写する。
【００３９】
また、指令出力判定部１６Ｂは、複写した命令種別がタッピング命令または図１１に示すねじきり命令など、命令を実行中に工具の送りが停止すると加工物および工具等の部品に重大な損害を与えてしまう命令か否かを判別する。
なお、加工物、工具、機械部品に重大な損害を与えてしまう命令か否かの区別は、あらかじめ設定しておいても良いし、オペレータの判断によって数値制御システム内の記憶装置に登録できるようにしてもよく、このことは本発明の請求する範囲に影響を与えるものではない。以後、上記のように判別される命令を「注意命令」と呼ぶことにする。
【００４０】
指令出力判定部１６Ｂは、衝突検知部２３が注意命令から生成された指令をチェックし始めると、図１２（ａ）に示すように、注意命令の前の命令の実行が終了した位置で機械が停止するように機械駆動部１７に指令番号を出力せず、１命令に対して生成される図１２（ｂ）に示す全ての指令を指令生成部１２Ｂが生成し終えてから指令番号を出力する。
【００４１】
この動作の結果、数値制御システムが注意命令に関する一連の指令を生成し、且つ指令の衝突可能性のチェックが完了するまで、機械は一時停止状態になり、衝突検知部２３が１つの注意命令に対する全指令をチェックし終えた後、注意命令に対する指令に衝突の可能性が検知されなければ、その命令から加工を再開することになる。
反対に、注意命令に関する指令のうち１つの指令でも衝突の可能性を検知した場合、指令出力判定部１６Ｂは、その注意命令に関する全ての指令を出力せず、例えば表示手段によって衝突の可能性を検知したことをオペレータに通知する。
また、注意命令から生成された指令をチェックし始める際に、指令出力判定部１６Ｂがチェック結果バッファ部１５内を探索し、その中に早送り命令などの切削命令以外の命令から生成された指令を検出した場合、衝突検知部２３が注意命令から生成された指令を全てチェックし終えるまで、切削命令以外の命令から生成された指令を機械駆動部１７に出力し終えたところで一時停止するようにするのが望ましい。
【００４２】
また、命令種別が早送り命令であった場合、指令出力判定部１６Ｂは、チェック済指令番号から出力指令番号を減算して得られた差が予め設定された第３の閾値以上のとき、指令出力判定を行って機械駆動部１７に指令番号を出力する。
なお、第３の閾値は、実施の形態１の指令出力判定部１６の動作の説明で示したあらかじめ設定されている第２の閾値とは異なり、命令種別に従って第３の閾値を可変することにより適切な数のチェック結果データをチェック結果データバッファ部１５に確保することができる。
【００４３】
このように、実行中に工具の送りが停止すると加工物および工具等の部品に重大な損害を与えてしまう命令の場合、命令に関する一連の指令の衝突可能性のチェックが完了するまで機械を一旦停止するので、このような注意命令の実行中では途中で減速したり停止したりすることを避けることができる。
また、早送り命令のように移動速度が速い命令の場合、衝突可能性のチェックが完了した指令の数が一般の命令のときより多いので、命令の実行途中で減速したり停止したりすることを避けることができる。
【００４４】
実施の形態３．
この発明の実施の形態３に係わる数値制御システムは、実施の形態１に係わる数値制御システムと衝突検知システムが異なり、それ以外は同様であるので同様な部分に同じ符号を付記し説明は省略する。
実施の形態３に係わる衝突検知システムは、実施の形態１に係わる衝突検知システム２と衝突を検知した後の動作が異なり、それ以外の動作は同様である。
今、連携データ送受信部１４から受信したチェック依頼指令を衝突検知部２３がチェックして衝突可能性が有ると判断し、そのチェック結果データを返信し終えた状態である。衝突検知部２３は、チェックした指令に衝突可能性が有ると判断した場合、衝突検知システム内に備えた衝突検知フラグをＯＮする。そして、連携データ送受信部１４から次のチェック依頼指令を受信したとき、衝突検知フラグがＯＮになっている場合には、衝突検知部２３は受信した指令の衝突可能性を判断しない。また、指令の衝突可能性を判断してもチェック結果データを返信しない。
【００４５】
このような状況下では、指令出力判定部１６が参照するチェック済み指令番号が進まなくなり、チェック済み指令番号から機械駆動部１７への出力指令番号の差が第２の閾値以上にならなくなるため、機械駆動部１７に出力されなくなる。
この結果機械駆動部１７は、衝突可能性を検知した指令番号から第２の閾値分だけ手前まで機械を駆動した後機械を駆動しなくなる。
【００４６】
実施の形態３に係わる数値制御システムは、衝突検知部２３が衝突可能性が有ると判断された指令以降の指令をチェックせず返信もしないので、衝突可能性が有ると判断された指令から第２の閾値分手前で機械を停止させることが可能になり、より安全な衝突検知機能を備えた数値制御システムとすることができる。
【図面の簡単な説明】
【００４７】
【図１】この発明の実施の形態１に係わる数値制御システムの構成を示すブロック図である。
【図２】この発明においてプログラムの最初から最後まで一貫して命令の解釈する順番に指令番号を発生する様子を示す図である。
【図３】この発明において命令の順番を示す番号と命令の中で解釈する順番を示す順番とを組み合わせて指令番号を発生する様子を示す図である。
【図４】指令に従って機械の外形データが移動する様子を示す図である。
【図５】この発明の実施の形態１に係わる機械制御システムの処理の流れを示すフローチャートである。
【図６】この発明の実施の形態１に係わる指令生成ルーティンの手順を示すフローチャートである。
【図７】この発明の実施の形態１に係わる連携データ送受信ルーティンの手順を示すフローチャートである。
【図８】この発明の実施の形態１に係わる指令出力判定ルーティンの手順を示すフローチャートである。
【図９】依頼済指令番号の指令と最後に指令バッファ部に保管された最新の指令との距離が予め設定されている距離以上になったとき最新の指令を衝突検知部に送る様子を示す図である。
【図１０】この発明の実施の形態２に係わる機械制御システムのブロック図である。
【図１１】移動命令がねじ切り命令の場合の工具の移動の様子を示す図である。
【図１２】移動命令がねじ切り命令の場合の一連の指令がチェックするまで工具の移動が停止する様子を示す図である。
【符号の説明】
【００４８】
１、１Ｂ  機械制御システム、２  衝突検知システム、１１  プログラム記憶部、１２、１２Ｂ  指令生成部、１３  指令バッファ部、１４  連携データ送受信部、１５  チェック結果データバッファ部、１６、１６Ｂ  指令出力判定部、１７  機械駆動部、２１  入力手段、２２  形状データ記憶部、２３  衝突検知部、２４  画面、３１  保管指令番号レジスタ、３２  指令バッファ残数レジスタ、３３  依頼済指令番号レジスタ、３４  チェック済指令番号レジスタ、３５  出力指令番号レジスタ。
【図１】
2008129994.tif 000003
【図２】
2008129994.tif 000004
【図３】
2008129994.tif 000005
【図４】
2008129994.tif 000006
【図５】
2008129994.tif 000007
【図６】
2008129994.tif 000008
【図７】
2008129994.tif 000009
【図８】
2008129994.tif 000010
【図９】
2008129994.tif 000011
【図１０】
2008129994.tif 000012
【図１１】
2008129994.tif 000013
【図１２】
2008129994.tif 000014