(58)【調査した分野】(Int.Cl.,DB名)
対象物の1次元情報を計測する計測装置と前記対象物との相対的な位置を駆動装置で変化させ、前記計測装置で計測した1次元情報に基づき前記対象物の2次元形状または3次元形状の情報を取得するため前記計測装置および前記駆動装置を制御する制御装置の制御方法であって、
前記相対的な位置を変化させながら、前記計測装置の1次元情報および前記駆動装置からの位置情報を計測データとして取得する取得処理を実行するステップと、
前記計測データに基づき、2次元形状または3次元形状の形状データを生成する生成処理を実行するステップとを含み、
前記取得処理を実行するステップは、前記相対的な位置が、設定された計測間隔に応じた取得位置に変化する度に、実行し、
前記取得処理を実行するステップでは、
前記取得処理が失敗した場合、変化された前記相対的な位置を該失敗した前記取得位置に戻した後に、該戻した前記取得位置で再び前記取得処理を実行し、
再び実行した前記取得処理が失敗した場合には、前記相対的な位置を次の前記取得位置に変化させた後に、該次の前記取得位置で前記取得処理を実行する、制御方法。
【発明を実施するための形態】
【0017】
以下において、本実施の形態について図面を参照して詳しく説明する。なお、図中同一符号は同一または相当部分を示す。
【0018】
(A.制御システムの構成)
本実施の形態に係る制御システムは、計測装置および駆動装置を制御して対象物の2次元形状または3次元形状の情報を取得する制御機能を有する。まず、
図1を参照して、本実施の形態に係る制御システムであるPLCシステムSYSの構成について説明する。
【0019】
図1は、本実施の形態における制御システムの概略構成を示す模式図である。制御システムであるPLCシステムSYSは、PLC1と、サーボモータドライバ3x,3zと、リモートIOターミナル5と、コントローラ6とを含む。サーボモータドライバ3x,3z、リモートIOターミナル5、およびコントローラ6は、それぞれフィールドネットワーク2を介してPLC1と接続されている。また、PLC1には、接続ケーブル10などを介してPLCサポート装置と、ネットワーク114を介してプログラマブル表示器300がそれぞれ接続される。
【0020】
コントローラ6は、対象物の1次元情報(例えば、対象物の高さ
、対象物まで
の距離などの情報)を計測する変位センサ7が接続されている。コントローラ6および変位センサ7で計測装置20を構成する。サーボモータドライバ3xは、X軸のサーボモータ4xを駆動する。サーボモータドライバ3xおよびサーボモータ4xでX軸の駆動装置30を構成する。サーボモータドライバ3zは、Z軸のサーボモータ4zを駆動する。サーボモータドライバ3zおよびサーボモータ4zでZ軸の駆動装置40を構成する。コントローラ6と変位センサ7とを一体として構成してもよい。
【0021】
PLCシステムSYSは、対象物の2次元形状の情報を取得する制御機能を有するとして以下説明する。まず、PLCシステムSYSおいて対象物の2次元形状の情報を取得するための計測の構成について具体的に説明する。
図2は、本実施の形態における制御システムでの計測の構成を示す模式図である。
図2では、ステージ31上に載せられた対象物Aを図中のX方向に稼働させるためステージ31に駆動装置30を、変位センサ7自体を図中のZ方向に稼働させるため変位センサ7に駆動装置40をそれぞれ設けている。駆動装置30でステージ31をX方向に移動させ、駆動装置40で変位センサ7自体をZ方向に移動させることで、計測装置20と対象物Aとの相対的な位置を変化させている。
【0022】
さらに、変位センサ7からの計測情報を取得するためコントローラ6に変位センサ7が接続されている。コントローラ6で取得した計測情報はPLC1に送られ、PLC1で後述するような処理を計測情報に対して行う。PLC1は、駆動装置30,40に対して位置指令を送信して、変位センサ7およびステージ31の位置を変更させる。
【0023】
図1に戻って、各構成についてさらに詳しく説明する。PLC1は、主たる演算処理を実行するCPUユニット13と、1つ以上のIOユニット14と、特殊ユニット15とを含む。これらのユニットは、PLCシステムバス11を介して、データを互いに遣り取りできるように構成される。また、これらのユニットには、電源ユニット12によって適切な電圧の電源が供給される。なお、PLC1として構成される各ユニットは、PLCメーカーが提供するものであるので、PLCシステムバス11は、一般にPLCメーカーごとに独自に開発され、使用されている。これに対して、後述するようにフィールドネットワーク2については、異なるメーカーの製品同士が接続できるように、その規格などが公開されている場合も多い。
【0024】
CPUユニット13の詳細については、
図3を参照して後述する。IOユニット14は、一般的な入出力処理に関するユニットであり、オン/オフといった2値化されたデータの入出力を司る。すなわち、IOユニット14は、センサが何らかの対象物を検出している状態(オン)および何らの対象物も検出していない状態(オフ)のいずれであるかという情報を収集する。また、IOユニット14は、リレーやアクチュエータといった出力先に対して、活性化するための指令(オン)および不活性化するための指令(オフ)のいずれかを出力する。
【0025】
特殊ユニット15は、アナログデータの入出力、温度制御、特定の通信方式による通信といった、IOユニット14ではサポートしない機能を有する。
【0026】
フィールドネットワーク2は、CPUユニット13と遣り取りされる各種データを伝送する。フィールドネットワーク2としては、典型的には、各種の産業用イーサネット(登録商標)を用いることができる。産業用イーサネット(登録商標)としては、たとえば、EtherCAT(登録商標)、Profinet IRT、MECHATROLINK(登録商標)−III、Powerlink、SERCOS(登録商標)−III、CIP Motionなどが知られており、これらのうちのいずれを採用してもよい。さらに、産業用イーサネット(登録商標)以外のフィールドネットワークを用いてもよい。たとえば、モーション制御を行わない場合であれば、DeviceNet、CompoNet/IP(登録商標)などを用いてもよい。本実施の形態に係るPLCシステムSYSでは、典型的に
、産業用イーサネット(登録商標)であるEtherCAT(登録商標)をフィールドネットワーク2として採用する場合の構成について例示する。
【0027】
なお、
図1には、PLCシステムバス11およびフィールドネットワーク2の両方を有するPLCシステムSYSを例示するが、一方のみを搭載するシステム構成を採用することもできる。たとえば、フィールドネットワーク2ですべてのユニットを接続してもよい。あるいは、フィールドネットワーク2を使用せずに、サーボモータドライバ3x,3zをPLCシステムバス11に直接接続してもよい。さらに、フィールドネットワーク2の通信ユニットをPLCシステムバス11に接続し、CPUユニット13から当該通信ユニット経由で、フィールドネットワーク2に接続された機器との間の通信を行なうようにしてもよい。
【0028】
サーボモータドライバ3x,3zは、フィールドネットワーク2を介してCPUユニット13と接続されるとともに、CPUユニット13からの指令値に従ってサーボモータ4x,4zを駆動する。より具体的には、サーボモータドライバ3x,3zは、PLC1から一定周期で、位置指令、速度指令、トルク指令といった指令値を受ける。また、サーボモータドライバ3x,3zは、サーボモータ4x,4zの軸に接続されている位置センサ(ロータリーエンコーダ)やトルクセンサといった検出器から、位置、速度(典型的には、今回位置と前回位置との差から算出される)、トルクといったサーボモータ4x,4zの動作に係る実測値を取得する。そして、サーボモータドライバ3x,3zは、CPUユニット13からの指令値を目標値に設定し、実測値をフィードバック値として、フィードバック制御を行なう。すなわち、サーボモータドライバ3x,3zは、実測値が目標値に近づくようにサーボモータ4x,4zを駆動するための電流を調整する。なお、サーボモータドライバ3x,3zは、サーボモータアンプと称されることもある。
【0029】
また、
図1には、サーボモータ4x,4zとサーボモータドライバ3x,3zとを組み合わせたシステム例を示すが、その他の構成、たとえば、パルスモータとパルスモータドライバとを組み合わせたシステムを採用することもできる。
【0030】
変位センサ7は、対象物Aの1次元情報(例えば、高さ情報)を測定するためのセンサである。変位センサ7は、測定する方式として、磁界、光、音波を用いる非接触式とダイヤルゲージや差動トランスなどを用いる接触式とがある。さらに、光を用いる変位センサ7では、三角測量方式、共焦点方式などがある。本実施の形態に係る変位センサ7では、白色共焦点を用いた非接触式の変位センサとして以下説明する。
【0031】
コントローラ6では、変位センサ7で測定した対象物Aの1次元情報をデジタル情報に変換してCPUユニット13に出力する。なお、変位センサ7が白色共焦点を用いた非接触式の変位センサであれば、コントローラ6は、図示していないが白色光源である白色LED(Light Emitting Diode)、分岐光ファイバ、分光器、撮像素子、制御回路部などを備えている。
【0032】
ステージ31および変位センサ7は、ネジ軸スライダに取付けられ、当該スライダをサーボモータ4x,4zを駆動することで移動させている。なお、ネジ軸スライダに限定されず、同様の機能を有する構成であればよく、例えばリニアスライダにステージ31および変位センサ7を取付けてもよい。
【0033】
図1に示すPLCシステムSYSのフィールドネットワーク2には、さらに、リモートIOターミナル5が接続されている。リモートIOターミナル5は、基本的には、IOユニット14と同様に、一般的な入出力処理に関する処理を行なう。より具体的には、リモートIOターミナル5は、フィールドネットワーク2でのデータ伝送に係る処理を行なうための通信カプラ52と、1つ以上のIOユニット53とを含む。これらのユニットは、リモートIOターミナルバス51を介して、データを互いに遣り取りできるように構成される。
【0034】
PLCシステムSYSにおいては、PLC1のCPUユニット13がEtherCATにおけるマスタ装置として機能し、サーボモータドライバ3x,3z、コントローラ6および通信カプラ52がEtherCATにおけるスレーブ装置として機能する。なお、CPUユニット13の代わりに、マスタ装置として機能するユニットを設けてもよい。
【0035】
なお、PLCサポート装置8は、ユーザプログラム、システム構成(デバイス構成)を表すシステム構成情報、変数テーブルなどを含むプロジェクトをユーザが生成するための装置である。PLCサポート装置8のハードウェア構成は、典型的には、汎用のコンピュータで構成される。具体的に、PLCサポート装置8は、図示していないが、CPU,ROM,RAM,ハードディスク(HDD),キーボードおよびマウス,ディスプレイ,通信インターフェイス(IF)などを含む。PLCサポート装置8で実行される各種プログラムは、CD−ROM(Compact Disk-Read Only Memory)9に格納されて流通する。なお、上位のホストコンピュータなどからネットワークを通じてプログラムをダウンロードするように構成してもよい。
【0036】
プログラマブル表示器300は、PLC1から取得した各種の情報を画面に表示するとともに、ユーザが操作することにより、PLC1に格納されている入力変数の値を変更することができる。プログラマブル表示器300のハードウェア構成は、CPU,ROM,RAM,フラッシュROM,時計,操作キー,カメラ,タッチスクリーン,通信インターフェイスなどを含む。
【0037】
(B.CPUユニットのハードウェア構成)
次に、
図3を参照して、CPUユニット13のハードウェア構成について説明する。
図3は、本実施の形態におけるCPUユニットのハードウェア構成を示す模式図である。
図3を参照して、CPUユニット13は、マイクロプロセッサ100と、チップセット102と、メインメモリ104と、不揮発性メモリ106と、システムタイマ108と、PLCシステムバスコントローラ120と、フィールドネットワークコントローラ140と、USBコネクタ110とを含む。チップセット102と他のコンポーネントとの間は、各種のバスを介してそれぞれ結合されている。
【0038】
マイクロプロセッサ100およびチップセット102は、典型的には、汎用的なコンピュータアーキテクチャに準じて構成される。すなわち、マイクロプロセッサ100は、チップセット102から内部クロックに従って順次供給される命令コードを解釈して実行する。チップセット102は、接続されている各種コンポーネントとの間で内部的なデータを遣り取りするとともに、マイクロプロセッサ100に必要な命令コードを生成する。さらに、チップセット102は、マイクロプロセッサ100での演算処理の実行の結果得られたデータなどをキャッシュする機能を有する。
【0039】
CPUユニット13は、記憶手段として、メインメモリ104および不揮発性メモリ106を有する。
【0040】
メインメモリ104は、揮発性の記憶領域(RAM)であり、CPUユニット13への電源投入後にマイクロプロセッサ100で実行されるべき各種プログラムを保持する。また、メインメモリ104は、マイクロプロセッサ100による各種プログラムの実行時の作業用メモリとしても使用される。このようなメインメモリ104としては、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)といったデバイスが用いられる。
【0041】
一方、不揮発性メモリ106は、リアルタイムOS(Operating System)、PLC1のシステムプログラム、ユーザプログラム、モーション演算プログラム、システム設定パラメータといったデータを不揮発的に保持する。これらのプログラムやデータは、必要に応じて、マイクロプロセッサ100がアクセスできるようにメインメモリ104にコピーされる。このような不揮発性メモリ106としては、フラッシュメモリのような半導体メモリを用いることができる。あるいは、ハードディスクドライブのような磁気記録媒体や、DVD−RAM(Digital Versatile Disk Random Access Memory)のような光学記録媒 体などを用いることもできる。
【0042】
システムタイマ108は、一定周期ごとに割り込み信号を発生してマイクロプロセッサ100に提供する。典型的には、ハードウェアの仕様によって、複数の異なる周期でそれぞれ割り込み信号を発生するように構成されるが、OS(Operating System)やBIOS(Basic Input Output System)などによって、任意の周期で割り込み信号を発生するように設定することもできる。このシステムタイマ108が発生する割り込み信号を利用して、後述するようなモーション制御サイクルごとの制御動作が実現される。
【0043】
CPUユニット13は、通信回路として、PLCシステムバスコントローラ120およびフィールドネットワークコントローラ140を有する。
【0044】
バッファメモリ126は、PLCシステムバス11を介して他のユニットへ出力されるデータ(以下「出力データ」とも称す。)の送信バッファ、および、PLCシステムバス11を介して他のユニットから入力されるデータ(以下「入力データ」とも称す。)の受信バッファとして機能する。なお、マイクロプロセッサ100による演算処理によって作成された出力データは、原始的にはメインメモリ104に格納される。そして、特定のユニットへ転送されるべき出力データは、メインメモリ104から読み出されて、バッファメモリ126に一次的に保持される。また、他のユニットから転送された入力データは、バッファメモリ126に一次的に保持された後、メインメモリ104に移される。
【0045】
DMA制御回路122は、メインメモリ104からバッファメモリ126への出力データの転送、および、バッファメモリ126からメインメモリ104への入力データの転送を行なう。
【0046】
PLCシステムバス制御回路124は、PLCシステムバス11に接続される他のユニットとの間で、バッファメモリ126の出力データを送信する処理および入力データを受信してバッファメモリ126に格納する処理を行なう。典型的には、PLCシステムバス制御回路124は、PLCシステムバス11における物理層およびデータリンク層の機能を提供する。
【0047】
フィールドネットワークコントローラ140は、フィールドネットワーク2を介したデータの遣り取りを制御する。すなわち、フィールドネットワークコントローラ140は、用いられるフィールドネットワーク2の規格に従い、出力データの送信および入力データの受信を制御する。上述したように、本実施の形態においてはEtherCAT(登録商標)規格に従うフィールドネットワーク2が採用されるので、通常のイーサネット(登録商標)通信を行なうためのハードウェアを含む、フィールドネットワークコントローラ140が用いられる。EtherCAT(登録商標)規格では、通常のイーサネット(登録商標)規格に従う通信プロトコルを実現する一般的なイーサネット(登録商標)コントローラを利用できる。但し、フィールドネットワーク2として採用される産業用イーサネット(登録商標)の種類によっては、通常の通信プロトコルとは異なる専用仕様の通信プロトコルに対応した特別仕様のイーサネット(登録商標)コントローラが用いられる。また、産業用イーサネット(登録商標)以外のフィールドネットワークを採用した場合には、当該規格に応じた専用のフィールドネットワークコントローラが用いられる。
【0048】
DMA制御回路142は、メインメモリ104からバッファメモリ146への出力データの転送、および、バッファメモリ146からメインメモリ104への入力データの転送を行なう。
【0049】
フィールドネットワーク制御回路144は、フィールドネットワーク2に接続される他の装置との間で、バッファメモリ146の出力データを送信する処理および入力データを受信してバッファメモリ146に格納する処理を行なう。典型的には、フィールドネットワーク制御回路144は、フィールドネットワーク2における物理層およびデータリンク層の機能を提供する。
【0050】
USBコネクタ110は、PLCサポート装置8とCPUユニット13とを接続するためのインターフェイスである。典型的には、PLCサポート装置8から転送される、CPUユニット13のマイクロプロセッサ100で実行可能なプログラムなどは、USBコネクタ110を介してPLC1に取込まれる。
【0051】
(C.CPUユニットのソフトウェア構成)
次に、
図4を参照して、本実施の形態に係る各種機能を提供するためのソフトウェア群について説明する。これらのソフトウェアに含まれる命令コードは、適切なタイミングで読み出され、CPUユニット13のマイクロプロセッサ100によって実行される。
【0052】
図4は、本実施の形態におけるCPUユニットで実行されるソフトウェア構成を示す模式図である。
図4を参照して、CPUユニット13で実行されるソフトウェアとしては、リアルタイムOS200と、システムプログラム210と、ユーザプログラム236との3階層になっている。
【0053】
リアルタイムOS200は、CPUユニット13のコンピュータアーキテクチャに応じて設計されており、マイクロプロセッサ100がシステムプログラム210およびユーザプログラム236を実行するための基本的な実行環境を提供する。このリアルタイムOSは、典型的には、PLCのメーカーあるいは専門のソフトウェア会社などによって提供される。
【0054】
システムプログラム210は、PLC1としての機能を提供するためのソフトウェア群である。具体的には、システムプログラム210は、スケジューラプログラム212と、出力処理プログラム214と、入力処理プログラム216と、シーケンス命令演算プログラム232と、モーション演算プログラム234と、その他のシステムプログラム220とを含む。なお、一般には出力処理プログラム214および入力処理プログラム216は、連続的(一体として)に実行されるので、これらのプログラムを、IO処理プログラム218と総称する場合もある。
【0055】
ユーザプログラム236は、ユーザにおける制御目的に応じて作成される。すなわち、PLCシステムSYSを用いて制御する対象のライン(プロセス)などに応じて、任意に設計されるプログラムである。
【0056】
ユーザプログラム236は、シーケンス命令演算プログラム232およびモーション演算プログラム234と協働して、ユーザにおける制御目的を実現する。すなわち、ユーザプログラム236は、シーケンス命令演算プログラム232およびモーション演算プログラム234によって提供される命令、関数、機能モジュールなどを利用することで、プログラムされた動作を実現する。そのため、ユーザプログラム236、シーケンス命令演算プログラム232、およびモーション演算プログラム234を、制御プログラム230と総称する場合もある。
【0057】
このように、CPUユニット13のマイクロプロセッサ100は、記憶手段に格納されたシステムプログラム210およびユーザプログラム236を実行する。
【0058】
以下、各プログラムについてより詳細に説明する。
ユーザプログラム236は、上述したように、ユーザにおける制御目的(たとえば、対象のラインやプロセス)に応じて作成される。ユーザプログラム236は、典型的には、CPUユニット13のマイクロプロセッサ100で実行可能なオブジェクトプログラム形式になっている。このユーザプログラム236は、PLCサポート装置8などにおいて、ラダー言語などによって記述されたソースプログラムがコンパイルされることで生成される。そして、生成されたオブジェクトプログラム形式のユーザプログラム236は、PLCサポート装置8から接続ケーブル10を介してCPUユニット13へ転送され、不揮発性メモリ106などに格納される。
【0059】
スケジューラプログラム212は、出力処理プログラム214、入力処理プログラム216、および制御プログラム230について、各実行サイクルでの処理開始および処理中断後の処理再開を制御する。より具体的には、スケジューラプログラム212は、ユーザプログラム236およびモーション演算プログラム234の実行を制御する。
【0060】
本実施の形態に係るCPUユニット13では、モーション演算プログラム234に適した一定周期の実行サイクル(モーション制御サイクル)を処理全体の共通サイクルとして採用する。そのため、1つのモーション制御サイクル内で、すべての処理を完了することは難しいので、実行すべき処理の優先度などに応じて、各モーション制御サイクルにおいて実行を完了すべき処理(例えば、プライマリ定周期タスク)と、複数のモーション制御サイクルに亘って実行してもよい処理(例えば、定周期タスクやイベントタスク)とが区分される。スケジューラプログラム212は、これらの区分された処理の実行順序などを管理する。より具体的には、スケジューラプログラム212は、各モーション制御サイクル期間内において、より高い優先度が与えられているプログラムほど先に実行する。
【0061】
出力処理プログラム214は、ユーザプログラム236(制御プログラム230)の実行によって生成された出力データを、PLCシステムバスコントローラ120および/またはフィールドネットワークコントローラ140へ転送するのに適した形式に再配置する。PLCシステムバスコントローラ120またはフィールドネットワークコントローラ140が、マイクロプロセッサ100からの、送信を実行するための指示を必要とする場合は、出力処理プログラム214がそのような指示を発行する。
【0062】
入力処理プログラム216は、PLCシステムバスコントローラ120および/またはフィールドネットワークコントローラ140によって受信された入力データを、制御プログラム230が使用するのに適した形式に再配置する。
【0063】
シーケンス命令演算プログラム232は、ユーザプログラム236で使用されるある種のシーケンス命令が実行されるときに呼び出されて、その命令の内容を実現するために実行されるプログラムである。例えば、後述するように計測装置20から得られた計測データに基づいて対象物Aの2次元形状データを生成するプログラムや、生成された形状データから高さや断面積などの特徴量を演算するプログラムなどが、シーケンス命令演算プログラム232に含まれる。
【0064】
モーション演算プログラム234は、ユーザプログラム236による指示に従って実行され、コントローラ6からの計測情報の読み出しや、サーボモータドライバ3x,3zに対して出力する位置指令を算出するプログラムなどである。
【0065】
その他のシステムプログラム220は、
図4に個別に示したプログラム以外の、PLC1の各種機能を実現するためのプログラム群をまとめて示したものである。その他のシステムプログラム220は、モーション制御サイクルの周期を設定するプログラム222を含む。
【0066】
モーション制御サイクルの周期は、制御目的に応じて適宜設定することができる。典型的には、モーション制御サイクルの周期を指定する情報をユーザがPLCサポート装置8へ入力する。すると、その入力された情報は、PLCサポート装置8からCPUユニット13へ転送される。モーション制御サイクルの周期を設定するプログラム222は、PLCサポート装置8からの情報を不揮発性メモリ106に格納させるとともに、システムタイマ108から指定されたモーション制御サイクルの周期で割り込み信号が発生されるように、システムタイマ108を設定する。CPUユニット13への電源投入時に、モーション制御サイクルの周期を設定するプログラム222が実行されることで、モーション制御サイクルの周期を指定する情報が不揮発性メモリ106から読み出され、読み出された情報に従ってシステムタイマ108が設定される。
【0067】
モーション制御サイクルの周期を指定する情報の形式としては、モーション制御サイクルの周期を示す時間の値や、モーション制御サイクルの周期に関する予め用意された複数の選択肢のうちから1つを特定する情報(番号または文字)などを採用することができる。
【0068】
本実施の形態に係るCPUユニット13において、モーション制御サイクルの周期を設定する手段としては、モーション制御サイクルの周期を指定する情報を取得するために用いられるPLCサポート装置8との通信手段、モーション制御サイクルの周期を設定するプログラム222、ならびにモーション制御サイクルを規定する割り込み信号の周期を任意に設定可能に構成されているシステムタイマ108の構成といった、モーション制御サイクルの周期を任意の設定するために用いられる要素が該当する。
【0069】
リアルタイムOS200は、複数のプログラムを時間の経過に従い切り換えて実行するための環境を提供する。本実施の形態に係るPLC1においては、CPUユニット13のプログラム実行によって生成された出力データを他のユニットまたは他の装置へ出力(送信)するためのイベント(割り込み)として、出力準備割り込み(P)およびフィールドネットワーク送信割り込み(X)が初期設定される。リアルタイムOS200は、出力準備割り込み(P)またはフィールドネットワーク送信割り込み(X)が発生すると、マイクロプロセッサ100での実行対象を、割り込み発生時点で実行中のプログラムからスケジューラプログラム212に切り換える。なお、リアルタイムOS200は、スケジューラプログラム212
が実行されていない場合であって、かつ、スケジューラプログラム212がその実行を制御するプログラムが何ら実行されていない場合に、その他のシステムプログラム210に含まれているプログラムを実行する。このようなプログラムとしては、たとえば、CPUユニット13とPLCサポート装置8との間の接続ケーブル10(USB)などを介した通信処理に関するものが含まれる。
【0070】
(D.制御システムの機能構成)
次に、PLCシステムSYSは、PLC1でシーケンス命令演算プログラム232やモーション演算プログラム234を実行することにより、対象物Aの2次元形状の情報を取得する機能を実現している。具体的に、図を参照して、制御システムであるPLCシステムSYSの機能構成について説明する。
図5は、本実施の形態における制御システムの機能構成を示すブロック図である。PLCシステムSYSは、対象物の2次元形状の情報を取得する制御機能を実現するためにPLC1に線計測データ取得部160と、2次元形状データ生成部170とを有している。なお、
図5に示すPLC1では、2次元形状データ生成部170で生成した形状データから特徴量を演算する特徴量演算部180も有している。
【0071】
まず、線計測データ取得部160は、変位センサ7と対象物Aとの相対的な位置を変化させながら対象物Aの高さ(1次元情報)を計測し、計測した結果を計測データとして取得する。具体的に、線計測データ取得部160は、計測データを取得するために、予め設定してある計測範囲、計測分解能に基づき駆動装置30,40に位置指令を含む指令値を出力する。線計測データ取得部160は、指令値に従い駆動装置30,40が制御され、計測分解能によって定まる計測記録位置ごとの変位センサ7の計測情報および駆動装置30,40からの位置情報を計測データとして取得する。なお、計測範囲は、計測開始位置から計測終了位置までの範囲であり、計測分解能は、計測時のX方向への計測間隔である。
【0072】
対象物Aの形状を計測するための駆動装置30,40の制御としては、サーフェスサーチ制御と、倣い制御とがある。サーフェスサーチ制御は、変位センサ7の高さを計測範囲内に固定し、走査しながら計測範囲内の対象物Aの高さを計測する制御である。なお、サーフェスサーチ制御は、対象物Aの高さが変位センサ7の測定範囲外に変動した場合には、変位センサ7が測定範囲内となるように変位センサ7自体の高さを再調整して計測を行う。倣い制御は、変位センサ7と対象物Aとの距離が一定となるように、変位センサ7自体の高さを逐次変化させながら計測を行う制御である。
【0073】
次に、2次元形状データ生成部170は、線計測データ取得部160で取得した計測データに基づき、対象物Aの2次元形状の形状データを生成する。ここで、線計測データ取得部160で取得した計測データは、計測範囲内のX方向での位置に対する対象物Aの高さの情報である。2次元形状データ生成部170は、この計測データに対して変位センサ7自体の傾きや位置ずれによる形状補正などの処理を行い、形状データを生成している。
【0074】
次に、特徴量演算部180は、2次元形状データ生成部170で生成した形状データに基づき、対象物Aの特徴量(例えば、高さや断面積など)を演算する。なお、特徴量演算部180は、ユーザがユーザプログラム236でシーケンス命令演算プログラム232を指定することで演算する対象物Aの特徴量を選択することができる。
【0075】
(E.制御システムの制御処理フロー)
図5で説明した本実施の形態に係る制御システムの機能を制御処理フローとして説明する。
図6は、本実施の形態における制御システムの制御処理のフローを説明する図ある。
図7は、本実施の形態における制御システムでの線計測および2次元形状データ生成の概略を示す模式図である。
【0076】
まず、PLCシステムSYSにおいて、対象物Aの2次元形状の情報を取得するための計測を開始すると、PLC1は、計測パラメータの設定処理を実行する(ステップS101)。具体的に、PLC1は、計測範囲として計測開始位置および計測終了位置のそれぞれのパラメータと、計測分解能のパラメータをプログラマブル表示器300を介してユーザに入力するように表示し、表示に基づきユーザが入力したパラメータを保存する。計測パラメータとして、例えば、計測開始位置をステージ31上の基準位置(X=0)から10cmの位置、計測終了位置をステージ31上の基準位置から30cmの位置、計測分解能を10μmとそれぞれ設定する。つまり、計測分解能は、20cmの計測範囲(計測幅)において20000点の計測記録位置で計測を行う分解能がある。
【0077】
ここで、計測分解能と計測記録位置との関係について、さらに詳しく説明する。
図8は、本実施の形態における制御システムでの計測分解能について説明するための図である。
図8では、横軸をX軸、縦軸をZ軸に設定し、準備位置(X=0)から計測終了位置までの計測記録位置が図示されている。計測記録位置は、計測範囲(計測開始位置から計測終了位置までの範囲)を計測分解能で割った各位置である。そして、PLC1は、変位センサ7のX軸の位置が計測記録位置以上となった場合に、その位置での変位センサ7の計測情報(対象物Aの高さの情報)および駆動装置30,40からの位置情報(X方向の位置(X座標),Z方向の位置(Z座標))を読み出す。
【0078】
具体的に、PLC1は、変位センサ7のX軸の位置が計測開始位置未満である場合(a)、その位置での変位センサ7の計測情報および駆動装置30,40からの位置情報を読み出さない。次に、PLC1は、ステージ31を移動して変位センサ7のX軸の位置が計測開始位置となった場合(b)、その位置での変位センサ7の計測情報および駆動装置30,40からの位置情報を読み出す。次に、PLC1は、ステージ31を移動して変位センサ7のX軸の位置が計測開始位置から1つ目の計測記録位置未満である場合(c)、その位置での変位センサ7の計測情報および駆動装置30,40からの位置情報を読み出さない。次に、PLC1は、ステージ31を移動して変位センサ7のX軸の位置が計測開始位置から1つ目の計測記録位置以上で2つ目の計測記録位置未満である場合(d)、その位置での変位センサ7の計測情報および駆動装置30,40からの位置情報を読み出す。PLC1は、計測開始位置から2つ目の計測記録位置以降も同様に、ステージ31を移動して変位センサ7のX軸の位置が計測記録位置以上となった位置で、変位センサ7の計測情報および駆動装置30,40からの位置情報を読み出す。また、変位センサ7の計測情報および駆動装置30,40からの位置情報を読み出す位置を「取得位置」ともいう。また、変位センサ7の計測情報および駆動装置30,40からの位置情報を読み出す処理を「取得処理」ともいう。
図8の例では、取得位置は、(b)および(d)などに示す位置をいう。つまり、変位センサ7のX軸の位置が取得位置に変化する度に、変位センサ7の計測情報および駆動装置30,40からの位置情報を読み出すことにより、該変位センサ7の計測情報および駆動装置30,40からの位置情報を取得する。このように、取得位置は、計測記録位置に応じた位置である。
【0079】
なお、PLC1は、駆動装置30がX方向にステージ31の位置を変化させることで、変位センサ7のX軸の位置を変化させているが、1定周期タスクあたりX方向に変化する位置の変化量(移動距離)が、計測記録位置の間隔(間隔の整数倍を含む)と一致していれば
図8で示したような計測記録位置と情報の読み出し位置とのずれは生じない。なお、1定周期タスクあたりX方向に変化する位置の変化量(移動距離)は、X方向の速度×タスク周期で算出できる。しかし、1定周期タスクあたりX方向に変化する位置の変化量(移動距離)が、計測記録位置の間隔(間隔の整数倍を含む)と一致していない場合、前述したようにステージ31を移動させても、情報を読み出さない計測記録位置が存在することになる。また、ステージ31の移動速度が早く、1定周期タスクあたりX方向に変化する位置の変化量(移動距離)が計測分解能を超える場合、情報が読み出せない計測記録位置が存在することになる。そのため、例えば、計測分解能が10μmで設定されている場合、PLC1は、タスク周期が1msであれば、ステージ31の移動速度を10mm/s以下とする必要がある。
【0080】
図6に戻って、PLC1は、線計測の処理を実行する(ステップS102)。PLC1は、ステップS101で設定した計測範囲内でX方向にステージ31の位置が変化するように駆動装置30を制御しながら、計測記録位置でコントローラ6から変位センサ7の計測情報を読み出す。ここで、
図7に示すように、線計測の処理では、対象物Aの上を変位センサ7がX方向に横切りながら、対象物Aの高さを計測している。変位センサ7が白色共焦点を用いた非接触式の変位センサであるので、変位センサ7自体の高さ方向の測定範囲は2mm程度である、つまり、変位センサ7は、ステージ31に対して位置が固定された場合、ステージ31から2mmの高さまでの対象物Aであれば測定することができる。
【0081】
PLC1は、変位センサ7の測定範囲(2mm程度)を超えて対象物Aの高さを計測できるように、駆動装置40で変位センサ7自体の位置を変化させている。駆動装置40が変位センサ7の位置を変化させることが可能な範囲(Z軸可動範囲)が20mm程度であるとすれば、PLC1は、変位センサ7の測定範囲(2mm程度)+Z軸可動範囲(20mm程度)の範囲(Z軸の計測範囲)内で、対象物Aの高さを計測できる。つまり、PLC1は、Z方向に22mmの範囲で対象物Aの高さを計測することができる。
【0082】
図6に戻って、PLC1は、計測範囲で変位センサ7の位置を変化させながら、計測記録位置で計測した複数の変位センサ7の計測情報(対象物Aの高さの情報)および駆動装置30,40からの複数の位置情報(X座標,Z座標の情報)を線計測データとして取得する(ステップS103)。
【0083】
次に、PLC1は、ステップS103で取得した線計測データに基づき2次元形状データを生成する(ステップS104)。2次元形状データは、線計測データに対して形状補正(傾き、X方向、Z方向)を行い、変換したデータです。
図7に示すように、変位センサ7が傾いている場合、ステップS103で取得した線計測データA1は傾いたデータとなる。また、ステージ31の位置によりX方向のずれが生じ、変位センサ7の位置によりZ方向のずれが生じるので、ステージ31上の基準位置でX=0,Z=0となるように補正を行う。PLC1は、
図7に示すように、補正パラメータに基づいて線計測データA1を2次元形状データA2に補正する。これにより、2次元形状データA2は、形状補正(傾き、X方向、Z方向)されたデータとなる。
【0084】
さらに、PLC1は、ステップS103で取得した線計測データに対してデータ点列の等間隔化の処理を行う。
図8で示したように、ステージ31が、1定周期タスクあたりX方向に変化する位置の変化量(移動距離)が、計測記録位置の間隔より小さい。そのため、線計測データは、変位センサ7の計測情報等を読み出す位置と計測記録位置との間に誤差が発生する。つまり、
図8の1つ目の計測記録位置で計測は、当該位置で行われず(d)の位置で情報が読み出される。そのため、PLC1は、X方向に1つ目の計測記録位置から(d)の位置への距離だけずれたX座標およびZ座標が、線計測データのデータとして取得される。そこで、PLC1は、データ点列の等間隔化の処理を行い、ステップS103で取得した線計測データを各計測記録位置での2次元形状データとして生成している。
【0085】
図9は、本実施の形態における制御システムでの2次元形状データの等間隔化について説明するための図である。
図9では、横軸をX軸、縦軸をZ軸に設定し、X方向に0mm〜10mmまで位置を変化させた場合の変位センサ7の計測情報(対象物Aの高さの情報)が図示されている。ここで、計測記録位置を1mm単位とした場合に、実際に取得される線計測データは、四角印の計測点で示したように計測記録位置からずれている。そこで、PLC1は、データ点列の等間隔化の処理を行い、四角印の計測点から丸印の等間隔化した計測点に補正して2次元形状データを生成している。四角印の計測点から丸印の等間隔化した計測点へ補正する方法は、線形補間やスプライン補間などの補間方法を用いて、等間隔化した計測点での値を推定して補正する。なお、データ点列が等間隔化された2次元形状データは、計測記録位置(X方向の位置(X座標))を記録しておく必要がないので、変位センサ7の計測情報(対象物Aの高さの情報)のみのデータとして記録されている。そのため、PLC1は、2次元形状データのデータ量を低減することができる。
【0086】
図6に戻って、PLC1は、ステップS104で形状補正およびデータ点列の等間隔化の処理を行った2次元形状データを取得する(ステップS105)。ここで、PLC1は、ステップS104で、形状補正およびデータ点列の等間隔化の処理以外に、フィルタ処理などの処理を行ってもよい。フィルタ処理として、例えば、対象物Aの形状や表面状態により線計測データが安定しない場合、スムージング処理やメディアン処理を行うことで、線計測データのノイズを軽減することができる。スムージング処理は、X方向の各位置において、指定された回数ずつ移動平均を行う処理である。メディアン処理は、X方向のある位置を中心として指定した範囲内のZ方向の値の中央値を、ある位置のZ方向の値に置き換える処理である。
【0087】
図6に戻って、PLC1は、ステップS105で取得した2次元形状データに基づき特徴量演算部180で特徴量(例えば、高さや断面積など)を演算する(ステップS106)。PLC1は、特徴量を演算後に制御処理フローを終了する。
【0088】
(F.特徴量演算)
次に、特徴量演算部180で行う特徴量演算についてさらに詳しく説明する。
図10および
図11は、本実施の形態における制御システムでの特徴量演算について説明するための図である。
【0089】
(F1.高さ演算)
図10(a)では、2次元形状データ生成部170で生成した2次元形状データに基づき、特徴量演算部180が指定した計測範囲における高さを演算により算出する。つまり、特徴量演算部180は、ユーザが指定した計測範囲における対象物Aの高さの情報を2次元形状データから算出する。なお、計測範囲は、少なくとも1つ以上の形状データが含まれるように指定する必要がある。また、特徴量演算部180は、算出する高さとして、計測範囲における平均の高さ、計測範囲内での最大高さ(当該高さでのX座標を含む)、および計測範囲内での最小高さ(当該高さでのX座標を含む)なども算出することができる。例えば、特徴量演算部180は、2次元形状データに基づき高さを演算することでレンズ頂点やネジ締めの状態を検査すること、ケース縁の段差を計測することなどができる。
【0090】
(F2.エッジ演算)
図10(b)では、2次元形状データ生成部170で生成した2次元形状データに基づき、特徴量演算部180が指定した計測範囲において対象物Aの高さが設定したエッジレベルを通過したときのX座標を演算により算出する。つまり、特徴量演算部180は、ユーザが指定した計測範囲において対象物Aの高さがエッジレベルとなるエッジの位置の情報を2次元形状データから算出する。なお、特徴量演算部180は、エッジレベルを通過する際の方向(立ち上がりあるいは立下り)をエッジタイプとして設定すること、計測範囲下限値あるいは上限値のいずれから計測するのかを計測方向として設定すること、および何回目のエッジレベルの通過を検出するのかをエッジ回数として設定することなどが可能である。例えば、特徴量演算部180は、2次元形状データに基づきエッジ演算することでバッテリやモジュールの端部を検出することができ、バッテリ位置やモジュール位置を検査することができる。また、特徴量演算部180は、2次元形状データに基づきエッジ演算することでケースの端部を検出することができ、ケースの幅を検査することができる。
【0091】
(F3.変曲点演算)
図10(c)では、2次元形状データ生成部170で生成した2次元形状データに基づき、特徴量演算部180が指定した計測範囲において変曲点を演算により算出する。つまり、特徴量演算部180は、2次元形状データの指定した計測範囲内で、形状データのラインの折れ曲がっている位置(変曲点)のX座標を演算により算出する。なお、特徴量演算部180は、計測範囲内に複数の変曲点がある場合、折れ曲がり度合い(感度)が最大の変曲点のX座標を演算により算出する。また、特徴量演算部180は、折れ曲がり度合い(感度)の比較を絶対値で行う。さらに、特徴量演算部180は、同じ大きさの感度をもつ変曲点が複数存在する場合、X座標の小さい変曲点を出力する。例えば、特徴量演算部180は、2次元形状データに基づき変曲点演算することで水晶角位置を検査することなどができる。
【0092】
(F4.水平面からの角度演算)
図11(a)では、2次元形状データ生成部170で生成した2次元形状データに基づき、特徴量演算部180が対象物Aの水平面からの角度θを演算により算出する。つまり、特徴量演算部180は、2次元形状データの2つの計測範囲(計測範囲1および計測範囲2)内の高さで直線を引き、当該直線と水平面とのなす角度θを演算で算出する。また、特徴量演算部180は、横軸をX軸、縦軸をZ軸とした場合に、対象物Aの直線の傾きをa、切片をbとして出力することも可能である。例えば、特徴量演算部180は、2次元形状データに基づき水平面からの角度演算することでガラスの隙間や水晶の傾きを検査することなどができる。
【0093】
(F5.断面積の演算)
図11(b)では、2次元形状データ生成部170で生成した2次元形状データに基づき、特徴量演算部180が対象物Aの断面積を演算により算出する。つまり、特徴量演算部180は、指定した積分範囲内の2次元形状データから対象物Aの底面を決定し、当該底面と2次元形状データの波形に囲まれた部分の面積を算出する。例えば、特徴量演算部180は、2次元形状データに基づき断面積の演算することでシール形状を検査することなどができる。
【0094】
(F6.比較演算)
図11(c)では、2次元形状データ生成部170で生成した2次元形状データに基づき、特徴量演算部180がマスタの形状と対象物Aの形状とを比較する。つまり、特徴量演算部180は、マスタとなる2次元形状データと対象物の2次元形状データとを、指定した計測範囲内で比較して、高さ(Z方向)の差異を演算により算出する。特徴量演算部180は、マスタの形状に対して対象物Aの形状が小さい場合(X方向の同じ位置で対象物Aの高さが低い場合)、負の差異αとし、マスタの形状に対して対象物Aの形状が大きい場合(X方向の同じ位置で対象物Aの高さが高い場合)、正の差異βとする。なお、特徴量演算部180は、差異の許容範囲を設定することが可能であり、比較した差異が許容範囲内であれば同じ形状であると判断する。例えば、特徴量演算部180は、2次元形状データに基づき比較演算することで複数の部品で構成されたモジュールの高さを検査することなどができる。
【0095】
(G.制御の種類)
次に、対象物Aの形状を計測するための駆動装置30,40のサーフェスサーチ制御および倣い制御についてさらに詳しく説明する。
図12は、本実施の形態における制御システムでの制御の種類について説明するための図である。
【0096】
(G1.サーフェスサーチ制御)
図12(a)には、サーフェスサーチ制御の一連の動作が図示されている。まず、サーフェスサーチ制御では、PLC1が駆動装置40を制御して変位センサ7を、スタート位置からX方向に
沿って準備位置に、Z方向に対して退避位置にそれぞれ移動させる(制御(a))。ここで、準備位置および退避位置は、対象物Aと変位センサ7とが接触することがない位置として予め設定してある位置である。次に、PLC1は、準備位置での計測位置決めを行うために、Z方向に変位センサ7を移動させる(制御(b))。ここで、計測位置決めとは、測定面(例えば、ステージ31の上面)が変位センサ7の計測情報(対象物Aの高さの情報)が0(ゼロ)となる高さに移動させる制御である。
【0097】
具体的に、PLC1が行う計測位置決めの制御としては、以下の手順で制御を行う。まず、(1)PLC1は、予め設定してある
計測終了位置に向かって変位センサ7の移動を開始させる。なお、
計測終了位置は、対象物Aに接触することの無い位置を設定する必要がある。(2)PLC1は、変位センサ7が計測可能となった場合(測定範囲(
図7参照)内に対象物Aの測定面が入った場合)、計測情報が0(ゼロ)となる高さに変位センサ7を移動させる。(3)PLC1は、計測情報が0(ゼロ)となる高さで変位センサ7を停止させる。(4)PLC1は、変位センサ7が
計測終了位置に到達しても計測不可能である場合、
制御を終了する。
【0098】
次に、PLC1は、計測開始位置から計測終了位置までの間の計測を行うため、目標位置に変位センサ7を移動させる(制御(c))。なお、PLC1は、X方向に対して変位センサ7を負の方向に移動させることも可能である。ただし、計測範囲は、駆動装置30のX軸可動範囲内でなければならない。PLC1は、各目標位置での位置、高さを線計測データとして取得する。PLC1は、計測途中で計測不能を検知した場合、計測位置決めを再度行う(制御(d),(e))。計測不能となる要因としては、変位センサ7の光軸が大きく傾く(例えば、25°以上)、測定範囲(例えば、2mm)外となる、計測情報が安定しないなどにより変位センサ7のセンサ状態がFALSE状態となる場合である。PLC1は、計測終了位置まで計測を繰り返し、計測終了位置に達すると計測が完了となる(制御(f))。
【0099】
(G2.倣い制御)
図12(b)には、倣い制御の一連の動作が図示されている。倣い制御とは、変位センサ7の計測情報が常に0(ゼロ)となるように変位センサ7自体を移動させる制御である。PLC1は、倣い制御を行うため、線計測データ取得部に倣い制御部の機能を有している。
図13は、本実施の形態における制御システムの線計測データ取得部の機能構成を示す機能ブロック図である。線計測データ取得部160は、線計測データ作成部161、倣い制御部162を有している。線計測データ作成部161は、変位センサ7から取得した計測情報に基づき線計測データを作成する。
【0100】
倣い制御部162は、目標位置算出部162a、指令軌跡算出部162bを有している。目標位置算出部162aは、変位センサ7自体の位置情報(駆動装置40からの位置情報)に基づき、変位センサ7の計測情報が常に0(ゼロ)となる目標位置を算出する。具体的には、目標位置算出部162aは、変位センサ7の計測情報が+1mm増加した場合、増加分を相殺するため変位センサ7自体の位置が−1mm減少するように位置指令を生成する。倣い制御部162は、目標位置算出部162aが生成した位置指令により、変位センサ7の計測情報が常に0(ゼロ)となるように制御できる。
【0101】
指令軌跡算出部162bは、目標位置算出部162aで生成した位置指令によって変位センサ7自体が急激に移動しないような指令軌跡を算出している。指令軌跡算出部162bは、目標位置算出部162aで生成した位置指令に、算出した指令軌跡を考慮してサーボモータドライバ3x,3zに位置指令を出力する。倣い制御部162は、指令軌跡算出部162bを設けることで、変位センサ7自体の急激な移動を抑制して、装置の振動を抑えることができる。
【0102】
図12(b)に戻って、まず、倣い制御でも、PLC1は、駆動装置40を制御して変位センサ7をスタート位置からX方向
に沿って準備位置、Z方向を退避位置にそれぞれ移動させる(制御(a))。次に、PLC1は、準備位置での計測位置決めを行うために、Z方向に変位センサ7を移動させる(制御(b))。ここで、計測位置決めは、サーフェスサーチ制御での計測位置決めと同じ制御である。
【0103】
次に、PLC1は、計測開始位置から計測終了位置までの間の計測を行うため、目標位置に変位センサ7を移動させる(制御(c))。なお、PLC1は、X方向に対して変位センサ7を負の方向に移動させることも可能である。ただし、計測範囲は、駆動装置30のX軸可動範囲内でなければならない。PLC1は、計測範囲内での移動中、変位センサ7自体の位置が対象物Aの計測面に沿うように変化させながら、各目標位置での位置、高さを線計測データとして取得する(制御(d))。なお、PLC1は、計測情報が0(ゼロ)でない場合、
計測情報が0(ゼロ)でない位置と、計測情報が0(ゼロ)との位置からの差分だけ変位センサ7自体の位置を移動させる。PLC1は、例えば、計測情報が1mmである場合には変位センサ7自体の位置を1mm高くし、計測情報が−1mmである場合には変位センサ7自体の位置を1mm低くする。
【0104】
PLC1は、計測途中で計測不能を検知した(線計測データの取得処理に失敗した)場合、変位センサ7を退避位置に移動させ(制御(e))、その後、計測位置決めを再度行う。計測不能となる要因としては、サーフェスサーチ制御のときと同様、変位センサ7の光軸が大きく傾く(例えば、25°以上)、測定範囲(例えば、2mm)外となる、計測情報が安定しないなどにより変位センサ7のセンサ状態がFALSE状態となる場合である。また、変位センサ7のセンサ状態がFALSE状態となったときには、変位センサ7は、PLC1に対してFALSE信号を送信する。PLC1は、該FALSE信号を受信することにより、計測途中で計測不能を検知することができる。PLC1は、計測終了位置まで計測を繰り返し、計測終了位置に達すると計測が完了となる(制御(f))。
【0105】
なお、線計測データ取得部160による取得処理は、プライマリ定周期タスクごとに実行され、2次元形状データ生成部170による生成処理、および特徴量演算部180による演算処理は、定周期タスクごとに実行される。また、プライマリ定周期タスクの周期T1は、定周期タスクの周期T2よりも短い。したがって、取得処理は、生成処理および演算処理よりも優先して実行される。また、PLC1は、変位センサ7のセンサ状態がFALSE状態であるか否かの判断処理(
図14のS2およびS16に示す計測不能を検知したか否かの判断処理)は、変位センサ7のセンサ状態がFALSE状態ではないときにおいて、プライマリ定周期タスクごとに実行されることが好ましい。また、該判断処理は、プライマリ定周期タスクのうちの取得処理の前で実行されることが好ましい。
【0106】
以上のように、本実施の形態に係るPLCシステムSYSは、変位センサ7と、駆動装置30,40と、PLC1とを備える制御システムで、PLC1が設定した対象物Aを計測する計測範囲および計測間隔(計測記録位置)に応じて読み出した変位センサ7の複数の計測情報(1次元情報)および駆動装置30,40からの複数の位置情報を線計測データとして取得し、2次元形状データを生成する。そのため、PLCシステムSYSは、対象物Aの計測において高いスケーラビリティを得ることができる。
【0107】
また、線計測データ取得部160は、変位センサ7の計測情報と駆動装置40からの位置情報(Z方向の変位センサ7自体の位置)とを組み合わせ、線計測データを取得することで、変位センサ7の測定範囲を超える対象物Aの高さを計測することが可能となり、Z方向に高いスケーラビリティを得ることができる。
【0108】
さらに、2次元形状データ生成部170は、変位センサ7の計測情報を計測間隔(計測記録位置)の位置に合わせて補正し、等間隔の計測間隔ごとの2次元形状データを生成することで、2次元形状データのデータ量を低減することができる。
【0109】
また、特徴量演算部180は、2次元形状データ生成部170により生成した2次元形状データに基づき、対象物Aの特徴量を演算することで、様々な特徴量(例えば、高さや断面積など)を得ることができる。
【0110】
さらに、マスタ装置として機能するPLC1と、スレーブ装置として機能する計測装置20、駆動装置30,40およびリモートIOターミナル5とがネットワークを介して接続されているので、PLCシステムSYSの構成の自由度が増す。
【0111】
(H.取得関連処理)
次に、
図12(b)の計測範囲での処理である取得関連処理の詳細を説明する。まず、変位センサ7の計測処理の状態について説明する。
図14は、変位センサ7の計測処理の状態を説明するための図である。変位センサ7の計測処理の状態は、計測状態と非計測状態とを含む。計測状態とは、変位センサ7が対象物Aの高さ(1次元情報)を計測可能な状態である。換言すれば、変位センサ7のセンサ状態がFALSE状態となっていない状態である。非計測状態とは、変位センサ7が対象物Aの高さを計測不可能な状態である。非計測状態とは、計測状態において、変位センサ7のセンサ状態がFALSE状態となったことが判断されたときに制御される状態である。また、
図14においては、非計測状態であるときにおいて、計測可能状態が成立したとき(例えば、変位センサ7のセンサ状態がFALSE状態になったとき)に、計測状態に制御されると記載されている。
【0112】
計測状態であるときにおいて、計測不能であるか否か、つまり、変位センサ7のセンサ状態がFALSE状態であるか否かの判断処理が実行される。該判断処理は、計測状態であるときにおいて、プライマリ定周期タスクごとに実行される。また、本実施形態では、計測状態であるときのフローチャートと、非計測状態であるときのフローチャートとは分けられている。
図15は、計測状態であるときのフローチャートを説明するための図である。
図16は、非計測状態であるときのフローチャートを説明するための図である。
【0113】
次に、
図15を用いて、計測状態であるときに実行される処理のフローチャートについて説明する。
図15は、計測状態であるときに実行される処理のフローチャートを説明するための図である。S2においては、PLC1は、倣い制御の実行を開始する。S4において、PLC1は、ステージ制御を開始する。ここで、ステージ制御とは、駆動装置30を制御することにより、計測完了位置(
図15のS6の終了位置に対応)に向かってX軸方向にステージ31を移動させる制御である。
【0114】
PLC1は、倣い制御においてX軸方向にステージ31を移動させながら(S4)、計測記録位置に応じた取得位置のカウンタ(変数n)を1ずつインクリメントさせて計測を行う。取得位置のカウンタ(変数n)は、計測分解能に応じて設定される所定値N(例えば、20000点)までインクリメントされ、所定値Nの位置が、
図8で説明した計測終了位置に対応している。なお、取得位置のカウンタ(変数n)は、PLC1の所定の記憶領域に格納されている。そのため、S6において、PLC1は、取得位置のカウンタ(変数n)が所定値Nを超えたか否かの判断、つまり取得位置が計測終了位置を超えたか否かの判断を行う。そして、S6において、PLC1がYESと判断した場合(S6:YES)、PLC1は、取得位置のカウンタ(変数n)を所定値Nまでインクリメントしたので、1つの対象物に対して行った取得関連処理を終了させる。
【0115】
一方、PLC1がNOと判断した場合(S6:NO)には、S8において、PLC1は、インクリメントしたカウンタ(変数n)に対応する取得位置に変位センサ7が到達した時に、線計測データ取得部160で変位センサ7の計測情報および駆動装置30,40からの位置情報を計測データとして読み出す処理(計測データの取得処理)を実行する。
【0116】
PLC1は、S8において計測データの取得処理を実行後、取得位置のカウンタ(変数n)をインクリメントする(S10)。PLC1は、取得位置のカウンタ(変数n)をインクリメントした後、処理をS6に戻す。PLC1は、
図15に示すような計測状態での処理を行うことで、計測の度にステージ31の移動を停止させず、計測データを連続して取得することができる。そのため、PLC1は、計測の度にステージ31の移動を停止させる制御に比べ、1つの対象物に対して行う取得関連処理の時間を短くすることができる。
【0117】
なお、PLC1は、図示していないが、
図15に示す処理と並列して計測不能であるか否かの判断処理、つまり、変位センサ7のセンサ状態がFALSE状態であるか否かの判断処理を実行している。そのため、PLC1は、
図15に示す処理のいずれの処理を実行していても、計測不能であるか否かの判断処理を行うことが可能となる。当該判断処理は、プライマリ定周期タスクごとに実行される。
【0118】
該判断処理により、計測不能であると判断された場合には、非計測状態になるとともに、非計測状態であるときの処理が実行される。
図16は、非計測状態であるときに実行される処理のフローチャートを説明するための図である。S12において、PLC1は、計測動作を停止する。ここで、計測動作の停止とは、ステージ制御の停止と、変位センサ7の動作の停止とを含む。ここで、ステージ制御を停止するとは、PLC1が、ステージ31の移動を停止させるように駆動装置30を制御することである。これにより、対象物AのX方向への移動は停止する。また、変位センサ7の動作の停止とは、PLC1が、変位センサ7の動作を停止させるように、駆動装置40を制御することである。計測動作の停止により、たとえば、ステージ制御の停止処理と、変位センサ7の動作の停止処理とが同時に開始される。
【0119】
計測動作の停止処理が終了した後は、S14において、PLC1は、変位センサ7を上昇させることにより、該変位センサ7を退避位置に移動させる(
図12(b)の制御(e)も参照)。ここで、変位センサ7を上昇させるとは、PLC1が、変位センサ7を上昇させるように駆動装置40を制御することである。
【0120】
また、S12においてステージ制御が停止した時点で、変位センサ7のX軸の位置が、計測不能が検知された取得位置よりも進んでいる(ずれている)場合がある。そこで、S14の処理が終了した後は、次のS16において、PLC1は、変位センサ7のX軸の位置が計測不能となった取得位置になるようにステージ31を制御する(ステージ31を戻す)。たとえば、
図8の(e)の取得位置で計測不能と判断された場合には、PLC1は、変位センサ7のX軸の位置が(e)の取得位置となるように該ステージ31を戻す。
【0121】
S16の処理が終了すると、S18において、PLC1は、変位センサ7を下降させる。ここで、変位センサ7を下降させる処理は、サーフェスサーチ制御の計測位置決め処理(
図12(a)の制御(b)参照)と同一である。次に、S20において、S18の処理が開始されたときから該変位センサ7が所定位置(たとえば、最下点)に到達するまでの下降期間において、計測状態になったか否か、つまり、変位センサ7のセンサ状態がFALSE状態とはならなくなったか否かの判断処理が実行される。この場合の判断処理も、プライマリ定周期タスクごとに実行される。つまり、該判断処理は、下降期間中において、プライマリ定周期タスクごとに実行される。本実施の形態では、非計測状態であるときにおいては、下降期間以外では、該判断処理は実行されない。なお、変形例として、非計測状態であるときにおいては、下降期間以外のときでもPLC1は、該判断処理を実行するようにしてもよい。
【0122】
S20において、NOと判断された場合には、S22に進み、YESと判断された場合には、S30に進む。S22において、PLC1の線計測データ取得部は、対象物Aの高さ(1次元情報)として暫定値を設定する(取得する)。ここで、暫定値とは、
図17で説明するように、∞である。次にS24において、PLC1は、取得位置を更新する。S24の処理は、S10の処理と同一である。次に、S26において、PLC1は、変位センサ7を上昇させる。S26の処理は、S14の処理と同一である。次に、S28において、PLC1はステージ31を次の取得位置まで移動させる。S28の処理は、S10の処理と同一である。S28の処理が終了後、S18に戻る。
【0123】
また、S30において、PLC1は、変位センサ7の計測情報が0(ゼロ)となる高さに変位センサ7を移動させる。この移動処理は、サーフェスサーチの処理と同一である。該移動処理が終了すると、
図15に示す計測状態の処理に戻る。
【0124】
なお、本実施の形態では、
図14〜
図16の処理は、倣い制御の際に実行されるとして説明したが、
図14〜
図16の処理を他の制御に際に実行するようにしてもよい。
【0125】
以下では、対象物の表面が粗い対象物や、対象物が極端に高い箇所を有する対象物を「特殊な形状の対象物」という。このように、
図14〜
図16の例では、PLC1は、変位センサ7のX軸の位置が取得位置になる度に、線計測データを取得する取得処理を実行する(線計測データを読み出す、
図15のS8)。また、計測不能となったときには、該計測不能となった取得位置まで戻した後に(
図16のS16)、再び取得処理を実行する(
図16に示すS18、S20参照)。したがって、本実施の形態のPLCシステムSYSは、特殊な形状である対象物において、計測不能が検知されても、該計測不能と検知された箇所について、計測(取得処理)が再び実行される。したがって、該特殊な形状である対象物の形状を計測する場合に、計測不能と判断されることを極力防止できることから、形状を測定する対象物の制限を緩和できる。
【0126】
また、計測不能が検知された場合には、PLC1は、変位センサ7をZ軸方向において移動させる距離を特定できない。したがって、PLC1は、適切に倣い制御を実行できないことから、変位センサ7は対象物と衝突する場合がある。そこで、本実施の形態のPLC1は、計測不能が検知された場合に、ステージを制御する前に、変位センサ7を退避位置に退避させる(
図16のS14およびS26)。したがって、計測不能が検知された場合であっても、変位センサ7と対象物とが衝突することを防止できる。
【0127】
ところで、1の取得位置で取得処理を実行したが計測不能と判断された場合において、該1の取得位置において計測不能が検知されなくなるまで(計測データの取得に成功するまで)、該1の取得位置で取得処理を繰り替えすPLC(以下、「比較対象のPLC」という。)を構成することも考えられる。一方、本実施の形態のPLC1は、S16、S18、S20などに示すように、再び実行された取得処理においても計測不能が検知された場合には(S20のNO)、次の取得位置にステージ31を進ませて(S28)、取得処理を実行する(S20、およびS30など)。したがって、本実施の形態のPLCは、再び実行された取得処理において計測不能が検知された場合であっても、次の取得位置での取得処理が実行されることから、比較対象のPLCシステムと比較して、線計測データ取得部160による取得処理をスムーズに実行させることができる。
【0128】
図17は、計測不能が検知される部分(計測不能が検知された取得位置に対応する部分)を対象物が有する場合を説明するための図である。
図17(A)は、計測不能部分を示すものであり、該計測不能部分には、ハッチングが付されている。このような計測不能部分に対応する対象物Aの高さ(1次元情報)は、計測データとして取得される1次元情報(取得処理が成功したときに取得される1次元情報)とは異なる情報である。本実施の形態では、「計測データとして取得される1次元情報とは異なる情報」とは、たとえば、「∞」である。また、この情報は、
図16のS22で説明した暫定値である。
図17(B)に示すように、対象物において計測不能が検知される部分を有する対象物の計測データは、該計測不能部分の高さが突出したものとなる。
【0129】
このように、計測不能部分に対応する対象物Aの高さ(1次元情報)は、計測データとして取得される1次元情報とは異なる。したがって、2次元形状データ生成部170は、該計測不能部分を適切に認識することができる。また、2次元形状データ生成部170は、該計測不能部分については、
図9で説明した補間方法により補間する。なお、本実施の形態では、「計測データとして取得される1次元情報とは異なる情報」とは、「∞」としたが、他の値としてもよい。
【0130】
(変形例)
(1)本実施の形態に係るPLCシステムSYSでは、駆動装置30でステージ31をX方向に移動させ、駆動装置40で変位センサ7自体をZ方向に移動させることで変位センサ7と対象物Aとの相対的な位置を変化させると説明した。しかし、これに限定されず、PLCシステムSYSは、駆動装置30でステージ31をX方向およびZ方向に移動することで変位センサ7と対象物Aとの相対的な位置を変化させても、駆動装置40で変位センサ7自体をX方向およびZ方向に移動することで変位センサ7と対象物Aとの相対的な位置を変化させてもよい。
【0131】
(2)本実施の形態に係るPLCシステムSYSでは、駆動装置30でステージ31をX方向に移動させて2次元形状データを生成している。しかし、これに限定されず、PLCシステムSYSは、駆動装置30でステージ31をX方向およびY方向に移動させて3次元形状データを生成してもよい。もちろん、PLCシステムSYSは、駆動装置30でステージ31をX方向に移動させ、駆動装置40で変位センサ7自体をY方向およびZ方向に移動させて3次元形状データを生成してもよい。
【0132】
(3)本実施の形態に係るPLCシステムSYSでは、計測装置20に1つの変位センサ7を設け、2次元形状データを生成している。しかし、これに限定されず、PLCシステムSYSは、計測装置20に複数の変位センサ7を設け、2次元形状データを生成してもよい。PLCシステムSYSは、複数の変位センサ7を設けることで、線計測データを速く取得することができ2次元形状データの生成までの時間を短縮できる。
【0133】
(4)本実施の形態に係るPLCシステムSYSでは、変位センサ7が白色共焦点を用いた非接触式の変位センサであると説明したが、他の方式の非接触式の変位センサ、ダイヤルゲージや差動トランスなどを用いる接触式の変位センサであっても同様の構成を採用することができ、同様の効果を奏することができる。
【0134】
(5)また、PLC1(たとえば、線計測データ取得部160)は、取得処理が失敗した回数を計数し、該計数された回数が予め定められた回数Pに到達した場合には、エラー処理を実行するようにしてもよい。ここで、エラー処理は、PLC1の制御を停止させる処理と、エラー報知処理とを含む。エラー報知処理は、たとえば、所定の表示部(たとえば、プログラマブル表示器300)にエラーである旨の情報を報知する処理と、所定の音出力部(たとえば、プログラマブル表示器300のスピーカ)からエラー音を出力する処理とのうちの少なくとも1つを含む。このようなエラー処理を実行することにより、取得処理が失敗した回数が予め定められた回数Pに到達したことをユーザに認識させることができる。
【0135】
また、取得処理が失敗した回数は、「1の対象物における線計測データ取得部160の取得処理が失敗した回数」としてもよい。この場合において、予め定められた回数Pの好ましい値について説明する。1の対象物において、取得処理が失敗した回数がP−1以下である場合には、エラー処理が実行されずに、取得処理が失敗した箇所の1次元情報については∞となる一方、取得処理が成功した箇所については適式な線形データが生成される。このような線形データが生成されたとしても、2次元形状データ生成部170が正確な形状データを生成できる程度に、予め定められた回数Pは定められることが好ましい。
【0136】
また、本実施の形態に係るPLCシステムSYSでは、計測不能と判断された取得位置において、再計測が実行される回数は、1回であるとして説明した。しかしながら、再計測が実行される回数は、2回以上としてもよい。このような構成によれば、再計測が実行される回数が1回であるPLCシステムよりも、計測不能と判断されることを極力防止できる。このような構成を採用している場合において、予め定められた回数Pは、「1の取得位置における線計測データ取得部160の取得処理が失敗した回数」としてもよい。
【0137】
(6)また、本実施の形態では、
図16のS14とS16に示すように、変位センサ7の退避が終了した後に、ステージ31を計測不能となった取得位置まで戻すとして説明した。しかしながら、変位センサの退避と並行して、ステージ31を計測不能となった取得位置まで戻す処理を実行するようにしてもよい。たとえば、変位センサの退避処理と、ステージ31を計測不能となった取得位置まで戻す処理とを同時に開始するようにしてもよい。このような構成によれば、変位センサ7の退避処理と、ステージ31を計測不能となった取得位置まで戻す処理とを別の期間で実行する構成と比較して、1の対象物に対する線計測データ取得部160による取得処理の処理時間(たとえば、合計時間)を短縮することができる。
【0138】
(7)また、本実施の形態では、
図16に示すように、ある取得位置で、計測不能が検知された場合には、該取得位置において再計測を行う、として説明した。しかしながら、ある取得位置で、計測不能が検知された場合には、再計測を行わずに、次の取得位置に進んで、計測を行うようにしてもよい。ステージを戻す処理(
図16のS18)を省略できることから、処理量を削減できるとともに、1の対象物における線形データを生成する処理時間を短縮できる。
【0139】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。