(57)【要約】      （修正有）【課題】プログラム可能な計測システムに対するプログラミング環境におけるリモートアクセサリ管理を提供する。【解決手段】計測システムに対するプログラミング環境は、計測システムとは通常関連付けられないリモートデバイスに接続するアクセサリ管理部３００’を含み、アクセサリ管理部は、リモートデバイスと通信するよう構成されたアクセサリ通信部と、リモートデバイスをプログラミング環境に接続することを許可するよう構成されたアクセサリ許可部と、許可されたリモートデバイスからの参考情報データセットを受信して格納するよう構成されたアクセサリデータ管理部とを含む。許可されたリモートデバイスが参考情報データセットをアクセサリデータ管理部に送信する際、参考情報データセットが、プログラミング環境及びリモートデバイスのユーザインタフェースのうちの少なくとも１つに示される現行のパートプログラム命令表現と自動的に関連付ける。【選択図】図２
2015143980.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（登録商標）ソフトウェア、及び類似の現在市販されているシステムに匹敵する。また、マシンビジョン検査システム１０は、本出願と同じ譲受人の米国特許第７，４５４，０５３号、同第７，３２４，６８２号、同第８，１１１，９０５号、及び同第８，１１１，９３８号にも記載されており、各特許文献の全体を参照により本明細書に援用する。
【００１３】
図２は、図１のマシンビジョン検査システムと同様のマシンビジョン検査システム１００の制御システム部１２０及びビジョン構成要素部２００のブロック図であり、本明細書に記載される原理による、様々な実施形態で使用可能な要素を含む。以下でより詳細に説明されるように、制御システム部１２０は、ビジョン構成要素部２００を制御するために利用される。図２に示されるように、ビジョン構成要素部２００は、光学アセンブリ部２０５、光源２２０、２３０及び２４０、並びに、中央透明部２１２を有するワークピースステージ２１０を含む。ワークピースステージ２１０は、ワークピース２０を配置することができるステージの表面に概ね平行な平面にあるＸ軸及びＹ軸に沿って移動制御可能である。光学アセンブリ部２０５は、カメラシステム２６０、交換可能な対物レンズ２５０を含み、ターレットレンズ２８０又はその代替として固定若しくは交換式の倍率変更レンズなどを含むことができる。光学アセンブリ部２０５は、制御可能モータ２９４を使用して、Ｘ軸及びＹ軸に直交するＺ軸に沿って移動制御可能である。
【００１４】
ワークピース２０、又は多数のワークピース２０を保持する固定具は、ワークピースステージ２１０上に配置することができる。ワークピースステージ２１０は、交換可能な対物レンズ２５０がワークピース２０上の位置間を移動するように制御することができる。光源のうちの１つ又は複数は、ワークピース２０を照らすため、それぞれの光源光２２２、２３２又は２４２を放出することができる。光源光は、ワークピース照明光２５５として反射又は透過され、交換可能な対物レンズ２５０及びターレットレンズアセンブリ２８０を通過し、カメラシステム２６０によって収集される。カメラシステム２６０によって取り込まれた画像は、信号ライン２６２上で、制御システム部１２０に出力される。光源２２０、２３０及び２４０は、信号ライン又はバス２２１、２３１及び２４１のそれぞれを通じて制御システム部１２０に接続することができる。画像の倍率を変更するため、制御システム部１２０は、信号ライン又はバス２８１を通じてターレットレンズアセンブリ２８０の回転を制御することができる。
【００１５】
光学アセンブリ部２０５は、アクチュエータを駆動する制御可能モータ２９４を使用して、ワークピースステージ２１０に対して垂直なＺ軸方向に移動可能であり、光学アセンブリ部２０５を移動して、カメラシステム２６０によって取り込まれる画像の焦点を変更する。Ｚ軸という用語は、本明細書で使用される場合、画像の焦点調整に使用される軸を指す。制御可能モータ２９４は、使用される場合、信号ライン２９６を介して、入出力インタフェース１３０に接続される。
【００１６】
図２に示されるように、様々な例示的な実施形態では、制御システム部１２０は、以下でさらに詳細に説明されるように、コントローラ１２５、電源部１２８、入出力インタフェース１３０、メモリ１４０、ワークピースプログラムジェネレータ及びエグゼキュータ１５０、レコーダ／トランスレータ１５５、学習モード部１５６、実行モード部１５７、編集部１６０、代理データマネージャ１８０、プログラムステータスマネージャ１８５、ノードマネージャ１９０、ウィンドウ間自動スクロール部１９５、並びに、リモートデバイス情報アクセサリ４００’への接続に使用することができるアクセサリ管理部３００’を含む。これらの構成要素の各々及び以下で説明される追加構成要素は、１つ若しくは複数のデータ／制御バス及び／若しくはアプリケーションプログラミングインタフェースによって、又は、様々な要素間のダイレクト接続によって、相互接続することができる。
【００１７】
入出力インタフェース１３０は、撮像制御インタフェース１３１、運動制御インタフェース１３２、照明制御インタフェース１３３及びレンズ制御インタフェース１３４を含む。照明制御インタフェース１３３は、例えば、該当する場合、マシンビジョン検査システム１００の様々な対応する光源について、選択、電力、オン／オフ切替え及びストロボパルスタイミングを制御する。
【００１８】
メモリ１４０は、画像ファイルメモリ部１４１、１つ又は複数のパートプログラム１４２ＰＰなどを含み得るワークピースプログラムメモリ部１４２、及び、ビデオツール部１４３を含む。ビデオツール部１４３は、ビデオツール部１４３ａ及び他のビデオツール部を含み、対応するビデオツールの各々に対するＧＵＩ、画像処理動作などを決定する。また、ビデオツール部１４３は、ビデオツール部１４３に含まれる様々なビデオツールで動作可能な様々なＲＯＩを定義する自動、半自動及び／又は手動動作をサポートする関心領域（ＲＯＩ）ジェネレータ１４３ｘも含む。
【００１９】
一般に、メモリ部１４０は、所望の画像特性を有するワークピース２０の画像を取得するようにビジョンシステムを動作させるのに使用可能なデータを記憶する。また、メモリ部１４０は、検査結果データを記憶することもあり、さらに、（例えばビデオツールとして一部実装された）取得された画像に対する様々な検査及び測定動作を手動又は自動で行って、それらの結果を入出力インタフェース１３０を介して出力するようにマシンビジョン検査システム１００を動作させるために使用可能なデータを記憶することもある。また、メモリ部１４０は、入出力インタフェース１３０を介して動作可能なユーザインタフェースを定義するデータを含むこともある。
【００２０】
照明光源の信号ライン又はバス２２１、２３１及び２４１、カメラシステム２６０からの信号ライン２６２、並びに、制御可能モータ２９４からの信号ライン２９６はすべて、入出力インタフェース１３０に接続される。画像データの伝送に加えて、信号ライン２６２は、画像取得を開始するコントローラ１２５からの信号も伝送することができる。
【００２１】
１つ又は複数の表示デバイス１３６（例えば、図１のディスプレイ１６）、及び１つ又は複数の入力デバイス１３８（例えば、図１のジョイスティック２２、キーボード２４、及びマウス２６）も入出力インタフェース１３０に接続することができる。表示デバイス１３６及び入力デバイス１３８は、ユーザインタフェースを表示するために使用することができ、ユーザインタフェースは、検査動作を実施するため、及び／又はパートプログラムを作成及び／又は修正するため、カメラシステム２６０によって取得された画像を閲覧するため、及び／又はビジョンシステム構成要素部２００を直接制御するために使用可能な様々なユーザインタフェース機能を含むことができる。様々な実施形態において、表示デバイス１３６及び入力デバイス１３８は、マシンビジョン検査システム１００上でのパートプログラムの高速で、効率的で、直観的で、汎用性のある編集を可能にするために使用可能な様々なユーザインタフェース機能を提示するために使用される。
【００２２】
ワークピースプログラムジェネレータ及びエグゼキュータ１５０、レコーダ／トランスレータ１５５、学習モード部１５６、実行モード部１５７、編集部１６０、代理データマネージャ１８０、プログラムステータスマネージャ１８５、ノードマネージャ１９０、ウィンドウ間自動スクロール部１９５及びアクセサリ管理部３００’はすべて、一実施形態では、コントローラ１２５にリンクされる一般的なマシンコントローラブロックＭＣの一部と見なすことができる。それに加えて、図３〜９を参照してさらに詳細に説明されるリモートデバイス情報アクセサリ４００’を、コントローラ１２５にリンクすることができる（例えば、アクセサリ管理部３００’を通じて）。リモートデバイス情報アクセサリ４００’は、いくつかの実施形態では、制御システム部１２０の外部にあるが、制御システム部１２０と相互動作させるように通信するアクセサリと見なすことができる。ワークピースプログラムジェネレータ及びエグゼキュータ１５０は、パートプログラムの作成及び実行を担う。「ワークピースプログラム」及び「パートプログラム」という用語は、本明細書では同義で使用できることが理解されよう。
【００２３】
ワークピースプログラムジェネレータ及びエグゼキュータ１５０の動作によれば、様々な例示的な実施形態では、ユーザがマシンビジョン検査システム１００を利用してワークピース２０に対するパートプログラムを作成する際、ユーザは、ワークピースプログラミング言語を使用して、自動、半自動若しくは手動で命令を明確にコード化することによってパートプログラム命令を生成する、及び／又は、学習モードでマシンビジョン検査システム１００を動作させて（例えば、学習モード部１５６によって制御されるように）所望の画像取得トレーニングシーケンスを提供することによって命令を生成する。例えば、トレーニングシーケンスは、視野（ＦＯＶ）内にワークピース要素を配置するステップ、照明光レベルを設定するステップ、焦点調整又は自動焦点調整を行うステップ、画像を取得するステップ、及び画像に適用された検査トレーニングシーケンスを提供するステップ（例えば、ビデオツールを使用して）を含み得る。学習モードは、シーケンスを取得又は記録し、対応するパートプログラムステップ（すなわち、命令）に変換するように動作する。これらのパートプログラムステップは、パートプログラムが実行モードで実行されると（例えば、実行モード部１５７によって制御されるように）、パートプログラムの作成の際に使用されたワークピースと一致する１つ又は複数のワークピースを自動的に検査するため、トレーニングされた画像取得及び検査動作を再現することをマシンビジョン検査システムに行わせる。
【００２４】
レコーダ／トランスレータ１５５は、マシン動作をパートプログラムコードに変換するために利用される。言い換えれば、ユーザが動作（例えば、ワークピース上の機能の測定に使用されるビデオツールを変更するなど）を実行すれば、命令が生成され、マシン可読言語への命令の変換が行われ、逆の変換も実行することができる。以下でさらに詳細に説明されるように、本明細書で開示されるある実施形態では、パートプログラムのある命令は、ユーザインタフェースにおける命令表現に変換することもできる。いくつかの実施形態では、パートプログラム命令は、マークアップタイプの言語コードで記述することができる。１つの特定の例示的な実施形態では、マークアップ言語コードは、ＸＭＬコードであり得る。編集部１６０は、編集ユーザインタフェース部１６０ｕｉ内でのパートプログラムの編集に関連する様々な動作及びユーザインタフェース機能を提供又は起動し、編集ユーザインタフェース部１６０ｕｉは、以下でさらに詳細に説明されるように、パートプログラム表示ウィンドウを含み得る。
【００２５】
代理データマネージャ１８０は、存在しなくともよいが、いくつかの実施形態と組み合わせて使用することができる。簡潔には、代理データマネージャ１８０は、代理データにリンクし、代理データは、パートプログラムに記録することができる。ある実装形態では、代理データマネージャ１８０は、代理データが通常生成される出力から代理データを入手することや、編集動作をサポートするため、学習モード動作中は代理データを使用するシミュレーションモードでプログラム動作を高速実行できるように、パートプログラムに書き込まれる代理データを提供することを担う。代理データマネージャ１８０については、同一出願人による米国特許出願第１３／２９７，２３２号（’２３２出願）でさらに詳細に説明されている。
【００２６】
プログラムステータスマネージャ１８５は、一実施形態では、プログラムが保護されているか、又は保護されていないかを管理する。一実装形態では、保護されているパートプログラムでは代理データを除去させるが、保護されていないパートプログラムには、記憶されている代理データを含み得る。１つの例示的実施形態では、保護されているプログラムは、工場において実行モードで利用することができるものなど、編集プロセスが完了しているプログラムである。
【００２７】
一実施形態では、ノードマネージャ１９０は、パートプログラムでのノードに割り当てられるノード番号の管理を担当する。一実装形態では、パートプログラムの表現内で、各命令表現にノード番号が割り当てられる。特定の実装形態では、組織的なツリー構造を利用することができ、親ノードと子ノードが存在する。特定の実装形態では、レコード／トランスレータ１５５によって生成されるパートプログラム表現のあらゆるラインに、ノードマネージャ１９０によって、ノード番号又は保証された一意の識別子などが割り当てられる。全体を参照により本明細書に援用する本出願と同じ譲受人の米国特許出願公開第１３／６７６，０６１号（’０６１号出願）でより詳細に述べられているように、いくつかの実施形態では、ウィンドウ間自動スクロール部１９５が、ノードマネージャ１９０によって割り当てられたノード番号を利用して、関連のパートプログラム要素及び対応する編集機能を異なるウィンドウにおいて同時に表示することができる。すなわち、ワークピースのどの測定が、パートプログラムでのどの命令表現及び符号化された命令に関係付けられているかをユーザが知りたい場合、ウィンドウ間自動スクロール部１９５が、それぞれのウィンドウにおいて、関連のノード番号に対応するパートプログラム表現及び／又は符号化された命令内の関連のラインまで自動的にスクロールする。ウィンドウ間通信の１つの例示的な方法及び／又は実装は、図１１を参照して以下で述べる。いくつかの実施形態では、アクセサリ管理部３００’は、類似の方法を使用して、ノードマネージャ１９０及び／又はウィンドウ間自動スクロール部１９５と相互動作することがあり、それにより、アクセサリ動作ユーザインタフェース部３１０’及び／又はリモートデバイス情報アクセサリ４００’は、本明細書で開示される原理及び動作に従って、アクティブノード番号情報及び／又は関連のパートプログラム命令表現などを受信及び／又は送信することができる。
【００２８】
図２に関し、図２の多くの要素については、’２３２出願及び’０６１出願において同様に描写、説明及び／又は参照される要素である、それらの要素の類似の記述又は実質的に同様の対応物の記述に基づいてさらに理解することができる。
【００２９】
図３は、計測システムのプログラミング環境で使用可能なアクセサリ管理部３００（例えば、図２に示されるアクセサリ管理部３００’のような）の例示的な一実施形態と、アクセサリ管理部３００に接続されてリモートデバイス参考情報プログラミングアクセサリ４００（例えば、図２に示されるリモートデバイス情報アクセサリ４００’のような）として使用可能なリモートデバイスの例示的な一実施形態とのブロック図である。図３に示される実施形態では、アクセサリ管理部３００は、アクセサリ動作ユーザインタフェース３１０、アクセサリデータマネージャ３２０、ノード関連付け部３３０、アクセサリ通信マネージャ３４０及びアクセサリ許可マネージャ３５０を含む。リモートデバイス参考情報プログラミングアクセサリ４００（以下では、リモートデバイス参考情報アクセサリ、又は単にリモートデバイスとも称す）は、リモートデバイス通信部４１０、リモートデバイス登録データ４２０、リモートデバイスユーザインタフェース４３０及びリモートデバイス現行命令応答部４４０を含み、リモートデバイス現行命令応答部４４０は、図３に示される実施形態では、リモートデバイスファイルジェネレータ／マネージャ４４１及び／又はリモートデバイスセンサ４４３を含み得る。
【００３０】
一般的に言えば、アクセサリ管理部３００は、パートプログラムを作成及び編集する間に使用するリモートアクセサリとして、熟知しているパーソナルデバイスを計測システムに接続する機能を、あまり熟練していないユーザに提供するよう構成される。このことは、例えば、そのようなデバイスの接続や、ユーザがパートプログラムの特定の位置でそのようなアクセサリからの参考情報を容易に付加することを可能にする要素の接続を容易にするユーザインタフェース機能及び動作を提供することによって達成される。いくつかの実施形態では、アクセサリ管理部３００は、接続し易さや、計測システムプログラミング環境内でのリモートデバイス参考情報アクセサリ４００の使い易さが特に強調されるように構成される。アクセサリ動作ユーザインタフェース３１０は、例えば、以下で図４〜９に示される例示的な実施形態を参照して概説されるように、この強調をサポートするために、コマンド、ダイアログボックス及び他の表示要素を含み得る。アクセサリ通信マネージャ３４０は、例えば、以下で図１０に示される例示的な実施形態を参照して概説されるように、この強調をサポートするために、デバイス通信回路及び／又はルーチンを含み得る。アクセサリ通信マネージャ３４０は、例えば、アクセサリ許可マネージャ３５０及びアクセサリデータマネージャ３２０の動作をサポートするためなど、プログラミング環境とリモートデバイス参考情報アクセサリ４００との間の通信を管理することができる。
【００３１】
アクセサリ許可マネージャ３５０は、例えば、以下で図５〜７に示される例示的な実施形態を参照して概説されるように、計測システムプログラミング環境に関連して信頼されているリモートデバイスを登録する許可ルーチン及び関連するユーザインタフェース機能を含み得る。アクセサリデータマネージャ３２０は、リモートデバイス参考情報アクセサリ４００からの特定の参考情報をプログラミング環境の特定のパートプログラム命令表現（例えば、現行のパートプログラム命令表現）と関連付け、その関連性をサポートするようにそれを格納するため、ノード関連付け部３３０と協働して動作させることができる。
【００３２】
ノード関連付け部３３０は、アクセサリ管理部３００の他の要素の動作をサポートするよう構成される。一実施形態では、ノード関連付け部３３０は、本明細書で開示される原理及び動作に従って、アクセサリ管理部３００及びリモートデバイス参考情報アクセサリ４００の様々な要素が現ノード番号情報及び／又は関連パートプログラム命令表現などを交換できるように、ノードマネージャ１９０及び／又はウィンドウ間自動スクロール部１９５と相互動作させること、並びに／あるいは、類似の方法を使用することができる。ノードマネージャ１９０については、’２３２出願及び’０６１出願でさらに詳細に説明されており、ウィンドウ間自動スクロール部１９５の例示的な一実施形態は、以下で図１１を参照して概説される。
【００３３】
一般的に言えば、リモートデバイス参考情報アクセサリ４００は、計測システムパートプログラムに関連し、アクセサリ管理部３００に接続可能な（例えば、ネットワーク及び／又はBluetooth（登録商標）若しくはWiFiなどの無線接続又は同様のものを通じて）参考情報の生成及び／又は格納が可能ないかなるデバイスでもよい。しかし、上記で概説したように、プログラム可能な計測システムのユーザは、計測システムの専用の又は特別に構成されたアクセサリではなく、ユーザが熟知しているパーソナルコンピューティングデバイス及び／又はファイル記憶装置（例えば、タブレット、スマートフォン又は同様のもの）を持ち歩くことが多い。そのようなパーソナルコンピューティングデバイス及び／又はファイル記憶装置は、ユーザが熟知しており、且つパートプログラムを作成しながら追加の参考情報を生成するために使用したくなるであろう、カメラ、インターネットブラウザ及び他のデバイスやプログラムを含むことが多い。いくつかの実施形態では、そのようなデバイスは、本明細書で開示される方法で特定のタイプの計測システムと対話するようにカスタマイズされたローカルに存在するアプリケーションを含むよう構成することができる。しかし、他の実施形態では、接続し易さ及び／又は使い易さを促進するため、少なくともリモートデバイスをプログラミング環境に接続することを許可する前に、リモートデバイスは、プログラム可能な計測システムのプログラミング環境と対話するようにカスタマイズされた格納プログラム又はアプリケーションを含まなくともよい。いくつかの実施形態では、リモートデバイス上に予め存在する（そして、計測システムとは通常関連付けられない）インターネットブラウザ及び／又は他のアプリケーションは、例えば、以下で図４〜１０に示される例示的な実施形態を参照して概説されるように、本明細書に開示される機能及び動作を提供するために必要な機能のすべてを提供することができる。
【００３４】
リモートデバイス通信部４１０は、例えば、以下で図１０に示される例示的な実施形態を参照して概説されるように、デバイス通信回路及び／又はルーチンを含み得る。リモートデバイス通信部４１０は、本明細書で開示されるアクセサリ管理部３００の様々な機能及び動作をサポートするため、リモートデバイス参考情報アクセサリ４００との通信のやり取りを提供及び／又は管理することができる。
【００３５】
リモートデバイス登録データ４２０は、例えば、以下で図６〜７に示される例示的な実施形態を参照して概説されるように、リモートデバイス参考情報アクセサリ４００を特定し、本明細書で開示されるアクセサリ許可マネージャ３５０の様々な機能及び動作をサポートする情報及び動作を含み得る。
【００３６】
リモートデバイスファイルジェネレータ／マネージャ４４１及び／又はリモートデバイスセンサ４４３を含み得るリモートデバイス現行命令応答部４４０は、特定のパートプログラム命令表現と関連付ける、リモートデバイス参考情報アクセサリ４００上で参考情報の特定のセットを準備するように動作させることができる。リモートデバイスセンサ４４３は、様々な実施形態では、例えば、カメラ、マイクロホン、温度センサ、振動センサ、コンパス、ＧＰＳ、バーコードセンサ、ＲＦＩＤセンサのうちの１つ又は複数を含み得る。準備された時点で、参考情報セットは、例えば、以下で図７、８、１０及び１１を参照して概説されるように、その特定のパートプログラム命令表現（例えば、現行のパートプログラム命令表現）と関連付けられたプログラミング環境に送信することができる（例えば、アクセサリ管理部３００を通じて）。リモートデバイスユーザインタフェース４３０は、例えば、以下で図４〜８、１０及び１１に示される例示的な実施形態を参照して概説されるように、プログラミング環境との対話をサポートするために（例えば、アクセサリ管理部３００を通じて）、コマンド、ダイアログボックス及び他の表示要素を含み得る。いくつかの実施形態では、リモートデバイスユーザインタフェース４３０は、本明細書で開示される機能及び動作を提供するため、ウェブページ機能、対話型ウェブページ機能又は同様のもの、並びに／あるいは、リモートデバイス上に予め存在する（そして、計測システムとは通常関連付けられない）インターネットブラウザ及び／又は他のアプリケーションの機能を含み得るか、あるいは、同機能からなり得る。しかし、そのような実施形態は、単なる例示であり、制限するものではない。いくつかの実施形態では、ユーザインタフェース機能を含むアプリケーションは、実行のためにリモートデバイス参考情報アクセサリ４００にダウンロードすることができる。
【００３７】
図４は、本明細書で開示される原理による、計測システムのプログラミング環境で使用可能なアクセサリ管理部３００（リモートデバイス参考情報アクセサリ４００にリンクすることができる）及び他の要素を含む、編集部１６０（例えば、図２に示される編集部１６０として使用可能な）の例示的な一実施形態のブロック図である。図４に示されるように、編集部１６０は、編集動作コントローラ１７４、編集ユーザインタフェース部１６０ｕｉ、エディタコマンド部１７７及び実行編集部１７８を含む。編集動作コントローラ１７４は、編集機能に対する動作を制御し、編集ユーザインタフェース部１６０ｕｉは、編集機能に対するユーザインタフェース機能を提供する。編集ユーザインタフェース部１６０ｕｉは、プログラム表示ウィンドウ部１６１を含み、プログラム表示ウィンドウ部１６１は、表現ユーザインタフェース機能１６２を含み、表現ユーザインタフェース機能１６２は、ノードユーザインタフェース機能１６３及び参考情報ユーザインタフェース機能１６４を含む。一実施形態では、プログラム表示ウィンドウ内のパートプログラム表現は、木構造で提供することができる。表現ユーザインタフェース機能１６２は、コンテキストの状態や、コンテキストがどのように入手されたか（例えば、コンテキストが、代理データから生成されたか、実際の実行によって生成されたかなど）に応じて色を変更することができる挿入ポインタなどの機能を提供する。ノードユーザインタフェース機能１６３に関し、一実施形態では、これらの機能は、命令表現「ノード」がアクティブな現行（カレント）ノードであるかどうかなどを示すため（すなわち、それが、ユーザインタフェースの現行の動作による影響を受けるターゲットであることを示すため）、アイコン又はブロークンアイコンや、色のハイライトなどの機能を含み得る。いくつかの例示的な参考情報ユーザインタフェース機能１６４を含む、編集ユーザインタフェース部１６０ｕｉ及びプログラム表示ウィンドウ部１６１の様々な機能のいくつかの例示的な実施形態については、例えば、以下で図５、６、８及び９に関してより詳細に説明される。
【００３８】
編集実行部１７８は、編集プロセス中の様々な実行モードを担当し、代理モード部１８０と、実モード部１９１と、編集実行ユーザインタフェース機能部１９２とを含む。代理モード部１８０が代理実行モードを動作させるとき、継続的な編集動作のためのコンテキストを生成するために代理データが利用される。実モード部１９１は、従来のマシンビジョンシステムによって従来行われている動作を含む。実モード部１９１は、必要時に、実際マシン動作を行うために代理モード部１８０によって呼び出される。編集実行ユーザインタフェース機能１９２は、編集機能の実行に関するユーザインタフェース機能（例えば様々な実行動作のステータスに関する表示、例えば、パートプログラムのどの部が代理データを利用しているか、又は実際の実行動作によって実行されているかなどを示すカラーコード）を提供する。さらに、編集実行部１７８の要素は、’２３２出願及び’０６１出願において同様に論述、記載、及び／又は参照されている要素であるそれらの類似又は実質的に同様の対応する要素の説明に基づいて理解することができる。
【００３９】
エディタコマンド１７７は、’２３２出願で詳細に説明されるセグメント実行部１７７ａ、修正部１７７ｂ及び挿入／付加部１７７ｃと、一実施形態では、以下で（例えば、図５〜９を参照して）さらに詳細に説明される原理に従って動作させることができる参考情報追加部１７７ｄとを含む。
【００４０】
アクセサリ管理部３００は、アクセサリ動作ユーザインタフェース３１０、アクセサリデータマネージャ３２０、ノード関連付け部３３０、アクセサリ通信マネージャ３４０及びアクセサリ許可マネージャ３５０を含む。アクセサリ管理部３００及びその様々な要素については、すでに図３を参照して概説しており、さらに図を参照して後述するので、ここでさらに説明する必要はない。図４に示されるように、リモートデバイス参考情報プログラミングアクセサリ４００は、アクセサリ通信マネージャ３４０を通じてアクセサリ管理部３００と通信するためにリンクすることができ（例えば、以下で図５〜７及び図１０を参照して説明されるように）、それにより、編集部１６０によって提供されるプログラミング環境のアクセサリパートとなり得る。リモートデバイス参考情報アクセサリ４００は、リモートデバイス通信部４１０、リモートデバイス登録データ４２０、リモートデバイスユーザインタフェース４３０及びリモートデバイス現行命令応答部４４０を含み得、リモートデバイス現行命令応答部４４０は、図４に示される実施形態では、リモートデバイスファイルジェネレータ／マネージャ４４１及び／又はリモートデバイスセンサ４４３を含み得る。リモートデバイス参考情報アクセサリ４００及びその様々な要素については、すでに図３を参照して概説しており、さらに図を参照して後述するので、ここでさらに説明する必要はない。
【００４１】
図５は、本明細書で開示される原理による、リモートアクセサリから参考情報を追加することに関連する機能を含む、計測システムのプログラミング環境の一実施形態を含む学習モードユーザインタフェース５５０の第１の状態の図５００である。図５に示される実施形態では、プログラミング環境の第１の状態は、メニューバー５５３、ツールバー５５５、ツールバー５６０、ステージ位置表示５７０、視野表示５８０、パートプログラム表示ウィンドウ１６１ｗ（本明細書のいくつかのコンテキストでは編集ウィンドウ１６１ｗとも呼ばれる）、コマンドメニューボックス１７７ｍｂ及び参考情報源メニューボックス３１０ｍｂを含む。パートプログラム表示ウィンドウ１６１ｗは、パートプログラム命令表現セット１６２ｉｒを含み、パートプログラム命令表現セット１６２ｉｒは、現行命令表現１６２ｃｉｒを含み、現行命令表現１６２ｃｉｒは、ポインタ１６２ｐの位置によって現在アクティブな命令表現として示すことができる。図では、現行命令表現１６２ｃｉｒを分かりやすくするために、囲み枠で示している。ツールバー５５５は、ユーザインタフェース５５０の上側に水平に配置された様々なユーザツール（例えば、測定ビデオツール）を含む。ツールバー５６０は、ユーザインタフェース５５０の右側に垂直に配置されたユーザツール（例えば、アラインメント及び拡大ツール）を含む。ステージ位置表示５７０は、ステージ３２の位置を示すＸ、Ｙ及びＺ座標を表示する。視野表示５８０は、カメラ２６０によって撮像されたマシンビジョン検査システム１００の視野のリアルタイムビデオ画像を表示することができ、参考までに、ユーザによって定義及び記録される際に円ツール関心領域５８１（例えば、命令表現１６２ｉｒに含まれる「円ツール」命令表現に相当する）が現れる位置の輪郭を点線で概略的に表示する。ユーザインタフェース５５０は、’２３２出願及び’０６１出願で説明されているものに対応する要素を有し、その様々な要素は、それらの出願における記述に基づいてさらに理解することができる。
【００４２】
図５に示されるプログラミング環境の第１の状態では、ユーザは、まず命令表現１６２ｃｉｒ「測定用にセットアップする」を選択して、それを現行命令表現とし、そして、その命令表現と関連付けてコマンドメニューボックス１７７ｍｂを出現させるユーザ入力を入力している（例えば、命令表現１６２ｃｉｒをマウスオーバーしながら、マウスボタンを「右クリック」することによって）。次いで、ユーザは、「参考情報を追加する」コマンド１７７ｄを選択し、そのコマンドと関連付けて参考情報源メニューボックス３１０ｍｂを出現させるユーザ入力を入力している（例えば、上記で概説される「右クリック」動作を使用することによって）。図５に示される実施形態では、参考情報源メニューボックス３１０ｍｂは、「ローカルをブラウズする」（例えば、ローカルの計測システムに位置する所望の参考情報ファイルの検索にファイルブラウザを使用するため）、「リモートアクセサリから現行情報セットを送信する」（例えば、以下で図７Ｃを参照して説明される、リモートデバイス情報アクセサリ４００に位置する「現行命令に送信する」ボタン４３１ｓと同等である）及び「リモートアクセサリを許可する」（例えば、参考情報をプログラミング環境に送信することが未だ許可されていないユーザのパーソナルデバイスなどのリモートデバイスから参考情報を入手することが望まれる際）のうちの１つを選択するボタンを含む。ユーザは、以下で図６を参照して説明されるように、リモートデバイス許可を起動する一方法として、メニューから「リモートアクセサリを許可する」動作を選択することができる。
【００４３】
図６は、本明細書で開示される原理による、リモートデバイス参考情報アクセサリからの接続及び入力を許可することに関連する機能を含む、計測システムのプログラミング環境の一実施形態を含む学習モードユーザインタフェース５５０の第２の状態の図６００である。図６に示されるプログラミング環境の第２の状態では、ユーザは、メニューバー５５３上の「プログラム」メニューアイテム５５３Ｐを選択し、ドロップダウンコマンドメニューボックス５５３ｃｍｂを出現させ、次いで、「アクセサリを許可する」コマンド３５０ａｃを選択し、「リモートデバイス許可」ダイアログボックス３５０ｄｂを出現させている。図６に示される実施形態では、リモートデバイス許可ダイアログボックス３５０ｄｂは、ユーザによって読み取られて実行される命令３５１及び３５２を含む。図６に示されるユーザインタフェースの状態は、ユーザが、リモートデバイス（例えば、ユーザのパーソナルスマートフォン、タブレット又は同様のもの）を、ユーザインタフェース５５０を表示している計測システムを含むネットワークに接続した場合を示している。例えば、様々な実施形態では、リモートデバイスは、公知の方法に従って、インターネット、イントラネット、有線ネットワーク又は無線ネットワーク（例えば、Wi-Fiを使用して）に接続することも、計測システム自体（例えば、Bluetooth（登録商標）接続を使用して）又は同様のものに接続することもできる。図６に示される実施形態では、ユーザインタフェース５５０を表示している計測システムのように、リモートデバイスがイントラネットに接続されている場合を示している。したがって、本明細書に記載される例示的な方法では、表示された命令３５１は、計測システムと関連付けられた特定のアドレス３５１ａを、リモートデバイス上のインターネットブラウザのアドレスバーに入力する（例えば、図７Ａに示されるように）ようにユーザに指示する。ユーザがリモートデバイス上でそのアドレスを入力したことに応答して、アクセサリ管理部３００は、リモートデバイスの存在及び／又はアドレスについての通知を受け、リモートデバイス上に表示するウェブページを送信するよう構成される（例えば、図７Ｂに示されるように）。アクセサリ管理部３００とリモートデバイスとの間の通信は、例えば、以下で図１０を参照して概説される方法を使用して実施することができる。ここで説明する例では、表示された命令３５２は、特定の許可コード３５２ａ（アクセサリ管理部３００によって生成される）を、送信されたウェブページに含まれるコードエントリボックス（例えば、図７Ｂに示されるコードエントリボックス４３１ｂ）に入力するようにユーザに指示する。ユーザは、一般に、自分のリモートデバイスを手にした状態で計測システムのところに居るため、このことは、容易に達成される。
【００４４】
様々な実施形態では、リモートデバイス許可ダイアログボックス３５０ｄｂは、計測システム及び／又はアクセサリ管理部３００によって検出されたリモートデバイスに対する１つ又は複数のリモートデバイス状態ボックス３５３を含み得、リモートデバイス状態ボックス３５３は、それぞれのリモートデバイス（例えば、ネットワーク上でのリモートデバイスの識別子及び／又はリモートデバイスのアドレス）及びそれらの許可状態などを表示することができる。リモートデバイス状態ボックス３５３は、例えば、リモートデバイスがBluetooth（登録商標）接続などを通じて計測システムに直接接続される際に特に有益なものであり得る。
【００４５】
図７Ａ〜７Ｃは、そのリモートデバイスを計測システムプログラミング環境との対話のために接続することを許可し、プログラミング環境における現行命令表現に参考情報セットを追加するためにリモートデバイス参考情報アクセサリ４００上で使用可能な、ユーザインタフェース機能及び動作の一実施形態の第１、第２及び第３の状態のそれぞれを示す。図７Ａは、タッチスクリーンディスプレイ４００ｄを含むリモートデバイス参考情報アクセサリ４００（例えば、スマートフォン）を示し、タッチスクリーンディスプレイ４００ｄは、ユーザインタフェース４３０を提供し、ユーザインタフェース４３０は、アドレスバー４３０ａｂを提供するインターネットブラウザインタフェースを含む。図７Ａに示される第１の状態は、ユーザが、リモートデバイス４００を、図６のユーザインタフェース５５０を表示している計測システムを含むネットワークに接続し、図６に示される表示された命令３５１（計測システムと関連付けられた特定のアドレス３５１ａを、リモートデバイス上のユーザのインターネットブラウザのアドレスバーに入力するようにユーザに指示する）に従った場合を示している。
【００４６】
図７Ｂは、図７Ａに概説されるように、ユーザが特定のアドレス３５１ａを入力して接続した後のリモートデバイス４００の第２の状態を示す。アドレス入力に応答して、アクセサリ管理部３００は、リモートデバイス４００の存在及び／又はアドレスについての通知を受け、図７Ｂに示されるようにリモートデバイス上に表示するウェブページ４３１ｗｐを送信する。ここで説明される例では、ウェブページ４３１ｗｐは、命令４３１ａを含み、命令４３１ａは、特定の許可コード３５２ａ（図６に示される）をコードエントリボックス４３１ｂに入力する（その結果、コードは、アクセサリ管理部３００のアクセサリ許可マネージャ３５０に返信される）ようにユーザに指示する。ユーザは、一般に、自分のリモートデバイスを手にしながら計測システムのところに居り、計測システム及びリモートデバイスの各々のディスプレイを観察し得るため、このことは、容易に達成される。アクセサリ許可マネージャ３５０は、リモートデバイス４００から受信したコードを特定の許可コード３５２ａと比較するよう構成される。それらのコードが一致すれば、アクセサリ許可マネージャ３５０は、リモートデバイス４００が計測システムのプログラミング環境と対話し、本明細書で開示される様々な動作及び機能を実施することを許可する（例えば、図７Ｃ及び８を参照して説明されるようになど）。これは、工場のイントラネットやネットワークなどに他のリモートデバイス及び／又は計測システムが存在していても、自分のローカルパーソナルデバイスをローカルの計測システムにのみに接続する確実な方法をローカルユーザに提供する例示的な一方法である。
【００４７】
図７Ｃは、リモートデバイス４００がアクセサリ管理部３００を通じて計測システムのプログラミング環境との対話を許可された後のリモートデバイス４００の第３の状態を示す。対話が許可されると、アクセサリ管理部３００は、１つ又は複数の追加の「許可された」ウェブページ４３１ａｗｐをリモートデバイス４００に送信することができる。図７Ｃに示される実施形態では、許可されたウェブページ４３１ａｗｐは、現行命令表現表示部４３１ｄ、現行命令応答部４４０ｕｉ、「現行命令に送信する」ボタン４３１ｓ及びサインアウトボタン４３１ｘ（アクセサリ管理部３００からのリモートデバイスの切断及び／又はその許可の終了に使用することができる）を含む。図７Ｃに示される実施形態では、現行命令表現表示部４３１ｄは、プログラミング環境における（現在アクティブな）現行命令表現の画像、再現又は他の表現を含む現行命令表現表示４３１ｃｉｒ（例えば、図５の編集ウィンドウ１６１ｗに示される現行命令表現１６２ｃｉｒ）と、その周囲の命令表現４３１ｉｒとを含む。現行命令表現表示部４３１ｄは、計測システムのプログラミング環境における（現在アクティブな）現行命令表現のいかなる変化も反映するため、アクセサリ管理部３００によって頻繁に更新することができる。現行命令表現表示部４３１ｄの図示の形態は、単なる例示であり、これに限定するものではない。他の実施形態では、リモートデバイス４００上の現行命令表現表示は、リモートデバイス４００によって提供される参考情報に対するターゲットノードをユーザが視認しやすくなるような任意の形態での、現行命令表現のみの単なる再現、又はそのノード番号（プログラミング環境にも表示することができる）などでよい。その上、いくつかの実施形態では、現行命令表現はプログラミング環境自体に示され、ユーザは両方のデバイスの表示を見ることができるため、リモートデバイス４００上の現行命令表現表示は、単に省略することができる。しかし、そのような実施形態は、ユーザにとって多少効率の悪いものであり得る。
【００４８】
図７Ｃに示される実施形態では、現行命令応答部４４０ｕｉは、動作選択ボタン４４０ｏｓ及び参考情報確認部４４１ｕｉを含む。動作選択ボタン４４０ｏｓは、カメラ選択ボタン及びペーストボタンを含む。この例では、所望の参考情報ファイルがリモートデバイス４００上に既に存在する場合、ユーザは、単に、リモートデバイスのネイティブ（元々備わっている）プログラム又はアプリケーションを使用して、その参考情報ファイルを位置付けてコピーすることも、その参考情報ファイルにリンクすることもできる（すなわち、ユーザは、例えば、ウェブページ４３１ａｗｐを一時的に最小化することによってリモートデバイスの他の能力を使用することができる）ことが想定される。そのような事例では、ファイルがリモートデバイスのクリックボードなどにコピー又はリンクされると、ウェブページ４３１ａｗｐに戻って、当該ファイルをペーストする、又はリモートデバイス４００内の現行命令表現と関連する参考情報ファイルのリストにリンクするために、ペーストボタンが操作される。そのリストに含まれる参考情報ファイルは、参考情報確認部４４１ｕｉの表示枠内に表示することができる（例えば、ファイル名、サムネイル画像、アイコン又は同様のもののリストとして）。現行命令に送信するボタン４３１ｓは、ファイルリスト内の参考情報セットに対応するデータをアクセサリ管理部３００に送信するためにいつでも使用することができる。次いで、アクセサリデータマネージャ３２０は、リモートデバイス４００から受信した特定の参考情報セットを現行のパートプログラム命令表現と関連付け、パートプログラム及び現行のパートプログラム命令表現及び／又はその基本的なパートプログラム命令とのその関連性をサポートするようにそれを格納することができる。ここで概説した様々な動作は、前述したファイルジェネレータ／マネージャ４４１と関連付けることができることが理解されよう。所望の参考情報ファイルがリモートデバイス４００上に未だ存在せず、画像が参考情報ファイルとして望まれる場合、要素４４０ｏｓのカメラボタンを操作して、ウェブページ４３１ａｗｐを最小化すること、並びに／又は、リモートデバイス４００上に既に存在する画像取得及び格納機能にアクセスすることができることが理解されよう。次いで、結果として得られた画像は、上記で概説したように、参考情報ファイルとして取り扱うことができる。もちろん、他のセンサ機能がリモートデバイス４００に存在する場合は、これらの機能にアクセスして使用し、類似の方法で参考情報を提供することができる。
【００４９】
いくつかの実施形態では、図７Ａ〜７Ｃを参照して上記で概説されるリモートデバイス４００の機能及び動作は、ウェブページ機能、対話型ウェブページ機能など、並びに／あるいは、リモートデバイス上に予め存在する（そして、計測システムとは通常関連付けられない）インターネットブラウザ及び／又は他のアプリケーションを使用して実装することができる機能を含み得るか、あるいは、同機能のみからなり得る。このように、熟練していないユーザが、リモートデバイス参考情報アクセサリ４００としてパーソナルデバイスを容易に使用することができ、特別なトレーニングが不要であり、ユーザのパーソナルデバイスに対する大した妨害もないという非常に望ましい利益を伴う。しかし、そのような実施形態は、単なる例示であり、これに限定するものではない。いくつかの実施形態では、ユーザインタフェース機能を含むアプリケーションを、実行のためにリモートデバイス参考情報アクセサリ４００にダウンロードすることができる。
【００５０】
図８は、現行命令表現と関連付けられた参考情報セットを追加することに関連する機能を含む、計測システムのプログラミング環境の一実施形態を含む学習モードユーザインタフェース５５０の第３の状態の図８００である。図８に示されるプログラミング環境の第３の状態では、ユーザは、上記で図５、６及び７Ａ〜７Ｃを参照して概説した動作を実行しており、同動作は、リモートデバイス４００からアクセサリ管理部３００に参考情報セットを送信する動作と、パートプログラム及び現行命令表現（及び／又はその対応する基本的なパートプログラム命令）とのその関連性をサポートするように計測システムにそれを格納する動作とを含む。具体的には、図８に示される例では、現行命令表現１６２ｃｉｒと関連付けられた参考情報セットを格納する動作の完了と同時に、参考情報インジケータ又はフラグ１６４ｒｉｆ（ユーザインタフェース機能）が、現行命令表現１６２ｃｉｒの最も近くに「添付」される。その特定の命令表現の最も近くへのフラグ１６４ｒｉｆの添付は、当該命令表現がもはや現行命令表現ではなくなる際並びに／又は編集ウィンドウ１６１ｗにおいてビューのスクロールイン及びスクロールアウトが行われる際などにも持続する。図８に示される例は、ユーザが、参考情報ウィンドウ１６４ｗを表示させる操作を実行し終えたところである（例えば、フラグ１６４ｒｉｆをクリックすることによって）。参考情報ウィンドウ１６４ｗは、参考情報インジケータ１６４ｒｉｆ及び／又はその関連命令表現と関連付けられた特定の参考情報ファイルセットに対応するファイルリスト又はメニュー１６４ｆｍを含み得る。図８に示される実施形態では、参考情報ウィンドウ１６４ｗは、ファイルリスト又はメニュー１６４ｆｍに対するスクロールバー制御１６４ｓｃと、ファイルリスト又はメニュー１６４ｆｍから選択されたファイルのコンテンツを表示する参考情報表示部１６４ｒｉｄとをさらに含む。参考情報ウィンドウ１６４ｗは、公知の方法に従って、サイズ変更したり、移動したり、最小化したり、閉じたりすることなどを行うことができる。あるいは、参考情報ウィンドウ１６４ｗを省略し、公知の方法に従って、適切なデフォルトプログラムで参考情報ファイルを自動的に開くことができる。
【００５１】
図８及び９は共に、参考情報インジケータ又はフラグ１６４ｒｉｆの一実施形態と関連付けられたユーザインタフェース機能を示す。図８に示されるように、参考情報インジケータ１６４ｒｉｆは、親ノード命令表現１６２ｉｒｐｎの子ノード１６２ｉｒｃｎである（例えば、「測定用にセットアップする」動作は、「円（円１）を測定する」動作のサブ動作である）命令表現１６２ｃｉｒと関連付けられる。図９に示される学習モードユーザインタフェース５５０の第４の状態の図９００では、ユーザは、親ノード命令表現１６２ｉｒｐｎの前に示される＋／−アイコンをクリックし、その子ノードが隠れるようにその子ノードの表示を折り畳んでいる。しかし、ユーザにとって、折り畳まれた又は隠された子ノードと関連付けて参考情報が利用可能であることを知っていることが有利であり得る。したがって、様々な実施形態では、参考情報インジケータ１６４ｒｉｆが、折り畳まれた又は隠された子ノードと関連付けられている場合、例えば、図９に示されるように、その親ノードに対して一時的な参考情報インジケータ１６４ｒｉｆ’が添付されて表示される。様々な実施形態では、一時的な参考情報インジケータ１６４ｒｉｆ’をクリックすることにより、先に概説したように、関連する参考情報セットを表示すること、並びに／又は、隠された子ノード及びそれに関連付けられている参考情報インジケータ１６４ｒｉｆを展開して表示することができる。
【００５２】
図１０は、ウェブサービスを使用する、アクセサリ管理部（例えば、アクセサリ管理部３００）の様々な機能及び動作の例示的な一実装形態のブロック図１０００を示す。
【００５３】
一般的に言えば、ウェブサービスは、アプリケーション又はシステム間でデータを交換するために使用されるプロトコル及び標準の集合体である。様々なプログラミング言語で記載され、様々なプラットホーム上で実行するソフトウェアアプリケーションは、ウェブサービスを使用して、単一のコンピュータのプロセス間通信と同様の方法で、コンピュータネットワーク（例えば、インターネットのような）上でデータを交換することができる。この相互動作性（interoperability）は、オープンスタンダード（例えば、ＴＣＰ／ＩＰ、ＨＴＴＰ、Java（登録商標）、ＨＴＭＬ及びＸＭＬ）の使用に起因する。ウェブサービスは、共通のＸＭＬ文法を介する自己記述的（self-describing）なものであり得、簡単な発見メカニズムを介してネットワーク上で発見可能（discoverable）であり得ることが知られている。例えば、クライアントは、ＸＭＬメッセージを送信することによってウェブサービスを起動し、次いで、対応するＸＭＬ応答を待つ。基本的なウェブサービスプラットホームは、ＸＭＬ＋ＨＴＴＰである。標準のウェブサービスは、既知のコンポーネント、例えば、ＳＯＡＰ（Simple Object Access Protocol）、ＵＤＤＩ（Universal Description, Discovery and Integration）、及びＷＳＤＬ（Web Services Description Language）を使用して機能することができる。ウェブサービスの設計及び使用は、ソフトウェア開発者に知られており、計測システムにプログラミング環境を提供することに関連する当業者によって、公知の技法に基づいて実装することができる。したがって、以下で図１０を参照して説明される機能及び動作並びに本明細書で開示される他の機能及び動作は、公知のウェブサービスプログラミング及び動作方法を使用して実装することができることが理解され、ここで詳細に説明する必要はない。
【００５４】
図１０は、前述したリモートデバイス参考情報アクセサリ４００、アクセサリ管理部３００、及び、本説明に関連する前述したプログラミング環境のいくつかの要素を示し、同要素は、ノードマネージャ１９０、命令表示（又は編集）ウィンドウ１６１ｗ及びワークピースプログラムメモリ１４２を含む。図１０に示される実施形態では、前述したリモートデバイス通信部４１０は、存在サービス（presence service）４１０ＰＳ、通知サービス（notification service）４１０ＮＳ及び配信サービス（delivery service）４１０ＤＳを含むウェブサービス要素を含み得る。同様に、前述したアクセサリ通信マネージャ３４０は、存在サービス３４０ＰＳ、通知サービス３４０ＮＳ及び配信サービス３４０ＤＳを含むウェブサービス要素を含み得る。前述したアクセサリ管理部３００は、アクセサリ管理サービス３００Ｓを含むウェブサービス要素を含み得る。
【００５５】
以下は、ウェブサービスを使用する、本発明による動作の１つの代表例である。この例は、単なる代表例であり、これに限定するものではないことが理解されよう。動作の際、リモートデバイス４００は、ネットワークへの接続を確立し、ネットワークもまた、アクセサリ管理部３００を含む計測システム及び／又はプログラミング環境に接続される。次いで、リモートデバイス４００は、アクセサリ通信マネージャ３４０の存在サービス３４０ＰＳにコンタクトすることができる。存在サービス３４０ＰＳは、アクセサリ管理サービス３００Ｓに情報を提供し、したがって、リモートデバイス４００は、リモートデバイス４００についての情報を供給するため、存在サービス３４０ＰＳにコンタクトする（例えば、その結果、アクセサリ管理サービス３００Ｓは、互換性のあるフォーマットでウェブページフォーマット及び他のデータをリモートデバイス４００に供給することなどができる）。リモートデバイス４００は、ネットワークに接続されていることを存在サービス３４０ＰＳに通知する。リモートデバイス４００は、例えば、そのデバイス登録情報をＳＯＡＰメッセージにバンドルすることができ、当該リモートデバイスのインタフェース又は表示特性などの有益な情報を含み得る。ＳＯＡＰメッセージは、例えば、ＨＴＴＰ  ＰＯＳＴ要求のボディとして存在サービス３４０ＰＳに送信することができる。存在サービス３４０ＰＳ及び／又はアクセサリ管理サービス３００Ｓは、ＳＯＡＰ要求を解凍し、情報を、アクセサリ管理部３００の他の要素が理解できるデータ、命令又はコマンドに変換することができる。上記の動作の結果、まず最初に、アクセサリ管理部３００は、リモートデバイス４００が未だ許可されていないことを認識し、例えば、先に概説した「アクセサリを許可する」コマンドを使用してプログラミング環境のユーザがリモートデバイス４００に対する許可を要求するまで、リモートデバイス４００で許可される対話のタイプを制限する。次いで、アクセサリ許可マネージャ３５０及びアクセサリ管理部３００の他の要素は、例えば、上記で図５、６、７Ａ及び７Ｂを参照して概説したように、関連する許可動作を実行する。アクセサリ管理部３００の要素は、アクセサリ管理サービス３００Ｓを通じてリモートデバイス４００と対話し、アクセサリ管理サービス３００Ｓは、リモートデバイス４００が理解して使用できる形式で、それらのデータ、命令又はコマンドを情報に変換し、リモートデバイス４００に情報を配信するように配信サービス３４０ＤＳに指示する。リモートデバイス４００からの対話の応答は、配信サービス４１０ＤＳによってアクセサリ管理部３００に返信され、アクセサリ管理サービス３００Ｓにおいてアクセサリ管理部３００の様々な要素が理解して使用できる形式に変換される。このように、上記で図５〜８を参照して概説した動作並びに本明細書で開示される他の動作及び機能は、計測システムとは通常関連付けられない種々のリモートデバイス４００を使用する際、あまり熟練していないユーザによって達成することができる。
【００５６】
リモートデバイス４００上での現行命令表現１６２ｃｉｒの表示に関しては、一実施形態では、前述したノードマネージャ１９０、ウィンドウ間自動スクロール部１９５及びノード関連付け部３３０を使用してこの表示を実装することができる。前述したように、ノードマネージャ１９０は、パートプログラムにおいてノードに割り当てられるノード番号（例えば、命令表現）の割り当て及び／又は管理を担う。ウィンドウ間自動スクロール部１９５は、ノード番号を利用して、異なるウィンドウ、ルーチン又はアプリケーションに関連パートプログラム要素及び対応する編集機能を同時に表示することができる。言い換えれば、ウィンドウ間自動スクロール部１９５は、それぞれのウィンドウを、関連ノード番号に対応する要素に自動的にスクロールさせる。ウィンドウ間通信の例示的な一方法及び／又は実装形態については、以下で図１１を参照して説明され、ウィンドウ間自動スクロール部１９５は、様々な接続要素の選択イベントＳＥについて通知を受けたときに、ノード関連付け部３３０を含む様々な接続要素に自動スクロール通知ＡＳを送信する。例えば、選択イベントＳＥは、ユーザが現行（現在アクティブな）命令表現１６２ｃｉｒを新しい又は異なる命令表現に変更するたびに、プログラム表示ウィンドウ１６１ｗで起こる。自動スクロール通知ＡＳの受信に応答して、ノード関連付け部３３０は、その「現行ノード番号」を更新し、アクセサリ管理サービス３００Ｓを通じて、リモートデバイス４００から送信され、アクセサリデータマネージャ３２０によって受信された新規の参考情報セットは全て、その新しい現ノード番号と関連付けるべきであることをアクセサリデータマネージャ３２０に通知することができる。それに加えて、ノード関連付け部３３０は、新しい現行命令表現を示す更新表示（例えば、更新ウェブページ又はウェブページ要素）をリモートデバイス４００に送信するように、アクセサリ動作ユーザインタフェース機能３１０に通知することができる。次いで、アクセサリ動作ユーザインタフェース機能３１０は、必要な更新表示を準備し、正しいフォーマット及びリモートデバイス４００への配信のためにアクセサリ管理サービス３００Ｓにそれを送信することができる。いくつかの実施形態では、アクセサリ管理サービス３００Ｓが、通知サービス３４０ＮＳを使用して、そのような更新表示の配信準備ができていることをリモートデバイス４００に通知し、リモートデバイス４００は、進行中のネイティブ動作との互換性を有するときに、その配信を要求する。
【００５７】
リモートデバイス４００からアクセサリ管理部３００に参考情報セットを送信することに関し、前述した関連する機能及び動作は、一実施形態では、以下のように実施することができる。ユーザがリモートデバイス上で参考情報セットを準備した時点で（例えば、以前に図７Ｃを参照して概説したように）、ユーザは、配信を開始するため、「送信」ボタンを起動することができる。これにより、リモートデバイス４００の通知サービス４１０ＮＳがそのような参考情報セットの配信準備ができていることの通知をアクセサリ管理部３００に発し、アクセサリ管理部３００は、進行中の動作との互換性を有するときに、その配信を要求する。参考情報セットが配信されると、アクセサリ管理サービス３００Ｓは、アクセサリデータマネージャ３２０及び／又はプログラミング環境で使用可能な形式で情報を準備することができる。アクセサリデータマネージャ３２０は、参考情報セットを現行ノード番号と関連付け、その関連性をサポートするようにワークピースプログラムメモリ１４２にそれを格納することができる。
【００５８】
様々なウェブサービス方法の実装形態に関し、膨大なウェブサービス教育文献に加えて、米国特許第７，５０６，０５９号、同第８，３４６，９２９号、同第６，７３２，１１１号及び同第８，５３９，０６１号は、図１０を参照して説明した機能及び動作を提供するのに適用できる様々な方法を説明している。
【００５９】
図１１は、ウィンドウ間自動スクロール部１９５によって実施することができる通信ルーチン及び／又は動作の一実施形態の機能上の概略表現１１００である。図１１は、ウィンドウ間自動スクロール部１９５、プログラム表示（編集）ウィンドウ部１６１ｗ、クライアントウィンドウ部１９７（例えば、プログラミング環境の別のウィンドウ）及び前述したアクセサリ管理部３００のノード関連付け部３３０を概略的に示す。「ウィンドウ部」又は「ウィンドウ」は、表示されたユーザインタフェース並びにその動作を提供するその関連機能及び基本的なルーチンを含み得ることを理解すべきである。また、本明細書では、「スクロール」又は「自動スクロール」という用語が使用されている場合があるが、これらの用語は、単に便宜上使用されるもので、限定するものではないことも理解すべきである。より一般に、「自動スクロールされる」要素は、所望のコンテンツを有するウィンドウなどを単に再現することを含む、任意の便利な及び／又は公知の方法によって、そのそれぞれのウィンドウで、より見やすくすることができる。
【００６０】
図１１に示される実施形態では、ウィンドウ間自動スクロール部１９５は、自動スクロール通知ＡＳを介してウィンドウ部１６１Ｗ、１９７及びノード関連付け部３３０と対話し、また、それぞれのウィンドウ選択イベント通知ＳＥを介してそれぞれのウィンドウ部１６１Ｗ、１９７と対話する。様々な選択イベント通知ＳＥは個別に発行される。すなわち、ノード番号に関連付けられている要素の選択のホストである任意のウィンドウが、選択イベントによって開始されるそのウィンドウのルーチン又は動作に基づいて、その選択に応答する選択イベント通知ＳＥを発行することがある。例えば、ユーザが現行（現在アクティブな）命令表現１６２ｃｉｒを新規の又は異なる命令表現に変更するときには常に、プログラム表示ウィンドウ１６１ｗで選択イベントが生じる。対照的に、様々な実施形態において、各適用可能なウィンドウへの自動スクロール通知ＡＳは、ウィンドウ間自動スクロール部１９５によって受信される任意の選択イベント通知に応答して発行され、一般に、全ての適用可能なウィンドウ及びノード関連付け部３３０に送信される。自動スクロール通知ＡＳは、選択イベント通知ＳＥによって開始されるウィンドウ間自動スクロール部１９５のルーチン又は動作に基づく。選択イベント通知ＳＥは、選択要素の識別子又はノード番号（例えば、新しい現行命令表現の識別子）を含み得、同識別子又はノード番号は、自動スクロール通知ＡＳを通じて受け渡すことができる。前述したように、自動スクロール通知ＡＳの受信に応答して、ノード関連付け部３３０は、その「現行ノード番号」を更新し、アクセサリ管理サービス３００Ｓを通じて、リモートデバイス４００から送信され、アクセサリデータマネージャ３２０によって受信された新規の参考情報セットは全て、その新しい現ノード番号と関連付けるべきであることをアクセサリデータマネージャ３２０に通知することができる。それに加えて、ノード関連付け部３３０は、新しい現行命令表現を示す更新表示（例えば、更新ウェブページ又はウェブページ要素）をリモートデバイス４００に送信するように、アクセサリ動作ユーザインタフェース機能３１０に通知することができる。
【００６１】
一実施形態では、図１１は、時として（例えばウェブページ間の通知のために使用される）ＸＭＬのような言語を使用して実装される「パブリッシャ−サブスクライバ」法を使用して実施されることがある。様々な実施形態において、パブリッシャ−サブスクライバ方法は、リストベースの方法、又はブロードキャストベースの方法、又はコンテンツベースの方法などの方法を、本明細書で開示される機能をサポートするように適合させることによって実施することができる。マシンビジョン検査システムでは、パブリッシャとサブスクライバは一般には同じ処理空間内に位置され、「サブスクライバ」ウィンドウの識別子を「パブリッシャ」が知ることができる。そのような場合に適用可能なものとして、米国特許第８，０２８，０８５号（「’０８５特許」）は、図１１を参照して開示される機能をサポートするように適合させることができる低遅延の方法を述べている。
【００６２】
図１２は、本明細書で開示される機能及び動作による、プログラム可能な計測システムのプログラミング環境のアクセサリ管理部を動作させるための方法の例示的な一実施形態を示すフロー図１２００である。
【００６３】
ブロック１２１０では、プログラム可能な計測システムに対するプログラミング環境を含むユーザインタフェースが提供され、プログラミング環境は、編集ウィンドウ内のパートプログラム命令の編集可能パートプログラム表現を含み、パートプログラム表現は、命令表現を含む。
【００６４】
ブロック１２２０では、プログラミング環境のリモートアクセサリ管理部が提供され、リモートアクセサリ管理部は、アクセサリ通信部、アクセサリ許可部及びアクセサリデータ管理部を含む。
【００６５】
ブロック１２３０では、アクセサリ許可部が、リモートデバイスをプログラミング環境に接続することを許可するように動作される。
【００６６】
ブロック１２４０では、現行のパートプログラム命令表現が、プログラム編集環境及びリモートデバイスのユーザインタフェースのうちの少なくとも１つに示される。
【００６７】
ブロック１２５０では、許可されたリモートデバイスが、参考情報データセットをアクセサリデータ管理部に送信するように動作され、参考情報データセットは、現行のパートプログラム命令表現と関連付けることが意図される。
【００６８】
ブロック１２６０では、アクセサリデータ管理部が、許可されたリモートデバイスから送信される参考情報データセットを受信して格納するように動作される。
【００６９】
ブロック１２７０では、リモートアクセサリ管理部が、受信されて格納された参考情報データセットを、プログラム編集環境及びリモートデバイスのユーザインタフェースのうちの少なくとも１つに示される現行のパートプログラム命令表現と自動的に関連付けるように動作される。
【００７０】
前述から、本開示の特定の実施形態が例示を目的として本明細書で説明されてきたが、本発明の範囲から逸脱することなく、その様々な変更を行うことができることが理解されよう。
【００７１】
独占的な所有権又は特権が請求される本発明の実施形態は、以下の通り定義される。
【符号の説明】
【００７２】
１２０  制御システム部
１２５  コントローラ
１２８  電源部
１３０  入出力インタフェース
１３１  撮像制御インタフェース
１３２  運動制御インタフェース
１３３  照明制御インタフェース
１３４  レンズ制御インタフェース
１４０  メモリ
１４１  画像ファイルメモリ部
１４２  ワークピースプログラムメモリ部
１４２ＰＰ  パートプログラム
１４３  ビデオツール部
１４３ｘ  関心領域ジェネレータ
１５０  ワークピースプログラムジェネレータ及びエグゼキュータ
１５５  レコーダ／トランスレータ
１５６  学習モード部
１５７  実行モード部
１６０  編集部
１６０ｕｉ  編集ユーザインタフェース部
１６１  プログラム表示ウィンドウ部
１６１ｗ  プログラム表示ウィンドウ部
１６２  表現ユーザインタフェース機能
１６２ｃｉｒ  現行命令表現
１６３  ノードユーザインタフェース機能
１６４  参考情報ユーザインタフェース機能
１７４  編集動作コントローラ
１７７  エディタコマンド
１７７ａ  セグメント実行部
１７７ｂ  修正部
１７７ｃ  挿入／付加部
１７７ｄ  参考情報追加部
１７８  実行編集部
１８０  代理データマネージャ
１８５  プログラムステータスマネージャ
１９０  ノードマネージャ
１９５  ウィンドウ間自動スクロール部
１９７  クライアントウィンドウ部
２００  ビジョン構成要素部
３００  アクセサリ管理部
３００’  アクセサリ管理部
３００Ｓ  アクセサリ管理サービス
３１０  アクセサリ動作ユーザインタフェース
３２０  アクセサリデータマネージャ
３３０  ノード関連付け部
３４０  アクセサリ通信マネージャ
３４０ＤＳ  配信サービス
３４０ＮＳ  通知サービス
３４０ＰＳ  存在サービス
３５０  アクセサリ許可マネージャ
４００  リモートデバイス参考情報プログラミングアクセサリ
４００’  リモートデバイス情報アクセサリ
４１０  リモートデバイス通信部
４１０  通信部
４１０ＤＳ  配信サービス
４１０ＮＳ  通知サービス
４１０ＰＳ  存在サービス
４２０  リモートデバイス登録データ
４２０  登録データ
４３０  リモートデバイスユーザインタフェース
４３１  編集環境対話ユーザインタフェース機能
４３１ｓ  「現行命令に送信する」ボタン
４３１ｘ  サインアウトボタン
４４０  リモートデバイス現行命令応答部
４４１  ファイルジェネレータ／マネージャ
４４３  リモートデバイスセンサ
【図１】
2015143980.tif 000003
【図２】
2015143980.tif 000004
【図３】
2015143980.tif 000005
【図４】
2015143980.tif 000006
【図５】
2015143980.tif 000007
【図６】
2015143980.tif 000008
【図７Ａ】
2015143980.tif 000009
【図７Ｂ】
2015143980.tif 000010
【図７Ｃ】
2015143980.tif 000011
【図８】
2015143980.tif 000012
【図９】
2015143980.tif 000013
【図１０】
2015143980.tif 000014
【図１１】
2015143980.tif 000015
【図１２】
2015143980.tif 000016
【外国語明細書】
2015143980000001.pdf