(57)【要約】第１のビジョンプロセッサ（ＶＰ）と通信するユーザ・インターフェース（ＵＩ）に指示して、第２のＶＰとの通信を確立するための方法とシステムが開示される。本発明は、複数のＶＰと少なくとも１つのＵＩを有するマシンビジョン・システムで有用である。本発明の方法は、各ＶＰにＶＰとＵＩの通信を確立するためのリンク関数を提供するステップ、および他のＶＰとの通信を確立するためにＵＩに指示を出すようにリンク関数を起動するステップを含む。リンク関数は、ＵＩ上でのリモートＶＰのローカルな動的表示、およびＵＩに接続されたＶＰの現在の状態を表す継続的に更新された表示を可能にする。オペレータは結果を監視して、マシンビジョン・システムのアーキテクチャを最初に理解することなくシステムの任意のＶＰのパラメータを変更できる。
2004537784.tif 000002
【特許請求の範囲】
【請求項１】
複数のビジョンプロセッサ（ＶＰ）および少なくとも１つのユーザ・インターフェース（ＵＩ）を有するマシンビジョン・システムで、第２のＶＰとの通信を確立することを第１のＶＰとの通信でＵＩに指示するための方法であって、
各ＶＰにＶＰとＵＩの通信を確立するためのリンク関数を提供し、
もう１つのＶＰとの通信を確立するために前記ＵＩへの命令を発行するように前記リンク関数を起動する諸ステップから成ることを特徴とする方法。
【請求項２】
前記リンク関数を起動するステップが、ＶＰ制御を起動することを含むことを特徴とする、請求項１に記載の方法。
【請求項３】
前記ＶＰ制御を起動することが、前記ＶＰ制御のグラフィカル表示をクリックすることを含むことを特徴とする、請求項２に記載の方法。
【請求項４】
前記ＶＰ制御の前記グラフィカル表示が、ＵＩにより表示される強調された文字列であることを特徴とする、請求項３に記載の方法。
【請求項５】
前記ＶＰ制御を起動することが、起動信号を前記ＶＰ制御に提供することを含むことを特徴とする、請求項２に記載の方法。
【請求項６】
前記起動信号は、ユーザが始動できることを特徴とする、請求項５に記載の方法。
【請求項７】
前記起動信号は、前記ＵＩ経由でユーザが始動できることを特徴とする、請求項６に記載の方法。
【請求項８】
前記ＵＩがチェックボックスを含むことを特徴とする、請求項７に記載の方法。
【請求項９】
前記ＵＩがラジオボタンを含むことを特徴とする、請求項７に記載の方法。
【請求項１０】
前記起動信号が外部イベントにより始動されることを特徴とする、請求項５に記載の方法。
【請求項１１】
前記外部イベントが工業プロセスイベントであることを特徴とする、請求項１０に記載の方法。
【請求項１２】
前記起動信号がセンサ状態の変化により始動されることを特徴とする、請求項１０に記載の方法。
【請求項１３】
前記起動信号がプログラムの判断により始動されることを特徴とする、請求項１０に記載の方法。
【請求項１４】
前記起動信号が人間の判断により始動することを特徴とする、請求項１０に記載の方法。
【請求項１５】
前記リンク関数を起動することが、前記ＶＰの関数実行シーケンスに前記リンク関数を含ませることであることを特徴とする、請求項１に記載の方法。
【請求項１６】
前記リンク関数も、前記第２のＶＰとの通信を確立することに加えて、前記第１のＶＰとの通信を終了させることを特徴とする、請求項１に記載の方法。
【請求項１７】
前記リンク関数が、前記ＵＩ上でのリモートＶＰのローカルな動的表示を可能にすることを特徴とする、請求項１に記載の方法。
【請求項１８】
前記リンク関数を起動するとすぐ、前記ＵＩに接続された前記ＶＰの現在の状態を表す継続的に更新された表示を提供する動的接続が確立されることを特徴とする、請求項１に記載の方法。
【請求項１９】
前記リンク関数を起動するとすぐ、ユーザは前記ＵＩを使用して前記ＶＰを構成させられることを特徴とする、請求項１に記載の方法。
【請求項２０】
複数のビジョンプロセッサ（ＶＰ）および少なくとも１つのユーザ・インターフェース（ＵＩ）を有するマシンビジョン・システムで、第２のＶＰとの通信を確立ことを第１のＶＰとの通信でＵＩに指示するための方法であって、
（ＵＩに含まれる）グラフィカル表示を提供するステップから成り、前記グラフィカル表示は、前記グラフィカル表示は、前記第２のＶＰとの通信を確立するように前記ＶＰから前記ＵＩに指示させる起動信号を開始させるように適合されることを特徴とする方法。
【請求項２１】
複数の前記ＶＰと少なくとも１つの前記ＵＩがネットワーク経由で相互接続されることを特徴とする、請求項２０に記載のシステム。
【請求項２２】
前記ネットワークがＴＣＰ／ＩＰネットワーク・プロトコルをサポートすることを特徴とする、請求項２１に記載のシステム。
【請求項２３】
前記グラフィカル表示が、ユーザの動作に応答するように適合されることを特徴とする、請求項２０に記載のシステム。
【請求項２４】
前記ユーザの動作が、前記グラフィカル表示をマウスでクリックすることであることを特徴とする、請求項２３に記載のシステム。
【請求項２５】
前記グラフィカル表示が強調された文字列であることを特徴とする、請求項２０に記載のシステム。
【請求項２６】
複数のビジョンプロセッサ（ＶＰ）を有する、マシンビジョン・システムのためのユーザ・インターフェース（ＵＩ）であって、
スプレッドシート、および
前記スプレッドシートに取り込まれ、複数のＶＰのうちの１つのＶＰとの通信を確立するためにＶＰからＵＩに指示させるように、ユーザの動作に応答するように適合されるグラフィカル表示から成ることを特徴とするユーザ・インターフェース（ＵＩ）。
【請求項２７】
前記ＵＩに複数のＶＰのうちの１つのＶＰとの通信を終了させるように、前記グラフィカル表示がユーザの動作に応答するように更に適合されることを特徴とする、請求項２６に記載のユーザ・インターフェース（ＵＩ）。
【請求項２８】
前記グラフィカル表示が強調された文字列であることを特徴とする、請求項２６に記載のユーザ・インターフェース（ＵＩ）。
【請求項２９】
前記グラフィカル表示が映像的表象であることを特徴とする、請求項２６に記載のユーザ・インターフェース（ＵＩ）。
【請求項３０】
マシンビジョン・システムであって、
複数のビジョンプロセッサ（ＶＰ）、
複数のＶＰのうちの第１のＶＰと通信する少なくとも１つのユーザ・インターフェース（ＵＩ）から成り、
前記ＵＩがユーザに見えるグラフィカル表示を含み、複数のＶＰのうちの第２のＶＰとの通信を確立するためにＶＰからＵＩに指示させるように、前記グラフィカル表示がユーザの動作に応答するように適合されることを特徴とするシステム。
【請求項３１】
前記複数のＶＰと前記少なくとも１つのＵＩがネットワーク経由で相互接続されることを特徴とする、請求項３０に記載のシステム。
【請求項３２】
前記ネットワークが、ＴＣＰ／ＩＰネットワーク・プロトコルをサポートすることを特徴とする、請求項３１に記載のシステム。
【請求項３３】
前記ユーザの動作が、前記グラフィカル表示をマウスでクリックすることであることを特徴とする、請求項３０に記載のシステム。
【請求項３４】
前記グラフィカル表示が強調された文字列であることを特徴とする、請求項３０に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はネットワーク上のホスト間の通信に関し、特にホスト間の通信を確立することに関する。
【背景技術】
【０００２】
マシンビジョン・システムは、画像を少なくとも処理し解釈するための１または複数のビジョンプロセッサ（ＶＰ）の集合体を含み、ユーザがＶＰと対話および／または制御することを少なくとも可能にするための１または複数のユーザ・インターフェース（ＵＩ）を任意に含む。各ＶＰは１または複数のディジタルカメラに接続され、１または複数のディジタルカメラを通してＶＰは周囲を「見る」（即ち、場面の画像を取得する）。
【０００３】
図１を参照すると、ＵＩおよびＶＰは同じコンピュータ・プラットフォーム上に共存し、この場合にはカメラ１１が取得回路１２経由で汎用プロセッサ１３（例えば、マイクロプロセッサ、ディジタル信号プロセッサ、またはＣＰＵ）に接続される。汎用プロセッサは、共有メモリ経由で互いに通信するＶＰ１４とＵＩ１５を実施するプログラムを実行する。ＵＩは入力装置回路１６経由で１または複数の入力装置（例えば、制御パッド、キーボード、またはマウス）を使用するユーザとインターフェースし、表示回路１７を経由する表示装置（例えば、ＬＣＤディスプレイ、またはコンピュータ・モニタ）でユーザにグラフィカル表示を提供する。
【０００４】
或いは、ＶＰとＵＩは、別々のコンピュータシステムに存在してもよい。この形態は単一のコンピュータビジョン・システムの構成要素を共有するが、異なる汎用プロセッサでＵＩからＶＰを実行する。図２を参照すると、カメラ２１は取得回路２２経由で汎用プロセッサ２３に接続される。このプロセッサは、ＶＰ２４を実施して通信回路２５を経由し通信チャネル２６（例えば、ＲＳ２３２Ｃシリアル接続、またはイーサネット接続）を超えてＵＩを実行中のコンピュータと通信するプログラムを実行する。ＵＩコンピュータ３２は、ＵＩ２９を実施しているプログラムを実行する汎用プロセッサ２８を収容する。ＵＩは、ＶＰコンピュータと通信回路２７および通信リンク２６経由で通信する。ユーザはＵＩを入力装置回路３０に接続された１または複数の入力装置経由で制御でき、グラフィカル出力を表示回路３１経由で表示装置上で見ることができる。
【０００５】
図３を参照すると、もし通信チャネルがネットワークへのアクセスを提供すれば、いくつかの追加的な接続方式も可能であり、各ＵＩ３５はそのネットワーク３６経由でネットワーク化された多くのＶＰ３７，３８，３９の１つと通信できる。ユーザ（特定のビジョンタスクのためにＶＰを構成する開発者、またはオペレーション・フェイズの間ずっとシステムをモニタするオペレータのどちらか）が特定のＶＰと通信することを望むとき、ユーザは新しいＶＰをＵＩにより提供されたリストから選択し、ＵＩに接続を確立するように指示する。この方法で、多くのＵＩが各ＶＰを制御し、各ＵＩが多くのＶＰを制御する。ＶＰの集合体は協働して複雑なビジョン問題を解決することができ、この場合、集合体の各ＶＰはビジョン問題全体の特定部分を解決する。
【０００６】
ビジョン・システムの３つのオペレーション・モードが存在し、３つのオペレーション・モードの間は、異なる動作がＵＩとＶＰで行われる。
１．接続：ＵＩを使用して、開発者またはオペレータは、ＶＰを（ＵＩによってメニューに表示される）利用可能なＶＰの全てのリストから選択する。ＵＩは、ＶＰとの初期通信を確立する。接続フェーズは、ＵＩとＶＰの間のデータ通信を確立する。そのようなデータ接続の１実施例は、ＯＳＩ通信モデルの（クライアント／サーバモデルを使用する）アプリケーション層接続である。
２．設定：ＵＩを通して、開発者が特定のビジョンタスクのために接続されたＶＰを設定する。
３．オペレーション：ＶＰは、設定フェーズの間に開発者によって定義された関数のシーケンスを実行する。ＵＩはＶＰの出力をモニタするためにオペレータによって使用されてもよく、またはＶＰから切り離されて、ＶＰが単体で稼働することを可能にしてもよい。
【０００７】
図４を参照すると、ビジョン・アプリケーションを設計するとき、一般に開発者は特定のＶＰ４１と繋がり、設定４２とオペレーション４３の１または複数のサイクルを行う。開発者が第１のＶＰの設定に満足した後、開発者は第２のＶＰ４４と繋がり、そのシステムの設定４５とオペレーション４６のサイクルを完了する。このプロセスは、追加のＶＰに対しても繰り返すことができる。
【０００８】
いったん開発者がビジョン・システムを適切に設定したら、オペレータは稼働中のシステムをモニタし、開発者に修正しなければならないビジョン・システムの設定の問題を知らせる。ビジョン・システムの機能を維持するのに、オペレータはシステム設定のパラメータに変更を加えるだけでよい。例えば、オペレータは、画像の関心がある領域を指定してＶＰ関数の挙動を誘導してもよい。システムをオペレータがアクセス可能にするために、開発者はビジュアル・フィードバックを実施して、ユーザとの条件付き対話を可能にしなければならない。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかし、既知のＵＩは重大な制限を有する。即ち、マルチＶＰビジョン・システムをモニタするとき、システムのオペレータは監視する各ＶＰを明示的に選択しなければならず、従って、マルチＶＰビジョン・システム全体の構造および編成の開発者レベルの知識を持たなければならない。マルチＶＰビジョン・システムのパラメータを調整するために、各ＶＰのパラメータが適切に監視され変更されるように、オペレータはビジョン・アプリケーションがビジョン・システムの複数のＶＰの中でどのように分散しているかを理解しなければならない。この要求を満たすことはオペレータにとって大きな負担であり、開発業務の一部としてオペレータの負担を減らそうとすることは開発者にとっても負担である。
【課題を解決するための手段】
【００１０】
１つの一般的側面では、本発明は、複数のビジョンプロセッサ（ＶＰ）および少なくとも１つのユーザ・インターフェース（ＵＩ）を有するマシンビジョン・システムで有用である。本発明は、第２のＶＰとの通信を確立することを第１のＶＰとの通信でＵＩに指示するための方法である。本発明の方法は、各ＶＰにＶＰとＵＩの通信を確立するためのリンク関数を提供するステップ、およびもう１つのＶＰとの通信を確立するためにＵＩへの命令を発行するようにリンク関数を起動するステップを含む。
【００１１】
リンク関数を起動するステップは、ＶＰ制御を起動するステップを含むことができる。ＶＰ制御を起動することは、（例えば、マウスを使用して）ＶＰ制御のグラフィカル表示をクリックすることを含むことができる。ＶＰ制御のグラフィカル表示は、ＵＩにより表示される強調された文字列でもよい。
【００１２】
他の好ましい実施例では、ＶＰ制御を起動することは、起動信号をＶＰ制御に提供することを含む。起動信号は、（たぶん、ＵＩ経由で）ユーザが始動できる。例えば、ＵＩはチェックボックス、またはラジオボタンである。
【００１３】
他の好ましい実施例では、起動信号は外部イベントにより始動される。外部イベントは、工業プロセスイベントでよい。または、起動信号はセンサ状態の変化により始動できる。また、起動信号はプログラムの判断、または人間の判断により始動できる。
【００１４】
他の好ましい実施例では、リンク関数を起動することは、ＶＰの関数実行シーケンスにリンク関数を含ませることを含む。
【００１５】
また、リンク関数は、第２のＶＰとの通信を確立することに加えて（または、第２のＶＰとの通信を確立することの代わりに）第１のＶＰとの通信を終了させることができる。
【００１６】
リンク関数は、ＵＩ上でのリモートＶＰのローカルな動的表示を可能にする。また、リンク関数を起動するとすぐ、ＵＩに接続されたＶＰの現在の状態を表す継続的に更新された表示を提供する動的接続が確立される。
【００１７】
他の好ましい実施例では、リンク関数を起動するとすぐ、ユーザはＵＩを使用してＶＰを構成させられる。
【発明の効果】
【００１８】
本発明の他の一般的側面では、複数のビジョンプロセッサ（ＶＰ）と少なくとも１つのユーザ・インターフェース（ＵＩ）を有するマシンビジョン・システムにおいて、第２のＶＰとの通信を確立するために第１のＶＰとの通信でＵＩに指示するための方法が提供される。本発明の方法は（ＵＩに含まれる）グラフィカル表示を提供することを含み、前記グラフィカル表示は、第２のＶＰとの通信を確立するようにＶＰからＵＩに指示させる起動信号を開始させるように適合される。
【００１９】
好ましい実施例では、複数のＶＰと少なくとも１つのＵＩがネットワーク経由で相互接続され、ネットワークはＴＣＰ／ＩＰネットワーク・プロトコルをサポートする。また、グラフィカル表示は、ユーザの動作（例えば、グラフィカル表示をマウスでクリックすること）に応答するように適合される。グラフィカル表示は、強調された文字列でもよい。
【００２０】
本発明の他の一般的側面では、ユーザ・インターフェース（ＵＩ）は、複数のビジョンプロセッサ（ＶＰ）を有するマシンビジョン・システムを提供する。ユーザ・インターフェースはスプレッドシート、およびグラフィカル表示を含み、前記グラフィカル表示はスプレッドシートに取り込まれ、複数のＶＰの１ＶＰとの通信を確立するためにＶＰからＵＩに指示させるように、グラフィカル表示はユーザの動作に応答するように適合される。好ましい実施例では、ＵＩに複数のＶＰのうちの１つのＶＰとの通信を終了させるように、グラフィカル表示はユーザの動作に応答するように更に適合される。他の実施例のように、グラフィカル表示は強調された文字列でよく、または映像的表象(iconic representation)でもよい。
【００２１】
本発明の他の一般的側面では、複数のビジョンプロセッサ（ＶＰ）、複数のＶＰののうちの第１のＶＰと通信する少なくとも１つのユーザ・インターフェース（ＵＩ）を含むマシンビジョン・システムが提供される。ＵＩはユーザに見えるグラフィカル表示を含み、複数のＶＰのうちの第２のＶＰとの通信を確立するためにＶＰからＵＩに指示させるように、グラフィカル表示はユーザの動作に応答するように適合される。好ましい実施例では、複数のＶＰと少なくとも１つのＵＩがネットワーク経由で相互接続される。ネットワークは、ＴＣＰ／ＩＰネットワーク・プロトコルをサポートする。
【００２２】
他の一般的側面では、本発明はＶＰがＶＰに接続されたＵＩに異なるＶＰへ再接続することを指示することを可能にする方法であり、それによりＶＰの集合体から成るビジョン・システムの構造の内部で適切に機能する柔軟な監視システムの実施を容易にする。他の一般的側面では、本発明はＵＩとＶＰの通信に使用される既存のアプリケーション・プロトコルの拡張であり、コマンドを発行し翻訳するための枠組みを提供し、新しいコマンドが追加されるという意味で拡張可能なアプリケーション・プロトコルと互換性がある。この拡張はＶＰからＵＩへのコマンドの形態を取り、コマンドが発行されるとき、コマンドの特定の内容は両方とも開発者により変更可能である。コマンドは既存のアプリケーション・プロトコルの単純な拡張として設計され、プロトコルと互換性があり、ＵＩにより翻訳可能な（ＶＰからＵＩへ転送される）数バイトのストリームの形態を取る。このことは、開発者が特定のパラメータに関連するＶＰについての知識を埋め込み、シームレスなマルチＶＰアプリケーションを提供することを可能にする。オペレータは結果を監視し、ビジョン・システムのアーキテクチャを最初に理解することなく、システムの任意のＶＰのパラメータを変更する。
【発明を実施するための最良の形態】
【００２３】
ＶＰのオペレーションは、１組の関数の一連の実行に分解できる。一般的なＶＰオペレーション・サイクルは、３つの関数の実行から成る。例えば、
１．Acquirelmage：ＶＰに接続されたディジタルカメラからの画像を読む関数、
２．ReadBarcode：画像に表示されるＵＰＣバーコードを見つけ出して復号化する関数、
３．WriteSerial：復号化された文字列を外部コンピュータまたは外部装置にＶＰに組み込まれたＲＳ２３２Ｃシリアルポート経由で書き込む関数である。
【００２４】
関数名は完全に任意であり、ＶＰ上に明示的に表示される必要はない。
【００２５】
各関数は１または複数のパラメータを有し、入力パラメータの何らかの組合せに基づく結果を生成する。例えば、cosと名付けられた数学的関数は単一のパラメータを有し、その結果として、（数値）パラメータにより指定される角度のコサインを生成する。より複雑な関数binarizeは、２次元グレースケール画像に対応する単一のパラメータを取り、その結果として、パラメータ画像を最も忠実に近似する２次元白黒画像を生成する。関数のパラメータは定数でもよく、または他の関数の結果でもよい。
【００２６】
パラメータを結果に変換するだけの標準的な関数に加えて、全てのＶＰにとって重要な他の２つのクラスの関数（入力関数、および出力関数）が存在する。入力関数はハードウェア装置からの情報を読み込み、それらの結果は装置の状態により変化する。マシンビジョン・システムにとって中心となる重要な関数は、カメラからの画像を取得する関数（前記のAcquirelmage関数）であり、この場合、関数の結果は、関数が実行されたときの撮像装置またはセンサの状態を忠実に近似する画像である。他の入力関数は、特化された装置経由で、ディジタル入力ライン、シリアルポートまたはイーサネット・ネットワークで送られたデータ、または互換性がある入力装置に接続できる他の外部エンティティの状態を読める。
【００２７】
入力関数と同様に、出力関数も特化されたハードウェア装置と対話する。しかし、それらの挙動は、接続された外部エンティティに状態を明らかにすることである。各関数が明らかにする特定の状態はパラメータに基づき、関数WriteSerialは単一の入力パラメータ（文字列）を取って、その文字列がシステムのシリアルポートを通して書き出されるようにする。他の出力関数は特定の電圧レベルを個々の出力制御ライン上で明らかにし、データをイーサネット・ネットワークを通して書き出すか、または（ユーザに関数パラメータの値について伝えることを目的とする）ＵＩにグラフィカルを表示させる。
【００２８】
また、関数は、入力挙動と出力挙動の組合せも有する。（制御関数と呼ばれる）これらの関数はＵＩに特定のグラフィカル項目を表示するように指示し、ユーザが前記項目と対話したことをＵＩがＶＰに通知するときに結果を生成する。図５は、ＵＩの好ましい実施例により表示されるＵＩ関数の実施例を示す。３つの関数が表示される。型Imageの結果を返すAcquirelmage５２、表示ラベル「select」を有する制御関数CheckBox５３、および３つの文字列要素「name O」「name 1」「name 2」で構成される制御関数ListBoxである。この実施例では、ユーザは文字列要素をListBoxから選択しているところである。これを行うために、ユーザは薄い色のカーソル５４をListBox関数の上に配置して、（マウスボタンをクリックすることにより）関数を選択する。このことは関数名と関連するパラメータがスクリーン５１の上の方に表示されるようにして、関数のパラメータにより指定されたリスト５５を展開する。ユーザが３つの選択項目の１つを選択して満足するとき、マウスを２回クリックすることが制御関数との対話を終わらせて、ＶＰは選択された値によって更新される。類似の方法では、CheckBox関数５３のグラフィカル表示をクリックすることがチェックボックスの状態を切り替えて、ＶＰがチェックボックスの現在の状態によって更新されるようにする。
【００２９】
本発明の１つの一般的側面は、Linkと名付けられた新しい型の制御関数である。ＶＰによって実行されるとき、Link関数は、もう１つのＶＰを指定するコマンドを現在接続されているＵＩに送る。このコマンドを受け取るとすぐ、ＵＩは現在のＶＰを切り離して、指定されたＶＰに接続する。Link関数は制御関数として実施され、図７に示されるように、ユーザは関数を実行させるLink関数７１のグラフィカル表示をクリックする。
【００３０】
本発明のLink関数の制御関数の側面は、ウェブ閲覧ソフト、および他の多くのソフトウェアパッケージ（例えば、Microsoft Word、およびExcel）に含まれるネットワークのハイパーリンク機能とは区別される。主な相違は、ハイパーリンクの場合、ローカル・コンピュータへ転送されるリモート・コンピュータのファイルへのリファレンスをハイパーリンクが含むことである。ハイパーリンクの基本的モデルは、分散したデータのローカルな処理と表示である。ハイパーリンクが選択されるとき、リモート・データセットの静的スナップショット（多くの場合、静的コンピュータファイルであり、例えば、ＨＴＭＬファイル）は、表示のためにローカル・システムへ転送される。対照的に、本発明のネットワーク化されたビジョン・システムの基本的モデルは、リモートなビジョン・システムのローカルな動的表示である。ユーザが本発明のLinkを選択するとき、ＵＩに接続されたＶＰの現在の状態を表す継続的に更新された表示を提供する動的接続が確立され、ユーザがＵＩを使用してＶＰを設定することを同時に可能にする。
【００３１】
また、適切な条件が満たされるときに、Link関数はＶＰによって「自動的に」実行される。例えば、特定の文字列がReadBarcode関数によって読み込まれるとき、もう１つのＶＰの状態を直ちに見ることはオペレータにとって重要である。そのような条件が生じるときにLink関数を実行することが、現在接続されているＵＩを他のＶＰに再接続させる（図９を参照のこと）。このモードのオペレーションは、ウェブ閲覧ソフトおよび類似のソフトウェアパッケージへのハイパーリンクが利用できない機能である。
【００３２】
また、Link関数の実行は、ＵＩ／ＶＰチャネルとは別の通信チャネル経由でＶＰと通信している外部エージェントにより駆動される。ＶＰの好ましい実施例では、ＶＰは（ＵＩとの通信に使用されるプロトコルに加えて）Telnetプロトコルをサポートし、Telnetプロトコルは外部エージェントにＶＰ上で特定の関数を実行させる仕組みを提供する。外部エージェントは、次の１または複数のイベントに基づいて実行させる。即ち、
センサ（例えば、光接近センサ）状態の変化、
機械的スイッチ、または透過ビーム型センサの機械的、または電気的状態、もしくはコンピュータ、または他の機械のソフトウェア的状態に基づくプログラムの判断、
コマンドをタイプすること、電気的接続を閉じること、もしくは人間−機械対話（例えば、チェックボックス、またはラジオボタンをクリックすること）により示される人間の判断である。
【００３３】
上記のように、ユーザが図７のLink関数７１のグラフィカル制御コンポーネントを選択すること、またはＶＰのオペレーションを定義する関数のシーケンスの中に関数を配置することの何れによってもLink関数は実行される。ＵＩのＶＰからコマンドを発行することにより、Link関数は既存のアプリケーション・プロトコルの枠組みの中で動作する。そういうものであるから、Link関数は、既存のアプリケーション・プロトコルに対する拡張を表す。どのように関数が実行されるかに関係なく、Link関数の実行は次のシーケンスのイベントを開始する（図８も参照のこと）。
１．ＵＩが、考えられる複数のＶＰ８１の１つに接続される。
２．（ユーザの動作、またはプログラムされた動作によってもたらされる）Link関数を実行する。
３．コマンドがＵＩ８２に対して発行される。コマンドは、
新しいＶＰの識別子（例えば、ＩＰアドレス、またはマシン名）、
オプション：新しいＶＰに対するビューのシステムに依存する記述、
オプション：新しいＶＰに対するカーソル位置を含む。
【００３４】
コマンドは、ＵＩによって翻訳可能な数バイトのストリームまたはパケットとして符号化される。例えば、テキストベースのアプリケーション・プロトコルでは、コマンドは文字列Reconnect(＜アドレス＞,＜ビュー＞,＜カーソル位置＞)の形態を取る。ここで、＜アドレス＞,＜ビュー＞,＜カーソル位置＞は、各コマンド・パラメータを一意に識別する文字列である。ＶＰが発行したコマンドReconnect("system 2", " ", " ")は、ＵＩを既定のビューとカーソル位置を有する「system 2」と名付けられたＶＰに再接続させる。
４．ＵＩがコマンドを受け取る。
５．ＵＩが現在のＶＰ８３を切り離す。このステップもオプションである。何故ならば、ＵＩは複数のＶＰへ同時に接続できるからである。
６．ＵＩは、指定されたＶＰ８４にアプリケーション層プロトコルを使用して接続する。
７．もしコマンドのオプションのコンポーネントが含まれていたら、ＵＩはＶＰのビューを調節して、カーソル位置を設定する。
【００３５】
好ましい実施例では、図６に示されるように、Link関数は４つのパラメータを有する。Label６１は、Link関数が制御関数７１（図７）として構成されるときに表示される文字列である。Host Name６２は、新しいＶＰを一意に識別する記号識別子、ＶＰ名、またはネットワークＩＰアドレスである。Dialog Label６３は、新しいＶＰのグラフィカル・ビューを定義する文字列である。Cursor Position６４は、そのグラフィカル・ビュー内部のカーソル位置を定義する。指定されたＶＰへの接続に続き、Dialog LabelおよびCursor Positionは、ＵＩにより生成された表示を共に記述する。これらのパラメータがどのようにＵＩ表示を制御するかについての詳細は、ＵＩの特定の実施に完全に依存する。
【００３６】
ＵＩとＶＰの両方の好ましい実施例はTCP/IP10/100-base-Tイーサネット・ネットワーク上でＯＳＩアプリケーション層通信を利用するが、本発明は、任意の通信媒体上で動作するアプリケーション層プロトコルに等しく当てはまる。（ＡＴＭ、無線ネットワーク、およびギガビット・イーサネットを含む）他のタイプのネットワークも、本発明と互換性がある。更に、図２に示されるように、単一のＵＩは専用の通信チャネル（例えば、ＲＳ２３２Ｃシリアルポート）経由で各ＶＰに接続される。そのような設定では、ネットワーク上のＶＰへのＵＩの接続フェーズと同じ方法で、ＶＰの１つへのＵＩの論理接続を交換または確立するために本発明は使用される。
【００３７】
以上、本発明の好ましい実施例について図示し記載したが、特許請求の範囲によって定められる本発明の範囲から逸脱することなしに種々の変形および変更がなし得ることは、当業者には明らかであろう。
【図面の簡単な説明】
【００３８】
【図１】ビジョンプロセッサとユーザ・インターフェースの両方が単一のコンピュータの中で実現される単体のマシンビジョン・システムを示すブロック図である。
【図２】汎用通信リンク経由でビジョンプロセッサ・コンピュータに接続されたユーザ・インターフェース・コンピュータを含むマシンビジョン・システムを示すブロック図である。
【図３】ネットワーク経由でユーザ・インターフェース・コンピュータに接続された複数のビジョンプロセッサ・コンピュータを含むネットワーク化されたマシンビジョン・システムを示すブロック図である。
【図４】２ＶＰビジョン・システムを設定するために開発者により実行されるオペレーションのシーケンスである。
【図５】設定フェイズとオペレーション・フェイズの間にＶＰ関数を表示するＵＩの好ましい実施例である。
【図６】Link関数の好ましい実施例の設定である。
【図７】ユーザ制御としてのLink関数の好ましい実施例の設定である。
【図８】Link関数の実行を示すブロック図である。
【図９】ＶＰ関数のシーケンスのメンバとしてのLink関数の実行を示すブロック図である。
【符号の説明】
【００３９】
１１  カメラ
１２  取得回路
１３  汎用プロセッサ
１４  ビジョンプロセッサ（ＶＰ）
１５  ユーザ・インターフェース（ＵＩ）
１６  入力装置回路
１７  表示回路
２１  カメラ
２２  取得回路
２３  汎用プロセッサ
２５  通信回路
２６  通信リンク
２７  通信回路
２８  汎用プロセッサ
２９  ユーザ・インターフェース（ＵＩ）
３０  入力装置回路
３１  表示回路
３２  ＵＩコンピュータ
３５  ユーザ・インターフェース（ＵＩ）
３６  ネットワーク
３７，３８，３９  ビジョンプロセッサ（ＶＰ）
【図１】
2004537784.tif 000003
【図２】
2004537784.tif 000004
【図３】
2004537784.tif 000005
【図４】
2004537784.tif 000006
【国際公開パンフレット】
2004537784.tif 000007
2004537784.tif 000008
2004537784.tif 000009
2004537784.tif 000010
2004537784.tif 000011
2004537784.tif 000012
2004537784.tif 000013
2004537784.tif 000014
2004537784.tif 000015
2004537784.tif 000016
2004537784.tif 000017
2004537784.tif 000018
2004537784.tif 000019
2004537784.tif 000020
2004537784.tif 000021
2004537784.tif 000022
2004537784.tif 000023
2004537784.tif 000024
2004537784.tif 000025
2004537784.tif 000026
2004537784.tif 000027
2004537784.tif 000028
2004537784.tif 000029
2004537784.tif 000030
2004537784.tif 000031
2004537784.tif 000032
2004537784.tif 000033
2004537784.tif 000034
2004537784.tif 000035
2004537784.tif 000036
2004537784.tif 000037
2004537784.tif 000038
【国際公開パンフレット（コレクトバージョン）】
2004537784.tif 000039
【国際調査報告】
2004537784.tif 000040
2004537784.tif 000041
2004537784.tif 000042