(57)【要約】【課題】  測定対象物の存在を検出する検出器が当該測定対象物を検出したときの機械位置を高精度に測定することができる機械位置測定装置および機械位置測定システムを提供する。【解決手段】  測定対象物と検出器１３との相対位置を変位させるドライブユニット１１に対して指令値を出力する指令値出力部３１と、ドライブユニット１１からフィードバックされるＦＢ値を取得するＦＢ値取得部３２と、検出時カウンタ値を取得する検出時カウンタ値取得部３３と、検出時カウンタ値の取得後に起動され、検出時の機械位置を算出する機械位置算出部３４とを有し、機械位置算出部３４は、検出時のＦＢ値と検出時の指令値が出力されたときの機械補正値とに基づいて機械位置を算出するＦＢ値使用モードを有する。【選択図】  図１
2018069375.tif 000002
【特許請求の範囲】
【請求項１】
測定対象物の存在を検出する検出器が前記測定対象物を検出したときの機械位置を測定する機械位置測定装置であって、
前記測定対象物と前記検出器との相対位置を変位させるドライブユニットに対して、前記相対位置の変位を指令する指令値を出力する指令値出力部と、
前記ドライブユニットからフィードバックされる、前記測定対象物または前記検出器の位置情報であるＦＢ値を取得するＦＢ値取得部と、
前記検出器が前記測定対象物を検出した検出時の時刻を示す検出時カウンタ値を取得する検出時カウンタ値取得部と、
前記検出時カウンタ値の取得後に起動され、前記検出時の機械位置を算出する機械位置算出部とを有し、
前記機械位置算出部は、前記検出時のＦＢ値と前記検出時の指令値が出力されたときの機械補正値とに基づいて前記機械位置を算出するＦＢ値使用モードを有する、機械位置測定装置。
【請求項２】
前記ＦＢ値使用モードにおいて、前記機械位置算出部は、下記式（１）を用いて前記検出時のＦＢ値が計測されてから起動するまでの経過時間である計測後経過時間を算出し、当該計測後経過時間に基づいて前記検出時のＦＢ値を特定するとともに、
下記式（２）を用いて前記検出時の前記指令値が出力されてから起動するまでの経過時間である指令後経過時間を算出し、当該指令後経過時間に基づいて前記検出時の指令値が出力されたときの機械補正値を特定する、請求項１に記載の機械位置測定装置；
Ｘ＝Ｓ−Ｔ−Ｄ１  …式（１）
Ｙ＝Ｓ−Ｔ＋Ｄ２  …式（２）
ただし、各符号は以下を表す。
Ｘ：計測後経過時間
Ｙ：指令後経過時間
Ｓ：起動時カウンタ値（機械位置算出部が起動した時刻）
Ｔ：検出時カウンタ値
Ｄ１：ＦＢ遅延設定値（検出時からＦＢ値を取得するまでの遅延時間）
Ｄ２：指令遅延設定値（指令値が出力されてから検出時までの遅延時間）
【請求項３】
前記機械位置算出部は、前記ＦＢ値使用モードと切替可能なモードとして、前記検出時の指令値を前記機械位置として算出する指令値使用モードを有する、請求項１または請求項２に記載の機械位置測定装置。
【請求項４】
前記指令値使用モードにおいて、前記機械位置算出部は、下記式（２）を用いて前記検出時の前記指令値が出力されてから起動するまでの経過時間である指令後経過時間を算出し、当該指令後経過時間に基づいて前記検出時の指令値を特定する、請求項３に記載の機械位置測定装置；
Ｙ＝Ｓ−Ｔ＋Ｄ２  …式（２）
ただし、各符号は以下を表す。
Ｙ：指令後経過時間
Ｓ：起動時カウンタ値（機械位置算出部が起動した時刻）
Ｔ：検出時カウンタ値
Ｄ２：指令遅延設定値（指令値が出力されてから検出時までの遅延時間）
【請求項５】
前記検出器が、前記測定対象物に接触する接触子と前記測定対象物との接触時にＯＮ信号を出力し、非接触時にＯＦＦ信号を出力する接触センサである場合、当該接触センサからの出力信号に基づいて前記検出時を特定する検出時特定ユニットを有し、当該検出時特定ユニットは、接触待ち状態で前記ＯＮ信号を取得したときのカウンタ値を保持した後、設定回数連続してＯＦＦ信号を取得せず、かつ、設定回数連続してＯＮ信号を取得した場合、保持した前記カウンタ値を前記検出時カウンタ値として出力する、請求項１から請求項４のいずれかに記載の機械位置測定装置。
【請求項６】
請求項１から請求項５のいずれかに記載の機械位置測定装置と、前記ドライブユニットによって駆動される工作機械と、前記検出器とを備えてなる機械位置測定システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、測定対象物の存在を検出する検出器が測定対象物を検出したときの機械位置を測定する機械位置測定装置および機械位置測定システムに関するものである。
【背景技術】
【０００２】
従来、接触センサ等を備えた工作機械においては、前記接触センサが測定対象物を検出したときの機械位置（工作機械を構成する各軸の実際の位置）に基づいて、ワークや工具の形状等を測定する技術が知られている。例えば、特開２０１３−６２５７号公報には、対象物への接触位置を検出する接触位置検出装置と、当該接触位置検出装置を用いてワークの形状測定等を行う工作機械が開示されている（特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−６２５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述した機械位置を測定するに際しては、数値制御装置（以下、ＮＣと記載する場合がある）が工作機械のドライブユニット（以下、ＤＵと記載する場合がある）へ出力する指令値か、当該ドライブユニットから数値制御装置へフィードバックされるフィードバック値（以下、ＦＢ値と記載する場合がある）のいずれかを用いることとなる。
【０００５】
しかしながら、工作機械には多少なりとも機械誤差が存在するため、ＮＣプログラム上の指令値と、当該指令値によって動作した工作機械の機械位置とは必ずしも一致しない。このため、数値制御装置は一般的に、機械誤差をオフセットするための機械補正値を予め指令値に含めて出力するようになっている。
【０００６】
また、数値制御装置が指令値を出力してからフィードバック値を取得するまでの間には、図１０に示すように、以下の３つの時間的な遅延が存在する。
（１）数値制御装置が指令値（ＮＣ指令値）を出力してからドライブユニットに届くまでの通信遅延
（２）ドライブユニットが指令値（ＤＵ指令値）を取得してから、接触センサが実際に測定対象物と接触するまでの位置ループゲイン遅れ
（３）接触センサが実際に測定対象物と接触した接触時から、数値制御装置がドライブユニットからフィードバック値（ＦＢ値）を取得するまでの通信遅延
【０００７】
したがって、指令値またはフィードバック値に基づいて、接触センサ等が実際に測定対象物と接触したときの機械位置を測定するに際しては、指令値に応じて段階的に設定される機械補正値や、上述した各種の遅延時間を考慮しなければ、機械位置の測定精度が低下してしまうという問題がある。
【０００８】
本発明は、このような問題点を解決するためになされたものであって、測定対象物の存在を検出する検出器が当該測定対象物を検出したときの機械位置を高精度に測定することができる機械位置測定装置および機械位置測定システムを提供することを目的としている。
【課題を解決するための手段】
【０００９】
本発明に係る機械位置測定装置は、フィードバック値に基づいて、測定対象物の存在を検出する検出器が当該測定対象物を検出したときの機械位置を高精度に測定するという課題を解決するために、測定対象物の存在を検出する検出器が前記測定対象物を検出したときの機械位置を測定する機械位置測定装置であって、前記測定対象物と前記検出器との相対位置を変位させるドライブユニットに対して、前記相対位置の変位を指令する指令値を出力する指令値出力部と、前記ドライブユニットからフィードバックされる、前記測定対象物または前記検出器の位置情報であるＦＢ値を取得するＦＢ値取得部と、前記検出器が前記測定対象物を検出した検出時の時刻を示す検出時カウンタ値を取得する検出時カウンタ値取得部と、前記検出時カウンタ値の取得後に起動され、前記検出時の機械位置を算出する機械位置算出部とを有し、前記機械位置算出部は、前記検出時のＦＢ値と前記検出時の指令値が出力されたときの機械補正値とに基づいて前記機械位置を算出するＦＢ値使用モードを有する。
【００１０】
また、本発明の一態様として、ＦＢ値使用モードで使用する、検出時のＦＢ値と、検出時の指令値が出力されたときの機械補正値とを正確に算出するという課題を解決するために、前記ＦＢ値使用モードにおいて、前記機械位置算出部は、下記式（１）を用いて前記検出時のＦＢ値が計測されてから起動するまでの経過時間である計測後経過時間を算出し、当該計測後経過時間に基づいて前記検出時のＦＢ値を特定するとともに、下記式（２）を用いて前記検出時の前記指令値が出力されてから起動するまでの経過時間である指令後経過時間を算出し、当該指令後経過時間に基づいて前記検出時の指令値が出力されたときの機械補正値を特定してもよい。
Ｘ＝Ｓ−Ｔ−Ｄ１  …式（１）
Ｙ＝Ｓ−Ｔ＋Ｄ２  …式（２）
ただし、各符号は以下を表す。
Ｘ：計測後経過時間
Ｙ：指令後経過時間
Ｓ：起動時カウンタ値（機械位置算出部が起動した時刻）
Ｔ：検出時カウンタ値
Ｄ１：ＦＢ遅延設定値（検出時からＦＢ値を取得するまでの遅延時間）
Ｄ２：指令遅延設定値（指令値が出力されてから検出時までの遅延時間）
【００１１】
さらに、本発明の一態様として、指令値に基づいて、測定対象物の存在を検出する検出器が当該測定対象物を検出したときの機械位置を高精度に測定するという課題を解決するために、前記機械位置算出部は、前記ＦＢ値使用モードと切替可能なモードとして、前記検出時の指令値を前記機械位置として算出する指令値使用モードを有していてもよい。
【００１２】
また、本発明の一態様として、指令値使用モードで使用する、検出時の指令値を正確に算出するという課題を解決するために、前記指令値使用モードにおいて、前記機械位置算出部は、下記式（２）を用いて前記検出時の前記指令値が出力されてから起動するまでの経過時間である指令後経過時間を算出し、当該指令後経過時間に基づいて前記検出時の指令値を特定してもよい。
Ｙ＝Ｓ−Ｔ＋Ｄ２  …式（２）
ただし、各符号は以下を表す。
Ｙ：指令後経過時間
Ｓ：起動時カウンタ値（機械位置算出部が起動した時刻）
Ｔ：検出時カウンタ値
Ｄ２：指令遅延設定値（指令値が出力されてから検出時までの遅延時間）
【００１３】
さらに、本発明の一態様として、接触センサにおけるノイズやチャタリングを除去して検出時を正確かつ確実に特定するという課題を解決するために、前記検出器が、前記測定対象物に接触する接触子と前記測定対象物との接触時にＯＮ信号を出力し、非接触時にＯＦＦ信号を出力する接触センサである場合、当該接触センサからの出力信号に基づいて前記検出時を特定する検出時特定ユニットを有し、当該検出時特定ユニットは、接触待ち状態で前記ＯＮ信号を取得したときのカウンタ値を保持した後、設定回数連続してＯＦＦ信号を取得せず、かつ、設定回数連続してＯＮ信号を取得した場合、保持した前記カウンタ値を前記検出時カウンタ値として出力してもよい。
【００１４】
また、本発明に係る機械位置測定システムは、上述したいずれかの態様の機械位置測定装置と、前記ドライブユニットによって駆動される工作機械と、前記検出器とを備えてなるものである。
【発明の効果】
【００１５】
本発明によれば、測定対象物の存在を検出する検出器が当該測定対象物を検出したときの機械位置を高精度に測定することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明に係る機械位置測定装置および機械位置測定システムの本実施形態を示すブロック図である。
【図２】本実施形態において、検出時特定ユニットの検出方法を示す図である。
【図３】本実施形態における指令遅延設定値およびＦＢ遅延設定値を説明する図である。
【図４】本実施形態のＦＢ値使用モードにおいて、検出時のＦＢ値および検出時の指令値が出力されたときの機械補正値を特定する方法を示す図である。
【図５】本実施形態のＦＢ値使用モードにおける各値のデータ例である。
【図６】本実施形態の指令値使用モードにおいて、検出時の指令値を特定する方法を示す図である。
【図７】本実施形態の指令値使用モードにおける各値のデータ例である。
【図８】本実施形態において、検出器が測定対象物を検出したときの機械位置を測定する処理を示すフローチャートである。
【図９】図７における機械位置算出処理の詳細を示すフローチャートである。
【図１０】数値制御装置において、指令値を出力してからフィードバック値を取得するまでの間に存在する時間的な遅延を示す図である。
【発明を実施するための形態】
【００１７】
以下、本発明に係る機械位置測定装置および機械位置測定システムの一実施形態について図面を用いて説明する。
【００１８】
本実施形態の機械位置測定システム１０は、図１に示すように、機械位置測定装置１から指令値を取得し工作機械１２へ制御信号を出力するドライブユニット１１と、当該ドライブユニット１１からの制御信号によって駆動され測定対象物を移動させる工作機械１２と、当該工作機械１２によって移動された測定対象物の存在を検出する検出器１３と、当該検出器１３が測定対象物の存在を検出した検出時を特定する検出時特定ユニット１４と、ドライブユニット１１からのフィードバック値および検出時特定ユニット１４からの検出時カウンタ値を取得し、機械位置を高精度に測定する機械位置測定装置１とから構成されている。以下、各構成について詳細に説明する。
【００１９】
ドライブユニット１１は、サーボアンプ等によって構成されており、工作機械１２を構成する各軸（主軸や回転テーブルなどの回転軸、およびＸ軸、Ｙ軸、Ｚ軸などの直線軸）を駆動制御し、測定対象物と検出器１３との相対位置を変位させるものである。本実施形態において、ドライブユニット１１は、図１に示すように、機械位置測定装置１の指令値出力部３１から出力される指令値に基づいて、各軸用モータを回転駆動させる制御信号を工作機械１２へ出力するようになっている。
【００２０】
また、本実施形態において、ドライブユニット１１は、所定周期のクロック信号を生成して出力し、当該クロック信号に応じて工作機械１２から各軸用モータの位置情報（回転角度位置）をサンプリングする。また、ドライブユニット１１は、サンプリング結果から測定対象物または検出器１３の位置情報であるＦＢ値を算出し、機械位置測定装置１のＦＢ値取得部３２へ出力するようになっている。
【００２１】
工作機械１２は、旋盤、ボール盤、中ぐり盤、フライス盤、歯切り盤、研削盤等のように、金属、木材、石材、樹脂等のワークに対して、切断、穿孔、研削、研磨、圧延、鍛造、折り曲げ等の加工を施すための機械である。本実施形態において、工作機械１２の主軸には、測定対象物として工具がセットされており、ドライブユニット１１からの制御信号に基づいてＸＹＺ方向に移動させるようになっている。また、工作機械１２は、図示しないロータリエンコーダ等を有しており、各軸用モータの位置情報をドライブユニット１１へ出力するようになっている。
【００２２】
検出器１３は、測定対象物の存在を検出するためのものである。本実施形態において、検出器１３は、ツールプリセッタ等のように、測定対象物に接触する接触子を備えた接触センサによって構成されている。そして、当該接触センサ（検出器１３）は、図１に示すように、接触子と測定対象物との接触時にＯＮ信号を出力し、非接触時にＯＦＦ信号を出力するようになっている。
【００２３】
なお、本実施形態では、工作機械１２側に測定対象物としての工具をセットして移動させ、当該工具の存在を検出器１３によって検出しているが、この構成に限定されるものではない。例えば、工作機械１２側にタッチプローブ等の接触子を備えた接触センサをセットして移動させ、当該接触センサによって測定対象物としてのワークの存在を検出するようにしてもよい。
【００２４】
また、本実施形態では、検出器１３として、測定対象物と接触子との接触により測定対象物の存在を検出する接触センサを使用している。しかしながら、この構成に限定されるものではなく、光学式、磁気式または静電容量式等のように、測定対象物と接触することなくその存在を検出可能な非接触タイプの検出器１３を使用してもよい。
【００２５】
例えば、光学式としては、発光部と受光部との間で測定対象物が光を遮った瞬間（受光量が閾値以下になった時）を検出する方式や、測定対象物までの距離を測定した瞬間を検出する三角測量法等がある。また、磁気式としては、ホール素子を使って磁界の出力変化を捕捉し、当該出力変化が閾値を超えた瞬間を検出する方式が考えられる。なお、前記閾値を超えたか否かの判断は、ローパスフィルタ等によって実現可能と考えられる。
【００２６】
検出時特定ユニット１４は、検出器１３（接触センサ）からの出力信号に基づいて検出時を特定するものである。具体的には、検出時特定ユニット１４は、所定周期のクロック信号を生成して出力するとともに、当該クロック信号に応じて接触センサからの出力信号をサンプリングする。そして、当該サンプリング結果を１ビットずつシフトし、各サンプリング時刻を示すカウンタ値とともに時系列で記憶するようになっている。
【００２７】
以上の構成において、本実施形態の検出時特定ユニット１４は、接触待ち状態で接触センサからＯＮ信号を取得した場合、当該取得したときのカウンタ値を一旦保持した後、確定待ちの状態となる。そして、当該確定待ち状態において、図２に示すように、所定の設定回数連続してＯＦＦ信号を取得した場合、一旦保持したＯＮ信号はノイズと判断し、接触待ち状態へ戻る。また、設定回数連続してＯＮ信号を取得しない限りは、チャタリングかノイズかの判別が付かないため、確定待ち状態を保持する。
【００２８】
一方、検出時特定ユニット１４は、確定待ちの状態から、設定回数連続してＯＦＦ信号を取得せず、かつ、設定回数連続してＯＮ信号を取得した場合、保持したカウンタ値を検出時カウンタ値として確定し、機械位置測定装置１の検出時カウンタ値取得部３３へ出力するようになっている。
【００２９】
機械位置測定装置１は、工作機械１２を制御する数値制御装置等のコンピュータによって構成されており、図１に示すように、各種のデータを記憶するとともに、演算処理手段３が演算処理を行う際のワーキングエリアとして機能する記憶手段２と、当該記憶手段２にインストールされた機械位置測定プログラム１ａを実行することにより、各種の演算処理を実行し後述する各構成部として機能する演算処理手段３とを有している。以下、各構成手段について説明する。
【００３０】
記憶手段２は、ハードディスク、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、フラッシュメモリ等で構成されており、図１に示すように、プログラム記憶部２１と、位置データ記憶部２２と、設定データ記憶部２３とを有している。
【００３１】
プログラム記憶部２１には、本実施形態の機械位置測定装置１を制御するための機械位置測定プログラム１ａがインストールされている。そして、演算処理手段３が、当該機械位置測定プログラム１ａを実行することにより、コンピュータを後述する各構成部としてとして機能させるようになっている。
【００３２】
位置データ記憶部２２は、図１に示すように、工作機械１２を構成する各軸について、指令値と、ＦＢ値と、機械補正値とからなる位置データを記憶するものである。これら指令値とＦＢ値と機械補正値の情報を、各サンプリング時刻を示すカウンタ値とともに時系列で記憶するようになっている。指令値は、工作機械１２を制御するＮＣプログラムで指定されている各軸の指令値であって、設定データ記憶部２３から読み出された機械補正値とともにカウンタ値に対応付けて記憶される。なお、本実施形態において、ＮＣプログラムは外部記憶装置（図示せず）に記憶されており、後述する指令値出力部３１によって読み出され解析・補間等されるようになっている。
【００３３】
また、ＦＢ値は、ドライブユニット１１からフィードバックされる、測定対象物または検出器１３の位置情報であって、後述するＦＢ値取得部３２によって取得された後、カウンタ値に対応付けて記憶される。
【００３４】
設定データ記憶部２３は、図１に示すように、機械補正値と、指令遅延設定値と、ＦＢ遅延設定値とからなる設定データを記憶するものである。機械補正値は、数値制御装置からなる機械位置測定装置１の機械誤差をオフセットするためのものであり、指令値に応じて段階的な数値が設定されるようになっている。
【００３５】
指令遅延設定値は、予め計測して設定されるものであり、図３に示すように、指令値が出力されてから検出時までの遅延時間である。具体的には、機械位置測定装置１が指令値を出力してからドライブユニット１１に届くまでの通信遅延と、ドライブユニット１１が指令値を取得してから、接触センサが実際に測定対象物と接触するまでの位置ループゲイン遅れとを合わせた遅延時間である。よって、指令遅延設定値は、位置ループゲインの値に依存し、当該値の調整により変化するものである。
【００３６】
ＦＢ遅延設定値は、予め計測して設定されるものであり、図３に示すように、検出時からＦＢ値を取得するまでの遅延時間である。具体的には、接触センサが実際に測定対象物と接触した接触時から、機械位置測定装置１がドライブユニット１１からＦＢ値を取得するまでの通信上の遅延時間である。よって、ＦＢ遅延設定値は、通信的な遅延が一定であれば、機械位置測定装置１に固有の一定値となる。
【００３７】
つぎに、演算処理手段３は、ＣＰＵ（Central Processing Unit）等によって構成されており、記憶手段２にインストールされた機械位置測定プログラム１ａを実行することにより、図１に示すように、指令値出力部３１と、ＦＢ値取得部３２と、検出時カウンタ値取得部３３と、機械位置算出部３４として機能する。以下、各構成部についてより詳細に説明する。なお、本実施形態において、演算処理手段３は、所定周期のクロック信号を発生させ、当該クロック信号に基づいて動作するようになっている。
【００３８】
指令値出力部３１は、ドライブユニット１１に対して、測定対象物と検出器１３との相対位置の変位を指令する指令値を出力するものである。具体的には、指令値出力部３１は、外部記憶装置（図示せず）から読み出したＮＣプログラムを解析・補間して各軸の指令値を求めた後、ドライブユニット１１へ出力する。また、本実施形態において、指令値出力部３１は、クロック信号に応じて指令値をサンプリングし、各サンプリング時刻を示すカウンタ値に対応付けて各軸の指令値を時系列で位置データ記憶部２２に記憶させるようになっている。
【００３９】
ＦＢ値取得部３２は、ドライブユニット１１からフィードバックされるＦＢ値を取得するものである。本実施形態において、ＦＢ値取得部３２は、クロック信号に応じてドライブユニット１１からのＦＢ値をサンプリングし、各サンプリング時刻を示すカウンタ値に対応付けてＦＢ値を時系列で位置データ記憶部２２に記憶させるようになっている。
【００４０】
検出時カウンタ値取得部３３は、検出器１３が測定対象物を検出した検出時の時刻を示す検出時カウンタ値を取得するものである。本実施形態において、検出時カウンタ値取得部３３は、検出時特定ユニット１４から出力された検出時カウンタ値を取得するようになっている。
【００４１】
なお、本実施形態では、検出器１３として接触センサを使用しているため、検出時カウンタ値取得部３３は、検出時特定ユニット１４から検出時カウンタ値を取得している。しかしながら、上述した非接触タイプの検出器１３を使用する場合、ノイズやチャタリングが発生するおそれがないため、検出時特定ユニット１４は不要となる。この場合、検出時カウンタ値取得部３３は、非接触タイプの検出器１３が測定対象物を検出したときに出力するＯＮ／ＯＦＦ信号をサンプリングし、ＯＮ信号を取得した際のカウンタ値を検出時カウンタ値として取得してもよい。
【００４２】
機械位置算出部３４は、検出時カウンタ値の取得後に起動され、検出器１３が測定対象物を検出した検出時の機械位置を算出するものである。本実施形態において、機械位置算出部３４は、機械位置の算出に際してＦＢ値を用いるＦＢ値使用モードと、機械位置の算出に際して指令値を用いる指令値使用モードという２つのモードを切替可能に有している。以下、各モードについて説明する。なお、機械位置算出部３４の機能は、一般的な数値制御装置に実装されているスキップ機能の内部処理を利用することにより実現可能である。
【００４３】
（１）ＦＢ値使用モード
ＦＢ値使用モードでは、機械位置算出部３４は、検出時のＦＢ値と検出時の指令値が出力されたときの機械補正値とに基づいて機械位置を算出する。具体的には、機械位置算出部３４は、検出時カウンタ値取得部３３によって検出時カウンタ値Ｔが取得されると、図４に示すように、所定の起動時間経過後に起動し、当該起動した時刻を示す起動時カウンタ値Ｓを取得する。
【００４４】
そして、機械位置算出部３４は、設定データ記憶部２３からＦＢ遅延設定値Ｄ１を取得するとともに、先に取得した起動時カウンタ値Ｓおよび検出時カウンタ値Ｔに基づき、下記式（１）を用いて検出時のＦＢ値が計測されてから起動するまでの経過時間である計測後経過時間Ｘを算出し、当該計測後経過時間Ｘに基づいて検出時のＦＢ値を特定する。すなわち、図４に示すように、起動時より計測後経過時間Ｘだけ前のＦＢ値が、検出時のＦＢ値と決定できる。
【００４５】
また、機械位置算出部３４は、設定データ記憶部２３から指令遅延設定値Ｄ２を取得するとともに、先に取得した起動時カウンタ値Ｓおよび検出時カウンタ値Ｔに基づき、下記式（２）を用いて検出時の指令値が出力されてから起動するまでの経過時間である指令後経過時間Ｙを算出し、当該指令後経過時間Ｙに基づいて検出時の指令値が出力されたときの機械補正値を特定する。すなわち、図４に示すように、起動時より指令後経過時間Ｙだけ前の指令値が、検出時の指令値にあたるため、当該指令値に対応する機械補正値を設定データ記憶部２３から取得する。
【００４６】
Ｘ＝Ｓ−Ｔ−Ｄ１  …式（１）
Ｙ＝Ｓ−Ｔ＋Ｄ２  …式（２）
ただし、各符号は以下を表す。
Ｘ：計測後経過時間
Ｙ：指令後経過時間
Ｓ：起動時カウンタ値（機械位置算出部が起動した時刻）
Ｔ：検出時カウンタ値
Ｄ１：ＦＢ遅延設定値（検出時からＦＢ値を取得するまでの遅延時間）
Ｄ２：指令遅延設定値（指令値が出力されてから検出時までの遅延時間）
【００４７】
ここで、カウンタ値、指令値、機械補正値、ドライブユニット１１への指令値（ＤＵへの指令値）、ＦＢ値および機械位置についてのデータ例を図５に示す。この例では、起動時カウンタ値Ｓが[0x10]で、検出時カウンタ値Ｔが[0x0A]で、ＦＢ遅延設定値Ｄ１が[0x04]であるから、計測後経過時間Ｘは[0x02]となり、起動時から２周期前のＦＢ値が計測値としての検出時のＦＢ値（99.63）であるとわかる。また、指令遅延設定値Ｄ２は[0x04]であるから、指令後経過時間Ｙは[0x0A]となり、起動時から１０周期前の指令値（99.6）が検出時の指令値であって、当該指令値に対応する機械補正値（0.03）がわかる。
【００４８】
したがって、ＦＢ値使用モードにおいて、機械位置算出部３４は、検出時のＦＢ値（99.63）から検出時の指令値が出力されたときの機械補正値（0.03）を減算することにより、検出時の機械位置（99.6）を算出するようになっている。なお、本実施形態では、減算処理によって機械位置を算出しているが、これに限定されるものではなく、上述した各値の関係性に基づいて算出しうるものであれば、どのような演算処理を用いてもよい。
【００４９】
（２）指令値使用モード
指令値使用モードでは、機械位置算出部３４は、検出時の指令値を上述した機械位置として算出する。具体的には、機械位置算出部３４は、検出時カウンタ値取得部３３によって検出時カウンタ値Ｔが取得されると、図６に示すように、所定の待ち時間経過後に起動し、当該起動した時刻を示す起動時カウンタ値Ｓを取得する。
【００５０】
そして、機械位置算出部３４は、設定データ記憶部２３から指令遅延設定値Ｄ２を取得するとともに、先に取得した起動時カウンタ値Ｓおよび検出時カウンタ値Ｔに基づき、上記式（２）を用いて検出時の指令値が出力されてから起動するまでの経過時間である指令後経過時間Ｙを算出し、当該指令後経過時間Ｙに基づいて検出時の指令値を特定する。すなわち、図６に示すように、起動時より指令後経過時間Ｙだけ前の指令値が、検出時の指令値にあたるため、当該指令値を位置データ記憶部２２から取得する。
【００５１】
ここで、カウンタ値、指令値、機械補正値、ドライブユニット１１への指令値（ＤＵへの指令値）および機械位置についてのデータ例を図７に示す。この例では、起動時カウンタ値Ｓが[0x0C]で、検出時カウンタ値Ｔが[0x0A]で、指令遅延設定値Ｄ２が[0x04]であるから、指令後経過時間Ｙは[0x06]となり、起動時から６周期前の指令値（99.6）が計測値としての検出時の指令値であるとわかる。
【００５２】
したがって、指令値使用モードにおいて、機械位置算出部３４は、検出時の指令値（99.6）を検出時の機械位置として算出するようになっている。
【００５３】
つぎに、本実施形態の機械位置測定装置１および機械位置測定システム１０による作用について説明する。
【００５４】
本実施形態の機械位置測定装置１および機械位置測定システム１０によって、検出器１３が測定対象物を検出したときの機械位置を測定する場合、図８に示すように、まず、機械位置測定装置１の指令値出力部３１が、ドライブユニット１１に対して、測定対象物と検出器１３との相対位置の変位を指令する指令値を出力する（ステップＳ１）。これにより、ドライブユニット１１は、当該指令値に基づいて、各軸用モータを回転駆動させる制御信号を工作機械１２へ出力する（ステップＳ２）。
【００５５】
制御信号を受信した工作機械１２は、主軸にセットされた測定対象物を移動させ、測定対象物と検出器１３との相対位置を変位させるとともに（ステップＳ３）、各軸用モータの位置情報をドライブユニット１１へ出力する（ステップＳ４）。ドライブユニット１１は、当該位置情報からＦＢ値を算出し、機械位置測定装置１のＦＢ値取得部３２へ出力する（ステップＳ５）。これにより、ＦＢ値取得部３２によって取得されたＦＢ値は、カウンタ値とともに時系列で位置データ記憶部２２に記憶される。
【００５６】
工作機械１２によって移動された測定対象物が検出器１３（接触センサ）の接触子と接触すると（ステップＳ６：ＹＥＳ）、検出器１３はＯＮ信号を検出時特定ユニット１４へ出力する（ステップＳ７）。一方、測定対象物と検出器１３との接触がなければ（ステップＳ６：ＮＯ）、検出器１３はＯＦＦ信号を検出時特定ユニット１４へ出力する（ステップＳ８）。
【００５７】
検出時特定ユニット１４は、接触待ち状態で接触センサからＯＮ信号を取得すると（ステップＳ９：ＹＥＳ）、当該時点のカウンタ値を保持して確定待ち状態となる（ステップＳ１０）。その後、検出時特定ユニット１４は、設定回数連続してＯＦＦ信号を取得せず、または、設定回数連続してＯＮ信号も取得しない間（ステップＳ１１：ＮＯ）、ＯＮ信号はノイズやチャタリングの可能性が高いため、確定待ち状態を保持する。
【００５８】
一方、検出時特定ユニット１４は、確定待ち状態において、設定回数連続してＯＦＦ信号を取得した場合（ステップＳ１１：ＹＥＳ、ステップＳ１２：ＹＥＳ）、ステップＳ１０で保持したカウンタ値に対応するＯＮ信号はノイズである可能性が高いため、ステップＳ９へ戻り、再びＯＮ信号が来るのを待機する接触待ち状態となる。一方、検出時特定ユニット１４は、確定待ち状態において、設定回数連続してＯＮ信号を取得した場合（ステップＳ１１：ＹＥＳ、ステップＳ１２：ＮＯ）、ステップＳ１０で保持したカウンタ値を検出時カウンタ値として確定し、機械位置測定装置１の検出時カウンタ値取得部３３へ出力する（ステップＳ１３）。これにより、接触センサに起因するノイズやチャタリングが除去されるため、測定対象物が実際に検出された時点が正確に特定される。
【００５９】
つぎに、機械位置測定装置１の検出時カウンタ値取得部３３が、検出時特定ユニット１４から検出時カウンタ値（Ｔ）を取得すると、機械位置算出部３４が起動し、検出時の機械位置を算出する（ステップＳ１４）。以下、当該機械位置を算出する際の処理について、図９を用いて説明する。
【００６０】
まず、機械位置算出部３４は、起動した時刻を示す起動時カウンタ値（Ｓ）を取得する（ステップＳ２１）。そして、ＦＢ値使用モードに設定されている場合、機械位置算出部３４は、設定データ記憶部２３からＦＢ遅延設定値（Ｄ１）を取得するとともに（ステップＳ２２）、先に取得した起動時カウンタ値（Ｓ）および検出時カウンタ値（Ｔ）に基づき、検出時のＦＢ値が計測されてから起動するまでの経過時間である計測後経過時間（Ｘ）を算出し（ステップＳ２３）、当該計測後経過時間（Ｘ）に基づいて検出時のＦＢ値（Ａ）を特定する（ステップＳ２４）。
【００６１】
つづいて、機械位置算出部３４は、設定データ記憶部２３から指令遅延設定値（Ｄ２）を取得するとともに（ステップＳ２５）、先に取得した起動時カウンタ値（Ｓ）および検出時カウンタ値（Ｔ）に基づき、検出時の指令値が出力されてから起動するまでの経過時間である指令後経過時間（Ｙ）を算出し（ステップＳ２６）、当該指令後経過時間（Ｙ）に基づいて検出時の指令値が出力されたときの機械補正値（Ｂ）を特定する（ステップＳ２７）。
【００６２】
そして、機械位置算出部３４は、検出時のＦＢ値（Ａ）から検出時の指令値が出力されたときの機械補正値（Ｂ）を減算することにより、検出時の機械位置（Ａ−Ｂ）を算出する（ステップＳ２８）。これにより、検出時の指令値が出力されたときの機械補正値がオフセットされるため、ＦＢ値から正確な機械位置が算出される。よって、ＦＢ値が適切に取得される場合には、ＦＢ値使用モードで測定することが好ましい。
【００６３】
一方、指令値使用モードに設定されている場合、機械位置算出部３４は、設定データ記憶部２３から指令遅延設定値（Ｄ２）を取得するとともに（ステップＳ２９）、先に取得した起動時カウンタ値（Ｓ）および検出時カウンタ値（Ｔ）に基づき、検出時の指令値が出力されてから起動するまでの経過時間である指令後経過時間（Ｙ）を算出し（ステップＳ３０）、当該指令後経過時間（Ｙ）に基づいて検出時の指令値（Ｃ）を特定する（ステップＳ３１）。
【００６４】
そして、機械位置算出部３４は、検出時の指令値（Ｃ）を検出時の機械位置として特定する（ステップＳ３２）。これにより、検出時の指令値から正確な機械位置が算出される。よって、周囲の環境が悪い場合や、工作機械１２が振動の影響を受けやすい場合には、指令値使用モードで測定することが好ましい。
【００６５】
以上のように、いずれかのモードで機械位置が算出されると、測定終了の指示により（ステップＳ１５）、本処理が完了する。
【００６６】
以上のような本実施形態によれば、以下のような効果を奏する。
１．測定対象物の存在を検出する検出器１３が当該測定対象物を検出したときの機械位置を高精度に測定することができる。
２．ＦＢ値使用モードにより、工作機械１２の各軸用モータが弱くて指令値が進んでいるのに実際のＦＢ値が進んでいないような場合でも、信頼性の高い機械位置を測定することができる。
３．通信遅延が一定であればＦＢ値遅延設定値も一定であり、機械補正値が大きく変更されることはないため、ＦＢ値使用モードによれば、位置ループゲインを多少調整した場合でも、調整前と同じ設定のままで高精度に機械位置を測定することができる。
４．指令値使用モードでは、機械位置測定装置１からの指令値を用いるため、周囲の環境が悪い場合や、工作機械１２が振動の影響を受けやすい場合でも、高精度に機械位置を測定することができる。
５．機械位置を測定するためのソースをＦＢ値と指令値とで簡単に切り替えることができる。
６．一般的な数値制御装置に実装されているスキップ機能を利用できるため、安価な汎用品を用いて機械位置測定装置１を実現することができる。
７．検出時特定ユニット１４が、接触センサに起因するノイズやチャタリングを除去するため、測定対象物が実際に検出された時点（検出時カウンタ値）を正確に特定することができる。
【００６７】
なお、本発明に係る機械位置測定装置１および機械位置測定システム１０は、前述した本実施形態に限定されるものではなく、適宜変更することができる。
【符号の説明】
【００６８】
１  機械位置測定装置
１ａ  機械位置測定プログラム
２  記憶手段
３  演算処理手段
１０  機械位置測定システム
１１  ドライブユニット
１２  工作機械
１３  検出器（接触センサ）
１４  検出時特定ユニット
２１  プログラム記憶部
２２  位置データ記憶部
２３  設定データ記憶部
３１  指令値出力部
３２  ＦＢ値取得部
３３  検出時カウンタ値取得部
３４  機械位置算出部
【図１】
2018069375.tif 000003
【図２】
2018069375.tif 000004
【図３】
2018069375.tif 000005
【図４】
2018069375.tif 000006
【図５】
2018069375.tif 000007
【図６】
2018069375.tif 000008
【図７】
2018069375.tif 000009
【図８】
2018069375.tif 000010
【図９】
2018069375.tif 000011
【図１０】
2018069375.tif 000012