(57)【要約】【課題】  波形データや画像データのような大容量データを短い時間で（例えば速い周期で）伝送し、伝送されたデータを用いて様々な連携動作を行うことを可能とするセンサコントローラを提供する。【解決手段】  プログラム可能な論理回路とセンサコントローラの動作を制御するＣＰＵとを有する制御部と、他のセンサコントローラとの接続に用いることのできるユニット間コネクタと、制御部とユニット間コネクタとの間の信号伝送経路であって、プログラム可能な論理回路とユニット間コネクタとの間に設けられたセンシングデータ伝送経路を含むユニット間経路とを備える。ユニット間コネクタに他のセンサコントローラが接続されたときに、プログラム可能な論理回路と当該他のセンサコントローラのプログラム可能な論理回路との間でセンシングデータの伝送を行うことができる。【選択図】  図４
2006190316.tif 000002
【特許請求の範囲】
【請求項１】
１つのユニットとして構成されたセンサコントローラであって、
プログラム可能な論理回路とセンサコントローラの動作を制御するＣＰＵとを有する制御部と、
他のセンサコントローラとの接続に用いることのできるユニット間コネクタと、
制御部とユニット間コネクタとの間の信号伝送経路であって、プログラム可能な論理回路とユニット間コネクタとの間に設けられたセンシングデータ伝送経路を含むユニット間経路と、を備え、
それにより、ユニット間コネクタに他のセンサコントローラが接続されたときに、プログラム可能な論理回路と当該他のセンサコントローラのプログラム可能な論理回路との間でセンシングデータの伝送を行うことができるようにした、センサコントローラ。
【請求項２】
ユニット間コネクタは、第１ユニット間コネクタ及び第２ユニット間コネクタからなり、
ユニット間経路は、第１ユニット間コネクタに接続する第１ユニット間経路と第２ユニット間コネクタに接続する第２ユニット間経路とからなり、
第１ユニット間経路に含まれるセンシングデータ伝送経路と第２ユニット間経路に含まれるセンシングデータ伝送経路とは、プログラム可能な論理回路の外部において互いに分離している、請求項１に記載のセンサコントローラ。
【請求項３】
センシングデータを対象とした処理内容が変化するように、プログラム可能な論理回路の回路データの少なくとも一部を変更する手段又はプログラム可能な論理回路に設定するパラメータを変更する手段を備える、請求項１又は２に記載のセンサコントローラ。
【請求項４】
第１クロック信号を出力する発振器と、
ユニット間コネクタから入力される第２クロック信号を伝送するクロック経路と、
第１クロック信号及び第２クロック信号のいずれかを選択してプログラム可能な論理回路に与えるクロック切替回路と、
をさらに備える、請求項１に記載のセンサコントローラ。
【請求項５】
第１クロック信号を出力する発振器と、
第１ユニット間コネクタから入力される第２クロック信号を伝送する第１クロック経路と、
第１クロック信号及び第２クロック信号のいずれかを選択してプログラム可能な論理回路に与えるクロック切替回路と、
選択されたクロック信号を第２ユニット間コネクタに出力するための第２クロック経路と、
をさらに備える、請求項２に記載のセンサコントローラ。
【請求項６】
ユニット間経路中に、ＣＰＵと接続されるデータ伝送経路をさらに備え、
それにより、ユニット間コネクタに他のセンサコントローラが接続されたときに、ＣＰＵと当該他のセンサコントローラのＣＰＵとの間でデータ伝送を行うことができるようにした、請求項１又は２に記載のセンサコントローラ。
【請求項７】
センサヘッドとの接続に用いることのできるセンサヘッド接続部と、
プログラム可能な論理回路とセンサヘッド接続部との間を繋いでセンシングデータを伝送するセンサヘッド経路と、
をさらに備える、請求項１又は２に記載のセンサコントローラ。
【請求項８】
プログラム可能な論理回路にプログラムされる回路は、
ユニット間経路又はセンサヘッド経路を経由して取得されたセンシングデータを対象として演算処理を行うための演算処理回路と、
ユニット間経路及びセンサヘッド経路のいずれかを選択的に演算処理回路に接続するデータ経路切替回路と、
を含む、請求項７に記載のセンサコントローラ。
【請求項９】
プログラム可能な論理回路にプログラムされる回路は、
ユニット間経路を経由して取得されたセンシングデータを対象として演算処理を行うための演算処理回路を含み、
それにより、ユニット間コネクタに他のセンサコントローラが接続されたときに、当該他のセンサコントローラから取得したセンシングデータを対象に演算処理を行うことができるようにした、請求項１又は２に記載のセンサコントローラ。
【請求項１０】
プログラム可能な論理回路には記憶手段が接続されており、
プログラム可能な論理回路にプログラムされる回路は、ユニット間経路を経由して取得されたセンシングデータを前記記憶手段に格納するためのデータ経路を含み、
それにより、ユニット間コネクタに他のセンサコントローラが接続されたときに、当該他のセンサコントローラから取得したセンシングデータを記憶することができるようにした、請求項１又は２に記載のセンサコントローラ。
【請求項１１】
それぞれ１つのユニットとして構成された複数のセンサコントローラが直列に接続されたセンシングシステムであって、
各センサコントローラは、
プログラム可能な論理回路とセンサコントローラの動作を制御するＣＰＵとを有する制御部と、
他のセンサコントローラとの接続に用いることのできるユニット間コネクタと、
制御部とユニット間コネクタとの間の信号伝送経路であって、プログラム可能な論理回路とユニット間コネクタとの間に設けられたセンシングデータ伝送経路を含むユニット間経路と、を備え、
それにより、ユニット間コネクタに他のセンサコントローラが接続されたときに、プログラム可能な論理回路と当該他のセンサコントローラのプログラム可能な論理回路との間でセンシングデータの伝送を行うことができるようにしたものであり、
少なくとも１つのセンサコントローラは、
センサヘッドとの接続に用いることのできるセンサヘッド接続部と、プログラム可能な論理回路とセンサヘッド接続部との間を繋いでセンシングデータを伝送するセンサヘッド経路と、をさらに備え、そのセンサコントローラの少なくとも１つにはセンサヘッドが接続されており、
センサヘッドが接続されたセンサコントローラの内の１台である第１のセンサコントローラから、他のセンサコントローラの内の１台である第２のセンサコントローラにセンシングデータが伝送される、センシングシステム。
【請求項１２】
各センサコントローラのユニット間コネクタは、第１ユニット間コネクタ及び第２ユニット間コネクタからなり、
各センサコントローラのユニット間経路は、第１ユニット間コネクタに接続する第１ユニット間経路と第２ユニット間コネクタに接続する第２ユニット間経路とからなり、
第１ユニット間経路に含まれるセンシングデータ伝送経路と第２ユニット間経路に含まれるセンシングデータ伝送経路とは、プログラム可能な論理回路の外部において互いに分離している、請求項１１に記載のセンシングシステム。
【請求項１３】
第１のセンサコントローラから第２のセンサコントローラに伝送されるセンシングデータは、第１のセンサコントローラに接続されたセンサヘッドから出力されたセンシングデータである、請求項１１又は１２に記載のセンシングシステム。
【請求項１４】
第１のセンサコントローラは、センサヘッドとの接続に用いることのできるセンサヘッド接続部と、プログラム可能な論理回路とセンサヘッド接続部との間を繋いでセンシングデータを伝送するセンサヘッド経路とをさらに備え、プログラム可能な論理回路の中に、センシングデータを対象として演算処理を行うための演算処理回路と、センサヘッド経路を経由して取得されたセンシングデータを演算処理回路及びユニット間経路に分岐させて与えるデータ経路とを含むセンサコントローラであり、
第２のセンサコントローラのプログラム可能な論理回路にプログラムされる回路は、ユニット間経路を経由して取得されたセンシングデータを対象として演算処理を行うための演算処理回路を含み、
それにより、同一のセンシングデータを対象に並列に演算処理できるようにした請求項１３に記載のセンシングシステム。
【請求項１５】
第１のセンサコントローラは、センサヘッドとの接続に用いることのできるセンサヘッド接続部と、プログラム可能な論理回路とセンサヘッド接続部との間を繋いでセンシングデータを伝送するセンサヘッド経路とをさらに備え、プログラム可能な論理回路の中に、センシングデータを対象とした演算処理を行うための演算処理回路を含むセンサコントローラであり、
第１のセンサコントローラから第２のセンサコントローラに伝送されるセンシングデータは、第１のセンサコントローラに接続されたセンサヘッドから出力されたセンシングデータを、第１のセンサコントローラが演算処理した結果であるセンシングデータである、請求項１１又は１２に記載のセンシングシステム。
【請求項１６】
第２のセンサコントローラのプログラム可能な論理回路にプログラムされる回路は、ユニット間経路を経由して取得されたセンシングデータを対象として演算処理を行うための演算処理回路を含むものである、請求項１１又は１２に記載のセンシングシステム。
【請求項１７】
第２のセンサコントローラのプログラム可能な論理回路には記憶手段が接続されており、第２のセンサコントローラのプログラム可能な論理回路にプログラムされる回路はユニット間経路を経由して取得されたセンシングデータを前記記憶手段に格納するためのデータ経路を含むものである、請求項１１又は１２に記載のセンシングシステム。
【請求項１８】
センシングシステム中の少なくとも１つのセンサコントローラは、クロック信号を出力する発振器と、ユニット間経路中のクロック信号の伝送経路とを備え、クロック信号をプログラム可能な論理回路とユニット間経路中のクロック信号の伝送経路とに対して同時に出力可能とされ、
センシングシステム中の他のすべてのセンサコントローラは、ユニット間経路中にプログラム可能な論理回路に接続し得るクロック信号の伝送経路を備え、
それにより、センシングシステム中のすべてのセンサコントローラが共通のクロック信号によりプログラム可能な論理回路を駆動することができるようにした、請求項１１又は１２に記載のセンシングシステム。
【請求項１９】
センシングシステム中のすべてのセンサコントローラは、
第１クロック信号を出力する発振器と、第１ユニット間コネクタから入力される第２クロック信号を伝送する第１クロック経路と、第１クロック信号及び第２クロック信号のいずれかを選択してプログラム可能な論理回路に与えるクロック切替回路と、選択されたクロック信号を第２ユニット間コネクタに出力するための第２クロック経路と、をさらに備え、
センサコントローラの列の端に位置して第２ユニット間コネクタにのみ他のセンサコントローラが接続されているセンサコントローラにおいては、クロック切替回路が第１クロック信号を選択し、他のすべてのセンサコントローラにおいては、クロック切替回路が第２クロック信号を選択することにより、センシングシステム中のすべてのセンサコントローラが共通のクロック信号によりプログラム可能な論理回路を駆動することができるようにした、請求項１２に記載のセンシングシステム。
【請求項２０】
センシングシステム中のすべてのセンサコントローラは、
ユニット間経路中に、ＣＰＵと接続されるデータ伝送経路を備え、
それにより、直接接続されたセンサコントローラのＣＰＵ同士の間でデータ伝送を行うことができるようにした、請求項１１又は１２に記載のセンシングシステム。
【請求項２１】
それぞれ１つのユニットとして構成された複数のセンサコントローラが直列に接続されたセンシングシステムであって、
各センサコントローラは、
プログラム可能な論理回路とセンサコントローラの動作を制御するＣＰＵとを有する制御部と、
他のセンサコントローラとの接続に用いることのできるユニット間コネクタと、
制御部とユニット間コネクタとの間の信号伝送経路であって、プログラム可能な論理回路とユニット間コネクタとの間に設けられたセンシングデータ伝送経路を含むユニット間経路と、を備え、
それにより、ユニット間コネクタに他のセンサコントローラが接続されたときに、プログラム可能な論理回路と当該他のセンサコントローラのプログラム可能な論理回路との間でセンシングデータの伝送を行うことができるようにしたものであり、
少なくとも１つのセンサコントローラは、
センサヘッドとの接続に用いることのできるセンサヘッド接続部と、プログラム可能な論理回路とセンサヘッド接続部との間を繋いでセンシングデータを伝送するセンサヘッド経路と、をさらに備え、そのセンサコントローラの少なくとも１つにはセンサヘッドが接続されており、
各センサコントローラの前記制御部は、トリガ信号が与えられることによりいずれかのセンサヘッドから出力されたセンシングデータを対象としたセンシング処理を行い、センシング処理が完了したときに処理完了状態となり、センシング対象についての判定結果が特定の結果であるときに特定判定状態となるものであり、
各センサコントローラは、処理完了状態であるかどうか及び特定判定状態であるかどうかに関連する信号を接続された他のセンサコントローラとの間で送信及び／又は受信することが可能であり、
それにより、少なくとも１つの特定センサコントローラは、すべてのセンサコントローラが処理完了状態であること及びすべてのセンサコントローラが特定判定状態であることを検出可能にされており、
前記特定センサコントローラは、前記検出がされたときに、統合判定信号を出力するものである、センシングシステム。
【請求項２２】
前記トリガ信号は、センシングシステムの外部からセンサコントローラの１つに入力され、そのセンサコントローラからユニット間コネクタを経由して他の各センサコントローラに入力される、請求項２１に記載のセンシングシステム。
【請求項２３】
前記センシングシステムは、センサコントローラの列の第１の端に位置するセンサコントローラと、第２の端に位置し統合判定信号を出力する特定センサコントローラとを含み、
第１の端に位置するセンサコントローラは、第２の端側に接続されているセンサコントローラに対し、処理完了状態であるときに完了信号を出力し、特定判定状態であるときに特定判定信号を出力するものであり、
センサコントローラの列の第２の端に位置する特定センサコントローラは、第１の端側に接続されているセンサコントローラから完了信号を入力すること、自ユニットが処理完了状態であること、第１の端側に接続されているセンサコントローラから特定判定信号を入力すること、及び自ユニットが特定判定状態であることを条件として、統合判定信号を出力するものである、請求項２１又は２２に記載のセンシングシステム。
【請求項２４】
前記センシングシステムは、さらにセンサコントローラの列の第１の端及び第２の端以外に位置するセンサコントローラを含み、
第１の端及び第２の端以外に位置するセンサコントローラは、第１の端側に接続されているセンサコントローラから完了信号を入力し、かつ、自ユニットが処理完了状態であるときに、第２の端側に接続されているセンサコントローラに完了信号を出力するとともに、第１の端側に接続されているセンサコントローラから特定判定信号を入力し、かつ、自ユニットが特定判定状態であるときに、第２の端側に接続されているセンサコントローラに特定判定信号を出力するものである、請求項２３に記載のセンシングシステム。
【請求項２５】
前記センシングシステムは、センサコントローラの列の第１の端に位置するセンサコントローラと、第２の端に位置し統合判定信号を出力する特定センサコントローラと、第１の端及び第２の端以外に位置するセンサコントローラとを含み、
第１の端に位置するセンサコントローラは、第２の端側に接続されているセンサコントローラに対し、特定判定状態であるときに特定判定信号を出力し、処理完了状態であるときに完了信号を出力するものであり、
センサコントローラ列の第１の端及び第２の端以外に位置するセンサコントローラは、第１の端側に接続されているセンサコントローラから完了信号を入力し、かつ、自ユニットが処理完了状態であるときに、第２の端側に接続されているセンサコントローラに完了信号を出力するとともに、第１の端側に接続されているセンサコントローラから入力した１又は複数の特定判定信号を第２の端側に接続されているセンサコントローラに中継して出力し、それと並列に、自ユニットが特定判定状態であるときに第２の端側に接続されているセンサコントローラに特定判定信号を出力するものであり、
センサコントローラの列の第２の端に位置する特定センサコントローラは、第１の端側に接続されているセンサコントローラから完了信号を入力すること、自ユニットが処理完了状態であること、第１の端側に接続されているセンサコントローラから自ユニット以外のすべてのセンサコントローラについての特定判定信号を入力すること、及び自ユニットが特定判定状態であること、を条件として統合判定信号を出力するものである、請求項２１又は２２に記載のセンシングシステム。
【請求項２６】
前記制御部は、トリガ信号が与えられることによりセンシング処理を行い、センシング処理が完了したときに処理完了状態となり、センシング対象についての判定結果が特定の結果であるときに特定判定状態となるものであり、
さらに、前記制御部は、第１ユニット間コネクタを介して他のセンサコントローラが処理完了状態であることを表す完了信号を入力すること、自ユニットが処理完了状態であること、第１ユニット間コネクタを介して他のセンサコントローラが特定判定状態であることを表す特定判定信号を入力すること、及び自ユニットが特定判定状態であること、を条件として統合判定信号を出力する処理を行うものである、又は制御部にそのような処理を行わせるように設定するための手段を備える、請求項２に記載のセンサコントローラ。
【請求項２７】
前記制御部は、トリガ信号が与えられることによりセンシング処理を行い、センシング処理が完了したときに処理完了状態となり、センシング対象についての判定結果が特定の結果であるときに特定判定状態となるものであり、
さらに、前記制御部は、第１ユニット間コネクタを介して第１完了信号を入力すること及び自ユニットが処理完了状態であることを条件として、第２ユニット間コネクタを介して第２完了信号を出力し、
さらに、前記制御部は、第１ユニット間コネクタを介して第１特定判定信号を入力すること及び自ユニットが特定判定状態であることを条件として、第２ユニット間コネクタを介して第２特定判定信号を出力する処理を行うものである、又は制御部にそのような処理を行わせるように設定するための手段を備える、請求項２に記載のセンサコントローラ。
【請求項２８】
前記制御部は、トリガ信号が与えられることによりセンシング処理を行い、センシング処理が完了したときに処理完了状態となり、センシング対象についての判定結果が特定の結果であるときに特定判定状態となるものであり、
さらに、前記制御部は、処理完了状態であるときに、第２ユニット間コネクタを介して完了信号を出力し、
さらに、前記制御部は、特定判定状態であるときに、第２ユニット間コネクタを介して特定判定信号を出力する処理を行うものである、又は制御部にそのような処理を行わせるように設定するための手段を備える、請求項２に記載のセンサコントローラ。
【請求項２９】
センサコントローラは、外部からユニット間コネクタを介さずに外部トリガ信号を入力可能とされ、かつ、ユニット間コネクタを介してユニット間トリガ信号を入力可能とされたものであり、
外部トリガ信号及びユニット間トリガ信号のいずれかを選択し、選択したトリガ信号に基づき、前記制御部に内部トリガ信号を出力するトリガ制御回路をさらに備えた、請求項２６から２８のいずれかに記載のセンサコントローラ。
【請求項３０】
センサコントローラの内部に、一方のユニット間コネクタに入力されたユニット間トリガ信号を他方のユニット間コネクタに伝送する信号経路が設けられている、請求項２９に記載のセンサコントローラ。
【請求項３１】
トリガ制御回路は、さらに、外部トリガ信号を選択したときには、外部トリガ信号に基づきユニット間トリガ信号を出力するものである、請求項２９に記載のセンサコントローラ。
【請求項３２】
前記制御部は、トリガ信号が与えられることによりセンシング処理を行い、センシング対象についての判定結果が特定の結果であるときに特定判定状態となるものであり、
さらに、前記制御部は、第１ユニット間コネクタを介して第１特定判定信号を入力すること及び自ユニットが特定判定状態であることを条件として、第２ユニット間コネクタを介して第２特定判定信号を出力する処理を行うものである、又は制御部にそのような処理を行わせるように設定するための手段を備える、請求項２に記載のセンサコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像データや波形データ等といった大容量データを取り扱うセンシングシステムの構築に好適なセンサコントローラに関する。
【背景技術】
【０００２】
２次元撮像素子を用いた変位センサとしては、信号処理ユニットとセンサヘッドユニットとが分離独立したものが知られている（特許文献１参照）。センサヘッドには投光用のレーザダイオードと受光用のＣＣＤとが含まれている。ＣＣＤから得られる信号に基づいて生成された映像信号は電気コードを介して信号処理ユニットへと送られる。信号処理ユニットはマイクロプロセッサを主体として構成されるＣＰＵとプログラム可能な論理回路であるＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）とを含んでいる。ＣＰＵは主として計測処理や表示制御処理を担う。ＦＰＧＡは主として画像処理を担う。
【０００３】
ＰＳＤ（位置検出素子）を用いた変位センサとしては、信号処理部と検出部とが分離独立したものが知られている（特許文献２参照）。検出部は投光用の光源と受光用のＰＳＤとを含んでいる。ＰＳＤからはアナログ検出信号が出力される。このアナログ検出信号は、電気コードを介して、信号処理部へと送られる。信号処理部の中枢は、マイクロプロセッサを主体としたＣＰＵにより構成されている。ＣＰＵは、検出部から送られてくるアナログ検出信号に基づいて距離を算出する。信号処理部同士は、隣接状態において、中継ユニットを介してコネクタ接続される。信号処理部は、自己が算出した距離データを、隣接する信号処理部へと、コネクタを介して伝送する。隣接する信号処理部は、送られてきた距離データと自己が算出した距離データとを用いて段差距離等を演算する。
【特許文献１】特開２００２−３５７４０８（特に図４）
【特許文献２】特開２００２−２８６４１３
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載の変位センサにあっては、信号処理ユニットにＦＰＧＡが含まれているため、高度な画像処理も行うことができる。しかし、隣接する信号処理ユニット間におけるデータ伝送の機能は存在しない。そのため、複数のセンサヘッド又は信号処理ユニットの相互連携動作を行うことはできない。
【０００５】
特許文献２に記載の変位センサにあっては、隣接信号処理部間におけるデータ伝送機能は有するが、これはＣＰＵ間通信であるため、伝送容量が限られる。検出周期に合わせるなどのために速い周期でデータ伝送したい場合に、距離の算出データのような演算結果の値は送れるが、データ量の多い波形データや画像データを送ることはできない。
【０００６】
この発明は、このような従来の問題点に着目してなされたものであり、その目的とするところは、他のセンサコントローラとの間で波形データや画像データのような大容量データを短い時間で（例えば速い周期で）相互に伝送し、伝送されたデータを用いて様々な連携動作を行うことができるようにしたセンサコントローラ（例えば、センサの信号処理ユニット）を提供することにある。
【課題を解決するための手段】
【０００７】
本発明のセンサコントローラは、１つのユニットとして構成される。このセンサコントローラには、プログラム可能な論理回路とセンサコントローラの動作を制御するＣＰＵとを有する制御部と、他のセンサコントローラとの接続に用いることのできるユニット間コネクタと、制御部とユニット間コネクタとの間の信号伝送経路であって、プログラム可能な論理回路とユニット間コネクタとの間に設けられたセンシングデータ伝送経路を含むユニット間経路と、を備えている。
【０００８】
それにより、ユニット間コネクタに他のセンサコントローラが接続されたときに、プログラム可能な論理回路と当該他のセンサコントローラのプログラム可能な論理回路との間でセンシングデータの伝送を行うことができるようにされている。
【０００９】
このような構成によれば、他のセンサコントローラとの間でセンシングデータの伝送を高速に行うことが容易となる。また、制御部にはプログラム可能な論理回路が含まれていることから、開発過程におけるハードウェア構成の変更が少なくて済み、センサコントローラのメーカにとって開発（試作、設計変更）が容易となる。また、メーカにとっては、機能（特に、ハードウェア処理に依存する機能）の異なるシリーズ製品の品揃えを容易にするプラットフォームが提供される。
【００１０】
ここで、この明細書における『プログラム可能な論理回路』は、ハードウェア回路をプログラムすることのできる集積回路である。集積回路の中に回路をプログラムすることのできる部分と回路が固定的に形成されている部分とがある場合には、回路をプログラムすることのできる部分がプログラム可能な論理回路である。プログラム可能な論理回路は、複数の集積回路によって構成してもよい。ハードウェア回路をプログラムすることのできる集積回路は、ＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、ＣＰＬＤ（Ｃｏｍｐｌｅｘ  ＰＬＤ）等の名称で市場に提供されており、いずれも本発明に用いることができる。これらの集積回路の一例は、積和回路、ルックアップテーブル、フリップフロップ、メモリ、配線ライン、配線間のスイッチ等の回路要素を組み合わせることにより、デバイス間の接続、データ通信、シグナルプロセッシング、データ表示、タイミングとコントロール操作、その他通常、システムに含まれる機能の殆ど全てを実行するようにプログラムすることができるものである。
【００１１】
この明細書における『センシングデータ』は、一般にセンサヘッドが出力する映像信号、電圧値、電圧波形のような生データと、生データを演算処理して得られた特徴量、判定結果のような加工済みデータとのいずれをも指す。
【００１２】
本発明のセンサコントローラのユニット間コネクタは、第１ユニット間コネクタ及び第２ユニット間コネクタからなるものとすることができる。また、ユニット間経路は、第１ユニット間コネクタに接続する第１ユニット間経路と第２ユニット間コネクタに接続する第２ユニット間経路とからなるものとすることができる。この場合に、第１ユニット間経路に含まれるセンシングデータ伝送経路と第２ユニット間経路に含まれるセンシングデータ伝送経路とは、プログラム可能な論理回路の外部において互いに分離しているようにすることができる。
【００１３】
このような構成によれば、必要に応じて第１ユニット間コネクタ側のセンシングデータの伝送と第２ユニット間コネクタ側のセンシングデータの伝送とを独立に行うことができる。
【００１４】
本発明のセンサコントローラは、センシングデータを対象とした処理内容が変化するように、プログラム可能な論理回路の回路データの少なくとも一部を変更する手段又はプログラム可能な論理回路に設定するパラメータを変更する手段を備えていてもよい。
【００１５】
このような構成によれば、センシング目的に応じてセンサコントローラのハードウェア処理に依存するセンシングデータの処理内容（特にはデータ伝送経路及び／又は演算処理内容）を変更することができる。特に、複数のセンサコントローラを連係して動作させるセンシングシステムを構築する場合に、少ない機種数のセンサコントローラで検出目的に応じた多様なセンシングシステムを構築することが可能となる。ユーザにとって、センサコントローラの機能の詳細を購入前に確定する必要がなく、試行錯誤しながらセンシングシステムの機能を最適化していくことが可能となる。
【００１６】
本発明のセンサコントローラは、第１クロック信号を出力する発振器と、ユニット間コネクタから入力される第２クロック信号を伝送するクロック経路と、第１クロック信号及び第２クロック信号のいずれかを選択してプログラム可能な論理回路に与えるクロック切替回路と、をさらに備えるものであってもよい。
【００１７】
このような構成によれば、プログラム可能な論理回路は、自ユニットの発振器が出力するクロック信号を用いて動作することが可能であり、接続された他のセンサコントローラから得られるクロック信号を用いて動作することも可能である。自ユニットの発振器が出力するクロック信号を用いて動作する場合のセンサコントローラは、他のセンサコントローラと接続せずに単体で動作することがきる。他のセンサコントローラから得られるクロック信号を用いる場合は、当該他のセンサコントローラとの間でプログラム可能な論理回路のクロックが同期しているので、センシングデータを高速に伝送することがいっそう容易になる。クロック切替回路をプログラム可能な論理回路の中に設け、選択したクロック信号をプログラム可能な論理回路の中の必要な部分に与えるようにしてもよい。
【００１８】
本発明のセンサコントローラは、第１ユニット間コネクタ及び第２ユニット間コネクタを備える場合において、第１クロック信号を出力する発振器と、第１ユニット間コネクタから入力される第２クロック信号を伝送する第１クロック経路と、第１クロック信号及び第２クロック信号のいずれかを選択してプログラム可能な論理回路に与えるクロック切替回路と、選択されたクロック信号を第２ユニット間コネクタに出力するための第２クロック経路と、をさらに備えるようにしてもよい。
【００１９】
このようなセンサコントローラを用いれば、３台以上のセンサコントローラが直列に接続されたセンシングシステムであって、すべてのセンサコントローラのプログラム可能な論理回路に共通のクロック信号が与えられるセンシングシステムを構築することができる。
【００２０】
本発明のセンサコントローラは、ユニット間経路中に、ＣＰＵと接続されるデータ伝送経路をさらに備え、それにより、ユニット間コネクタに他のセンサコントローラが接続されたときに、ＣＰＵと当該他のセンサコントローラのＣＰＵとの間でデータ伝送を行うことができるようにしてもよい。
【００２１】
このような構成によれば、プログラム可能な論理回路同士の間のデータ伝送経路とは別に、ＣＰＵ同士の間のデータ伝送経路を設けることにより、データ伝送についての役割分担が可能となる。
【００２２】
本発明のセンサコントローラは、センサヘッドとの接続に用いることのできるセンサヘッド接続部と、プログラム可能な論理回路とセンサヘッド接続部との間を繋いでセンシングデータを伝送するセンサヘッド経路と、をさらに備えていてもよい。
【００２３】
このような構成によれば、自ユニットに接続されるセンサヘッドから直接にデータを取得して、様々なセンシング動作を行うことができる。ここで、センサヘッド接続部は、センサヘッドコネクタとして構成することができる。センサヘッドコネクタは、センサコントローラのケースに固定して設けることができるし、センサコントローラのケースから引き出されたケーブルの先に設けることもできる。センサヘッドコネクタを設けずにセンサコントローラとセンサヘッドとをケーブルで直接接続する場合には、センサヘッド接続部は、センサコントローラとセンサヘッドとを繋ぐケーブルである。センサコントローラとセンサヘッドとが無線通信によって接続される場合には、センサヘッド接続部は、センサコントローラに設けられる無線通信の送受信部である。
【００２４】
このとき、プログラム可能な論理回路にプログラムされる回路としては、ユニット間経路又はセンサヘッド経路を経由して取得されたセンシングデータを対象として演算処理を行うための演算処理回路と、ユニット間経路及びセンサヘッド経路のいずれかを選択的に演算処理回路に接続するデータ経路切替回路と、を含んでいてもよい。
【００２５】
ここで、『プログラム可能な論理回路にプログラムされる回路』は、センサコントローラを起動していないときにもプログラム可能な論理回路にプログラムされた状態が維持されている回路と、センサコントローラが起動した後にセンサコントローラが有する記憶手段からプログラム可能な論理回路に回路データがロードされることによりプログラムされる回路との、両方を含む概念である。
【００２６】
本発明のセンサコントローラは、プログラム可能な論理回路にプログラムされる回路としては、ユニット間経路を経由して取得されたセンシングデータを対象として演算処理を行うための演算処理回路をさらに含み、それにより、ユニット間コネクタに他のセンサコントローラが接続されたときに、当該他のセンサコントローラから取得したセンシングデータを対象に演算処理を行うことができるようにしてもよい。
【００２７】
本発明のセンサコントローラは、プログラム可能な論理回路には記憶手段が接続されており、プログラム可能な論理回路にプログラムされる回路は、ユニット間経路を経由して取得されたセンシングデータを前記記憶手段に格納するためのデータ経路を含み、それにより、ユニット間コネクタに他のセンサコントローラが接続されたときに、当該他のセンサコントローラから取得したセンシングデータを記憶することができるようにしてもよい。
【００２８】
次に、本発明の第１のセンシングシステムは、それぞれ１つのユニットとして構成された複数のセンサコントローラが直列に接続されたものである。このセンシングシステムにおける各センサコントローラは、プログラム可能な論理回路とセンサコントローラの動作を制御するＣＰＵとを有する制御部と、他のセンサコントローラとの接続に用いることのできるユニット間コネクタと、制御部とユニット間コネクタとの間の信号伝送経路であって、プログラム可能な論理回路とユニット間コネクタとの間に設けられたセンシングデータ伝送経路を含むユニット間経路と、を備え、それにより、ユニット間コネクタに他のセンサコントローラが接続されたときに、プログラム可能な論理回路と当該他のセンサコントローラのプログラム可能な論理回路との間でセンシングデータの伝送を行うことができるようにしたものである。このセンシングシステムにおける少なくとも１つのセンサコントローラは、センサヘッドとの接続に用いることのできるセンサヘッド接続部と、プログラム可能な論理回路とセンサヘッド接続部との間を繋いでセンシングデータを伝送するセンサヘッド経路と、をさらに備え、そのセンサコントローラの少なくとも１つにはセンサヘッドが接続される。このセンシングシステムは、センサヘッドが接続されたセンサコントローラの内の１台である第１のセンサコントローラから、他のセンサコントローラの内の１台である第２のセンサコントローラにセンシングデータが伝送されるものである。
【００２９】
第１のセンシングシステムにおいて、各センサコントローラのユニット間コネクタは、第１ユニット間コネクタ及び第２ユニット間コネクタからなるものとすることができる。また、各センサコントローラのユニット間経路は、第１ユニット間コネクタに接続する第１ユニット間経路と第２ユニット間コネクタに接続する第２ユニット間経路とからなるものとすることができる。この場合に、第１ユニット間経路に含まれるセンシングデータ伝送経路と第２ユニット間経路に含まれるセンシングデータ伝送経路とは、プログラム可能な論理回路の外部において互いに分離しているようにすることができる。
【００３０】
第１のセンシングシステムにおいて、第１のセンサコントローラから第２のセンサコントローラに伝送されるセンシングデータは、第１のセンサコントローラに接続されたセンサヘッドから出力されるセンシングデータであってもよい。
【００３１】
さらに、第１のセンサコントローラは、センサヘッドとの接続に用いることのできるセンサヘッド接続部と、プログラム可能な論理回路とセンサヘッド接続部との間を繋いでセンシングデータを伝送するセンサヘッド経路とをさらに備え、プログラム可能な論理回路の中に、センシングデータを対象として演算処理を行うための演算処理回路と、センサヘッド経路を経由して取得されたセンシングデータを演算処理回路及びユニット間経路に分岐させて与えるデータ経路とを含むセンサコントローラであり、第２のセンサコントローラのプログラム可能な論理回路にプログラムされる回路は、ユニット間経路を経由して取得されたセンシングデータを対象として演算処理を行うための演算処理回路を含み、それにより、センシングシステムは同一のセンシングデータを対象に並列に演算処理することができるようにしてもよい。
【００３２】
第１のセンシングシステムにおいて、第１のセンサコントローラは、センサヘッドとの接続に用いることのできるセンサヘッド接続部と、プログラム可能な論理回路とセンサヘッド接続部との間を繋いでセンシングデータを伝送するセンサヘッド経路とをさらに備え、プログラム可能な論理回路の中に、センシングデータを対象とした演算処理を行うための演算処理回路を含むセンサコントローラであり、第１のセンサコントローラから第２のセンサコントローラに伝送されるセンシングデータは、第１のセンサコントローラに接続されたセンサヘッドから出力されたセンシングデータを、第１のセンサコントローラが演算処理した結果であるセンシングデータであってもよい。
【００３３】
第１のセンシングシステムにおいて、第２のセンサコントローラのプログラム可能な論理回路にプログラムされる回路は、ユニット間経路を経由して取得されたセンシングデータを対象として演算処理を行うための演算処理回路を含むものであってもよい。
【００３４】
第１のセンシングシステムにおいて、第２のセンサコントローラのプログラム可能な論理回路には記憶手段が接続されており、第２のセンサコントローラのプログラム可能な論理回路にプログラムされる回路はユニット間経路を経由して取得されたセンシングデータを前記記憶手段に格納するためのデータ経路を含むものであってもよい。
【００３５】
第１のセンシングシステムにおいて、少なくとも１つのセンサコントローラは、クロック信号を出力する発振器と、ユニット間経路中のクロック信号の伝送経路とを備え、クロック信号をプログラム可能な論理回路とユニット間経路中のクロック信号の伝送経路とに対して同時に出力可能とされ、他のすべてのセンサコントローラは、ユニット間経路中にプログラム可能な論理回路に接続し得るクロック信号の伝送経路を備え、それにより、センシングシステム中のすべてのセンサコントローラが共通のクロック信号によりプログラム可能な論理回路を駆動することができるようにしてもよい。
【００３６】
このような構成によれば、センシングデータを送信するセンサコントローラとそのデータを受信するセンサコントローラとの間でプログラム可能な論理回路のクロックが同期しているので、センシングデータを高速に伝送することがいっそう容易になる。
【００３７】
第１のセンシングシステムにおいて、各センサコントローラは第１ユニット間コネクタ及び第２ユニット間コネクタを備える場合において、すべてのセンサコントローラは、第１クロック信号を出力する発振器と、第１ユニット間コネクタから入力される第２クロック信号を伝送する第１クロック経路と、第１クロック信号及び第２クロック信号のいずれかを選択してプログラム可能な論理回路に与えるクロック切替回路と、選択されたクロック信号を第２ユニット間コネクタに出力するための第２クロック経路と、をさらに備え、センサコントローラの列の端に位置して第２ユニット間コネクタにのみ他のセンサコントローラが接続されているセンサコントローラにおいては、クロック切替回路が第１クロック信号を選択し、他のすべてのセンサコントローラにおいては、クロック切替回路が第２クロック信号を選択することにより、センシングシステム中のすべてのセンサコントローラが共通のクロック信号によりプログラム可能な論理回路を駆動することができるようにしてもよい。
【００３８】
このような構成によれば、クロック信号をセンサコントローラを通して共通に用いるセンシングシステムに、自ユニットの発振器を用いて単体でも動作できるセンサコントローラを組み込むことができ、センシングシステム専用の（自ユニットの発振器を持たない）センサコントローラを用意する必要がない。
【００３９】
第１のセンシングシステムにおいて、すべてのセンサコントローラは、ユニット間経路中に、ＣＰＵと接続されるデータ伝送経路を備え、それにより、直接接続されたセンサコントローラのＣＰＵ同士の間でデータ伝送を行うことができるようにしてもよい。
【００４０】
本発明の第２のセンシングシステムは、それぞれ１つのユニットとして構成された複数のセンサコントローラが直列に接続されたものであって、このセンシングシステムにおいて、各センサコントローラは、プログラム可能な論理回路とセンサコントローラの動作を制御するＣＰＵとを有する制御部と、他のセンサコントローラとの接続に用いることのできるユニット間コネクタと、制御部とユニット間コネクタとの間の信号伝送経路であって、プログラム可能な論理回路とユニット間コネクタとの間に設けられたセンシングデータ伝送経路を含むユニット間経路と、を備え、それにより、ユニット間コネクタに他のセンサコントローラが接続されたときに、プログラム可能な論理回路と当該他のセンサコントローラのプログラム可能な論理回路との間でセンシングデータの伝送を行うことができるようにしたものであり、少なくとも１つのセンサコントローラは、センサヘッドとの接続に用いることのできるセンサヘッド接続部と、プログラム可能な論理回路とセンサヘッド接続部との間を繋いでセンシングデータを伝送するセンサヘッド経路と、をさらに備え、そのセンサコントローラの少なくとも１つにはセンサヘッドが接続されており、各センサコントローラの前記制御部は、トリガ信号が与えられることによりいずれかのセンサヘッドから出力されたセンシングデータを対象としたセンシング処理を行い、センシング処理が完了したときに処理完了状態となり、センシング対象についての判定結果が特定の結果であるときに特定判定状態となるものであり、各センサコントローラは、処理完了状態であるかどうか及び特定判定状態であるかどうかに関連する信号を接続された他のセンサコントローラとの間で送信及び／又は受信することが可能であり、それにより、少なくとも１つの特定センサコントローラは、すべてのセンサコントローラが処理完了状態であること及びすべてのセンサコントローラが特定判定状態であることを検出可能にされており、前記特定センサコントローラは、前記検出がされたときに、統合判定信号を出力するものである。
【００４１】
このような構成によれば、各センサコントローラにトリガ信号が与えられた後、各センサコントローラの判定結果が出そろった後に、すべてのセンサコントローラの判定結果が特定の結果であるときに、特定センサコントローラから統合判定信号が出力される。したがって、センシングシステムから統合的な判定結果を得ることができる。しかも、センサコントローラ間で判定結果が出るタイミングがずれる場合にも、判定結果が出そろうまでの過渡的な時期において統合的な判定結果が不安定になることを避けることができる。典型的には、判定結果は合格又は不合格のいずれかであり、特定判定状態は合格の状態である。この場合には、統合判定信号が出力されることは、すべてのセンサコントローラが合格の判定をしたことを意味する。トリガ信号は、各センサコントローラに共通に与えてもよく、個別に与えてもよい。各センサコントローラは、１つのセンシング処理が完了すると、次のセンシング処理のためのトリガ信号を受け付けることが可能である待機状態となるようにしてもよい。この場合は、この待機状態を処理完了状態として扱うことができる。
【００４２】
第２のセンシングシステムにおいて、トリガ信号は、センシングシステムの外部からセンサコントローラの１つに入力され、そのセンサコントローラからユニット間コネクタを経由して他の各センサコントローラに入力されるようにしもよい。
【００４３】
このような構成によれば、センシングシステムに接続するトリガ信号線が１つだけでよい。トリガ信号を入力するセンサコントローラを、統合判定信号を出力するセンサコントローラと一致させれば、配線作業がさらに容易となる。
【００４４】
第２のセンシングシステムにおいて、センサコントローラの列の第１の端に位置するセンサコントローラと、第２の端に位置し統合判定信号を出力する特定センサコントローラとを含み、第１の端に位置するセンサコントローラは、第２の端側に接続されているセンサコントローラに対し、処理完了状態であるときに完了信号を出力し、特定判定状態であるときに特定判定信号を出力するものであり、センサコントローラの列の第２の端に位置する特定センサコントローラは、第１の端側に接続されているセンサコントローラから完了信号を入力すること、自ユニットが処理完了状態であること、第１の端側に接続されているセンサコントローラから特定判定信号を入力すること、及び自ユニットが特定判定状態であること、を条件として統合判定信号を出力するものであってもよい。
【００４５】
このセンシングシステムは、さらにセンサコントローラの列の第１の端及び第２の端以外に位置するセンサコントローラを含み、第１の端及び第２の端以外に位置するセンサコントローラは、第１の端側に接続されているセンサコントローラから完了信号を入力し、かつ、自ユニットが処理完了状態であるときに、第２の端側に接続されているセンサコントローラに完了信号を出力するとともに、第１の端側に接続されているセンサコントローラから特定判定信号を入力し、かつ、自ユニットが特定判定状態であるときに、第２の端側に接続されているセンサコントローラに特定判定信号を出力するものであってもよい。
【００４６】
このような構成によれば、特定センサコントローラは、自ユニットに接続されているセンサコントローラから完了信号を入力することにより他のすべてのセンサコントローラが処理完了状態であることを知ることができ、さらに自ユニットも処理完了状態であればすべてのセンサコントローラが処理完了状態であると決定できる。また、特定センサコントローラは、自ユニットに接続されているセンサコントローラから特定判定信号を入力することにより他のすべてのセンサコントローラが特定判定状態であることを知ることができ、さらに自ユニットも特定判定状態であればすべてのセンサコントローラが特定判定状態であると決定できる。特定センサコントローラは、すべてのセンサコントローラが処理完了状態であり、かつ、すべてのセンサコントローラが特定判定状態であるときに、統合判定信号を出力する。
【００４７】
第２のセンシングシステムにおいて、センサコントローラの列の第１の端に位置するセンサコントローラと、第２の端に位置し統合判定信号を出力する特定センサコントローラと、第１の端及び第２の端以外に位置するセンサコントローラとを含み、第１の端に位置するセンサコントローラは、第２の端側に接続されているセンサコントローラに対し、特定判定状態であるときに特定判定信号を出力し、処理完了状態であるときに完了信号を出力するものであり、センサコントローラ列の第１の端及び第２の端以外に位置するセンサコントローラは、第１の端側に接続されているセンサコントローラから完了信号を入力し、かつ、自ユニットが処理完了状態であるときに、第２の端側に接続されているセンサコントローラに完了信号を出力するとともに、第１の端側に接続されているセンサコントローラから入力した１又は複数の特定判定信号を第２の端側に接続されているセンサコントローラに中継して出力し、それと並列に、自ユニットが特定判定状態であるときに第２の端側に接続されているセンサコントローラに特定判定信号を出力するものであり、センサコントローラの列の第２の端に位置する特定センサコントローラは、第１の端側に接続されているセンサコントローラから完了信号を入力すること、自ユニットが処理完了状態であること、第１の端側に接続されているセンサコントローラから自ユニット以外のすべてのセンサコントローラについての特定判定信号を入力すること、及び自ユニットが特定判定状態であること、を条件として統合判定信号を出力するものであってもよい。
【００４８】
このような構成によれば、特定センサコントローラは、自ユニットに接続されているセンサコントローラから完了信号を入力することにより他のすべてのセンサコントローラが処理完了状態であることを知ることができ、さらに自ユニットも処理完了状態であればすべてのセンサコントローラが処理完了状態であると決定できる。また、特定センサコントローラは、自ユニットに接続されているセンサコントローラから自ユニット以外の各センサコントローラの特定判定信号を入力することにより自ユニット以外のすべてのセンサコントローラの判定結果を知ることができ、さらに自ユニットの判定結果とあわせて、すべてのセンサコントローラが特定判定状態であるかどうかを決定できる。特定センサコントローラは、すべてのセンサコントローラが処理完了状態であり、かつ、すべてのセンサコントローラが特定判定状態であるときに、統合判定信号を出力する。
【００４９】
第２のセンシングシステムを構成するセンサコントローラとしては、第１ユニット間コネクタ及び第２ユニット間コネクタを備える本発明のセンサコントローラであって、さらに以下の特徴を有するものを用いることができる。
【００５０】
センシングシステムにおけるセンサコントローラの位置にかかわらず共通する特徴として、センサコントローラの制御部は、トリガ信号が与えられることによりセンシング処理を行い、センシング処理が完了したときに処理完了状態となり、センシング対象についての判定結果が特定の結果であるときに特定判定状態となるものである。
【００５１】
さらに次の特徴を有するセンサコントローラは、センシングシステムの一端に配置され、統合判定信号を出力する特定センサコントローラとして用いることができる。すなわち、センサコントローラの制御部は、第１ユニット間コネクタを介して他のセンサコントローラが処理完了状態であることを表す完了信号を入力すること、自ユニットが処理完了状態であること、第１ユニット間コネクタを介して他のセンサコントローラが特定判定状態であることを表す特定判定信号を入力すること、及び自ユニットが特定判定状態であること、を条件として統合判定信号を出力する処理を行うものである、又はセンサコントローラは制御部にそのような処理を行わせるように設定するための手段を備えるものである。
【００５２】
次の特徴を有するセンサコントローラは、センシングシステムの両端以外の位置に配置されるセンサコントローラとして用いることができる。すなわち、センサコントローラの制御部は、第１ユニット間コネクタを介して第１完了信号を入力すること及び自ユニットが処理完了状態であることを条件として、第２ユニット間コネクタを介して第２完了信号を出力し、さらに、第１ユニット間コネクタを介して第１特定判定信号を入力すること及び自ユニットが特定判定状態であることを条件として、第２ユニット間コネクタを介して第２特定判定信号を出力する処理を行うものである、又はセンサコントローラは制御部にそのような処理を行わせるように設定するための手段を備えるものである。
【００５３】
次の特徴を有するセンサコントローラは、センシングシステムの特定センサコントローラと反対側の端に配置されるセンサコントローラとして用いることができる。すなわち、センサコントローラの制御部は、処理完了状態であるときに、第２ユニット間コネクタを介して完了信号を出力し、さらに、特定判定状態であるときに、第２ユニット間コネクタを介して特定判定信号を出力する処理を行うものである、又はセンサコントローラは制御部にそのような処理を行わせるように設定するための手段を備えるものである。
【００５４】
いずれの位置に配置されるセンサコントローラも、外部からユニット間コネクタを介さずに外部トリガ信号を入力可能とされ、かつ、ユニット間コネクタを介してユニット間トリガ信号を入力可能とされたものであってもよく、外部トリガ信号及びユニット間トリガ信号のいずれかを選択し、選択したトリガ信号に基づき、前記制御部に内部トリガ信号を出力するトリガ制御回路をさらに備えたものとすることができる。
【００５５】
さらに、センサコントローラの内部に、一方のユニット間コネクタに入力されたユニット間トリガ信号を他方のユニット間コネクタに伝送する信号経路を設けてもよい。
【００５６】
トリガ制御回路は、さらに、外部トリガ信号を選択したときには、外部トリガ信号に基づきユニット間トリガ信号を出力するものであってもよい。
【００５７】
第２のセンシングシステムを構成するセンサコントローラとしては、第１ユニット間コネクタ及び第２ユニット間コネクタを備える本発明のセンサコントローラであって、さらに次の特徴を有するものを用いることができる。すなわち、センサコントローラの制御部は、トリガ信号が与えられることによりセンシング処理を行い、センシング対象についての判定結果が特定の結果であるときに特定判定状態となるものであり、さらに、第１ユニット間コネクタを介して第１特定判定信号を入力すること及び自ユニットが特定判定状態であることを条件として、第２ユニット間コネクタを介して第２特定判定信号を出力する処理を行うものである、又はセンサコントローラは制御部にそのような処理を行わせるように設定するための手段を備えるものである。
【００５８】
以上述べた中で、『そのような処理を行わせるように設定する』ことには、プログラム可能な論理回路の中の回路をそのような処理を行うように設定すること、そのような処理を行うプログラムを選択すること、及びそのような処理を行うようにプログラムに与えられるパラメータを設定することが含まれる。『設定するための手段』には、設定の指示を与えるためのセンサコントローラに設けられた操作スイッチ、設定のためにセンサコントローラが提示するメニュー、センサコントローラの外部から設定の指示を与えるための信号を受け付けることが含まれる。
【発明の効果】
【００５９】
本発明によれば、波形データや画像データのような大容量データを短い時間で（例えば速い周期で）他のセンサコントローラとの間で伝送し、伝送されたデータを用いて様々な連携動作を行うことができるようにしたセンサコントローラ（例えば、センサの信号処理ユニット）を提供することができる。
【発明を実施するための最良の形態】
【００６０】
以下に、この発明の好適な実施の一形態を添付図面に基づいて詳細に説明する。尚、本発明の及ぶ範囲は、以下の実施形態の記載に限定されないことは言うまでもなく、本発明の及ぶ範囲は特許請求の範囲の記載によって特定されることは言うまでもない。
【００６１】
センサコントローラの外観斜視図が図１に示されている。同図に示されるように、センサコントローラ１はケース１０を有する１つのユニットとして構成される。ケース１０の正面１０ａは上下に略２分割されており、上部領域には表示部１１が設けられている。この例にあっては、表示部１１は、セグメント表示器１１ａと液晶式キャラクタ表示器１１ｂとから構成されている。
【００６２】
ケース１０の正面１０ａの下部領域は、操作部配置領域とされている。この操作部配置領域には、下端縁を支点として手前に開く操作部蓋１２が設けられている。操作部蓋１２を開けると、その内部には、数値キー、ファンクションキー、スライドスイッチ等といった各種の操作子が配置されている。
【００６３】
ケース１０の左右の側面（図では右側面１０ｄのみを示す）には、ユニット間コネクタが設けられている。これら左右のユニット間コネクタのそれぞれにはユニット間コネクタ蓋（図では、右側の蓋１５のみを示す）が設けられている。図では、ユニット間コネクタ蓋（右）１５は、閉じられた状態にあり、これがスライド式に開かれると、内部には第１のポートと第２のポートとが存在する。後述するように、これら第１及び第２のポートは、中継コネクタ片７の第１ポート７ａと第２ポート７ｂとに対応する。
【００６４】
ケース１０の下面１０ｃには、ＵＳＢコネクタ１３とＲＳ−２３２Ｃコネクタ１４とが設けられている。これらのコネクタ１３，１４はセンサコントローラ１とパソコン（ＰＣ）等との通信を行うために使用される。ケース１０の下面１０ｃからは外部接続コード３が引き出されている。この外部接続コード３内には電源線、外部入力線、外部出力線などが含まれている。これらの外部入出力線は例えばプログラマブル・コントローラ（ＰＬＣ）等に接続される。後述するように、ケース１０はＤＩＮレール５に装着可能とされ、ＤＩＮレールクランパ８はその際に使用される。
【００６５】
センサコントローラ連装状態の外観斜視図が図２に示されている。同図に示されるように、この例にあっては、３台のセンサコントローラ１ａ，１ｂ，１ｃが、横一列に整列された状態で、ＤＩＮレール５を介して、制御盤内の取付板等に装着されている。この装着状態における各ケースの上面１０ｂには、センサヘッドコネクタ１６がそれぞれ設けられている。このセンサヘッドコネクタ１６には、後述するように、センサヘッド２から引き出されたケーブル４の先端に取り付けられたセンサヘッドコネクタ４ａが装着される。
【００６６】
センシング中のセンサヘッドの外観斜視図が図３に示されている。同図に示されるように、センサヘッド２のケース２０からはセンサケーブル４が引き出され、その先端にはセンサヘッドコネクタ４ａが取り付けられている。このセンサヘッドコネクタ４ａが、センサコントローラ１のケース１０のセンサヘッドコネクタ１６に結合される。
【００６７】
センサヘッド２のケース２０内には、投光用の半導体レーザダイオード（ＬＤ）と受光用の２次元撮像素子（例えば、ＣＣＤイメージセンサ、ＣＭＯＳイメージセンサ等）が設けられている。センサヘッド２は、半導体レーザダイオード（ＬＤ）から発せられたレーザ光をスリット光の状態にして対象物体６に照射する。図において、Ｌ１はスリット光の照射光である。対象物体６上の照射光像ＩＭはセンサヘッド２内に設けられたレンズにより２次元撮像素子の受光面上に結像される。図中、Ｌ２はスリット光の反射光である。ここで、投光光軸と受光光軸とは所定の角度をなしている。スリット光の進行方向と垂直な面についてのスリット光の断面の長手方向は、投光光軸と受光光軸とがなす面に対して垂直となっている。センサヘッド２から対象物体６までの距離が変化すると、２次元撮像素子の受光面上のスリット光の像は、スリット光の長手方向と直交な方向に移動する。２次元撮像素子の水平走査方向は、スリット光の像の移動方向に合わせられている。２次元撮像素子の水平走査線上の光強度のピーク位置が対象物体までの距離を表している。スリット光を用いているので、スリット光の長手方向についての距離の分布を一挙に測定することができる。
【００６８】
センサコントローラ回路の内部構成を示すブロック図が図４に示されている。同図に示されるように、センサコントローラ回路１００は、センサヘッドコネクタ１６と、第１ユニット間コネクタ（右）１８ａと、第２ユニット間コネクタ（左）１８ｂと、外部Ｉ／Ｆコネクタ１９とからなる４系統のコネクタを有している。センサヘッドコネクタ１６には、先に図３を参照して説明したように、センサヘッド２から引き出されたセンサケーブル４の先端に取り付けられたセンサヘッドコネクタ４ａが接続される。第１ユニット間コネクタ（右）１８ａ及び第２ユニット間コネクタ（左）１８ｂには、それぞれ右隣又は左隣にそれぞれ隣接する他のユニットが、図１に示される中継コネクタ片７を介して接続される。外部Ｉ／Ｆコネクタ１９は、図１に示されるＵＳＢコネクタ１３、ＲＳ−２３２Ｃコネクタ１４、及び外部接続コード３を総称するものであり、この外部Ｉ／Ｆコネクタ１９を介してパソコン（ＰＣ）やプログラマブル・コントローラ（ＰＬＣ）等への接続が行われる。
【００６９】
センサコントローラ１００の内部には、センサヘッドＩ／Ｆ回路１１０と、制御部１２０と、入出力Ｉ／Ｆ回路ブロック１５０と、ＦＰＧＡ発振器１６０と、ＦＰＧＡ−ＲＡＭ１７０とが含まれている。
【００７０】
制御部１２０と第１ユニット間コネクタ（右）１８ａとの間には、ＦＰＧＡ１３０と第１ユニット間コネクタ（右）１８ａとの間のセンシングデータ伝送経路を含む第１ユニット間経路Ｐ１ａが設けられており、制御部１２０と第２ユニット間コネクタ（左）１８ｂとの間には、ＦＰＧＡ１３０と第２ユニット間コネクタ（左）１８ｂとの間のセンシングデータ伝送経路を含む、第２ユニット間経路Ｐ１ｂが設けられている。また、センサヘッドコネクタ１６とＦＰＧＡ１３０との間にはセンシングデータを伝送するセンサヘッド経路Ｐ２が設けられ、その途中にセンサヘッドＩ／Ｆ回路１１０が設けられている。
【００７１】
制御部１２０は、プログラム可能な論理回路であるＦＰＧＡ１３０とセンサコントローラの動作を制御するＣＰＵブロック１４０とを有する。ＣＰＵブロック１４０には、マイクロプロセッサ（ＣＰＵ）やその周辺回路が含まれている。ＦＰＧＡ１３０は、回路データをダウンロードすることによって回路構成をプログラム（コンフィグレーション）することが可能なＬＳＩ（大規模集積回路）である。
【００７２】
ＦＰＧＡ１３０は、論理ブロック、スイッチマトリクス、クロスポイントスイッチの組み合わせによって、任意の論理回路を擬似的に実現する。論理ブロックは、メモリとマルチプレクサとを組み合わせたＬＵＴ（Ｌｏｏｋ  Ｕｐ  Ｔａｂｌｅ）によって、様々な論理を実現する。スイッチマトリクスとクロスポイントスイッチは、それぞれの論理ブロック間の接続を行うが、この接続自体もメモリによって制御される。また、ＦＰＧＡ１３０は、外部とデータのやり取りをするためにＩ／Ｏブロックを用いる。
【００７３】
ＦＰＧＡには、アンチフューズタイプ、ＥＥＰＲＯＭタイプ、フラッシュＲＯＭタイプ、ＳＲＡＭタイプ等がある。アンチフューズタイプは、中の回路の接続点がフューズで出来ていて、不要な部分を焼き切って回路を構成し、他は半導体スイッチのオン／オフデータをメモリのデータによって決めるタイプである。
【００７４】
本実施形態のＦＰＧＡ１３０はＳＲＡＭタイプであり、電源を入れる度にＦＰＧＡチップへ回路データをダウンロードする必要がある。ＳＲＡＭタイプに代えてＥＥＰＲＯＭタイプやフラッシュＲＯＭタイプのＦＰＧＡを用いれば、回路データの消去や別の回路データのダウンロードをするまでは、電源を切ってもプログラムした回路構成を維持できる。
【００７５】
ＦＰＧＡ−ＲＡＭ１７０は、プログラム可能な論理回路に接続された『記憶手段』に相当する。本実施形態では、ＦＰＧＡ１３０の中の演算処理回路のワーキングメモリとしての高速性を重視してＳＲＡＭが用いられている。この記憶手段としては、高速性よりも大容量であることが重視される場合には、フラッシュメモリのような書き換え可能な半導体メモリやハードディスク装置等を用いることもできる。
【００７６】
この例では、ユニット間コネクタ（１８ａ，１８ｂ）及びユニット間経路（Ｐ１ａ，Ｐ１ｂ）は左右両側に設けられているが、いずれか一方だけでも差し支えない。特に、センシングデータの伝送方向を固定した設計においては、機能的にデータ伝送の最上流や最下流に設置されることが予定される機種の場合には、接続が必要な側にだけユニット間コネクタ及びユニット間経路を設けることが考えられる。
【００７７】
以下、センサヘッド回路２００及びセンサコントローラ回路１００の内部詳細説明を行うが、それらの説明は次の事項を前提としている。図示された信号又はデータの伝送経路は、１本の線で表されていても複数の線を意味する場合もある。『制御信号』の用語は、回路の動作を制御するために用いられる信号という広い意味であり、イネーブル信号、リード／ライト信号、アドレス信号、割込信号、切替信号、タイミング指示信号等を含む。
【００７８】
センサヘッド回路の詳細を示すブロック図が図５に示されている。このセンサヘッド回路２００は、図３に示されるセンサヘッド２内の電気回路である。同図に示されるように、センサヘッド回路２００は、シリアル／パラレル変換回路２１０と、半導体レーザダイオード（ＬＤ）２２０と、発光ダイオード（ＬＥＤ）２３０と、２次元撮像素子２４０と、撮像素子駆動回路２５０と、センサヘッド発振器２６０と、パラレル／シリアル変換回路２７０と、センサヘッドＲＯＭ２８０とを含んでいる。また、このセンサヘッド回路２００は、センサケーブル４を介してセンサコントローラ１から供給される電源（＋１２Ｖ，０Ｖ）を受けて動作する。
【００７９】
シリアル／パラレル変換回路２１０は、センサコントローラから送られてくる設定信号及び投光制御信号をシリアル／パラレル変換することによって、ＬＤ＿ＯＮ（レーザ制御信号）、ＬＥＤ（センサＬＥＤ制御信号）、ＤＡＴＡ＿ＯＵＴ（センサ設定信号）を生成出力する。
【００８０】
ＬＤ＿ＯＮ（レーザ制御信号）を受けて、センシング用の投光に用いる光源であるＬＤ２２０が駆動される。ＬＥＤ（センサＬＥＤ制御信号）を受けて、センサヘッド２に設けられた図示しない表示器であるＬＥＤ２３０が駆動される。ＤＡＴＡ＿ＯＵＴ（センサ設定信号）は撮像素子駆動回路２５０に送られる。
【００８１】
センサ設定信号は、ＣＭＯＳ２次元撮像素子の読み出す画素の領域の指定、シャッタスピード（電荷蓄積時間）の指定、一定周期で連続的に撮像するかセンサコントローラからのトリガを受けて撮像するかの撮像モード指定などを行うための信号である。
【００８２】
２次元撮像素子２４０はこの例ではＣＭＯＳ型が使用されている。尚、２次元撮像素子２４０としてはＣＣＤ型を用いることもできる。先に図３を参照して説明したように、ＬＤ２２０からの光はスリット光に変換された後、対象物体６に照射される。対象物体６上の照射光像ＩＭはセンサヘッド内に設けられたレンズ（図示せず）により２次元撮像素子２４０上に結像される。投光光軸と受光光軸とは所定の角度をなしている。
【００８３】
スリット光の進行方向と垂直な面についてのスリット光の断面の長手方向は、投光光軸と受光光軸とがなす面に対して垂直となっている。センサヘッドから対象物体までの距離が変化すると、２次元撮像素子２４０上のスリット光の像は、スリット光の長手方向と垂直な方向に移動する。２次元撮像素子２４０の水平走査方向は、スリット光の像の移動方向に合わせられている。２次元撮像素子２４０の水平走査線上の光強度のピーク位置が対象物体までの距離を表している。スリット光を用いているので、スリット光の長手方向についての距離の分布を一挙に測定することができる。
【００８４】
２次元撮像素子２４０における撮像動作は、撮像素子駆動回路２５０から供給される制御信号に基づいて行われ、撮像の結果得られた出力は撮像素子駆動回路２５０へと送られる。
【００８５】
撮像素子駆動回路２５０では、２次元撮像素子２４０から得られた出力に基づいて、ＤＡＴＡ＿ＩＮ（デジタル映像信号）、ＨＤ（水平同期信号）及びＶＤ（垂直同期信号）を生成する。これら３つの信号は、パラレル／シリアル変換回路２７０を介してパラレル／シリアル変換された後、映像信号としてセンサコントローラ１へと送られる。
【００８６】
以上述べた、シリアル／パラレル変換回路２１０、２次元撮像素子２４０、撮像素子駆動回路２５０、パラレル／シリアル変換回路２７０の動作は、センサヘッド発振器２６０から与えられるクロックに同期して行われる。また、センサヘッドＲＯＭ２８０には、センサヘッドの型式データが記憶されている。
【００８７】
次に、センサコントローラ回路１００側の詳細について説明する。センサヘッドＩ／Ｆ回路の詳細を示すブロック図が図６に示されている。同図に示されるように、センサヘッドＩ／Ｆ回路１１０は、シリアル／パラレル変換回路１１１と、パラレル／シリアル変換回路１１２と、センサヘッドＩ／Ｆ発振器１１３とを含んでいる。
【００８８】
シリアル／パラレル変換回路１１１は、センサケーブル４を介してセンサヘッド２から送られてくる映像信号を、シリアル／パラレル変換することによって、ＤＡＴＡ＿ＩＮ（センシングデータ）、ＨＤ（水平同期信号）、ＶＤ（垂直同期信号）を生成出力する。
【００８９】
パラレル／シリアル変換回路１１２は、制御部１２０から送られてくるＤＡＴＡ＿ＯＵＴ（センサ設定信号）、ＬＥＤ（センサＬＥＤ制御信号）、ＬＤ＿ＯＮ（レーザ制御信号）を、パラレル／シリアル変換することによって、設定信号、投光制御信号を生成する。こうして生成された設定信号、投光制御信号は、センサケーブル４を介してセンサヘッド２へと送られる。
【００９０】
尚、電源（＋１２Ｖ，０Ｖ）は、このセンサヘッドＩ／Ｆ回路１１０を経由してセンサヘッド回路２００へと送られる。センサヘッド回路２００のセンサヘッドＲＯＭ２８０から読み出された型式データは、センサヘッドＩ／Ｆ回路１１０を経由して、制御部１２０へと送られる。
【００９１】
他のセンサヘッドＩ／Ｆ回路の詳細を示すブロック図が図７に示されている。このセンサヘッドＩ／Ｆ回路１１０Ａは、センサヘッドがアナログ映像信号を出力する場合に採用される。図において、Ａ／Ｄ変換回路１１１Ａは、センサケーブル４を介してセンサヘッド２から送られてくるアナログ映像信号を、Ａ／Ｄ変換することによって、ＤＡＴＡ＿ＩＮ（センシングデータ）を生成する。
【００９２】
バッファ１１２Ａ，１１３Ａは、センサケーブル４を介してセンサヘッド２から送られてくるＨＤ（水平同期信号）及びＶＤ（垂直同期信号）を、センサコントローラ回路１００内の制御部１２０へと中継する。
【００９３】
バッファ１１４Ａ，１１５Ａ，１１６Ａは、センサコントローラ回路１００の制御部１２０から送られてくるＤＡＴＡ＿ＯＵＴ（センサ設定信号）、ＬＥＤ（センサＬＥＤ制御信号）、ＬＤ＿ＯＮ（レーザ制御信号）を、センサヘッド２へと中継する。
【００９４】
デジタル制御用センサヘッドＩ／Ｆ回路１１０と同様に、センサヘッドＩ／Ｆ回路１１０Ａは、型式データ及び電源（＋１２Ｖ，０Ｖ）を中継する。
【００９５】
ＦＰＧＡ及びＣＰＵとユニット間コネクタとの接続関係を示す信号系統図が図８に示されている。ユニット間データの伝送経路（センシングデータ伝送経路）は、８本のパラレルデータ線である。これにより高速なデータ伝送が実現される。
【００９６】
ユニット間制御信号には、通信先（例えばデータの出力を要求する相手）のユニットを特定するためのユニット番号を表す信号が含まれる。ユニット間データの伝送経路とユニット間制御信号の伝送経路とを複数組設けることにより、データ伝送をさらに高速化したり、異なるデータを並行して伝送することを可能にしてもよい。
【００９７】
本実施形態では、ユニット間データの伝送は双方向であるが、例えば右側を入力専用、左側を出力専用（又はその反対）というように、伝送方向を固定してもよい。そのように伝送方向が決まっていると、センサコントローラを複数接続した場合の伝送設定が容易になる。センサコントローラ内の回路の簡素化も図ることができる。
【００９８】
ＣＰＵ間通信はシリアル通信である。ユニット間データの伝送に比べて通信速度が遅いので、画像データを演算処理して得られた演算結果の値のようにデータ量の少ないセンシングデータの送信や、センサコントローラのユニット番号設定のような初期設定や、動作中の種々の設定変更のための通信に適している。通信速度が遅い代わりに、ソフトウェアによって自由に通信内容を決めることができるので、通信内容の柔軟性に富んでいる。このような通信を、ユニット間データの高速伝送を妨げることなく行うことができる。尚、ＣＰＵ間通信の伝送経路は、ＦＰＧＡ１３０の中を経由するようにしてもよい。
【００９９】
ＦＰＧＡ内部回路の詳細を示すブロック図が図９に示されている。同図に示されるように、ＦＰＧＡ１３０には、タイミング変換回路１３１と、データ経路切替回路１３２と、演算処理回路１３３と、レジスタ１３４と、クロック切替回路１３５と、タイミング生成回路１３６と、バッファ１３７とが含まれている。
【０１００】
レジスタ１３４は、ＦＰＧＡ１３０内の回路やＦＰＧＡ１３０の入出力線とＣＰＵバスとの間のデータ伝送に用いられるメモリである。
【０１０１】
クロック切替回路１３５は、ＦＰＧＡ発振器１６０が出力するクロック信号（第１クロック信号）か、他のセンサコントローラから第１ユニット間コネクタ１８ａを経由して入力されるユニット間クロック信号（第２クロック信号）かのいずれかをＣＰＵブロック１４０からのクロック切替信号による指示に従い選択してＦＰＧＡ１３０内部に内部クロック信号として供給する。さらに、選択されたクロック信号は第２ユニット間コネクタ１８ｂに出力される。
【０１０２】
タイミング生成回路１３６は、タイミング変換回路１３１、データ経路切替回路１３２、演算処理回路１３３のそれぞれに対して制御信号を出力することにより、これらの回路が協調したタイミングで動作できるように、それぞれの回路の動作を調整する。
【０１０３】
演算処理回路１３３は、センシング目的に応じてその内容が設計される。センシングデータが画像データである場合は、ノイズ除去、エッジ強調、階調変換、二値化、平均値演算、ピーク位置抽出、面積抽出、重心位置抽出などを行う演算回路ブロックを組み合わせて構成される。演算対象とするセンシングデータは画像データには限らず、時系列的に取得される多値データであってもよい。例えば、ＰＳＤ（Ｐｏｓｉｔｉｏｎ  Ｓｅｎｓｉｔｉｖｅ  Ｄｅｖｉｃｅ）を用いた変位センサの出力は、時系列的に変化するアナログ信号として得られるが、これを一定周期でデジタル変換した（サンプリングした）データを対象として、ノイズ除去、特徴量抽出などを行う演算回路ブロックを組み合わせた演算処理回路を構成してもよい。
【０１０４】
この場合にも、ＦＰＧＡ１３０は演算内容に応じて配線されたハードウェアにより演算処理を行うため、ＣＰＵとプログラムにより演算を行う場合に比べて高速な演算が可能であるから、サンプリング周期を小さくすることが可能となり、これによって短い時間のうちに生起する現象をセンシングの対象とすることができる。
【０１０５】
演算処理回路における演算は、ＦＰＧＡ１３０に接続されたＦＰＧＡ−ＲＡＭ１７０をワーキングメモリとして利用しながら行うようにしてもよい。演算処理回路１３３における演算は、例えば１フレームの画像のような或るまとまった量のデータを単位として行うようにしてもよいし、走査線数本分のラインバッファを利用するなどして、連続的に取得されるデータに対して順次処理を行い、その結果を連続的に出力するパイプライン方式の演算とすることもできる。
【０１０６】
ＦＰＧＡ内部回路に含まれるタイミング変換回路の詳細を示すブロック図が図１０に示されている。同図に示されるように、タイミング変換回路１３１は、書込制御回路１３１１と、デュアルポートラインメモリ１３１２と、読出制御回路１３１３とを含んでいる。このタイミング変換回路１３１の機能は、センサヘッド２側のクロックの速度とセンサコントローラ１側のクロックの速度との相違を許容しつつ、センサコントローラに対して最適なタイミングでデータの読み出しを可能とするものである。すなわち、このタイミング変換回路１３１にあっては、デュアルポートラインメモリ１３１２への書き込みはセンサヘッドＩ／Ｆ回路１１０と共通のクロック信号（ＣＬＫ＿ＩＮ）により制御され、デュアルポートラインメモリ１３１２からの読み出しはＦＰＧＡ１３０の内部クロック信号により制御される。
【０１０７】
データ経路切替回路の詳細を示すブロック図が図１１に示されている。同図に示されるように、データ経路切替回路１３２は、制御線切替回路（Ａ）１３２１と、制御線切替回路（Ｂ）１３２２と、制御線切替回路（Ｃ）１３２３と、データ線切替回路（Ａ）１３２４と、データ線切替回路（Ｂ）１３２５と、データ線切替回路（Ｃ）１３２６とを含んでいる。
【０１０８】
各データ線切替回路１３２４〜１３２６及び各制御線切替回路１３２１〜１３２３は、ＣＰＵブロック１４０からのデータ経路切替信号により、その入力と出力との接続関係が決定される。
【０１０９】
例えば、データ線切替回路（Ａ）１３２４は、ユニット間データ（右）の線（この実施形態では８本のパラレルデータ線）を、データ線切替回路（Ｂ）１３２５及び（Ｃ）１３２６に接続する線（データ線切替回路（Ａ）下方最右端の線、実際にはこれも８本のパラレルデータ線）に接続することができ、また、どこにも接続しないこともできる。さらに、データ線切替回路（Ａ）１３２４の下方から入力する３本の線（実際にはそれぞれ８本のパラレルデータ線）のいずれかをユニット間データ線（右）の線に接続することができる。
【０１１０】
データ線切替回路（Ａ）、（Ｂ）、（Ｃ）１３２４〜１３２６を適切に制御することにより、タイミング変換回路１３１から、すなわちセンサヘッド２から入力したデータをユニット間データ（右）、ユニット間データ（左）、演算処理回路１３３のうちの１つ、２つ、又は３つ全てに出力することができる。また、どこにも出力しないこともできる。
【０１１１】
ユニット間データ（右）から入力したデータは、ユニット間データ（左）及び演算処理回路１３３の両方又は一方に出力することができるし、何れにも出力しないこともできる。ユニット間データ（左）から入力したデータは、ユニット間データ（右）及び演算処理回路１３３の両方又は一方に出力することができる。何れにも出力しないこともできる。演算処理回路１３３から入力したデータは、ユニット間データ（右）及びユニット間データ（左）の両方又は一方に出力することができる。何れにも出力しないこともできる。
【０１１２】
制御線切替回路（Ａ）、（Ｂ）、（Ｃ）１３２１〜１３２３についても同様であるが、制御線切替回路１３２１〜１３２３についてはタイミング変換回路１３１から、すなわちセンサヘッド２からデータを入力する経路が存在しない。
【０１１３】
ＣＰＵブロックの詳細を示すブロック図が図１２に示されている。同図に示されるように、ＣＰＵブロック１４０は、マイクロプロセッサを主体として構成されるＣＰＵ１４１と、シリアル通信Ｉ／Ｆ回路１４２と、ＣＰＵ−ＲＯＭ１４３と、ＣＰＵ−ＲＡＭ１４４とが含まれている。
【０１１４】
ＣＰＵ−ＲＯＭ１４３には、ＣＰＵにセンサコントローラの動作を制御させるためのプログラム及び電源投入直後にＦＰＧＡ１３０にロードするための回路データが格納されている。
【０１１５】
ＣＰＵ１４１、シリアル通信Ｉ／Ｆ回路１４２、ＣＰＵ−ＲＯＭ１４３、ＣＰＵ−ＲＡＭ１４４は、ＣＰＵバスを介して結ばれている。ＣＰＵバスはＦＰＧＡと入出力Ｉ／Ｆ回路ブロックとの双方に接続されている。シリアル通信Ｉ／Ｆ回路１４２は、右側に隣接するセンサコントローラのＣＰＵブロックと左側に隣接するセンサコントローラのＣＰＵブロックとにそれぞれユニット間コネクタを介して接続される。
【０１１６】
入出力Ｉ／Ｆ回路ブロックの詳細を示すブロック図が図１３に示されている。同図に示されるように、入出力Ｉ／Ｆ回路ブロック１５０は、操作部入力回路１５１と、表示部出力回路１５２と、Ｄ／Ａ変換器１５３と、パラレルＩ／Ｆ回路１５４と、ＲＳ−２３２Ｃインタフェース回路１５５と、ＵＳＢインタフェース回路１５６とを含んでいる。
【０１１７】
操作部入力回路１５１は操作部１７を構成する数値キー、ファンクションキー、スライドスイッチからの出力を入力するためのインタフェースとして機能する。表示部出力回路１５２は、表示部１１に対する表示データ出力のためのインタフェースとして機能する。Ｄ／Ａ変換器１５３は、外部接続コード３に含まれる出力線上にアナログ信号を出力するためのインタフェースとして機能する。パラレルインタフェース回路１５４は、外部接続コード３に含まれる信号線との間でパラレルデータのやり取りを行うためのインタフェースとして機能する。ＲＳ−２３２Ｃインタフェース回路１５５は、ＲＳ−２３２Ｃコネクタ１４との間でデータをやり取りするためのインタフェースとして機能する。ＵＳＢインタフェース回路１５６は、ＵＳＢコネクタ１３との間でデータのやり取りを行うためのインタフェースとして機能する。
【０１１８】
これらの操作部入力回路１５１、表示部出力回路１５２、Ｄ／Ａ変換器１５３、パラレルインタフェース回路１５４、ＲＳ−２３２Ｃインタフェース回路１５５及びＵＳＢインタフェース回路１５６は、ＣＰＵブロック１４０に繋がるＣＰＵバスへと接続されている。尚、入出力インタフェース回路ブロック１５０には、メモリカードを接続するためのインタフェースを設けることもできる。
【０１１９】
ＣＰＵ１４１のゼネラルフローチャート（単体動作時）が図１４に示されている。同図に示されるように、このゼネラルフローチャートに示される処理の全体は、ルーチン処理と割込処理とから構成される。ルーチン処理としては、ＦＰＧＡ１３０に回路データをロードする処理（ステップ１４０１）、操作入力処理（ステップ１４０２）、外部入力処理（ステップ１４０３）、外部出力処理（ステップ１４０４）及び表示処理（ステップ１４０５）を含んでいる。また、割込処理としては、センシング処理（ステップ１４１１）を含んでいる。
【０１２０】
ルーチン処理は、電源投入よりスタートする。処理が開始されると、まずＦＰＧＡ１３０に回路データをロードした後（ステップ１４０１）、操作入力処理（ステップ１４０２）、外部入力処理（ステップ１４０３）、外部出力処理（ステップ１４０４）、表示処理（ステップ１４０５）を繰り返し実行しながら、無限ループ状態となる。
【０１２１】
電源投入により処理がスタートすると、ＦＰＧＡ１３０に回路データをロードした後は（ステップ１４０１）、ＣＰＵは電源オフまで無限ループを繰り返す（ステップ１４０２〜１４０５）。ＦＰＧＡ１３０からの割込や外部入力からの割込があると、ＣＰＵはＦＰＧＡ１３０からセンシングデータについての演算処理結果を取得して所定のセンシング処理を実行する（ステップ１４１１）。
【０１２２】
ＦＰＧＡ１３０への回路データのロードは、ＣＰＵ−ＲＯＭ１４３に圧縮格納されている回路データをＣＰＵ−ＲＡＭ１４４に解凍展開し、ＣＰＵ−ＲＡＭ１４４からＦＰＧＡ１３０に回路データを転送することにより行われる。
【０１２３】
この他、ＲＳ−２３２ＣやＵＳＢ等のインタフェースを経由して外部から回路データを入力して、或いは他のセンサコントローラとの間の通信により他のセンサコントローラから回路データを入力して、ＣＰＵ−ＲＡＭ１４４に格納し、これをＦＰＧＡ１３０に転送することにより、電源投入時に限らず、動作中においても回路データの変更を可能とすることができる。
【０１２４】
ＦＰＧＡ１３０に設定されるパラメータの変更は、ＲＳ−２３２ＣやＵＳＢ等のインタフェースを経由して外部からの指示により行うことができる。操作部１７からのキー入力によって行うこともできる。他のセンサコントローラとの間の通信により他のセンサコントローラからの指示により行うこともできる。
【０１２５】
外部からの回路データや設定パラメータの入力とＦＰＧＡ１３０への反映は、検出対象物６の状況や検出環境が変化したことに応じて行うことができる。
【０１２６】
ＦＰＧＡ１３０の回路データや設定パラメータを複数用意しておき、状況に応じてＦＰＧＡ１３０にロードする回路データや設定パラメータを選択するようにしてもよい。このような選択も、検出対象物６の状況や検出環境が変化したことに応じて行うことができる。このような変化は、外部から知らされる場合の他、センシングデータに基づいてセンサコントローラが自ら判断するようにすることもできる。
【０１２７】
回路データや設定パラメータの選択を行う他の例として、センサヘッド２からセンサヘッド２の機種を特定する型式データを取得し、取得した型式データに応じて、回路データを変更することができる。このようにすれば、型式データの異なる機種を複数用意し（この場合センサヘッドのその他の構成は同じであっても構わない）、型式データに応じて計測精度が特に高くなるような演算処理回路の構成にしたり、計測所要時間が特に短くなるような演算処理回路の構成にしたり、処理の内容（例えば透明板である対象物のおもて面のみを対象とした距離計測をするか、おもて面と裏面の両方の距離計測をするか）が異なる演算処理回路の構成にしたりすることができる。
【０１２８】
そうすると、ユーザはセンシングの目的とセンサヘッドの型式とを対応させて管理し（目的自体をセンサヘッドに表示してもよい）、目的に応じたセンサヘッドを接続するとセンサコントローラの回路が目的に合うように変化するというような使い方ができる。また、センサヘッドに回路データや設定パラメータを格納しておき、センサヘッドからセンサコントローラへ回路データや設定パラメータを転送するようにしてもよい。
【０１２９】
センサコントローラ回路（演算ユニット）の内部構成を示すブロック図が図１５に示されている。同図に示されるように、このセンサコントローラ回路１００Ａは、図４において先に説明したセンサコントローラ回路１００と比べると、センサヘッドコネクタ１６、センサヘッドインタフェース回路１１０、及びセンサヘッド経路Ｐ２が存在しない。このセンサコントローラ回路１００Ａ（演算ユニット）は、センサコントローラが複数接続されたセンシングシステムにおいて、他のセンサコントローラからセンシングデータを取得して、それに対する演算処理を行う場合などに使用される。
【０１３０】
次に、本発明のセンサコントローラ１００，１００Ａを用いて構成されたセンシングシステムＡの構成図が図１６に示されている。同図において、コントローラＡは、図１５に示されるものであり、コントローラＢ及びＣは図４に示されるものである。コントローラＢ及びＣにはセンサヘッド２がそれぞれ接続される。これらのセンサヘッド２の構成は、先に、図３及び図５に示されたものである。これらのコントローラＡ〜Ｃには、図１８〜図２０の処理を実行することによって、図示のユニット番号『０』〜『２』が付与されている。
【０１３１】
次に、撮像素子の水平走査線上に得られる光強度分布が図１７に示されている。図において、光強度のピークに対応する画素の位置が対象物までの距離に対応している。図１６に示されるコントローラＣに接続されたセンサヘッド２は、水平に置かれた板状対象物体の上方に設置され、その上面（おもて面）までの距離を計測している。コントローラＢに接続されたセンサヘッド２は、同じ対象物体の下方に設置され、その下面（裏面）までの距離を計測している。コントローラＢ，Ｃでそれぞれ計測された距離データ（センシングデータ）は、コントローラＡに送られる。コントローラＡには、２つのセンサヘッドの間の距離が設定されており、その情報と、コントローラＡ及びＢから取得した距離データを用いて、対象物体の厚みを算出する。算出結果は、コントローラＣの入出力インタフェース回路ブロック１５０を経由してユーザ所望のインタフェースにより外部に出力される。厚みが規定範囲内にあるか否かを判定して、その判定結果を出力してもよい。
【０１３２】
図１６に示されるセンシングシステムＡは、センサヘッド２を対象物体６の同じ側に並べて配置して、それぞれの計測対象位置の高さの差（段差）の計測に用いることもできる。
【０１３３】
次に、センシングシステムＡの動作フローチャート（その１〜その３）が図１８〜図２０に示されている。図１８において処理が開始されると、まず各コントローラＡ〜Ｃにおいては、右側ユニット有無の確認処理を行う（ステップ１０１，２０１，３０１）。図１６に示されるセンシングシステムＡの構成図を前提とすると、コントローラＡにおける確認結果は『右側ユニットあり』、コントローラＢにおける確認結果は『右側ユニットあり』となるのに対し、コントローラＣにおける確認結果は『右側ユニットなし』となる。
【０１３４】
続いて、左側ユニット有無の確認処理が行われる（ステップ１０２，２０２，３０２）。同様に、センシングシステムＡの構成図を前提とすると、コントローラＡにおける確認結果は『左側ユニットなし』となるのに対し、コントローラＢにおける確認結果は『左側ユニットあり』、コントローラＣにおける確認結果は『左側ユニットあり』となる。
【０１３５】
続いて、クロック切替回路の設定処理が行われる（ステップ１０３，２０３，３０３）。このとき、コントローラＡにおいては、右ユニットからのクロック入力を使用するようクロック切替回路の設定が行われ、コントローラＢにおいても、右ユニットからのクロック入力を使用するようクロック切替回路の設定が行われる。これに対して、コントローラＣにおいては、自ユニットの発振器を使用するようクロック切替回路の設定が行われる。
【０１３６】
続いて、センサヘッドの有無と型式確認処理が行われる（ステップ１０４，２０４，３０４）。このとき、コントローラＡにおける確認結果は『センサヘッドなし』となるのに対し、コントローラＢにおける確認結果は『センサヘッドあり』となり、コントローラＣにおける確認結果も『センサヘッドあり』とされる。
【０１３７】
続いて、計測準備設定処理が行われる（ステップ１０５，２０５，３０５）。コントローラＡにおける計測準備設定処理においては、（１）２つの計測結果を用いた演算処理のためのＣＰＵプログラムパラメータを設定する処理、（２）データ経路切替回路を、右側ユニットから入力した計測結果をＣＰＵへ送り出すように設定する処理、を実行する。コントローラＢにおける計測準備設定処理においては、（１）センサヘッドの型式に応じて、演算処理回路パラメータ及びＣＰＵプログラムパラメータを設定する処理、（２）距離計測を設定する処理、（３）データ経路切替回路を、（ａ）センサヘッドから入力したデータについては演算処理回路へと、（ｂ）ＣＰＵが出力した計測結果については左側ユニットへと、（ｃ）右側ユニットから入力した計測結果は左側ユニットへと、設定する処理を実行する。コントローラＣにおける計測準備設定処理においては、（１）センサヘッドの型式に応じて、演算処理回路パラメータ及びＣＰＵプログラムパラメータを設定する処理、（２）距離計測を設定する処理、（３）データ経路切替回路を、（ａ）センサヘッドから入力したデータを演算処理回路へと、（ｂ）ＣＰＵが出力した計測結果については左側ユニットへと、設定する処理を実行する。
【０１３８】
図１９に移って、各コントローラＡ〜Ｃにおいて、計測準備設定処理（ステップ１０５，２０５，３０５）が完了したならば、続いて、コントローラＡ，Ｂ，Ｃ間で適宜に交信することによって、コントローラＡ〜Ｃのそれぞれにユニット番号を付する処理が実行される。
【０１３９】
まず、コントローラＡにおいては、自らのユニット番号を０とする（ステップ１０６）。続いて、自らのユニット番号＋１（＝１）の番号を右側のユニットへと出力する（ステップ１０７）。コントローラＢにおいては、ユニット番号を左側のユニットから取得するまで待機する（ステップ２０６）。待機中にユニット番号を左側のユニットから取得したならば、この例では、取得したユニット番号『１』を自らのユニット番号とする（ステップ２０７）。続いて、自らのユニット番号＋１（＝２）の番号を右側のユニットへ出力する（ステップ２０８）。コントローラＣでは、ユニット番号を左側のユニットから取得するまで待機する（ステップ３０６）。待機中にユニット番号を左側のユニットから取得したならば、この例では取得したユニット番号『２』を自らのユニット番号とする（ステップ３０７）。
【０１４０】
続いて、最大ユニット番号である『２』を左側のユニットへと出力する（ステップ３０８）。コントローラＢでは、最大ユニット番号を右側のユニットから取得するまで待機する（ステップ２０９）。待機中に最大ユニット番号を右側のユニットから取得したならば、この例では、最大ユニット番号である『２』を左側のユニットへと出力する（ステップ２１０）。コントローラＡでは、最大ユニット番号を右側のユニットから取得するまで待機する（ステップ１０８）。
【０１４１】
以上の処理を実行する結果、コントローラＡ，Ｂ，Ｃにはそれぞれ自らのユニット番号が設定され、同時にコントローラＡ，Ｂ，Ｃは、システムを構成する最大ユニット番号を知ることができる。
【０１４２】
図２０へ移って、このようにして、各コントローラＡ，Ｂ，Ｃにおいて、クロック切替回路の設定処理、センサヘッドの有無と型式確認処理、計測準備設定処理、ユニット番号決定処理などが終了したならば、以後３台のコントローラＡ〜Ｃを相互に連繋しつつ、計測動作が実行される。
【０１４３】
すなわち、まずコントローラＡからコントローラＢに対して、ユニット番号『２』の計測結果の取得要求が発行される（ステップ１０９）。続いて、コントローラＢでは、コントローラＡからの取得要求をコントローラＣへと中継する（ステップ２１１）。続いてコントローラＣでは、取得要求を受信した後（ステップ３０９）、自ユニットの計測結果を左側ユニットであるコントローラＢへと出力する（ステップ３１０）。続いてコントローラＢでは、計測結果をコントローラＣからコントローラＡへと中継する（ステップ２１２）。続いて、コントローラＡでは、ユニット番号『２』の計測結果を取得する（ステップ１１０）。
【０１４４】
続いてコントローラＡからコントローラＢに対して、ユニット番号『１』の計測結果の取得要求が発行される（ステップ１１１）。続いて、コントローラＢでは、取得要求を受信すると共に（ステップ２１３）、計測結果を左側ユニットであるコントローラＡへと出力する（ステップ２１４）。続いて、コントローラＡでは、ユニット番号１の計測結果を取得する（ステップ１１２）。続いて、コントローラＡでは、ユニット番号『１』及び『２』の計測結果より厚みを演算する（ステップ１１３）。以上一連の処理が、所定の終了指令が与えられるまで（ステップ１１４，２１５，３１１）、繰り返し実行される。
【０１４５】
このように、図１９のフローチャートを実行することにより、コントローラＣは、自ユニットの発振器を使用するクロック切替回路が設定され、コントローラＡ及びＢは、右ユニットからのクロック入力を使用するようクロック切替回路が設定される。すなわち、全てのコントローラのＦＰＧＡはコントローラＣの発振器が出力するクロック信号を用いて動作する。これにより、各コントローラのＦＰＧＡ間に同期通信を行うことが容易になる。しかも、通信のためのクロック信号がＦＰＧＡにプログラムされている演算処理回路などの内部回路のクロック信号とも同期しているため、ＦＰＧＡ内部回路に対するセンシングデータの入出力を効率よく行うことができる。
【０１４６】
このセンシングシステムによれば、全コントローラにクロック信号を供給するコントローラの発振器の発振周波数を変更すれば、システム全体のＦＰＧＡのクロック周波数を変更することができる。このようなシステムのクロック周波数の変更は、クロック信号を供給するコントローラの発振器の周波数を調整可能にすることによって実現することができる。或いは、クロック信号を供給するコントローラを、異なる発振周波数の発振器を有するコントローラに置き換えることによって実現することができる。例えば、センシングシステムＡのコントローラＣを、より速い発振周波数の発振器を有するコントローラに置き換えることにより、システム全体の処理速度を向上させることができる。
【０１４７】
次に、ＣＰＵによるセンシング処理のフローチャートが図２１に示されている。ＦＰＧＡ１３０は、センサヘッド２から画像データを周期的に取得して演算処理している。ＦＰＧＡ１３０は、１画面分の演算処理が完了すると、結果をレジスタに格納して、ＣＰＵ１４１に割込みをかける。ＣＰＵ１４１はこの割込があると、図２１のフローチャートの動作を開始する。
【０１４８】
図２１において処理が開始されると、まずＣＰＵ１４１は、ＦＰＧＡ１３０から画素単位で表された計測結果を取得する（ステップ２１０１）。続いて、ＣＰＵ１４１は、計測結果をｍｍ単位の実座標へ変換する（ステップ２１０２）。続いて、ＣＰＵ１４１は、実座標に変換した計測結果をＣＰＵ−ＲＡＭ１４４に格納する（ステップ２１０３）。続いてＣＰＵ１４１は、実座標に変換した計測結果をＦＰＧＡ１３０に出力する（ステップ２１０４）。この、実座標に変換した計測結果をＦＰＧＡ１３０に出力するステップにおいて、必要であればデータ経路切替回路１３２に指示を出して、実座標に変換した計測結果が適切なユニット間コネクタ、すなわち接続された他のセンサコントローラに向けて伝送されるようにする。続いて、ＣＰＵ１４１は、ＣＰＵ−ＲＡＭ１４４に格納されている計測結果をしきい値と比較し、比較判定結果をＣＰＵ−ＲＡＭ１４４に格納する（ステップ２１０５）。
【０１４９】
ＣＰＵ−ＲＡＭ１４４に格納された計測結果と比較判定結果は、外部からの要求があれば入出力インタフェース回路ブロック１５０を経由して、いずれかインタフェースにより出力される。外部からの要求がなくても、周期的に又は常時出力するようにしてもよい。
【０１５０】
図２２〜２７には、データの流れ（その１〜その６）が示されている。これらのデータの流れを実現するように、ＣＰＵ１４１からの指示により、データ経路切替回路１３２が設定される。この設定は、必要に応じて時系列的に変化する。
【０１５１】
データの流れ（その１）が図２２に示されている。図において、（  ）内の算用数字はデータの送られる順番を表している。図において、データ（２）はセンサヘッドＩ／Ｆ回路１１０から入力されたデータ（１）が演算処理回路１３３により演算処理された結果である。データ（３）はデータ（２）がＣＰＵ１４１により演算処理された結果である。データ（４）はデータ（３）が演算処理回路１３３を通り抜けたものであり、ユニット間コネクタ（左）１８ｂに出力される。
【０１５２】
図２２に示されるデータの流れ（その１）は、センシングシステムＡのコントローラＣに接続されたセンサヘッドから出力されるセンシングデータの、コントローラＣにおけるデータの流れが該当する。コントローラＢについても同様である。図中破線で示されるように、センサヘッドから出力されるセンシングデータが分岐して他のコントローラに同時に送るようにすることもできる。これは、後述する図２９のセンシングシステムＢのコントローラＡにおけるデータの流れが該当する。尚、データ（３）、データ（４）に代えてＣＰＵ間通信を利用することもできる。
【０１５３】
データの流れ（その２）が図２３に示されている。図２３に示されるデータの流れ（その２）は、センシングシステムＡのコントローラＢが、コントローラＣから出力される演算結果のセンシングデータをコントローラＡに中継する場合が該当する。
【０１５４】
データの流れ（その３）が図２４に示されている。このデータの流れ（その３）は、後述する図２９のセンシングシステムＢのコントローラＢにおけるデータの流れが該当する。データ（１）は接続された他のセンサコントローラからのセンシングデータである。例えば、図２９に示されるコントローラＢの場合には、コントローラＣに接続されたセンサヘッドから出力されるセンシングデータである。その後のデータの流れは図２２と同様である。
【０１５５】
データの流れ（その４）が図２５に示されている。このデータの流れ（その４）は、演算処理回路１３３に入力されたセンシングデータが一旦ＦＰＧＡ−ＲＡＭ１７０に格納され、格納されたデータを用いながら演算処理回路１３３において演算処理が行われる。その他は図２２と同様である。
【０１５６】
データの流れ（その５）が図２６に示されている。このデータの流れ（その５）は、図２５と同様に、ＦＰＧＡ−ＲＡＭ１７０に格納されたデータを用いて演算処理が行われた後、演算結果がＦＰＧＡ−ＲＡＭ１７０に格納される。演算結果はＣＰＵ１４１にも送られる。例えば、ＦＰＧＡ−ＲＡＭ１７０に格納される演算結果は画像データであり、ＣＰＵ１４１に送られる演算結果は特徴量の値であるというように、両演算結果が互いに異なるものであってもよい。ＦＰＧＡ−ＲＡＭ１７０に格納された演算結果は、他のセンサコントローラに向けて送出される。
【０１５７】
データの流れ（その６）が図２７に示されている。このデータの流れ（その６）は、演算処理回路１３３に入力されるセンシングデータ（図ではセンサヘッドからであるが、他のセンサコントローラからであってもよい）をパイプライン処理回路１３３ａによってパイプライン処理して出力する。パイプライン処理の結果は、演算処理回路１３３における他の処理に利用してもよい。例えば、複数のセンサコントローラで分担して互いに異なる内容のパイプライン処理を行うことにより、複雑な画像処理をリアルタイムに行うことができる。データ経路切替回路１３２を経由する演算処理回路１３３に対する入力と出力とを同時に行うので、図１１に示されるデータ経路切替回路１３２をもう１組増設する必要がある。但し、パイプライン処理専用とされたセンサコントローラの場合には、１組のデータ経路切替回路は演算処理回路への入力専用、もう１組は演算処理回路からの出力専用であるから、各データ経路切替回路を必要な配線だけに簡素化することができる。
【０１５８】
次に、センサコントローラ（拡張メモリユニット）の内部構成を示すブロック図が図２８に示されている。同図に示されるように、このセンサコントローラ（拡張メモリユニット）１００Ｂ内には、フラッシュメモリ１８０が含まれており、このフラッシュメモリ１８０がＦＰＧＡ１３０に接続されている。また、センサヘッドインタフェース回路や入出力インタフェース回路ブロックなどは存在しない。このセンサコントローラ１００Ｂによれば、他のセンサコントローラから入力したセンシングデータをフラッシュメモリ１８０に格納し、格納したセンシングデータを他のセンサコントローラに出力する機能を有する。すなわち、データロガーとして使用することができる。
【０１５９】
センシングシステムの他の実施形態であるセンシングシステムＢの構成図が図２９に示されている。このセンシングシステムＢは透明板の厚み計測を目的とするセンシングシステムである。センシングシステムＡの場合と同一のセンサヘッド２がコントローラＣにのみ接続されている。
【０１６０】
撮像素子の水平走査線上に得られた光強度分布が図３０に示されている。センサヘッドの撮像素子上には、透明板のおもて面（センサヘッドが設けられている側の面）からの反射光による光強度分布のピークと、透明板の裏面からの反射光による光強度分布のピークが得られる。
【０１６１】
センシングシステムＢにおいては、コントローラＣのデータ経路切替回路１３２は、センサヘッド２からのセンシングデータを分岐して、コントローラＣの演算処理回路と、コントローラＢとの両方に送る。コントローラＣは、距離の小さい側から最初のピーク、すなわち、おもて面に対応するピークについて距離計測を行う。コントローラＢは、距離の小さい側から２番目のピーク、すなわち、裏面に対応するピークについて距離計測を行う。コントローラＡは、コントローラＢ、Ｃから計測結果を取得し、それらの値の差から透明板の厚みを求める。透明板の屈折率を考慮した補正演算も行われる。
【０１６２】
センシングシステムＢの動作フローチャート（その１）が図３１に示されている。尚、同フローチャート（その２，その３）については、図１９及び図２０の各フローチャートと同様である。図１８との相違点は、コントローラＢ及びコントローラＣにおける計測準備設定処理（ステップ２０５Ｂ，３０５Ｃ）のみである。
【０１６３】
すなわち、コントローラＢにおける計測準備設定処理（ステップ２０５Ｂ）においては、（１）コントローラＣに接続されているセンサヘッドの型式に応じて、演算処理回路パラメータ及びＣＰＵプログラムパラメータを設定する処理、（２）裏面までの距離計測を設定する処理、（３）データ経路切替回路を、（ａ）右側ユニットから入力したデータを演算処理回路へ、（ｂ）ＣＰＵが出力した計測結果を左側ユニットへ、（ｃ）右側ユニットから入力した計測結果を左側ユニットへ、それぞれ設定する。
【０１６４】
また、コントローラＣにおける計測準備設定処理（ステップ３０５Ｃ）においては、（１）センサヘッドの型式に応じて、演算処理回路パラメータ及びＣＰＵプログラムパラメータを設定する処理、（２）おもて面までの距離計測を設定する処理、（３）データ経路切替回路を、（ａ）センサヘッドから入力したデータを演算処理回路及び左側ユニットへ、（ｂ）ＣＰＵが出力した計測結果を左側ユニットへ、設定する処理を実行する。
【０１６５】
次に、変位センサ機能と視覚センサ機能とを併有するセンサヘッドの構造図が図３２に示されている。このセンサヘッドは、センシングシステムＢのセンサヘッドとして使用することができる。図は、センサヘッドユニットのケース側面を開口してその内部を示すものである。図において、２０１は計測用光源を構成する赤色レーザダイオード素子、２０２は計測用投光光学系を構成するレンズ組立体、２０３は計測対象物体上の計測位置を含むその周辺領域を斜めから見た画像を取得するための斜視画像取得光学系を構成するレンズ組立体、２０４はレンズ組立体２０３の光軸を折り曲げるためのミラー、２０５は計測対象物体上の計測位置を含むその周辺領域を正面から見た画像を取得するための正視画像取得光学系を構成するレンズ組立体、２０６は斜視画像取得光学系を介して取得される斜めから見た画像と正視画像取得光学系を介して取得される正面から見た画像とをそれぞれ光電変換して各画像に対応する映像信号を生成する撮像手段としての２次元ＣＣＤ素子である。
【０１６６】
このセンサヘッド２においては、レーザ点灯時にレンズ組立体２０３を経由する光路により測距用のレーザ光照射光像が、レーザ消灯時にレンズ組立体２０５を経由する光路により計測位置周辺を含む正視画像が得られる。正視画像は、対象物体上のマークの位置を特定するような、通常のカメラで取得した画像を対象とするのと同じような画像処理の対象とすることができる。このセンサヘッドは、測距用の画像と正視画像とを交互に出力する。測距用の画像データはセンシングシステムＢのコントローラＣで演算処理され、マーク位置特定用の正視画像はコントローラＢで演算処理される。対象物の表面がほぼ平坦であるとすると、コントローラＡでは、マーク位置の３次元座標を特定することができる。
【０１６７】
センシングシステムＡにおいて、コントローラＣに変位センサを接続し、コントローラＢにカメラを接続することによっても、同様に、マーク位置の３次元座標の測定を行うことができる。
【０１６８】
センシングシステムＢの他の応用例として、センサヘッドとしてカメラを接続し、コントローラＣとＢとで異なる内容の画像処理を行うことができる。例えば、撮像された画像に文字とバーコードが写っている場合に、コントローラＣで文字の特定を、コントローラＢでバーコードの復号を行うことができる。
【０１６９】
センシングシステムＢの他の応用例として、コントローラＢにおいて、センサヘッドからのセンシングデータと、コントローラＣで処理された結果のセンシングデータとの両方を用いて演算処理することができる。この場合は、コントローラＢにおいてコントローラＣの演算結果を単に中継するのでなく、コントローラＢの演算処理回路に入力するような変更が行われる。例えば、センサヘッドとしてカメラを接続し、撮像された画像にバーコードが写っている場合に、コントローラＣにおいてパイプライン処理を利用して画像の入力完了と同時にバーコードの位置と回転角とを算出し、この結果を直ちにコントローラＢに送る。コントローラＢでは画像入力完了後すぐにバーコードの位置と回転角との情報を得るから、この情報を利用して直ちにバーコードの復号を始めることができる。
【０１７０】
センシングシステムＡにおいて、コントローラＢを増設して、センシング対象箇所を増やすことができる。たとえば、長方形の板状対象物の４つの角付近と中心との５箇所で同時に測距を行い、その結果からコントローラＡにおいて、対象物の平坦度を算出することができる。
【０１７１】
センサコントローラに接続するセンサヘッドとしては、２次元撮像素子を用いるものに限らず、１次元撮像素子を用いるセンサや、アナログ信号（又はそれがデジタル化された信号）を出力するようなセンサを広く採用することができる。
【０１７２】
以上、センサコントローラの実施形態をＦＰＧＡにプログラムされる回路の内容が決定されているものとして説明してきた。実際にセンサコントローラをセンシングに用いるためには、このようにＦＰＧＡの回路内容が決定されていることが必要である。
【０１７３】
ところで、図４、図１５、又は図２８に示すような内部構成を有するが、ＦＰＧＡにプログラムされる回路内容がいまだ決定されていないユニットも本発明の実施形態である。このようなユニットは、いわばセンサコントローラのプラットフォーム製品である。プラットフォーム製品は、そのメーカ自身によって、ＦＰＧＡにプログラムされる回路の内容が決定されたセンサコントローラを生産するために利用できるだけでなく、プラットフォーム製品のままで流通させることもできる。この場合、ＦＰＧＡにプログラムされる回路の内容の決定は、センシングを行うユーザや、ユーザーのためにセンシングシステムを構築する事業者や、センサコントローラを組み込む装置の製造業者によって行われる。これらのメーカ以外の者が決定又は選択するＦＰＧＡの回路データは、プラットフォーム製品のメーカが提供してもよいし、第三者が開発することも考えられる。
【０１７４】
本発明のセンサコントローラのユニット間経路は、左右のユニット間コネクタの間を直結する貫通バスラインとして構成することができ、このバスラインにプログラム可能な論理回路を接続するようにしてもよい。しかし、実施形態として説明したように、ユニット間経路を、プログラム可能な論理回路及び一方のユニット間コネクタの間の経路と、プログラム可能な論理回路及び他方のユニット間コネクタの間の経路とに分けておくことにより、次のような利点が得られる。
【０１７５】
すなわち、ユニット間経路を貫通バスラインとした場合は、複数のセンサコントローラを連結したセンシングシステム全体で一つの共通のバスラインが形成されるのに対し、プログラム可能な論理回路をはさんでユニット間経路を分けた場合は、センサコントローラの一方側と他方側とで同時に異なる内容のデータ伝送を行うことが可能となる。例えば、複数のセンサコントローラを連結して多段のパイプライン処理を行うことができる。それだけでなく、必要なときにプログラム可能な論理回路の内部で両側のユニット間経路を接続させれば、貫通バスラインを形成して、隣接していないセンサコントローラ間で時間遅れのないデータ伝送を行うことも可能となる。このように、センサコントローラの内部でプログラム可能な論理回路をはさんでユニット間経路を分ける構成は、センシングシステムに柔軟性をもたらす。
【０１７６】
センシングシステムの柔軟性には、センサコントローラがプログラム可能な論理回路のほかにＣＰＵを内蔵していることも貢献している。ＣＰＵを内蔵することにより、具体的な使用場面に応じて各センサコントローラ及びセンシングシステムの機能を変更することが容易になる。特に、図４の実施形態のセンサコントローラのように、センサヘッドを接続可能であって、外部との電気的インタフェース（外部接続コード、外部Ｉ／Ｆコネクタ）及び人とのインタフェース（操作部、表示部）を備えたものは、他のセンサコントローラと連結せずに単体のセンサとしても使用が可能であるという高度な柔軟性を備える。
【０１７７】
本発明の実施形態であるプラットフォーム製品は、多様な構成のセンサヘッドとの組み合わせに適用することができることも特徴的である。特に、撮像素子を備えたセンサヘッドをデータ源とする画像データの処理にも、アナログ出力の物理量変換器（フォトダイオード、ＰＳＤ、検知コイルなどのデバイスやそれらにアンプ、発振回路などを付加したもの）を備えたセンサヘッドをデータ源とする波形データの処理にも適用することができる。このプラットフォーム製品は、ユニット間で画像データを伝送する能力を有しているので、アナログデータをデジタル化した多値データを扱う場合には、ある時間範囲にわたる多値データの時系列集合である波形データを、ユニット間で一括して伝送することができる。
【０１７８】
次に、センサコントローラ回路の他の実施形態の内部構成を示すブロック図が図３３に示されている。このセンサコントローラ回路１００Ｃには、図４のセンサコントローラ回路１００に対して、外部Ｉ／Ｆコネクタ１９からＦＰＧＡ１３０に外部トリガ信号を伝送する外部トリガ信号線、及びＦＰＧＡ１３０から外部Ｉ／Ｆコネクタ１９に統合ＯＫ信号（統合判定信号）を伝送する統合ＯＫ信号線が追加されている。外部トリガ信号及び統合ＯＫ信号の外部との間の伝送には、外部接続コード３に含まれているパラレル信号線の内の２本が利用される。このセンサコントローラに接続されているセンサヘッド２は、２次元撮像素子を内蔵したカメラである。表示部１１には、高精細のカラー液晶表示画面が含まれており、センサヘッド２で撮像した画像や画像処理後の画像を表示することができる。また、計測範囲を示す図形などもこの画面に表示することにより計測条件の設定操作を容易にしている。
【０１７９】
センサコントローラ回路１００Ｃに含まれているＦＰＧＡ１３０の内部回路の詳細を示すブロック図が図３４に示されている。図３４のＦＰＧＡ内部回路は、以下の点で図９のＦＰＧＡ内部回路と異なる。
【０１８０】
センサヘッドに対するＬＥＤ（センサＬＥＤ制御信号）及びＬＤ＿ＯＮ（レーザ制御信号）の出力が含まれていない。
【０１８１】
タイミング生成回路１３６に代えて、トリガ制御回路１３８が設けられている。図９のＦＰＧＡが自発的に周期的なセンシング動作を行うのに対し、図３４のＦＰＧＡはトリガ信号の入力に基づいてセンシング動作を行う。トリガ制御回路１３８に入力されるトリガ信号には、外部トリガ信号とユニット間トリガ信号の２種類がある。外部トリガ信号は外部接続コード３を介してセンサコントローラの外部から与えられる。ユニット間トリガ信号線は第１ユニット間コネクタ１８ａと第２ユニット間コネクタ１８ｂとを結んでおり、ユニット間トリガ信号は、いずれかのユニット間コネクタに接続された他のセンサコントローラから与えられる。トリガ制御回路１３８は、レジスタ１３４を介したＣＰＵからの設定（図示せず）により、外部トリガ信号とユニット間トリガ信号のいずれかを選択する。トリガ制御回路１３８は、選択したトリガ信号の入力に基づき、いくつかの内部トリガ信号を出力する。内部トリガ信号の出力先は、センサヘッド２（センサヘッドＩ／Ｆ回路１１０を経由）、タイミング変換回路１３１、データ経路切替回路１３２、演算処理回路１３３、及びＣＰＵ１４１である。ＣＰＵ１４１に対して内部トリガ信号は割込み信号として働く。これらの内部トリガ信号が出力されるタイミングは、各回路ブロックが協調してセンシング動作を行うことができるように適宜調整されている。また、外部トリガ信号が与えられてから所定の遅延時間が経過した後にセンシング動作を開始するように、遅延時間を設定することもできる。
【０１８２】
ＣＰＵ１４１は、１回のセンシング処理が終了して処理完了状態となると、Ｅｎａｂｌｅ信号とＯＫ信号とをＦＰＧＡ１３０に対して出力する。これらの信号のためには、伝達の時間遅れを避けるため、レジスタ１３４を経由しない直通経路が設けられている。Ｅｎａｂｌｅ信号は、センシング処理が完了して次回のセンシング処理のための待機状態にあることを示す信号であり、電圧レベルハイが待機状態（イネーブル状態）、電圧レベルローが処理中状態（ビジー状態）を表す。ＯＫ信号は、判定結果が特定の判定状態であること、すなわちこの実施形態では判定結果が合格であることを示す信号であり、電圧レベルハイが合格（ＯＫ）、電圧レベルローが不合格（ＮＧ）を表す。ＯＫ信号の状態は、次回のセンシング処理が完了するまでの間維持される。
【０１８３】
ＡＮＤゲート回路１３０１は、ＣＰＵ１４１からＦＰＧＡ１３０に入力されたＥｎａｂｌｅ信号及び第１ユニット間コネクタ１８ａからＦＰＧＡ１３０に入力されたユニット間Ｅｎａｂｌｅ信号（第１完了信号）を入力し、論理演算の結果であるユニット間Ｅｎａｂｌｅ信号（第２完了信号）を第２ユニット間コネクタ１８ｂに出力する。第１ユニット間コネクタ１８ａから入力されたユニット間Ｅｎａｂｌｅ信号の信号線は、第１ユニット間コネクタ１８ａに他のセンサコントローラが接続されていないときにＡＮＤゲート回路１３０１への入力がハイレベルとなるように、プルアップ抵抗１３０２によってプルアップされている。ＡＮＤゲート回路１３０１の出力であるユニット間Ｅｎａｂｌｅ信号は、分岐されてＣＰＵ１４１及び外部接続コードの中のパラレル信号線の１つにも接続されている。これにより、ＣＰＵ１４１及び外部の信号受信者は、センサコントローラが複数直列に接続されたセンシングシステムにおいて、自ユニット及び自ユニットよりも第１ユニット間コネクタ１８ａ側に接続されたすべてのユニットが処理完了状態であることを知ることができる。
【０１８４】
ＡＮＤゲート回路１３０３は、ＣＰＵ１４１からＦＰＧＡ１３０に入力されたＯＫ信号及び第１ユニット間コネクタ１８ａからＦＰＧＡ１３０に入力されたユニット間ＯＫ信号（第１特定判定信号）を入力し、論理演算の結果であるユニット間ＯＫ信号（第２特定判定信号）を第２ユニット間コネクタ１８ｂに出力する。第１ユニット間コネクタ１８ａから入力されたユニット間ＯＫ信号の信号線は、第１ユニット間コネクタ１８ａに他のセンサコントローラが接続されていないときにＡＮＤゲート回路１３０３への入力がハイレベルとなるように、プルアップ抵抗１３０４によってプルアップされている。ＡＮＤゲート回路１３０３の出力であるユニット間ＯＫ信号は、分岐されてＣＰＵ１４１及び外部接続コードの中のパラレル信号線の１つにも接続されている。これにより、ＣＰＵ１４１及び外部の信号受信者は、センサコントローラが複数直列に接続されたセンシングシステムにおいて、自ユニット及び自ユニットよりも第１ユニット間コネクタ１８ａ側に接続されたすべてのユニットが特定判定状態であることを知ることができる。自ユニットが、センシングシステムにおけるユニット間ＯＫ信号の下流側（この場合は第２ユニット間コネクタ１８ｂ側）の端に位置するときには、外部接続コードに出力されるユニット間ＯＫ信号は、すなわちセンシングシステムのすべてのセンサコントローラによる判定結果が特定の結果（この実施形態では合格）であることを示す統合判定信号（この実施形態では統合ＯＫ信号）である。
【０１８５】
このセンサコントローラを３台直列に接続して構成したセンシングシステムＣの構成図が図３５に示されている。図１６のセンシングシステムＡの構成図と異なり、図３５ではトリガ信号及びＯＫ信号に関する構成のみを示している。センシングシステムＡの場合と同様の動作により、各センサコントローラにはユニット番号が付与される。カメラであるセンサヘッド２が各センサコントローラに接続されており、各センサコントローラは接続されたセンサヘッド２から入力した画像に対して処理を行い、処理の結果をあらかじめ設定された基準と比較することにより、合格かどうかの判定を行う。そして、センシングシステム全体としては、例えば一つのワークを各センサヘッド２で互いに異なる角度から撮影し、又は一つのワークの互いに異なる箇所を撮影し、すべての撮影画像を対象にした判定結果が合格であるときに統合判定結果が合格であるとする。
【０１８６】
センサヘッド２を一部のセンサコントローラにのみ接続し、センサヘッド２が接続されていないセンサコントローラは、他のセンサコントローラから処理すべきセンシングデータを受信するようにしてもよい。例えば、コントローラＡにのみセンサヘッド２を接続し、センサコントローラＢ及びＣにはコントローラＡから画像を転送する。そして、各センサコントローラにおいて、共通の画像の互いに異なる部分を対象にして処理を行い、又は共通の画像に対して互いに異なる種類の画像処理を行い、処理の結果をそれぞれあらかじめ設定された基準と比較することにより、合格かどうかの判定を行う。そして、センシングシステム全体としては、すべてのセンサコントローラによる判定結果が合格であるときに統合判定結果が合格であるとする。
【０１８７】
図３５で、実線で表された信号線は、システムの動作上有効に用いられている信号が伝送されている信号線であり、破線で表された信号線は、存在はしているがシステムの動作上有効に用いられている信号が伝送されていない信号線である。
【０１８８】
外部トリガ信号はコントローラＡに入力される。コントローラＡのトリガ制御回路１３８は外部トリガ信号を選択し、外部トリガ信号に基づきユニット間トリガ信号を出力する。ただし、センシングシステムＣの中のいずれかのセンサコントローラが処理中状態（ビジー状態）であるときに外部トリガ信号を入力した場合は、コントローラＡはその外部トリガ信号を無効なものとして扱い、ユニット間トリガ信号を出力しない。外部トリガ信号が無効とされたことをＣＰＵ１４１が外部に報知するようにしてもよい。コントローラＢ及びＣのトリガ制御回路１３８はユニット間トリガ信号を選択する。その結果、外部トリガ信号は、センシングシステムＣの全体に対してセンシング処理のトリガをかけることになる。ユニット間トリガ信号を利用せずに、各コントローラに個別に外部トリガ信号を与えるようにしてもよい。
【０１８９】
各センサコントローラのＡＮＤゲート回路１３０３に関係する配線からわかるとおり、すべてのＣＰＵ１４１がＯＫ信号を出力したときに、統合ＯＫ信号が出力される。
【０１９０】
図示を省略しているが、Ｅｎａｂｌｅ信号についてもＯＫ信号と同様の配線となり、すべてのＣＰＵ１４１がＥｎａｂｌｅ信号を出力したときに、コントローラＡからユニット間Ｅｎａｂｌｅ信号が外部に出力される。
【０１９１】
しかし、各センサコントローラがセンシング処理に要する時間は同一とは限らず、また、各センサコントローラの内部トリガ信号の遅延時間が異なっていたり、各センサコントローラに互いに異なるタイミングで外部トリガ信号が与えられたりする場合がある。したがって、各センサコントローラがセンシング処理を完了して処理完了状態となる時刻は互いに異なる場合がある。一方、センサコントローラが処理完了状態となるまでは、前回のセンシング処理が完了したときに出力されたＯＫ信号の状態が維持されているため、センシングシステム全体に対する１つの外部トリガ信号又は各センサコントローラに個別に互いに関連したタイミングで入力される一群の外部トリガ信号に基づくセンシング処理が、一部のセンサコントローラでは完了しているがすべてのセンサコントローラでは完了していない過渡的な期間においては、統合ＯＫ信号がセンシングシステム全体の判定結果を正しく表していないことになる。そこで、コントローラＡから外部に出力されるユニット間Ｅｎａｂｌｅ信号をモニタすることにより、すべてのセンサコントローラが処理完了状態となったのを確認した上で、そのときの統合ＯＫ信号を利用するようにすれば、センシングシステム全体の判定結果を正しく利用することができる。あるいは、センシングシステムに外部トリガ信号を与えてから、センシング処理が完了するのに十分な時間が経過するのを待ってから統合ＯＫ信号を利用することによっても、センシングシステム全体の判定結果を正しく利用することができる。
【０１９２】
しかし、本実施の形態では、センシングシステムの利用をより容易にするために、すべてのセンサコントローラが処理完了状態であるときに限り、統合ＯＫ信号を出力するようにしている。このようにすれば、統合ＯＫ信号は、常にセンシングシステム全体の判定結果を正しく表している。具体的には、ユニット番号０に定められたコントローラＡのＣＰＵ１４１は、ＣＰＵ１４１に入力されるユニット間Ｅｎａｂｌｅ信号（図３４のＡＮＤゲート回路１３０１の出力）をモニタして、この信号がハイレベルであるときに限り、判定結果にしたがってＯＫ信号を出力するようにしている。
【０１９３】
同様の機能は、コントローラＡのＡＮＤゲート回路１３０３を３入力タイプのものに変更し、ＣＰＵ１４１からのＯＫ信号及び第１ユニット間コネクタ１８ａからのユニット間ＯＫ信号に加えて、ＡＮＤゲート回路１３０１の出力信号もＡＮＤゲート回路１３０３に入力するようにＦＰＧＡ１３０内の回路構成を変更することによっても実現することができる。このような回路構成の変更は、ユニット番号が０となったことを条件として、ＣＰＵ１４１からレジスタ１３４を経由して回路変更の指示を与えることによって行うことができる。この場合には、ＣＰＵ１４１は、モニタ入力しているユニット間Ｅｎａｂｌｅ信号の状態にかかわらず、センシング処理が完了すれば直ちに、判定結果にしたがってＡＮＤゲート回路１３０３に入力されるＯＫ信号を出力する。
【０１９４】
センサコントローラ回路のＯＫ信号に関する他の実施形態を示すブロック図が図３６に示されている。この実施形態では、ユニット間ＯＫ信号はパラレル信号線によって伝送される。ただし、第１ユニット間コネクタ１８ａから第２ユニット間コネクタ１８ｂに至る信号線は、端子（ａ）から端子（ｂ）へ、端子（ｂ）から端子（ｃ）へ、というように、１つずつ接続する端子がずらされている。そして、第２ユニット間コネクタ１８ｂの端子（ａ）には、ＣＰＵ１４１が出力するＯＫ信号が与えられる。この実施形態においては、統合ＯＫ信号を出力する特定センサコントローラのほかに、ユニット間ＯＫ信号のパラレル信号線の数以内のセンサコントローラを接続してセンシングシステムを構成することができる。この実施形態では、ユニット間ＯＫ信号のパラレル信号線を３本としたが、この信号線の数は任意に定めることができる。
【０１９５】
第１ユニット間コネクタ１８ａから入力されたすべてのユニット間ＯＫ信号はＡＮＤゲート回路１３０５によりＡＮＤ演算され、その出力がＣＰＵ１４１に入力される。ＣＰＵ１４１は、ＡＮＤゲート回路１３０５の出力がハイレベルであること（ＯＫ信号が入力されること）及び自ユニットの判定結果が合格であることを条件に、統合ＯＫ信号を外部に出力する。この実施形態においてもＥｎａｂｌｅ信号に関しては先の実施形態と同じであり、ＣＰＵ１４１は、ユニット間Ｅｎａｂｌｅ信号がハイである場合に限り、統合ＯＫ信号を出力可能とすることにより、各センサコントローラの判定結果が出そろうまでの過渡的な期間において誤った統合ＯＫ信号を出力することを防止している。
【０１９６】
ＡＮＤゲート回路１３０５を設ける代わりに、第１ユニット間コネクタ１８ａから入力されたすべてのユニット間ＯＫ信号を直接ＣＰＵ１４１に入力し、プログラムの処理によってＡＮＤ演算するようにしてもよい。このようにすれば、統合ＯＫ信号を出力する特定センサコントローラは、各センサコントローラの判定結果を個別に知ることができ、その情報を利用して、統合ＯＫ信号のほかに、判定結果に関するより詳しい情報を出力することもできる。
【０１９７】
統合判定信号を得るための構成は、以上説明してきたような論理ゲート回路を用いる構成に限らず、ＣＰＵ１４１におけるプログラム処理によって同様の機能を実行してもよい。その場合には、処理完了状態や特定判定状態の伝達をＣＰＵ間通信によって行うことも可能である。もっとも、統合判定信号を早く出力するためには論理ゲート回路を用いる構成の方が有利である。
【０１９８】
統合判定信号を出力する特定センサコントローラをセンシングシステムの端以外の位置に置くことも可能である。そのためには、論理ゲート回路を用いる場合も、プログラム処理による場合も、処理完了状態や特定判定状態の伝達をセンシングシステムの両端のセンサコントローラから特定センサコントローラに向かって行うようにすればよい。
【０１９９】
ところで、以下に列挙する発明は、プログラム可能な論理回路とＣＰＵとを含む制御回路を有するセンサコントローラに限らず、さまざまな制御回路の構成を有するセンサコントローラに適用することができる。この場合の制御回路は、例えば、ＣＰＵを有するがプログラム可能な論理回路を有さないもの、専用に設計された集積回路であるものなどであってもよい。
【０２００】
（１）  １つのユニットとして構成されたセンサコントローラであって、センシング処理を行う制御回路と、他のセンサコントローラとの接続に用いることのできる第１ユニット間コネクタ及び第２ユニット間コネクタと、第１クロック信号を出力する発振器と、第１ユニット間コネクタから入力される第２クロック信号を伝送する第１クロック経路と、第１クロック信号及び第２クロック信号のいずれかを選択して制御回路の少なくともデータ伝送に関与する部分に与えるクロック切替回路と、選択されたクロック信号を第２ユニット間コネクタに出力するための第２クロック経路と、を備えるセンサコントローラ。
【０２０１】
このような構成によれば、従来のセンサコントローラではセンサコントローラ間で十分高速なデータ伝送ができなかったという課題を解決することができる。このような構成によれば、制御回路の少なくともデータ伝送に関与する部分は、自ユニットの発振器が出力するクロック信号を用いて動作することが可能であり、接続された他のセンサコントローラから得られるクロック信号を用いて動作することも可能である。他のセンサコントローラから得られるクロック信号を用いる場合は、当該他のセンサコントローラとの間で制御回路のクロックが同期しているので、センシングデータを高速に伝送することが容易になる。このようなセンサコントローラを用いれば、３台以上のセンサコントローラが直列に接続されたセンシングシステムであって、すべてのセンサコントローラの制御回路の少なくともデータ伝送に関与する部分に共通のクロック信号が与えられるセンシングシステムを構築することができる。
【０２０２】
（２）  １つのユニットとして構成されたセンサコントローラであって、センシング処理を行う制御回路と、センサヘッドと接続するためのコネクタとを備え、前記制御回路は、センサヘッドから型式データのようなセンサヘッドを特定する情報又は回路データ、設定パラメータのようなセンサコントローラの機能又は性能を規定する情報を取得し、取得した情報に応じてセンシングデータの処理にかかわる前記制御回路の機能又は性能を変化させるものである、センサコントローラ。
【０２０３】
このような構成によれば、従来のセンサコントローラが有していた、センサコントローラの機能や性能を変化させ又は設定するためには操作スイッチによる設定操作を行うか外部のコンピュータ等に接続して設定操作を行うかしなければならなかったという課題を解決することができ、より簡単にセンサコントローラの機能又は性能を設定することができる。なお、センサヘッドの出力に現れる個体差を補正するための情報をセンサヘッドから取得して単にセンサヘッド出力の補正を行うことは、ここでいうセンサコントローラの機能又は性能を変化させることに該当しない。この発明（２）では、ユニット間コネクタは必須の要素ではない。
【０２０４】
（３）  それぞれ１つのユニットとして構成された複数のセンサコントローラが直列に接続されたセンシングシステムであって、各センサコントローラは、センシング処理を行う制御回路と、他のセンサコントローラとの接続に用いることのできるユニット間コネクタと、を備え、各センサコントローラの前記制御回路は、トリガ信号が与えられることによりセンシング処理を行い、センシング処理が完了したときに処理完了状態となり、センシング対象についての判定結果が特定の結果であるときに特定判定状態となるものであり、各センサコントローラは、処理完了状態であるかどうか及び特定判定状態であるかどうかに関連する信号を接続された他のセンサコントローラとの間で送信及び／又は受信することが可能であり、それにより、少なくとも１つの特定センサコントローラは、すべてのセンサコントローラが処理完了状態であること及びすべてのセンサコントローラが特定判定状態であることを検出可能にされており、前記特定センサコントローラは、前記検出がされたときに、統合判定信号を出力するものである、センシングシステム。
【０２０５】
このような構成によれば、従来のセンシングシステムでは、それに含まれるすべてのセンサコントローラが特定判定状態となったことを外部から知ることが容易でなかった課題を解決することができる。このような構成によれば、各センサコントローラにトリガ信号が与えられた後、各センサコントローラの判定結果が出そろった後に、すべてのセンサコントローラの判定結果が特定の結果であるときに、特定センサコントローラから統合判定信号が出力される。したがって、センシングシステムから統合的な判定結果を得ることができる。しかも、センサコントローラ間で判定結果が出るタイミングがずれる場合にも、判定結果が出そろうまでの過渡的な時期において統合判定信号が不安定になることを避けることができる。典型的には、判定結果は合格又は不合格のいずれかであり、特定判定状態は合格の状態である。この場合には、統合判定信号が出力されることは、すべてのセンサコントローラが合格の判定をしたことを意味する。トリガ信号は、各センサコントローラに共通に与えてもよく、個別に与えてもよい。各センサコントローラは、１つのセンシング処理が完了すると、次のセンシング処理のためのトリガ信号を受け付けることが可能である待機状態となるようにしてもよい。この場合は、この待機状態を処理完了状態として扱うことができる。
【０２０６】
このようなセンシングシステムを構成するセンサコントローラとしては、第１ユニット間コネクタ及び第２ユニット間コネクタを備え、さらに以下の特徴を有するものを用いることができる。
【０２０７】
センシングシステムにおけるセンサコントローラの位置にかかわらず共通する特徴として、センサコントローラの制御回路は、トリガ信号が与えられることによりセンシング処理を行い、センシング処理が完了したときに処理完了状態となり、センシング対象についての判定結果が特定の結果であるときに特定判定状態となるものである。
【０２０８】
さらに次の特徴を有するセンサコントローラは、センシングシステムの一端に配置され、統合判定信号を出力する特定センサコントローラとして用いることができる。すなわち、センサコントローラの制御回路は、第１ユニット間コネクタを介して他のセンサコントローラが処理完了状態であることを表す完了信号を入力すること、自ユニットが処理完了状態であること、第１ユニット間コネクタを介して他のセンサコントローラが特定判定状態であることを表す特定判定信号を入力すること、及び自ユニットが特定判定状態であること、を条件として統合判定信号を出力する処理を行うものである、又はセンサコントローラは制御回路がそのような処理を行うように設定するための手段を備えるものである。
【０２０９】
次の特徴を有するセンサコントローラは、センシングシステムの両端以外の位置に配置されるセンサコントローラとして用いることができる。すなわち、センサコントローラの制御回路は、第１ユニット間コネクタを介して第１完了信号を入力すること及び自ユニットが処理完了状態であることを条件として、第２ユニット間コネクタを介して第２完了信号を出力し、さらに、第１ユニット間コネクタを介して第１特定判定信号を入力すること及び自ユニットが特定判定状態であることを条件として、第２ユニット間コネクタを介して第２特定判定信号を出力する処理を行うものである、又はセンサコントローラは制御回路がそのような処理を行うように設定するための手段を備えるものである。
【０２１０】
次の特徴を有するセンサコントローラは、センシングシステムの特定センサコントローラと反対側の端に配置されるセンサコントローラとして用いることができる。すなわち、センサコントローラの制御回路は、処理完了状態であるときに、第２ユニット間コネクタを介して完了信号を出力し、さらに、特定判定状態であるときに、第２ユニット間コネクタを介して特定判定信号を出力する処理を行うものである、又はセンサコントローラは制御回路がそのような処理を行うように設定するための手段を備えるものである。
【０２１１】
（４）  １つのユニットとして構成されたセンサコントローラであって、センシング処理を行う制御回路と、他のセンサコントローラとの接続に用いることのできる第１ユニット間コネクタ及び第２ユニット間コネクタとを備え、前記制御回路は、トリガ信号が与えられることによりセンシング処理を行い、センシング対象についての判定結果が特定の結果であるときに特定判定状態となるものであり、さらに、第１ユニット間コネクタを介して第１特定判定信号を入力すること及び自ユニットが特定判定状態であることを条件として、第２ユニット間コネクタを介して第２特定判定信号を出力する処理を行うものである、又は制御部がそのような処理を行うようにセンサコントローラを設定するための手段を備える、センサコントローラ。
【０２１２】
このような構成のセンサコントローラを用いれば、従来のセンサコントローラでは、センサコントローラを３台以上直列に接続した場合に、すべてのセンサコントローラが特定判定状態となったことを外部から知ることが容易でなかった課題を解決し、直列に接続されたすべてのセンサコントローラが特定判定状態となったときに１つの統合判定信号を出力するセンシングシステムを容易に構築することができる。
【０２１３】
ところで、図４に示すセンサコントローラにおいては、図８を参照して説明したように、ユニット間のセンシングデータ伝送経路はＦＰＧＡ１３０とユニット間コネクタ１８０ａ、１８０ｂとを直結する８本のパラレルデータ線であった。ユニット間のセンシングデータ伝送経路は、これに限らず、図３７に示すような構成とすることもできる。図３７に示す構成は、第１ユニット間経路Ｐ１ａの途中に第１ユニット間Ｉ／Ｆ回路１９０ａが設けられ、第２ユニット間経路Ｐ１ｂの途中に第２ユニット間Ｉ／Ｆ回路１９０ｂが設けられている点が図４に示す構成と異なる。ユニット間Ｉ／Ｆ回路１９０ａ、１９０ｂは、図６に示したセンサヘッドＩ／Ｆ回路と同様に、シリアル／パラレル変換回路及びパラレル／シリアル変換回路を有しており、ＦＰＧＡ１３０との間ではセンシングデータのパラレル伝送を行い、ユニット間コネクタ１８０ａ又は１８０ｂを介して接続される他のセンサコントローラとの間ではセンシングデータのシリアル伝送を行う。このようにすれば、センサコントローラ同士をユニット間コネクタによって直接接続するのではなく、ケーブルを介して接続し、かつ、高速にセンシングデータを伝送することが容易になる。もちろん、図４に示すようにユニット間Ｉ／Ｆ回路を設けることなくセンサコントローラ間のセンシングデータの伝送をパラレル伝送で行う場合にも、ケーブルを介してセンサコントローラ間を接続することは可能である。
【０２１４】
センサコントローラ回路のどの部分を一つの集積回路に形成するかについては、いろいろな場合がありうる。図３８にＦＰＧＡとそれ以外の回路ブロックとを集積化した一例を示す。この例においては、センサコントローラ回路１００の全体としては図３７に示すものと同一のブロック構成であり、ＦＰＧＡ１３０、ＣＰＵ１４１、センサヘッドＩ／Ｆ回路１１０、及びユニット間Ｉ／Ｆ回路１９０ａ、１９０ｂが１チップの集積回路１２５の中に収められている。図３８に示す構成では、図３７のＣＰＵブロック１４０に含まれる回路の内、ＣＰＵ１４１が集積回路１２５に収められ、その他の回路であるシリアル通信Ｉ／Ｆ回路１４２、ＣＰＵ−ＲＯＭ１４３及びＣＰＵ−ＲＡＭ１４４が集積回路１２５の外部に備えられる。集積回路１２５の中のＦＰＧＡ１３０以外の回路ブロックは、集積回路の作成プロセスにおいて固定的に形成されるものであり、プログラム可能な、すなわちリコンフィグラブルな回路ではない。もっとも、これらの回路ブロックの一部又は全部をＦＰＧＡにプログラムされた回路として、一時的に又は恒久的に出現させるようにすることもできる。プログラムされた回路としてＣＰＵを有し、かつ、ＣＰＵとしては用いられていないプログラム可能な論理回路部分を有するセンサコントローラも、制御部にプログラム可能な論理回路とＣＰＵとを有するセンサコントローラの一つの実施形態である。
【図面の簡単な説明】
【０２１５】
【図１】センサコントローラの外観斜視図である。
【図２】センサコントローラ連装状態の外観斜視図である。
【図３】センシング中のセンサヘッドの外観斜視図である。
【図４】センサコントローラ回路の内部構成を示すブロック図である。
【図５】センサヘッド回路の詳細を示すブロック図である。
【図６】センサヘッドインタフェース回路の詳細を示すブロック図である。
【図７】他のセンサヘッドインタフェース回路の詳細を示すブロック図である。
【図８】ＦＰＧＡ及びＣＰＵとユニット間コネクタとの接続関係を示す信号系統図である。
【図９】ＦＰＧＡ内部回路の詳細を示すブロック図である。
【図１０】タイミング変換回路の詳細を示すブロック図である。
【図１１】データ経路切替回路の詳細を示すブロック図である。
【図１２】ＣＰＵブロックの詳細を示すブロック図である。
【図１３】入出力インタフェース回路ブロックの詳細を示すブロック図である。
【図１４】ＣＰＵのゼネラルフローチャート（単体動作時）である。
【図１５】センサコントローラ回路（演算ユニット）の内部構成を示すブロック図である。
【図１６】センシングシステムＡの構成図である。
【図１７】撮像素子の水平走査線上に得られる光強度分布を示すグラフである。
【図１８】センシングシステムＡの動作フローチャート（その１）である。
【図１９】センシングシステムＡの動作フローチャート（その２）である。
【図２０】センシングシステムＡの動作フローチャート（その３）である。
【図２１】ＣＰＵによるセンシング処理のフローチャートである。
【図２２】データの流れ（その１）である。
【図２３】データの流れ（その２）である。
【図２４】データの流れ（その３）である。
【図２５】データの流れ（その４）である。
【図２６】データの流れ（その５）である。
【図２７】データの流れ（その６）である。
【図２８】センサコントローラ（拡張メモリユニット）の内部構成を示すブロック図である。
【図２９】センシングシステムＢの構成図である。
【図３０】撮像素子の水平走査線上に得られる光強度分布を示すグラフである。
【図３１】センシングシステムＢの動作フローチャート（その１）である。
【図３２】変位センサ機能と視覚センサ機能とを併有するセンサヘッドの構造図である。
【図３３】センサコントローラ回路の内部構成を示すブロック図である。
【図３４】ＦＰＧＡ内部回路の詳細を示すブロック図である。
【図３５】センシングシステムＣのトリガ信号とＯＫ信号についての構成図である。
【図３６】センサコントローラ回路のＯＫ信号に関する他の実施形態を示すブロック図である。
【図３７】ユニット間Ｉ／Ｆ回路を有するセンサコントローラ回路の内部構成を示すブロック図である。
【図３８】ＦＰＧＡとその他の回路ブロックとを集積化した集積回路を有するセンサコントローラ回路の内部構成を示すブロック図である。
【符号の説明】
【０２１６】
１，１ａ，１ｂ，１ｃ  センサコントローラ
２          センサヘッド
３          外部接続コード
４          センサケーブル
４ａ        センサヘッドコネクタ
５          ＤＩＮレール
６          対象物体
７          中継コネクタ片
７ａ        第１ポート（右）
７ｂ        第２ポート（右）
８          ＤＩＮレールクランパ
１０        ケース
１０ａ      正面
１０ｂ      上面
１０ｃ      下面
１１        表示部
１１ａ      セグメント表示器
１１ｂ      液晶式キャラクタ表示器
１２        操作部蓋
１３        ＵＳＢコネクタ
１４        ＲＳ−２３２Ｃコネクタ
１５        ユニット間コネクタ蓋（右）
１６        センサヘッドコネクタ
１７        操作部
１８ａ      第１ユニット間コネクタ（右）
１８ｂ      第２ユニット間コネクタ（左）
２０        ケース
１００      センサコントローラ回路
１１０      センサヘッドインタフェース回路
１１０Ａ    センサヘッドインタフェース回路の別の例
１１１      シリアル／パラレル変換回路
１１１Ａ    Ａ／Ｄ変換回路
１１２      パラレル／シリアル変換回路
１１３      センサヘッドインタフェース発振器
１１２Ａ〜１１６Ａ  バッファ回路
１１７Ａ    センサヘッドインタフェース発振器
１２０      制御部
１２５      集積回路
１３０      ＦＰＧＡ
１３１      タイミング変換回路
１３２      データ経路切替回路
１３３      演算処理回路
１３３ａ    パイプライン処理回路
１３４      レジスタ
１３５      クロック切替回路
１３６      タイミング生成回路
１３７      バッファ
１３８      トリガ制御回路
１４０      ＣＰＵブロック
１４１      ＣＰＵ
１４２      シリアル通信インタフェース回路
１４３      ＣＰＵ−ＲＯＭ
１４４      ＣＰＵ−ＲＡＭ
１５０      入出力インタフェース回路ブロック
１５１      操作部入力回路
１５２      表示部出力回路
１５３      Ｄ／Ａ変換器
１５４      パラレルインタフェース回路
１５５      ＲＳ−２３２Ｃインタフェース回路
１５６      ＵＳＢインタフェース回路
１６０      ＦＰＧＡ発振器
１７０      ＦＰＧＡ−ＲＡＭ
１８０      フラッシュメモリ
１９０ａ    第１ユニット間Ｉ／Ｆ回路（右）
１９０ｂ    第２ユニット間Ｉ／Ｆ回路（左）
２００      センサヘッド回路
２０１      赤色レーザダイオード素子
２０２，２０３，２０５  レンズ組立体
２０４      ミラー
２０６      ２次元ＣＣＤ
２１０      シリアル／パラレル変換回路
２２０      半導体レーザダイオード（ＬＤ）
２３０      発光ダイオード（ＬＥＤ）
２４０      ２次元撮像素子
２５０      撮像素子駆動回路
２６０      センサヘッド発振器
２７０      パラレル／シリアル変換回路
２８０      センサヘッド（ＲＯＭ）
１３０１    ＡＮＤゲート回路（Ｅｎａｂｌｅ信号用）
１３０２    プルアップ抵抗（Ｅｎａｂｌｅ信号用）
１３０３    ＡＮＤゲート回路（ＯＫ信号用）
１３０４    プルアップ抵抗（ＯＫ信号用）
１３０５    ＡＮＤゲート回路
１３１１    書込制御回路
１３１２    デュアルポートラインメモリ
１３１３    読出制御回路
１３２１    制御線切替回路Ａ
１３２２    制御線切替回路Ｂ
１３２３    制御線切替回路Ｃ
１３２４    データ線切替回路Ａ
１３２５    データ線切替回路Ｂ
１３２６    データ線切替回路Ｃ
Ｌ１        スリット光の照射光
Ｌ２        スリット光の反射光
ＩＭ        スリット光の照射光像
Ｐ１ａ      第１ユニット間経路
Ｐ１ｂ      第２ユニット間経路
Ｐ２        センサヘッド経路
【図１】
2006190316.tif 000003
【図２】
2006190316.tif 000004
【図３】
2006190316.tif 000005
【図４】
2006190316.tif 000006
【図５】
2006190316.tif 000007
【図６】
2006190316.tif 000008
【図７】
2006190316.tif 000009
【図８】
2006190316.tif 000010
【図９】
2006190316.tif 000011
【図１０】
2006190316.tif 000012
【図１１】
2006190316.tif 000013
【図１２】
2006190316.tif 000014
【図１３】
2006190316.tif 000015
【図１４】
2006190316.tif 000016
【図１５】
2006190316.tif 000017
【図１６】
2006190316.tif 000018
【図１７】
2006190316.tif 000019
【図１８】
2006190316.tif 000020
【図１９】
2006190316.tif 000021
【図２０】
2006190316.tif 000022
【図２１】
2006190316.tif 000023
【図２２】
2006190316.tif 000024
【図２３】
2006190316.tif 000025
【図２４】
2006190316.tif 000026
【図２５】
2006190316.tif 000027
【図２６】
2006190316.tif 000028
【図２７】
2006190316.tif 000029
【図２８】
2006190316.tif 000030
【図２９】
2006190316.tif 000031
【図３０】
2006190316.tif 000032
【図３１】
2006190316.tif 000033
【図３２】
2006190316.tif 000034
【図３３】
2006190316.tif 000035
【図３４】
2006190316.tif 000036
【図３５】
2006190316.tif 000037
【図３６】
2006190316.tif 000038
【図３７】
2006190316.tif 000039
【図３８】
2006190316.tif 000040