(57)【要約】      （修正有）【課題】プログラム可能な計測システムのためのカスタマイズされて同期された参照メモを生成するためのリモートアクセサリを提供する。【解決手段】計測システムは、アクセサリ通信部を含むアクセサリインタフェース部と、アクティブな「現行命令」表現を含む編集ウィンドウ内のパートプログラム命令表現を有するプログラミング環境を含むユーザインタフェースとを含み得る。リモートデバイスとプログラミング環境との間の接続を提供し、現行命令表現に関する現行命令識別子を出力する。リモートデバイスは、現行命令表現に対応する汎用命令タイプに特に関連付けられるように構成された現行命令参照情報ユーザインタフェース部を表示するために、現行命令識別子を受信し、その現行命令識別子に応答して動作する。ユーザインタフェースは、汎用命令タイプに関連するリモートデバイスのユーザによって予め設定されたカスタマイズされた参照情報を表示できる。【選択図】図２
2015135673.tif 000002
【特許請求の範囲】
【請求項１】
プログラム可能な計測システムのプログラミング環境に関係してリモートデバイスを動作させるための方法であって、前記プログラム可能な計測システムが、ワークピース計測部と、ワークピースを保持するための可動ステージと、制御部と、ディスプレイと、アクセサリ通信部を含むアクセサリインタフェース部と、前記プログラム可能な計測システムの学習モード中に動作可能であるプログラミング環境を含むユーザインタフェースとを含み、前記プログラミング環境が、編集ウィンドウ内のパートプログラム命令の編集可能パートプログラム表現を含み、前記編集可能パートプログラム表現が、現在アクティブな現行命令表現を含む命令表現を含み、
前期方法が、
前記リモートデバイスと前記プログラミング環境との間の通信接続を提供するステップと、
前記現行命令表現に対応する現行命令識別子を前記リモートデバイスに出力するように前記アクセサリ通信部を動作させるステップと、
前記現行命令識別子を受信するように前記リモートデバイスを動作させるステップと、
前記現行命令表現に対応する汎用命令タイプに関するように構成された現行命令参照情報ユーザインタフェース部を表示するために、前記受信した現行命令識別子に応答するプログラム又はルーチンに従って前記リモートデバイスを動作させるステップと
を含む、方法。
【請求項２】
前記受信された現行命令識別子に応答する前記プログラム又はルーチンが、前記現行命令表現に対応する前記汎用命令タイプに関するように構成された前記現行命令参照情報ユーザインタフェース部を自動的に表示する、
請求項１に記載の方法。
【請求項３】
前記現行命令識別子が、前記現行命令表現と、対応する現行のパートプログラム命令と、前記現行命令表現に対応する前記汎用命令タイプとのうちの少なくとも１つを含む
請求項１に記載の方法。
【請求項４】
前記リモートデバイスのディスプレイ内で、前記現行命令表現と、前記現行命令表現に対応する前記汎用命令タイプとのうちの少なくとも１つを自動的に表示するように前記リモートデバイスを動作させるステップをさらに含む、請求項１に記載の方法。
【請求項５】
前記現行命令参照情報ユーザインタフェース部が、ａ）前記現行命令表現に対応する前記汎用命令タイプに関連する前記リモートデバイスに記憶されている参照情報を識別する参照情報選択部と、ｂ）前記現行命令表現に対応する前記汎用命令タイプに関連する前記リモートデバイスに記憶されている参照情報を表示する参照情報表示エリアと、ｃ）前記現行命令表現に対応する前記汎用命令タイプに関連付けられるカスタム参照情報を設定するために使用可能な参照情報作成部とのうちの少なくとも１つを含む、請求項１に記載の方法。
【請求項６】
前記現行命令参照情報ユーザインタフェース部が、少なくとも、ｃ）前記参照情報作成部を含み、前記参照情報作成部が、さらに、前記現行命令表現に対応する前記汎用命令タイプに関連する前記参照情報を記憶するために使用可能である、請求項５に記載の方法。
【請求項７】
前記参照情報作成部が、前記設定されたカスタム参照情報で使用するための前記現行命令表現を複製するように動作可能な複製要素を含む、請求項６に記載の方法。
【請求項８】
前記現行命令参照情報ユーザインタフェース部が、ａ）前記現行命令表現に対応する前記汎用命令タイプに関連する前記リモートデバイスに記憶されている参照情報を識別する前記参照情報選択部と、ｂ）前記現行命令表現に対応する前記汎用命令タイプに関連する前記リモートデバイスに記憶されている参照情報を表示する前記参照情報表示エリアとのうちの少なくとも１つを含み、
前記ａ）において、前記識別された参照情報が、前記リモートデバイスのユーザによって予め設定されたカスタム参照情報を含み、
前記ｂ）において、前記表示された参照情報が、前記リモートデバイスのユーザによって予め設定されたカスタム参照情報を含む、
請求項５に記載の方法。
【請求項９】
前記ａ）及びｂ）において、前記現行命令表現に対応する前記汎用命令タイプに関連する前記リモートデバイスに記憶されている前記参照情報が、前記リモートデバイスのユーザによって予め設定されたカスタム参照情報からなる、請求項８に記載の方法。
【請求項１０】
前記ａ）において、前記参照情報選択部が、前記リモートデバイスのユーザによって予め設定されたカスタム参照情報からなる参照情報を識別するように構成された設定を含み、
前記ｂ）において、前記参照情報表示エリアが、前記リモートデバイスのユーザによって予め設定されたカスタム参照情報からなる参照情報を表示するように構成された設定を含む、
請求項８に記載の方法。
【請求項１１】
前記現行命令表現に対応する前記汎用命令タイプに関連する前記リモートデバイスに記憶されている参照情報がカスタム参照情報を含むときに、前記方法が、
ｉ）リモート参照情報利用可能インジケータと、ｉｉ）前記現行命令表現に対応する前記汎用命令タイプに関連する前記リモートデバイスに記憶されている前記カスタム参照情報のコピーとのうちの少なくとも１つを表示するように前記プログラミング環境を動作させるステップをさらに含む、
請求項８に記載の方法。
【請求項１２】
前記リモートデバイスと、前記プログラム可能なシステムの前記プログラミング環境との間の対話が、少なくとも一部、ウェブサービスを使用して実施される、請求項１に記載の方法。
【請求項１３】
前記リモートデバイスが、前記プログラム可能な計測システム専用ではないポータブルデバイスであり、前記リモートデバイスと前記プログラミング環境との間の接続を提供するステップが、前記プログラム可能な計測システムに接続するために使用可能なネットワークに前記リモートデバイスを接続するステップを含む、請求項１に記載の方法。
【請求項１４】
前記リモートデバイスが、スマートフォン及びポータブルコンピュータのうちの１つである、請求項１に記載の方法。
【請求項１５】
前記計測システムの前記アクセサリインタフェース部が、アクセサリ接続部を含み、
前記リモートデバイスと前記プログラミング環境との間の接続を提供するステップが、前記リモートデバイスを前記プログラミング環境に接続するように前記アクセサリ接続部を動作させるステップを含む、
請求項１に記載の方法。
【請求項１６】
前記アクセサリ接続部が、前記プログラミング環境内で表示される接続ユーザインタフェースを含み、前記接続ユーザインタフェースが、前記リモートデバイスを使用して実行すべき命令を含む、請求項１に記載の方法。
【請求項１７】
プログラム可能な計測システムのプログラミング環境に関係して動作されるリモートデバイスを含むシステムであって、ワークピース計測部と、ワークピースを保持するための可動ステージと、制御部と、ディスプレイと、前記プログラム可能な計測システムの学習モード中に動作可能であるプログラミング環境を含むユーザインタフェースとを含み、前記プログラミング環境が、編集ウィンドウ内のパートプログラム命令の編集可能パートプログラム表現を含み、前記編集可能パートプログラム表現が、現在アクティブな現行命令表現を含む命令表現を含み、
前記リモートデバイスが、
前記リモートデバイスと前記プログラミング環境との間の接続を提供するように構成されたリモートデバイス通信部と、
ディスプレイ部と、
ユーザインタフェースと、
処理装置とを含み、
前記処理装置が、
前記プログラミング環境から、前記現行命令表現に対応する現行命令識別子を受信するように前記リモートデバイスを動作させること、及び
前記受信した現行命令識別子に応答して、前記現行命令表現に対応する汎用命令タイプに特に関連付けられるように構成された現行命令参照情報ユーザインタフェース部を表示するように前記リモートデバイスを動作させること
を含む動作を実施するために、前記プログラムされた命令を実行するように構成される、システム。
【請求項１８】
前記受信された現行命令識別子に応答して、現行命令参照情報ユーザインタフェース部を表示するように前記リモートデバイスを動作させることが、前記受信された現行命令識別子に応答して、前記現行命令表現に対応する前記汎用命令タイプに関するように構成された前記現行命令参照情報ユーザインタフェース部を自動的に表示するように前記リモートデバイスを動作させることを含む、
請求項１７に記載のシステム。
【請求項１９】
前記現行命令参照情報ユーザインタフェース部が、ａ）前記現行命令表現に対応する前記汎用命令タイプに関連する前記リモートデバイスに記憶されている参照情報を識別する参照情報選択部と、ｂ）前記現行命令表現に対応する前記汎用命令タイプに関連する前記リモートデバイスに記憶されている参照情報を表示する参照情報表示エリアと、ｃ）前記現行命令表現に対応する前記汎用命令タイプに関連付けられるカスタム参照情報を設定するために使用可能な参照情報作成部とのうちの少なくとも１つを含む、請求項１７に記載のシステム。
【請求項２０】
前記リモートデバイスが、前記プログラム可能な計測システム専用ではないポータブルデバイスであり、前記リモートデバイス通信部が、前記プログラム可能な計測システムに接続するために使用可能なネットワークへの接続を提供するように構成される、請求項１７に記載のシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
背景
一般に使用されているプログラム可能な計測システムは、マシンビジョン検査システム（ＭＶＩＳ）及び／又は座標測定機（ＣＭＭ）を含み得る。汎用の「オフライン」精度ビジョンシステムとして特徴付けることができる１つの例示的な従来技術のＭＶＩＳは、Mitutoyo America Corporation (MAC)（米国イリノイ州オーロラ）から入手可能な市販のQUICK VISION（登録商標）シリーズのＰＣベースビジョンシステム及びQVPAK（登録商標）ソフトウェアである。QUICK VISION（登録商標）シリーズのビジョンシステム及びQVPAK（登録商標）ソフトウェアの機能及び動作は、一般に、例えば、QVPAK 3D CNC Vision Measuring Machine User's Guide（２００３年１月発行）及びQVPAK 3D CNC Vision Measuring Machine Operation Guide（１９９６年９月発行）で述べられており、それら各文献の全体を参照により本明細書に援用する。
【０００２】
QUICK VISION（商標）システムなどの汎用高精度マシンビジョン検査システムは、一般に、自動化されたビデオ検査を提供するようにプログラム可能である。そのようなシステムは、典型的には、「エキスパートでない」操作者が動作及びプログラミングを実施することができるように、ＧＵＩ機能及び規定の画像解析「ビデオツール」を含む。例えば、全体を参照により本明細書に援用する米国特許第６，５４２，１８０号（本明細書では以後「’１８０特許」）は、自動化されたビデオ検査を使用するビジョンシステムを教示する。’１８０特許で教示されているように、自動化されたビデオ検査計測機器は、一般に、各特定のワークピース構成に関してユーザが自動検査イベントシーケンスを定義できるようにするプログラミング機能を有する。そのようなプログラミングは、テキストベースのプログラミングとして実装することができ、又は記録モードによって実装することができ、記録モードは、（例えば様々な半自動又は自動ビデオツール動作を用いて）ユーザが定義及び／又は実施する検査動作のシーケンスに対応する機械制御命令のシーケンス及び個々のビデオツールパラメータを記憶することによって、検査イベントシーケンスを徐々に「学習」する。あるいは、そのようなプログラミングは、上記の両方の方法の組合せによって実装することもできる。上記の記録モードは、しばしば、「学習モード」又は「訓練モード」と呼ばれる。いずれの技法でも、機械制御命令及び個々のビデオツールパラメータは、一般に、特定のワークピース構成に特有のパートプログラムとして記憶され、動作の「実行モード」中に、検査動作の所定のシーケンスを自動的に実施する。ＣＭＭに関するパートプログラムも、類似の様式でプログラムすることができる。例示的なＣＭＭは、例えば、米国特許第７，２５１，５８０号、同第６，０４４，５６９号、及び同第８，５１６，７１２号に開示されており、それら各特許文献の全体を参照により本明細書に援用する。
【０００３】
そのような計測システムの多くのユーザ及びプログラマは、上で概説した記録モードを使用して、パートプログラムを作成及び／又は編集する。得られたパートプログラム動作又は命令を、例えば単純化されたグラフィカル表現でそのようなユーザに提示することができる。多くの計測システムは、熟練していないユーザが、根底にあるパートプログラミング言語命令を閲覧又は理解する必要がないように設計される。パートプログラムの市販の単純化されたグラフィカル表現のいくつかは、単純化された「コメント」文によって、パートプログラム表現に説明的及び／又は補足的な情報を付け加えることができる機能を含む。しかし、そのような機能は、典型的には初歩的なものである。容易にアクセス可能又は閲覧可能であるように、パートプログラム表現での特定の位置に多彩な及び／又は複雑な補足情報（例えば、個人化されたユーザメモ又は説明）を追加することは、現在、ほとんどのそのようなシステム及びほとんどのユーザの能力を超えている。
【０００４】
さらに、従来、計測システムプログラミング環境は、例えば全体を参照により本明細書に援用する米国特許出願公開第２０１２／０２２９６６２  Ａ１号に開示されているように、専用タブレットデバイスやティーチングペンダントなど専用リモートデバイスにしかリンクされていない。そのようなリモートデバイスが専用及び／又は特別にプログラムされたインタフェース機能を有する必要があることが、それらのリモートデバイスの利用可能性と動作の両方を制約する。そのような専用リモートデバイスは、それらの関連のホストシステムと同様に、リモートデバイスのホストシステムと連動してリモートデバイスを動作させるためにユーザが特別な訓練を受けていることを必要とすることがある。また、それらの関連のホストシステムと同様に、そのような専用リモートデバイスは、一般に複数のユーザ間で共有され、１人のユーザが自分の個人的な嗜好に合わせてリモートデバイスをカスタマイズすることも、専用で使用するために持ち運ぶことも望ましくない。さらに、そのようなリモートデバイス用のユーザインタフェースは、典型的には、あまり熟練していないユーザが、ホストシステムに関するプログラミング環境で操作しながら、パートプログラム内の特定の命令又は特定の命令タイプに関連付けられるカスタマイズされた補足情報（例えば参照情報又は説明）を容易に閲覧及び／又は作成できるようにするという問題には向けられていない。ユーザが自由に使える利用可能なハードウェア及び方法の前述した制約及び欠点を受けずに、ユーザが、ホストシステムに関するプログラミング環境で操作しながら、パートプログラム内の特定の命令又は命令タイプに関連付けられる補足又は参照情報を閲覧することができることが望ましい。例えば、１人のユーザが、自分の個人的な嗜好に合わせてそのような参照情報をカスタマイズし、自分の必要性に応じてカスタマイズされた最小量の情報を容易に見付け、そのような情報を、典型的には自分専用で使用するために所有する及び／又は持ち運ぶデバイスに記憶し、そのデバイスを、対応するプログラム可能な計測システムのプログラミング環境に容易に接続できることが望ましい。
【０００５】
図面の簡単な説明
本発明の上記の態様、及び付随する利点の多くは、添付図面に関連付けて述べる以下の詳細な説明を参照してより良く理解されたときに、より容易に把握されよう。
【図面の簡単な説明】
【０００６】
【図１】汎用高精度マシンビジョン検査システムの様々な典型的な構成要素を示す図である。
【図２】図１のものと同様であり、本明細書で述べるインタフェース機能を含むマシンビジョン検査システムの制御システム部及びビジョン構成要素部のブロック図である。
【図３】計測システムのプログラミング環境内で使用可能なアクセサリインタフェース部の１つの例示的実施形態と、アクセサリインタフェース部に接続されるときにリモートデバイス参照情報アクセサリとして使用可能なリモートデバイスの１つの例示的実施形態とのブロック図である。
【図４】本明細書で開示される原理による、編集部を介して計測システムのプログラミング環境にリンクさせることができるリモートデバイス参照情報アクセサリの１つの例示的実施形態のブロック図である。
【図５】本明細書で開示される原理に従ってリモート参照情報アクセサリが応答することができるパートプログラム命令及び／又は命令表現の作成に関係付けられる計測システムのプログラミング環境でのユーザインタフェース機能及び動作の一実施形態を示す図である。
【図６】本明細書で開示される原理に従ってリモートデバイスに接続するために使用可能な計測システムのプログラミング環境でのユーザインタフェース機能の一実施形態を示す図である。
【図７Ａ−７Ｂ】リモートデバイスを計測システムプログラミング環境に接続するためにリモートデバイス上で使用可能なユーザインタフェース機能及び動作の一実施形態を示す図である。
【図８Ａ−８Ｃ】プログラミング環境での現行命令表現に対応する汎用命令タイプに特に関連付けられる１組の参照情報の閲覧及び／又は作成に関係する、リモートデバイスで使用可能なユーザインタフェース機能及び動作の一実施形態の様々な態様を示す図である。
【図９】汎用命令タイプに関連付けられる１組の参照情報を閲覧及び／又は作成する目的でのリモートデバイスとの対話に関係付けられる、プログラミング環境内の様々なユーザインタフェース機能及び動作の一実施形態を示す図である。
【図１０】本明細書で開示される様々な機能を実装するためにウェブサービスを使用する、リモートデバイス参照情報アクセサリ、及びプログラミング環境のアクセサリインタフェース部の様々な機能及び動作の１つの例示的実装形態のブロック図である。
【図１１】プログラミング環境での命令表現に関連付けられる参照情報の提供に関係する本明細書で開示される様々な機能及び動作と共にプログラミング環境で有用な、ウィンドウ、アプリケーション、又はデバイス間でのノード識別及び動作の調整の一実施形態を示す図である。
【図１２】本明細書で開示される機能及び動作による、プログラム可能な計測システムのプログラミング環境に関係してリモートデバイスを動作させるための方法の１つの例示的実施形態を示す流れ図であって、ここで、リモートデバイスが、プログラミング環境での現行命令表現に応答して、現行命令表現に対応する汎用命令タイプに特に関係付けられる参照情報を表示する図である。
【発明を実施するための形態】
【０００７】
詳細な説明
プログラム可能な計測システムにあまり熟練していないユーザは、先に概説した制約及び欠点を伴う専用リモートデバイスではなく、自分が既に使い慣れているパーソナルコンピューティング及び／又はファイル記憶デバイス（例えばタブレットやスマートフォンなど）を携帯することがよくある。ユーザは、そのようなデバイスに個人的なメモ、ファイル、及び／又は画像を保存することを望むことがあり、それらは、プログラミングコマンド及び／又はシステム訓練、特別なワークピース及び／又はセットアップインタフェース機能、又はパートプログラミングに関係付けられる他の考慮事項をユーザが文書化及び記憶する助けとなる。さらに、そのようなパーソナルコンピューティング及び／又はファイル記憶デバイスは、多くの場合、カメラ、インターネットブラウザ、並びに他のデバイス及びプログラムを含み、ユーザは、それらを使い慣れており、パートプログラミングに関係する追加の参照情報を生成するために使用したいことがある。しかし、あまり熟練していないユーザは、そのような使い慣れているパーソナルデバイスを、リモートアクセサリとして計測システムに接続することができない。しかし、計測システムのプログラミング環境は、そのようなデバイスの接続を容易にするインタフェース機能、又は、プログラミング環境と、プログラム可能な計測システムに通常は関連付けられていないそのようなリモートデバイスとの便利な対話を可能にするインタフェース機能を含んでいない。
【０００８】
タブレットやスマートフォンなどのパーソナルモバイル又はリモートデバイスは、より汎用性が高くなり、プログラム可能な計測システムが、そのような計測システムのネイティブ動作及びプログラミング環境能力を補足するために、そのようなリモートデバイスの「無料の」、使い慣れた、容易に利用可能な機能を提供するために容易に接続することができるようにする機能を含んでいることが望ましい。
【０００９】
本明細書で開示されるように、計測システムに通常は関連付けられていないリモートデバイスは、計測システムをプログラミングする際にユーザを支援することができる参照情報を閲覧及び／又は作成するために、計測システムのプログラミング環境と協同して対話することができる。特に、そのようなデバイスは、計測システムを含む構成にリンクさせることができ、それにより、あまり熟練していないユーザが、パートプログラムを作成及び／又は編集しながら、編集環境でのパートプログラム及び／又はその表現内の特定の命令又は命令タイプに関連付けられる補足又は参照情報を閲覧及び／又は作成することができる。様々な実施形態において、リモートデバイス及び／又はプログラミング環境は、プログラミング環境内での「アクティブ」な現行命令である命令又は命令タイプと同期されるようにリモートデバイスが動作するように構成することができる。様々な実施形態において、補足又は参照情報は、リモートデバイスの頻繁なユーザ（例えばリモートデバイスの所有者）がカスタマイズしてリモートデバイスに記憶した情報を含む、又はそのような情報からなることがある。
【００１０】
図１は、１つの例示的なプログラム可能な計測システムの様々な典型的な構成要素を示す図であり、プログラム可能な計測システムは、この例では、本明細書で述べる方法に従って使用可能なマシンビジョン検査システム１０である。マシンビジョン検査システム１０は、ビジョン測定機１２を含み、ビジョン測定機１２は、（例えばコネクタ又は無線接続を介して）制御コンピュータシステム１４とデータ及び制御信号を交換するように接続される。さらに、制御コンピュータシステム１４は、モニタ又はディスプレイ１６、プリンタ１８、ジョイスティック２２、キーボード２４、及びマウス２６とデータ及び制御信号を交換するように接続される。モニタ又はディスプレイ１６は、マシンビジョン検査システム１０の動作を制御及び／又はプログラミングするのに適したユーザインタフェースを表示することができる。様々な実施形態において、タッチスクリーンタブレットなどが、コンピュータシステム１４、ディスプレイ１６、ジョイスティック２２、キーボード２４、及びマウス２６のいずれか又は全ての機能を代替する、及び／又は冗長的に提供することがあることを理解されたい。
【００１１】
制御コンピュータシステム１４は、一般に、パーソナルコンピュータ、サーバコンピュータ、ミニコンピュータ、メインフレームコンピュータ、これらのコンピュータの任意のものを含む分散計算環境など、任意の計算システム又はデバイスからなることがある。１つ又は複数の汎用又はカスタム処理装置及び関連のシステムが、本明細書で述べる機能を行うために任意の適切な既知の方法に従ってソフトウェアを実行することができる。ソフトウェアは、任意の適切な既知のメモリ又は既知の記憶デバイスに記憶することができる。ソフトウェアは、特定のタスクを行う、又は特定の抽象データタイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む１つ又は複数のプログラムモジュールを含み得る。分散コンピューティング環境では、プログラムモジュールの機能を、複数のコンピューティングシステム又はデバイスにわたって複合又は分散させ、サービスコールによって有線又は無線構成でアクセスすることができる。
【００１２】
ビジョン測定機１２は、可動ワークピースステージ３２と、ズームレンズ又は交換可能なレンズを含み得る光学撮像システム３４とを含む。マシンビジョン検査システム１０は、一般に、上述したQUICK VISION（登録商標）シリーズのビジョンシステム及びQVPAK（登録商標）ソフトウェア、及び類似の現在市販されているシステムに匹敵する。また、マシンビジョン検査システム１０は、本出願と同じ譲受人の米国特許第７，４５４，０５３号、同第７，３２４，６８２号、同第８，１１１，９０５号、及び同第８，１１１，９３８号にも記載されている。
【００１３】
図２は、図１のマシンビジョン検査システムと同様のマシンビジョン検査システム１００の制御システム部１２０及びビジョン構成要素部２００のブロック図であり、本明細書で述べる原理に従って様々な実施形態で有用なインタフェース機能を含む。制御システム部１２０は、ビジョン構成要素部２００を制御するために利用される。図２に示されるように、ビジョン構成要素部２００は、光学アセンブリ部２０５と、光源２２０、２３０、及び２４０（それぞれ信号ライン又はバス２２１、２３１、及び２４１を介して接続される）と、中央透明部２１２を有するワークピースステージ２１０とを含む。ワークピースステージ２１０は、Ｘ軸及びＹ軸に沿って、ワークピース２０を保持することができるステージの表面に概ね平行な平面内で移動可能である。光学アセンブリ部２０５は、カメラシステム２６０と、交換可能な対物レンズ２５０とを含み、また、ターレットレンズアセンブリ２８０、又は交換可能な倍率変更レンズなどを含み得る。光学アセンブリ部２０５は、カメラシステム２６０によって取得される画像の焦点を変えるために、モータ２９４を使用して、Ｘ軸及びＹ軸に直交するＺ軸に沿って移動可能である。用語「Ｚ軸」は、画像を焦点合わせするために使用される軸を表す。モータ２９４は、信号ライン２９６を介してインタフェース１３０に接続される。
【００１４】
ワークピース２０は、ワークピースステージ２１０上に配置することができ、ワークピースステージ２１０は、交換可能な対物レンズ２５０がワークピース２０上の位置間で移動するように制御される。１つ又は複数の光源が、それぞれのソースライト２２２、２３２、又は２４２を放出して、ワークピース２０を照明することができ、反射又は透過されたワークピース光２５５は、対物レンズ２５０及びターレットレンズアセンブリ２８０を通過して、カメラシステム２６０に進む。カメラシステム２６０によって取得された画像は、信号ライン２６２上で、制御システム部１２０に出力される。画像の倍率を変えるために、信号ライン又はバス２８１を介してターレットレンズアセンブリ２８０の回転を制御することができる。
【００１５】
図２に示されるように、様々な例示的実施形態において、制御システム部１２０は、コントローラ１２５と、電源部１２８と、入出力インタフェース１３０と、メモリ１４０と、ワークピースプログラムジェネレータ及びエグゼキュータ１５０と、レコーダ／トランスレータ１５５と、学習モード部１５６と、実行モード部１５７と、編集部１６０と、代理データマネージャ１８０と、プログラムステータスマネージャ１８５と、ノードマネージャ１９０と、ウィンドウ間自動スクロール部１９５と、アクセサリインタフェース部３００’とを含み、アクセサリインタフェース部３００’を使用して、以下でより詳細に述べるように、リモートデバイス参照情報アクセサリ４００’に接続することができる。これらの構成要素及び以下に述べる追加の構成要素はそれぞれ、１つ又は複数のデータ／制御バス、及び／又はアプリケーションプログラミングインタフェースによって、又は様々な要素間の直接接続によって相互接続することができる。
【００１６】
入出力インタフェース１３０は、撮像制御インタフェース１３１と、運動制御インタフェース１３２と、照明制御インタフェース１３３と、レンズ制御インタフェース１３４とを含む。照明制御インタフェース１３３は、様々な対応する光源に関して、選択、パワー、オン／オフスイッチ、及び適用可能であればストローブパルスタイミングを制御する。
【００１７】
メモリ１４０は、画像ファイルメモリ部１４１と、パートプログラム１４２ＰＰなどを含み得るワークピースプログラムメモリ部１４２と、ビデオツール部１４３とを含む。ビデオツール部１４３は、ビデオツール部１４３ａと、他のビデオツール部とを含み、これらのビデオツール部は、対応するビデオツールそれぞれに関して、ＧＵＩや画像処理動作などを決定する。また、ビデオツール部１４３は、関心領域（ＲＯＩ）ジェネレータ１４３ｘも含み、関心領域（ＲＯＩ）ジェネレータ１４３ｘは、ビデオツール部１４３に含まれる様々なビデオツールにおいて操作可能な様々なＲＯＩを定義する自動、半自動、及び／又は手動操作をサポートする。
【００１８】
一般に、メモリ部１４０は、所望の画像特性を有するワークピース２０の画像を取得するようにビジョンシステムを動作させるのに使用可能なデータを記憶する。また、メモリ部１４０は、検査結果データを記憶することもあり、さらに、（例えばビデオツールとして一部実装された）取得された画像に対する様々な検査及び測定動作を手動又は自動で行って、それらの結果を入出力インタフェース１３０を介して出力するようにマシンビジョン検査システム１００を動作させるために使用可能なデータを記憶することもある。また、メモリ部１４０は、入出力インタフェース１３０を介して動作可能なユーザインタフェースを定義するデータを含むこともある。
【００１９】
光源の信号ライン、カメラシステム２６０からの信号ライン２６２、及びモータ２９４からの信号ライン２９６は全て、入出力インタフェース１３０に接続される。画像データを伝送することに加えて、信号ライン２６２は、画像取得を開始するコントローラ１２５からの信号を伝送することもある。
【００２０】
１つ又は複数の表示デバイス１３６（例えば、図１のディスプレイ１６）、及び１つ又は複数の入力デバイス１３８（例えば、図１のジョイスティック２２、キーボード２４、及びマウス２６）も入出力インタフェース１３０に接続することができる。表示デバイス１３６及び入力デバイス１３８は、ユーザインタフェースを表示するために使用することができ、ユーザインタフェースは、検査動作を実施するため、及び／又はパートプログラムを作成及び／又は修正するため、カメラシステム２６０によって取得された画像を閲覧するため、及び／又はビジョンシステム構成要素部２００を直接制御するために使用可能な様々なユーザインタフェース機能を含むことができる。様々な実施形態において、表示デバイス１３６及び入力デバイス１３８は、マシンビジョン検査システム１００上でのパートプログラムの高速で、効率的で、直観的で、汎用性のある編集を可能にするために使用可能な様々なユーザインタフェース機能を提示するために使用される。
【００２１】
ワークピースプログラムジェネレータ及びエグゼキュータ１５０と、レコーダ／トランスレータ１５５と、学習モード部１５６と、実行モード部１５７と、編集部１６０と、代理データマネージャ１８０と、プログラムステータスマネージャ１８５と、ノードマネージャ１９０と、ウィンドウ間自動スクロール部１９５と、アクセサリインタフェース部３００’とは、一実施形態では、全て、コントローラ１２５にリンクされた汎用機械コントローラブロックＭＣの一部とみなすことができる。さらに、以下でより詳細に述べるリモートデバイス参照情報アクセサリ４００’を、（例えばアクセサリインタフェース部３００’を介して）コントローラ１２５にリンクさせることができる。リモートデバイス情報アクセサリ４００’は、いくつかの実施形態では、制御システム部１２０の外部にあるが、制御システム部１２０と相互動作するように通信するアクセサリとみなすことができる。ワークピースプログラムジェネレータ及びエグゼキュータ１５０は、パートプログラムの作成及び実行を担当する。用語「ワークピースプログラム」と「パートプログラム」は、本明細書では交換可能に使用されることがある。
【００２２】
ワークピースプログラムジェネレータ及びエグゼキュータ１５０の動作に従って、ユーザは、ワークピース２０に関するパートプログラムを作成し、ユーザは、ワークピースプログラミング言語を使用して命令を明示的に符号化することによって、又は好ましくは、所望の画像取得訓練シーケンスを提供するように（例えば学習モード部１５６によって制御される）学習モードでマシンビジョン検査システム１００を動作させることによって命令を生成することによって、パートプログラム命令を生成する。例えば、トレーニングシーケンスは、視野（ＦＯＶ）内にワークピース要素を位置決めすること、照明レベルを設定すること、焦点合わせ又は自動焦点合わせすること、画像を取得すること、（例えばビデオツールを使用して）画像に適用される検査トレーニングシーケンスを提供することを含み得る。学習モードは、シーケンスを取得又は記録し、対応するパートプログラムステップ（すなわち命令）に変換するように動作する。（例えば実行モード部１５７によって制御される）実行モードでパートプログラムが実行されると、これらのパートプログラムステップにより、マシンビジョン検査システムは、訓練された画像取得及び検査動作を再生して、パートプログラムを作成するときに使用されたワークピースに合致する１つ又は複数のワークピースを自動的に検査する。
【００２３】
レコーダ／トランスレータ１５５は、マシン動作をパートプログラムコードに翻訳するために利用される。すなわち、ユーザが、アクション（例えば、ワークピース上の要素を測定するために使用されるビデオツールの変更など）を行うと、命令が生成され、この命令が機械可読言語に翻訳され、逆翻訳を行うこともできる。以下でより詳細に述べるように、パートプログラムでの命令が、ユーザインタフェースでの命令表現に翻訳されることもある。いくつかの実施形態では、パートプログラム命令は、マークアップタイプの言語コードで書かれることがある。１つの特定の例示的実施形態では、マークアップ言語コードは、ＸＭＬコードでよい。編集部１６０は、編集ユーザインタフェース部１６０ｕｉ内でのパートプログラムの編集に関係付けられる様々な動作及びユーザインタフェース機能を提供又はアクティブ化し、編集ユーザインタフェース部１６０ｕｉは、以下でより詳細に述べるように、パートプログラム表示ウィンドウを含み得る。
【００２４】
代理データマネージャ１８０は、なくてもよいが、いくつかの実施形態では使用されることがある。簡潔には、代理データマネージャ１８０は代理データにリンクし、代理データは、パートプログラムに記録されていることがあり、それにより、編集動作をサポートするために、学習モード動作中に代理データを使用してシミュレーションモードでプログラム動作を高速実行させることができる。代理データマネージャ１８０は、本出願と同じ譲受人の米国特許出願公開第１３／２９７，２３２号（’２３２出願）においてより詳細に述べられている。
【００２５】
プログラムステータスマネージャ１８５は、一実施形態では、プログラムが保護されているか、又は保護されていないかを管理する。一実装形態では、保護されているパートプログラムでは代理データは除去されるが、保護されていないパートプログラムは、記憶されている代理データを含むことがある。１つの例示的実施形態では、保護されているプログラムは、工場において実行モードで利用することができるものなど、編集プロセスが完了しているプログラムである。
【００２６】
一実施形態では、ノードマネージャ１９０は、パートプログラムでのノードに割り当てられるノード番号の管理を担当する。一実装形態では、パートプログラムの表現内で、各命令表現にノード番号が割り当てられる。特定の実装形態では、組織的なツリー構造を利用することができ、親ノードと子ノードが存在する。特定の実装形態では、レコード／トランスレータ１５５によって生成されるパートプログラム表現のあらゆるラインに、ノードマネージャ１９０によって、ノード番号又は保証された一意の識別子などが割り当てられる。本出願と同じ譲受人の米国特許出願公開第１３／６７６，０６１号（’０６１号出願）でより詳細に述べられているように、いくつかの実施形態では、ウィンドウ間自動スクロール部１９５が、ノードマネージャ１９０によって割り当てられたノード番号を利用して、関連のパートプログラム要素及び対応する編集機能を異なるウィンドウにおいて同時に表示することができる。すなわち、ワークピースのどの測定が、パートプログラムでのどの命令表現及び符号化された命令に関係付けられているかをユーザが知りたい場合、ウィンドウ間自動スクロール部１９５が、それぞれのウィンドウにおいて、関連のノード番号に対応するパートプログラム表現及び／又は符号化された命令内の関連のラインまで自動的にスクロールする。ウィンドウ間通信の１つの例示的な方法及び／又は実装は、図１１を参照して以下で述べる。いくつかの実施形態では、アクセサリインタフェース部３００’は、類似の方法を使用して、ノードマネージャ１９０及び／又はウィンドウ間自動スクロール部１９５と相互動作することがあり、それにより、アクセサリ動作ユーザインタフェース部３１０’及び／又はリモートデバイス参照情報アクセサリ４００’は、本明細書で開示される原理及び動作に従って、アクティブノード番号情報及び／又は関連のパートプログラム命令表現などを受信及び／又は送信することができる。
【００２７】
図２に関して、図２の多くの機能は、’２３２出願及び’０６１出願において同様に論述、記載、及び／又は参照されている要素であるそれらの類似又は実質的に同様の対応する機能の説明に基づいてさらに理解することができる。
【００２８】
図３は、（例えば、図２に示されるアクセサリインタフェース部３００’として）計測システムのプログラミング環境で使用可能なアクセサリインタフェース部３００の１つの例示的実施形態と、アクセサリインタフェース部３００に接続されたときの、リモートデバイス参照情報アクセサリ４００として（例えば、図２に示されるリモートデバイス参照情報アクセサリ４００’として）使用可能なリモートデバイスの１つの例示的実施形態とのブロック図である。図３に示される実施形態では、アクセサリインタフェース部３００は、アクセサリ動作ユーザインタフェース３１０と、（任意選択の）アクセサリデータマネージャ３２０と、ノード関連付け部３３０と、アクセサリ通信マネージャ３４０と、アクセサリ接続マネージャ３５０とを含む。リモートデバイス参照情報アクセサリ４００は、リモートデバイス通信部４１０と、リモートデバイス登録データ４２０と、リモートデバイスユーザインタフェース４３０と、リモートデバイスカスタマイズ参照情報データ４５０と、リモートデバイス現行命令応答部４４０とを含み、リモートデバイス現行命令応答部４４０は、図３に示される実施形態では、リモートデバイスファイルジェネレータ／マネージャ４４１と、リモートデバイス命令参照情報カスタマイズ部４４３とを含み得る。
【００２９】
一般的に言って、アクセサリインタフェース部３００と、リモートデバイス現行命令応答部４４０（及び図３に示される他の要素）とは、あまり熟練していないユーザに、パートプログラムの作成及び編集をしながら使用することができるリモートアクセサリとして、使い慣れたパーソナルデバイスを計測システムに接続することができる機能を提供するように構成される。これは、例えば、そのようなデバイスの接続を容易にするユーザインタフェース機能及び動作と、ユーザが、パートプログラムを作成及び／又は編集しながら、編集環境でのパートプログラム及び／又はその表現内の特定の命令又は命令タイプに関連付けられる補足又は参照情報を容易に閲覧及び／又は作成できるようにする機能とを提供することによって達成される。
【００３０】
様々な実施形態において、アクセサリインタフェース部３００と、リモート参照デバイス情報アクセサリ４００に含まれる機能とは、計測システムプログラミング環境に関連するリモートデバイス参照情報アクセサリ４００の接続の容易さ及び使用しやすさに特に重点が置かれるように構成される。この点をサポートするために、アクセサリ動作ユーザインタフェース３１０と、リモートデバイスユーザインタフェース４３０とは、例えば図６〜図９に示される例示的実施形態を参照して以下に概説するように、コマンド、ダイアログボックス、及び他の表示要素を含み得、アクセサリ通信マネージャ３４０と、リモートデバイス通信部４１０とは、例えば図１０に示される例示的実施形態を参照して以下に概説するように、デバイス通信回路及び／又はルーチンを含み得る。アクセサリ通信マネージャ３４０と、リモートデバイス通信部４１０とは、図３に示される他の要素の動作をサポートするために、プログラミング環境とリモートデバイス参照情報アクセサリ４００との間の通信を容易にすることができる。
【００３１】
アクセサリ接続マネージャ３５０は、例えば、図６〜７に示される例示的実施形態を参照して以下に概説するように、計測システムプログラミング環境に関してリモートデバイスを登録する接続ルーチン及び関連のユーザインタフェース機能を含み得る。アクセサリデータマネージャ３２０は、プログラミング環境内の特定のパートプログラム命令表現（例えば、現行のパートプログラム命令表現）に関連して、リモートデバイス参照情報アクセサリ４００とプログラミング環境との間で交換される特定の参照情報を受信及び／又は表示するために、ノード関連付け部３３０と協同して動作することができる。いくつかの実装形態では、アクセサリデータマネージャ３２０は、リモートデバイス４００から受信した参照情報を記憶又は表示することができ、（例えば、リモートデバイス参照情報ウィンドウ１６４ｗの動作を参照して前に概説したように）プログラミング環境での操作をサポートする。
【００３２】
ノード関連付け部３３０は、アクセサリインタフェース部３００及び／又はリモートデバイス現行命令応答部４４０の他の要素の動作をサポートするように構成される。一実施形態では、ノード関連付け部３３０は、ノードマネージャ１９０及び／又はウィンドウ間自動スクロール部１９５と相互動作することができ、及び／又は類似の方法を使用することができ、それにより、アクセサリインタフェース部３００及びリモートデバイス参照情報アクセサリ４００の様々な要素が、本明細書で開示される原理及び動作に従って、現行ノード番号情報及び／又は関連のパートプログラム命令表現及び／又は関連の命令応答参照情報などを交換することができるようにする。ノードマネージャ１９０は、’２３２出願及び’０６１出願でより詳細に述べられており、ウィンドウ間自動スクロール部１９５の１つの例示的実施形態を、図１１を参照して以下に概説する。
【００３３】
一般的に言って、リモートデバイス参照情報アクセサリ４００は、計測システムパートプログラムに関係する参照情報を記憶、閲覧、及び／又は作成することが可能な任意のデバイスでよく、（例えば、ネットワーク、及び／又はＢｌｕｅｔｏｏｔｈ（登録商標）又はＷｉ−Ｆｉなどの無線接続を介して）アクセサリインタフェース部３００に接続可能である。しかし、前に概説したように、プログラム可能な計測システムのユーザは、計測システムのために専用又は特別に構成されたアクセサリではなく、自分が既に使い慣れているパーソナルコンピューティング及び／又はファイル記憶デバイス（例えばタブレットやスマートフォンなど）を携帯することがよくある。そのようなパーソナルコンピューティング及び／又はファイル記憶デバイスは、多くの場合、カメラ、インターネットブラウザ、並びに他のデバイス及びプログラムを含み、ユーザは、それらを使い慣れており、パートプログラムを作成しながら、命令特有の参照情報を閲覧及び／又は作成するために使用したいことがある。既知の方法によれば、そのようなデバイスは、本明細書で開示される様式で特定のタイプの計測システムと対話するようにカスタマイズされたローカルに常駐するアプリケーション（例えば、ダウンロード及びインストールされたアプリケーション）を含むように構成することができる。例えば、そのようなプログラム又は「アプリ」は、リモートデバイス現行命令応答部４４０及び／又はリモートデバイスユーザインタフェース４３０を提供する、又はそれらに含まれるルーチンを提供することがある。いくつかの実施形態では、容易に接続できるようにするために、及び／又は使用しやすくするために、少なくともリモートデバイスをプログラミング環境に接続する前に、リモートデバイスは、プログラミング環境と対話するようにカスタマイズされた記憶されているプログラム又はアプリケーションを含む必要はない。そうではなく、リモートデバイスが計測システムに接続された後に、そのような対話ルーチンは、リモートデバイス参照情報アクセサリ４００に自動的にダウンロードされる、又はダウンロードのために提供されることがある。しかし、いくつかの実施形態では、リモートデバイスに予め常駐している（通常は計測システムに関連付けられていない）インターネットブラウザ及び／又は他のアプリケーションが、本明細書で開示される機能及び動作を提供するために必要な全ての機能を提供することができる。これは、例えば、リモートデバイス参照情報アクセサリ４００で使用される協同機能（例えば、特別なファイル名規則及び／又は拡張子など）と共に、アクセサリインタフェース部３００によって管理される対話型ウェブページによってかなりの機能を提供することによって行われる。
【００３４】
リモートデバイス通信部４１０は、例えば図１０に示される例示的実施形態を参照して以下に概説するように、デバイス通信回路及び／又はルーチンを含み得る。リモートデバイス通信部４１０は、本明細書で開示される様々な機能及び動作をサポートするために、リモートデバイス参照情報アクセサリ４００への、及びリモートデバイス参照情報アクセサリ４００からの通信を提供及び／又は管理することができる。
【００３５】
リモートデバイス登録データ４２０は、例えば図６〜図７に示される例示的実施形態を参照して以下に概説するように、リモートデバイス参照情報アクセサリ４００を識別し、本明細書で開示されるアクセサリ接続マネージャ３５０の様々な機能及び動作をサポートする情報及び動作を含み得る。
【００３６】
リモートデバイスファイルジェネレータ／マネージャ４４１及び／又はリモートデバイス命令参照情報カスタマイズ部４４３を含み得るリモートデバイス現行命令応答部４４０は、（例えば図８Ａ〜図８Ｄを参照して以下に概説するように）パートプログラムを作成及び／又は編集しながら、編集環境でのパートプログラム及び／又はその表現内の特定の命令又は命令タイプに関連付けて、リモートデバイス参照情報アクセサリ４００で閲覧及び／又は作成されて記憶されるように特定の参照情報セットを準備するように動作することができる。リモートデバイスユーザインタフェース４３０は、本明細書で開示される機能及び動作の様々な実施形態、並びに（例えばアクセサリインタフェース部３００を介する）プログラミング環境との任意の所要の対話をサポートするために、コマンド、ダイアログボックス、及び他の表示要素を含み得る。いくつかの実施形態では、リモートデバイスユーザインタフェース４３０は、インストールされた「カスタムアプリケーション」に含まれる機能を含むことがあり、このカスタムアプリケーションも、リモートデバイス命令応答部４４０に含まれるルーチンを提供する。いくつかの実施形態では、本明細書で開示される機能及び動作を提供するために、前述したアプリケーションに含まれる機能に加えて、又はそれらの代わりに、ウェブページ機能や対話型ウェブページ機能など、及び／又は、リモートデバイスに予め常駐している（通常は計測システムに関連付けられていない）インターネットブラウザ及び／又は他のアプリケーションの機能を使用することができる。
【００３７】
図４は、本明細書で開示される原理による、（例えば図２に示される編集部１６０として使用可能な）編集部１６０のアクセサリインタフェース部３００にリンクさせることができるリモートデバイス参照情報アクセサリ４００、及び計測システムのプログラミング環境で使用可能な他の要素の１つの例示的実施形態のブロック図である。図４に示されるように、編集部１６０は、編集動作コントローラ１７４と、編集ユーザインタフェース部１６０ｕｉと、エディタコマンド部１７７と、編集実行部１７８とを含む。編集動作コントローラ１７４は、編集機能に関する動作を制御し、編集ユーザインタフェース部１６０ｕｉは、編集機能に関するユーザインタフェース機能を提供する。編集ユーザインタフェース部１６０ｕｉは、プログラム表示ウィンドウ部１６１を含み、プログラム表示ウィンドウ部１６１は、表現ユーザインタフェース機能１６２を含み、表現ユーザインタフェース機能１６２は、ノードユーザインタフェース機能１６３と、参照情報ユーザインタフェース機能１６４とを含む。一実施形態では、プログラム表示ウィンドウ内のパートプログラム表現は、ツリー構造で提供されることがある。表現ユーザインタフェース機能１６２は、挿入ポインタなどの機能を提供し、この機能は、コンテキストの状態に応じて、及びコンテキストがどのように得られたか（例えば、コンテキストが代理データから生成されたか、実際の実行によって生成されたかなど）に応じて、色を変えることがある。ノードユーザインタフェース機能１６３に関して、一実施形態では、これらは、アイコン又はブロークンアイコン、及びカラーハイライトなどの要素を含むことがあり、それにより、例えば、命令表現「ノード」がアクティブな現行（カレント）ノードであるかどうかを示す（すなわち、そのノードが、ユーザインタフェースでの現行アクションによって影響を及ぼされるターゲットであるかどうかを示す）。いくつかの例示的な参照情報ユーザインタフェース機能１６４を含む、編集ユーザインタフェース部１６０ｕｉ及びプログラム表示ウィンドウ部１６１の様々な機能のいくつかの例示的実施形態は、例えば図５、図６、及び図９に関して以下でより詳細に説明する。
【００３８】
編集実行部１７８は、編集プロセス中の様々な実行モードを担当し、代理モード部１８０と、実モード部１９１と、編集実行ユーザインタフェース機能部１９２とを含む。代理モード部１８０が代理実行モードを動作させるとき、継続的な編集動作のためのコンテキストを生成するために代理データが利用される。実モード部１９１は、従来のマシンビジョンシステムによって従来行われている動作を含む。実モード部１９１は、必要時に、実際マシン動作を行うために代理モード部１８０によって呼び出される。編集実行ユーザインタフェース機能１９２は、編集機能の実行に関するユーザインタフェース機能（例えば様々な実行動作のステータスに関する表示、例えば、パートプログラムのどの部が代理データを利用しているか、又は実際の実行動作によって実行されているかなどを示すカラーコード）を提供する。さらに、編集実行部１７８の要素は、’２３２出願及び’０６１出願において同様に論述、記載、及び／又は参照されている要素であるそれらの類似又は実質的に同様の対応する要素の説明に基づいて理解することができる。
【００３９】
エディタコマンド１７７は、’２３２出願で詳細に述べられている実行セグメント部１７７Ａと、修正部１７７Ｂと、挿入／追加部１７７Ｃとを含む。
【００４０】
アクセサリインタフェース部３００は、アクセサリ動作ユーザインタフェース３１０と、アクセサリデータマネージャ３２０と、ノード関連付け部３３０と、アクセサリ通信マネージャ３４０と、アクセサリ接続マネージャ３５０とを含む。アクセサリインタフェース部３００及びその様々な要素は、図３を参照して前に概説してあり、以下の図を参照してさらに述べるので、ここではさらに述べる必要はない。図４に示されるように、リモートデバイス参照情報アクセサリ４００は、（例えば図５〜図１０を参照して以下に述べるように）アクセサリ通信マネージャ３４０を介してアクセサリインタフェース部３００と通信するようにリンクさせることができ、それにより、プログラミング環境へのアクセサリとなり得る。リモートデバイス参照情報アクセサリ４００は、リモートデバイス通信部４１０と、リモートデバイス登録データ４２０と、リモートデバイスユーザインタフェース４３０と、リモートデバイスカスタマイズ参照情報データ４５０と、リモートデバイス現行命令応答部４４０とを含み、リモートデバイス現行命令応答部４４０は、図４に示される実施形態では、リモートデバイスファイルジェネレータ／マネージャ４４１、及び／又はリモートデバイス命令参照情報カスタマイズ部４４３を含み得る。リモートデバイス参照情報アクセサリ４００及びその様々な要素は、図３を参照して前に概説してあり、以下の図を参照してさらに述べるので、ここではさらに述べる必要はない。
【００４１】
図５は、本明細書で開示される原理に従ってリモート参照情報アクセサリが応答することができるパートプログラム命令及び／又は命令表現の作成に関係付けられる機能を含む計測システムのプログラミング環境の一実施形態を含む、学習モードユーザインタフェース５５０の第１の状態の図５００である。図５に示される実施形態では、プログラミング環境の第１の状態は、メニューバー５５３と、ツールバー５５５と、ツールバー５６０と、ステージ位置ディスプレイ５７０、視野ディスプレイ５８０と、パートプログラム表示ウィンドウ１６１ｗ（本明細書において、いくつかの文脈では編集ウィンドウ１６１ｗと呼ぶ）とを含む。パートプログラム表示ウィンドウ１６１ｗは、現行命令表現１６２ｃｉｒを含む１組のパートプログラム命令表現１６２ｉｒを含み、現行命令表現１６２ｃｉｒは、ポインタ１６２ｐの位置によって、現在アクティブな命令表現として示されることがある。現行命令表現１６２ｃｉｒは、見易くために、ボックスで取り囲んで図示されている。ツールバー５５５は、ユーザインタフェース５５０の上側部分に水平に配置された様々なユーザツール（例えば測定ビデオツール）を含む。ツールバー５６０は、ユーザインタフェース５５０の右側部分に垂直に配置されたユーザツール（例えば位置合わせ及び拡大ツール）を含む。ステージ位置ディスプレイ５７０は、ステージ３２の位置を示すＸ、Ｙ、及びＺ座標を表示する。視野ディスプレイ５８０は、カメラ２６０によって撮影されるマシンビジョン検査システム１００の視野のリアルタイムビデオイメージを表示することができ、参考までに、ユーザが定義して記録したときに円ツール関心領域５８１（例えば命令表現１６２ｉｒに含まれる「円ツール」命令表現に対応する）が現れる位置を破線の輪郭で概略的に表示する。ユーザインタフェース５５０は、’２３２出願及び’０６１出願に述べられているものに相当する要素を有し、ユーザインタフェース５５０の様々な要素は、それらの参考文献での記述に基づいてさらに理解することができる。
【００４２】
図５に示されるプログラミング環境の第１の状態では、ユーザは、命令表現１６２ｃｉｒ「測定のためのセットアップ」を予め選択しており、この命令表現１６２ｃｉｒを現行命令表現にする。
【００４３】
図６は、本明細書で開示される原理によるリモート参照情報アクセサリとの接続の確立に関係付けられる機能を含む、計測システムのプログラミング環境の一実施形態を含む、学習モードユーザインタフェース５５０の第２の状態の図６００である。図６に示されるプログラミング環境の第２の状態では、ユーザは、メニューバー５５３上の「プログラム」メニューアイテム５５３Ｐを選択しており、それによりドロップダウンコマンドメニューボックス５５３ｃｍｂが現れ、次いで、ユーザは、「アクセサリの共有」コマンド３５０ａｃを選択しており、それにより「リモートデバイス共有」ダイアログボックス３５０ｄｂが現れている。図６に示される実施形態では、リモートデバイス共有ダイアログボックス３５０ｄｂは、ユーザが読み取って実施すべき命令３５１及び３５２を含む。図６に示されるユーザインタフェースの状態は、ユーザが、ユーザインタフェース５５０を表示している計測システムを含むネットワークにリモートデバイス（例えば、ユーザのパーソナルスマートフォンやタブレットなど）を接続している場合を示している。例えば、様々な実施形態において、リモートデバイスは、既知の方法に従って、インターネット、イントラネット、有線ネットワーク、又は（例えばＷｉ−Ｆｉを使用する）無線ネットワーク、又は（例えばＢｌｕｅｔｏｏｔｈ（登録商標）接続を使用する）計測システム自体などに接続されてもよい。図６に示される実施形態では、リモートデバイスが、ユーザインタフェース５５０を表示している計測システムと同様にイントラネットに接続されている場合を示している。したがって、本明細書で述べる例示的な方法では、表示される命令３５１は、計測システムに関連付けられる特定のアドレス３５１ａを、（例えば図７Ａに示されるように）リモートデバイス上のインターネットブラウザのアドレスバーに入力するようにユーザに命令する。ユーザが、自分のリモートデバイスにそのアドレスを入力したのに応答して、アクセサリインタフェース部３００には、リモートデバイスの存在及び／又はアドレスが通知され、アクセサリインタフェース部３００は（例えば図７Ｂに示されるように）リモートデバイスに表示すべきウェブページ（又は、リモートデバイス上にあるアプリケーションによって提供される類似のユーザインタフェースを起動するコマンド）を送信するように構成される。アクセサリインタフェース部３００とリモートデバイスとの間の通信は、例えば図１０を参照して以下に概説する方法を使用して実装することができる。ここで述べる例では、表示されている命令３５２は、リモートデバイス上の表示に含まれるコード入力ボックス（例えば図７Ｂに示されるコード入力ボックス４３１ｂ）に（アクセサリインタフェース部３００によって生成される）特定の接続コード３５２ａを入力するようにユーザに命令する。通常、ユーザは、自分のリモートデバイスが手元にある状態で計測システムの傍にいるので、これは容易に達成される。
【００４４】
様々な実施形態において、リモートデバイスコネクションダイアログボックス３５０ｄｂは、計測システム及び／又はアクセサリインタフェース部３００によって検出されるリモートデバイスに対応する１つ又は複数のリモートデバイスステータスボックス３５３を含むことができ、リモートデバイスステータスボックス３５３は、それぞれのリモートデバイス（例えば、リモートデバイスの識別子及び／又はネットワーク上でのデバイスアドレス）及びそれらの接続ステータスなどを表示することができる。リモートデバイスステータスボックス３５３は、例えば、リモートデバイスがＢｌｕｅｔｏｏｔｈ（登録商標）接続を介して計測システムに直接接続するときなどに特に有用であることがある。
【００４５】
図７及び図７Ｂは、計測システムプログラミング環境と対話するようにそのリモートデバイスを接続するためにリモートデバイス参照情報アクセサリ４００上で使用可能なユーザインタフェース機能及び動作の一実施形態の第１の状態及び第２の状態をそれぞれ示す。図７Ａは、タッチスクリーンディスプレイ４００ｄを含むリモートデバイス参照情報アクセサリ４００（例えばスマートフォン）を示し、タッチスクリーンディスプレイ４００ｄは、アドレスバー４３０ａｂを提供するインターネットブラウザインタフェースを含むユーザインタフェース４３０を提供する。図７Ａに示される第１の状態は、ユーザが、図６に示したユーザインタフェース５５０を表示している計測システムを含むネットワークにリモートデバイス４００を接続しており、図６の表示されている命令３５１に従っている場合を示している。この命令３５１は、リモートデバイス上の自分のインターネットブラウザのアドレスバーに、計測システムに関連付けられる特定のアドレス３５１ａを入力するようにユーザに命令する。
【００４６】
図７Ｂは、図７Ａで概説したように、ユーザが特定のアドレス３５１ａを入力し、そのアドレス３５１ａに接続された後の、リモートデバイス４００の第２の状態を示す。アドレス入力に応答して、アクセサリインタフェース部３００には、リモートデバイス４００の存在及び／又はアドレスが通知され、アクセサリインタフェース部３００は、図７Ｂに示されるようにリモートデバイスに表示すべきウェブページ４３１ｗｐを送信する。ここで述べる例では、ウェブページ４３１ｗｐは命令４３１ａを含み、この命令４３１ａは、コード入力ボックス４３１ｂに（図６に示した）特定の接続コード３５２ａを入力するようにユーザに命令する（それにより、この接続コード３５２が、アクセサリインタフェース部３００のアクセサリ接続マネージャ３５０に送信し返される）。通常、ユーザは、自分のリモートデバイスが手元にある状態で計測システムの傍におり、それぞれのディスプレイを見ることができるので、これは容易に達成される。アクセサリ接続マネージャ３５０は、リモートデバイス４００から受信したコードを特定の接続コード３５２ａと比較するように構成される。コードが一致する場合、アクセサリ接続マネージャ３５０は、（例えば図８及び図９などを参照して述べるように）本明細書で開示される様々な動作及び機能を実施するために計測システムのプログラミング環境と対話するようにリモートデバイス４００を接続する。これは、工場イントラネットやネットワークなどにおいて他のリモートデバイス及び／又は計測システムがあるにも関わらず、ローカルユーザが自分のローカルパーソナルデバイスをローカル計測システムのみに接続するための方法を提供する１つの例示的な（非限定的な）方法である。
【００４７】
図８Ａ〜図８Ｃは、プログラミング環境での現行命令表現に対応する汎用命令タイプに特に関連付けられる１組の参照情報の閲覧及び／又は作成に関係する、リモートデバイス参照情報アクセサリ４００で使用可能なユーザインタフェース機能及び動作の一実施形態の様々な態様を示す。
【００４８】
図８Ａは、ユーザインタフェース４３０を含む、アクセサリインタフェース部３００を介してプログラミング環境と対話するように接続された後のリモートデバイス４００の第１の状態を示す。様々な実施形態において、ユーザインタフェース４３０は、リモートデバイス上にローカルに常駐してアクティブ化されるソフトウェアルーチンによって提供されることがあり、あるいは、例えば、計測システムからダウンロードされても、計測システムから通信されたウェブページ機能を介してダウンロードされてもよい。図８Ａに示される実施形態では、ユーザインタフェース４３０は、現行命令表現表示部（現行命令ディスプレイとも呼ぶ）４３０ｃｉｄと、現行命令応答部４３１ｃｉｒｐと、サインアウトボタン４３０ｘとを含み、サインアウトボタン４３０ｘを使用して、リモートデバイスをアクセサリインタフェース部３００から切断する、及び／又は計測システムへのリモートデバイスの接続を終了することができる。図８Ａに示される特定の実施形態では、現行命令ディスプレイ４３０ｃｉｄは、プログラミング環境での（現在アクティブな）現行命令表現のイメージ、再作成、又は他の表現を含む現行命令表現４３０ｃｉｒ（例えば図５における編集ウィンドウ１６１ｗ内に示される現行命令表現１６２ｃｉｒ）、並びに周辺命令表現４３０ｉｒを含む。現行命令ディスプレイ４３０ｃｉｄの図示される形態は例示にすぎず、これに限定するものではない。例えば、いくつかの実施形態では、リモートデバイス４００上の現行命令表示は、リモートデバイス４００で閲覧及び／又は作成される参照情報に関係付けられるターゲットノード及び／又は汎用命令タイプをユーザがより見易くする任意の形態で、単に、現行命令表現のみの再現、又はそのノード番号（プログラミング環境でも表示することができる）などでよい。他の実施形態では、現行命令ディスプレイ４３０ｃｉｄは、代わりに、プログラミング環境での現行命令表現に対応する汎用命令タイプ（例えば、「円測定」汎用命令タイプ）を表示するディスプレイを含み得る。いずれにせよ、現行命令ディスプレイ４３０ｃｉｄは、アクセサリインタフェース部３００からの通信に基づいてリモートデバイス４００によって頻繁に更新することができ、計測システムのプログラミング環境での（現在アクティブな）現行命令表現及び／又はその関連の「現行汎用命令タイプ」の変更を反映する。さらに、現行命令表現はプログラミング環境自体にも表示され、ユーザが両方のデバイスのディスプレイを見ることができるので、いくつかの実施形態では、リモートデバイス４００での現行命令表現表示は単純に省かれることもある。しかし、そのような実施形態は、ユーザにとっていくぶん効率が悪いことがある。
【００４９】
図８Ａに示される実施形態では、現行命令応答部４３１ｃｉｒｐは、モード選択ボタン４３１ｍｓと、命令参照情報部４３１ｉｒｉとを含む。モード選択ボタン４３１ｍｓは、カスタマイズされた参照情報のみを現行汎用命令タイプに関して表示させる「カスタム」選択ボタンと、任意のカスタマイズされた参照情報と共に標準の参照情報（例えば、現行汎用命令タイプに対応する標準の「ヘルプ」文書の一部）を表示させる「カスタム＋標準」選択ボタンとを含む。いくつかの実施形態では、リモートデバイス４００は、カスタマイズされた参照のみを含むことがあり、「カスタム」選択ボタン及び「カスタム＋標準」選択ボタンが省かれることもあることを理解すべきである。
【００５０】
また、モード選択ボタン４３１ｍｓは、「リスト」ボタン及び「表示」ボタンを含み、これらのボタンは、それぞれ、ユーザインタフェースが、現行汎用命令タイプに関連付けられる既存の参照情報を（例えば図８Ａに示されるように）ファイルリストとして表示するか、又は（例えば図８Ｂに示されるように）ファイルコンテンツの表示として表示するかを制御する。また、モード選択ボタン４３１ｍｓは、「作成」ボタンを含み、このボタンは、ユーザインタフェースを表示させ、ユーザインタフェースは、（例えば図８Ｃに示されるように）現行汎用命令タイプに関連付けられる参照情報を作成するのに適している。いくつかの実施形態では、モード選択ボタン４３１ｍｓの効果は、プログラミング環境において現行命令表現（及びその対応する現行汎用命令タイプ）が変更されるときに持続することがある。
【００５１】
図８Ａに示されるユーザインタフェース４３０の状態では、「カスタム」モードボタン及び「リスト」モードボタンが選択されている。例示される実施形態では、これは、命令参照情報部４３１ｉｒｉ内に含ませてファイル選択ボックス４３１ｆｓｂを表示させ、現行汎用命令タイプに関連する、リモートデバイスに予め記憶されている既存のカスタム参照情報ファイルのリストを表示する。リスト内のファイルは、既知の方法に従って、ユーザインタフェース４３０でファイルのコンテンツを表示するように選択されて開かれる（例えば、ファイルのファイル拡張子に対応するデフォルトプログラム及び／又はウィンドウを使用して開かれる）ことがある。
【００５２】
図８Ｂに示されるユーザインタフェース４３０の状態では、「カスタム」モードボタン及び「表示」モードボタンが選択されている。例示される実施形態では、これは、命令参照情報部４３１ｉｒｉ内に含ませて１つ又は複数の参照情報表示ボックス４３１ｒｉｄｂを表示させ、現行汎用命令タイプに関連する、リモートデバイスに予め記憶されている既存のカスタム参照情報ファイルのコンテンツを表示する。ファイルは、例えば、既知の方法に従って、それらのファイル拡張子に対応するデフォルトプログラム及び／又はウィンドウを使用して開かれて表示されることがある。リモートデバイス４００は、限られたディスプレイサイズを有することがある。そのような場合、参照情報ディスプレイボックス４３１ｒｉｄｂが、個々のファイルコンテンツにわたってスクロールするためのディスプレイボックススクロール制御部４３１ｄｂｓｃを含むこと、及び／又は命令参照情報部４３１ｉｒｉが、様々なファイル間でスクロールするための参照情報スクロール制御部４３１ｒｉｓｃを含むことが有益であることがある。
【００５３】
ユーザインタフェースの命令参照情報部４３１ｉｒｉは、アクセサリインタフェース部３００からの通信に基づいてリモートデバイス４００によって頻繁に更新することができ、計測システムのプログラミング環境での（現在アクティブな）現行命令表現及び／又はその関連の「現行汎用命令タイプ」の変更を反映することを理解すべきである。すなわち、プログラミング環境での現行命令表現に対応する現行汎用命令タイプに関連付けられる参照情報ファイル及び／又はファイルコンテンツのユーザインタフェース表示を、リモートデバイス４００上で動的に更新することができる。
【００５４】
図８Ｃに示されるユーザインタフェース４３０の状態では、現行汎用命令タイプに関連付けられるカスタマイズされた参照情報を作成するための「作成」モードボタンが選択されている。例示される実施形態では、これは、「カスタム」モードボタンのみを表示させる。図８Ｃに示される実施形態では、現行命令応答部４３１ｃｉｒｐは、現行汎用命令タイプに自動的に関連付けることができる参照情報を作成及び／又は編集するのに適したユーザインタフェース要素を含む。例えば、命令参照情報部４３１ｉｒｉは、（以下でより詳細に述べる）表示ウィンドウスクロール制御部４３１ｄｗｓｃを含み得る参照情報カスタマイズ及び表示ウィンドウ４３１ｒｉｃｄｗと、（ウィンドウ４３１ｒｉｃｄｗに含まれる情報に関する）参照情報ファイル名入力ボックス４３１ｒｉｆｎと、関連命令確認ボックス４３１ａｉｂと、ファイル保存ボタン４３１ｓｆとを含むことがあり、ファイル保存ボタン４３１ｓｆは、ウィンドウ４３１ｒｉｃｄｗ内に含まれる情報を、ファイル名ボックス４３１ｒｉｆｎ内に示されるファイル名で、現行汎用命令タイプに関連付けて保存し、現行汎用命令タイプは、一実施形態では、関連命令確認ボックス４３１ａｉｂ内の自動デフォルトエントリ（又は手動で入力されたオーバーライドエントリ）でよい。様々な実施形態において、関連付けは、例えば、ルックアップテーブルなど任意の適切な既知の方法を使用して、又はファイル名若しくは拡張子規則を使用して、又はＸＭＬ命令／ヘッダでの適切な指定を使用して提供することができる。
【００５５】
ユーザインタフェース４３０の命令参照情報カスタマイズ部４３１ｉｒｉｃｐは、参照情報カスタマイズ及び表示ウィンドウ４３１ｒｉｃｄｗと、参照情報ソースセレクタボタン４３１ｉｓｓとを含み、参照情報ソースセレクタボタン４３１ｉｓｓは、例えば、「ローカルファイル」ボタン、「メモ作成」ボタン、「カメラ」ボタン、及び／又は「ホストからペースト」ボタンを含み得る。
【００５６】
ユーザは、「ローカルファイル」ボタンを選択することができ、このボタンは、１つの例示的実施形態では、ファイルブラウザを開くことができ、ファイルブラウザは、カスタマイズ及び表示ウィンドウ４３１ｒｉｃｄｗ内でリストする、及び／又は開いて編集するための所望のファイルをユーザが選択できるようにする。
【００５７】
ユーザは、「メモ作成」ボタンを選択することができ、このボタンは、１つの例示的実施形態では、（例えば、図８Ｂに示される「CircleNotes.txt」表示ボックス４３１ｒｉｄｂと同様に現れることがある）カスタマイズ及び表示ウィンドウ４３１ｒｉｃｄｗ内で、使用可能なテキストエディタを開くことができる。
【００５８】
ユーザは、画像が参照情報ファイルとして望まれる場合には、「カメラ」ボタンを選択することができる。カメラボタンは、リモートデバイス４００上に既に存在する画像取得及び記憶機能にアクセスするように動作されることがある。次いで、上で概説したように、得られた画像を参照情報ファイルとして処理することができ、及び／又はカスタマイズ及び表示ウィンドウ４３１ｒｉｃｄｗ内で開くことができる。当然、他のセンサ機能がリモートデバイス４００に存在する場合には、類似の様式で参照情報を提供するようにそれらの機能にアクセスして使用することができる。
【００５９】
ユーザは、リモートデバイス４００に接続されたプログラミング環境から参照情報が転送されることが望まれる場合には、「ホストからのペースト」ボタンを選択することができる。リモートデバイス４００に接続されたホスト計測システムは、例えば、プログラミング環境からの情報やヘルプ文書などを選択して変換、保存、カット、若しくはコピーするために、計測システム及び／又はその関連のコンピュータオペレーティングシステム及びプログラム上に既に存在する機能を使用して動作させることができる。例えば、図９は、スニッピングツール９７０ｓｔの選択ボックス９７０ｓｂによって選択される円ツールパラメータウィンドウ９６２を示し、スニッピングツール９７０ｓｔは、既知の方法に従って、スクリーンキャプチャされた選択ボックスコンテンツの画像をホスト計測システムのクリップボードに置くように動作する。図８Ｃに例示される実施形態では、「ホストからのペースト」ボタンにより、リモートデバイス４００のカーソルがカスタマイズ及び表示ウィンドウ４３１ｒｉｃｄｗに置かれ、既知の方法に従って「カット、コピー、ペースト」メニューが表示され、メニューで「ペースト」コマンドがアクティブ化されたときに、表示ウィンドウ４３１ｒｉｃｄｗが、ホスト計測システムのクリップボードコンテンツを表示する。次いで、上で概説したように、得られたコンテンツを参照情報ファイルとして処理することができ、及び／又はカスタマイズ及び表示ウィンドウ４３１ｒｉｃｄｗ内で編集することができる。編集は、ユーザインタフェース４３０に提供される様々なツール又は動作、及び／又はリモートデバイス４００に何らかの形で含まれるツール又は動作を使用して行うことができる。
【００６０】
いくつかの実施形態では、図８Ａ〜図８Ｃを参照して上で概説したリモートデバイス４００の様々な機能又は動作は、リモートデバイス４００上に予め常駐している（通常は計測システムに関連付けられていない）アプリケーションを使用して実装することができる機能又は動作を含み得る。したがって、熟練していないユーザが、パーソナルデバイスをリモートデバイス参照情報アクセサリ４００として容易に使用することができ、特別な訓練が必要ないという非常に望ましい利益を伴い、また、ユーザのパーソナルデバイスの障害を最小限にする。
【００６１】
図９は、図５に示した学習モードユーザインタフェース５５０の図９００であり、現行命令表現及び／又はその対応する現行汎用命令タイプに関連付けられるリモートデバイス４００によって提供される１組の参照情報の表示に関係付けられる機能を含む、計測システムのプログラミング環境の一実施形態を含む。図９に示されるプログラミング環境の状態では、現行命令表現１６２ｃｉｒは、「円ツール」命令表現である。この例では、リモートデバイス４００は、現行汎用命令タイプに関連付けられる１組の参照情報ファイルを含み、この例では現行汎用命令タイプは「円ツール」命令タイプである。さらに、リモートデバイス４００は、１組の参照情報が現行汎用命令タイプに関して利用可能であるときには、この情報の利用可能性の通知をプログラミング環境に自動的にブロードキャストするように構成される。この例では、プログラミング環境は、例示されるように、現行命令表現の近くに命令参照情報利用可能フラグ１６２ｉｒｉｆを表示するように構成される。図９に示される状態では、ユーザは、命令参照情報利用可能フラグ１６２ｉｒｉｆを選択してアクティブ化しており、それによりこの例ではリモートデバイス参照情報ウィンドウ１６４ｗが現れ、リモートデバイス参照情報ウィンドウ１６４ｗは、図８Ａ〜図８Ｃを参照して前に概説したように、リモートデバイス４００の命令参照情報部４３１ｉｒｉに対応する参照情報ディスプレイ１６４ｒｉｄを含む。様々な実装形態において、表示される参照情報ファイル及び／又はそれらのコンテンツは、既知の方法に従って、また図１０及び図１１を参照して以下でさらに概説するように、リモートデバイス参照情報ウィンドウ１６４ｗの機能を使用してダウンロードすることができる。様々な実施形態において、リモートデバイス参照情報ウィンドウ１６４ｗは、既知の方法に従って、例えばサイズ変更する、移動する、最小化する、又は閉じることができる。あるいは、ウィンドウ１６４ｗを省き、既知の方法に従って、リモートデバイス参照情報ファイルをホスト計測システム上の適切なデフォルトプログラムで自動的に開くことができる。
【００６２】
図１０は、本明細書で開示される様々な機能を実装するためにウェブサービスを使用する、リモートデバイス参照情報アクセサリ４００及びプログラミング環境のアクセサリインタフェース部（例えばアクセサリインタフェース部３００）の様々な機能及び動作の１つの例示的な実装形態のブロック図１０００を示す。
【００６３】
一般的に言って、ウェブサービスは、アプリケーション又はシステム間でデータを交換するために使用されるプロトコル及び標準の集合体である。様々なプログラミング言語で書かれ、様々なプラットフォーム上で実行されるソフトウェアアプリケーションは、ウェブサービスを使用して、単一のコンピュータとのプロセス間通信と同様の様式で、コンピュータネットワーク（例えばインターネットなど）を介してデータを交換することができる。この相互動作性（interoperability）は、オープンスタンダード（例えば、ＴＣＰ／ＩＰ、ＨＴＴＰ、Ｊａｖａ（登録商標）、ＨＴＭＬ、及びＸＭＬ）の使用によるものである。ウェブサービスは、一般的なＸＭＬ文法によって自己記述的（self-describing）なものであることがあり、単純な探索メカニズムによってネットワークを介して発見することができる（discoverable）ことが知られている。例えば、クライアントは、ＸＭＬメッセージを送信することによってウェブサービスを呼び出し、次いで、対応するＸＭＬ応答を待機する。基本的なウェブサービスプラットフォームは、ＸＭＬ＋ＨＴＴＰである。標準のウェブサービスは、例えば、ＳＯＡＰ（Simple Object Access Protocol）、ＵＤＤＩ（Universal Description, Discovery and Integration）、及びＷＳＤＬ（Web Services Description Language）といった既知のコンポーネントを使用して動作することがある。ウェブサービスの設計及び使用は、ソフトウェア開発者に知られており、計測システムに関するプログラミング環境の提供に関係付けられる技術分野の当業者が既知の技法に基づいて実装することができる。したがって、図１０を参照して以下に述べる機能及び動作、並びに本明細書で開示される他の機能及び動作は、ここで詳細に述べる必要はない既知のウェブサービスプログラミング及び動作方法を使用して実装することができることを理解されたい。
【００６４】
図１０は、前述したリモートデバイス参照情報アクセサリ４００と、アクセサリインタフェース部３００と、本説明に関連する前述したプログラミング環境のいくつかの要素とを示し、それらの要素は、ノードマネージャ１９０と、命令表示（又は編集）ウィンドウ１６１ｗと、リモートデバイス参照情報ウィンドウ１６４ｗとを含む。図１０に示される実施形態では、前述したリモートデバイス通信部４１０は、プレゼンス(presence)サービス４１０ＰＳと、通知(notification)サービス４１０ＮＳと、配信(delivery)サービス４１０ＤＳとを含むウェブサービス要素を含み得る。同様に、前述したアクセサリ通信マネージャ３４０は、プレゼンスサービス３４０ＰＳと、通知サービス３４０ＮＳと、配信サービス３４０ＤＳとを含むウェブサービス要素を含み得る。前述したアクセサリインタフェース部３００は、アクセサリインタフェースサービス３００Ｓを含むウェブサービス要素を含み得る。
【００６５】
以下は、ウェブサービスを使用する本発明による動作の１つの代表的な例である。この例は例示にすぎず、これに限定するものではないことを理解されたい。動作時、リモートデバイス４００は、ネットワークへの接続を確立し、このネットワークは、アクセサリインタフェース部３００を含む計測システム及び／又はプログラミング環境にも接続される。次いで、リモートデバイス４００は、アクセサリ通信マネージャ３４０のプレゼンスサービス３４０ＰＳにコンタクトすることができる。プレゼンスサービス３４０ＰＳは、アクセサリインタフェースサービス３００Ｓに情報を提供し、したがって、リモートデバイス４００は、プレゼンスサービス３４０ＰＳにコンタクトして、リモートデバイス４００に関する情報を供給する（例えば、それにより、アクセサリインタフェースサービス３００Ｓは、ウェブページフォーマット及び他のデータを、互換性のあるフォーマットでリモートデバイス４００に供給することができる）。リモートデバイス４００は、リモートデバイス４００がネットワークに接続されていることをプレゼンスサービス３４０ＰＳに通知する。リモートデバイス４００は、例えば、そのデバイス登録情報をＳＯＡＰメッセージにバンドルすることができ、当該リモートデバイス４００のインタフェース又は表示特性など有用な情報を含むことができる。ＳＯＡＰメッセージは、例えばＨＴＴＰ  ＰＯＳＴリクエストのボディとしてプレゼンスサービス３４０ＰＳに送信することができる。プレゼンスサービス３４０ＰＳ及び／又はアクセサリインタフェースサービス３００Ｓは、ＳＯＡＰリクエストをアンパック（展開）して、情報を、アクセサリインタフェース部３００の他の要素が理解することができるデータ、命令、又はコマンドに変換する。上記の動作により、まず、アクセサリインタフェース部３００は、リモートデバイス４００がプログラミング環境にまだ接続されていないことを認識し、例えば、プログラミング環境のユーザが、前に概説した「アクセサリへの接続」コマンドを使用してリモートデバイス４００に関する接続を要求するまで、リモートデバイス４００との許可される対話のタイプを制限する。次いで、アクセサリ接続マネージャ３５０、及びアクセサリインタフェース部３００の他の要素が、例えば図６、図７Ａ、及び図７Ｂを参照して上で概説したように関連の接続動作を行う。アクセサリインタフェース部３００の要素は、アクセサリインタフェースサービス３００Ｓを介してリモートデバイス４００と対話し、アクセサリインタフェースサービス３００Ｓは、それらのデータ、命令、又はコマンドを、リモートデバイス４００が理解して使用することができる形態での情報に変換し、リモートデバイス４００に情報を配信するようにデバイスサービス３４０ＤＳに命令する。リモートデバイス４００からの対話応答が、配信サービス４１０ＤＳによってアクセサリインタフェース部３００に返信され、アクセサリインタフェースサービス３００Ｓで、アクセサリインタフェース部３００の様々な要素が理解して使用することができる形態に変換される。このようにして、図６〜図９を参照して上で概説したような動作、及び本明細書で開示される他の動作及び機能���、計測システムに通常は関連付けられていない多様なリモートデバイス４００を使用するときに、あまり熟練していないユーザによって達成することができる。
【００６６】
リモートデバイス４００での現行命令表現１６２ｃｉｒの表示に関して、一実施形態では、これは、前述したノードマネージャ１９０、ウィンドウ間自動スクロール部１９５、及びノード関連付け部３３０を使用して実装することができる。前述したように、ノードマネージャ１９０は、パートプログラムでのノード（例えば命令表現）に割り当てられるノード番号の割当て及び／又は管理を担当する。ウィンドウ間自動スクロール部１９５は、ノード番号を利用して、関連のパートプログラム要素及び対応する編集機能を、異なるウィンドウ、ルーチン、又はアプリケーションで同時に表示することができる。すなわち、ウィンドウ間自動スクロール部１９５により、それぞれのウィンドウが、関連のノード番号に対応する要素に自動的にスクロールし、ノード番号及び／又はノード番号に関連する他の情報に関連付けられる動作を実行することができる。ウィンドウ間通信の１つの例示的な方法及び／又は実装は、図１１を参照して以下で述べる。ここで、ウィンドウ間自動スクロール部１９５は、ノード関連付け部３３０を含めた様々な接続された要素における選択イベントＳＥを通知されたときに、様々な接続されている要素に自動スクロール通知ＡＳを送信する。例えば、ユーザが現行（現在アクティブな）命令表現１６２ｃｉｒを新規の又は異なる命令表現に変更するときには常に、プログラム表示ウィンドウ１６１ｗで選択イベントＳＥが生じる。自動スクロール通知ＡＳの受信に応答して、ノード関連付け部３３０は、その「現行ノード番号」を更新することができ、また、現行ノード番号の現行命令（もしあれば）に関連付けられる現行汎用命令タイプを識別することもできる。さらに、ノード関連付け部３３０は、アクセサリ動作ユーザインタフェース機能３１０に通知して、（例えば新たな現行命令表現を示す）更新された現行命令表示情報、及び更新された現行汎用命令タイプ（この情報が、更新された現行命令表示情報に基づいてリモートデバイス４００自体でのルーチンによって決定されない場合）をリモートデバイス４００に送信する。アクセサリ動作ユーザインタフェース機能３１０は、次いで、（必要であれば、更新された現行汎用命令タイプを含む）所要の更新された現行命令表示情報を準備することができ、それをアクセサリインタフェースサービス３００Ｓに送信して、適切なフォーマッティングを行い、リモートデバイス４００に配信する。いくつかの実施形態では、アクセサリインタフェースサービス３００Ｓは、通知サービス３４０ＮＳを使用して、そのような配信が利用可能であることをリモートデバイス４００に通知することができ、その後、リモートデバイス４００は、その進行中のネイティブ動作と互換性があるときには配信を要求することができる。
【００６７】
リモートデバイス４００からアクセサリインタフェース部３００への１組の参照情報の送信に関して、関連する前述した機能及び動作は、一実施形態では、以下のように実装することができる。１組の参照情報が、リモートデバイスでの現行汎用命令タイプに利用可能である場合、これにより、リモートデバイス４００の通知サービス４１０ＮＳが、そのような配信が利用可能であるという通知をアクセサリインタフェース部３００に発行することができ、その後、アクセサリインタフェース部３００は、その進行中のネイティブ動作と互換性があるときに当該配信を要求することができる。１組の参照情報が配信されるとき、アクセサリインタフェースサービス３００Ｓは、アクセサリデータマネージャ３２０及び／又はプログラミング環境によって使用可能な形態で情報を準備することができる。アクセサリデータマネージャ３２０は、１組の参照情報を現行ノード番号に関連付けることができ、いくつかの実施形態では、現行ノード番号及び／又は現行汎用命令タイプに関連付けられる１組の参照情報を一時的又は永久的にダウンロードして記憶することができ、いくつかの実施形態では、図９を参照して概説したように、命令参照情報フラグ１６２ｉｒｉｆの表示を編集ウィンドウ１６１ｗに行わせることができる。
【００６８】
様々なウェブサービス方法の実施に関して、ウェブサービスを教示する多数の文献に加えて、米国特許第７，５０６，０５９号、同第８，３４６，９２９号、同第６，７３２，１１１号、及び同第８，５３９，０６１号が、図１０を参照して述べた機能及び動作を提供し、さらに本明細書で開示される様々な他の機能及び動作を実装するように適合させることができる様々な方法を述べている。
【００６９】
図１１は、プログラミング環境での命令表現に関連付けられる参照情報の提供に関係する本明細書で開示される様々な機能及び動作と共にプログラミング環境で有用な、ウィンドウ、アプリケーション、又はデバイス間でのノード識別及び動作の調整の一実施形態を示す機能概略図１１００である。図１１は、ウィンドウ間自動スクロール部１９５と、プログラム表示（編集）ウィンドウ部１６１ｗと、クライアントウィンドウ部１９７（例えば、プログラミング環境内の別のウィンドウ）と、アクセサリインタフェース部３００の概説したノード関連付け部３３０とを概略的に示す。「ウィンドウ部」又は「ウィンドウ」は、表示されるユーザインタフェース、並びにユーザインタフェースの関連の機能、及びユーザインタフェースの動作を提供する根底にあるルーチンを含み得ることを理解すべきである。また、語「スクロール」又は「自動スクロール」を本明細書で使用することがあるが、これらの語は、便宜上使用されるにすぎず、限定的なものではないことを理解すべきである。より一般的には、「自動スクロール」される要素は、そのそれぞれのウィンドウで、任意の簡便な及び／又は既知の方法によって見えるようにすることができ、これは、単純に、所望のコンテンツを含むウィンドウを再生することなどを含む。
【００７０】
図１１に示される実施形態では、ウィンドウ間自動スクロール部１９５は、自動スクロール通知ＡＳを介してウィンドウ部１６１ｗ、１９７及びノード関連付け部３３０と対話し、また、それぞれのウィンドウ選択イベント通知ＳＥを介してそれぞれのウィンドウ部１６１ｗ、１９７と対話する。様々な選択イベント通知ＳＥが個別に発行される。すなわち、ノード番号に関連付けられている要素の選択のホストである任意のウィンドウが、選択イベントによって開始されるそのウィンドウのルーチン又は動作に基づいて、その選択に応答する選択イベント通知ＳＥを発行することがある。例えば、ユーザが現行（現在アクティブな）命令表現１６２ｃｉｒを新規の又は異なる命令表現に変更するときには常に、プログラム表示ウィンドウ１６１ｗで選択イベントが生じる。対照的に、様々な実施形態において、各適用可能なウィンドウへの自動スクロール通知ＡＳは、ウィンドウ間自動スクロール部１９５によって受信される任意の選択イベント通知に応答して発行され、一般に、全ての適用可能なウィンドウ及びノード関連付け部３３０に送信される。自動スクロール通知ＡＳは、選択イベント通知ＳＥによって開始されるウィンドウ間自動スクロール部１９５のルーチン又は動作に基づく。選択イベント通知ＳＥは、選択された要素の識別子又はノード番号（例えば、新たな現行命令表現の識別子）を含むことがあり、いくつかの実施形態では、（例えば図２に示されるレコーダ／トランスレータ１５５で既知の方法に従って決定することができる）現行ノード又は命令表現の汎用命令タイプの識別を含むことがあり、それらのいずれか又は全てを自動スクロール通知ＡＳによって渡すことができる。前述したように、自動スクロール通知ＡＳの受信に応答して、ノード関連付け部３３０は、その現行ノード番号及び／又は現行汎用命令タイプを更新し、新たな現行ノード番号及び／又は新たな現行命令表現及び／又は新たな現行汎用命令タイプが有効であることを、アクセサリインタフェースサービス３００Ｓを介してアクセサリデータマネージャ３２０及び／又はリモートデバイス４００に通知することができ、それにより、当該通知を受信する各要素で適切な動作を行うことができるようにする。さらに、いくつかの実施形態では、ノード関連付け部３３０は、アクセサリ動作ユーザインタフェース機能３１０に通知して、リモートデバイス４００上に新たな現行命令表現を表示する更新表示をサポートする通信を送信する。
【００７１】
一実施形態では、図１１は、時として（例えばウェブページ間の通知のために使用される）ＸＭＬのような言語を使用して実装される「パブリッシャ−サブスクライバ」法を使用して実施されることがある。様々な実施形態において、パブリッシャ−サブスクライバ方法は、リストベースの方法、又はブロードキャストベースの方法、又はコンテンツベースの方法などの方法を、本明細書で開示される機能をサポートするように適合させることによって実施することができる。マシンビジョン検査システムでは、パブリッシャとサブスクライバは一般には同じ処理空間内に位置され、「サブスクライバ」ウィンドウの識別子を「パブリッシャ」が知ることができる。そのような場合に適用可能なものとして、米国特許第８，０２８，０８５号（「’０８５特許」）は、図１１を参照して開示される機能をサポートするように適合させることができる低遅延の方法を述べている。
【００７２】
図１２は、本明細書で開示される機能及び動作による、プログラム可能な計測システムのプログラミング環境に関係してリモートデバイスを動作させるための方法の１つの例示的実施形態を示す流れ図１２００であり、ここで、リモートデバイスは、プログラミング環境での現行命令表現に応答して、現行命令表現に対応する汎用命令タイプに特に関係付けられる参照情報を表示する。
【００７３】
ブロック１２１０で、プログラム可能な計測システムが提供され、このシステムは、ワークピース計測部と、ワークピースを保持するための可動ステージと、制御部と、ディスプレイと、アクセサリ通信部を含むアクセサリインタフェース部と、プログラム可能な計測システムの学習モード中に動作可能であるプログラミング環境を含むユーザインタフェースとを含み、プログラミング環境は、編集ウィンドウ内のパートプログラム命令の編集可能パートプログラム表現を含み、パートプログラム表現は、現在アクティブな現行命令表現を含む命令表現を含む。ブロック１２２０で、通信接続が、リモートデバイスとプログラミング環境との間に提供される。ブロック１２３０で、アクセサリ通信部が、現行命令表現に対応する現行命令識別子をリモートデバイスに出力するように動作される。ブロック１２４０で、リモートデバイスが、現行命令識別子を受信するように動作される。ブロック１２５０で、リモートデバイスは、受信した現行命令識別子に応答して、現行命令表現に対応する汎用命令タイプに特に関するように構成された現行命令参照情報ユーザインタフェース部を表示するプログラム又はルーチンに従って動作される。
【００７４】
図１２を参照して上で概説した方法は例示にすぎず、これに限定されるものではないことを理解されたい。様々な要素は、様々な組合せで行うことができ、本明細書で概説する機能及び動作の様々な組合せを使用して様々な実施形態で実施することができる。いくつかの実施形態では、リモートデバイスと対話するプログラミング環境は、シミュレータ及び／又は対応する計測システムのシミュレーションに基づいて提供することができ、プローブ及びワークピースを移動させる実際の運動制御要素及び他の物理的装置をシミュレートすることができる。
【００７５】
以上、本発明の特定の実施形態を、例示の目的で本明細書で述べてきたが、本発明の範囲から逸脱することなく様々な修正を施すことができることを理解されたい。
【００７６】
独占的所有権又は特権が請求される本発明の実施形態は、以下の添付の特許請求の範囲で定義される。
【符号の説明】
【００７７】
１０  マシンビジョン検査システム
１２  ビジョン測定機
１４  制御コンピュータシステム
１６  モニタ
１８  プリンタ
２０  ワークピース
２２  ジョイスティック
２４  キーボード
２６  マウス
３２  可動ワークピースステージ
３４  光学撮像システム
１００  マシンビジョン検査システム
１２０  制御システム部
１２５  コントローラ
１２８  電源部
１３０  入出力インタフェース
１３１  撮像制御インタフェース
１３２  運動制御インタフェース
１３３  照明制御インタフェース
１３４  レンズ制御インタフェース
１４０  メモリ
１４１  画像ファイルメモリ部
１４２  ワークピースプログラムメモリ部
１４２ＰＰ  パートプログラム
１４３  ビデオツール部
１４３ｘ  関心領域ジェネレータ
１５０  ワークピースプログラムジェネレータ及びエグゼキュータ
１５５  レコーダ／トランスレータ
１５６  学習モード部
１５７  実行モード部
１６０  編集部
１８０  代理データマネージャ
１８５  プログラムステータスマネージャ
１９０  ノードマネージャ
１９５  ウィンドウ間自動スクロール部
２００  ビジョン構成要素部
２０５  光学アセンブリ部
２１０  ワークピースステージ
２１２  中央透明部
２２０、２３０、２４０  光源
２２１、２３１、２４１  信号ライン
２５０  対物レンズ
２５５  ワークピース光
２６０  カメラシステム
２６２  信号ライン
２８０  ターレットレンズアセンブリ
２８１  信号ライン
２９４  モータ
２９６  信号ライン
３００  アクセサリインタフェース部
３００’  アクセサリインタフェース部
４００’  リモートデバイス参照情報アクセサリ
【図１】
2015135673.tif 000003
【図２】
2015135673.tif 000004
【図３】
2015135673.tif 000005
【図４】
2015135673.tif 000006
【図５】
2015135673.tif 000007
【図６】
2015135673.tif 000008
【図７Ａ】
2015135673.tif 000009
【図７Ｂ】
2015135673.tif 000010
【図８Ａ】
2015135673.tif 000011
【図８Ｂ】
2015135673.tif 000012
【図８Ｃ】
2015135673.tif 000013
【図９】
2015135673.tif 000014
【図１０】
2015135673.tif 000015
【図１１】
2015135673.tif 000016
【図１２】
2015135673.tif 000017
【外国語明細書】
2015135673000001.pdf