(57)【要約】【課題】より正確にワークの位置を特定できる工作機械と、位置決定方法を提供する。【解決手段】ワークとの接触を検知する接触センサ及び該ワークの移動機構を備え、前記ワークの位置を表す位置信号を第１クロック信号の周期に基づいて取得し、前記接触センサの検知結果に基づいて接触有無を表す接触信号を第２クロック信号の周期に基づいて取得する工作機器において、前記第１クロック信号と前記第２クロック信号の間のずれ量を検出する第１検出部と、前記第１検出部の検出結果に基づいて、前記接触センサと前記ワークの接触時刻を特定する時刻特定部と、前記時刻特定部が特定した接触時刻に基づいて、前記位置信号から前記ワークの位置を決定する位置決定部とを備える。    【選択図】図５
2019175353.tif 000002
【特許請求の範囲】
【請求項１】
ワークとの接触を検知する接触センサ及び該ワークの移動機構を備え、前記ワークの位置を表す位置信号を第１クロック信号の周期に基づいて取得し、前記接触センサの検知結果に基づいて接触有無を表す接触信号を第２クロック信号の周期に基づいて取得する工作機械において、
前記第１クロック信号と前記第２クロック信号の間のずれ量を検出する第１検出部と、
前記第１検出部の検出結果に基づいて、前記接触センサと前記ワークの接触時刻を特定する時刻特定部と、
前記時刻特定部が特定した接触時刻に基づいて、前記位置信号から前記ワークの位置を決定する位置決定部と
を備えることを特徴とする工作機械。
【請求項２】
前記第１クロック信号が流れる第１信号線と前記第２クロック信号が流れる第２信号線におけるクロック信号の遅延量を検出する第２検出部を備え、
前記時刻特定部は、前記第１検出部及び前記第２検出部の検出結果に基づいて、前記接触時刻を特定することを特徴とする請求項１に記載の工作機械。
【請求項３】
前記時刻特定部は、前記第１検出部が検出したずれ量に対応するクロック周期分に基づいて、前記ワークと前記接触センサが接触したことを表す接触信号に対応する前記第２クロック信号上のエッジを特定することを特徴とする請求項１又は２に記載の工作機械。
【請求項４】
前記第１クロック信号の各周期に対応する値を有する第１カウンタ信号を生成する第１カウンタ生成部と、
前記第２クロック信号の各周期に対応する値を有する第２カウンタ信号を生成する第２カウンタ生成部とを備え、
前記第１検出部は、前記第１カウンタ信号と前記第２カウンタ信号に基づいて前記ずれ量を検出することを特徴とする請求項１から３の何れかに記載の工作機械。
【請求項５】
前記第２検出部は次の式を用いて前記遅延量を検出することを特徴とする請求項２に記載の工作機械。
｛（ｔ２−ｔ１）＋（ｔ４−ｔ３）｝／２
但し、ｔ１は前記第１信号線から前記第２信号線に所定のパケットデータを送信した時刻、ｔ２は前記第２信号線で前記パケットデータを受信した時刻、ｔ３は前記第２信号線で受信したパケットデータを前記第１信号線に返信した時刻、ｔ４は前記第２信号線で返信したパケットデータを前記第１信号線が受信した時刻である。
【請求項６】
ワークとの接触を検知する接触センサ及び該ワークの移動機構を備え、前記ワークの位置を表す位置信号を第１クロック信号の周期毎に取得し、前記接触センサの検知結果に基づいて接触有無を表す接触信号を第２クロック信号の周期毎に取得する工作機械にて、前記ワークの位置を特定する位置決定方法において、
前記第１クロック信号と前記第２クロック信号の間のずれ量を検出し、
検出した結果に基づいて、前記接触センサと前記ワークの接触時刻を特定し、
特定した接触時刻に基づいて、前記ワークの位置を決定することを特徴とする位置決定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工作機械と、ワークの位置を決定する位置決定方法に関する。
【背景技術】
【０００２】
例えば、特許文献１は、測定に要する時間を増加させることなく、接触センサがワークの表面に接触した時刻と、接触センサがワークの表面に接触したことを制御部が認識する時刻との差異を低減し、ワークの表面形状データの測定誤差を低減することができる工作機械を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−２５３９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
図９は、従来において接触センサを用いてワークの位置を決定する方法を説明する、タイミングチャートである。接触センサとワークの接触の有無を表す接触信号はセンサ側クロックに基づいて取得し、ワークの位置（座標値）を表すモータパルスはモータ側クロックに基づいて取得する。図９中、黒い矢印は取得タイミングを示す。
【０００５】
例えば、ワークのＸ軸の位置を決定する場合、接触センサがワークと接触しない時、これを表す、「００００００００」の接触信号が生成し、接触センサがワークの表面に接触した時、「０００００００１」の接触信号が生成し、以降、接触センサとワークとの接触が続く場合は、「００００００１１」、「０００００１１１」、「００００１１１１」…の接触信号が続く。
【０００６】
次いで、所定のタイミング（図９中の黒丸点）に、モータパルス及び接触信号を取得する。モータ側クロック及びセンサ側クロックが同期しているのであれば、モータ側クロックの黒丸点がセンサ側クロックの白丸点に対応する。しかし、図９においては、センサ側クロックが１周期ずれているので、白丸点でなく黒丸点にて接触信号の取得を行う。
【０００７】
その結果、図９においては、最新の接触信号を「０００００１１１」として判断すべきところ、最新の接触信号を「００００１１１１」であると誤判断する。これは、接触センサがワークの表面に接触した時の接触信号を判定における誤りを招くので、結果として誤ったＸ軸の座標値をワークの位置として決定する。
【０００８】
このような、ワークの位置の誤認には、同期しているはずのセンサ側クロック及びモータ側クロックの間のずれに加え、センサ側クロック及びモータ側クロック側が流れる信号線上の遅延が影響する。即ち、ワークの位置を正確に特定する為には、センサ側クロック及びモータ側クロックの間のずれ、かつセンサ側クロック及びモータ側クロック側が流れる信号線上のクロック信号の遅延の影響を共に考慮すべきである。
【０００９】
しかし、特許文献１の工作機械においては、ワークの位置を特定するにあたり、センサ側クロック及びモータ側クロックの間のずれと、センサ側クロック及びモータ側クロック側が流れる信号線上のクロック信号の遅延の影響を考慮していない。
【００１０】
本発明は、斯かる事情に鑑みてなされたものであり、より正確にワークの位置を特定できる工作機械と、位置決定方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明に係る工作機械は、ワークとの接触を検知する接触センサ及び該ワークの移動機構を備え、前記ワークの位置を表す位置信号を第１クロック信号の周期に基づいて取得し、前記接触センサの検知結果に基づいて接触有無を表す接触信号を第２クロック信号の周期に基づいて取得する工作機械において、前記第１クロック信号と前記第２クロック信号の間のずれ量を検出する第１検出部と、前記第１検出部の検出結果に基づいて、前記接触センサと前記ワークの接触時刻を特定する時刻特定部と、前記時刻特定部が特定した接触時刻に基づいて、前記位置信号から前記ワークの位置を決定する位置決定部とを備えることを特徴とする。
【００１２】
本発明にあっては、前記第１検出部が前記第１クロック信号と前記第２クロック信号の間のずれ量を検出し、前記時刻特定部が、前記第１検出部の検出結果に基づいて、前記接触センサと前記ワークの接触時刻を特定し、前記時刻特定部が特定した接触時刻に基づいて、前記位置決定部が前記位置信号から前記ワークの位置を決定する。
【００１３】
本発明に係る工作機械は、前記第１クロック信号が流れる第１信号線と前記第２クロック信号が流れる第２信号線におけるクロック信号の遅延量を検出する第２検出部を備え、前記時刻特定部は、前記第１検出部及び前記第２検出部の検出結果に基づいて、前記接触時刻を特定することを特徴とする。
【００１４】
本発明にあっては、前記第２検出部が、前記第１クロック信号が流れる第１信号線と前記第２クロック信号が流れる第２信号線におけるクロック信号の遅延量を検出する。前記第２検出部が検出した、クロック信号が流れる信号線におけるクロック信号の遅延量と、前記第１検出部が検出した、前記第１クロック信号と前記第２クロック信号の間のずれ量に基づいて、前記時刻特定部は前記接触時刻を特定する。
【００１５】
本発明に係る工作機械は、前記時刻特定部は、前記第１検出部が検出したずれ量に対応するクロック周期分に基づいて、前記ワークと前記接触センサが接触したことを表す接触信号に対応する前記第２クロック信号上のエッジを特定することを特徴とする。
【００１６】
本発明にあっては、前記時刻特定部は、前記第１検出部が検出したずれ量に対応するクロック周期分に基づいて、前記ワークと前記接触センサが接触したことを表す接触信号を特定し、特定した接触信号に対応する前記第２クロック信号上のエッジを、前記ワークと前記接触センサが接触した接触時刻として特定する。
【００１７】
本発明に係る工作機械は、前記第１クロック信号の各周期に対応する値を有する第１カウンタ信号を生成する第１カウンタ生成部と、前記第２クロック信号の各周期に対応する値を有する第２カウンタ信号を生成する第２カウンタ生成部とを備え、前記第１検出部は、前記第１カウンタ信号と前記第２カウンタ信号に基づいて前記ずれ量を検出することを特徴とする。
【００１８】
本発明にあっては、例えば、前記第１検出部は、所定のタイミングにおける前記第１カウンタ信号の値と前記第２カウンタ信号の値を比較し、前記第１カウンタ信号の値と前記第２カウンタ信号の値の差分に基づいて、前記第１クロック信号と前記第２クロック信号の間における前記ずれ量を検出する。
【００１９】
本発明に係る工作機械は、前記第２検出部は次の式を用いて前記遅延量を検出する。
｛（ｔ２−ｔ１）＋（ｔ４−ｔ３）｝／２
但し、ｔ１は前記第１信号線から前記第２信号線に所定のパケットデータを送信した時刻、ｔ２は前記第２信号線で前記パケットデータを受信した時刻、ｔ３は前記第２信号線で受信したパケットデータを前記第１信号線に返信した時刻、ｔ４は前記第２信号線で返信したパケットデータを前記第１信号線が受信した時刻である。
【００２０】
本発明にあっては、前記ｔ２と前記ｔ１の差が第１クロック信号と第２クロック信号の間のオフセットと信号線上の伝播遅延を含むことから、前記第２検出部は上述の式を用いて前記遅延量を検出する。
【００２１】
本発明に係る位置決定方法は、ワークとの接触を検知する接触センサ及び該ワークの移動機構を備え、前記ワークの位置を表す位置信号を第１クロック信号の周期毎に取得し、前記接触センサの検知結果に基づいて接触有無を表す接触信号を第２クロック信号の周期毎に取得する工作機械にて、前記ワークの位置を特定する位置決定方法において、前記第１クロック信号と前記第２クロック信号の間のずれ量を検出し、検出した結果に基づいて、前記接触センサと前記ワークの接触時刻を特定し、特定した接触時刻に基づいて、前記ワークの位置を決定することを特徴とする。
【００２２】
本発明にあっては、前記第１クロック信号と前記第２クロック信号の間のずれ量を検出し、前記検出の結果に基づいて、前記接触センサと前記ワークの接触時刻を特定して、特定した接触時刻に基づいて、前記位置信号から前記ワークの位置を決定する。
【発明の効果】
【００２３】
本発明によれば、センサ側クロックとモータ側クロックの間におけるずれ量を検出し、かつセンサ側クロックとモータ側クロックが流れる信号線上におけるクロック信号の遅延量を検出して、斯かるずれ量及び遅延量を反映することによって、正確にワークの位置を特定できる。
【図面の簡単な説明】
【００２４】
【図１】本実施の形態に係る工作機械の機械本体の全体斜視図である。
【図２】本実施の形態に係る工作機械の主軸部分の構成を示す正面図である。
【図３】本実施の形態に係る工作機械の制御系を示すブロック図である。
【図４】本実施の形態に係る工作機械の制御部の機能構成を示す機能ブロック図である。
【図５】本実施の形態に係る工作機械における、ワークの位置及び表面形状を決定する処理を説明するフローチャートである。
【図６】モータ側クロックとセンサ側クロックの間にずれが生じていない場合を示すタイミングチャートである。
【図７】モータ側クロックとセンサ側クロックの間にずれが生じている場合を表すタイミングチャートである。
【図８】実施の形態に係る工作機械において、信号線上におけるクロック信号の遅延量の検出する方法を説明するための説明図である。
【図９】従来において接触センサを用いてワークの位置を決定する方法を説明する、タイミングチャートである。
【発明を実施するための形態】
【００２５】
以下、本実施の形態に係る工作機械を図に基づいて詳しく説明する。
図１は、本実施の形態に係る工作機械の機械本体の全体斜視図であり、図２は、本実施の形態に係る工作機械の主軸部分の構成を示す正面図であり、図３は、本実施の形態に係る工作機械の制御系を示すブロック図である。図中、符号Ｍは本実施の形態に係る工作機械を示す。
【００２６】
工作機械Ｍでは、ワークと工具がＸＹＺの直交座標系における各軸方向へ相対移動する。工作機械Ｍは、鋳鉄製の基台であるベース１と、ベース１の上部に設けて、ワークの切削加工等を行う機械本体２を備える。
【００２７】
ベース１はＹ軸方向に長い略直方体状をなす。ベース１の下部の四隅には高さ調節が可能な脚部を夫々設け、工作機械Ｍは、これらの脚部を工場等の床面に設置することで設置してある。
【００２８】
機械本体２は、ベース１の後部上のコラム座部３の上面に固定されて鉛直上方に延びるコラム４と、コラム４の前面に沿って上下動する主軸ヘッド５と、主軸ヘッド５が一端部を回転可能に支持する主軸５Ａと、主軸ヘッド５の右側に位置し、主軸５Ａの先端に工具６の工具ホルダを取り付けて交換する工具交換装置（ＡＴＣ）７と、ベース１の上部に位置し、ワークを着脱可能に固定するテーブル８とを備える。
機械本体２はコラム４の背面側に、箱状の制御ボックス９を設け、制御ボックス９の内側には、工作機械の動作を制御するＮＣ装置２０（図３参照）を設けてある。
【００２９】
図１、図３に示すように、サーボモータからなるＸ軸モータ７１とＹ軸モータ７２は、Ｘ軸方向及びＹ軸方向にテーブル８（ワーク）を駆動する。テーブル８の下側には直方体状の支持台１０を設けている。
【００３０】
支持台１０にはＸ軸方向に沿って延びる１対のＸ軸送りガイドを設け、１対のＸ軸送りガイド上にテーブル８が配置してある。また、ベース１にはベース１の長手方向に沿って延びる１対のＹ軸送りガイドに設けてある。支持台１０上に設けたＸ軸モータ７１がＸ軸送りガイドに沿ってＸ軸方向にテーブル８を移動駆動し、ベース１上に設けたＹ軸モータ７２がＹ軸送りガイドに沿ってＹ軸方向に支持台１０を移動駆動する。
【００３１】
Ｘ軸送りガイドには、テレスコピック式に収縮するテレスコピックカバー１１，１２がテーブル８の左右（Ｘ方向）両側に設けてある。Ｙ軸送りガイドには、テレスコピックカバー１３とＹ軸後カバーとが、支持台１０の前後（Ｙ方向）に夫々設けてある。これら複数のカバーによって、テーブル８がＸ軸方向とＹ軸方向の何れの方向に移動した場合でも、テレスコピックカバー１１，１２，１３とＹ軸後カバーが、常にＸ軸送りガイドとＹ軸送りガイドを覆う。よって、加工中に飛散する切粉、クーラントの飛沫等が各レール上に落下するのを防止できる。
【００３２】
コラム４の前面側で上下方向に延びるガイドレールには、リニアガイドを介して主軸ヘッド５を昇降自在に支持している。サーボモータからなるＺ軸モータ７３は、Ｚ軸方向（上下方向）に主軸ヘッド５を昇降駆動する。
【００３３】
工具交換装置７は、工具６を支持する工具ホルダを複数格納する工具マガジン１４と、前記主軸に取付けた工具ホルダと他の工具ホルダとを把持して搬送するための工具交換アーム１５等を有する。工具マガジン１４の内側には、工具ホルダを支持する複数の工具ポットと、それら工具ポットを工具マガジン１４内で搬送する搬送機構を設けてある。
【００３４】
次に、工作機械Ｍの制御系の電気的構成について説明する。
工作機械Ｍは工作加工に係る制御を行うＮＣ装置２０を備える。ＮＣ装置２０は、ＦＰＧＡ又はマイクロコンピュータを含んで構成してあり、表示インタフェース（Ｉ／Ｆ）２４と、通信インタフェース（Ｉ／Ｆ）２５，２７と、サーボインタフェース（Ｉ／Ｆ）２６と、制御部２１と、ＲＯＭ２２と、ＲＡＭ２３等を有する。
【００３５】
表示Ｉ／Ｆ２４には、ユーザに所定の情報を示す液晶ディスプレイ１８が接続し、通信Ｉ／Ｆ２５には、ユーザから所定の指示を受け付ける操作パネル１９が接続している。サーボＩ／Ｆ２６には、後述する各モータを制御するサーボアンプ３０，４０，５０，６０が夫々接続し、通信Ｉ／Ｆ２７には、後述する接触センサ７５から検知信号を受信するＩ／Ｏユニット８０が接続している。
【００３６】
ＮＣ装置２０は、信号線Ｓ１を介してサーボアンプ６０と接続し、信号線Ｓ２を介してサーボアンプ３０と接続し、信号線Ｓ３を介してサーボアンプ４０と接続し、信号線Ｓ４を介してサーボアンプ５０と接続している。Ｉ／Ｏユニット８０は信号線Ｓ５を介して接触センサ７５と接続している。
【００３７】
主軸サーボアンプ６０には、主軸モータ７４と主軸エンコーダ７４ａが夫々接続し、Ｘ軸サーボアンプ３０には、Ｘ軸モータ７１とＸ軸エンコーダ７１ａが夫々接続し、Ｙ軸サーボアンプ４０には、Ｙ軸モータ７２とＹ軸エンコーダ７２ａが夫々接続し、Ｚ軸サーボアンプ５０には、Ｚ軸モータ７３とＺ軸エンコーダ７３ａが夫々接続している。
【００３８】
工作機械Ｍは、接触センサ７５を備える。接触センサ７５はスタイラスを有し、スタイラスとワークが接触する際発生するスタイラスの振動・変形等を検知する。すなわち、接触センサ７５は、スタイラスの振動・変形等を検知することによって、ワークと接触したか否かを検知する。ワークＷとの接触を検知した時、接触センサ７５はその旨を示すアナログの検知信号を発する。
【００３９】
主軸５Ａに接触センサ７５を取付けてテーブル８（ワーク）を移動駆動し、接触センサ７５が検知信号を発した時のテーブル８の位置を検出することによって、ワークの位置を特定できる。
【００４０】
Ｘ軸モータ７１とＹ軸モータ７２は、夫々、テーブル８をＸ軸方向、Ｙ軸方向に移動駆動する。Ｚ軸モータ７３は、主軸ヘッド５をＺ軸方向に昇降駆動する。主軸モータ７４は、前記主軸５Ａを回転駆動する為のものである。
【００４１】
サーボアンプ３０は、例えばマイクロコンピュータを含んで構成してあり、サーボインタフェース（Ｉ／Ｆ）３４、モータインタフェース（Ｉ／Ｆ）３５、エンコーダインタフェース（Ｉ／Ｆ）３６、ＣＰＵ３１、ＲＯＭ３２、ＲＡＭ３３を夫々有する。
【００４２】
サーボアンプ４０は、例えばマイクロコンピュータを含んで構成してあり、サーボインタフェース（Ｉ／Ｆ）４４、モータインタフェース（Ｉ／Ｆ）４５、エンコーダインタフェース（Ｉ／Ｆ）４６、ＣＰＵ４１、ＲＯＭ４２、ＲＡＭ４３を夫々有する。
【００４３】
サーボアンプ５０は、例えばマイクロコンピュータを含んで構成してあり、サーボインタフェース（Ｉ／Ｆ）５４、モータインタフェース（Ｉ／Ｆ）５５、エンコーダインタフェース（Ｉ／Ｆ）５６、ＣＰＵ５１、ＲＯＭ５２、ＲＡＭ５３を夫々有する。
【００４４】
サーボアンプ６０は、例えばマイクロコンピュータを含んで構成してあり、サーボインタフェース（Ｉ／Ｆ）６４、モータインタフェース（Ｉ／Ｆ）６５、エンコーダインタフェース（Ｉ／Ｆ）６６、ＣＰＵ６１、ＲＯＭ６２、ＲＡＭ６３を夫々有する。
【００４５】
接触センサ７５は、Ｘサーボ機構、Ｙサーボ機構及びＺ軸サーボ機構によって移動する。Ｘサーボ機構は、Ｘ軸モータ７１とＸ軸エンコーダ７１ａからなり、Ｙサーボ機構は、Ｙ軸モータ７２とＹ軸エンコーダ７２ａからなり、Ｚ軸サーボ機構は、Ｚ軸モータ７３とＺ軸エンコーダ７３ａからなる。サーボアンプ３０，４０，５０は、Ｘ軸サーボ機構、Ｙ軸サーボ機構及びＺ軸サーボ機構を介して、接触センサ７５のＸ軸座標値、Ｙ軸座標値及びＺ軸座標値を検出する。
【００４６】
Ｘ軸エンコーダ７１ａは、テーブル８（ワーク）のＸ軸座標値を表すモータパルス（位置信号）を出力し、Ｙ軸エンコーダ７２ａは、テーブル８（ワーク）のＹ軸座標値を表すモータパルス（位置信号）を出力し、Ｚ軸エンコーダ７３ａは、テーブル８（ワーク）のＺ軸座標値を表すモータパルス（位置信号）を出力する。
サーボアンプ３０，４０，５０は、制御部２１が生成するクロック信号に応じて、ワークのＸ軸座標値、Ｙ軸座標値及びＺ軸座標値を検出し、夫々ＲＡＭ３３，４３，５３に記憶する。
【００４７】
ＮＣ装置２０は、制御部２１の負荷を減らす為、Ｉ／Ｏユニット８０とサーボアンプ３０，４０，５０，６０に対して夫々異なる通信周期で通信を行う。具体的には、優先的に制御する必要のあるサーボアンプ３０，４０，５０，６０とＮＣ装置２０との通信周期（以下、サーボアンプ通信周期）を短く設定し、サーボアンプ３０，４０，５０，６０ほど優先的に制御する必要のないＩ／Ｏユニット８０とＮＣ装置２０との通信周期（Ｉ／Ｏユニット通信周期）を長く設定してある。
【００４８】
制御部２１は、Ｘ軸エンコーダ７１ａ、Ｙ軸エンコーダ７２ａ及びＺ軸エンコーダ７３ａが出力するモータパルスを取得するタイミングを表すクロック信号（以下、モータ側クロックと言う。）を生成する。サーボアンプ３０，４０，５０は制御部２１が生成したモータ側クロック（第１クロック信号）に応じて、モータパルス、即ちワークのＸ軸座標値、Ｙ軸座標値及びＺ軸座標値を検出する。
【００４９】
ＲＯＭ２２は、工作機械Ｍの加工プログラムを実行するメインの制御プログラム、後述する図５のフローチャートに示す位置決定の制御プログラム等を記憶している。ＲＡＭ２３は、サーボアンプ３０，４０，５０が検出した座標値をサーボアンプ通信周期毎に時系列的に記憶する。即ち、制御部２１は、サーボアンプ通信周期の間に、サーボアンプ３０，４０，５０がモータ側クロックに応じて検出したＸ軸座標値、Ｙ軸座標値及びＺ軸座標値をまとめて取得し、ＲＯＭ２２に時系列的に記憶する。
【００５０】
Ｉ／Ｏユニット８０は、８ビットシフトレジスタ８１、通信インタフェース（Ｉ／Ｆ）８２、ＦＰＧＡ８３等を有する。Ｉ／Ｏユニット８０は、接触センサ７５（スタイラス）とワークとの接触有無を検知した結果を示す検知信号を接触センサ７５から受信し、シフトレジスタ８１が接触センサ７５から受信した検知信号をデジタルの接触信号として時系列的に記憶する。即ち、接触信号は、接触センサ７５とワークとの接触の有無を示す。
【００５１】
ＦＰＧＡ８３は、接触センサ７５が出力する検知信号を受信するタイミングを表すクロック信号（以下、センサ側クロックと言う。）を生成する。Ｉ／Ｏユニット８０はＦＰＧＡ８３が生成したセンサ側クロック（第２クロック信号）に応じて、接触センサ７５から検知信号を取得し、シフトレジスタ８１に接触信号として記憶する。
【００５２】
ＲＡＭ２３は、Ｉ／Ｏユニット８０が取得した接触信号をＩ／Ｏユニット通信周期毎に時系列的に記憶する。即ち、制御部２１は、Ｉ／Ｏユニット通信周期の間に、Ｉ／Ｏユニット８０がセンサ側クロックに応じて受信した接触信号をまとめて取得し、ＲＡＭ２３に時系列的に記憶する。
【００５３】
制御部２１は、Ｉ／Ｏユニット通信周期毎にシフトレジスタ８１から最新の接触信号を取得し、取得した接触信号に基づいて、接触センサ７５がワークに接触した時刻に対応するセンサ側クロックの立ち上がりエッジ（以下、時刻とも言う。）を特定する。ＮＣ装置２０は、特定したセンサ側クロックの立ち上がりエッジと対応するモータ側クロックの立ち上がりエッジを特定し、特定したモータ側クロックのエッジに対応するモータパルス（座標値）に基づいて、接触位置を決定する。これによって、ワークの位置及び表面形状を決定できる。
【００５４】
このような方法により、ワークの位置及び表面形状を決定する為には、センサ側クロックとモータ側クロックが同期していることが前提となる。センサ側クロックとモータ側クロックが同期せず、ズレが生じている時は、センサ側クロックの立ち上がりエッジに対応するモータ側クロックの立ち上がりエッジを正しく特定できなくなる（図９参照）。従って、正しくない座標値に基づいて、接触位置を決定してしまう。
【００５５】
これに対して、本実施の形態に係る工作機械Ｍにおいては、接触センサ７５とワークとの接触時刻を決定する度に、センサ側クロックとモータ側クロックの間におけるずれ量を検出し、かつセンサ側クロックとモータ側クロックが流れる信号線上における遅延量を検出し、これらの検出結果に基づいて接触時刻を決定する。以下、詳しく説明する。
【００５６】
本実施の形態に係る工作機械Ｍにおいては、サーボアンプ３０，４０，５０がモータ側カウンタ信号（第１カウンタ信号）を生成する。サーボアンプ３０のＣＰＵ３１（第１カウンダ生成部）は、Ｘ軸のモータ側クロックの各周期に対応する数を有するＸ軸のモータ側カウンタ信号を生成する。サーボアンプ４０のＣＰＵ４１（第１カウンダ生成部）は、Ｙ軸のモータ側クロックの各周期に対応する数を有するＹ軸のモータ側カウンタ信号を生成する。サーボアンプ５０のＣＰＵ５１（第１カウンダ生成部）は、Ｚ軸のモータ側クロックの各周期に対応する数を有するＺ軸のモータ側カウンタ信号を生成する。
Ｘ軸のモータ側カウンタ信号、Ｙ軸のモータ側カウンタ信号及びＺ軸のモータ側カウンタ信号は、一連の数が所定の周期にて反復するように構成しても良い。
【００５７】
ＦＰＧＡ８３（第２カウンダ生成部）はセンサ側カウンタ信号（第２カウンタ信号）を生成する。センサ側カウンタ信号はセンサ側クロックの各周期に対応する数を有する。センサ側カウンタ信号は一連の数が所定の周期にて反復するように構成しても良い。
【００５８】
モータ側クロックとセンサ側クロックは一つの周期が同じである。即ち、モータ側クロックとセンサ側クロックにおいては、一つの立ち上がりエッジから次の立ち上がりエッジまでの時間間隔が同じである。
【００５９】
一方、モータ側カウンタ信号とセンサ側カウンタ信号においては、例えば、「０」，「１」，「２」，「３」を表す一連のデータ（数）が反復する。即ち、「０」〜「３」が１周期になって反復する。モータ側カウンタ信号及びセンサ側カウンタ信号において、「０」，「１」，「２」，「３」の各々に係る時間間隔は、モータ側クロックとセンサ側クロックにおける一つの周期の時間間隔と同じである。即ち、モータ側カウンタ信号とセンサ側カウンタ信号は同一周期を有する。
【００６０】
制御部２１は、モータ側クロックとセンサ側クロックの間のずれ量を検出し、モータ側クロックが流れる信号線とセンサ側クロックが流れる信号線におけるクロック信号の遅延量を検出して、斯かる検出結果に基づいて、接触センサ７５とワークが初めて接触した時刻（接触時刻）を特定する。制御部２１は、特定した接触時刻に基づいて、該接触時刻に対応するモータパルス（Ｘ軸座標値、Ｙ軸座標値及びＺ軸座標値）を特定し、特定したモータパルスからワークの位置及び表面形状を決定する。
【００６１】
図４は、本実施の形態に係る工作機械Ｍの制御部２１の機能構成を示す機能ブロック図である。制御部２１は、ＣＰＵ２１１、第１検出部２１２、第２検出部２１３、時刻特定部２１４及び位置決定部２１５を有する。
【００６２】
第１検出部２１２は、前記モータ側カウンタ信号と前記センサ側カウンタ信号に基づいて、モータ側クロックとセンサ側クロックの間のずれ量を検出する。第２検出部２１３は、後述する所定の式に基づいて、モータ側クロックが流れる信号線とセンサ側クロックが流れる信号線におけるクロック信号の遅延量を検出する。
【００６３】
時刻特定部２１４は、第１検出部２１２によって検出された、モータ側クロックとセンサ側クロックの間のずれ量と、第２検出部２１３によって検出された、モータ側クロックが流れる信号線とセンサ側クロックが流れる信号線におけるクロック信号の遅延量に基づいて、接触時刻を特定する。
【００６４】
位置決定部２１５は、時刻特定部２１４が特定した接触時刻に基づいて、前記モータパルス（Ｘ軸座標値、Ｙ軸座標値及びＺ軸座標値）からワークの位置及び表面形状を決定する。
第１検出部２１２、第２検出部２１３、時刻特定部２１４及び位置決定部２１５の詳しいことについては、以下にて説明する。
【００６５】
図５は、本実施の形態に係る工作機械Ｍにおける、ワークの位置及び表面形状を決定する処理を説明するフローチャートである。以下、工作機械Ｍにおける、ワークの位置及び表面形状を決定する処理を図５〜図７に基づいて説明する。
【００６６】
Ｘ軸モータ７１及びＹ軸モータ７２の駆動によりテーブル８がＸ軸及びＹ軸方向に移動し、Ｚ軸モータ７３の駆動により主軸ヘッド５（接触センサ７５）がＺ軸方向に移動して、ワークの位置及び表面形状測定を開始する。以下においては、説明の便宜上、ワークのＸ軸の位置（座標値）を決定する場合を例に挙げて説明する。
【００６７】
ユーザは主軸５Ａの先端に接触センサ７５を取り付け、例えば操作パネル１９を適宜操作することにより、ワークの位置及び表面形状を検知する指示を行う。工作機械Ｍは操作パネル１９を介して斯かる指示を受け付ける（ステップＳ１０１）。
【００６８】
上述したサーボアンプ通信周期に応じて、ＣＰＵ２１１は最新のサーボアンプ通信周期の間のモータパルス（Ｘ軸座標値）をサーボインタフェースＩ／Ｆ２６を介してサーボアンプ３０のＲＡＭ３３からまとめて読み取って取得し（ステップＳ１０２）、ＲＡＭ２３に時系列的に記憶する。ここで、サーボアンプ通信周期は、モータ側カウンタ信号と同じ周期であり、例えば、モータ側カウンタ信号の「０」に相当するタイミングで、モータパルスの取得を行う。ＲＡＭ２３は、取得した各モータパルスを対応するモータ側カウンタ信号の値と関連付けて記憶する。
【００６９】
また、上述したＩ／Ｏユニット通信周期に応じて、ＣＰＵ２１１は最新のＩ／Ｏユニット通信周期の間の接触信号、即ちシフトレジスタ値を通信Ｉ／Ｆ８２を介してまとめてＩ／Ｏユニット８０のシフトレジスタ８１から読み取って取得し（ステップＳ１０３）、ＲＡＭ２３に時系列的に記憶する。ここで、Ｉ／Ｏユニット通信周期は、センサ側カウンタ信号と同じ周期であり、例えば、モータ側カウンタ信号の「０」に相当するタイミングで、接触信号の取得を行う。ＲＡＭ２３は、取得した各接触信号を対応するセンサ側カウンタ信号の値と関連付けて記憶する。
【００７０】
図６は、モータ側クロックとセンサ側クロックの間にずれが生じていない場合を示すタイミングチャートであり、図７は、モータ側クロックとセンサ側クロックの間にずれが生じている場合を表すタイミングチャートである。
【００７１】
接触センサ７５がワークの表面と接触しない時、接触センサ７５が出力する検出信号は「Ｌ」レベルになり、接触センサ７５がワークの表面に接触した時、接触センサ７５が出力する検出信号は「Ｈ」レベルになる。
【００７２】
Ｉ／Ｏユニット８０のシフトレジスタ８１は、接触センサ７５がワークの表面に接触しない時は、接触センサ７５が出力する検出信号（「Ｌ」レベル）を受信して、「００００００００」のシフトレジスタ値（接触信号）として記憶する。シフトレジスタ８１は、接触センサ７５がワークの表面と最初に接触した時は、接触センサ７５が出力する検出信号（「Ｈ」レベル）を受信して、「０００００００１」のシフトレジスタ値（接触信号）として記憶する。
【００７３】
以降、受信する検出信号が「Ｈ」レベルのままであると、シフトレジスタ８１は、受信した検出信号に基づいて、センサ側クロックの立ち上がりエッジ毎に、「００００００１１」、「０００００１１１」、「００００１１１１」等を記憶する。
【００７４】
例えば、モータ側カウンタ信号が「０」に相当するタイミング（図６と図７中、黒丸点）で、一つのセンサ側カウンタ信号周期の間の接触信号をまとめて取得した場合、ＣＰＵ２１１は、取得した接触信号のうち、最新の接触信号を確認する。図６及び図７においては、最新の接触信号が夫々「０００００１１１」、「００００１１１１」であるので、ＣＰＵ２１１は既に接触センサ７５とワークとが接触していると判定する。
【００７５】
この際、第１検出部２１２は、前記モータ側カウンタ信号と前記センサ側カウンタ信号に基づいて、モータ側クロックとセンサ側クロックの間のずれ量を検出する（ステップＳ１０４）。
【００７６】
第１検出部２１２は、ステップＳ１０３でまとめて取得した接触信号のうち、最新の接触信号に対応するセンサ側カウント信号の値と、ステップＳ１０２でまとめて取得したモータパルスのうち、最新のモータパルスに対応するモータ側カウント信号の値を対比する。これによって、第１検出部２１２はモータ側クロックとセンサ側クロックの間のずれ量を検出する。
【００７７】
図６の場合においては、即ち、モータ側クロックとセンサ側クロックが同期している場合は、最新の接触信号は「０００００１１１」（ハッチング部分）であり、これに対応するセンサ側カウント信号の値は「０」である。また、最新のモータパルスは「５」であり、これに対応するモータ側カウント信号の値も「０」である。従って、第１検出部２１２はモータ側クロックとセンサ側クロックの間のずれ量はないと判定する。
【００７８】
図７の場合においては、即ち、モータ側クロックとセンサ側クロックがずれている場合は、最新の接触信号は「００００１１１１」（ハッチング部分）であり、これに対応するセンサ側カウント信号の値は「１」であり、最新のモータパルスは「５」であり、これに対応するモータ側カウント信号の値は「０」である。従って、センサ側カウント信号の値の「１」と、モータ側カウント信号の値も「０」の差は「１」であり、第１検出部２１２は、モータ側クロックとセンサ側クロックの間のずれ量を「１」（周期）であると検出する。
【００７９】
次いで、第２検出部２１３は、所定の式に基づいて、モータ側クロックが流れる信号線とセンサ側クロックが流れる信号線におけるクロック信号の遅延量を検出する（ステップＳ１０５）。
【００８０】
図８は、実施の形態に係る工作機械Ｍにおいて、信号線上におけるクロック信号の遅延量の検出する方法を説明するための説明図である。説明の便宜上、信号線Ｓ２（第１信号線）と信号線Ｓ５（第２信号線）を用いて説明する。
【００８１】
例えば、パケットを信号線Ｓ２から送信する時刻（モータ側クロック）のタイムスタンプを含む、いわゆる同期パケットを信号線Ｓ５に送信する。信号線Ｓ２から信号線Ｓ５に前記同期パケットを送信した時刻をｔ１とする。信号線Ｓ５では、同期パケットを信号線Ｓ２から受信し、独自のクロック（センサ側クロック）を使用して同期パケットの受信時刻のタイムスタンプを作成する。信号線Ｓ５で同期パケットデータを受信した時刻をｔ２とする。次いで、信号線Ｓ５では、受信した同期パケット（以下、受信同期パケットと言う。）に信号線Ｓ５から返信する時刻（モータ側クロック）のタイムスタンプを付加し、これを信号線Ｓ２に返信する。信号線Ｓ５で受信同期パケットを信号線Ｓ２に返信した時刻をｔ３とする。信号線Ｓ２では、前記受信同期パケットを信号線Ｓ５から受信する。信号線Ｓ５で返信した受信同期パケットを信号線Ｓ２が受信した時刻をｔ４とする。
【００８２】
ここで、時刻ｔ２と時刻ｔ１の差は、モータ側クロックとセンサ側クロックの間のオフセットと信号線上の伝播遅延を含む。
【００８３】
以上のことから、第２検出部２１３は以下の式に基づいて、信号線上におけるクロック信号の遅延量を検出する。
｛（ｔ２−ｔ１）＋（ｔ４−ｔ３）｝／２
このように、第２検出部２１３によって検出された、信号線上のクロック信号の遅延量は、クロックの周期、又はカウンタの周期に換算できる。
【００８４】
次いで、時刻特定部２１４は、第１検出部２１２によって検出された、モータ側クロックとセンサ側クロックの間のずれ量と、第２検出部２１３によって検出された、クロック信号が流れる信号線におけるクロック信号の遅延量に基づいて、接触時刻を特定する（ステップＳ１０６）。
【００８５】
まず、モータ側クロックとセンサ側クロックの間のずれも、信号線上のクロック信号の遅延も無い場合を、図６を用いて説明する。図６において、最新の接触信号が「０００００１１１」（ハッチング部分）であるので、センサ側クロック信号において、取得時（黒丸点）から２周期（２つの立ち上がりエッジ）前の時刻（図６中、ＣＫ１）が「０００００００１」であることが分かる。即ち、時刻特定部２１４は、取得時から２周期（２つの立ち上がりエッジ）前の時刻（ＣＫ１）を接触センサ７５とワークが初めて接触した接触時刻として特定する。
【００８６】
次に、第１検出部２１２がモータ側クロックとセンサ側クロックの間のずれ量を「１」（周期）であると検出し、第２検出部２１３によって検出された信号線上のクロック信号の遅延量（クロックの周期）が「０」である場合を、図７を用いて説明する。
【００８７】
図７においては、最新の接触信号が「００００１１１１」（ハッチング部分）である。しかし、モータ側クロックとセンサ側クロックの間のずれ量が「１」（周期）であるので、時刻特定部２１４は、１周期前の接触信号の「０００００１１１」を新たに最新の接触信号としてみなして、接触センサ７５とワークの接触時刻を特定する。
【００８８】
新たな最新の接触信号が「０００００１１１」であるので、センサ側クロック信号の立ち上がりエッジ（ＣＫ３）から２周期（２つの立ち上がりエッジ）前の時刻（図７中、ＣＫ２）が「０００００００１」であることが分かる。即ち、時刻特定部２１４は、新たな最新の接触信号が「０００００１１１」（ＣＫ３）から２周期（２つの立ち上がりエッジ）前の時刻（ＣＫ２）を接触時刻として特定する。
【００８９】
次に、モータ側クロックとセンサ側クロックの間のずれ量が「１」（周期）であり、第２検出部２１３によって検出された信号線上のクロック信号の遅延量（クロックの周期）が「１」である場合を説明する。この場合、モータ側クロックとセンサ側クロックの間には総「２」周期のずれが発生しているので、時刻特定部２１４は、センサ側クロック信号において、取得時（黒丸点）から２周期前の接触信号を新たに最新の接触信号としてみなして接触時刻を特定する。
【００９０】
位置決定部２１５は、時刻特定部２１４が特定した接触時刻に基づいて、前記モータパルス（Ｘ軸座標値）からワークの位置及び表面形状を決定する（ステップＳ１０７）。
ステップＳ１０２にてＲＡＭ２３に記憶しているＸ軸座標値のうち、時刻特定部２１４が特定した接触時刻（図６のＣＫ１、図７のＣＫ２）に対応するＸ軸座標値（モータパルス）が「２」であるので、位置決定部２１５は「２」をＸ軸におけるワーク（表面）の位置であると決定する。
【００９１】
以上の如く、本実施の形態に係る工作機械Ｍにおいては、センサ側クロックとモータ側クロックの間におけるずれ量を検出し、かつセンサ側クロックとモータ側クロックが流れる信号線上における遅延量を検出して、これらの検出結果に基づいてワークの位置及び表面形状を決定する。従って、ワークの位置及び表面形状の決定に、センサ側クロックとモータ側クロックの間のずれによる誤差が生じることを未然に防止できる。
【００９２】
以上においては、モータ側クロックとセンサ側クロックの間のずれ量を検出する検出処理（ステップＳ１０４）と、クロック信号が流れる信号線上のクロック信号の遅延量を検出する検出処理（ステップＳ１０５）を共に行う場合を例に挙げて説明した。しかし、本実施の形態に係る工作機械Ｍはこれに限るものでない。何れか一方の検出処理のみを行い、斯かる処理の結果に基づいて、接触時刻の特定を行うように構成してもよい。
【００９３】
以上においては、モータ側クロックの周期毎にモータパルスを取得し、センサ側クロックの周期毎に接触信号を取得する場合を例に挙げて説明したが、本実施の形態に係る工作機械Ｍはこれに限定するものでない。
例えば、工作機械Ｍは、モータ側クロックの複数周期（例えば、２周期又は３周期等）毎にモータパルスを取得し、センサ側クロックの複数周期（例えば、２周期又は３周期等）毎に接触信号を取得して、モータ側クロックとセンサ側クロックの間のずれ量を検出する検出処理と、クロック信号が流れる信号線上のクロック信号の遅延量を検出する検出処理を行う構成であっても良い。
【００９４】
上述した第１検出部２１２、第２検出部２１３、時刻特定部２１４及び位置決定部２１５は、ハードウェアロジックによって構成してもよいし、制御部２１が有するＣＰＵ２１１が所定のプログラムを実行することにより、ソフトウェア的に構築してもよい。 
【符号の説明】
【００９５】
２１  制御部
４１  ＣＰＵ
７１  Ｘ軸モータ
７２  Ｙ軸モータ
７３  Ｚ軸モータ
７５  接触センサ
８３  ＦＰＧＡ
２１１  ＣＰＵ
２１２  第１検出部
２１３  第２検出部
２１４  時刻特定部
２１５  位置決定部
Ｍ  工作機械
Ｓ１，Ｓ２，Ｓ３，Ｓ４，Ｓ５  信号線
【図１】
2019175353.tif 000003
【図２】
2019175353.tif 000004
【図３】
2019175353.tif 000005
【図４】
2019175353.tif 000006
【図５】
2019175353.tif 000007
【図６】
2019175353.tif 000008
【図７】
2019175353.tif 000009
【図８】
2019175353.tif 000010
【図９】
2019175353.tif 000011