(57)【要約】【課題】本発明は、形状を測定する対象物の制限を緩和できる。【解決手段】本発明は、変位センサ７と、駆動装置３０，４０と、ＰＬＣ１とを備えるＰＬＣシステムＳＹＳである。ＰＬＣシステムＳＹＳは、ある取得位置において計測不能と判断された場合には（Ｓ２のＹＥＳ）、該計測不能となった取得位置まで戻し（Ｓ８）、再び計測を実行する（Ｓ１２）。該再び実行された計測において計測不能が検知された場合には（Ｓ１６のＹＥＳ）、次の取得位置までステージを移動させて（Ｓ１９）、再び計測を実行する（Ｓ２２）。【選択図】図１４
2018072223.tif 000002
【特許請求の範囲】
【請求項１】
対象物の１次元情報を計測する計測装置と、
前記計測装置と前記対象物との相対的な位置を変化させる駆動装置と、
前記計測装置で計測した１次元情報に基づき前記対象物の２次元形状または３次元形状の情報を取得するため前記計測装置および前記駆動装置を制御する制御装置とを備える制御システムであって、
前記制御装置は、
前記相対的な位置を変化させながら、前記計測装置の１次元情報および前記駆動装置からの位置情報を計測データとして取得する取得処理を実行する計測データ取得部と、
前記計測データ取得部で取得した前記計測データに基づき、２次元形状または３次元形状の形状データを生成する生成処理を実行する形状データ生成部とを含み、
前記計測データ取得部は、前記相対的な位置が、設定された計測間隔に応じた取得位置に変化する度に、前記取得処理を実行し、
前記取得処理が失敗した場合、変化された前記相対的な位置を該失敗した前記取得位置に戻した後に、該戻した前記取得位置で再び前記取得処理を実行する、制御システム。
【請求項２】
前記計測データ取得部は、前記取得処理が失敗した場合に、前記計測装置と前記対象物とが衝突しない位置に該計測装置を退避させる、請求項１記載の制御システム。
【請求項３】
前記計測データ取得部は、再び実行した前記取得処理が失敗した場合には、前記相対的な位置を次の前記取得位置に変化させた後に、該次の前記取得位置で前記取得処理を実行する、請求項１または請求項２記載の制御システム。
【請求項４】
前記取得処理が失敗した前記取得位置に対応する前記１次元情報は、前記計測データとして取得される前記１次元情報とは異なる、請求項１〜３いずれか１項に記載の制御システム。
【請求項５】
前記制御装置は、前記取得処理が失敗した回数を計数し、該計数された回数が予め定められた回数に到達した場合には、エラー処理を実行する、請求項１〜４いずれか１項に記載の制御システム。
【請求項６】
前記形状データ生成部により生成した前記形状データに基づき、前記対象物の特徴量を演算する特徴量演算部をさらに備える、請求項１〜請求項５のいずれか１項に記載の制御システム。
【請求項７】
マスタ装置として機能する前記制御装置と、スレーブ装置として機能する前記計測装置および前記駆動装置とがネットワークを介して接続されている、請求項１〜請求項６のいずれか１項に記載の制御システム。
【請求項８】
対象物の１次元情報を計測する計測装置と前記対象物との相対的な位置を駆動装置で変化させ、前記計測装置で計測した１次元情報に基づき前記対象物の２次元形状または３次元形状の情報を取得するため前記計測装置および前記駆動装置を制御する制御装置の制御方法であって、
前記相対的な位置を変化させながら、前記計測装置の１次元情報および前記駆動装置からの位置情報を計測データとして取得する取得処理を実行するステップと、
前記計測データに基づき、２次元形状または３次元形状の形状データを生成する生成処理を実行するステップとを含み、
前記取得処理を実行するステップは、前記相対的な位置が、設定された計測間隔に応じた取得位置に変化する度に、実行し、
前記取得処理を実行するステップでは、前記取得処理が失敗した場合、変化された前記相対的な位置を該失敗した前記取得位置に戻した後に、該戻した前記取得位置で再び前記取得処理を実行する、制御方法。
【請求項９】
対象物の１次元情報を計測する計測装置と前記対象物との相対的な位置を駆動装置で変化させ、前記計測装置で計測した１次元情報に基づき前記対象物の２次元形状または３次元形状の情報を取得するため前記計測装置および前記駆動装置を制御する制御装置のプログラムであって、
前記相対的な位置を変化させながら、前記計測装置の１次元情報および前記駆動装置からの位置情報を計測データとして取得する取得処理を実行するステップと、
前記計測データに基づき、２次元形状または３次元形状の形状データを生成する生成処理を実行するステップとを前記制御装置のプロセッサに実行させ、
前記取得処理を実行するステップは、前記相対的な位置が、設定された計測間隔に応じた取得位置に変化する度に、実行し、
前記取得処理を実行するステップでは、前記取得処理が失敗した場合、変化された前記相対的な位置を該失敗した前記取得位置に戻した後に、該戻した前記取得位置で再び前記取得処理を実行する、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対象物の形状を計測する制御アプリケーションに係る制御システム、その制御方法およびそのプログラムに関する。
【背景技術】
【０００２】
多くの生産現場で使用される機械や設備は、プログラマブルコントローラ（Programmable  Logic  Controller；以下、ＰＬＣとも称す）などの制御装置によって制御される。このような制御装置を用いて計測装置を制御して対象物の形状を計測する制御システムが知られている。例えば、特許文献１では、対象物と接触しない非接触式のセンサを用いて、対象物の形状を計測する制御システムが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１７７６２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１に開示されている制御システムでは、対象物の表面が粗い場合や、対象物が極端に高い箇所を有する場合などには、対象物の形状を計測するために必要な情報をセンサが適切に取得できないことなどから、該対象物の形状を正確に計測できない場合がある。このように、特許文献１に開示されている制御システムでは、形状を測定する対象物が制限されるという問題があった。
【０００５】
本発明は、形状を測定する対象物の制限を緩和できる制御システム、その制御方法およびそのプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明のある局面によれば、対象物の１次元情報を計測する計測装置と、計測装置と対象物との相対的な位置を変化させる駆動装置と、計測装置で計測した１次元情報に基づき対象物の２次元形状または３次元形状の情報を取得するため計測装置および駆動装置を制御する制御装置とを備える制御システムであって、制御装置は、相対的な位置を変化させながら、計測装置の１次元情報および駆動装置からの位置情報を計測データとして取得する取得処理を実行する計測データ取得部と、計測データ取得部で取得した計測データに基づき、２次元形状または３次元形状の形状データを生成する生成処理を実行する形状データ生成部とを含み、計測データ取得部は、相対的な位置が、設定された計測間隔に応じた取得位置に変化する度に、取得処理を実行し、取得処理が失敗した場合、変化された相対的な位置を該失敗した取得位置に戻した後に、該戻した取得位置で再び取得処理を実行する。
【０００７】
好ましくは、計測データ取得部は、取得処理が失敗した場合に、計測装置と対象物とが衝突しない位置に該計測装置を退避させる。
【０００８】
好ましくは、計測データ取得部は、再び実行した取得処理が失敗した場合には、相対的な位置を次の取得位置に変化させた後に、該次の取得位置で取得処理を実行する。
【０００９】
好ましくは、取得処理が失敗した取得位置に対応する１次元情報は、計測データとして取得される１次元情報とは異なる。
【００１０】
好ましくは、制御装置は、取得処理が失敗した回数を計数し、該計数された回数が予め定められた回数に到達した場合には、エラー処理を実行する。
【００１１】
好ましくは、形状データ生成部により生成した形状データに基づき、対象物の特徴量を演算する特徴量演算部をさらに備える。
【００１２】
好ましくは、マスタ装置として機能する制御装置と、スレーブ装置として機能する計測装置および駆動装置とがネットワークを介して接続されている。
【００１３】
本発明のある別の局面によれば、対象物の１次元情報を計測する計測装置と対象物との相対的な位置を駆動装置で変化させ、計測装置で計測した１次元情報に基づき対象物の２次元形状または３次元形状の情報を取得するため計測装置および駆動装置を制御する制御装置の制御方法であって、相対的な位置を変化させながら、計測装置の１次元情報および駆動装置からの位置情報を計測データとして取得する取得処理を実行するステップと、計測データに基づき、２次元形状または３次元形状の形状データを生成する生成処理を実行するステップとを含み、取得処理を実行するステップは、相対的な位置が、設定された計測間隔に応じた取得位置に変化する度に、実行し、取得処理を実行するステップでは、取得処理が失敗した場合、変化された相対的な位置を該失敗した取得位置に戻した後に、該戻した取得位置で再び取得処理を実行する。
【００１４】
本発明のある別の局面によれば、対象物の１次元情報を計測する計測装置と対象物との相対的な位置を駆動装置で変化させ、計測装置で計測した１次元情報に基づき対象物の２次元形状または３次元形状の情報を取得するため計測装置および駆動装置を制御する制御装置のプログラムであって、相対的な位置を変化させながら、計測装置の１次元情報および駆動装置からの位置情報を計測データとして取得する取得処理を実行するステップと、計測データに基づき、２次元形状または３次元形状の形状データを生成する生成処理を実行するステップとを制御装置のプロセッサに実行させ、取得処理を実行するステップは、相対的な位置が、設定された計測間隔に応じた取得位置に変化する度に、実行し、取得処理を実行するステップでは、取得処理が失敗した場合、変化された相対的な位置を該失敗した取得位置に戻した後に、該戻した取得位置で再び取得処理を実行する。
【発明の効果】
【００１５】
本技術に係る制御システム、その制御方法およびそのプログラムによれば、形状を測定する対象物の制限を緩和できる。
【図面の簡単な説明】
【００１６】
【図１】本実施の形態における制御システムの概略構成を示す模式図である。
【図２】本実施の形態における制御システムでの計測の構成を示す模式図である。
【図３】本実施の形態におけるＣＰＵユニットのハードウェア構成を示す模式図である。
【図４】本実施の形態におけるＣＰＵユニットで実行されるソフトウェア構成を示す模式図である。
【図５】本実施の形態における制御システムの機能構成を示すブロック図である。
【図６】本実施の形態における制御システムの制御処理のフローを説明する図ある。
【図７】本実施の形態における制御システムでの線計測および２次元形状データ生成の概略を示す模式図である。
【図８】本実施の形態における制御システムでの計測分解能について説明するための図である。
【図９】本実施の形態における制御システムでの２次元形状データの等間隔化について説明するための図である。
【図１０】本実施の形態における制御システムでの特徴量演算について説明するための図である。
【図１１】本実施の形態における制御システムでの特徴量演算について説明するための図である。
【図１２】本実施の形態における制御システムでの制御の種類について説明するための図である。
【図１３】本実施の形態における制御システムの線計測データ取得部の機能構成を示す機能ブロック図である。
【図１４】計測状態と非計測状態とを説明するための図である。
【図１５】計測状態であるときに実行されるフローチャートを説明するための図である。
【図１６】非計測状態であるときに実行されるフローチャートを説明するための図である。
【図１７】計測不能部分を有する対象物の形状データを説明するための図である。
【発明を実施するための形態】
【００１７】
以下において、本実施の形態について図面を参照して詳しく説明する。なお、図中同一符号は同一または相当部分を示す。
【００１８】
（Ａ．制御システムの構成）
本実施の形態に係る制御システムは、計測装置および駆動装置を制御して対象物の２次元形状または３次元形状の情報を取得する制御機能を有する。まず、図１を参照して、本実施の形態に係る制御システムであるＰＬＣシステムＳＹＳの構成について説明する。
【００１９】
図１は、本実施の形態における制御システムの概略構成を示す模式図である。制御システムであるＰＬＣシステムＳＹＳは、ＰＬＣ１と、サーボモータドライバ３ｘ，３ｚと、リモートＩＯターミナル５と、コントローラ６とを含む。サーボモータドライバ３ｘ，３ｚ、リモートＩＯターミナル５、およびコントローラ６は、それぞれフィールドネットワーク２を介してＰＬＣ１と接続されている。また、ＰＬＣ１には、接続ケーブル１０などを介してＰＬＣサポート装置と、ネットワーク１１４を介してプログラマブル表示器３００がそれぞれ接続される。
【００２０】
コントローラ６は、対象物の１次元情報（例えば、対象物の高さ、ワークから対象物まで距離などの情報）を計測する変位センサ７が接続されている。コントローラ６および変位センサ７で計測装置２０を構成する。サーボモータドライバ３ｘは、Ｘ軸のサーボモータ４ｘを駆動する。サーボモータドライバ３ｘおよびサーボモータ４ｘでＸ軸の駆動装置３０を構成する。サーボモータドライバ３ｚは、Ｚ軸のサーボモータ４ｚを駆動する。サーボモータドライバ３ｚおよびサーボモータ４ｚでＺ軸の駆動装置４０を構成する。コントローラ６と変位センサ７とを一体として構成してもよい。
【００２１】
ＰＬＣシステムＳＹＳは、対象物の２次元形状の情報を取得する制御機能を有するとして以下説明する。まず、ＰＬＣシステムＳＹＳおいて対象物の２次元形状の情報を取得するための計測の構成について具体的に説明する。図２は、本実施の形態における制御システムでの計測の構成を示す模式図である。図２では、ステージ３１上に載せられた対象物Ａを図中のＸ方向に稼働させるためステージ３１に駆動装置３０を、変位センサ７自体を図中のＺ方向に稼働させるため変位センサ７に駆動装置４０をそれぞれ設けている。駆動装置３０でステージ３１をＸ方向に移動させ、駆動装置４０で変位センサ７自体をＺ方向に移動させることで、計測装置２０と対象物Ａとの相対的な位置を変化させている。
【００２２】
さらに、変位センサ７からの計測情報を取得するためコントローラ６に変位センサ７が接続されている。コントローラ６で取得した計測情報はＰＬＣ１に送られ、ＰＬＣ１で後述するような処理を計測情報に対して行う。ＰＬＣ１は、駆動装置３０，４０に対して位置指令を送信して、変位センサ７およびステージ３１の位置を変更させる。
【００２３】
図１に戻って、各構成についてさらに詳しく説明する。ＰＬＣ１は、主たる演算処理を実行するＣＰＵユニット１３と、１つ以上のＩＯユニット１４と、特殊ユニット１５とを含む。これらのユニットは、ＰＬＣシステムバス１１を介して、データを互いに遣り取りできるように構成される。また、これらのユニットには、電源ユニット１２によって適切な電圧の電源が供給される。なお、ＰＬＣ１として構成される各ユニットは、ＰＬＣメーカーが提供するものであるので、ＰＬＣシステムバス１１は、一般にＰＬＣメーカーごとに独自に開発され、使用されている。これに対して、後述するようにフィールドネットワーク２については、異なるメーカーの製品同士が接続できるように、その規格などが公開されている場合も多い。
【００２４】
ＣＰＵユニット１３の詳細については、図３を参照して後述する。ＩＯユニット１４は、一般的な入出力処理に関するユニットであり、オン／オフといった２値化されたデータの入出力を司る。すなわち、ＩＯユニット１４は、センサが何らかの対象物を検出している状態（オン）および何らの対象物も検出していない状態（オフ）のいずれであるかという情報を収集する。また、ＩＯユニット１４は、リレーやアクチュエータといった出力先に対して、活性化するための指令（オン）および不活性化するための指令（オフ）のいずれかを出力する。
【００２５】
特殊ユニット１５は、アナログデータの入出力、温度制御、特定の通信方式による通信といった、ＩＯユニット１４ではサポートしない機能を有する。
【００２６】
フィールドネットワーク２は、ＣＰＵユニット１３と遣り取りされる各種データを伝送する。フィールドネットワーク２としては、典型的には、各種の産業用イーサネット（登録商標）を用いることができる。産業用イーサネット（登録商標）としては、たとえば、ＥｔｈｅｒＣＡＴ（登録商標）、Ｐｒｏｆｉｎｅｔ  ＩＲＴ、ＭＥＣＨＡＴＲＯＬＩＮＫ（登録商標）−ＩＩＩ、Ｐｏｗｅｒｌｉｎｋ、ＳＥＲＣＯＳ（登録商標）−ＩＩＩ、ＣＩＰ  Ｍｏｔｉｏｎなどが知られており、これらのうちのいずれを採用してもよい。さらに、産業用イーサネット（登録商標）以外のフィールドネットワークを用いてもよい。たとえば、モーション制御を行わない場合であれば、ＤｅｖｉｃｅＮｅｔ、ＣｏｍｐｏＮｅｔ／ＩＰ（登録商標）などを用いてもよい。本実施の形態に係るＰＬＣシステムＳＹＳでは、典型的に、本実施の形態においては、産業用イーサネット（登録商標）であるＥｔｈｅｒＣＡＴ（登録商標）をフィールドネットワーク２として採用する場合の構成について例示する。
【００２７】
なお、図１には、ＰＬＣシステムバス１１およびフィールドネットワーク２の両方を有するＰＬＣシステムＳＹＳを例示するが、一方のみを搭載するシステム構成を採用することもできる。たとえば、フィールドネットワーク２ですべてのユニットを接続してもよい。あるいは、フィールドネットワーク２を使用せずに、サーボモータドライバ３ｘ，３ｚをＰＬＣシステムバス１１に直接接続してもよい。さらに、フィールドネットワーク２の通信ユニットをＰＬＣシステムバス１１に接続し、ＣＰＵユニット１３から当該通信ユニット経由で、フィールドネットワーク２に接続された機器との間の通信を行なうようにしてもよい。
【００２８】
サーボモータドライバ３ｘ，３ｚは、フィールドネットワーク２を介してＣＰＵユニット１３と接続されるとともに、ＣＰＵユニット１３からの指令値に従ってサーボモータ４ｘ，４ｚを駆動する。より具体的には、サーボモータドライバ３ｘ，３ｚは、ＰＬＣ１から一定周期で、位置指令、速度指令、トルク指令といった指令値を受ける。また、サーボモータドライバ３ｘ，３ｚは、サーボモータ４ｘ，４ｚの軸に接続されている位置センサ（ロータリーエンコーダ）やトルクセンサといった検出器から、位置、速度（典型的には、今回位置と前回位置との差から算出される）、トルクといったサーボモータ４ｘ，４ｚの動作に係る実測値を取得する。そして、サーボモータドライバ３ｘ，３ｚは、ＣＰＵユニット１３からの指令値を目標値に設定し、実測値をフィードバック値として、フィードバック制御を行なう。すなわち、サーボモータドライバ３ｘ，３ｚは、実測値が目標値に近づくようにサーボモータ４ｘ，４ｚを駆動するための電流を調整する。なお、サーボモータドライバ３ｘ，３ｚは、サーボモータアンプと称されることもある。
【００２９】
また、図１には、サーボモータ４ｘ，４ｚとサーボモータドライバ３ｘ，３ｚとを組み合わせたシステム例を示すが、その他の構成、たとえば、パルスモータとパルスモータドライバとを組み合わせたシステムを採用することもできる。
【００３０】
変位センサ７は、対象物Ａの１次元情報（例えば、高さ情報）を測定するためのセンサである。変位センサ７は、測定する方式として、磁界、光、音波を用いる非接触式とダイヤルゲージや差動トランスなどを用いる接触式とがある。さらに、光を用いる変位センサ７では、三角測量方式、共焦点方式などがある。本実施の形態に係る変位センサ７では、白色共焦点を用いた非接触式の変位センサとして以下説明する。
【００３１】
コントローラ６では、変位センサ７で測定した対象物Ａの１次元情報をデジタル情報に変換してＣＰＵユニット１３に出力する。なお、変位センサ７が白色共焦点を用いた非接触式の変位センサであれば、コントローラ６は、図示していないが白色光源である白色ＬＥＤ（Light  Emitting  Diode）、分岐光ファイバ、分光器、撮像素子、制御回路部などを備えている。
【００３２】
ステージ３１および変位センサ７は、ネジ軸スライダに取付けられ、当該スライダをサーボモータ４ｘ，４ｚを駆動することで移動させている。なお、ネジ軸スライダに限定されず、同様の機能を有する構成であればよく、例えばリニアスライダにステージ３１および変位センサ７を取付けてもよい。
【００３３】
図１に示すＰＬＣシステムＳＹＳのフィールドネットワーク２には、さらに、リモートＩＯターミナル５が接続されている。リモートＩＯターミナル５は、基本的には、ＩＯユニット１４と同様に、一般的な入出力処理に関する処理を行なう。より具体的には、リモートＩＯターミナル５は、フィールドネットワーク２でのデータ伝送に係る処理を行なうための通信カプラ５２と、１つ以上のＩＯユニット５３とを含む。これらのユニットは、リモートＩＯターミナルバス５１を介して、データを互いに遣り取りできるように構成される。
【００３４】
ＰＬＣシステムＳＹＳにおいては、ＰＬＣ１のＣＰＵユニット１３がＥｔｈｅｒＣＡＴにおけるマスタ装置として機能し、サーボモータドライバ３ｘ，３ｚ、コントローラ６および通信カプラ５２がＥｔｈｅｒＣＡＴにおけるスレーブ装置として機能する。なお、ＣＰＵユニット１３の代わりに、マスタ装置として機能するユニットを設けてもよい。
【００３５】
なお、ＰＬＣサポート装置８は、ユーザプログラム、システム構成（デバイス構成）を表すシステム構成情報、変数テーブルなどを含むプロジェクトをユーザが生成するための装置である。ＰＬＣサポート装置８のハードウェア構成は、典型的には、汎用のコンピュータで構成される。具体的に、ＰＬＣサポート装置８は、図示していないが、ＣＰＵ，ＲＯＭ，ＲＡＭ，ハードディスク（ＨＤＤ），キーボードおよびマウス，ディスプレイ，通信インターフェイス（ＩＦ）などを含む。ＰＬＣサポート装置８で実行される各種プログラムは、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）９に格納されて流通する。なお、上位のホストコンピュータなどからネットワークを通じてプログラムをダウンロードするように構成してもよい。
【００３６】
プログラマブル表示器３００は、ＰＬＣ１から取得した各種の情報を画面に表示するとともに、ユーザが操作することにより、ＰＬＣ１に格納されている入力変数の値を変更することができる。プログラマブル表示器３００のハードウェア構成は、ＣＰＵ，ＲＯＭ，ＲＡＭ，フラッシュＲＯＭ，時計，操作キー，カメラ，タッチスクリーン，通信インターフェイスなどを含む。
【００３７】
（Ｂ．ＣＰＵユニットのハードウェア構成）
次に、図３を参照して、ＣＰＵユニット１３のハードウェア構成について説明する。図３は、本実施の形態におけるＣＰＵユニットのハードウェア構成を示す模式図である。図３を参照して、ＣＰＵユニット１３は、マイクロプロセッサ１００と、チップセット１０２と、メインメモリ１０４と、不揮発性メモリ１０６と、システムタイマ１０８と、ＰＬＣシステムバスコントローラ１２０と、フィールドネットワークコントローラ１４０と、ＵＳＢコネクタ１１０とを含む。チップセット１０２と他のコンポーネントとの間は、各種のバスを介してそれぞれ結合されている。
【００３８】
マイクロプロセッサ１００およびチップセット１０２は、典型的には、汎用的なコンピュータアーキテクチャに準じて構成される。すなわち、マイクロプロセッサ１００は、チップセット１０２から内部クロックに従って順次供給される命令コードを解釈して実行する。チップセット１０２は、接続されている各種コンポーネントとの間で内部的なデータを遣り取りするとともに、マイクロプロセッサ１００に必要な命令コードを生成する。さらに、チップセット１０２は、マイクロプロセッサ１００での演算処理の実行の結果得られたデータなどをキャッシュする機能を有する。
【００３９】
ＣＰＵユニット１３は、記憶手段として、メインメモリ１０４および不揮発性メモリ１０６を有する。
【００４０】
メインメモリ１０４は、揮発性の記憶領域（ＲＡＭ）であり、ＣＰＵユニット１３への電源投入後にマイクロプロセッサ１００で実行されるべき各種プログラムを保持する。また、メインメモリ１０４は、マイクロプロセッサ１００による各種プログラムの実行時の作業用メモリとしても使用される。このようなメインメモリ１０４としては、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static Random Access Memory）といったデバイスが用いられる。
【００４１】
一方、不揮発性メモリ１０６は、リアルタイムＯＳ（Operating System）、ＰＬＣ１のシステムプログラム、ユーザプログラム、モーション演算プログラム、システム設定パラメータといったデータを不揮発的に保持する。これらのプログラムやデータは、必要に応じて、マイクロプロセッサ１００がアクセスできるようにメインメモリ１０４にコピーされる。このような不揮発性メモリ１０６としては、フラッシュメモリのような半導体メモリを用いることができる。あるいは、ハードディスクドライブのような磁気記録媒体や、ＤＶＤ−ＲＡＭ（Digital Versatile Disk Random Access Memory）のような光学記録媒 体などを用いることもできる。
【００４２】
システムタイマ１０８は、一定周期ごとに割り込み信号を発生してマイクロプロセッサ１００に提供する。典型的には、ハードウェアの仕様によって、複数の異なる周期でそれぞれ割り込み信号を発生するように構成されるが、ＯＳ（Operating System）やＢＩＯＳ（Basic Input Output System）などによって、任意の周期で割り込み信号を発生するように設定することもできる。このシステムタイマ１０８が発生する割り込み信号を利用して、後述するようなモーション制御サイクルごとの制御動作が実現される。
【００４３】
ＣＰＵユニット１３は、通信回路として、ＰＬＣシステムバスコントローラ１２０およびフィールドネットワークコントローラ１４０を有する。
【００４４】
バッファメモリ１２６は、ＰＬＣシステムバス１１を介して他のユニットへ出力されるデータ（以下「出力データ」とも称す。）の送信バッファ、および、ＰＬＣシステムバス１１を介して他のユニットから入力されるデータ（以下「入力データ」とも称す。）の受信バッファとして機能する。なお、マイクロプロセッサ１００による演算処理によって作成された出力データは、原始的にはメインメモリ１０４に格納される。そして、特定のユニットへ転送されるべき出力データは、メインメモリ１０４から読み出されて、バッファメモリ１２６に一次的に保持される。また、他のユニットから転送された入力データは、バッファメモリ１２６に一次的に保持された後、メインメモリ１０４に移される。
【００４５】
ＤＭＡ制御回路１２２は、メインメモリ１０４からバッファメモリ１２６への出力データの転送、および、バッファメモリ１２６からメインメモリ１０４への入力データの転送を行なう。
【００４６】
ＰＬＣシステムバス制御回路１２４は、ＰＬＣシステムバス１１に接続される他のユニットとの間で、バッファメモリ１２６の出力データを送信する処理および入力データを受信してバッファメモリ１２６に格納する処理を行なう。典型的には、ＰＬＣシステムバス制御回路１２４は、ＰＬＣシステムバス１１における物理層およびデータリンク層の機能を提供する。
【００４７】
フィールドネットワークコントローラ１４０は、フィールドネットワーク２を介したデータの遣り取りを制御する。すなわち、フィールドネットワークコントローラ１４０は、用いられるフィールドネットワーク２の規格に従い、出力データの送信および入力データの受信を制御する。上述したように、本実施の形態においてはＥｔｈｅｒＣＡＴ（登録商標）規格に従うフィールドネットワーク２が採用されるので、通常のイーサネット（登録商標）通信を行なうためのハードウェアを含む、フィールドネットワークコントローラ１４０が用いられる。ＥｔｈｅｒＣＡＴ（登録商標）規格では、通常のイーサネット（登録商標）規格に従う通信プロトコルを実現する一般的なイーサネット（登録商標）コントローラを利用できる。但し、フィールドネットワーク２として採用される産業用イーサネット（登録商標）の種類によっては、通常の通信プロトコルとは異なる専用仕様の通信プロトコルに対応した特別仕様のイーサネット（登録商標）コントローラが用いられる。また、産業用イーサネット（登録商標）以外のフィールドネットワークを採用した場合には、当該規格に応じた専用のフィールドネットワークコントローラが用いられる。
【００４８】
ＤＭＡ制御回路１４２は、メインメモリ１０４からバッファメモリ１４６への出力データの転送、および、バッファメモリ１４６からメインメモリ１０４への入力データの転送を行なう。
【００４９】
フィールドネットワーク制御回路１４４は、フィールドネットワーク２に接続される他の装置との間で、バッファメモリ１４６の出力データを送信する処理および入力データを受信してバッファメモリ１４６に格納する処理を行なう。典型的には、フィールドネットワーク制御回路１４４は、フィールドネットワーク２における物理層およびデータリンク層の機能を提供する。
【００５０】
ＵＳＢコネクタ１１０は、ＰＬＣサポート装置８とＣＰＵユニット１３とを接続するためのインターフェイスである。典型的には、ＰＬＣサポート装置８から転送される、ＣＰＵユニット１３のマイクロプロセッサ１００で実行可能なプログラムなどは、ＵＳＢコネクタ１１０を介してＰＬＣ１に取込まれる。
【００５１】
（Ｃ．ＣＰＵユニットのソフトウェア構成）
次に、図４を参照して、本実施の形態に係る各種機能を提供するためのソフトウェア群について説明する。これらのソフトウェアに含まれる命令コードは、適切なタイミングで読み出され、ＣＰＵユニット１３のマイクロプロセッサ１００によって実行される。
【００５２】
図４は、本実施の形態におけるＣＰＵユニットで実行されるソフトウェア構成を示す模式図である。図４を参照して、ＣＰＵユニット１３で実行されるソフトウェアとしては、リアルタイムＯＳ２００と、システムプログラム２１０と、ユーザプログラム２３６との３階層になっている。
【００５３】
リアルタイムＯＳ２００は、ＣＰＵユニット１３のコンピュータアーキテクチャに応じて設計されており、マイクロプロセッサ１００がシステムプログラム２１０およびユーザプログラム２３６を実行するための基本的な実行環境を提供する。このリアルタイムＯＳは、典型的には、ＰＬＣのメーカーあるいは専門のソフトウェア会社などによって提供される。
【００５４】
システムプログラム２１０は、ＰＬＣ１としての機能を提供するためのソフトウェア群である。具体的には、システムプログラム２１０は、スケジューラプログラム２１２と、出力処理プログラム２１４と、入力処理プログラム２１６と、シーケンス命令演算プログラム２３２と、モーション演算プログラム２３４と、その他のシステムプログラム２２０とを含む。なお、一般には出力処理プログラム２１４および入力処理プログラム２１６は、連続的（一体として）に実行されるので、これらのプログラムを、ＩＯ処理プログラム２１８と総称する場合もある。
【００５５】
ユーザプログラム２３６は、ユーザにおける制御目的に応じて作成される。すなわち、ＰＬＣシステムＳＹＳを用いて制御する対象のライン（プロセス）などに応じて、任意に設計されるプログラムである。
【００５６】
ユーザプログラム２３６は、シーケンス命令演算プログラム２３２およびモーション演算プログラム２３４と協働して、ユーザにおける制御目的を実現する。すなわち、ユーザプログラム２３６は、シーケンス命令演算プログラム２３２およびモーション演算プログラム２３４によって提供される命令、関数、機能モジュールなどを利用することで、プログラムされた動作を実現する。そのため、ユーザプログラム２３６、シーケンス命令演算プログラム２３２、およびモーション演算プログラム２３４を、制御プログラム２３０と総称する場合もある。
【００５７】
このように、ＣＰＵユニット１３のマイクロプロセッサ１００は、記憶手段に格納されたシステムプログラム２１０およびユーザプログラム２３６を実行する。
【００５８】
以下、各プログラムについてより詳細に説明する。
ユーザプログラム２３６は、上述したように、ユーザにおける制御目的（たとえば、対象のラインやプロセス）に応じて作成される。ユーザプログラム２３６は、典型的には、ＣＰＵユニット１３のマイクロプロセッサ１００で実行可能なオブジェクトプログラム形式になっている。このユーザプログラム２３６は、ＰＬＣサポート装置８などにおいて、ラダー言語などによって記述されたソースプログラムがコンパイルされることで生成される。そして、生成されたオブジェクトプログラム形式のユーザプログラム２３６は、ＰＬＣサポート装置８から接続ケーブル１０を介してＣＰＵユニット１３へ転送され、不揮発性メモリ１０６などに格納される。
【００５９】
スケジューラプログラム２１２は、出力処理プログラム２１４、入力処理プログラム２１６、および制御プログラム２３０について、各実行サイクルでの処理開始および処理中断後の処理再開を制御する。より具体的には、スケジューラプログラム２１２は、ユーザプログラム２３６およびモーション演算プログラム２３４の実行を制御する。
【００６０】
本実施の形態に係るＣＰＵユニット１３では、モーション演算プログラム２３４に適した一定周期の実行サイクル（モーション制御サイクル）を処理全体の共通サイクルとして採用する。そのため、１つのモーション制御サイクル内で、すべての処理を完了することは難しいので、実行すべき処理の優先度などに応じて、各モーション制御サイクルにおいて実行を完了すべき処理（例えば、プライマリ定周期タスク）と、複数のモーション制御サイクルに亘って実行してもよい処理（例えば、定周期タスクやイベントタスク）とが区分される。スケジューラプログラム２１２は、これらの区分された処理の実行順序などを管理する。より具体的には、スケジューラプログラム２１２は、各モーション制御サイクル期間内において、より高い優先度が与えられているプログラムほど先に実行する。
【００６１】
出力処理プログラム２１４は、ユーザプログラム２３６（制御プログラム２３０）の実行によって生成された出力データを、ＰＬＣシステムバスコントローラ１２０および／またはフィールドネットワークコントローラ１４０へ転送するのに適した形式に再配置する。ＰＬＣシステムバスコントローラ１２０またはフィールドネットワークコントローラ１４０が、マイクロプロセッサ１００からの、送信を実行するための指示を必要とする場合は、出力処理プログラム２１４がそのような指示を発行する。
【００６２】
入力処理プログラム２１６は、ＰＬＣシステムバスコントローラ１２０および／またはフィールドネットワークコントローラ１４０によって受信された入力データを、制御プログラム２３０が使用するのに適した形式に再配置する。
【００６３】
シーケンス命令演算プログラム２３２は、ユーザプログラム２３６で使用されるある種のシーケンス命令が実行されるときに呼び出されて、その命令の内容を実現するために実行されるプログラムである。例えば、後述するように計測装置２０から得られた計測データに基づいて対象物Ａの２次元形状データを生成するプログラムや、生成された形状データから高さや断面積などの特徴量を演算するプログラムなどが、シーケンス命令演算プログラム２３２に含まれる。
【００６４】
モーション演算プログラム２３４は、ユーザプログラム２３６による指示に従って実行され、コントローラ６からの計測情報の読み出しや、サーボモータドライバ３ｘ，３ｚに対して出力する位置指令を算出するプログラムなどである。
【００６５】
その他のシステムプログラム２２０は、図４に個別に示したプログラム以外の、ＰＬＣ１の各種機能を実現するためのプログラム群をまとめて示したものである。その他のシステムプログラム２２０は、モーション制御サイクルの周期を設定するプログラム２２２を含む。
【００６６】
モーション制御サイクルの周期は、制御目的に応じて適宜設定することができる。典型的には、モーション制御サイクルの周期を指定する情報をユーザがＰＬＣサポート装置８へ入力する。すると、その入力された情報は、ＰＬＣサポート装置８からＣＰＵユニット１３へ転送される。モーション制御サイクルの周期を設定するプログラム２２２は、ＰＬＣサポート装置８からの情報を不揮発性メモリ１０６に格納させるとともに、システムタイマ１０８から指定されたモーション制御サイクルの周期で割り込み信号が発生されるように、システムタイマ１０８を設定する。ＣＰＵユニット１３への電源投入時に、モーション制御サイクルの周期を設定するプログラム２２２が実行されることで、モーション制御サイクルの周期を指定する情報が不揮発性メモリ１０６から読み出され、読み出された情報に従ってシステムタイマ１０８が設定される。
【００６７】
モーション制御サイクルの周期を指定する情報の形式としては、モーション制御サイクルの周期を示す時間の値や、モーション制御サイクルの周期に関する予め用意された複数の選択肢のうちから１つを特定する情報（番号または文字）などを採用することができる。
【００６８】
本実施の形態に係るＣＰＵユニット１３において、モーション制御サイクルの周期を設定する手段としては、モーション制御サイクルの周期を指定する情報を取得するために用いられるＰＬＣサポート装置８との通信手段、モーション制御サイクルの周期を設定するプログラム２２２、ならびにモーション制御サイクルを規定する割り込み信号の周期を任意に設定可能に構成されているシステムタイマ１０８の構成といった、モーション制御サイクルの周期を任意の設定するために用いられる要素が該当する。
【００６９】
リアルタイムＯＳ２００は、複数のプログラムを時間の経過に従い切り換えて実行するための環境を提供する。本実施の形態に係るＰＬＣ１においては、ＣＰＵユニット１３のプログラム実行によって生成された出力データを他のユニットまたは他の装置へ出力（送信）するためのイベント（割り込み）として、出力準備割り込み（Ｐ）およびフィールドネットワーク送信割り込み（Ｘ）が初期設定される。リアルタイムＯＳ２００は、出力準備割り込み（Ｐ）またはフィールドネットワーク送信割り込み（Ｘ）が発生すると、マイクロプロセッサ１００での実行対象を、割り込み発生時点で実行中のプログラムからスケジューラプログラム２１２に切り換える。なお、リアルタイムＯＳ２００は、スケジューラプログラム２１２およびスケジューラプログラム２１２がその実行を制御するプログラムが何ら実行されていない場合に、その他のシステムプログラム２１０に含まれているプログラムを実行する。このようなプログラムとしては、たとえば、ＣＰＵユニット１３とＰＬＣサポート装置８との間の接続ケーブル１０（ＵＳＢ）などを介した通信処理に関するものが含まれる。
【００７０】
（Ｄ．制御システムの機能構成）
次に、ＰＬＣシステムＳＹＳは、ＰＬＣ１でシーケンス命令演算プログラム２３２やモーション演算プログラム２３４を実行することにより、対象物Ａの２次元形状の情報を取得する機能を実現している。具体的に、図を参照して、制御システムであるＰＬＣシステムＳＹＳの機能構成について説明する。図５は、本実施の形態における制御システムの機能構成を示すブロック図である。ＰＬＣシステムＳＹＳは、対象物の２次元形状の情報を取得する制御機能を実現するためにＰＬＣ１に線計測データ取得部１６０と、２次元形状データ生成部１７０とを有している。なお、図５に示すＰＬＣ１では、２次元形状データ生成部１７０で生成した形状データから特徴量を演算する特徴量演算部１８０も有している。
【００７１】
まず、線計測データ取得部１６０は、変位センサ７と対象物Ａとの相対的な位置を変化させながら対象物Ａの高さ（１次元情報）を計測し、計測した結果を計測データとして取得する。具体的に、線計測データ取得部１６０は、計測データを取得するために、予め設定してある計測範囲、計測分解能に基づき駆動装置３０，４０に位置指令を含む指令値を出力する。線計測データ取得部１６０は、指令値に従い駆動装置３０，４０が制御され、計測分解能によって定まる計測記録位置ごとの変位センサ７の計測情報および駆動装置３０，４０からの位置情報を計測データとして取得する。なお、計測範囲は、計測開始位置から計測終了位置までの範囲であり、計測分解能は、計測時のＸ方向への計測間隔である。
【００７２】
対象物Ａの形状を計測するための駆動装置３０，４０の制御としては、サーフェスサーチ制御と、倣い制御とがある。サーフェスサーチ制御は、変位センサ７の高さを計測範囲内に固定し、走査しながら計測範囲内の対象物Ａの高さを計測する制御である。なお、サーフェスサーチ制御は、対象物Ａの高さが変位センサ７の測定範囲外に変動した場合には、変位センサ７が測定範囲内となるように変位センサ７自体の高さを再調整して計測を行う。倣い制御は、変位センサ７と対象物Ａとの距離が一定となるように、変位センサ７自体の高さを逐次変化させながら計測を行う制御である。
【００７３】
次に、２次元形状データ生成部１７０は、線計測データ取得部１６０で取得した計測データに基づき、対象物Ａの２次元形状の形状データを生成する。ここで、線計測データ取得部１６０で取得した計測データは、計測範囲内のＸ方向での位置に対する対象物Ａの高さの情報である。２次元形状データ生成部１７０は、この計測データに対して変位センサ７自体の傾きや位置ずれによる形状補正などの処理を行い、形状データを生成している。
【００７４】
次に、特徴量演算部１８０は、２次元形状データ生成部１７０で生成した形状データに基づき、対象物Ａの特徴量（例えば、高さや断面積など）を演算する。なお、特徴量演算部１８０は、ユーザがユーザプログラム２３６でシーケンス命令演算プログラム２３２を指定することで演算する対象物Ａの特徴量を選択することができる。
【００７５】
（Ｅ．制御システムの制御処理フロー）
図５で説明した本実施の形態に係る制御システムの機能を制御処理フローとして説明する。図６は、本実施の形態における制御システムの制御処理のフローを説明する図ある。図７は、本実施の形態における制御システムでの線計測および２次元形状データ生成の概略を示す模式図である。
【００７６】
まず、ＰＬＣシステムＳＹＳにおいて、対象物Ａの２次元形状の情報を取得するための計測を開始すると、ＰＬＣ１は、計測パラメータの設定処理を実行する（ステップＳ１０１）。具体的に、ＰＬＣ１は、計測範囲として計測開始位置および計測終了位置のそれぞれのパラメータと、計測分解能のパラメータをプログラマブル表示器３００を介してユーザに入力するように表示し、表示に基づきユーザが入力したパラメータを保存する。計測パラメータとして、例えば、計測開始位置をステージ３１上の基準位置（Ｘ＝０）から１０ｃｍの位置、計測終了位置をステージ３１上の基準位置から３０ｃｍの位置、計測分解能を１０μｍとそれぞれ設定する。つまり、計測分解能は、２０ｃｍの計測範囲（計測幅）において２００００点の計測記録位置で計測を行う分解能がある。
【００７７】
ここで、計測分解能と計測記録位置との関係について、さらに詳しく説明する。図８は、本実施の形態における制御システムでの計測分解能について説明するための図である。図８では、横軸をＸ軸、縦軸をＺ軸に設定し、準備位置（Ｘ＝０）から計測終了位置までの計測記録位置が図示されている。計測記録位置は、計測範囲（計測開始位置から計測終了位置までの範囲）を計測分解能で割った各位置である。そして、ＰＬＣ１は、変位センサ７のＸ軸の位置が計測記録位置以上となった場合に、その位置での変位センサ７の計測情報（対象物Ａの高さの情報）および駆動装置３０，４０からの位置情報（Ｘ方向の位置（Ｘ座標），Ｚ方向の位置（Ｚ座標））を読み出す。
【００７８】
具体的に、ＰＬＣ１は、変位センサ７のＸ軸の位置が計測開始位置未満である場合（ａ）、その位置での変位センサ７の計測情報および駆動装置３０，４０からの位置情報を読み出さない。次に、ＰＬＣ１は、ステージ３１を移動して変位センサ７のＸ軸の位置が計測開始位置となった場合（ｂ）、その位置での変位センサ７の計測情報および駆動装置３０，４０からの位置情報を読み出す。次に、ＰＬＣ１は、ステージ３１を移動して変位センサ７のＸ軸の位置が計測開始位置から１つ目の計測記録位置未満である場合（ｃ）、その位置での変位センサ７の計測情報および駆動装置３０，４０からの位置情報を読み出さない。次に、ＰＬＣ１は、ステージ３１を移動して変位センサ７のＸ軸の位置が計測開始位置から１つ目の計測記録位置以上で２つ目の計測記録位置未満である場合（ｄ）、その位置での変位センサ７の計測情報および駆動装置３０，４０からの位置情報を読み出す。ＰＬＣ１は、計測開始位置から２つ目の計測記録位置以降も同様に、ステージ３１を移動して変位センサ７のＸ軸の位置が計測記録位置以上となった位置で、変位センサ７の計測情報および駆動装置３０，４０からの位置情報を読み出す。また、変位センサ７の計測情報および駆動装置３０，４０からの位置情報を読み出す位置を「取得位置」ともいう。また、変位センサ７の計測情報および駆動装置３０，４０からの位置情報を読み出す処理を「取得処理」ともいう。図８の例では、取得位置は、（ｂ）および（ｄ）などに示す位置をいう。つまり、変位センサ７のＸ軸の位置が取得位置に変化する度に、変位センサ７の計測情報および駆動装置３０，４０からの位置情報を読み出すことにより、該変位センサ７の計測情報および駆動装置３０，４０からの位置情報を取得する。このように、取得位置は、計測記録位置に応じた位置である。
【００７９】
なお、ＰＬＣ１は、駆動装置３０がＸ方向にステージ３１の位置を変化させることで、変位センサ７のＸ軸の位置を変化させているが、１定周期タスクあたりＸ方向に変化する位置の変化量（移動距離）が、計測記録位置の間隔（間隔の整数倍を含む）と一致していれば図８で示したような計測記録位置と情報の読み出し位置とのずれは生じない。なお、１定周期タスクあたりＸ方向に変化する位置の変化量（移動距離）は、Ｘ方向の速度×タスク周期で算出できる。しかし、１定周期タスクあたりＸ方向に変化する位置の変化量（移動距離）が、計測記録位置の間隔（間隔の整数倍を含む）と一致していない場合、前述したようにステージ３１を移動させても、情報を読み出さない計測記録位置が存在することになる。また、ステージ３１の移動速度が早く、１定周期タスクあたりＸ方向に変化する位置の変化量（移動距離）が計測分解能を超える場合、情報が読み出せない計測記録位置が存在することになる。そのため、例えば、計測分解能が１０μｍで設定されている場合、ＰＬＣ１は、タスク周期が１ｍｓであれば、ステージ３１の移動速度を１０ｍｍ／ｓ以下とする必要がある。
【００８０】
図６に戻って、ＰＬＣ１は、線計測の処理を実行する（ステップＳ１０２）。ＰＬＣ１は、ステップＳ１０１で設定した計測範囲内でＸ方向にステージ３１の位置が変化するように駆動装置３０を制御しながら、計測記録位置でコントローラ６から変位センサ７の計測情報を読み出す。ここで、図７に示すように、線計測の処理では、対象物Ａの上を変位センサ７がＸ方向に横切りながら、対象物Ａの高さを計測している。変位センサ７が白色共焦点を用いた非接触式の変位センサであるので、変位センサ７自体の高さ方向の測定範囲は２ｍｍ程度である、つまり、変位センサ７は、ステージ３１に対して位置が固定された場合、ステージ３１から２ｍｍの高さまでの対象物Ａであれば測定することができる。
【００８１】
ＰＬＣ１は、変位センサ７の測定範囲（２ｍｍ程度）を超えて対象物Ａの高さを計測できるように、駆動装置４０で変位センサ７自体の位置を変化させている。駆動装置４０が変位センサ７の位置を変化させることが可能な範囲（Ｚ軸可動範囲）が２０ｍｍ程度であるとすれば、ＰＬＣ１は、変位センサ７の測定範囲（２ｍｍ程度）＋Ｚ軸可動範囲（２０ｍｍ程度）の範囲（Ｚ軸の計測範囲）内で、対象物Ａの高さを計測できる。つまり、ＰＬＣ１は、Ｚ方向に２２ｍｍの範囲で対象物Ａの高さを計測することができる。
【００８２】
図６に戻って、ＰＬＣ１は、計測範囲で変位センサ７の位置を変化させながら、計測記録位置で計測した複数の変位センサ７の計測情報（対象物Ａの高さの情報）および駆動装置３０，４０からの複数の位置情報（Ｘ座標，Ｚ座標の情報）を線計測データとして取得する（ステップＳ１０３）。
【００８３】
次に、ＰＬＣ１は、ステップＳ１０３で取得した線計測データに基づき２次元形状データを生成する（ステップＳ１０４）。２次元形状データは、線計測データに対して形状補正（傾き、Ｘ方向、Ｚ方向）を行い、変換したデータです。図７に示すように、変位センサ７が傾いている場合、ステップＳ１０３で取得した線計測データＡ１は傾いたデータとなる。また、ステージ３１の位置によりＸ方向のずれが生じ、変位センサ７の位置によりＺ方向のずれが生じるので、ステージ３１上の基準位置でＸ＝０，Ｚ＝０となるように補正を行う。ＰＬＣ１は、図７に示すように、補正パラメータに基づいて線計測データＡ１を２次元形状データＡ２に補正する。これにより、２次元形状データＡ２は、形状補正（傾き、Ｘ方向、Ｚ方向）されたデータとなる。
【００８４】
さらに、ＰＬＣ１は、ステップＳ１０３で取得した線計測データに対してデータ点列の等間隔化の処理を行う。図８で示したように、ステージ３１が、１定周期タスクあたりＸ方向に変化する位置の変化量（移動距離）が、計測記録位置の間隔より小さい。そのため、線計測データは、変位センサ７の計測情報等を読み出す位置と計測記録位置との間に誤差が発生する。つまり、図８の１つ目の計測記録位置で計測は、当該位置で行われず（ｄ）の位置で情報が読み出される。そのため、ＰＬＣ１は、Ｘ方向に１つ目の計測記録位置から（ｄ）の位置への距離だけずれたＸ座標およびＺ座標が、線計測データのデータとして取得される。そこで、ＰＬＣ１は、データ点列の等間隔化の処理を行い、ステップＳ１０３で取得した線計測データを各計測記録位置での２次元形状データとして生成している。
【００８５】
図９は、本実施の形態における制御システムでの２次元形状データの等間隔化について説明するための図である。図９では、横軸をＸ軸、縦軸をＺ軸に設定し、Ｘ方向に０ｍｍ〜１０ｍｍまで位置を変化させた場合の変位センサ７の計測情報（対象物Ａの高さの情報）が図示されている。ここで、計測記録位置を１ｍｍ単位とした場合に、実際に取得される線計測データは、四角印の計測点で示したように計測記録位置からずれている。そこで、ＰＬＣ１は、データ点列の等間隔化の処理を行い、四角印の計測点から丸印の等間隔化した計測点に補正して２次元形状データを生成している。四角印の計測点から丸印の等間隔化した計測点へ補正する方法は、線形補間やスプライン補間などの補間方法を用いて、等間隔化した計測点での値を推定して補正する。なお、データ点列が等間隔化された２次元形状データは、計測記録位置（Ｘ方向の位置（Ｘ座標））を記録しておく必要がないので、変位センサ７の計測情報（対象物Ａの高さの情報）のみのデータとして記録されている。そのため、ＰＬＣ１は、２次元形状データのデータ量を低減することができる。
【００８６】
図６に戻って、ＰＬＣ１は、ステップＳ１０４で形状補正およびデータ点列の等間隔化の処理を行った２次元形状データを取得する（ステップＳ１０５）。ここで、ＰＬＣ１は、ステップＳ１０４で、形状補正およびデータ点列の等間隔化の処理以外に、フィルタ処理などの処理を行ってもよい。フィルタ処理として、例えば、対象物Ａの形状や表面状態により線計測データが安定しない場合、スムージング処理やメディアン処理を行うことで、線計測データのノイズを軽減することができる。スムージング処理は、Ｘ方向の各位置において、指定された回数ずつ移動平均を行う処理である。メディアン処理は、Ｘ方向のある位置を中心として指定した範囲内のＺ方向の値の中央値を、ある位置のＺ方向の値に置き換える処理である。
【００８７】
図６に戻って、ＰＬＣ１は、ステップＳ１０５で取得した２次元形状データに基づき特徴量演算部１８０で特徴量（例えば、高さや断面積など）を演算する（ステップＳ１０６）。ＰＬＣ１は、特徴量を演算後に制御処理フローを終了する。
【００８８】
（Ｆ．特徴量演算）
次に、特徴量演算部１８０で行う特徴量演算についてさらに詳しく説明する。図１０および図１１は、本実施の形態における制御システムでの特徴量演算について説明するための図である。
【００８９】
（Ｆ１．高さ演算）
図１０（ａ）では、２次元形状データ生成部１７０で生成した２次元形状データに基づき、特徴量演算部１８０が指定した計測範囲における高さを演算により算出する。つまり、特徴量演算部１８０は、ユーザが指定した計測範囲における対象物Ａの高さの情報を２次元形状データから算出する。なお、計測範囲は、少なくとも１つ以上の形状データが含まれるように指定する必要がある。また、特徴量演算部１８０は、算出する高さとして、計測範囲における平均の高さ、計測範囲内での最大高さ（当該高さでのＸ座標を含む）、および計測範囲内での最小高さ（当該高さでのＸ座標を含む）なども算出することができる。例えば、特徴量演算部１８０は、２次元形状データに基づき高さを演算することでレンズ頂点やネジ締めの状態を検査すること、ケース縁の段差を計測することなどができる。
【００９０】
（Ｆ２．エッジ演算）
図１０（ｂ）では、２次元形状データ生成部１７０で生成した２次元形状データに基づき、特徴量演算部１８０が指定した計測範囲において対象物Ａの高さが設定したエッジレベルを通過したときのＸ座標を演算により算出する。つまり、特徴量演算部１８０は、ユーザが指定した計測範囲において対象物Ａの高さがエッジレベルとなるエッジの位置の情報を２次元形状データから算出する。なお、特徴量演算部１８０は、エッジレベルを通過する際の方向（立ち上がりあるいは立下り）をエッジタイプとして設定すること、計測範囲下限値あるいは上限値のいずれから計測するのかを計測方向として設定すること、および何回目のエッジレベルの通過を検出するのかをエッジ回数として設定することなどが可能である。例えば、特徴量演算部１８０は、２次元形状データに基づきエッジ演算することでバッテリやモジュールの端部を検出することができ、バッテリ位置やモジュール位置を検査することができる。また、特徴量演算部１８０は、２次元形状データに基づきエッジ演算することでケースの端部を検出することができ、ケースの幅を検査することができる。
【００９１】
（Ｆ３．変曲点演算）
図１０（ｃ）では、２次元形状データ生成部１７０で生成した２次元形状データに基づき、特徴量演算部１８０が指定した計測範囲において変曲点を演算により算出する。つまり、特徴量演算部１８０は、２次元形状データの指定した計測範囲内で、形状データのラインの折れ曲がっている位置（変曲点）のＸ座標を演算により算出する。なお、特徴量演算部１８０は、計測範囲内に複数の変曲点がある場合、折れ曲がり度合い（感度）が最大の変曲点のＸ座標を演算により算出する。また、特徴量演算部１８０は、折れ曲がり度合い（感度）の比較を絶対値で行う。さらに、特徴量演算部１８０は、同じ大きさの感度をもつ変曲点が複数存在する場合、Ｘ座標の小さい変曲点を出力する。例えば、特徴量演算部１８０は、２次元形状データに基づき変曲点演算することで水晶角位置を検査することなどができる。
【００９２】
（Ｆ４．水平面からの角度演算）
図１１（ａ）では、２次元形状データ生成部１７０で生成した２次元形状データに基づき、特徴量演算部１８０が対象物Ａの水平面からの角度θを演算により算出する。つまり、特徴量演算部１８０は、２次元形状データの２つの計測範囲（計測範囲１および計測範囲２）内の高さで直線を引き、当該直線と水平面とのなす角度θを演算で算出する。また、特徴量演算部１８０は、横軸をＸ軸、縦軸をＺ軸とした場合に、対象物Ａの直線の傾きをａ、切片をｂとして出力することも可能である。例えば、特徴量演算部１８０は、２次元形状データに基づき水平面からの角度演算することでガラスの隙間や水晶の傾きを検査することなどができる。
【００９３】
（Ｆ５．断面積の演算）
図１１（ｂ）では、２次元形状データ生成部１７０で生成した２次元形状データに基づき、特徴量演算部１８０が対象物Ａの断面積を演算により算出する。つまり、特徴量演算部１８０は、指定した積分範囲内の２次元形状データから対象物Ａの底面を決定し、当該底面と２次元形状データの波形に囲まれた部分の面積を算出する。例えば、特徴量演算部１８０は、２次元形状データに基づき断面積の演算することでシール形状を検査することなどができる。
【００９４】
（Ｆ６．比較演算）
図１１（ｃ）では、２次元形状データ生成部１７０で生成した２次元形状データに基づき、特徴量演算部１８０がマスタの形状と対象物Ａの形状とを比較する。つまり、特徴量演算部１８０は、マスタとなる２次元形状データと対象物の２次元形状データとを、指定した計測範囲内で比較して、高さ（Ｚ方向）の差異を演算により算出する。特徴量演算部１８０は、マスタの形状に対して対象物Ａの形状が小さい場合（Ｘ方向の同じ位置で対象物Ａの高さが低い場合）、負の差異αとし、マスタの形状に対して対象物Ａの形状が大きい場合（Ｘ方向の同じ位置で対象物Ａの高さが高い場合）、正の差異βとする。なお、特徴量演算部１８０は、差異の許容範囲を設定することが可能であり、比較した差異が許容範囲内であれば同じ形状であると判断する。例えば、特徴量演算部１８０は、２次元形状データに基づき比較演算することで複数の部品で構成されたモジュールの高さを検査することなどができる。
【００９５】
（Ｇ．制御の種類）
次に、対象物Ａの形状を計測するための駆動装置３０，４０のサーフェスサーチ制御および倣い制御についてさらに詳しく説明する。図１２は、本実施の形態における制御システムでの制御の種類について説明するための図である。
【００９６】
（Ｇ１．サーフェスサーチ制御）
図１２（ａ）には、サーフェスサーチ制御の一連の動作が図示されている。まず、サーフェスサーチ制御では、ＰＬＣ１が駆動装置４０を制御して変位センサ７を、スタート位置からＸ方向に対して準備位置に、Ｚ方向に対して退避位置にそれぞれ移動させる（制御（ａ））。ここで、準備位置および退避位置は、対象物Ａと変位センサ７とが接触することがない位置として予め設定してある位置である。次に、ＰＬＣ１は、準備位置での計測位置決めを行うために、Ｚ方向に変位センサ７を移動させる（制御（ｂ））。ここで、計測位置決めとは、測定面（例えば、ステージ３１の上面）が変位センサ７の計測情報（対象物Ａの高さの情報）が０（ゼロ）となる高さに移動させる制御である。
【００９７】
具体的に、ＰＬＣ１が行う計測位置決めの制御としては、以下の手順で制御を行う。まず、（１）ＰＬＣ１は、予め設定してある探索終了位置に向かって変位センサ７の移動を開始させる。なお、探索終了位置は、対象物Ａに接触することの無い位置を設定する必要がある。（２）ＰＬＣ１は、変位センサ７が計測可能となった場合（測定範囲（図７参照）内に対象物Ａの測定面が入った場合）、計測情報が０（ゼロ）となる高さに変位センサ７を移動させる。（３）ＰＬＣ１は、計測情報が０（ゼロ）となる高さで変位センサ７を停止させる。（４）ＰＬＣ１は、変位センサ７が探索終了位置に到達しても計測不可能である場合、エラー終了する。
【００９８】
次に、ＰＬＣ１は、計測開始位置から計測終了位置までの間の計測を行うため、目標位置に変位センサ７を移動させる（制御（ｃ））。なお、ＰＬＣ１は、Ｘ方向に対して変位センサ７を負の方向に移動させることも可能である。ただし、計測範囲は、駆動装置３０のＸ軸可動範囲内でなければならない。ＰＬＣ１は、各目標位置での位置、高さを線計測データとして取得する。ＰＬＣ１は、計測途中で計測不能を検知した場合、計測位置決めを再度行う（制御（ｄ），（ｅ））。計測不能となる要因としては、変位センサ７の光軸が大きく傾く（例えば、２５°以上）、測定範囲（例えば、２ｍｍ）外となる、計測情報が安定しないなどにより変位センサ７のセンサ状態がＦＡＬＳＥ状態となる場合である。ＰＬＣ１は、計測終了位置まで計測を繰り返し、計測終了位置に達すると計測が完了となる（制御（ｆ））。
【００９９】
（Ｇ２．倣い制御）
図１２（ｂ）には、倣い制御の一連の動作が図示されている。倣い制御とは、変位センサ７の計測情報が常に０（ゼロ）となるように変位センサ７自体を移動させる制御である。ＰＬＣ１は、倣い制御を行うため、線計測データ取得部に倣い制御部の機能を有している。図１３は、本実施の形態における制御システムの線計測データ取得部の機能構成を示す機能ブロック図である。線計測データ取得部１６０は、線計測データ作成部１６１、倣い制御部１６２を有している。線計測データ作成部１６１は、変位センサ７から取得した計測情報に基づき線計測データを作成する。
【０１００】
倣い制御部１６２は、目標位置算出部１６２ａ、指令軌跡算出部１６２ｂを有している。目標位置算出部１６２ａは、変位センサ７自体の位置情報（駆動装置４０からの位置情報）に基づき、変位センサ７の計測情報が常に０（ゼロ）となる目標位置を算出する。具体的には、目標位置算出部１６２ａは、変位センサ７の計測情報が＋１ｍｍ増加した場合、増加分を相殺するため変位センサ７自体の位置が−１ｍｍ減少するように位置指令を生成する。倣い制御部１６２は、目標位置算出部１６２ａが生成した位置指令により、変位センサ７の計測情報が常に０（ゼロ）となるように制御できる。
【０１０１】
指令軌跡算出部１６２ｂは、目標位置算出部１６２ａで生成した位置指令によって変位センサ７自体が急激に移動しないような指令軌跡を算出している。指令軌跡算出部１６２ｂは、目標位置算出部１６２ａで生成した位置指令に、算出した指令軌跡を考慮してサーボモータドライバ３ｘ，３ｚに位置指令を出力する。倣い制御部１６２は、指令軌跡算出部１６２ｂを設けることで、変位センサ７自体の急激な移動を抑制して、装置の振動を抑えることができる。
【０１０２】
図１２（ｂ）に戻って、まず、倣い制御でも、ＰＬＣ１は、駆動装置４０を制御して変位センサ７をスタート位置からＸ方向を準備位置、Ｚ方向を退避位置にそれぞれ移動させる（制御（ａ））。次に、ＰＬＣ１は、準備位置での計測位置決めを行うために、Ｚ方向に変位センサ７を移動させる（制御（ｂ））。ここで、計測位置決めは、サーフェスサーチ制御での計測位置決めと同じ制御である。
【０１０３】
次に、ＰＬＣ１は、計測開始位置から計測終了位置までの間の計測を行うため、目標位置に変位センサ７を移動させる（制御（ｃ））。なお、ＰＬＣ１は、Ｘ方向に対して変位センサ７を負の方向に移動させることも可能である。ただし、計測範囲は、駆動装置３０のＸ軸可動範囲内でなければならない。ＰＬＣ１は、計測範囲内での移動中、変位センサ７自体の位置が対象物Ａの計測面に沿うように変化させながら、各目標位置での位置、高さを線計測データとして取得する（制御（ｄ））。なお、ＰＬＣ１は、計測情報が０（ゼロ）でない場合、０（ゼロ）の位置からの差分だけ変位センサ７自体の位置を移動させる。ＰＬＣ１は、例えば、計測情報が１ｍｍである場合には変位センサ７自体の位置を１ｍｍ高くし、計測情報が−１ｍｍである場合には変位センサ７自体の位置を１ｍｍ低くする。
【０１０４】
ＰＬＣ１は、計測途中で計測不能を検知した（線計測データの取得処理に失敗した）場合、変位センサ７を退避位置に移動させ（制御（ｅ））、その後、計測位置決めを再度行う。計測不能となる要因としては、サーフェスサーチ制御のときと同様、変位センサ７の光軸が大きく傾く（例えば、２５°以上）、測定範囲（例えば、２ｍｍ）外となる、計測情報が安定しないなどにより変位センサ７のセンサ状態がＦＡＬＳＥ状態となる場合である。また、変位センサ７のセンサ状態がＦＡＬＳＥ状態となったときには、変位センサ７は、ＰＬＣ１に対してＦＡＬＳＥ信号を送信する。ＰＬＣ１は、該ＦＡＬＳＥ信号を受信することにより、計測途中で計測不能を検知することができる。ＰＬＣ１は、計測終了位置まで計測を繰り返し、計測終了位置に達すると計測が完了となる（制御（ｆ））。
【０１０５】
なお、線計測データ取得部１６０による取得処理は、プライマリ定周期タスクごとに実行され、２次元形状データ生成部１７０による生成処理、および特徴量演算部１８０による演算処理は、定周期タスクごとに実行される。また、プライマリ定周期タスクの周期Ｔ１は、定周期タスクの周期Ｔ２よりも短い。したがって、取得処理は、生成処理および演算処理よりも優先して実行される。また、ＰＬＣ１は、変位センサ７のセンサ状態がＦＡＬＳＥ状態であるか否かの判断処理（図１４のＳ２およびＳ１６に示す計測不能を検知したか否かの判断処理）は、変位センサ７のセンサ状態がＦＡＬＳＥ状態ではないときにおいて、プライマリ定周期タスクごとに実行されることが好ましい。また、該判断処理は、プライマリ定周期タスクのうちの取得処理の前で実行されることが好ましい。
【０１０６】
以上のように、本実施の形態に係るＰＬＣシステムＳＹＳは、変位センサ７と、駆動装置３０，４０と、ＰＬＣ１とを備える制御システムで、ＰＬＣ１が設定した対象物Ａを計測する計測範囲および計測間隔（計測記録位置）に応じて読み出した変位センサ７の複数の計測情報（１次元情報）および駆動装置３０，４０からの複数の位置情報を線計測データとして取得し、２次元形状データを生成する。そのため、ＰＬＣシステムＳＹＳは、対象物Ａの計測において高いスケーラビリティを得ることができる。
【０１０７】
また、線計測データ取得部１６０は、変位センサ７の計測情報と駆動装置４０からの位置情報（Ｚ方向の変位センサ７自体の位置）とを組み合わせ、線計測データを取得することで、変位センサ７の測定範囲を超える対象物Ａの高さを計測することが可能となり、Ｚ方向に高いスケーラビリティを得ることができる。
【０１０８】
さらに、２次元形状データ生成部１７０は、変位センサ７の計測情報を計測間隔（計測記録位置）の位置に合わせて補正し、等間隔の計測間隔ごとの２次元形状データを生成することで、２次元形状データのデータ量を低減することができる。
【０１０９】
また、特徴量演算部１８０は、２次元形状データ生成部１７０により生成した２次元形状データに基づき、対象物Ａの特徴量を演算することで、様々な特徴量（例えば、高さや断面積など）を得ることができる。
【０１１０】
さらに、マスタ装置として機能するＰＬＣ１と、スレーブ装置として機能する計測装置２０、駆動装置３０，４０およびリモートＩＯターミナル５とがネットワークを介して接続されているので、ＰＬＣシステムＳＹＳの構成の自由度が増す。
【０１１１】
（Ｈ．取得関連処理）
次に、図１２（ｂ）の計測範囲での処理である取得関連処理の詳細を説明する。まず、変位センサ７の計測処理の状態について説明する。図１４は、変位センサ７の計測処理の状態を説明するための図である。変位センサ７の計測処理の状態は、計測状態と非計測状態とを含む。計測状態とは、変位センサ７が対象物Ａの高さ（１次元情報）を計測可能な状態である。換言すれば、変位センサ７のセンサ状態がＦＡＬＳＥ状態となっていない状態である。非計測状態とは、変位センサ７が対象物Ａの高さを計測不可能な状態である。非計測状態とは、計測状態において、変位センサ７のセンサ状態がＦＡＬＳＥ状態となったことが判断されたときに制御される状態である。また、図１４においては、非計測状態であるときにおいて、計測可能状態が成立したとき（例えば、変位センサ７のセンサ状態がＦＡＬＳＥ状態になったとき）に、計測状態に制御されると記載されている。
【０１１２】
計測状態であるときにおいて、計測不能であるか否か、つまり、変位センサ７のセンサ状態がＦＡＬＳＥ状態であるか否かの判断処理が実行される。該判断処理は、計測状態であるときにおいて、プライマリ定周期タスクごとに実行される。また、本実施形態では、計測状態であるときのフローチャートと、非計測状態であるときのフローチャートとは分けられている。図１５は、計測状態であるときのフローチャートを説明するための図である。図１６は、非計測状態であるときのフローチャートを説明するための図である。
【０１１３】
次に、図１５を用いて、計測状態であるときに実行される処理のフローチャートについて説明する。図１５は、計測状態であるときに実行される処理のフローチャートを説明するための図である。Ｓ２においては、ＰＬＣ１は、倣い制御の実行を開始する。Ｓ４において、ＰＬＣ１は、ステージ制御を開始する。ここで、ステージ制御とは、駆動装置３０を制御することにより、計測完了位置（図１５のＳ６の終了位置に対応）に向かってＸ軸方向にステージ３１を移動させる制御である。
【０１１４】
ＰＬＣ１は、倣い制御においてＸ軸方向にステージ３１を移動させながら（Ｓ４）、計測記録位置に応じた取得位置のカウンタ（変数ｎ）を１ずつインクリメントさせて計測を行う。取得位置のカウンタ（変数ｎ）は、計測分解能に応じて設定される所定値Ｎ（例えば、２００００点）までインクリメントされ、所定値Ｎの位置が、図８で説明した計測終了位置に対応している。なお、取得位置のカウンタ（変数ｎ）は、ＰＬＣ１の所定の記憶領域に格納されている。そのため、Ｓ６において、ＰＬＣ１は、取得位置のカウンタ（変数ｎ）が所定値Ｎを超えたか否かの判断、つまり取得位置が計測終了位置を超えたか否かの判断を行う。そして、Ｓ６において、ＰＬＣ１がＹＥＳと判断した場合（Ｓ６：ＹＥＳ）、ＰＬＣ１は、取得位置のカウンタ（変数ｎ）を所定値Ｎまでインクリメントしたので、１つの対象物に対して行った取得関連処理を終了させる。
【０１１５】
一方、ＰＬＣ１がＮＯと判断した場合（Ｓ６：ＮＯ）には、Ｓ８において、ＰＬＣ１は、インクリメントしたカウンタ（変数ｎ）に対応する取得位置に変位センサ７が到達した時に、線計測データ取得部１６０で変位センサ７の計測情報および駆動装置３０，４０からの位置情報を計測データとして読み出す処理（計測データの取得処理）を実行する。
【０１１６】
ＰＬＣ１は、Ｓ８において計測データの取得処理を実行後、取得位置のカウンタ（変数ｎ）をインクリメントする（Ｓ１０）。ＰＬＣ１は、取得位置のカウンタ（変数ｎ）をインクリメントした後、処理をＳ６に戻す。ＰＬＣ１は、図１５に示すような計測状態での処理を行うことで、計測の度にステージ３１の移動を停止させず、計測データを連続して取得することができる。そのため、ＰＬＣ１は、計測の度にステージ３１の移動を停止させる制御に比べ、１つの対象物に対して行う取得関連処理の時間を短くすることができる。
【０１１７】
なお、ＰＬＣ１は、図示していないが、図１５に示す処理と並列して計測不能であるか否かの判断処理、つまり、変位センサ７のセンサ状態がＦＡＬＳＥ状態であるか否かの判断処理を実行している。そのため、ＰＬＣ１は、図１５に示す処理のいずれの処理を実行していても、計測不能であるか否かの判断処理を行うことが可能となる。当該判断処理は、プライマリ定周期タスクごとに実行される。
【０１１８】
該判断処理により、計測不能であると判断された場合には、非計測状態になるとともに、非計測状態であるときの処理が実行される。図１６は、非計測状態であるときに実行される処理のフローチャートを説明するための図である。Ｓ１２において、ＰＬＣ１は、計測動作を停止する。ここで、計測動作の停止とは、ステージ制御の停止と、変位センサ７の動作の停止とを含む。ここで、ステージ制御を停止するとは、ＰＬＣ１が、ステージ３１の移動を停止させるように駆動装置３０を制御することである。これにより、対象物ＡのＸ方向への移動は停止する。また、変位センサ７の動作の停止とは、ＰＬＣ１が、変位センサ７の動作を停止させるように、駆動装置４０を制御することである。計測動作の停止により、たとえば、ステージ制御の停止処理と、変位センサ７の動作の停止処理とが同時に開始される。
【０１１９】
計測動作の停止処理が終了した後は、Ｓ１４において、ＰＬＣ１は、変位センサ７を上昇させることにより、該変位センサ７を退避位置に移動させる（図１２（ｂ）の制御（ｅ）も参照）。ここで、変位センサ７を上昇させるとは、ＰＬＣ１が、変位センサ７を上昇させるように駆動装置４０を制御することである。
【０１２０】
また、Ｓ１２においてステージ制御が停止した時点で、変位センサ７のＸ軸の位置が、計測不能が検知された取得位置よりも進んでいる（ずれている）場合がある。そこで、Ｓ１４の処理が終了した後は、次のＳ１６において、ＰＬＣ１は、変位センサ７のＸ軸の位置が計測不能となった取得位置になるようにステージ３１を制御する（ステージ３１を戻す）。たとえば、図８の（ｅ）の取得位置で計測不能と判断された場合には、ＰＬＣ１は、変位センサ７のＸ軸の位置が（ｅ）の取得位置となるように該ステージ３１を戻す。
【０１２１】
Ｓ１６の処理が終了すると、Ｓ１８において、ＰＬＣ１は、変位センサ７を下降させる。ここで、変位センサ７を下降させる処理は、サーフェスサーチ制御の計測位置決め処理（図１２（ａ）の制御（ｂ）参照）と同一である。次に、Ｓ２０において、Ｓ１８の処理が開始されたときから該変位センサ７が所定位置（たとえば、最下点）に到達するまでの下降期間において、計測状態になったか否か、つまり、変位センサ７のセンサ状態がＦＡＬＳＥ状態とはならなくなったか否かの判断処理が実行される。この場合の判断処理も、プライマリ定周期タスクごとに実行される。つまり、該判断処理は、下降期間中において、プライマリ定周期タスクごとに実行される。本実施の形態では、非計測状態であるときにおいては、下降期間以外では、該判断処理は実行されない。なお、変形例として、非計測状態であるときにおいては、下降期間以外のときでもＰＬＣ１は、該判断処理を実行するようにしてもよい。
【０１２２】
Ｓ２０において、ＮＯと判断された場合には、Ｓ２２に進み、ＹＥＳと判断された場合には、Ｓ３０に進む。Ｓ２２において、ＰＬＣ１の線計測データ取得部は、対象物Ａの高さ（１次元情報）として暫定値を設定する（取得する）。ここで、暫定値とは、図１７で説明するように、∞である。次にＳ２４において、ＰＬＣ１は、取得位置を更新する。Ｓ２４の処理は、Ｓ１０の処理と同一である。次に、Ｓ２６において、ＰＬＣ１は、変位センサ７を上昇させる。Ｓ２６の処理は、Ｓ１４の処理と同一である。次に、Ｓ２８において、ＰＬＣ１はステージ３１を次の取得位置まで移動させる。Ｓ２８の処理は、Ｓ１０の処理と同一である。Ｓ２８の処理が終了後、Ｓ１８に戻る。
【０１２３】
また、Ｓ３０において、ＰＬＣ１は、変位センサ７の計測情報が０（ゼロ）となる高さに変位センサ７を移動させる。この移動処理は、サーフェスサーチの処理と同一である。該移動処理が終了すると、図１５に示す計測状態の処理に戻る。
【０１２４】
なお、本実施の形態では、図１４〜図１６の処理は、倣い制御の際に実行されるとして説明したが、図１４〜図１６の処理を他の制御に際に実行するようにしてもよい。
【０１２５】
以下では、対象物の表面が粗い対象物や、対象物が極端に高い箇所を有する対象物を「特殊な形状の対象物」という。このように、図１４〜図１６の例では、ＰＬＣ１は、変位センサ７のＸ軸の位置が取得位置になる度に、線計測データを取得する取得処理を実行する（線計測データを読み出す、図１５のＳ８）。また、計測不能となったときには、該計測不能となった取得位置まで戻した後に（図１６のＳ１６）、再び取得処理を実行する（図１６に示すＳ１８、Ｓ２０参照）。したがって、本実施の形態のＰＬＣシステムＳＹＳは、特殊な形状である対象物において、計測不能が検知されても、該計測不能と検知された箇所について、計測（取得処理）が再び実行される。したがって、該特殊な形状である対象物の形状を計測する場合に、計測不能と判断されることを極力防止できることから、形状を測定する対象物の制限を緩和できる。
【０１２６】
また、計測不能が検知された場合には、ＰＬＣ１は、変位センサ７をＺ軸方向において移動させる距離を特定できない。したがって、ＰＬＣ１は、適切に倣い制御を実行できないことから、変位センサ７は対象物と衝突する場合がある。そこで、本実施の形態のＰＬＣ１は、計測不能が検知された場合に、ステージを制御する前に、変位センサ７を退避位置に退避させる（図１６のＳ１４およびＳ２６）。したがって、計測不能が検知された場合であっても、変位センサ７と対象物とが衝突することを防止できる。
【０１２７】
ところで、１の取得位置で取得処理を実行したが計測不能と判断された場合において、該１の取得位置において計測不能が検知されなくなるまで（計測データの取得に成功するまで）、該１の取得位置で取得処理を繰り替えすＰＬＣ（以下、「比較対象のＰＬＣ」という。）を構成することも考えられる。一方、本実施の形態のＰＬＣ１は、Ｓ１６、Ｓ１８、Ｓ２０などに示すように、再び実行された取得処理においても計測不能が検知された場合には（Ｓ２０のＮＯ）、次の取得位置にステージ３１を進ませて（Ｓ２８）、取得処理を実行する（Ｓ２０、およびＳ３０など）。したがって、本実施の形態のＰＬＣは、再び実行された取得処理において計測不能が検知された場合であっても、次の取得位置での取得処理が実行されることから、比較対象のＰＬＣシステムと比較して、線計測データ取得部１６０による取得処理をスムーズに実行させることができる。
【０１２８】
図１７は、計測不能が検知される部分（計測不能が検知された取得位置に対応する部分）を対象物が有する場合を説明するための図である。図１７（Ａ）は、計測不能部分を示すものであり、該計測不能部分には、ハッチングが付されている。このような計測不能部分に対応する対象物Ａの高さ（１次元情報）は、計測データとして取得される１次元情報（取得処理が成功したときに取得される１次元情報）とは異なる情報である。本実施の形態では、「計測データとして取得される１次元情報とは異なる情報」とは、たとえば、「∞」である。また、この情報は、図１６のＳ２２で説明した暫定値である。図１７（Ｂ）に示すように、対象物において計測不能が検知される部分を有する対象物の計測データは、該計測不能部分の高さが突出したものとなる。
【０１２９】
このように、計測不能部分に対応する対象物Ａの高さ（１次元情報）は、計測データとして取得される１次元情報とは異なる。したがって、２次元形状データ生成部１７０は、該計測不能部分を適切に認識することができる。また、２次元形状データ生成部１７０は、該計測不能部分については、図９で説明した補間方法により補間する。なお、本実施の形態では、「計測データとして取得される１次元情報とは異なる情報」とは、「∞」としたが、他の値としてもよい。
【０１３０】
（変形例）
（１）本実施の形態に係るＰＬＣシステムＳＹＳでは、駆動装置３０でステージ３１をＸ方向に移動させ、駆動装置４０で変位センサ７自体をＺ方向に移動させることで変位センサ７と対象物Ａとの相対的な位置を変化させると説明した。しかし、これに限定されず、ＰＬＣシステムＳＹＳは、駆動装置３０でステージ３１をＸ方向およびＺ方向に移動することで変位センサ７と対象物Ａとの相対的な位置を変化させても、駆動装置４０で変位センサ７自体をＸ方向およびＺ方向に移動することで変位センサ７と対象物Ａとの相対的な位置を変化させてもよい。
【０１３１】
（２）本実施の形態に係るＰＬＣシステムＳＹＳでは、駆動装置３０でステージ３１をＸ方向に移動させて２次元形状データを生成している。しかし、これに限定されず、ＰＬＣシステムＳＹＳは、駆動装置３０でステージ３１をＸ方向およびＹ方向に移動させて３次元形状データを生成してもよい。もちろん、ＰＬＣシステムＳＹＳは、駆動装置３０でステージ３１をＸ方向に移動させ、駆動装置４０で変位センサ７自体をＹ方向およびＺ方向に移動させて３次元形状データを生成してもよい。
【０１３２】
（３）本実施の形態に係るＰＬＣシステムＳＹＳでは、計測装置２０に１つの変位センサ７を設け、２次元形状データを生成している。しかし、これに限定されず、ＰＬＣシステムＳＹＳは、計測装置２０に複数の変位センサ７を設け、２次元形状データを生成してもよい。ＰＬＣシステムＳＹＳは、複数の変位センサ７を設けることで、線計測データを速く取得することができ２次元形状データの生成までの時間を短縮できる。
【０１３３】
（４）本実施の形態に係るＰＬＣシステムＳＹＳでは、変位センサ７が白色共焦点を用いた非接触式の変位センサであると説明したが、他の方式の非接触式の変位センサ、ダイヤルゲージや差動トランスなどを用いる接触式の変位センサであっても同様の構成を採用することができ、同様の効果を奏することができる。
【０１３４】
（５）また、ＰＬＣ１（たとえば、線計測データ取得部１６０）は、取得処理が失敗した回数を計数し、該計数された回数が予め定められた回数Ｐに到達した場合には、エラー処理を実行するようにしてもよい。ここで、エラー処理は、ＰＬＣ１の制御を停止させる処理と、エラー報知処理とを含む。エラー報知処理は、たとえば、所定の表示部（たとえば、プログラマブル表示器３００）にエラーである旨の情報を報知する処理と、所定の音出力部（たとえば、プログラマブル表示器３００のスピーカ）からエラー音を出力する処理とのうちの少なくとも１つを含む。このようなエラー処理を実行することにより、取得処理が失敗した回数が予め定められた回数Ｐに到達したことをユーザに認識させることができる。
【０１３５】
また、取得処理が失敗した回数は、「１の対象物における線計測データ取得部１６０の取得処理が失敗した回数」としてもよい。この場合において、予め定められた回数Ｐの好ましい値について説明する。１の対象物において、取得処理が失敗した回数がＰ−１以下である場合には、エラー処理が実行されずに、取得処理が失敗した箇所の１次元情報については∞となる一方、取得処理が成功した箇所については適式な線形データが生成される。このような線形データが生成されたとしても、２次元形状データ生成部１７０が正確な形状データを生成できる程度に、予め定められた回数Ｐは定められることが好ましい。
【０１３６】
また、本実施の形態に係るＰＬＣシステムＳＹＳでは、計測不能と判断された取得位置において、再計測が実行される回数は、１回であるとして説明した。しかしながら、再計測が実行される回数は、２回以上としてもよい。このような構成によれば、再計測が実行される回数が１回であるＰＬＣシステムよりも、計測不能と判断されることを極力防止できる。このような構成を採用している場合において、予め定められた回数Ｐは、「１の取得位置における線計測データ取得部１６０の取得処理が失敗した回数」としてもよい。
【０１３７】
（６）また、本実施の形態では、図１６のＳ１４とＳ１６に示すように、変位センサ７の退避が終了した後に、ステージ３１を計測不能となった取得位置まで戻すとして説明した。しかしながら、変位センサの退避と並行して、ステージ３１を計測不能となった取得位置まで戻す処理を実行するようにしてもよい。たとえば、変位センサの退避処理と、ステージ３１を計測不能となった取得位置まで戻す処理とを同時に開始するようにしてもよい。このような構成によれば、変位センサ７の退避処理と、ステージ３１を計測不能となった取得位置まで戻す処理とを別の期間で実行する構成と比較して、１の対象物に対する線計測データ取得部１６０による取得処理の処理時間（たとえば、合計時間）を短縮することができる。
【０１３８】
（７）また、本実施の形態では、図１６に示すように、ある取得位置で、計測不能が検知された場合には、該取得位置において再計測を行う、として説明した。しかしながら、ある取得位置で、計測不能が検知された場合には、再計測を行わずに、次の取得位置に進んで、計測を行うようにしてもよい。ステージを戻す処理（図１６のＳ１８）を省略できることから、処理量を削減できるとともに、１の対象物における線形データを生成する処理時間を短縮できる。
【０１３９】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１４０】
１  ＰＬＣ、２  フィールドネットワーク、３ｘ，３ｚ  サーボモータドライバ、４ｘ，４ｚ  サーボモータ、５  リモートＩＯターミナル、６  コントローラ、７  変位センサ、８  ＰＬＣサポート装置、１０  接続ケーブル、１１  システムバス、１２  電源ユニット、１３  ＣＰＵユニット、１４，５３  ＩＯユニット、１５  特殊ユニット、２０  計測装置、３０，４０  駆動装置、３１  ステージ、５１  リモートＩＯターミナルバス、５２  通信カプラ、１００  マイクロプロセッサ、１０２  チップセット、１０４  メインメモリ、１０６  不揮発性メモリ、１６０  線計測データ取得部、１６１  線計測データ作成部、１６２  倣い制御部、１６２ａ  目標位置算出部、１６２ｂ  指令軌跡算出部、１７０  ２次元形状データ生成部、１８０  特徴量演算部、２３０  制御プログラム、３００  プログラマブル表示器。
【図１】
2018072223.tif 000003
【図２】
2018072223.tif 000004
【図３】
2018072223.tif 000005
【図４】
2018072223.tif 000006
【図５】
2018072223.tif 000007
【図６】
2018072223.tif 000008
【図７】
2018072223.tif 000009
【図８】
2018072223.tif 000010
【図９】
2018072223.tif 000011
【図１０】
2018072223.tif 000012
【図１１】
2018072223.tif 000013
【図１２】
2018072223.tif 000014
【図１３】
2018072223.tif 000015
【図１４】
2018072223.tif 000016
【図１５】
2018072223.tif 000017
【図１６】
2018072223.tif 000018
【図１７】
2018072223.tif 000019