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