(57)【要約】【課題】エラー発生時に適切な処理を行う。【解決手段】測定システムＳは、三次元測定機能を有する測定装置２と、測定装置２の動作を制御するための命令を生成する制御装置１と、を備える。測定装置２は、測定装置２が参照可能な命令格納領域に格納されている命令に基づく動作を実行し、実行した動作の結果を命令格納領域に書き込むＮＣコントローラ２１を有し、制御装置１は、命令格納領域に命令を書込み、命令と、測定装置２における当該動作の結果とに基づく情報を命令格納領域に書き込むＮＣドライバ１２を有する。【選択図】図１
2018156528.tif 000002
【特許請求の範囲】
【請求項１】
三次元測定機能を有する測定装置と、前記測定装置の動作を制御するための命令を生成する制御装置と、を備える測定システムであって、
前記測定装置は、
前記測定装置が参照可能な命令格納領域に格納されている命令に基づく動作を実行し、実行した動作の結果を前記命令格納領域に書き込む動作実行部を有し、
前記制御装置は、
前記命令格納領域に前記命令を書込み、前記命令と前記動作の結果とに基づく情報を前記命令格納領域に書き込む動作制御部を有する、
ことを特徴とする測定システム。
【請求項２】
前記動作制御部は、前記動作の結果に含まれる三次元測定の測定値が、前記命令に基づいて予測される範囲に入っていない場合に、エラーが発生したことを示すエラー情報を前記命令格納領域に書き込む、
ことを特徴とする請求項１に記載の測定システム。
【請求項３】
前記命令格納領域には、複数の前記命令を格納する領域が設けられており、
前記動作制御部は、前記命令格納領域に複数の前記命令を書き込む、
ことを特徴とする請求項１又は２に記載の測定システム。
【請求項４】
前記動作実行部は、前記測定装置が実行中の動作の内容を前記制御装置に通知する、
ことを特徴とする請求項３に記載の測定システム。
【請求項５】
前記動作実行部は、前記測定装置が実行中の動作の内容を特定するための情報を前記命令格納領域に書き込むことにより、前記動作の内容を前記制御装置に通知する、
ことを特徴とする請求項４に記載の測定システム。
【請求項６】
前記動作制御部は、通知された前記動作の内容に基づいて、前記測定装置に次に実行させる動作を決定し、当該動作に対応する命令を前記命令格納領域に書き込む、
ことを特徴とする請求項４又は５に記載の測定システム。
【請求項７】
前記動作制御部は、前記測定装置に次に実行させる動作を決定すると、実行中の動作よりも後に実行される動作の命令を前記命令格納領域から消去するとともに、前記次に実行させる動作に対応する命令を前記命令格納領域に書き込む、
ことを特徴とする請求項６に記載の測定システム。
【請求項８】
三次元測定機能を有する測定装置を制御するための命令を生成し、当該命令に基づいて当該測定装置を制御するコンピュータを、
前記測定装置に動作を実行させるための命令を、前記測定装置が参照可能な記憶部が有する命令格納領域に書き込み、前記命令と、前記測定装置が前記命令格納領域に書き込んだ前記動作の結果とに基づく情報を前記命令格納領域に書き込む動作制御部、
として機能させることを特徴とする測定プログラム。
【請求項９】
三次元測定機能を有する測定装置を制御するための命令を生成する制御装置が、当該測定装置を制御する制御方法であって、
前記測定装置に動作を実行させるための命令を、前記測定装置が参照可能な記憶部が有する命令格納領域に書き込むステップと、
前記命令と、前記測定装置が前記命令格納領域に書き込んだ前記動作の結果とに基づく情報を前記命令格納領域に書き込むステップと、
を有することを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、測定システム、測定プログラム及び制御方法に関する。
【背景技術】
【０００２】
従来、三次元測定機を制御するための命令に基づいて、測定装置に三次元測定動作を実行させる測定システムが知られている。例えば、特許文献１には、ＮＣ工作機械に三次元測定用のプローブを装着させておき、端末装置が、三次元測定機を制御するための命令を、ＮＣ工作機械を動作させるための命令に変換し、変換後の命令に対応する動作を、ＮＣコントローラを介してＮＣ工作機械に実行させることにより、ＮＣ工作機械に三次元測定動作を実行させることが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−２６５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、三次元測定動作の実行中にはエラーが発生することがある。ＮＣ工作機械において、三次元測定動作のエラーの発生の有無は、ＮＣ工作機械側でチェックされており、エラーが発生した場合に端末装置に通知されていた。しかしながら、ＮＣ工作機械のような汎用機を用いて三次元測定を行う場合には、端末装置側でエラーをチェックする必要がある。この際、端末装置と、ＮＣコントローラとは非同期で動作しているので、端末装置側においてエラーを検出し、エラーの復旧動作をＮＣ工作機械に実行させる必要がある場合にも、ＮＣ工作機械が動作を継続してしまうという問題があった。
【０００５】
そこで、本発明はこれらの点に鑑みてなされたものであり、エラー発生時に適切な処理を行うことができる測定システム、測定プログラム及び制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の第１の態様に係る測定システムは、三次元測定機能を有する測定装置と、前記測定装置の動作を制御するための命令を生成する制御装置と、を備える測定システムであって、前記測定装置は、前記測定装置が参照可能な命令格納領域に格納されている命令に基づく動作を実行し、実行した動作の結果を前記命令格納領域に書き込む動作実行部を有し、前記制御装置は、前記命令格納領域に前記命令を書込み、前記命令と前記動作の結果とに基づく情報を前記命令格納領域に書き込む動作制御部を有することを特徴とする。
【０００７】
前記動作制御部は、前記動作の結果に含まれる三次元測定の測定値が、前記命令に基づいて予測される範囲に入っていない場合に、エラーが発生したことを示すエラー情報を前記命令格納領域に書き込んでもよい。
前記命令格納領域には、複数の前記命令を格納する領域が設けられており、前記動作制御部は、前記命令格納領域に複数の前記命令を書き込んでもよい。
【０００８】
前記動作実行部は、前記測定装置が実行中の動作の内容を前記制御装置に通知してもよい。
前記動作実行部は、前記測定装置が実行中の動作の内容を特定するための情報を前記命令格納領域に書き込むことにより、前記動作の内容を前記制御装置に通知してもよい。
前記動作制御部は、通知された前記動作の内容に基づいて、前記測定装置に次に実行させる動作を決定し、当該動作に対応する命令を前記命令格納領域に書き込んでもよい。
【０００９】
前記動作制御部は、前記測定装置に次に実行させる動作を決定すると、実行中の動作よりも後に実行される動作の命令を前記命令格納領域から消去するとともに、前記次に実行させる動作に対応する命令を前記命令格納領域に書き込んでもよい。
【００１０】
本発明の第２の態様に係る測定プログラムは、三次元測定機能を有する測定装置を制御するための命令を生成し、当該命令に基づいて当該測定装置を制御するコンピュータを、前記測定装置に動作を実行させるための命令を、前記測定装置が参照可能な記憶部が有する命令格納領域に書き込み、前記命令と、前記測定装置が前記命令格納領域に書き込んだ前記動作の結果とに基づく情報を前記命令格納領域に書き込む動作制御部、として機能させることを特徴とする。
【００１１】
本発明の第３の態様に係る測定方法は、三次元測定機能を有する測定装置を制御するための命令を生成する制御装置が、当該測定装置を制御する制御方法であって、前記測定装置に動作を実行させるための命令を、前記測定装置が参照可能な記憶部が有する命令格納領域に書き込むステップと、前記命令と、前記測定装置が前記命令格納領域に書き込んだ前記動作の結果とに基づく情報を前記命令格納領域に書き込むステップと、を有することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、エラー発生時に適切な処理を行うことができるという効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】本実施形態に係る測定システムの構成を示す図である。
【図２】本実施形態に係る測定システムの動作の概要を説明するための図である。
【図３】ＮＣドライバが複数の命令格納領域をリングバッファとして用いる例を示す図である。
【図４】本実施形態に係る命令格納領域に書き込まれる変数の種類と、各変数が格納される領域に割り当てられているアドレスとの関係の一例を示す図である。
【図５】図４に示す変数を用いた場合の測定システムの動作例を示す図である。
【発明を実施するための形態】
【００１４】
［測定システムＳの構成］
図１は、本実施形態に係る測定システムＳの構成を示す図である。
測定システムＳは、制御装置１と、測定装置２とを備える。制御装置１は、三次元測定機を制御するための命令（以下、三次元測定用命令ともいう。）に基づく命令（以下、工作機械用命令）を生成することができる装置であり、測定装置２は、ＮＣ工作機械である。測定システムＳは、制御装置１が生成する工作機械用命令に基づいて、測定装置２に三次元測定動作を実行させるシステムである。工作機械用命令は、例えば、測定装置２を動作させるためのコモン変数により構成されている。
【００１５】
制御装置１は、ＣＰＵ等の制御部と、ハードディスクやメモリ等の記憶部とを備えるコンピュータである。制御装置１は、データ処理部１１と、動作制御部としてのＮＣドライバ１２とを備えており、ＲＳ−２３２ＣやＴＣＰ／ＩＰ等の通信方式により、測定装置２と通信を行う。なお、制御装置１は、各メーカが用意している通信用のＡＰＩやクラスモジュールを利用して、測定装置２と通信を行うようにしてもよい。制御装置１は、記憶部に記憶されたプログラムを実行することにより、データ処理部１１及びＮＣドライバ１２として動作する。
【００１６】
データ処理部１１は、ユーザから、測定装置２に実行させる測定の内容を受け付ける。データ処理部１１は、例えば、測定装置２に実行させる動作内容に関する設定を受け付ける画面を制御装置１のディスプレイに表示させ、ユーザにより入力された設定情報を取得する。データ処理部１１は、取得した設定情報に基づいて三次元測定用命令を生成し、生成した三次元測定用命令をＮＣドライバ１２に通知する。また、データ処理部１１は、ＮＣドライバ１２を介して測定装置２から取得した測定結果を制御装置１のディスプレイに表示する。
【００１７】
ＮＣドライバ１２は、三次元測定用命令を、測定装置２を制御するための工作機械用命令に変換し、測定装置２に送信する。また、ＮＣドライバ１２は、測定装置２が測定した結果を取得して、取得した測定結果をデータ処理部１１に通知する。制御装置１がＮＣドライバ１２を備えることにより、制御装置１のユーザは、三次元測定機の制御に用いる制御装置１を用いて測定装置２を制御し、測定装置２を用いた三次元測定を行うことができる。
【００１８】
ＮＣドライバ１２は、三次元測定用命令に基づいて、測定装置２が備える各種動作を実行させるための工作機械用命令を生成し、生成した工作機械用命令を、測定装置２が参照可能な記憶部内の命令格納領域に格納する。ＮＣドライバ１２は、例えば、工作機械用命令を命令格納領域に格納するためのコマンドを測定装置２に送信し、測定装置２を介して命令格納領域に含まれる各領域に対応する変数番号が割り当てられている変数の値を変化させることにより、工作機械用命令を命令格納領域に格納する。ＮＣドライバ１２は、測定装置２が、一つの命令に対応する動作を完了する前に、次の命令を命令格納領域に格納する。これにより、測定システムＳは、測定装置２が一つの命令に対応する動作を完了してから、次の命令に対応する動作を実行するまでの時間を短縮し、測定装置２における測定動作を高速化することができる。
【００１９】
ＮＣドライバ１２は、測定装置２による測定の結果を取得して、取得した測定結果を制御装置用データに変換し、変換した制御装置用データをデータ処理部１１に入力する。ＮＣドライバ１２は、例えば、一つの命令に対応する測定が完了したことを示す通知を測定装置２から受けたことに応じて、測定装置２が実行した命令が格納されていた領域の一部に格納された測定結果を取得する。
【００２０】
測定装置２は、動作実行部としてのＮＣコントローラ２１と、ＮＣ工作機械２２とを備える。
ＮＣコントローラ２１は、ＣＰＵ等の制御部、ハードディスクやメモリ等の記憶部、ＮＣ工作機械２２を動作させるための駆動制御回路、各種レジスタ、及びループカウンタを備え、ＮＣ工作機械２２の動作を制御するコンピュータである。
【００２１】
ＮＣコントローラ２１の記憶部には、ＣＰＵにより実行されるＮＣプログラムが格納されている。ＮＣコントローラ２１のＣＰＵは、ＮＣプログラムを実行することにより、ＮＣ工作機械２２の駆動制御を行う。ＮＣコントローラ２１は、例えば、ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）を介して、ＮＣドライバ１２と通信し、各種のコマンドをＮＣドライバ１２から受信することにより、ＮＣドライバ１２から工作機械用命令を取得したり、ＮＣドライバ１２に測定結果を通知したりする。
なお、ＮＣコントローラ２１がフロントエンド用の一般的な計算機と同様の構成を有している場合、ＮＣプログラムが、制御装置１において実行されるプログラム及びＮＣドライバ１２の少なくとも一部のプログラムを有していてもよい。
【００２２】
ＮＣ工作機械２２は、三次元測定を行うためのプローブが装着されており、ＮＣコントローラ２１の制御に応じて、自身に載置されているワークの三次元測定を行う。ＮＣコントローラ２１は、例えば、三次元測定の測定結果として、プローブの三次元座標を、ＮＣドライバ１２が参照可能な記憶部に記憶させる。これにより、制御装置１は、当該記憶部に記憶されている測定結果を取得することができる。
【００２３】
［測定システムＳの動作概要］
図２は、本実施形態に係る測定システムＳの動作の概要を説明するための図である。
まず、データ処理部１１は、ＮＣ工作機械２２に実行させる測定の内容をユーザから受け付ける（Ｓ１）。データ処理部１１は、受け付けた測定内容に基づいて三次元測定用命令を生成する（Ｓ２）。
【００２４】
続いて、ＮＣドライバ１２は、三次元測定用命令を解析し、当該命令を、測定装置２のＮＣ工作機械２２が実行可能な工作機械用命令に変換する（Ｓ３）。例えば、ＮＣドライバ１２は、三次元測定用命令に対応する動作を、ＮＣ工作機械２２が実行可能な１以上の動作（例えば、位置決め、測定、Ａ／Ｃ軸回転、Ｂ軸回転等）に分解し、１以上の動作のそれぞれに対応する工作機械用命令を生成する。
【００２５】
続いて、ＮＣドライバ１２は、測定装置２が参照可能な記憶部（例えば、ＮＣコントローラ２１に設けられている記憶部）が有する複数の命令格納領域のいずれかに、Ｓ３で生成した工作機械用命令を書き込む（Ｓ４）。ここで、ＮＣコントローラ２１に設けられている記憶部は、ＮＣコントローラ２１が命令に基づく動作の実行に要する時間と、ＮＣドライバ１２が命令を書き込むために要する時間とに基づいて定められた数の命令格納領域を有している。例えば、ＮＣドライバ１２が、命令格納領域に命令を書き込むために要する時間が最大で２００ｍｓであり、ＮＣコントローラ２１に基づく動作の実行に要する時間が平均１０ｍｓである場合、記憶部には、２０個以上の命令格納領域が設けられていることが好ましい。このようにすることで、制御装置１は、命令の書き込み遅延が発生した場合であっても、遅延なく動作が実行される可能性を高めることができる。
【００２６】
具体的には、ＮＣドライバ１２は、命令格納領域に複数の工作機械用命令を書き込む。例えば、ＮＣドライバ１２は、測定装置２に第１動作を実行させるための工作機械用命令である第１命令を、命令格納領域内の第１領域に書き込み、測定装置２が第１動作を完了する前に、測定装置２に、第１動作の次に実行される第２動作を実行させるための工作機械用命令である第２命令を、命令格納領域内の第２領域に書き込む。
【００２７】
ＮＣコントローラ２１は、ＮＣプログラムを実行し、命令格納領域に書き込まれた工作機械用命令に基づく動作をＮＣ工作機械２２に実行させることにより、ＮＣ工作機械２２の動作を制御する（Ｓ５）。ＮＣコントローラ２１は、測定装置２が実行中の動作の内容を特定するための情報を命令格納領域に書き込むことにより、測定装置２が実行中の動作の内容を制御装置１に通知する。このようにすることで、ＮＣドライバ１２は、測定装置２が実行中の動作を把握することができる。
【００２８】
ＮＣコントローラ２１は、実行中の動作が完了すると、当該動作が完了したことを示す動作完了情報を、ＮＣコントローラ２１の記憶部に設けられている命令格納領域に書き込む。これにより、動作が完了したことがＮＣドライバ１２に通知される。また、ＮＣコントローラ２１は、ＮＣ工作機械２２の動作が測定動作である場合、測定結果を示す測定結果情報を、ＮＣコントローラ２１の記憶部に設けられている命令格納領域に書き込む。
【００２９】
例えば、ＮＣコントローラ２１は、以下の手順で複数の動作を連続してＮＣ工作機械２２に実行させる。まず、ＮＣコントローラ２１は、命令格納領域を参照して第１命令に基づく第１動作をＮＣ工作機械２２に実行させる。ＮＣコントローラ２１は、ＮＣ工作機械２２が第１命令に基づく第１動作を完了すると、第１動作に対応する測定結果情報と、第１動作が完了したことを示す動作完了情報とを、第１命令が格納されている命令格納領域に書き込み、その後、第２命令に基づく第２動作をＮＣ工作機械２２に実行させる。ＮＣコントローラ２１は、ＮＣ工作機械２２が第２命令に基づく第２動作を完了すると、第２動作に対応する測定結果情報と、第２動作が完了したことを示す動作完了情報とを、第２命令が格納されている命令格納領域に書き込む。このように、ＮＣコントローラ２１が、命令を実行した後に命令格納領域に測定結果情報を書き込むことで、限られたメモリ領域を有効に活用することができる。
【００３０】
ＮＣドライバ１２は、ＮＣ工作機械２２の動作が測定動作である場合において、命令格納領域に動作完了情報が書き込まれると、命令格納領域に書き込まれた測定結果情報を取得する（Ｓ６）。ＮＣドライバ１２は、実行された動作に対応する工作機械用命令と、実行された動作の結果とに基づく情報を命令格納領域に書き込む。具体的には、ＮＣドライバ１２は、測定動作の結果に含まれる三次元測定の測定値が、当該測定動作に対応する工作機械用命令に基づいて予測される予測値の範囲に入っていないか否かを判定することにより、エラーが発生したか否かを判定する（Ｓ７）。ＮＣドライバ１２は、エラーが発生したと判定した場合に、測定装置２においてエラーが発生したことを示すエラー情報を命令格納領域に書き込み、エラーが発生したことを測定装置２に通知する（Ｓ８）。また、ＮＣドライバ１２は、エラーが発生したと判定した場合に、命令格納領域に書き込まれている動作の内容に基づいて、測定装置２に次に実行させる動作（復旧動作）を決定し、当該動作に対応する命令（復旧動作命令）を命令格納領域に書き込む。これにより、測定装置２は、新たに書き込まれた命令に基づいて復旧動作を実行することができる。
【００３１】
また、ＮＣドライバ１２は、Ｓ７において、エラーが発生していないと判定した場合、測定装置２から取得した測定結果情報を制御装置用の測定結果データに変換する（Ｓ９）。
続いて、データ処理部１１は、ＮＣドライバ１２が変換した制御装置用の測定結果データを取得して、記憶媒体に記憶させたりディスプレイに表示させたりする（Ｓ１０）。データ処理部１１が測定結果データを取得するタイミングは任意であり、全ての三次元測定用命令に基づく測定が終了してから測定結果データを取得してもよく、全ての測定が終了する前に、測定結果データを取得し、取得したデータに基づいて、測定結果を順次表示させてもよい。
【００３２】
上記のＳ４において、ＮＣドライバ１２は、ＮＣコントローラ２１に実行させる複数の工作機械用命令のうち、命令格納領域に書き込まれていない工作機械用命令が存在する場合には、測定結果情報を取得した後に、当該測定結果情報が格納されている命令格納領域に新たに工作機械用命令を書き込むことができる。このようにすることで、測定システムＳは、命令格納領域を、測定結果情報及び工作機械用命令を書き込む領域として共有することができるので、命令格納領域を有効利用することができる。
【００３３】
また、ＮＣドライバ１２は、測定装置２のＮＣ工作機械２２が第１動作を完了すると、測定装置２のＮＣ工作機械２２に、第２動作の後に実行される第３動作を実行させるための第３命令を、第１動作に対応する第１命令が格納されていた命令格納領域である第１領域に書き込むことにより、複数の命令格納領域をリングバッファとして利用することもできる。
【００３４】
図３は、ＮＣドライバ１２が、複数の命令格納領域をリングバッファとして用いる例を示す図である。図３に示す例では、命令格納領域として、第１領域、第２領域、第３領域、・・・、第（ｎ−１）領域、第ｎ領域が設けられているものとする。ただし、ｎは５以上の整数であるものとする。
【００３５】
まず、ＮＣドライバ１２は、第１領域に、第１動作を実行させるための第１命令を書き込む。同様に、ＮＣドライバ１２は、第２領域に第２動作を実行させるための第２命令、第３領域に第３動作を実行させるための第３命令、・・・、第ｎ領域に第ｎ動作を実行させるための第ｎ命令を順番に書き込む。ＮＣドライバ１２は、第１領域に書き込まれた第１命令に対応する動作が行われた後、第１領域に、（ｎ＋１）番目の動作を実行させるための第（ｎ＋１）命令を書き込むことにより、第１領域を再利用する。このように、測定システムＳは、一の命令格納領域を、複数の命令を格納する領域として繰り返し使用できるようにすることにより、複数の命令で使用される変数の数が、測定装置２で使用可能な変数の最大数を超える場合であっても、当該複数の命令を連続して測定装置２に実行させることができる。
【００３６】
［命令格納領域に格納される変数］
続いて、命令格納領域に格納される工作機械用命令について説明する。
本実施形態において、ＮＣドライバ１２は、工作機械用命令として、ＮＣ工作機械２２が実行可能な動作に対応する動作フラグの値や、当該動作の制御に用いる制御値（例えば、プローブの移動先の座標値や、プローブの移動速度）等の変数の値を含む命令を生成する。命令格納領域には、工作機械用命令に対応する変数の値を格納する領域が定められており、ＮＣドライバ１２は、生成した複数の値を、複数の変数のそれぞれに対応する領域に書き込む。以下の説明において、変数に対応する領域を特定するための情報をアドレスと称する。アドレスは、例えば、変数に割り当てられている変数番号に対応している。
【００３７】
図４は、本実施形態に係る命令格納領域に書き込まれる変数の種類と、各変数が格納される領域に割り当てられているアドレスとの関係の一例を示す図である。
図４（ａ）に示されるように、命令格納領域には、複数の工作機械用命令を一度に格納するための領域が複数設けられている。図４（ａ）においては、複数の領域のうち第１領域及び第２領域が示されている。第１領域は、アドレス＃９００から＃９１７に対応しており、第２領域は、アドレス＃９５０から＃９６７に対応している。
【００３８】
複数の領域のそれぞれには、測定装置２を制御するための情報、及び測定装置２の状態を示す情報が格納される。例えば、アドレス＃９０３及び＃９５３には、ＮＣ工作機械２２に実行させる動作の種別やＮＣ工作機械２２の状態を示す動作フラグ変数の値を格納する動作フラグ領域が設けられている。
【００３９】
図４（ｂ）は、動作フラグ変数の値と動作内容との関係を示すテーブルである。例えば、動作フラグの値「１」は、測定装置２におけるプローブの位置決め処理に対応している。また、動作フラグの値「２」は、測定装置２におけるワークの測定処理に対応している。また、動作フラグの値「５」は、測定装置２が動作終了状態であることを示す値である。また、動作フラグの値「８」は、測定装置２におけるエラーを制御装置１が検出したことを示す値である。
【００４０】
また、図４（ａ）に示すように、変数には、プローブの移動先の座標値に対応する変数（例えば、アドレス＃９００〜＃９０２の領域に格納される変数）や、測定装置２に次に行わせる命令が格納されている命令格納領域のアドレスを示す次命令指定変数（例えば、アドレス＃９１４の領域に格納される変数）や、測定装置２が実行中の動作内容を示す情報を格納する動作通知変数（例えば、アドレス＃９９９の領域に格納される変数）等が設けられている。
【００４１】
動作通知フラグ領域には、例えば、動作内容を示す情報として、測定装置２が実行中の命令が格納されている命令格納領域に対応する動作フラグのアドレスが格納される。例えば、測定装置２が、第１領域に対応する工作機械用命令に基づく動作を実行しているときには、動作通知フラグ領域には、第１領域に対応する動作フラグの値が格納されているアドレスを示す「９０３」が格納される。また、測定装置２が、第２領域に対応する工作機械用命令に基づく動作を実行しているときには、動作通知フラグ領域には、第２領域に対応する動作フラグの値が格納されているアドレスを示す「９５３」が格納される。このようにすることで、ＮＣドライバ１２は、動作通知フラグ領域に格納されている値に基づいて、測定装置２が実行中の動作に対応する命令が格納されている領域を特定し、当該命令に基づいて実行中の動作の内容を特定することができる。
【００４２】
本実施形態において、ＮＣドライバ１２は、工作機械用命令に対応する情報を命令格納領域に書き込む場合に、当該命令格納領域における次命令指定変数を格納する領域に、当該工作機械用命令の次に測定装置２に実行させる工作機械用命令が格納される命令格納領域のアドレスを書き込む。ＮＣドライバ１２は、例えば、次に実行させる命令を記憶している命令格納領域に対応する複数のアドレスのうち、最小のアドレスを書き込む。ＮＣコントローラ２１は、一の工作機械用命令に基づく動作が完了すると、次命令指定変数に対応するアドレスを参照し、動作が完了した命令の次の命令を特定する。このようにすることで、ＮＣドライバ１２は、次に実行させる命令が、複数の命令格納領域のうち、どの命令格納領域に格納されているかを、ＮＣコントローラ２１に通知することができる。
【００４３】
なお、命令格納領域に格納される動作フラグ変数や、次命令指定変数、各種動作に対応する制御値を格納する変数のアドレスは、ＮＣ工作機械２２のメーカが用意するＮＣプログラムの仕様によって異なる。したがって、ＮＣドライバ１２は、それぞれのメーカに対応するアドレスを示す情報を記憶し、各メーカのＮＣプログラムの仕様に基づいて、命令格納領域に記憶されているアドレスを特定したり、当該アドレスの変数を生成したりして、当該変数に工作機械用命令を書き込む。これにより、ＮＣドライバ１２は、各メーカのＮＣ工作機械２２に対応して、工作機械用命令を書き込むことができる。
【００４４】
［測定システムＳの詳細な動作］
続いて、測定システムＳの詳細な動作について説明する。図５は、図４に示す変数を用いた場合の測定システムＳの動作例を示す図である。
上述したように、データ処理部１１が、三次元測定用命令をＮＣドライバ１２に通知すると（Ｓ２）、ＮＣドライバ１２は、当該三次元測定用命令を解析し、一以上の工作機械用命令に変換する（Ｓ３）。ＮＣドライバ１２は、ＮＣコントローラ２１に設けられている記憶部が有する複数の命令格納領域のいずれかの領域に、Ｓ２で生成された工作機械用命令に対応する動作フラグの値や、動作の制御に用いる制御値を書き込む（Ｓ４）。
【００４５】
ここで、測定装置２の制御を開始する時点では、複数の命令格納領域のすべてに、命令を書き込める状態であることを示す情報として、例えば、命令格納領域の状態が初期状態であることを示す情報が格納されている。ＮＣドライバ１２は、初期状態であることを示す情報が格納されている命令格納領域に、工作機械用命令を書き込む。
【００４６】
例えば、ＮＣドライバ１２は、Ｓ２で生成された工作機械用命令のうち、測定装置２に最初に実行させる命令を第１領域に書き込むものとする。ＮＣドライバ１２は、動作フラグ変数に対応するアドレス＃９０３の領域に、動作フラグの値として「２」を記憶させるとともに、移動先のＸ座標の値、Ｙ座標の値、Ｚ座標の値を、それぞれ、アドレス＃９００、＃９０１、＃９０２の領域に記憶させる。
【００４７】
また、ＮＣドライバ１２は、複数の工作機械用命令を、複数の命令格納領域のそれぞれに格納する。具体的には、命令格納領域がｎ個設けられている場合、ＮＣドライバ１２は、第２領域に第２動作を実行させるための第２命令、第３領域に第３動作を実行させるための第３命令、・・・、第ｎ領域に第ｎ動作を実行させるための第ｎ命令を順番に書き込む。第ｎ動作以降の動作に対応する命令は、第１領域に格納された命令に対応する動作が実行された後に書き込まれる。
【００４８】
ＮＣコントローラ２１は、ＮＣプログラムを実行することにより、第１領域に格納されている動作フラグ変数の値をループして監視する監視処理を行う（Ｓ５１）。ＮＣコントローラ２１は、動作フラグ変数の値が１〜４、又は７、８のいずれかである場合、図４（ｂ）に示す情報に基づいて、ＮＣ工作機械２２に実行させる動作を特定する。ＮＣコントローラ２１は、動作フラグ変数の値が１の場合には、プローブの位置決め動作を実行させ（Ｓ５２ａ）、動作フラグ変数の値が２の場合には、ワークの測定動作を実行させ（Ｓ５２ｂ）、動作フラグ変数の値が３の場合には、Ａ／Ｃ軸回転動作を実行させ（Ｓ５２ｃ）、動作フラグ変数の値が４の場合には、Ｂ軸回転動作を実行させ（Ｓ５２ｄ）、動作フラグ変数の値が７の場合には、プログラムを終了し（Ｓ５２ｅ）、動作フラグ変数の値が８の場合には、後述する復旧動作を実行させる（Ｓ５２ｆ）。
ＮＣコントローラ２１は、ＮＣ工作機械２２に実行させる動作を特定すると、複数の命令格納領域に共通の動作通知フラグ領域（アドレス＃９９９の領域）に、実行内容を示す情報として、動作フラグ変数の値が格納されているアドレスを示す値を書き込む。
【００４９】
ＮＣ工作機械２２は、ワークを測定する場合には、ＮＣ工作機械２２が予め備えているブロックスキップ機能を利用して測定する。ブロックスキップ機能は、プローブを第１位置から第２位置まで移動させる途中で、プローブが物体等に接触すると、プローブのその後の移動を中止し、次の処理に移す機能である。ＮＣ工作機械２２は、プローブに物体等に接触すると、スキップ信号を出力する。ＮＣコントローラ２１は、スキップ信号を検出したことに応じて、プローブの現在位置を格納している状態データ記憶領域（アドレス＃５０６１〜＃５０６３の領域）を参照し、当該状態データ記憶領域に記憶されている当該位置を示すＸ座標の値、Ｙ座標の値、Ｚ座標の値を、測定結果を格納するアドレス＃９０４〜＃９０６の領域に記憶させる（Ｓ５３）。
【００５０】
ＮＣ工作機械２２において、動作フラグ変数の値に基づく、Ｓ５２ａ、Ｓ５２ｂ、Ｓ５２ｃ、Ｓ５２ｄのいずれかの動作が完了すると、ＮＣコントローラ２１は、第１領域内の動作フラグ変数に対応するアドレス＃９０３の領域に、動作が完了したことを示す動作完了情報として、「５」を書き込む（Ｓ５４）。
【００５１】
ＮＣドライバ１２は、測定結果を格納する領域に測定結果を示す値が格納されたことに応じて、当該値を測定結果情報として取得する（Ｓ６）。
ＮＣドライバ１２は、測定動作に対応する工作機械用命令に基づいて三次元測定の測定値を予測する。例えば、ＮＣドライバ１２は、測定動作が示すプローブの移動範囲に基づいて、三次元測定の測定値を予測する。そして、ＮＣドライバ１２は、測定動作の結果に含まれる三次元測定の測定値が、予測値の範囲に入っていないか否かを判定することにより、エラーが発生したか否かを判定する（Ｓ７）。
【００５２】
ＮＣドライバ１２は、測定値が予測値の範囲に入っておらず、エラーが発生したと判定した場合に、測定装置２においてエラーが発生したことを示すエラー情報を命令格納領域に書き込む（Ｓ８）。具体的には、ＮＣドライバ１２は、命令格納領域の動作通知フラグ領域に書き込まれている情報（動作フラグ変数の値が格納されているアドレス）に基づいて、現在実行されている工作機械用命令が格納されている領域を特定する。そして、ＮＣドライバ１２は、特定した領域に対応する動作フラグ領域に、エラーが発生したことを示す情報である「８」を書き込む。
【００５３】
また、ＮＣドライバ１２は、次命令指定変数を格納する領域を参照し、特定した命令の後に実行される動作の命令が格納されている命令格納領域を特定する。そして、ＮＣドライバ１２は、特定した命令格納領域に格納されている命令を消去するとともに、次に実行させる動作に対応する命令として、復旧動作に対応する命令を当該命令格納領域に格納する。ここで、復旧動作は、例えば、三次元測定における最初の動作、又はエラーが発生した動作を開始する時点におけるプローブ位置への移動処理である。ＮＣドライバ１２は、例えば、プローブの位置決めを測定装置２に実行させるために、動作フラグ領域に「１」を書き込む。これにより、測定装置２において、復旧動作が行われ、適切な状態に戻すことができるので、測定システムＳは、三次元測定を早期に再開することができる。
【００５４】
ＮＣコントローラ２１は、動作の実行中に、当該動作に対応する命令が格納されている領域の動作フラグ領域を監視し、当該領域に「８」が書き込まれたことに応じて、ＮＣ工作機械２２が実行中の動作を停止させる。そして、ＮＣコントローラ２１は、当該動作の次に実行される動作の命令が格納されている命令格納領域を参照し、復旧動作を実行する（Ｓ５２ｆ）。
【００５５】
なお、ＮＣドライバ１２は、測定装置２にエラーが発生したか否かを判定し、エラーが発生したと判定した場合に、動作フラグ変数の値をエラーが発生したことを示す値「８」に書き換えるとともに、復旧動作に対応する命令を当該命令格納領域に格納したが、これに限らない。例えば、ＮＣドライバ１２は、ＮＣコントローラ２１が、動作フラグ変数の値を「７」に書き換えたことに応じて、復旧動作に対応する命令を、次に実行される予定の命令が格納されている命令格納領域に格納し、ＮＣコントローラ２１に復旧動作を実行させるようにしてもよい。このようにすることで、制御装置１は、ＮＣコントローラ２１側でエラーを検出した場合にも、ＮＣコントローラ２１に復旧動作を実行させることができる。
【００５６】
ＮＣコントローラ２１は、一の工作機械用命令に基づく動作が完了すると、当該命令が格納されている命令格納領域内の次命令指定変数が格納される領域に書き込まれているアドレスが示す命令格納領域を参照し、次の命令を特定する。例えば、ＮＣコントローラ２１は、第１領域におけるアドレス＃９１４の領域に格納されているアドレスに基づいて、次に実行する工作機械用命令が第２領域に格納されていることを特定する。そして、ＮＣコントローラ２１は、Ｓ４１の処理を再実行する。ＮＣコントローラ２１は、ＮＣ工作機械２２に実行させる動作を特定すると、複数の命令格納領域に共通の動作通知フラグ領域に書き込まれている情報を、第２領域において動作フラグの値が格納されているアドレスを示す値に書き換える。ＮＣコントローラ２１は、Ｓ４１の処理を再実行する場合、第２領域のアドレス＃９５３の領域に格納されている動作フラグ変数を監視し、以降の処理を実行する。
【００５７】
ＮＣドライバ１２は、Ｓ７においてエラーが発生していないと判定すると、Ｓ６において取得した測定結果情報を制御装置用の測定結果データに変換する（Ｓ９）。
なお、ＮＣドライバ１２は、命令格納領域に書き込まれておらず、制御装置１の記憶部に一時的に記憶されている命令を、動作完了情報が格納されている命令格納領域に書き込む。ＮＣドライバ１２は、例えば、制御装置１の記憶部に一時的に記憶されている一以上の工作機械用命令のうち、最初に実行される命令である第（ｎ＋１）命令を、動作フラグ変数に動作完了情報である「５」が書き込まれた第１領域に書き込む。
【００５８】
また、ＮＣドライバ１２は、測定結果情報を取得した場合において、当該測定結果情報が格納されている命令格納領域への書き込み対象となる工作機械用命令が存在しないとき、当該命令格納領域に工作機械用命令を書き込める状態であることを示す情報を当該命令格納領域に書き込む。例えば、ＮＣドライバ１２は、命令格納領域の状態が初期状態であることを示す情報を、当該命令格納領域に書き込む。このようにすることで、新たにワークの測定等を行う場合に、命令格納領域の状態を初期状態にすることなく、速やかに測定作業を進めることができる。
【００５９】
また、ＮＣドライバ１２は、測定装置２による測定結果に基づいて命令が分岐する場合、分岐後の複数の命令のそれぞれを複数の命令格納領域のそれぞれに予め書き込み、当該測定結果を取得した後に、分岐先の命令に対応するアドレスを、分岐する直前の命令が格納されている命令格納領域に書き込むようにしてもよい。このようにすることで、制御装置１は、測定装置２に分岐後の命令を速やかに実行させることができる。
【００６０】
また、ＮＣドライバ１２は、測定装置２による測定結果に基づいて命令が分岐する場合、当該測定結果を取得した後に、分岐先の命令を、分岐する直前の命令が格納されている命令格納領域に格納されているアドレスに対応する命令格納領域に書き込むようにしてもよい。このようにすることで、制御装置１は、複数の分岐に対応する全ての命令を命令格納領域に書き込む必要がないので、命令格納領域の容量に制約がある場合であっても、分岐命令を使用することができる。
【００６１】
［本実施形態における効果］
以上説明したように、本実施形態に係る測定システムＳにおいて、制御装置１のＮＣドライバ１２は、命令格納領域に命令を書込み、当該命令と、測定装置が当該命令に基づいて実行した動作の結果とに基づく情報を命令格納領域に書き込む。このようにすることで、測定システムＳは、ＮＣドライバ１２側で、命令と、動作の結果とに基づいてエラーが発生したと判定した場合に、エラーが発生したことを示す情報を命令格納領域に書き込むことにより測定装置２に通知し、測定装置２に復旧動作等の適切な動作を実行させることができる。よって、測定システムＳは、エラー発生時に適切な処理を行うことができる。
【００６２】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。そのような変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【符号の説明】
【００６３】
１    制御装置
１１    データ処理部
１２    ＮＣドライバ
２    測定装置
２１    ＮＣコントローラ
２２    ＮＣ工作機械
Ｓ    測定システム
【図１】
2018156528.tif 000003
【図２】
2018156528.tif 000004
【図３】
2018156528.tif 000005
【図４】
2018156528.tif 000006
【図５】
2018156528.tif 000007