(57)【特許請求の範囲】
【請求項１】
測定器を装着することが可能な主軸を備え、前記測定器は、当該測定器から測定対象物までの距離を測定可能に構成されており、
前記主軸を駆動することで、前記測定器の位置を変化させるための駆動装置と、
前記測定器の位置を検知するための検知部と、
前記駆動装置と通信可能に構成され、かつ前記駆動装置の駆動を制御するための制御装置とを備え、
前記制御装置は、
第１パルス信号を生成する処理と、
前記第１パルス信号に従って、前記検知部による前記位置の検知タイミングを制御する処理と、
前記測定器による前記距離の測定タイミングと前記検知部による前記位置の検知タイミングとを同期させるための同期パルス信号を生成する処理と、
前記同期パルス信号を前記測定器に送信する処理とを実行し、
前記測定器は、
前記第１パルス信号および前記同期パルス信号と同周期の第２パルス信号を生成する処理と、
前記制御装置と通信可能な場合には、前記同期パルス信号に従って前記距離の測定タイミングを制御する処理と、
前記制御装置と通信不能な場合には、前記第２パルス信号に従って前記距離の測定タイミングを制御する処理とを実行し、
前記制御装置は、さらに、前記測定器と通信不能な状態が第１の所定時間以上継続した場合に、前記測定器と通信可能な位置まで前記駆動装置に前記主軸を駆動させる処理を実行する、工作機械。
【請求項２】
前記同期パルス信号は、前記第１パルス信号と同周期であり、
前記第１パルス信号は、第１パルスを含み、
前記同期パルス信号は、前記第１パルスに対応する同期パルスを含み、
前記同期パルスの立ち上がりタイミングは、前記第１パルスの立ち上がりタイミングよりも予め設定された時間だけ早い、請求項１に記載の工作機械。
【請求項３】
前記第２パルス信号は、前記第１パルスに対応する第２パルスを含み、
前記制御装置は、
前記駆動させる処理の実行により前記制御装置との通信が回復したことに基づいて、前記第１パルスの立ち上がりタイミングと前記第２パルスの立ち上がりタイミングとの差を算出する処理と、
前記差の絶対値が所定時間以上である場合に、予め定められた処理を実行する処理とを実行する、請求項２に記載の工作機械。
【請求項４】
前記予め定められた処理は、警告を出力する処理を含む、請求項３に記載の工作機械。
【請求項５】
前記予め定められた処理は、前記差に基づいて、前記制御装置と前記測定器とが通信不能な間に測定された前記距離を補正する処理を含む、請求項３または４に記載の工作機械。
【請求項６】
前記測定器は、前記駆動させる処理の実行により前記制御装置との通信が回復したことに基づいて、前記第２パルス信号を前記第１パルス信号に同期させる、請求項１〜５のいずれか１項に記載の工作機械。
【請求項７】
前記測定器は、
前記制御装置と通信不能な間に測定した前記距離を前記測定器内のバッファにバッファリングする処理と、
前記駆動させる処理の実行により前記制御装置との通信が回復したことに基づいて、前記バッファにバッファリングされた前記距離を前記制御装置に送信する処理とを実行する、請求項１〜６のいずれか１項に記載の工作機械。
【請求項８】
前記制御装置は、さらに、
前記測定器と通信不能な状態が前記第１の所定時間以上継続した際の加工条件を記憶する処理と、
前記記憶した加工条件と同条件で加工が行われた場合において、前記測定器と通信不能な状態が第２の所定時間以上継続したときには、前記測定器と通信可能な位置まで前記駆動装置に前記主軸を駆動させる処理を実行し、
前記第２の所定時間は、前記第１の所定時間よりも短い、請求項１〜７のいずれか１項に記載の工作機械。
【請求項９】
測定器を装着することが可能な主軸を備え、前記測定器は、当該測定器から測定対象物までの距離を測定可能に構成されており、
前記主軸を駆動することで、前記測定器の位置を変化させるための駆動装置と、
前記測定器の位置を検知するための検知部と、
前記駆動装置と通信可能に構成され、前記駆動装置の駆動を制御するための制御装置とを備え、
前記測定器は、
第１パルス信号を生成する処理と、
前記第１パルス信号に従って、前記距離の測定タイミングを制御する処理と、
前記測定器による前記距離の測定タイミングと前記検知部による前記位置の検知タイミングとを同期させるための同期パルス信号を生成する処理と、
前記同期パルス信号を前記制御装置に送信する処理とを実行し、
前記制御装置は、
前記第１パルス信号および前記同期パルス信号と同周期の第２パルス信号を生成する処理と、
前記測定器と通信可能な場合には、前記同期パルス信号に従って前記検知タイミングを制御する処理と、
前記測定器と通信不能な場合には、前記第２パルス信号に従って前記検知タイミングを制御する処理と、
前記測定器と通信不能な状態が所定時間以上継続した場合に、前記測定器と通信可能な位置まで前記駆動装置に前記主軸を駆動させる処理とを実行する、工作機械。
【請求項１０】
工作機械の制御方法であって、
前記工作機械は、測定器を装着することが可能な主軸を備え、前記測定器は、当該測定器から測定対象物までの距離を測定可能に構成されており、
前記工作機械は、さらに、
前記主軸を駆動することで、前記測定器の位置を変化させるための駆動装置と、
前記測定器の位置を検知するための検知部と、
前記駆動装置と通信可能に構成され、かつ前記駆動装置の駆動を制御するための制御装置とを備え、
前記制御方法は、
第１パルス信号を生成するステップと、
前記第１パルス信号に従って、前記検知部による前記位置の検知タイミングを制御するステップと、
前記測定器による前記距離の測定タイミングと前記検知部による前記位置の検知タイミングとを同期させるための同期パルス信号を生成するステップと、
前記同期パルス信号を前記測定器に送信するステップと、
前記第１パルス信号および前記同期パルス信号と同周期の第２パルス信号を生成するステップと、
前記制御装置と通信可能な場合には、前記同期パルス信号に従って前記距離の測定タイミングを制御するステップと、
前記制御装置と通信不能な場合には、前記第２パルス信号に従って前記距離の測定タイミングを制御するステップと、
前記測定器と通信不能な状態が所定時間以上継続した場合に、前記測定器と通信可能な位置まで前記駆動装置に前記主軸を駆動させるステップとを備える、制御方法。
【請求項１１】
工作機械の制御プログラムであって、
前記工作機械は、測定器を装着することが可能な主軸を備え、前記測定器は、当該測定器から測定対象物までの距離を測定可能に構成されており、
前記工作機械は、さらに、
前記主軸を駆動することで、前記測定器の位置を変化させるための駆動装置と、
前記測定器の位置を検知するための検知部と、
前記駆動装置と通信可能に構成され、かつ前記駆動装置の駆動を制御するための制御装置とを備え、
前記制御プログラムは、前記工作機械に、
第１パルス信号を生成するステップと、
前記第１パルス信号に従って、前記検知部による前記位置の検知タイミングを制御するステップと、
前記測定器による前記距離の測定タイミングと前記検知部による前記位置の検知タイミングとを同期させるための同期パルス信号を生成するステップと、
前記同期パルス信号を前記測定器に送信するステップと、
前記第１パルス信号および前記同期パルス信号と同周期の第２パルス信号を生成するステップと、
前記制御装置と通信可能な場合には、前記同期パルス信号に従って前記距離の測定タイミングを制御するステップと、
前記制御装置と通信不能な場合には、前記第２パルス信号に従って前記距離の測定タイミングを制御するステップと、
前記測定器と通信不能な状態が所定時間以上継続した場合に、前記測定器と通信可能な位置まで前記駆動装置に前記主軸を駆動させるステップとを実行させる、制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、工作機械に備えられている主軸の駆動を制御するための技術に関する。
【背景技術】
【０００２】
主軸に装着された測定器を用いてワーク表面の形状を測定することが可能な工作機械が普及している。当該工作機械は、測定器が装着された主軸を駆動しながらワーク表面形状を測定する。したがって、ワーク表面の形状を正確に測定するためには、当該工作機械は、各測定時点で測定器の位置を正確に認識する必要がある。
【０００３】
特開２０１１−１６７７８７号公報（特許文献１）は、測定ヘッドの測定結果を測定ヘッドの位置データと同期させるための工作機械を開示している。当該工作機械は、ＮＣ（Numerical Control）装置から測定ヘッドへの測定指令の出力タイミングを、ＮＣ装置による測定ヘッドの位置の取得タイミングよりも、一定時間早める。これにより、当該工作機械は、測定ヘッドによる測定タイミングと、測定ヘッドの位置の取得タイミングとを一致させる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１６７７８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
工作機械の制御装置は、測定器と通信することで測定器から測定結果を定期的に受信する。このとき、工作機械は、測定器と通信不能になることがある。一例として、ワークなどの障害物によって測定器と受信機との通信が遮られることで、制御装置は、測定器と通信不能となる。このような通信障害が生じた場合でも、制御装置および測定器を同期させることが可能な技術が望まれている。
【課題を解決するための手段】
【０００６】
本開示の一例では、工作機械は、測定器を装着することが可能な主軸を備える。上記測定器は、当該測定器から測定対象物までの距離を測定可能に構成されている。上記工作機械は、上記主軸を駆動することで、上記測定器の位置を変化させるための駆動装置と、上記測定器の位置を検知するための検知部と、上記駆動装置と通信可能に構成され、かつ上記駆動装置の駆動を制御するための制御装置とを備える。上記制御装置は、第１パルス信号を生成する処理と、上記第１パルス信号に従って、上記検知部による上記位置の検知タイミングを制御する処理と、上記測定器による上記距離の測定タイミングと上記検知部による上記位置の検知タイミングとを同期させるための同期パルス信号を生成する処理と、上記同期パルス信号を上記測定器に送信する処理とを実行する。上記測定器は、上記同期パルス信号と同周期の第２パルス信号を生成する処理と、上記制御装置と通信可能な場合には、上記同期パルス信号に従って上記距離の測定タイミングを制御する処理と、上記制御装置と通信不能な場合には、上記第２パルス信号に従って上記距離の測定タイミングを制御する処理とを実行する。上記制御装置は、さらに、上記測定器と通信不能な状態が第１の所定時間以上継続した場合に、上記測定器と通信可能な位置まで上記駆動装置に上記主軸を駆動させる処理を実行する。
【０００７】
本開示の一例では、上記同期パルス信号は、上記第１パルス信号と同周期である。上記第１パルス信号は、第１パルスを含む。上記同期パルス信号は、上記第１パルスに対応する同期パルスを含む。上記同期パルスの立ち上がりタイミングは、上記第１パルスの立ち上がりタイミングよりも予め設定された時間だけ早い。
【０００８】
本開示の一例では、上記第２パルス信号は、上記第１パルスに対応する第２パルスを含む。上記制御装置は、上記駆動させる処理の実行により上記制御装置との通信が回復したことに基づいて、上記第１パルスの立ち上がりタイミングと上記第２パルスの立ち上がりタイミングとの差を算出する処理と、上記差の絶対値が所定時間以上である場合に、予め定められた処理を実行する処理とを実行する。
【０００９】
本開示の一例では、上記予め定められた処理は、警告を出力する処理を含む。
【００１０】
本開示の一例では、上記予め定められた処理は、上記差に基づいて、上記制御装置と上記測定器とが通信不能な間に測定された上記距離を補正する処理を含む。
【００１１】
本開示の一例では、上記測定器は、上記駆動させる処理の実行により上記制御装置との通信が回復したことに基づいて、上記第２パルス信号を上記第１パルス信号に同期させる。
【００１２】
本開示の一例では、上記測定器は、上記制御装置と通信不能な間に測定した上記距離を上記測定器内のバッファにバッファリングする処理と、上記駆動させる処理の実行により上記制御装置との通信が回復したことに基づいて、上記バッファにバッファリングされた上記距離を上記制御装置に送信する処理とを実行する。
【００１３】
本開示の一例では、上記制御装置は、さらに、上記測定器と通信不能な状態が上記第１の所定時間以上継続した際の加工条件を記憶する処理と、上記記憶した加工条件と同条件で加工が行われた場合において、上記測定器と通信不能な状態が第２の所定時間以上継続したときには、上記測定器と通信可能な位置まで上記駆動装置に上記主軸を駆動させる処理を実行する。上記第２の所定時間は、上記第１の所定時間よりも短い。
【００１４】
本開示の他の例では、工作機械は、測定器を装着することが可能な主軸を備える。上記測定器は、当該測定器から測定対象物までの距離を測定可能に構成されている。上記工作機械は、上記主軸を駆動することで、上記測定器の位置を変化させるための駆動装置と、上記測定器の位置を検知するための検知部と、上記駆動装置と通信可能に構成され、上記駆動装置の駆動を制御するための制御装置とを備える。上記測定器は、第１パルス信号を生成する処理と、上記第１パルス信号に従って、上記距離の測定タイミングを制御する処理と、上記測定器による上記距離の測定タイミングと上記検知部による上記位置の検知タイミングとを同期させるための同期パルス信号を生成する処理と、上記同期パルス信号を上記制御装置に送信する処理とを実行する。上記制御装置は、上記同期パルス信号と同周期の第２パルス信号を生成する処理と、上記測定器と通信可能な場合には、上記同期パルス信号に従って上記検知タイミングを制御する処理と、上記測定器と通信不能な場合には、上記第２パルス信号に従って上記検知タイミングを制御する処理と、上記測定器と通信不能な状態が所定時間以上継続した場合に、上記測定器と通信可能な位置まで上記駆動装置に上記主軸を駆動させる処理とを実行する。
【００１５】
本開示の他の例では、工作機械の制御方法が提供される。上記工作機械は、測定器を装着することが可能な主軸を備える。上記測定器は、当該測定器から測定対象物までの距離を測定可能に構成されている。上記工作機械は、さらに、上記主軸を駆動することで、上記測定器の位置を変化させるための駆動装置と、上記測定器の位置を検知するための検知部と、上記駆動装置と通信可能に構成され、かつ上記駆動装置の駆動を制御するための制御装置とを備える。上記制御方法は、第１パルス信号を生成するステップと、上記第１パルス信号に従って、上記検知部による上記位置の検知タイミングを制御するステップと、上記測定器による上記距離の測定タイミングと上記検知部による上記位置の検知タイミングとを同期させるための同期パルス信号を生成するステップと、上記同期パルス信号を上記測定器に送信するステップと、上記同期パルス信号と同周期の第２パルス信号を生成するステップと、上記制御装置と通信可能な場合には、上記同期パルス信号に従って上記距離の測定タイミングを制御するステップと、上記制御装置と通信不能な場合には、上記第２パルス信号に従って上記距離の測定タイミングを制御するステップと、上記測定器と通信不能な状態が所定時間以上継続した場合に、上記測定器と通信可能な位置まで上記駆動装置に上記主軸を駆動させるステップとを備える。
【００１６】
本開示の他の例では、工作機械の制御プログラムが提供される。上記工作機械は、測定器を装着することが可能な主軸を備え、上記測定器は、当該測定器から測定対象物までの距離を測定可能に構成されている。上記工作機械は、さらに、上記主軸を駆動することで、上記測定器の位置を変化させるための駆動装置と、上記測定器の位置を検知するための検知部と、上記駆動装置と通信可能に構成され、かつ上記駆動装置の駆動を制御するための制御装置とを備える。上記制御プログラムは、上記工作機械に、第１パルス信号を生成するステップと、上記第１パルス信号に従って、上記検知部による上記位置の検知タイミングを制御するステップと、上記測定器による上記距離の測定タイミングと上記検知部による上記位置の検知タイミングとを同期させるための同期パルス信号を生成するステップと、上記同期パルス信号を上記測定器に送信するステップと、上記同期パルス信号と同周期の第２パルス信号を生成するステップと、上記制御装置と通信可能な場合には、上記同期パルス信号に従って上記距離の測定タイミングを制御するステップと、上記制御装置と通信不能な場合には、上記第２パルス信号に従って上記距離の測定タイミングを制御するステップと、上記測定器と通信不能な状態が所定時間以上継続した場合に、上記測定器と通信可能な位置まで上記駆動装置に上記主軸を駆動させるステップとを実行させる。
【００１７】
本発明の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解される本発明に関する次の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【００１８】
【図１】工作機械の外観を示す図である。
【図２】工作機械における駆動機構の構成例を示す図である。
【図３】測定器の内部構造を示す断面図である。
【図４】測定器による距離データの測定過程を時系列で示す図である。
【図５】制御装置と測定器との同期処理を実現するための機能構成の一例を示す図である。
【図６】第１パルス信号と同期パルス信号と第２パルス信号とを示す図である。
【図７】第１パルス信号に基づいた主軸位置の検知タイミングと、同期パルス信号に基づいた距離データの測定タイミングと、第２パルス信号に基づいた距離データの測定タイミングとを概略的に示す図である。
【図８】位置データベースのデータ構造の一例を示す図である。
【図９】距離データベースへの距離データの書込処理を概略的に示す概念図である。
【図１０】位置データベースと距離データベースとのマージ処理を概略的に示す概念図である。
【図１１】制御装置と測定器との通信復帰処理を実現するための機能構成の一例を示す図である。
【図１２】第１パルス信号と同期パルス信号と第２パルス信号とを示す図である。
【図１３】第１パルス信号と第２パルス信号とを示す図である。
【図１４】補正前の距離データと補正後の距離データとを示す図である。
【図１５】加工プログラムの一例を示す図である。
【図１６】測定器のハードウェア構成の一例を示す図である。
【図１７】ＣＰＵ（Central Processing Unit）ユニットのハードウェア構成の一例を示す図である。
【図１８】ＣＮＣ（Computerized Numerical Control）ユニットのハードウェア構成の一例を示す図である。
【図１９】情報処理装置のハードウェア構成の一例を示す図である。
【図２０】主軸位置の取得処理の流れを示すフローチャートである。
【図２１】距離データの測定処理の流れを示すフローチャートである。
【図２２】制御装置と測定器との通信状態の監視処理の流れを示すフローチャートである。
【図２３】制御装置と測定器との同期処理を実現するための機能構成の他の例を示す図である。
【発明を実施するための形態】
【００１９】
以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。なお、以下で説明される各実施の形態および各変形例は、適宜選択的に組み合わされてもよい。
【００２０】
＜Ａ．工作機械１００の構成＞
まず、図１を参照して、工作機械１００の構成について説明する。図１は、工作機械１００の外観を示す図である。
【００２１】
工作機械１００は、ワークの加工機である。一例として、工作機械１００は、ワークの除去加工（ＳＭ（Subtractive manufacturing）加工）を行う工作機械である。あるいは、工作機械１００は、ワークの付加加工（ＡＭ（Additive manufacturing）加工）を行う工作機械であってもよい。また、工作機械１００は、立形のマシニングセンタであってもよいし、横形のマシニングセンタであってもよいし、ターニングセンタであってもよい。あるいは、工作機械１００は、旋盤であってもよいし、その他の切削機械や研削機械であってもよい。さらに、工作機械は、これらを組み合わせた複合機であってもよい。
【００２２】
工作機械１００は、加工エリアＡＲ１と、工具エリアＡＲ２とを有する。加工エリアＡＲ１および工具エリアＡＲ２は、それぞれカバーによって区画化されている。加工エリアＡＲ１には、主軸頭１３０が設けられている。工具エリアＡＲ２には、ＡＴＣ１６０と、マガジン１７０とが設けられている。マガジン１７０は、ワークの加工に用いられる種々の工具を収納する。マガジン１７０に収納されている工具は、加工エリアＡＲ１と工具エリアＡＲ２との間の仕切に設けられているドアＤを介して主軸頭１３０に取り付けられる。ドアＤは、スライド式のドアであり、モータなどの駆動源により開閉される。
【００２３】
＜Ｂ．工作機械１００の駆動機構＞
次に、図２を参照して、工作機械１００における各種の駆動機構について説明する。図２は、工作機械１００における駆動機構の構成例を示す図である。
【００２４】
図２に示されるように、工作機械１００は、制御装置５と、回転駆動部１１０Ａと、位置駆動部１１０Ｂと、ＡＴＣドライバ１１１Ｎと、主軸頭１３０と、ＡＴＣ１６０とを含む。
【００２５】
本明細書でいう「制御装置５」とは、工作機械１００を制御する装置を意味する。制御装置５の装置構成は、任意である。制御装置５は、単体の制御ユニットで構成されてもよいし、複数の制御ユニットで構成されてもよい。図２の例では、制御装置５は、ＣＰＵユニット２０と、ＣＮＣユニット３０と、情報処理装置４０とで構成されている。
【００２６】
ＣＰＵユニット２０およびＣＮＣユニット３０は、たとえば、バスＢを介して互いに通信を行う。ＣＮＣユニット３０および情報処理装置４０は、たとえば、通信経路ＮＷ（たとえば、無線ＬＡＮ、有線ＬＡＮ、フィールドネットワークなど）を介して互いに通信を行う。
【００２７】
ＣＰＵユニット２０は、ＰＬＣ（Programmable Logic Controller）である。ＣＰＵユニット２０は、予め設計されているＰＬＣプログラムに従って、制御装置５を構成する各種ユニットを制御する。当該ＰＬＣプログラムは、たとえば、ラダープログラムで記述されている。ＣＰＵユニット２０は、当該ＰＬＣプログラムに従ってＡＴＣドライバ１１１Ｎを制御し、ＡＴＣ１６０の送り駆動および回転駆動を制御する。
【００２８】
ＡＴＣ１６０は、中心軸１６５と、アーム１６６とを含む。図２の例では、中心軸１６５は、Ｚ軸に平行に設けられている。アーム１６６は、中心軸１６５の軸方向に直交する一方向に中心軸１６５から延出している工具把持部１６６Ａと、当該一方向の反対方向に中心軸１６５から延出している工具把持部１６６Ｂとを含む。
【００２９】
ＡＴＣドライバ１１１Ｎは、たとえば、２軸一体型のドライバであり、ＡＴＣ１６０に接続される第１，第２サーボモータ（図示しない）の駆動を制御する。より具体的には、ＡＴＣドライバ１１１Ｎは、第１サーボモータの目標回転速度の入力と、第２サーボモータの目標回転速度の入力とのそれぞれをＣＰＵユニット２０から受け、第１，第２サーボモータ（図示しない）のそれぞれを制御する。
【００３０】
上記第１サーボモータは、ＡＴＣドライバ１１１Ｎからの出力電流に従ってＡＴＣ１６０のアーム１６６を送り駆動し、Ｚ軸方向の任意の位置にアーム１６６を駆動する。上記第２サーボモータは、ＡＴＣドライバ１１１Ｎからの出力電流に従ってＡＴＣ１６０のアーム１６６を回転駆動し、Ｚ軸を中心とした回転方向（すなわち、Ｃ軸方向）の任意の回転角度にアーム１６６を駆動する。
【００３１】
ＡＴＣ１６０は、工具の交換命令を受けたことに基づいて、マガジン１７０から次使用工具Ｔ２を取得する。その後、ＡＴＣ１６０は、使用済工具Ｔ１を主軸１３２から抜き取るとともに、次使用工具Ｔ２を主軸１３２に装着する。その後、ＡＴＣ１６０は、主軸１３２から抜き取った使用済工具Ｔ１をマガジン１７０に収納する。
【００３２】
ＣＮＣユニット３０は、ＣＰＵユニット２０からの加工開始指令を受けたことに基づいて、予め設計されている加工プログラムの実行を開始する。当該加工プログラムは、たとえば、ＮＣ（Numerical Control）プログラムで記述されている。ＣＮＣユニット３０は、当該加工プログラムに従って、回転駆動部１１０Ａおよび位置駆動部１１０Ｂを制御し、主軸頭１３０を駆動する。
【００３３】
主軸頭１３０は、主軸筒１３１と、主軸１３２とを含む。主軸１３２は、主軸筒１３１により回転可能に支持されている。主軸１３２にはマガジン１７０から選択された一の工具が装着される。工具は、主軸１３２と連動して回転する。
【００３４】
回転駆動部１１０Ａは、主軸１３２の角度を変えるための駆動機構である。一例として、回転駆動部１１０Ａは、Ｘ軸方向を回転軸中心とした回転方向（以下、「Ａ軸方向」ともいう。）、Ｙ軸方向を回転軸中心とした回転方向（以下、「Ｂ軸方向」ともいう。）、および、Ｚ軸方向を回転軸中心とした回転方向（以下、「Ｃ軸方向」ともいう。）の少なくとも１つの角度を調整する。回転駆動部１１０Ａの装置構成は、任意である。回転駆動部１１０Ａは、単体の駆動ユニットで構成されてもよいし、複数の駆動ユニットで構成されてもよい。図２の例では、回転駆動部１１０Ａは、サーボドライバ１１１Ｂ、１１１Ｃで構成されている。
【００３５】
位置駆動部１１０Ｂは、主軸１３２の位置を変えるための駆動機構である。一例として、位置駆動部１１０Ｂは、Ｘ軸方向、Ｙ軸方向およびＺ軸方向の少なくとも１つの位置を調整する。位置駆動部１１０Ｂの装置構成は、任意である。位置駆動部１１０Ｂは、単体の駆動ユニットで構成されてもよいし、複数の駆動ユニットで構成されてもよい。図２の例では、位置駆動部１１０Ｂは、サーボドライバ１１１Ｘ〜１１１Ｚで構成されている。
【００３６】
サーボドライバ１１１Ｂは、ＣＮＣユニット３０から目標回転速度の入力を逐次的に受け、Ｂ軸方向に主軸頭１３０を回転駆動するためのサーボモータ１１２Ｂを制御する。
【００３７】
より具体的には、サーボドライバ１１１Ｂは、サーボモータ１１２Ｂの回転角度を検知するためのエンコーダ１１３Ｂのフィードバック信号からサーボモータ１１２Ｂの実回転速度を算出し、当該実回転速度が目標回転速度よりも小さい場合にはサーボモータ１１２Ｂの回転速度を上げ、当該実回転速度が目標回転速度よりも大きい場合にはサーボモータ１１２Ｂの回転速度を下げる。このように、サーボドライバ１１１Ｂは、サーボモータ１１２Ｂの回転速度のフィードバックを逐次的に受けながらサーボモータ１１２Ｂの回転速度を目標回転速度に近付ける。これにより、サーボドライバ１１１Ｂは、Ｂ軸方向における主軸頭１３０の回転速度を調整する。また、サーボドライバ１１１Ｂは、当該回転速度を時間で積分することでＢ軸方向における主軸１３２の回転角度を得ることができる。
【００３８】
サーボドライバ１１１Ｃは、ＣＮＣユニット３０から目標回転速度の入力を逐次的に受け、主軸１３２の軸方向を中心とした回転方向に主軸１３２を回転駆動するためのサーボモータ１１２Ｃを制御する。
【００３９】
より具体的には、サーボドライバ１１１Ｃは、サーボモータ１１２Ｃの回転角度を検知するためのエンコーダ１１３Ｃのフィードバック信号からサーボモータ１１２Ｃの実回転速度を算出し、当該実回転速度が目標回転速度よりも小さい場合にはサーボモータ１１２Ｃの回転速度を上げ、当該実回転速度が目標回転速度よりも大きい場合にはサーボモータ１１２Ｃの回転速度を下げる。このように、サーボドライバ１１１Ｃは、サーボモータ１１２Ｃの回転速度のフィードバックを逐次的に受けながらサーボモータ１１２Ｃの回転速度を目標回転速度に近付ける。これにより、サーボドライバ１１１Ｃは、主軸１３２の回転速度を調整する。また、サーボドライバ１１１Ｃは、当該回転速度を時間で積分することでＣ軸方向における主軸１３２の回転角度を得ることができる。
【００４０】
サーボドライバ１１１Ｘは、ＣＮＣユニット３０から目標位置の入力を逐次的に受け、サーボモータ１１２Ｘを制御する。サーボモータ１１２Ｘは、主軸頭１３０が取り付けられている移動体をボールネジ（図示しない）を介して送り駆動し、Ｘ軸方向の任意の位置に主軸頭１３０を移動する。
【００４１】
より具体的には、サーボドライバ１１１Ｘは、サーボモータ１１２Ｘの回転角度を検知するためのエンコーダ１１３Ｘのフィードバック信号からサーボモータ１１２Ｘの実回転速度を算出し、当該実回転速度が目標回転速度よりも小さい場合にはサーボモータ１１２Ｘの回転速度を上げ、当該実回転速度が目標回転速度よりも大きい場合にはサーボモータ１１２Ｘの回転速度を下げる。このように、サーボドライバ１１１Ｘは、サーボモータ１１２Ｘの回転速度のフィードバックを逐次的に受けながらサーボモータ１１２Ｘの回転速度を目標回転速度に近付ける。これにより、サーボドライバ１１１Ｘは、主軸１３２の回転速度を調整する。また、サーボドライバ１１１Ｘは、当該回転速度を時間で積分することでＸ軸方向における主軸１３２の位置を得ることができる。
【００４２】
サーボドライバ１１１Ｙは、ＣＮＣユニット３０から目標位置の入力を逐次的に受け、サーボモータ１１２Ｙを制御する。サーボモータ１１２Ｙは、主軸頭１３０が取り付けられている移動体をボールネジ（図示しない）を介して送り駆動し、Ｙ軸方向の任意の位置に主軸頭１３０を移動する。
【００４３】
より具体的には、サーボドライバ１１１Ｙは、サーボモータ１１２Ｙの回転角度を検知するためのエンコーダ１１３Ｙのフィードバック信号からサーボモータ１１２Ｙの実回転速度を算出し、当該実回転速度が目標回転速度よりも小さい場合にはサーボモータ１１２Ｙの回転速度を上げ、当該実回転速度が目標回転速度よりも大きい場合にはサーボモータ１１２Ｙの回転速度を下げる。このように、サーボドライバ１１１Ｙは、サーボモータ１１２Ｙの回転速度のフィードバックを逐次的に受けながらサーボモータ１１２Ｙの回転速度を目標回転速度に近付ける。これにより、サーボドライバ１１１Ｙは、主軸１３２の回転速度を調整する。また、サーボドライバ１１１Ｙは、当該回転速度を時間で積分することでＹ軸方向における主軸１３２の位置を得ることができる。
【００４４】
サーボドライバ１１１Ｚは、ＣＮＣユニット３０から目標位置の入力を逐次的に受け、サーボモータ１１２Ｚを制御する。サーボモータ１１２Ｚは、主軸頭１３０が取り付けられている移動体をボールネジ（図示しない）を介して送り駆動し、Ｚ軸方向の任意の位置に主軸頭１３０を移動する。
【００４５】
より具体的には、サーボドライバ１１１Ｚは、サーボモータ１１２Ｚの回転角度を検知するためのエンコーダ１１３Ｚのフィードバック信号からサーボモータ１１２Ｚの実回転速度を算出し、当該実回転速度が目標回転速度よりも小さい場合にはサーボモータ１１２Ｚの回転速度を上げ、当該実回転速度が目標回転速度よりも大きい場合にはサーボモータ１１２Ｚの回転速度を下げる。このように、サーボドライバ１１１Ｚは、サーボモータ１１２Ｚの回転速度のフィードバックを逐次的に受けながらサーボモータ１１２Ｚの回転速度を目標回転速度に近付ける。これにより、サーボドライバ１１１Ｚは、主軸１３２の回転速度を調整する。また、サーボドライバ１１１Ｚは、当該回転速度を時間で積分することでＺ軸方向における主軸１３２の位置を得ることができる。
【００４６】
なお、上述では、回転駆動部１１０Ａがサーボドライバで構成されている例について説明を行ったが、回転駆動部１１０Ａは、その他のモータドライバで構成されてもよい。一例として、回転駆動部１１０Ａは、ステッピングモータ用の１つ以上のモータドライバで構成されてもよい。同様に、位置駆動部１１０Ｂは、ステッピングモータ用の１つ以上のモータドライバで構成されてもよい。
【００４７】
情報処理装置４０は、汎用のコンピュータである。一例として、情報処理装置４０は、デスクトップ型のコンピュータであってもよいし、ノート型のコンピュータであってもよいし、タブレット端末であってもよい。
【００４８】
情報処理装置４０は、ワークの形状を測定するための測定器１０と無線で通信を行う。測定器１０は、非使用時にはマガジン１７０（図１参照）に収納されており、使用時にはＡＴＣ１６０によって主軸１３２に装着される。測定器１０は、ワークの加工前、ワークの加工中、およびワークの加工後において、主軸１３２に装着された状態でワークの形状を測定する。
【００４９】
一例として、測定器１０は、距離センサとして機能する。より具体的には、測定器１０は、レーザ光をワークの表面に向けて照射し、ワークＷの表面により反射されたレーザ光を受光してワークＷの表面との間の距離を算出する。測定器１０による測定結果は、情報処理装置４０に送信される。情報処理装置４０は、測定器１０の測定結果に基づいて、種々の処理を実行する。
【００５０】
＜Ｃ．測定器１０の内部構成＞
次に、図３を参照して、図２に示される測定器１０の内部構成について説明する。図３は、測定器１０の内部構造を示す断面図である。
【００５１】
図３を参照して、測定器１０は、筐体１５０を含む。筐体１５０は、その内部に、制御回路１０１と、レーザ発振器１６１と、ＣＣＤカメラ１６２と、プリズム１６３と、反射鏡１６４と、絞り１６７と、凸レンズ１６８，１６９とを有する。筐体１５０の上端には、主軸１３２との接続機構１４６が設けられる。
【００５２】
レーザ発振器１６１は、ワークＷの表面にレーザ光を照射する。ＣＣＤカメラ１６２は、レーザ発振器１６１から照射されワークＷの表面で反射したレーザ光を受光して２次元画像データを生成する。プリズム１６３および反射鏡１６４は、レーザ発振器１６１とワークＷとの間に配置され、レーザ発振器１６１からのレーザ光をワークＷの表面に導く。凸レンズ１６８，１６９は、ＣＣＤカメラ１６２とワークＷとの間に配置され、ワークＷの表面で反射したレーザ光をＣＣＤカメラ１６２の撮像面１６２Ａ上に結像させる。絞り１６７は、ＣＣＤカメラ１６２と凸レンズ１６９との間に配置される。
【００５３】
＜Ｄ．概要＞
次に、図４を参照して、測定器１０による距離データの測定タイミングと、制御装置５による測定器１０の位置データの取得タイミングとの同期処理について説明する。図４は、測定器１０による距離データの測定過程を時系列で示す図である。
【００５４】
図４に示されるように、工作機械１００は、上述の制御装置５と、駆動装置１１０と、検知部１１３と、主軸頭１３０とを備える。
【００５５】
駆動装置１１０は、主軸頭１３０を駆動するための構成である。一例として、上述の回転駆動部１１０Ａ（図２参照）と、上述の位置駆動部１１０Ｂ（図２参照）とを含む。主軸頭１３０の主軸１３２には、上述の測定器１０が装着されている。制御装置５は、駆動装置１１０を制御することで主軸頭１３０を駆動し、任意の位置および任意の角度に測定器１０を駆動する。
【００５６】
検知部１１３は、主軸頭１３０の位置（以下、「主軸位置」ともいう。）を検知するための構成である。検知部１１３は、測定器１０の位置を検知する機能を有するものであれば特に限定されないが、たとえば、上述のエンコーダ１１３Ｘ〜１１３Ｚ，１１３Ｃの少なくとも１つで構成される。
【００５７】
より具体的な処理として、まず、制御装置５は、所定周期のパルス信号ＰＳ１（第１パルス信号）を生成し、パルス信号ＰＳ１に従って、検知部１１３による主軸１３２の位置の取得タイミングを制御する。一例として、制御装置５は、パルス信号ＰＳ１がオフからオンに変化したタイミングで主軸位置の取得指令を検知部１１３に出力する。
【００５８】
検知部１１３は、制御装置５から取得指令を受けて、主軸位置を取得する。主軸位置は、たとえば、Ｘ軸方向の主軸１３２の座標値と、Ｙ軸方向の主軸１３２の座標値と、Ｚ軸方向の主軸１３２の座標値と、Ｂ軸方向の主軸１３２の角度とで示される。
【００５９】
Ｘ軸方向の主軸１３２の座標値は、たとえば、エンコーダ１１３Ｘ（図２参照）のフィードバック信号から特定される。Ｙ軸方向の主軸１３２の座標値は、たとえば、エンコーダ１１３Ｙ（図２参照）のフィードバック信号から特定される。Ｚ軸方向の主軸１３２の座標値は、たとえば、エンコーダ１１３Ｚ（図２参照）のフィードバック信号から特定される。Ｂ軸方向の主軸１３２の座標値は、たとえば、エンコーダ１１３Ｂ（図２参照）のフィードバック信号から特定される。
【００６０】
検知部１１３によって検知された主軸位置は、制御装置５に出力される。制御装置５は、検知部１１３によって検知された主軸位置に基づいて、測定器１０の位置を算出する。
【００６１】
より具体的には、主軸１３２の軸方向における測定器１０の長さ（以下、「測定器長」ともいう。）は既知であり、制御装置５は、Ｂ軸方向の主軸１３２の角度と、主軸位置と、測定器長とに基づいて、工作機械１００内における測定器１０の位置を算出する。このように、測定器１０の位置は、主軸位置から特定できるため、「測定器１０の位置」は、「主軸位置」と同義である。
【００６２】
また、制御装置５は、同期パルス信号ＰＳ０を生成する。同期パルス信号ＰＳ０は、測定器１０による距離の測定タイミングを検知部１１３による主軸位置の検知タイミングと同期させるための信号である。同期パルス信号ＰＳ０の周期は、パルス信号ＰＳ１の周期と同じである。一例として、同期パルス信号ＰＳ０の周期は、１６ｍｓｅｃである。
【００６３】
制御装置５は、同期パルス信号ＰＳ０に従って、測定器１０による距離データの測定タイミングを制御する。一例として、制御装置５は、同期パルス信号ＰＳ０がオフからオンに変化したタイミングで距離データの測定指令を測定器１０に送信する。
【００６４】
このとき、ワークなどの障害物によって測定器１０と制御装置５との通信が遮られることで、制御装置５は、測定器１０と通信不能になることがある。この場合には、測定器１０は、制御装置５から測定指令を受信することができないので、距離データの測定タイミングを判断することができない。そのため、測定器１０は、パルス信号ＰＳ１および同期パルス信号ＰＳ０と同期が取られているパルス信号ＰＳ２（第２パルス信号）を自身で生成する。パルス信号ＰＳ２は、パルス信号ＰＳ１および同期パルス信号ＰＳ０と同周期である。
【００６５】
測定器１０は、制御装置５と通信可能な場合には、同期パルス信号ＰＳ０に従って距離データの測定タイミングを制御し、制御装置５と通信不能な場合には、パルス信号ＰＳ２に従って距離データの測定タイミングを制御する。ステップＳ１においては、測定器１０は、制御装置５と通信可能な場所に位置しているため、同期パルス信号ＰＳ０に従って距離データを測定する。ステップＳ２においては、測定器１０は、制御装置５と通信不能な場所に位置しており、自身で生成したパルス信号ＰＳ２に従って距離データを測定する。
【００６６】
パルス信号ＰＳ２は、測定器１０の内部クロックに従って生成されているため、制御装置５と測定器１０とが通信不能な状態が長時間継続すると、制御装置５および測定器１０が非同期になる可能性がある。そこで、制御装置５は、測定器１０と通信不能状態な状態が所定時間（たとえば、１〜１０分）以上継続した場合に、測定器１０と通信可能な位置まで駆動装置１１０に主軸１３２を駆動させる（ステップＳ２→Ｓ３参照）。
【００６７】
これにより、測定器１０は、制御装置５との通信が回復し、制御装置５および測定器１０が同期しているか否かを確認することができる。制御装置５および測定器１０の同期が維持できている場合には、測定器１０は、前回中断した場所から距離データの測定処理を再び開始する。一方で、制御装置５および測定器１０が非同期となっている場合には、測定器１０は、パルス信号ＰＳ２をパルス信号ＰＳ１または同期パルス信号ＰＳ０と同期させる。その後、測定器１０は、前回中断した場所から距離データの測定処理を再び開始する。
【００６８】
＜Ｅ．同期処理を実現するための機能構成＞
次に、図５〜図１０を参照して、工作機械１００の機能構成について説明する。図５は、制御装置５と測定器１０との同期処理を実現するための機能構成の一例を示す図である。
【００６９】
工作機械１００は、上述の制御装置５（図２参照）と、上述の測定器１０（図２参照）とを備える。制御装置５は、機能構成として、第１パルス生成部５２と、位置取得部５４と、同期パルス生成部５７と、書込部６８と、マージ部６９とを含む。測定器１０は、機能構成として、第１距離取得部６１と、第２パルス生成部６４と、第２距離取得部６５とを含む。以下では、制御装置５および測定器１０の各機能構成について順に説明する。
【００７０】
なお、制御装置５に備えられる各機能構成の配置は、任意である。一例として、制御装置５に備えられる各種機能は、上述のＣＰＵユニット２０（図２参照）に実装されてもよいし、上述のＣＮＣユニット３０（図２参照）に実装されてもよいし、上述の情報処理装置４０（図２参照）に実装されてもよい。あるいは、制御装置５に備えられる機能構成の一部がＣＰＵユニット２０に実装され、残りの機能構成の一部がＣＮＣユニット３０に実装され、残りの機能構成が情報処理装置４０に実装されてもよい。あるいは、制御装置５に備えられる機能構成の一部は、サーバーなどの外部装置に実装されてもよいし、専用のハードウェアに実装されてもよい。
【００７１】
一例として、第１パルス生成部５２と、位置取得部５４と、同期パルス生成部５７とは、ＣＮＣユニット３０に実装される。書込部６８と、マージ部６９とは、情報処理装置４０に実装される。
【００７２】
（Ｅ１．第１パルス生成部５２）
まず、図６を参照して、図５に示される第１パルス生成部５２の機能について説明する。図６は、パルス信号ＰＳ１と、同期パルス信号ＰＳ０と、パルス信号ＰＳ２とを示す図である。
【００７３】
第１パルス生成部５２は、第１クロック５１から出力されるクロック信号に基づいて、パルス信号ＰＳ１を生成する。第１クロック５１は、タイマーとして機能し、制御装置５内での時間の基準となる。典型的には、第１クロック５１は、規則的な信号を一定の時間間隔ごとに出力する。第１パルス生成部５２は、第１クロック５１から出力されるクロック信号を基準として、一定の時間間隔ΔＴごとにパルスＰ１を出力する。時間間隔ΔＴは、たとえば、１６ｍｓｅｃである。生成されたパルス信号ＰＳ１は、位置取得部５４および同期パルス生成部５７のそれぞれに出力される。
【００７４】
（Ｅ２．位置取得部５４）
次に、図７および図８を参照して、図５に示される位置取得部５４の機能について説明する。
【００７５】
図７は、パルス信号ＰＳ１に基づいた主軸位置の検知タイミングと、同期パルス信号ＰＳ０に基づいた距離データの測定タイミングと、パルス信号ＰＳ２に基づいた距離データの測定タイミングとを概略的に示す図である。
【００７６】
図７に示されるように、位置取得部５４は、パルス信号ＰＳ１に従って、主軸位置の検知タイミングを制御する。一例として、位置取得部５４は、パルス信号ＰＳ１がオフからオンに変化したタイミングで主軸位置の取得指令を上述の検知部１１３（図４参照）に出力する。
【００７７】
検知部１１３は、制御装置５から取得指令を受けて、主軸位置を検知する。当該主軸位置は、たとえば、Ｘ軸方向の主軸１３２の座標値と、Ｙ軸方向の主軸１３２の座標値と、Ｚ軸方向の主軸１３２の座標値と、Ｂ軸方向の主軸１３２の角度とで示される。
【００７８】
位置取得部５４は、カウンタ５５を有する。カウンタ５５は、パルス信号ＰＳ１のパルスＰ１の数をカウントする機能を有する。一例として、カウンタ５５は、パルス信号ＰＳ１がオフからオンに変化したタイミングでカウント値をインクリメントする。
【００７９】
位置取得部５４は、検知部１１３から取得した主軸位置を、カウンタ５５による現在のカウント値に対応付けた上で、図８に示される位置データベースＤＢ１に書き込む。
【００８０】
図８は、位置データベースＤＢ１のデータ構造の一例を示す図である。図８に示されるように、位置データベースＤＢ１において、各主軸位置は、当該主軸位置の検知時点におけるカウント値に対応付けられている。好ましくは、位置データベースＤＢ１において、各主軸位置は、当該主軸位置の検知時点における第１クロック５１の時間情報（たとえば、時刻）がさらに対応付けられる。
【００８１】
（Ｅ３．同期パルス生成部５７）
次に、上述の図６を参照して、図５に示される同期パルス生成部５７の機能について説明する。
【００８２】
同期パルス生成部５７は、同期パルス信号ＰＳ０を生成する。同期パルス信号ＰＳ０は、測定器１０による距離の測定タイミングを検知部１１３による主軸位置の検知タイミングと同期させるための信号である。同期パルス信号ＰＳ０は、パルス信号ＰＳ１に基づいて生成されてもよいし、第１クロック５１から出力されるクロック信号に基づいて生成されてもよい。
【００８３】
図６に示されるように、同期パルス信号ＰＳ０は、パルス信号ＰＳ１と同周期である。一例として、同期パルス信号ＰＳ０の周期は、１６ｍｓｅｃである。
【００８４】
好ましくは、同期パルス信号ＰＳ０は、パルス信号ＰＳ１よりも所定時間Δｎだけ早い。所定時間Δｎは、測定指令が制御装置５から測定器１０に送信されてから、測定器１０が距離データを測定するまでの遅れ時間に相当する。
【００８５】
より具体的には、パルス信号ＰＳ１は、パルスＰ１（第１パルス）を含む。同期パルス信号ＰＳ０は、パルスＰ１に対応するパルスＰ０を含む。パルスＰ０の各々の立ち上がりタイミングは、対応するパルスＰ１の立ち上がりタイミングよりも所定時間Δｎだけ早い。立ち上がりタイミングとは、パルスＰ１がオフからオンに変化したタイミングを表わす。また、パルスＰ０の各々の立ち下がりタイミングは、対応するパルスＰ１の立ち下がりタイミングよりも所定時間Δｎだけ早い。立ち下がりタイミングとは、パルスＰ１がオンからオフに変化したタイミングを表わす。
【００８６】
同期パルス生成部５７は、パルス信号ＰＳ１よりも所定時間Δｎだけ同期パルス信号ＰＳ０を早く出力することで、測定器１０による測定タイミングを主軸位置の取得タイミングと一致または略一致させることができる。
【００８７】
同期パルス生成部５７は、生成した同期パルス信号ＰＳ０を測定器１０に送信する。なお、同期パルス生成部５７は、同期パルス信号ＰＳ０を測定器１０に送信する代わりに、同期パルス信号ＰＳ０がオフからオンに変化したタイミングで測定指令を測定器１０に送信してもよい。
【００８８】
なお、上述では、同期パルス信号ＰＳ０がパルス信号ＰＳ１と同周期である前提で説明を行ったが、同期パルス信号ＰＳ０は、パルス信号ＰＳ１と必ずしも同周期である必要は無い。一例として、同期パルス信号ＰＳ０およびパルス信号ＰＳ１の一方の周期は、他方の周期の整数倍であってのよい。
【００８９】
（Ｅ４．第１距離取得部６１）
次に、上述の図７を参照して、図５に示される第１距離取得部６１の機能について説明する。
【００９０】
図７に示されるように、第１距離取得部６１は、制御装置５と通信可能な場合には、制御装置５から受信した同期パルス信号ＰＳ０に従って、測定器１０による距離データの測定タイミングを制御する。一例として、第１距離取得部６１は、同期パルス信号ＰＳ０がオフからオンに変化したタイミングで距離データの測定指令を距離測定ユニット１０５に出力する。
【００９１】
距離測定ユニット１０５は、上述のレーザ発振器１６１（図３参照）や上述のＣＣＤカメラ１６２（図３参照）などで構成される。距離測定ユニット１０５は、第１距離取得部６１から測定指令を受けて、測定器１０からワーク表面までの距離データを測定する。
【００９２】
上述のように、同期パルス信号ＰＳ０は、パルス信号ＰＳ１よりも所定時間Δｎだけ早い。これにより、測定指令が測定器１０に送信されてから測定器１０が距離データを測定するまでの遅れ時間が所定時間Δｎで相殺され、測定器１０による距離データの取得タイミングは、制御装置５による主軸位置の取得タイミングと一致または略一致する。
【００９３】
第１距離取得部６１は、カウンタ６２を有する。カウンタ６２は、同期パルス信号ＰＳ０のパルスＰ０の数をカウントする機能を有する。一例として、カウンタ６２は、同期パルス信号ＰＳ０がオフからオンに変化したタイミングでカウント値をインクリメントする。
【００９４】
カウンタ６２におけるカウント値は、制御装置５と通信可能な所定のタイミングにおいて、カウンタ５５におけるカウント値と定期的に同期されている。同期パルス信号ＰＳ０は、パルス信号ＰＳ１と同周期であるため、カウンタ６２によるカウント値は、カウンタ５５によるカウント値と同じとなる。
【００９５】
第１距離取得部６１は、距離測定ユニット１０５から取得した距離データＤ１を、カウンタ６２による現在のカウント値に対応付けた上で、測定器１０のバッファ６７に順次格納する。バッファ６７に格納された距離データＤ１は、制御装置５と通信可能な際に制御装置５に定期的に送信される。
【００９６】
（Ｅ５．第２パルス生成部６４）
次に、上述の図６を参照して、図５に示される第２パルス生成部６４の機能について説明する。
【００９７】
第２パルス生成部６４は、第２クロック６３から出力されるクロック信号に基づいて、パルス信号ＰＳ２を生成する。第２クロック６３は、タイマーとして機能する。第２クロック６３は、制御装置５の第１クロック５１とは独立して設けられており、測定器１０内での時間の基準となる。
【００９８】
第２クロック６３は、制御装置５と通信可能な所定のタイミングにおいて第１クロック５１と定期的に同期される。典型的には、第２クロック６３のクロック周期は、第１クロック５１と同じであり、第１クロック５１と同じ時間間隔で規則的な信号を出力する。
【００９９】
図６に示されるように、第２パルス生成部６４は、第２クロック６３から出力されるクロック信号を基準として、一定の時間間隔ΔＴごとにパルスＰ２を出力する。その結果、パルス信号ＰＳ２は、パルス信号ＰＳ１および同期パルス信号ＰＳ０と同周期となる。時間間隔ΔＴは、たとえば、１６ｍｓｅｃである。
【０１００】
典型的には、パルス信号ＰＳ２は、パルス信号ＰＳ１と完全に同期している。より具体的には、パルス信号ＰＳ１は、パルスＰ１（第１パルス）を含む。パルス信号ＰＳ２は、パルスＰ１に対応するパルスＰ２（第２パルス）を含む。パルスＰ２の各々の立ち上がりタイミングは、対応するパルスＰ１の立ち上がりタイミングと同じである。また、パルスＰ２の各々の立ち下がりタイミングは、対応するパルスＰ１の立ち下がりタイミングと同じである。
【０１０１】
（Ｅ６．第２距離取得部６５）
次に、図７を参照して、図５に示される第２距離取得部６５の機能について説明する。
【０１０２】
図７に示されるように、第２距離取得部６５は、制御装置５と通信不能な場合に、第２パルス生成部６４によって生成されたパルス信号ＰＳ２に従って、測定器１０による距離データの測定タイミングを制御する。一例として、第２距離取得部６５は、パルス信号ＰＳ２がオフからオンに変化したタイミングで距離データの測定指令を距離測定ユニット１０５に出力する。
【０１０３】
上述のように、パルス信号ＰＳ２は、パルス信号ＰＳ１と同期している。その結果、測定器１０による距離データの取得タイミングは、制御装置５による主軸位置の取得タイミングと一致または略一致する。
【０１０４】
第２距離取得部６５は、カウンタ６６を有する。カウンタ６６は、パルス信号ＰＳ２のパルスＰ２の数をカウントする機能を有する。一例として、カウンタ６６は、パルス信号ＰＳ２がオフからオンに変化したタイミングでカウント値をインクリメントする。
【０１０５】
カウンタ６６におけるカウント値は、制御装置５と通信可能な所定のタイミングにおいて、カウンタ５５におけるカウント値と定期的に同期されている。パルス信号ＰＳ２は、パルス信号ＰＳ１と同周期であるため、カウンタ６６によるカウント値は、カウンタ５５によるカウント値と同じとなる。
【０１０６】
第２距離取得部６５は、距離測定ユニット１０５から取得した距離データＤ２を、カウンタ６６による現在のカウント値に対応付けた上で、測定器１０のバッファ６７に格納する。第２距離取得部６５は、制御装置５と通信不能な間、距離データＤ２をバッファ６７に順次バッファリングする。その後、第２距離取得部６５は、制御装置５との通信が回復したことに基づいて、バッファ６７にバッファリングされた距離データＤ２を制御装置５に送信する。典型的には、バッファ６７に格納された距離データＤ２は、後述の通信復帰処理が完了したことに基づいて、測定器１０から制御装置５に送信される。
【０１０７】
（Ｅ７．書込部６８）
次に、図９を参照して、図５に示される書込部６８の機能について説明する。図９は、距離データベースＤＢ２への距離データＤ１，Ｄ２の書込処理を概略的に示す概念図である。
【０１０８】
書込部６８は、測定器１０が制御装置５と通信可能な間に測定された距離データＤ１と、測定器１０が制御装置５と通信不能な間に測定された距離データＤ２とを距離データベースＤＢ２に書き込む。
【０１０９】
上述のように、カウンタ６２とカウンタ６６とは互いに同期しており、距離データＤ１に対応付けられているカウント値と、距離データＤ２に対応付けられているカウント値とは、同じ時間基準のカウント値である。このような同じ時間基準の距離データＤ１，Ｄ２が書込部６８によって距離データベースＤＢ２に書き込まれる。
【０１１０】
（Ｅ８．マージ部６９）
次に、図１０を参照して、図５に示されるマージ部６９の機能について説明する。図１０は、位置データベースＤＢ１と距離データベースＤＢ２とのマージ処理を概略的に示す概念図である。
【０１１１】
上述のように、カウンタ５５とカウンタ６２，６６とは互いに同期しており、位置データベースＤＢ１に規定されるカウント値と、距離データベースＤＢ２に規定されるカウント値とは、同じ時間基準でのカウント値を示す。
【０１１２】
マージ部６９は、カウント値に基づいて、位置データベースＤＢ１と距離データベースＤＢ２とをマージし、マージデータＤＢ３を生成する。より具体的には、マージ部６９は、位置データベースＤＢ１に規定される主軸位置データと、距離データベースＤＢ２に規定される距離データとの内、同じカウント値に対応付けられているデータ同士を関連付ける。これにより、同一のタイミングに取得された主軸位置データと距離データとが対応付けられる。
【０１１３】
なお、上述では、カウンタ５５とカウンタ６２とカウンタ６６との各カウント値が同じ時間基準のカウント値である前提で説明を行ったが、各カウンタのカウント値は、一定値ずれていてもよい。この場合、マージ部６９は、位置データベースＤＢ１に規定されるカウント値と、距離データベースＤＢ２に規定されるカウント値とのいずれか一方に、上記一定値を加算（または減算）し、各カウンタのカウント値を同じ時間基準に揃える。その上で、マージ部６９は、位置データベースＤＢ１と距離データベースＤＢ２とをマージする。
【０１１４】
＜Ｆ．通信復帰処理を実現するための機能構成＞
次に、図１１〜図１５を参照して、工作機械１００の機能構成についてさらに説明する。図１１は、制御装置５と測定器１０との通信復帰処理を実現するための機能構成の一例を示す図である。
【０１１５】
工作機械１００は、上述の制御装置５（図２参照）と、上述の測定器１０（図２参照）とを備える。制御装置５は、機能構成として、通信監視部７０と、駆動制御部７２と、異常検知部７４と、異常処理部７６とを含む。以下では、これらの機能構成について順に説明する。
【０１１６】
なお、制御装置５に備えられる各機能構成の配置は、任意である。一例として、制御装置５に備えられる各種機能は、上述のＣＰＵユニット２０（図２参照）に実装されてもよいし、上述のＣＮＣユニット３０（図２参照）に実装されてもよいし、上述の情報処理装置４０（図２参照）に実装されてもよい。あるいは、制御装置５に備えられる機能構成の一部がＣＰＵユニット２０に実装され、残りの機能構成の一部がＣＮＣユニット３０に実装され、残りの機能構成が情報処理装置４０に実装されてもよい。あるいは、制御装置５に備えられる機能構成の一部は、サーバーなどの外部装置に実装されてもよいし、専用のハードウェアに実装されてもよい。
【０１１７】
（Ｆ１．通信監視部７０）
まず、図１２を参照して、図１１に示される通信監視部７０の機能について説明する。図１２は、パルス信号ＰＳ１と、同期パルス信号ＰＳ０と、パルス信号ＰＳ２とを示す図である。
【０１１８】
通信監視部７０は、制御装置５と測定器１０との通信状態を監視するための機能モジュールである。より具体的には、通信監視部７０は、距離データの測定指令に対する応答を測定器１０から受信しなかったことに基づいて、通信不能時間のカウントを開始する。図１２の例では、通信監視部７０は、時刻ｔ１において通信不能時間のカウントを開始する。
【０１１９】
その後、通信監視部７０は、通信不能時間が所定時間ΔＴｔｈを超えたことに基づいて、通信復帰指令を駆動制御部７２に出力する。図１２の例では、通信監視部７０は、時刻ｔ１から所定時間ΔＴｔｈが経過した時刻ｔ２において、通信復帰指令を駆動制御部７２に出力している。
【０１２０】
（Ｆ２．駆動制御部７２）
次に、引き続き図１２を参照して、図１１に示される駆動制御部７２の機能について説明する。
【０１２１】
駆動制御部７２は、通信監視部７０から通信復帰指令を受けたことに基づいて、上述の駆動装置１１０（図４参照）を制御し、制御装置５と測定器１０とが通信可能な位置（以下、「通信可能位置」ともいう。）まで主軸１３２を駆動する。これにより、測定器１０が制御装置５に近付き、制御装置５と測定器１０との通信が回復する。
【０１２２】
当該通信可能位置は、制御装置５との通信可能範囲内にある。プログラムに規定されていてもよいし、設定ファイルなどに規定されていてもよい。
【０１２３】
駆動制御部７２は、通信可能位置への主軸１３２の駆動が完了したことに基づいて、駆動完了通知を異常検知部７４に出力する。
【０１２４】
（Ｆ３．異常検知部７４）
次に、図１３を参照して、図１１に示される異常検知部７４の機能について説明する。図１３は、パルス信号ＰＳ１とパルス信号ＰＳ２とを示す図である。
【０１２５】
上述のように、パルス信号ＰＳ１は、第１クロック５１を基準として生成されている。一方で、パルス信号ＰＳ２は、第１クロック５１とは別の第２クロック６３を基準として生成されている。そのため、制御装置５と測定器１０との間の通信不能状態が長時間続くと、パルス信号ＰＳ１およびパルス信号ＰＳ２が非同期の状態になる可能性がある。異常検知部７４は、このような非同期の状態を異常として検知する。
【０１２６】
より具体的な処理として、まず、異常検知部７４は、パルス信号ＰＳ２を測定器１０から受信する。その後、異常検知部７４は、パルス信号ＰＳ１，ＰＳ２から、通信不能状態が回復した直後のパルスＰ１，Ｐ２を比較対象として抽出する。あるいは、異常検知部７４は、通信不能状態が回復した後において、立ち上がりタイミング（または立ち下がりタイミング）が最も近いパルスＰ１，Ｐ２を比較対象としてパルス信号ＰＳ１，ＰＳ２から抽出する。
【０１２７】
次に、異常検知部７４は、比較対象として抽出されたパルスＰ１，Ｐ２を用いて、パルスＰ１の立ち上がりタイミングと、パルス信号ＰＳ２のパルスＰ２の立ち上がりタイミングとの時間差Δｍを算出する。時間差Δｍは、パルス信号ＰＳ１およびパルス信号ＰＳ２の間のずれ量を示す。異常検知部７４は、算出した時間差Δｍの絶対値が所定時間以上（たとえば、１〜１６ｍｓｅｃ以上）である場合に、同期異常を検知する。
【０１２８】
好ましくは、異常検知部７４は、制御装置５と測定器１０との間の通信遅れの分、パルス信号ＰＳ１，ＰＳ２の一方をずらした上で上述の時間差Δｍを算出する。
【０１２９】
なお、上述では、異常検知部７４がパルスＰ１，Ｐ２の立ち上がりタイミングに基づいて時間差Δｍを算出する例について説明を行ったが、異常検知部７４は、パルスＰ１，Ｐ２の立ち下がりタイミングに基づいて、時間差Δｍを算出してもよい。
【０１３０】
また、上述では、パルス信号ＰＳ１，ＰＳ２に基づいて、同期異常が検知される例について説明を行ったが、異常検知部７４は、パルス信号ＰＳ１の時間基準となる上述の第１クロック５１（図５参照）と、パルス信号ＰＳ２の時間基準となる上述の第２クロック６３（図５参照）とを用いて、同期異常を検知してもよい。より具体的には、異常検知部７４は、第１クロック５１が示す現クロック（現時刻）と、第２クロック６３が示す現クロック（現時刻）との時間差Δｍを算出する。その後、異常検知部７４は、算出した時間差Δｍの絶対値が所定時間以上（たとえば、１〜１６ｍｓｅｃ以上）である場合に、同期異常を検知する。
【０１３１】
（Ｆ４．異常処理部７６）
次に、図１４および図１５を参照して、図１１に示される異常処理部７６の機能について説明する。
【０１３２】
異常処理部７６は、異常検知部７４が同期異常を検知したことに基づいて、予め定められた異常対処処理を実行する。以下では、異常対処処理の具体例について説明する。
【０１３３】
（ａ）異常対処処理の具体例１
異常対処処理の一例として、異常処理部７６は、警告を出力する。当該警告によって、パルス信号ＰＳ１，ＰＳ２が非同期になっていることが報知される。警告の出力態様は、任意である。一例として、当該警告は、工作機械１００のディスプレイ上に表示されてもよいし、音声で出力されてもよいし、レポート形式でデータとして出力されてもよい。
【０１３４】
（ｂ）異常対処処理の具体例２
異常対処処理の他の例として、異常処理部７６は、上述の時間差Δｍに基づいて、制御装置５と測定器１０とが通信不能な間に測定された距離データＤ２を補正する。図１４は、通信不能時間ΔＴｔｈ（図１２参照）に検知された補正前の距離データＤ２と、補正後の距離データＤ３とを示す図である。
【０１３５】
まず、異常処理部７６は、通信不能時間ΔＴｔｈに検知された距離データＤ２と、対応付けられているカウント値との相関関係を表わす近似式「ｄ（ｃ）」を算出する。当該近似式は、たとえば、多項式近似または線形近似などによって生成される。
【０１３６】
次に、パルス信号ＰＳ２がパルス信号ＰＳ１よりも時間差Δｍだけ早い場合（図１４参照）、異常処理部７６は、下記式（１），（２）に基づいて、補正後の近似式「ｄ（ｃ）’」を算出する。
【０１３７】
ｄ（ｃ）＝ｄ（ｃ’）・・・（１）
ｃ’＝ｃ−（ｃ−ｃ０）・（ΔＴｔｈ−Δｍ）／ΔＴｔｈ・・・（２）
式（１）に示される「ｄ（ｃ）」は、カウント値「ｃ」における補正後の距離データを示す。式（１）に示される「ｄ（ｃ’）」は、カウント値「ｃ’」における補正前の距離データを示す。「ｃ」は、カウント値を示す説明変数である。「ｃ０」は、制御装置５と測定器１０とが通信不能になった時点でのカウント値を示す。
【０１３８】
一方で、パルス信号ＰＳ２がパルス信号ＰＳ１よりも時間差Δｍだけ遅れている場合には、上記式（１）と下記式（３）とに基づいて、補正後の近似式「ｄ（ｃ）’」を算出する。
【０１３９】
ｃ’＝ｃ＋（ｃ−ｃ０）・（ΔＴｔｈ＋Δｍ）／ΔＴｔｈ・・・（３）
（ｃ）異常対処処理の具体例３
異常対処処理の他の例として、異常処理部７６は、制御装置５と測定器１０との通信が回復したことに基づいて、パルス信号ＰＳ２をパルス信号ＰＳ１に同期させる。パルス信号ＰＳ２をパルス信号ＰＳ１に同期させる方法は任意である。ある局面において、異常処理部７６は、パルス信号ＰＳ１に合うように、上記時間差Δｍ（図１４参照）の分、パルス信号ＰＳ２をずらす。他の局面において、異常処理部７６は、パルス信号ＰＳ２を生成するための第２クロック６３のクロック（時刻）を、同期パルス信号ＰＳ０を生成するための第２クロック６３のクロック（時刻）に合わせる。
【０１４０】
（ｄ）異常対処処理の具体例４
異常対処処理の他の例として、異常処理部７６は、制御装置５と測定器１０との通信が回復したことに基づいて、パルス信号ＰＳ２をパルス信号ＰＳ１に同期させる。パルス信号ＰＳ２をパルス信号ＰＳ１に同期させる方法は任意である。
【０１４１】
ある局面において、異常処理部７６は、上記時間差Δｍ（図１４参照）だけパルス信号ＰＳ２の出力をずらすように第２パルス生成部６４に指令を送る。これにより、パルス信号ＰＳ２がパルス信号ＰＳ１と同期する。
【０１４２】
他の局面において、異常処理部７６は、第２クロック６３の現クロック（時刻）を、第１クロック５１の現クロック（時刻）に合わせる。これにより、パルス信号ＰＳ２を生成基準となる第２クロック６３が、パルス信号ＰＳ１の生成基準となる第１クロック５１と同期する。その結果、パルス信号ＰＳ２がパルス信号ＰＳ１に同期する。
【０１４３】
＜Ｇ．所定時間ΔＴｔｈの調整処理＞
上述のように、制御装置５は、測定器１０との通信不能時間が所定時間ΔＴｔｈ（図１２参照）を超えたことに基づいて、通信復帰指令を駆動制御部７２に出力する。このとき、制御装置５は、通信不能状態時におけるワークの加工条件を記憶する。そして、制御装置５は、記憶した加工条件と同条件で次に加工が行われた場合において、測定器１０との通信不能な状態が所定時間ΔＴｔｈ２以上継続したときには、測定器１０と通信可能な位置まで駆動装置１１０に主軸１３２を駆動させる処理を実行する。当該所定時間ΔＴｔｈ２は、上記所定時間ΔＴｔｈよりも短い。これにより、制御装置５は、早期に通信復帰処理を実行することができる。
【０１４４】
記憶対象の加工条件は、制御装置５と測定器１０との通信に影響を与える種々の加工条件を含む。一例として、当該加工条件は、主軸１３２の駆動命令を規定している加工プログラムを含む。図１５は、記憶対象となり得る加工プログラム３２４を示す図である。
【０１４５】
制御装置５は、測定器１０との通信不能時間が所定時間ΔＴｔｈを超えたことに基づいて、当該所定時間ΔＴｔｈの間に実行された加工プログラムの内容（たとえば、ファイル名や実行行など）を記憶する。そして、制御装置５は、同内容の加工プログラムが次に実行された場合には、測定器１０との通信不能な状態が所定時間ΔＴｔｈ２以上継続したことに基づいて、測定器１０との通信復帰処理を実行する。
【０１４６】
好ましくは、制御装置５は、測定器１０との通信不能時間が所定時間ΔＴｔｈ（図１２参照）を超え、かつ、異常検知部７４によって同期異常が検知された場合に、加工条件を記憶する処理を実行してもよい。その結果、制御装置５は、異常検知部７４によって同期異常が検知された場合にのみ、所定時間Ｔｔｈ２に基づいて、測定器１０との通信復帰処理を実行するか否かを判断することになる。
【０１４７】
＜Ｈ．測定器１０のハードウェア構成＞
次に、図１６を参照して、図２に示される測定器１０のハードウェア構成について説明する。図１６は、測定器１０のハードウェア構成の一例を示す図である。
【０１４８】
測定器１０は、ＲＯＭ（Read  Only  Memory）１０２と、ＲＡＭ（Random  Access  Memory）１０３と、通信インターフェイス１０４と、距離測定ユニット１０５とを含む。これらのコンポーネントは、内部バスＢ１に接続される。
【０１４９】
制御回路１０１は、たとえば、少なくとも１つの集積回路によって構成される。集積回路は、たとえば、少なくとも１つのＣＰＵ、少なくとも１つのＧＰＵ（Graphics Processing Unit）、少なくとも１つのＡＳＩＣ（Application  Specific  Integrated  Circuit）、少なくとも１つのＦＰＧＡ（Field  Programmable  Gate  Array）、またはそれらの組み合わせなどによって構成され得る。
【０１５０】
制御回路１０１は、制御プログラム１２２などの各種プログラムを実行することで測定器１０の動作を制御する。より具体的には、制御回路１０１は、制御プログラム１２２の実行命令を受け付けたことに基づいて、ＲＯＭ１０２からＲＡＭ１０３に制御プログラム１２２を読み出す。ＲＡＭ１０３は、ワーキングメモリとして機能し、制御プログラム１２２の実行に必要な各種データを一時的に格納する。また、ＲＡＭ１０３は、上述のバッファ６７（図５参照）を含む。
【０１５１】
通信インターフェイス１０４は、ＷＬＡＮ（Wireless LAN）、またはＢｌｕｅｔｏｏｔｈ（登録商標）などを用いた無線通信を実現するための通信ユニットである。一例として、測定器１０は、通信インターフェイス２０４を介して、情報処理装置４０（図２参照）などの外部機器との通信を実現する。測定器１０による測定結果は、たとえば、通信インターフェイス１０４を介して情報処理装置４０に送信される。
【０１５２】
距離測定ユニット１０５は、ワークの形状の測定機構である。一例として、距離測定ユニット１０５は、上述のレーザ発振器１６１（図３参照）や上述のＣＣＤカメラ１６２（図３参照）などで構成される。
【０１５３】
＜Ｉ．ＣＰＵユニット２０のハードウェア構成＞
次に、図１７を参照して、図２に示されるＣＰＵユニット２０のハードウェア構成について説明する。図１７は、ＣＰＵユニット２０のハードウェア構成の一例を示す図である。
【０１５４】
ＣＰＵユニット２０は、制御回路２０１と、ＲＯＭ２０２と、ＲＡＭ２０３と、通信インターフェイス２０４，２０５と、補助記憶装置２２０とを含む。これらのコンポーネントは、内部バスＢ２に接続される。
【０１５５】
制御回路２０１は、たとえば、少なくとも１つの集積回路によって構成される。集積回路は、たとえば、少なくとも１つのＣＰＵ、少なくとも１つのＧＰＵ、少なくとも１つのＡＳＩＣ、少なくとも１つのＦＰＧＡ、またはそれらの組み合わせなどによって構成され得る。
【０１５６】
制御回路２０１は、制御プログラム２２２などの各種プログラムを実行することでＣＰＵユニット２０の動作を制御する。制御プログラム２２２は、工作機械１００内の各種装置を制御するための命令を規定している。制御回路２０１は、制御プログラム２２２の実行命令を受け付けたことに基づいて、補助記憶装置２２０またはＲＯＭ２０２からＲＡＭ２０３に制御プログラム２２２を読み出す。ＲＡＭ２０３は、ワーキングメモリとして機能し、制御プログラム２２２の実行に必要な各種データを一時的に格納する。
【０１５７】
通信インターフェイス２０４は、ＬＡＮ（Local  Area  Network）ケーブル、ＷＬＡＮ、またはＢｌｕｅｔｏｏｔｈなどを用いた通信を実現するための通信ユニットである。一例として、ＣＰＵユニット２０は、通信インターフェイス２０４を介して、ＡＴＣドライバ１１１Ｎ（図２参照）などの外部機器との通信を実現する。
【０１５８】
通信インターフェイス２０５は、フィールドバスに接続される各種ユニットとの通信を実現するための通信ユニットである。当該フィールドバスに接続されるユニットの一例として、ＣＮＣユニット３０やＩ／Ｏユニット（図示しない）などが挙げられる。
【０１５９】
補助記憶装置２２０は、たとえば、ハードディスクやフラッシュメモリなどの記憶媒体である。補助記憶装置２２０は、制御プログラム２２２などを格納する。制御プログラム２２２の格納場所は、補助記憶装置２２０に限定されず、制御回路２０１の記憶領域（たとえば、キャッシュメモリ）、ＲＯＭ２０２、ＲＡＭ２０３、外部機器（たとえば、サーバー）などに格納されていてもよい。
【０１６０】
なお、制御プログラム２２２は、単体のプログラムとしてではなく、任意のプログラムの一部に組み込まれて提供されてもよい。この場合、本実施の形態に従う各種の処理は、任意のプログラムと協働して実現される。このような一部のモジュールを含まないプログラムであっても、本実施の形態に従う制御プログラム２２２の趣旨を逸脱するものではない。さらに、制御プログラム２２２によって提供される機能の一部または全部は、専用のハードウェアによって実現されてもよい。さらに、少なくとも１つのサーバーが制御プログラム２２２の処理の一部を実行する所謂クラウドサービスのような形態でＣＰＵユニット２０が構成されてもよい。
【０１６１】
＜Ｊ．ＣＮＣユニット３０のハードウェア構成＞
次に、図１８を参照して、図２に示されるＣＮＣユニット３０のハードウェア構成について説明する。図１８は、ＣＮＣユニット３０のハードウェア構成の一例を示す図である。
【０１６２】
ＣＮＣユニット３０は、制御回路３０１と、ＲＯＭ３０２と、ＲＡＭ３０３と、通信インターフェイス３０４，３０５と、フィールドバスコントローラ３０６と、補助記憶装置３２０とを含む。これらのコンポーネントは、内部バスＢ３に接続される。
【０１６３】
制御回路３０１は、たとえば、少なくとも１つの集積回路によって構成される。集積回路は、たとえば、少なくとも１つのＣＰＵ、少なくとも１つのＧＰＵ、少なくとも１つのＡＳＩＣ、少なくとも１つのＦＰＧＡ、またはそれらの組み合わせなどによって構成され得る。
【０１６４】
制御回路３０１は、制御プログラム３２２や加工プログラム３２４などの各種プログラムを実行することでＣＮＣユニット３０の動作を制御する。制御回路３０１は、制御プログラム３２２の実行命令を受け付けたことに基づいて、ＲＯＭ３０２からＲＡＭ３０３に制御プログラム３２２を読み出す。ＲＡＭ３０３は、ワーキングメモリとして機能し、制御プログラム３２２の実行に必要な各種データを一時的に格納する。
【０１６５】
通信インターフェイス３０４，３０５には、ＬＡＮ、ＷＬＡＮ、またはＢｌｕｅｔｏｏｔｈなどを用いた通信を実現するための通信ユニットである。ＣＮＣユニット３０は、通信インターフェイス３０４を介して外部機器（たとえば、ＣＰＵユニット２０）とデータをやり取りする。また、ＣＮＣユニット３０は、通信インターフェイス３０５を介して外部機器（たとえば、情報処理装置４０）とデータをやり取りする。
【０１６６】
フィールドバスコントローラ３０６は、フィールドバスに接続される各種ユニットとの通信を実現するための通信ユニットである。当該フィールドバスに接続されるユニットの一例として、上述の回転駆動部１１０Ａ（図２参照）や上述の位置駆動部１１０Ｂ（図２参照）などが挙げられる。
【０１６７】
補助記憶装置３２０は、たとえば、ハードディスクやフラッシュメモリなどの記憶媒体である。補助記憶装置３２０は、制御プログラム３２２および加工プログラム３２４などを格納する。これらの格納場所は、補助記憶装置３２０に限定されず、制御回路３０１の記憶領域（たとえば、キャッシュメモリ）、ＲＯＭ３０２、ＲＡＭ３０３、外部機器（たとえば、サーバー）などに格納されていてもよい。
【０１６８】
なお、制御プログラム３２２は、単体のプログラムとしてではなく、任意のプログラムの一部に組み込まれて提供されてもよい。この場合、本実施の形態に従う各種の処理は、任意のプログラムと協働して実現される。このような一部のモジュールを含まないプログラムであっても、本実施の形態に従う制御プログラム３２２の趣旨を逸脱するものではない。さらに、制御プログラム３２２によって提供される機能の一部または全部は、専用のハードウェアによって実現されてもよい。さらに、少なくとも１つのサーバーが制御プログラム３２２の処理の一部を実行する所謂クラウドサービスのような形態でＣＮＣユニット３０が構成されてもよい。
【０１６９】
＜Ｋ．情報処理装置４０のハードウェア構成＞
次に、図１９を参照して、図２に示される情報処理装置４０のハードウェア構成について説明する。図１９は、情報処理装置４０のハードウェア構成の一例を示す図である。
【０１７０】
情報処理装置４０は、制御回路４０１と、ＲＯＭ４０２と、ＲＡＭ４０３と、通信インターフェイス４０４，４０５と、補助記憶装置４２０とを含む。これらのコンポーネントは、内部バスＢ４に接続される。
【０１７１】
制御回路４０１は、たとえば、少なくとも１つの集積回路によって構成される。集積回路は、たとえば、少なくとも１つのＣＰＵ、少なくとも１つのＧＰＵ、少なくとも１つのＡＳＩＣ、少なくとも１つのＦＰＧＡ、またはそれらの組み合わせなどによって構成され得る。
【０１７２】
制御回路４０１は、制御プログラム４２２などの各種プログラムを実行することで情報処理装置４０の動作を制御する。制御回路４０１は、各種プログラムの実行命令を受け付けたことに基づいて、補助記憶装置４２０またはＲＯＭ４０２からＲＡＭ４０３に実行対象のプログラムを読み出す。ＲＡＭ４０３は、ワーキングメモリとして機能し、プログラムの実行に必要な各種データを一時的に格納する。
【０１７３】
通信インターフェイス４０４，４０５には、ＬＡＮ、ＷＬＡＮ、またはＢｌｕｅｔｏｏｔｈなどを用いた通信を実現するための通信ユニットである。情報処理装置４０は、通信インターフェイス４０４を介して外部機器（たとえば、ＣＮＣユニット３０）とデータをやり取りする。また、情報処理装置４０は、通信インターフェイス４０５を介して外部機器（たとえば、測定器１０）とデータをやり取りする。
【０１７４】
補助記憶装置４２０は、たとえば、ハードディスクやフラッシュメモリなどの記憶媒体である。補助記憶装置４２０は、上述の位置データベースＤＢ１と、上述の距離データベースＤＢ２と、上述のマージデータＤＢ３と、制御プログラム４２２となどを格納する。これらの格納場所は、補助記憶装置４２０に限定されず、制御回路４０１の記憶領域（たとえば、キャッシュメモリなど）、ＲＯＭ４０２、ＲＡＭ４０３、外部機器（たとえば、サーバー）などに格納されていてもよい。
【０１７５】
なお、制御プログラム４２２は、単体のプログラムとしてではなく、任意のプログラムの一部に組み込まれて提供されてもよい。この場合、任意のプログラムと協働して本実施の形態に従う処理が実現される。このような一部のモジュールを含まないプログラムであっても、本実施の形態に従う工作機械１００の趣旨を逸脱するものではない。さらに、本実施の形態に従う制御プログラム４２２によって提供される機能の一部または全部は、専用のハードウェアによって実現されてもよい。さらに、工作機械１００とサーバーとが協働して、本実施の形態に従う処理を実現するようにしてもよい。さらに、少なくとも１つのサーバーが本実施の形態に従う処理を実現する、所謂クラウドサービスの形態で情報処理装置４０が構成されてもよい。
【０１７６】
＜Ｌ．主軸位置の取得フロー＞
次に、図２０を参照して、制御装置５による主軸位置の取得フローについて説明する。図２０は、主軸位置の取得処理の流れを示すフローチャートである。
【０１７７】
図２０に示される処理は、たとえば、工作機械１００の制御装置５（典型的には、ＣＮＣユニット３０）が上述の制御プログラム３２２（図１８参照）を実行することにより実現される。他の局面において、処理の一部または全部が、回路素子またはその他のハードウェアによって実行されてもよい。
【０１７８】
ステップＳ１１０において、制御装置５は、上述の第１パルス生成部５２（図５参照）として機能し、第１クロック５１のクロック信号に従って、パルス信号ＰＳ１を出力する。これにより、制御装置５は、所定時間ΔＴごとにパルスＰ１を出力する。
【０１７９】
ステップＳ１１２において、制御装置５は、上述の同期パルス生成部５７（図５参照）として機能し、第１クロック５１のクロック信号に従って、同期パルス信号ＰＳ０を出力する。これにより、制御装置５は、所定時間ΔＴごとにパルスＰ０を出力する。典型的には、制御装置５は、ステップＳ１１０で出力されるパルスＰ１よりも所定時間Δｎだけ早くパルスＰ０を出力する。
【０１８０】
ステップＳ１１４において、制御装置５は、ステップＳ１１２で出力される同期パルス信号ＰＳ０を測定器１０に送信する。
【０１８１】
ステップＳ１２０において、制御装置５は、ステップＳ１１０で出力されるパルス信号ＰＳ１が主軸位置の取得タイミングの到来を示すか否かを判断する。一例として、制御装置５は、パルス信号ＰＳ１がオフからオンに変化したタイミングにおいて主軸位置の取得タイミングが到来したと判断する。制御装置５は、パルス信号ＰＳ１が主軸位置の取得タイミングの到来を示すと判断した場合（ステップＳ１２０においてＹＥＳ）、制御をステップＳ１２２に切り替える。そうでない場合には（ステップＳ１２０においてＮＯ）、制御装置５は、制御をステップＳ１１０に戻す。
【０１８２】
ステップＳ１２２において、制御装置５は、上述の位置取得部５４（図５参照）として機能し、主軸位置の取得指令を上述の検知部１１３（図４参照）に出力する。これにより、制御装置５は、検知部１１３から主軸位置を取得する。取得された主軸位置は、上述の位置データベースＤＢ１（図８参照）に格納される。
【０１８３】
＜Ｍ．距離データの測定フロー＞
次に、図２１を参照して、測定器１０による距離データの測定フローについて説明する。図２１は、距離データの測定処理の流れを示すフローチャートである。
【０１８４】
図２１に示される処理は、たとえば、測定器１０の制御回路１０１（図１６参照）が上述の制御プログラム１２２（図１６参照）を実行することにより実現される。他の局面において、処理の一部または全部が、回路素子またはその他のハードウェアによって実行されてもよい。
【０１８５】
ステップＳ１３０において、制御回路１０１は、上述の第２パルス生成部６４（図５参照）として機能し、第２クロック６３のクロック信号に従って、パルス信号ＰＳ２を出力する。これにより、制御装置５は、所定時間ΔＴごとにパルスＰ２を出力する。
【０１８６】
ステップＳ１３２において、制御回路１０１は、制御装置５との通信が可能であるか否かを判断する。制御回路１０１は、制御装置５との通信が可能であると判断した場合（ステップＳ１３２においてＹＥＳ）、制御をステップＳ１４０に切り替える。そうでない場合には（ステップＳ１３２においてＮＯ）、制御回路１０１は、制御をステップＳ１５０に切り替える。
【０１８７】
ステップＳ１４０において、制御回路１０１は、制御装置５から受信した同期パルス信号ＰＳ０が測定器１０による測定タイミングの到来を示すか否かを判断する。一例として、制御回路１０１は、同期パルス信号ＰＳ０がオフからオンに変化したタイミングにおいて測定タイミングが到来したと判断する。制御回路１０１は、同期パルス信号ＰＳ０が測定タイミングの到来を示すと判断した場合（ステップＳ１４０においてＹＥＳ）、制御をステップＳ１４２に切り替える。そうでない場合には（ステップＳ１４０においてＮＯ）、制御装置５は、制御をステップＳ１３０に戻す。
【０１８８】
ステップＳ１４２において、制御回路１０１は、上述の第１距離取得部６１（図５参照）として機能し、距離データの測定指令を距離測定ユニット１０５に出力する。これにより、測定器１０からワークまでの距離を示す距離データＤ１が取得される。取得された距離データＤ１は、測定器１０のバッファ６７に格納される。
【０１８９】
ステップＳ１５０において、制御回路１０１は、ステップＳ１３０で出力されるパルス信号ＰＳ２が測定器１０による測定タイミングの到来を示すか否かを判断する。一例として、制御回路１０１は、パルス信号ＰＳ２がオフからオンに変化したタイミングにおいて測定タイミングが到来したと判断する。制御回路１０１は、パルス信号ＰＳ２が測定タイミングの到来を示すと判断した場合（ステップＳ１５０においてＹＥＳ）、制御をステップＳ１５２に切り替える。そうでない場合には（ステップＳ１５０においてＮＯ）、制御装置５は、制御をステップＳ１３０に戻す。
【０１９０】
ステップＳ１５２において、制御回路１０１は、上述の第２距離取得部６５（図５参照）として機能し、距離データの測定指令を距離測定ユニット１０５に出力する。これにより、測定器１０からワークまでの距離を示す距離データＤ２が取得される。取得された距離データＤ２は、測定器１０のバッファ６７に格納される。
【０１９１】
ステップＳ１６０において、制御回路１０１は、距離データの送信タイミングが到来したか否かを判断する。当該送信タイミングは、制御装置５と通信可能な一タイミングにおいて定期的に到来する。あるいは、当該送信タイミングは、制御装置５との通信が回復したタイミングにおいて到来する。制御回路１０１は、距離データの送信タイミングが到来したと判断した場合（ステップＳ１６０においてＹＥＳ）、制御をステップＳ１６２に切り替える。そうでない場合には（ステップＳ１６０においてＮＯ）、制御回路１０１は、制御をステップＳ１３０に戻す。
【０１９２】
ステップＳ１６２において、制御回路１０１は、測定器１０のバッファ６７に格納されている距離データＤ１，Ｄ２を制御装置５に送信する。当該送信が正常に完了したことに基づいて、制御回路１０１は、バッファ６７に格納されている距離データＤ１，Ｄ２を削除する。
【０１９３】
＜Ｎ．通信監視フロー＞
次に、図２２を参照して、制御装置５と測定器１０との通信状態の監視フローについて説明する。図２２は、制御装置５と測定器１０との通信状態の監視処理の流れを示すフローチャートである。
【０１９４】
図２２に示される処理は、たとえば、工作機械１００の制御装置５（典型的には、情報処理装置４０）が上述の制御プログラム４２２（図１９参照）を実行することにより実現される。他の局面において、処理の一部または全部が、回路素子またはその他のハードウェアによって実行されてもよい。
【０１９５】
ステップＳ１７０において、制御装置５は、上述の通信監視部７０（図１１参照）として機能し、測定器１０との通信が不能であるか否かを判断する。制御装置５は、測定器１０との通信が不能であると判断した場合（ステップＳ１７０においてＹＥＳ）、制御をステップＳ１７２に切り替える。そうでない場合には（ステップＳ１７０においてＮＯ）、制御装置５は、制御をステップＳ１７４に切り替える。
【０１９６】
ステップＳ１７２において、制御装置５は、上述の通信監視部７０として機能し、通信不能時間をカウントする。
【０１９７】
ステップＳ１７４において、制御装置５は、上述の通信監視部７０として機能し、通信不能時間のカウントをゼロに初期化する。
【０１９８】
ステップＳ１８０において、制御装置５は、上述の通信監視部７０として機能し、カウントしている通信不能時間が所定時間ΔＴｔｈ（図１１参照）を超えたか否かを判断する。制御装置５は、通信不能時間が所定時間ΔＴｔｈを超えたと判断した場合（ステップＳ１８０においてＹＥＳ）、制御をステップＳ１８２に切り替える。そうでない場合には（ステップＳ１８０においてＮＯ）、制御装置５は、制御をステップＳ１７０に戻す。
【０１９９】
ステップＳ１８２において、制御装置５は、上述の駆動制御部７２（図１１参照）として機能し、上述の駆動装置１１０を制御し、測定器１０と通信可能な位置まで主軸１３２を駆動する。
【０２００】
ステップＳ１８４において、制御装置５は、上述の通信監視部７０として機能し、通信不能時間のカウントをゼロに初期化する。
【０２０１】
ステップＳ１９０において、制御装置５は、上述の異常検知部７４（図１１参照）として機能し、同期異常が発生しているか否かを判断する。異常検知部７４による同期異常の検知方法については上述の通りであるので、その説明については繰り返さない。制御装置５は、同期異常が発生していると判断した場合（ステップＳ１９０においてＹＥＳ）、制御をステップＳ１９２に切り替える。そうでない場合には（ステップＳ１９０においてＮＯ）、制御装置５は、制御をステップＳ１７０に戻す。
【０２０２】
ステップＳ１９２において、制御装置５は、上述の異常処理部７６（図１１参照）として機能し、所定の異常対処処理を実行する。異常対処処理については上述の通りであるので、その説明については繰り返さない。
【０２０３】
＜Ｏ．変形例＞
次に、図２３を参照して、変形例に従う工作機械１００について説明する。図２３は、制御装置５と測定器１０との同期処理を実現するための機能構成の他の例を示す図である。
【０２０４】
上述の説明では、制御装置５が同期パルス信号ＰＳ０を生成し、測定器１０は、当該同期パルス信号ＰＳ０に従って距離データの測定タイミングを制御していた。これに対して、本変形例では、同期パルス信号ＰＳ０は、制御装置５ではなく測定器１０によって生成される。
【０２０５】
より具体的には、工作機械１００は、制御装置５と、測定器１０とを備える。制御装置５は、機能構成として、第１位置取得部５４Ａと、第２位置取得部５４Ｂと、第２パルス生成部６４と、書込部６８Ａと、マージ部６９とを含む。測定器１０は、機能構成として、第１パルス生成部５２と、同期パルス生成部５７と、距離取得部６５Ａとを含む。
【０２０６】
上述の図５の例では、第１クロック５１と、第１パルス生成部５２と、同期パルス生成部５７とが制御装置５に実装されていたのに対して、本変形例では、これらの構成が測定器１０に実装される。また、上述の図５の例では、第２クロック６３と、第２パルス生成部６４とが測定器１０に実装されていたのに対して、本変形例では、これらの構成が制御装置５に実装される。
【０２０７】
また、本変形例では、制御装置５は、位置取得部５４の代わりに第１位置取得部５４Ａと第２位置取得部５４Ｂとを含み、書込部６８の代わりに書込部６８Ａを含む。また、本変形例では、測定器１０は、第１距離取得部６１と第２距離取得部６５との代わりに、距離取得部６５Ａを含む。
【０２０８】
第１位置取得部５４Ａ、第２位置取得部５４Ｂ、距離取得部６５Ａ、および書込部６８Ａ以外の機能構成については上述の通りであるので、以下では、これら以外の機能構成の説明については繰り返さない。
【０２０９】
（Ｏ１．距離取得部６５Ａ）
まず、図２３に示される距離取得部６５Ａの機能について説明する。
【０２１０】
距離取得部６５Ａは、第１パルス生成部５２によって生成されたパルス信号ＰＳ１に従って、測定器１０による距離データの測定タイミングを制御する。一例として、距離取得部６５Ａは、パルス信号ＰＳ１がオフからオンに変化したタイミングで距離データの測定指令を距離測定ユニット１０５に出力する。
【０２１１】
距離取得部６５Ａは、カウンタ６６Ａを有する。カウンタ６６Ａは、パルス信号ＰＳ１のパルスＰ１の数をカウントする機能を有する。一例として、カウンタ６６Ａは、パルス信号ＰＳ１がオフからオンに変化したタイミングでカウント値をインクリメントする。
【０２１２】
距離取得部６５Ａは、距離測定ユニット１０５から取得した距離データを、カウンタ６６Ａによる現在のカウント値に対応付けた上で、バッファ６７に順次格納する。バッファ６７に格納された距離データＤ１は、制御装置５と通信可能な際に制御装置５に定期的に送信される。
【０２１３】
（Ｏ２．第１位置取得部５４Ａ）
次に、図２３に示される第１位置取得部５４Ａの機能について説明する。
【０２１４】
第１位置取得部５４Ａは、測定器１０と通信可能な場合には、測定器１０から受信した同期パルス信号ＰＳ０に従って、主軸位置の取得タイミングを制御する。一例として、第１位置取得部５４Ａは、同期パルス信号ＰＳ０がオフからオンに変化したタイミングで主軸位置データの取得指令を上述の検知部１１３に出力する。
【０２１５】
第１位置取得部５４Ａは、カウンタ５５Ａを有する。カウンタ５５Ａは、同期パルス信号ＰＳ０のパルスＰ０の数をカウントする機能を有する。一例として、カウンタ５５Ａは、同期パルス信号ＰＳ０がオフからオンに変化したタイミングでカウント値をインクリメントする。
【０２１６】
カウンタ５５Ａにおけるカウント値は、測定器１０と通信可能な所定のタイミングにおいて、カウンタ６６Ａにおけるカウント値と定期的に同期されている。同期パルス信号ＰＳ０は、パルス信号ＰＳ１と同周期であるため、カウンタ５５Ａによるカウント値は、カウンタ６６Ａによるカウント値と同じとなる。
【０２１７】
第１位置取得部５４Ａは、取得した主軸位置データＤ４を、カウンタ５５Ａによる現在のカウント値に対応付けた上で、書込部６８Ａに順次出力する。
【０２１８】
（Ｏ３．第２位置取得部５４Ｂ）
次に、図２３に示される第２位置取得部５４Ｂの機能について説明する。
【０２１９】
図７に示されるように、第２位置取得部５４Ｂは、測定器１０と通信不能な場合に、第２パルス生成部６４によって生成されたパルス信号ＰＳ２に従って、主軸位置の取得タイミングを制御する。一例として、第２位置取得部５４Ｂは、パルス信号ＰＳ２がオフからオンに変化したタイミングで主軸位置の取得指令を上述の検知部１１３に出力する。
【０２２０】
パルス信号ＰＳ２は、パルス信号ＰＳ１と同期している。その結果、制御装置５による主軸位置の取得タイミングは、測定器１０による距離データの取得タイミングと一致または略一致する。
【０２２１】
第２位置取得部５４Ｂは、カウンタ５５Ｂを有する。カウンタ５５Ｂは、パルス信号ＰＳ２のパルスＰ２の数をカウントする機能を有する。一例として、カウンタ５５Ｂは、パルス信号ＰＳ２がオフからオンに変化したタイミングでカウント値をインクリメントする。
【０２２２】
カウンタ５５Ｂにおけるカウント値は、制御装置５と通信可能な所定のタイミングにおいて、カウンタ６６Ａにおけるカウント値と定期的に同期される。パルス信号ＰＳ２は、パルス信号ＰＳ１と同周期であるため、カウンタ５５Ｂによるカウント値は、カウンタ６６Ａによるカウント値と同じとなる。
【０２２３】
第２位置取得部５４Ｂは、取得した主軸位置データＤ５を、カウンタ５５Ｂによる現在のカウント値に対応付けた上で、書込部６８Ａに順次出力する。
【０２２４】
（Ｏ４．書込部６８Ａ）
次に、図２３に示される書込部６８Ａの機能について説明する。
【０２２５】
書込部６８Ａは、測定器１０が制御装置５と通信可能な間に取得した主軸位置データＤ４と、測定器１０が制御装置５と通信不能な間に取得した主軸位置データＤ５とを位置データベースＤＢ１に書き込む。
【０２２６】
カウンタ５５Ａとカウンタ５５Ｂとは互いに同期しており、主軸位置データＤ４に対応付けられているカウント値と、主軸位置データＤ５に対応付けられているカウント値とは、同じ時間基準でのカウント値を示す。そのため、主軸位置データＤ４，Ｄ５は、カウント値の順に並べられると時系列の順に並ぶことになる。
【０２２７】
＜Ｐ．まとめ＞
以上のようにして、工作機械１００は、制御装置５と測定器１０との通信不能状態が所定時間継続した場合に、制御装置５と通信可能な位置まで主軸１３２を駆動する。これにより、制御装置５および測定器１０の通信が回復し、工作機械１００は、制御装置５および測定器１０が非同期の状態になっていないかを確認することができる。
【０２２８】
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
【符号の説明】
【０２２９】
５  制御装置、１０  測定器、２０  ＣＰＵユニット、３０  ＣＮＣユニット、４０  情報処理装置、５１  第１クロック、５２  第１パルス生成部、５４  位置取得部、５４Ａ  第１位置取得部、５４Ｂ  第２位置取得部、５５，５５Ａ，５５Ｂ，６２，６６，６６Ａ  カウンタ、５７  同期パルス生成部、６１  第１距離取得部、６３  第２クロック、６４  第２パルス生成部、６５  第２距離取得部、６５Ａ  距離取得部、６７  バッファ、６８，６８Ａ  書込部、６９  マージ部、７０  通信監視部、７２  駆動制御部、７４  異常検知部、７６  異常処理部、１００  工作機械、１０１，２０１，３０１，４０１  制御回路、１０２，２０２，３０２，４０２  ＲＯＭ、１０３，２０３，３０３，４０３  ＲＡＭ、１０４，２０４，２０５，３０４，３０５，４０４，４０５  通信インターフェイス、１０５  距離測定ユニット、１１０  駆動装置、１１０Ａ  回転駆動部、１１０Ｂ  位置駆動部、１１１Ｂ，１１１Ｃ，１１１Ｘ，１１１Ｙ，１１１Ｚ  サーボドライバ、１１１Ｎ  ＡＴＣドライバ、１１２Ｂ，１１２Ｃ，１１２Ｘ，１１２Ｙ，１１２Ｚ  サーボモータ、１１３  検知部、１１３Ｂ，１１３Ｃ，１１３Ｘ，１１３Ｙ，１１３Ｚ  エンコーダ、１２２，２２２，３２２，４２２  制御プログラム、１３０  主軸頭、１３１  主軸筒、１３２  主軸、１４６  接続機構、１５０  筐体、１６０  ＡＴＣ、１６１  レーザ発振器、１６２  ＣＣＤカメラ、１６２Ａ  撮像面、１６３  プリズム、１６４  反射鏡、１６５  中心軸、１６６  アーム、１６６Ａ，１６６Ｂ  工具把持部、１６８，１６９  凸レンズ、１７０  マガジン、２２０，３２０，４２０  補助記憶装置、３０６  フィールドバスコントローラ、３２４  加工プログラム。
【要約】
【課題】制御装置および測定器を同期する技術を提供する。
【解決手段】工作機械は、測定器を装着することが可能な主軸を備える。測定器は、測定対象物までの距離を測定可能に構成されている。工作機械は、測定器の位置を変化させる駆動装置と、測定器の位置を検知する検知部と、駆動装置と通信可能に構成される制御装置とを備える。制御装置は、第１パルス信号に従って上記位置の検知タイミングを制御し、同期パルス信号を生成し、同期パルス信号を測定器に送信する。測定器は、同期パルス信号と同周期の第２パルス信号を生成し、制御装置と通信可能な場合には同期パルス信号に従って上記距離の測定タイミングを制御し、制御装置と通信不能な場合には第２パルス信号に従って上記距離の測定タイミングを制御する。制御装置は、測定器と通信不能な状態が所定時間以上継続した場合に、測定器と通信可能な位置まで駆動装置に主軸を駆動させる。
【選択図】図４【図１】
0006800368.tif 000002
【図２】
0006800368.tif 000003
【図３】
0006800368.tif 000004
【図４】
0006800368.tif 000005
【図５】
0006800368.tif 000006
【図６】
0006800368.tif 000007
【図７】
0006800368.tif 000008
【図８】
0006800368.tif 000009
【図９】
0006800368.tif 000010
【図１０】
0006800368.tif 000011
【図１１】
0006800368.tif 000012
【図１２】
0006800368.tif 000013
【図１３】
0006800368.tif 000014
【図１４】
0006800368.tif 000015
【図１５】
0006800368.tif 000016
【図１６】
0006800368.tif 000017
【図１７】
0006800368.tif 000018
【図１８】
0006800368.tif 000019
【図１９】
0006800368.tif 000020
【図２０】
0006800368.tif 000021
【図２１】
0006800368.tif 000022
【図２２】
0006800368.tif 000023
【図２３】
0006800368.tif 000024