JP6386540B2 - 動作コンテキストを意識したコピーアンドペースト機能を含むマシンビジョンシステムプログラム編集環境 - Google Patents

動作コンテキストを意識したコピーアンドペースト機能を含むマシンビジョンシステムプログラム編集環境 Download PDF

Info

Publication number
JP6386540B2
JP6386540B2 JP2016514051A JP2016514051A JP6386540B2 JP 6386540 B2 JP6386540 B2 JP 6386540B2 JP 2016514051 A JP2016514051 A JP 2016514051A JP 2016514051 A JP2016514051 A JP 2016514051A JP 6386540 B2 JP6386540 B2 JP 6386540B2
Authority
JP
Japan
Prior art keywords
copy
copy set
selected instruction
representation
paste
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016514051A
Other languages
English (en)
Other versions
JP2016521369A (ja
Inventor
ノースラップ ライアン
ノースラップ ライアン
イェー アンディ
イェー アンディ
ハルヤディ イマン
ハルヤディ イマン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitutoyo Corp
Original Assignee
Mitutoyo Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitutoyo Corp filed Critical Mitutoyo Corp
Publication of JP2016521369A publication Critical patent/JP2016521369A/ja
Application granted granted Critical
Publication of JP6386540B2 publication Critical patent/JP6386540B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Stored Programmes (AREA)

Description

本発明は、マシンビジョン検査システム、及び、そのようなシステムにおいてパートプログラムを生成及び編集するためのコンピュータ読み取り可能媒体において具現化されたシステム、GUI、及び方法であって、基礎にある「コンピュータ言語」命令の簡略化表現及び/又はそれらが対応する基礎にある命令を生成して「非プログラマ」のユーザによるパートプログラムの生成を支援するために使用可能である、スマートなコピーアンドペースト(copy and paste)機能を含むものに関する。
精密マシンビジョン検査システム(又は、簡略化して「ビジョンシステム」と呼ぶ)は、検査対象物体の精密な寸法測定値を得ると共に、他の様々な物体の特徴を検査するために用いることができる。そのようなシステムは、コンピュータ、カメラ及び光学系、検査対象のワークピースの要素をカメラによって走査するために多方向に移動可能な精密ワークステージを含み得る。市販されている例示的な従来技術のシステムの1つが、イリノイ州オーロラにあるMitutoyo America Corporation(MAC)から入手可能なQUICK VISION(登録商標)シリーズのPCベースのビジョンシステム及びQVPAK(登録商標)ソフトウェアである。QUICK VISION(登録商標)シリーズのビジョンシステム及びQVPAK(登録商標)ソフトウェアの機能及び動作については、概ね、例えば2003年1月に公表されたQVPAK 3D CNC画像測定機ユーザガイド、及び1996年9月に公表されたQVPAK 3D CNC画像測定機動作ガイドに記載されている。これらは各々、援用により全体が本願にも含まれるものとする。例えばこのシリーズの製品は、顕微鏡型の光学系を用いてワークピースの画像を様々な倍率で提供することができ、必要に応じてステージを動かすことで単一のビデオ画像の範囲を超えてワークピースの表面を横断することができる。通常、そのようなシステムの所望の倍率、測定分解能、及び物理サイズ限界が与えられた場合、単一のビデオ画像に含まれるのは、観察又は検査対象のワークピースの一部のみである。
マシンビジョン検査システムは、自動化ビデオ検査を利用するのが一般的である。米国特許第6,542,180号(180号特許)は、そのような自動化ビデオ検査の様々な態様を教示し、援用によりその全体が本願にも含まれるものとする。180号特許に教示されるように、自動化ビデオ検査計測用の計器は一般に、特定のワークピース形状ごとにユーザが自動検査イベントシーケンスを定義することができるプログラミング機能を有する。これは、例えばテキストベースのプログラミングによって、又はグラフィカルユーザインタフェース(GUI)の支援のもとでユーザが実行する検査動作シーケンスに対応したマシン制御命令シーケンスを記憶することにより検査イベントシーケンスを漸進的に「学習する」記録モードによって、又はこれら双方の方法の組み合わせによって、実施することができる。そのような記録モードは、「学習モード」又は「訓練モード」と呼ばれることが多い。いったん「学習モード」で検査イベントシーケンスを定義したら、そのようなシーケンスを用いて、「実行モード」の間にワークピースの画像を自動的に取得する(更に解析又は検査する)ことができる。
具体的な検査イベントシーケンスを含むマシン制御命令(すなわち、どのように各画像を取得するか、及び取得した各画像をどのように解析/検査するか)は、一般に、特定のワークピース形状に固有の「パートプログラム」又は「ワークピースプログラム」として記憶される。例えばパートプログラムは、どのようにワークピースに対してカメラを位置決めするか、どのような照明レベル、倍率を用いるか等、どのように各画像を取得するかを定義する。更にパートプログラムは、例えばエッジ/境界検出ビデオツール等の1つ以上のビデオツールを用いることで、取得した画像をどのように解析/検査するかを定義する。
比較的技術力の低いユーザによるプログラミングを容易にするため、ビデオツール(又は、簡略化して「ツール」と呼ぶ)及び他のGUI機能を、検査及び/又は他のマシン制御動作を達成するようにセットアップすることができる。ビデオツールのセットアップパラメータ及び動作を学習モード中に記録して、様々なビデオツールによって実行される測定/解析動作を組み込んだ自動検査プログラムすなわち「パートプログラム」を生成することができる。ビデオツールは、例えばエッジ/境界検出ツール、自動焦点ツール、形状又はパターンマッチングツール、寸法測定ツール等を含み得る。他のGUI機能は、データ解析、ステップアンドリピートループプログラミング等に関連したダイアログボックスを含み得る。これらは例えば、米国特許第8,271,895号(895号特許)に開示されている。これは援用により本願にも含まれるものとする。例えばそのようなツール及びGUI機能は、上述のQUICK VISION(登録商標)シリーズのビジョンシステム及び関連するQVPAK(登録商標)ソフトウェア等、多種多様な市販のマシンビジョン検査システムにおいて日常的に用いられている。
比較的技術力の低いユーザによるパートプログラムの編集は難しいことがある。特に、現在、技術力の低いユーザが「動作コンテキスト対応(operating context−enabled)」のコピーアンドペースト動作を実行する便利な方法は存在しない。すなわち、パートプログラム内のある位置で動作コンテキスト及び/又は編集コンテキストとの適合性を提供するように構成された命令をコピーするには、そのパートプログラム内の別の位置のペースト位置で動作コンテキスト及び/又は編集コンテキストとの適合性を提供可能とする前に修正を行う必要があることを考慮に入れた、プログラムを編集するのに有用であるマシンビジョンシステム又は他の自動化検査システムにおけるパートプログラムのためのコピーアンドペースト動作は存在しない。例えば、ステップアンドリピートループの内部から外部への、又はその逆の命令のコピーアンドペーストは、技術力の低いユーザにとって特に難しいことがある。
本発明は、コンピュータ読み取り可能媒体において具現化されるようなシステム、GUI、及び方法であって、精密マシンビジョン検査システムにおけるパートプログラムのためのコピーアンドペースト編集コマンド用の直観的で柔軟かつロバストな動作及び/又はコマンドの生成及び使用を可能とするものを提供することを対象とする。
この「発明の概要」は、以下で「発明を実施するための形態」において更に記載するいくつかの概念を簡略化した形態で紹介するために提示する。この「発明の概要」は、特許請求の範囲の重要な特徴を識別することを意図しておらず、特許請求の範囲の決定に役立てるために用いることも意図していない。
様々な実施形態において、パートプログラムを生成するための学習モードと、以前に生成したパートプログラムを実行するための実行モードと、において動作可能なマシンビジョン検査システムが提供される。システムは、撮像部と、この撮像部の視野に1つ以上のワークピースを保持するためのステージと、制御部と、グラフィカルユーザインタフェース(GUI)と、を含む。システムは更に、学習モードにおいてパートプログラム命令を編集するように動作可能である編集部を含み、この編集部はGUIに表示可能な編集インタフェース部を含む。
システムは更に、コピーアンドペーストマネージャ部を含む。これは、学習モードでパートプログラムにおけるコピー動作及びペースト動作を生成し、定義するように動作可能であるように構成されたハードウェア及び/又はソフトウェアで実施することができる。いくつかの実施形態においては、コピーアンドペーストコマンドを用いて、コピーされる要素の実質的な複製である1組の要素を、パートプログラム内の新しい位置にペーストすることができる。本明細書において用いる場合、実質的な複製という言葉は、検査命令又はそれらの表現のあらゆる詳細の逐語的な又は正確な複製を必ずしも意味するわけではないが、いくつかの実施形態ではこれが当てはまる場合がある。これは、少なくとも、反復される動作ブロックの不可欠な又は基本的な動作を複製する命令の機能の複製を意味する。
コピーされる要素は、マークアップ言語(例えばHTML、XML、又はそれらの派生物)で書かれた機械実行可能コード命令、及び/又はそれに関連付けられた(例えば編集部において)GUIに表示される編集可能な命令表現を含むことができる。本明細書において用いる場合、コピーされる要素という言葉は一般に、記載又は文脈によって特に指示されない限り、これらの関連付けられた態様の双方を包含し得る。本明細書で言及する他のタイプの命令及び命令表現についても同様であるが、様々な実施形態において、いくつかの動作コンテキスト確立動作、及び/又はユーザインタフェースウィンドウ同期動作、及び/又はコード及び表現の関連付けをサポートするために、一意の識別子(例えばノード識別子)を割り当てて用いることができる。一実施形態において、このような関連付け及び機能は、2011年11月15日に出願され、米国出願公報第2013/0123945 A1号として公開された「Machine Vision System Program Editing Environment Including Real Time Context Generation Features」と題する同時係属及び同時譲渡の(co−assigned)米国特許出願第13/297,232号(232号出願)、並びに、2012年11月13日に出願され、米国出願公報第2013/0125044 A1号として公開された「Machine Vision System Program Editing Environment Including Synchronized User Interface Features」と題する同時係属及び同時譲渡の米国特許出願第13/676,061号(061号出願)に記載されたように実施することができる。これらは各々、援用により全体が本願にも含まれるものとする。
いくつかの実施形態においては、パートプログラム表現及び/又はコピーされる要素(例えば命令表現及び/又はコード命令)は、1つ以上の子ノードを有する1つ以上の親ノードを含むツリー構造等に配置することができる。コピーされる要素を含むGUI上の命令表現を編集するためのユーザ入力には、命令表現のいずれかの追加、削除、及び修正のうち1つ以上が含まれ得る。いくつかの実施形態では、ノードの一部はビデオツールに対応し、各々が、幾何学的形状測定動作又は撮像(例えば自動合焦)動作、又は画像処理動作等の個別の動作を対象とする命令サブセットを含む。様々な実施形態において、コピーされる要素の各々に、一意のノード名、変数名、及び/又はコードブロック名を割り当てることができる。いくつかの実施形態又は状況においては、ノード又はコピーされる要素が編集された場合に名前を変更することができる。
様々な実施形態において、コンピュータ実行可能命令を含むコンピュータ読み取り可能媒体が提供される。これらの命令は、コンピュータ上にロードされて、コンピュータが本明細書に概説する機能及び動作に対応した方法を実行可能であるように構成されている。
マシンビジョン検査システムのためのパートプログラムの編集は、マシンツール又はアセンブリロボット等のためのプログラムの編集よりも複雑なタスクであることは認められよう。例えば、マシンビジョン検査システムのためのパートプログラムは、動作を制御する及び/又は画像に依存した測定結果を提供する部分を後の方に含むが、これらは少なくとも部分的に、プログラムの前の方の部分の実行によって決定された結果、及び/又は検査動作に不可欠な画像を提供するために用いられているワークピースの特定のインスタンスに依存する。更に、特定の画像に必要な照明及び/又は露出時間は、ワークピースの特定のインスタンスに依存し得る。更に、ユーザが部分的に完了したパートプログラムをセーブし、後にそのパートプログラムをプログラミングの変更又は終了のために再び呼び出した場合、その間に、パートプログラムの編集続行に悪影響を及ぼしかねない何らかのタイプの変化が生じたか否か(例えば環境条件の変化、ステージ上のパートが不注意により動かされた等)は未知であり得る。こういった懸念があるため、そのようなシステムのいくつかでは、パートプログラムの全ての命令を最初から、パートプログラム命令に対する潜在的な付加的修正又は追加までを含めて実際に実行することにより、そのような修正及び/又は追加が動作のための現実的な条件セットに基づいてプログラミングされていることを検証することが標準的な慣例となっている。しかしながら、パートプログラム命令に対する修正又は追加の実際的な動作条件を提供するために命令を全て実行することは、大きいパートプログラム(例えば多数の画像取得及び/又は要素の検査を含むもの)においては非現実的であるが、大きいパートプログラムは、肉眼で見える物体(例えば数十から数百ミリメートルに及ぶ物体)に対する顕微鏡検査(例えばミクロン級の分解能の測定)を行うマシンビジョン検査システムでは特に一般的なものである。
先に参照により本願にも含まれるものとした232号出願及び061号出願が開示する特徴は、編集動作中に短時間で(例えばほぼ「リアルタイム」で)動作条件又は動作コンテキストを信頼性高く更新することができる編集環境を提供することができ、精密マシンビジョン検査システムのためのパートプログラムの、より迅速、高効率、直観的、柔軟かつロバストな生成及び編集を可能とする。しかしながら、そのような編集環境に関連付けられたコピーアンドペースト動作の必要性はなお残っている。また、既知のコピーアンドペースト方法は、232号出願及び061号出願に開示された動作に関連付けられた要素及び機能性をサポートしない。問題は、マシンビジョン検査システムのパートプログラムにおける命令のコピーアンドペーストが、物理オブジェクトを実際には動かさないテキストベースのプログラムにおける命令のカットアンドペーストよりも複雑であり、マシンツール又はアセンブリロボット等のためのプログラムにおける命令のカットアンドペーストよりもいっそう複雑であることである。パートプログラム内の1つの位置での適正な動作コンテキストに従って構成された命令をコピーし、次いでそのパートプログラム内の別の位置にペーストすることは、これまでに知られている方法では実行することができない。これまでに知られているテキストベースの方法は、必要な動作を潜在的には実行し得るとしても、コンピュータプログラマでなく、ワークピース検査のために記憶され、後に実行するために再び呼び出される基本的なパートプログラムを書くために用いられるコンピュータ言語を理解しない、比較的技術力の低いユーザは用いることができない。232号出願及び061号出願に概説された方法は、高速の動作コンテキストの生成及び使用を可能にして、比較的速やかで現実的な「プログラム生成及び編集結果」フィードバックを比較的技術力の低い編集者に提供する編集環境に関するが、パートプログラムのある部分から「動作コンテキスト対応」プログラム命令をコピーし、そのパートプログラムの別の部分にペーストすることに伴う問題については考慮していない。そのような編集環境におけるコピーアンドペーストのための手段があれば望ましい。
先に概説した検討事項によれば、マシンビジョン検査システムにおいて、パートプログラムを編集する際に動作コンテキストに対して行われるほぼリアルタイムの更新と適合するコピーアンドペースト動作を提供して、修正及び/又は追加をプログラムする時に、それらの修正及び/又は追加のための基礎又は動作コンテキストとして現実的な動作条件セットが利用可能であることを検証することが望ましい。これが特に重要であるのは、マシンビジョン検査システムのユーザによる実際の制御動作入力を記録することでパートプログラムを生成及び編集する場合である。なぜなら、ユーザは、マシンビジョン検査システムの状態及び/又は入力動作を行っている時に存在する画像の外見及び位置等に基づいて、入力動作の詳細を直観的に選択しているからである。このため、ユーザは、パートプログラム内の任意の位置でそのパートプログラムの有効かつ信頼性の高い修正を開始する場合には、最初に、その位置で実行モード中の自動実行モードの間にパートプログラムの以前の命令の実行により与えられるものと実質的に同じ動作コンテキストにシステムを設定しなければならない。これまで、いかなる汎用マシンビジョン検査システムによっても、また、特に、(例えば簡単なグラフィックオブジェクト又はテキストベースのプログラミングシステムとは対照的に)パートプログラムを生成するために実際のユーザ制御動作を記録するいかなるシステムによっても、編集動作中にコピーアンドペースト動作のための有効なパートプログラミング編集動作コンテキストをほぼリアルタイムで信頼性高くロバストに与える編集環境は提供されていない。
コピーアンドペースト動作は、比較的技術力の低いユーザによって使用可能であるように、少なくともいくつかの自動動作を含むべきである。様々な実施形態において、コピーアンドペースト動作は、ユーザにとって、検査動作を自動的に実行するために記憶され実行されるパートプログラム命令を実際に形成している基礎にあるテキストベースの言語ではなく、比較的技術力の低いユーザによって編集可能なパートプログラム命令の簡単な表現に対して作用するように見えなければならない。様々な実施形態において、編集可能である簡単な表現に関連付けることができる様々なメタデータは、基礎にあるパートプログラム命令又はコードに含まれるが隠れるようになっている。様々な実施形態において、それらの存在及び/又は除去はユーザに見えないようにして、GUIの乱雑な状態(clutter)を回避すると共に、比較的技術力の低いユーザの混乱を回避することができる。そのようなメタデータの1つのタイプとして、実行の編集モードに用いられる代理データが挙げられる。メタデータの別の例として、ステップアンドリピートプログラムのために定義された配列の形態のデータフォーマットが挙げられる。様々な実施形態において、コピーアンドペースト動作は、パートプログラム命令のコピーされる表現に関連付けられたメタデータを自動的に調節(追加、削除、修正)して、この調節されたメタデータをパートプログラム内のペースト位置に適合させることができる。様々な実施形態において、ペーストされた表現自体は、基礎にある関連付けられた命令又は代理データ等のメタデータの存在、不在、又は変更を反映しない場合がある。むしろ、コピーアンドペーストコマンドは、この機能を実行するために編集インタフェースにおいて一般的に用いられるステータスインジケータ(例えばノード識別子、符号化カーソル状態、挿入指示状態、コードブロックのマージンに沿って延出してそのステータスを色分けする「カラーバー」の状態。232号出願等に開示されている)に、ユーザが認識するのに役立つメタデータステータスの態様が反映されるように構成された動作を含むことができる。このため、コピーアンドペースト動作が与えるペーストされたコードは、ペーストされる動作コンテキストに適合すると共に、ステータス指示及び実行動作(run operation)等に関して、ユーザがペースト位置及び/又はその動作コンテキストにおいて実行し得る新しい動作生成のような他のプログラミング動作と、多くの又はほとんどの動作特性を共有するように挙動する。これには、ペースト位置における編集動作に応答した挙動等が含まれる。
更に別の検討事項が発生するのは、編集環境が、基礎にあるプログラミング言語(例えばマークアップ言語)で書かれたパートプログラム命令を抑制し、代わりに編集インタフェースにおいて簡略化命令表現を用いることで、比較的技術力の低いユーザ(例えばマークアップ言語を理解しないユーザ)によるプログラミングを容易にするという場合である。このような場合は、様々な実施形態において、コピーアンドペーストコマンドが、基礎にあるプログラムのコピーアンドペースト動作をユーザから隠しながら、命令表現及び基礎にあるプログラミング言語の双方に対して自動的に動作することが有利であり得る。また、コピーアンドペーストコマンドが、命令表現において最初は折り畳まれていた親ノードを自動的に展開して、ユーザがそれらの子ノードを見ることができ、これによってコピー及び/又はペースト動作の全容を理解できるようにすることも有利であり得る。更に、先に概説したもの等の編集環境のGUIは、表示されたパートプログラム表現内の位置での編集コンテキストステータス(動作コンテキストステータス)を示すために、その位置の近くに表示される編集コンテキストステータスインジケータを備えることができる。そのような場合、コピー及び/又はペーストコマンドは、ペーストされた要素がコピー位置からコピーされたにもかかわらず新たに生成されたか又は挿入された新しい命令と同様な挙動を示すように動作することが有利であり得る。そのような場合、編集コンテキストステータスインジケータは、ペーストされた要素に対応する命令がビジョンシステムを用いて(例えば代理/シミュレート及び/又は実際実行モードにおいて)実行されるまで、ペースト位置における動作コンテキスト及び/又は編集コンテキストが不確かであるか又は無効であることを控えめに示すことができる。いくつかの実施形態において、編集コンテキストステータスインジケータは、表示されたパートプログラム表現内でのその位置に対応した編集コンテキストステータスに応じて色が変わる命令ポインタを含むことができる。
「コピーアンドペースト動作、機能、及び実施の概要」と題する以下のセクションは、本出願の文脈において、可能な実施形態の全てではないがいくつかを例示することを意図し、限定は意図していない。しかしながら、先に概説した問題を解決し、他の利点を与えることも可能である様々な実施形態を包含することが意図される。特許請求の範囲内で様々な代替的な実施形態が可能であり、これらの実施形態は、本願に含まれる上述の232号出願及び061号出願の教示と組み合わせて利用される本出願の資料に教示又は開示した様々な原理の利点を有することが、当業者によって理解又は実感され得る。
コピーアンドペースト動作、機能、及び実施の概要
本発明の一態様によれば、以下のようなコンピュータ実行可能命令を含むコンピュータ読み取り可能媒体が提供される。
1.コンピュータ実行可能命令を含むコンピュータ読み取り可能媒体であって、それらの命令が、コンピュータにロードされて、マシンビジョン検査システムにおいてパートプログラムを編集する場合にマシンビジョンパートプログラム動作セットをコピーアンドペーストするための方法をコンピュータが実行することを可能とするように構成され、マシンビジョン検査システムが、撮像部と、撮像部の視野に1つ以上のワークピースを保持するためのステージと、制御部と、編集部と、ディスプレイと、グラフィカルユーザインタフェース(GUI)と、学習モードであって、パートプログラムを生成するために、マシンビジョン検査システムの動作を制御するユーザ入力を受信すると共に、制御された動作に対応して関連付けられたパートプログラム命令を記録するように動作可能に構成された、学習モードと、を含み、実行される方法が、
編集部に関連付けられたコピーコマンド及びペーストコマンドを提供することと、
GUIの編集インタフェース部を提供することであって、この編集インタフェース部が、基礎にあるパートプログラム命令の編集可能パートプログラム表現を表示するように動作可能であり、パートプログラム表現が命令表現を含む、ことと、
編集インタフェース部に、基礎にあるパートプログラムのパートプログラム表現を表示することと、
表示されたパートプログラム表現内のコピー位置で少なくとも第1の命令表現を選択して、基礎にある選択した命令コピーセットに関連付けられた選択した命令表現コピーセットを定義することと、
表示されたパートプログラム表現において、選択した命令表現セットをペーストするペースト位置を定義するように編集インタフェース部を動作させることであって、ペースト位置が、基礎にあるパートプログラム内の命令ペースト位置に関連付けられている、ことと、
選択した命令表現コピーセット又は選択した命令コピーセットの少なくとも一方を対象とするコピーセット修正動作を実行するように編集部を動作させることであって、コピーセット修正動作が、以下のa)からc)のうち少なくとも1つを含む動作によって修正済みの選択した命令表現コピーセットを形成することを含む、a)ペースト位置動作コンテキストと不適合である選択した命令表現コピーセットの要素及び関連付けを修正すること、b)ペースト位置動作コンテキストとの適合性のために必要な要素及び関連付けを選択した命令表現コピーセットに追加すること、又は、c)以下のc1)又はc2)の少なくとも一方を含む動作によって形成された修正済みの選択した命令コピーセットに基づいて、修正済みの選択した命令表現コピーセットを形成すること、c1)命令ペースト位置動作コンテキストと不適合である選択した命令コピーセットの要素及び関連付けを修正すること、もしくはc2)命令ペースト位置動作コンテキストとの適合性のために必要な要素及び関連付けを、選択した命令コピーセットに追加することと、
修正済みの選択した命令表現コピーセットを、表示されたパートプログラム表現内のペースト位置にペーストすることを含むペースト動作を実行するように編集部を動作させることと、
を備える。
以下のセクションでは、限定ではなく一例として、実施に関する様々な詳細事項及び詳しい特徴を開示する。開示する資料及び組み込んだ引例に基づいて当業者には理解されようが、上述のコンピュータ読み取り可能媒体の様々な要素は、様々な実施形態のそれぞれにおいて下に概説する様々な特徴及び/又は態様を包含し得る。
・選択した命令表現コピーセット又は関連付けられた基礎にある選択した命令コピーセットの少なくとも一方は、プログラムノードを備えることができる。プログラムノードは、子ノードを含む親ノードを含み得る。
・選択した命令コピーセットの要素及び関連付けを修正すること及び/又は選択した命令表現コピーセットの要素及び関連付けを修正することは、(例えば表示された命令表現及び/又は基礎にある命令コードにおける)そのような要素に関連付けられた機能の名前、トレランス(tolerance)の名前、ワーク座標系の名前、「測定ポイントバッファ」の名前、又は表示された変数の名前等を変更することを含み得る。更に一般的には、「記憶された要素」の名前は、この記憶された要素の名前を含む命令又は表現のコピーを新しい位置にペーストする前に、変更することができる。この変更は好ましくは、自動的な変更とするか、又は自動的に表示されるユーザに対する変更プロンプトを含むことができる。
・選択した命令コピーセットの要素及び関連付けを修正すること及び/又は選択した命令表現コピーセットの要素及び関連付けを修正することは、そのような要素に関連付けられた一意のノード識別子(例えば命令表現に関連付けられているがパートプログラム表現に表示されない一意のノード識別子、及び/又は基礎にある命令コードに含まれる一意のノード識別子)を変更することを含み得る。この変更は、好ましくは自動的な変更とすることができる。
・選択した命令表現コピーセットがステップアンドリピートループ内にペーストされた場合、選択した命令コピーセットの要素及び関連付けを修正すること及び/又は選択した命令表現コピーセットの要素及び関連付けを修正することは、(例えば表示された命令表現及び/又は基礎にある命令コードにおける)そのような要素に関連付けられた機能の名前、トレランスの名前、ワーク座標系の名前、「測定ポイントバッファ」の名前、又は表示された変数の名前等を変更することを含み得る。これは、ステップアンドリピートループの動作コンテキストに一致する要素又はフォーマットを変更又は追加することを含み得る。1つの実施形態において、これは、表示された要素の名前(例えば機能の名前)を、「指数カッコ」等を含むように変更することを含み得る。このカッコは、ステップアンドリピートループの動作コンテキストにおける様々な配列位置又はループ繰り返し指数等を保持するために使用可能なフォーマット要素である(例えば、ステップアンドリピート位置の特定の1つにおいて「ループ動作」繰り返しの結果を識別又は名付けるため)。更に一般的には、「記憶された要素」の名前は、この記憶された要素の名前を含む命令又は表現のコピーをステップアンドリピートループ内の新しい位置にペーストする前に、変更又は再フォーマットすることができる。この変更は好ましくは、自動的な変更とするか、又は自動的に表示されるユーザに対する変更プロンプトを含むことができる。
・選択した命令表現コピーセットが、ステップアンドリピートループからコピーされ、ステップアンドリピートループの外側にペーストされた場合、選択した命令コピーセットの要素及び関連付けを修正するステップ、及び/又は選択した命令表現コピーセットの要素及び関連付けを修正するステップは、(例えば表示された命令表現及び/又は基礎にある命令コードにおける)機能の名前、トレランスの名前、ワーク座標系の名前、「測定ポイントバッファ」の名前、又は表示された変数の名前等、又はステップアンドリピートループの動作コンテキストに特定的なフォーマットを変更又は除去することを含み得る。1つの実施形態において、これは、表示された要素の名前(例えば機能の名前)を、「指数カッコ」等を削除するように変更することを含み得る。このカッコは、ステップアンドリピートループの動作コンテキストにおける様々な配列位置又はループ繰り返し指数等を保持するために使用可能なフォーマット要素である(例えば、ステップアンドリピート位置の特定の1つにおいて「ループ動作」繰り返しの結果を識別又は名付けるため)。更に一般的には、「記憶された要素」の名前は、この記憶された要素の名前を含む命令又は表現のコピーをステップアンドリピートループの外側の新しい位置にペーストする前に、変更及び/又は再フォーマットすることができる。この変更は好ましくは、自動的な変更とするか、又は自動的に表示されるユーザに対する変更プロンプトを含むことができる。
・選択した命令コピーセットの要素及び関連付けを修正するステップ、及び/又は選択した命令表現コピーセットの要素及び関連付けを修正するステップは、そのような要素を排除することを含み得る。
・編集部は更に、修正済みの選択した命令コピーセットを、基礎にあるパートプログラム内の命令ペースト位置にペーストすることを含むペースト動作を実行するように動作させることができる。
・編集部は、コピーコマンドを実行するようにGUIを動作させることを含むコピーセット修正動作を実行するように動作させ、コピーコマンドは、選択した命令表現コピーセット及び/又は関連付けられた基礎にある選択した命令コピーセットを対象とすることができる。
・コピーセット修正動作の少なくともいくつかは、ペーストコマンドの実行に応答して自動的に行うことができる。1つの実施形態において、そのような動作は、a)選択した命令表現コピーセットに対応する代理データ、又はb)記憶した命令表現コピーセットといずれかの対応する代理データとの間の関連付け(例えば一実施形態において、この関連付けは、関連付けが切断されるように除去又は変更されるノード識別子によって提供され得る)、の少なくとも一方を除去することを含む。1つの実施形態において、そのような動作は、対応する代理データ及び/又はその関連付けを除去した後に、選択した命令コピーセット又は選択した命令表現コピーセットの少なくとも一方のコピーをクリップボードに移動させることを含み得る。一実施形態において、クリップボード動作のために、Windows(登録商標)のクリップボードの機能を使用可能である。一実施形態では、Windows(登録商標)の「プライベート」クリップボードの機能を使用可能である。
・コピーセット修正動作の少なくともいくつかは、ペーストコマンドの実行に応答して自動的に行うことができる。1つの実施形態において、そのような動作は、a)選択した命令表現コピーセットと対応する代理データ記憶アドレスもしくは位置との関連付け(例えば一実施形態において、この関連付けは、関連付けが生成されるように追加又は変更されるノード識別子によって提供され得る)、又はb)機能の名前、トレランスの名前、ワーク座標系の名前、「測定ポイントバッファ」の名前、もしくは表示された変数の名前等、の少なくとも一方を追加又は変更することを含み得る。1つの実施形態において、そのような動作は、選択した命令コピーセット又は選択した命令表現コピーの少なくとも一方のコピーをクリップボードからペースト又は命令ペースト位置に移動させることを含み得る。一実施形態において、クリップボード動作のために、Windows(登録商標)のクリップボードの機能を使用可能である。一実施形態では、Windows(登録商標)の「プライベート」クリップボードの機能を使用可能である。
・1つの実施形態において、コピーコマンド及び/又はペーストコマンドはGUIに表示可能であり、コマンドは、対応する動作を活性化して、選択した命令表現コピーセット及び/又は関連付けられた基礎にある選択した命令コピーセットを対象とするコピーセット修正動作を提供するように、ユーザによって選択可能及び/又は実行可能である。
・1つの実施形態において、編集インタフェース部は、選択した命令表現コピーセット及び/又は関連付けられた基礎にある選択した命令コピーセット及び/又はそれらを修正したものを対象としてコピーコマンドを選択及び/又は実行するように動作可能であり、その際に、GUIの編集インタフェース部において表現コピーセット及び/又は関連付けられた基礎にある選択した命令コピーセットを選択し、選択した命令表現コピーセット及び/又は関連付けられた基礎にある選択した命令コピーセットに対応するコピーコマンドを少なくとも含むメニューを表示するようにGUIを動作させ、表示されたメニューにおいてコピーコマンドを選択する。
・1つの実施形態において、編集インタフェース部は、選択した命令表現コピーセット及び/又は関連付けられた基礎にある選択した命令コピーセット及び/又はそれらを修正したものを対象としてペーストコマンドを選択及び/又は実行するように動作可能であり、その際に、カーソル又はGUIの他の編集位置インジケータをパートプログラム表現内のペースト位置に位置決めし、選択した命令表現コピーセット及び/又は関連付けられた基礎にある選択した命令コピーセット又はそれらを修正したものに対応するペーストコマンドを少なくとも含むメニューをクリップボード上に表示するようにGUIを動作させ、表示されたメニューにおいてペーストコマンドを選択する。
・プログラム及びルーチンにおいて一般的であるように、「コピー」コマンドに関連付けられたものと「ペースト」コマンドに関連付けられたものとの間での様々な動作の分割は、様々な実施形態において様々な形態をとるように変動し得る。そのような様々な形態は、本明細書に開示する及び/又は本明細書に特許請求される特徴を提供するように動作可能であるならば、本明細書に開示する教示に基づいて当業者によって到達されるいかなる形態であってもよい。
・1つの実施形態において、「表現」(例えばパートプログラム表現(複数の表現))は、マークアップ言語で書かれた基礎にある機械実行可能コード命令と、GUI上に表示される、対応した基礎にあるコード命令に関連付けられた編集可能命令表現と、を含むものと見なされるように解釈され得る。一実施形態において、この解釈を行い得る理由は、例えば以前に生成し記憶したパートプログラムを再び呼び出してその表現をGUIに表示する場合に、基礎にある機械実行可能コード命令から表現を生成可能であるからである。
・基礎にある機械実行可能コード命令は、マークアップ言語で書くことができる。マークアップ言語は、カスタムの「XMLと同様の」又は「HTMLと同様の」言語とすればよい。
・1つの実施形態において、本明細書に開示するコピーアンドペースト動作に関連した方法は、以下のステップの1つ以上を含み得る。
〇表示されたパートプログラム表現内のコピー位置で少なくとも第1の命令表現を選択して、基礎にある選択した命令コピーセットに関連付けられた選択した命令表現コピーセットを定義するステップ。
〇選択した命令表現コピーセット又は基礎にある選択した命令コピーセットの少なくとも一方のコピーを生成するコピー動作を開始するようにGUIを動作させるステップ(例えば選択した命令表現コピーセットを対象とするコピーコマンドウィジェットを活性化することによって)。
〇コピー動作を自動的に実行して、選択した命令表現コピーセット又は選択した命令コピーセットの少なくとも一方を対象とするコピーセット修正動作の第1のサブセットを実行するステップ(例えばコピーセット修正動作の第1のサブセットは、コピー位置での第1の動作コンテキストに特定的な要素を対象とすることができ、例えば、関連付けられた代理データ及び/又はそのコピーセット(複数のコピーセット)との関連付けを排除すること及び/又は新しいか又は変更した一意のノード識別子を提供すること等を含み得る)。部分的に修正したコピーセット(複数のコピーセット)はクリップボード上に記憶することができる。
〇表示されたパートプログラム表現において、選択した命令表現セットをペーストするペースト位置を定義するステップであって、ペースト位置が、基礎にあるパートプログラム内の命令ペースト位置に関連付けられている、ステップ。
〇選択した命令表現コピーセット又は基礎にある選択した命令コピーセットの部分的に修正したものの少なくとも一方を対象とするペースト動作を開始するようにGUIを動作させるステップ(例えばペースト位置を対象とするペーストコマンドウィジェットを活性化することによって)。
〇ペースト動作を自動的に実行して、選択した命令表現コピーセット又は選択した命令コピーセットの少なくとも一方の部分的に修正したものを対象とするコピーセット修正動作の第2のサブセットを実行するステップ。例えば、コピーセット修正動作の第2のサブセットは、ペースト位置での動作コンテキストに特定的な要素を対象とすることができ、以下のa)からc)のうち少なくとも1つを含む、a)ペースト位置動作コンテキストと不適合である選択した命令表現コピーセットの要素及び関連付けを修正すること、b)ペースト位置動作コンテキストとの適合性のために必要な要素及び関連付けを選択した命令表現コピーセットに追加すること(例えば、a又はbは、新しいか又は変更された機能の名前等を適正なフォーマットで与えることができる)、及びc)以下のc1)又はc2)の少なくとも一方を含む動作によって形成された、修正済みの選択した命令コピーセットに基づいて、修正済みの選択した命令表現コピーセットを形成すること、c1)命令ペースト位置動作コンテキストと不適合である選択した命令コピーセットの要素及び関連付けを修正すること、もしくはc2)命令ペースト位置動作コンテキストとの適合性のために必要な要素及び関連付けを、選択した命令コピーセットに追加すること。部分的に修正したコピーセット(複数のコピーセット)は、クリップボードから自動的に検索することができ、コピーセット修正動作の第2のサブセットを実行して、(完全に)修正済みの選択した命令表現コピーセット及び/又は(完全に)修正済みの選択した命令コピーセットを生成する。
〇パートプログラム表現内のペースト位置に修正済みの選択した命令表現コピーセットをペーストする、及び/又は基礎にあるパートプログラム内の命令ペースト位置に修正済みの選択した命令表現コピーセットをペーストするペースト動作を自動的に実行するステップ。
〇ペーストされた修正済みの選択した命令表現コピーセットが、以前に実行された可能性のある位置からコピーされたにもかかわらず、新たに生成されたか又は挿入された「新しい命令」のものと同様のステータスを有することを示す編集インタフェースGUIの動作を自動的に実行するステップ。
・1つの実施形態において、コピー動作は、選択した命令表現コピーセットに含まれる少なくとも1つの親ノードを自動的に展開して、選択した命令表現コピーセットに含まれるその子ノードの全てを表示することを含む。選択した命令表現コピーセットに含まれるノードは、それらの展開を示すように、GUIにおいて強調表示され得る。いくつかの実施形態では、選択した命令表現コピーセット内の全てのノードを表示する。一実施形態では、これは、コピーコマンドウィジェットが選択されているか又は「重ねられている(hovered over)」が、実行される前に行われる。
・1つの実施形態において、ペースト動作は、ペーストされた修正済みの選択した命令表現コピーセットに含まれる少なくとも1つの親ノードを自動的に展開して、修正済みの選択した命令表現コピーセットに含まれるその子ノードの全てを表示することを含む。ペーストされた修正済みの選択した命令表現コピーセットに含まれるノードは、それらの展開を示すように、GUIにおいて強調表示され得る。いくつかの実施形態では、ペーストされた修正済みの選択した命令表現コピーセット内の全てのノードを表示する。一実施形態では、これは、ペーストコピーコマンドウィジェットが選択されているか又は「重ねられている」が実行される前に行われる。
汎用の精密マシンビジョン検査システムの様々な典型的な構成要素を示す図である。 図15のものと同様のマシンビジョン検査システムの制御システム部及びビジョン構成要素部のブロック図であり、本発明による様々な実施形態において使用可能なモジュール及び機能を含む。 図15のものと同様のマシンビジョン検査システムの制御システム部及びビジョン構成要素部のブロック図であり、本発明による様々な実施形態において使用可能なモジュール及び機能を含む。 本明細書に開示する原理によるコピーアンドペースト動作の一実施形態の表現を含む編集インタフェース又はGUI、並びに編集中にユーザを支援するように構成された様々なウィンドウ、メニュー、及びツールバーを含む図である。 本明細書に開示する原理によるコピーアンドペースト動作の一実施形態の表現を含む編集インタフェース又はGUI、並びに編集中にユーザを支援するように構成された様々なウィンドウ、メニュー、及びツールバーを含む図である。 本明細書に開示する原理によるコピーアンドペースト動作の一実施形態の表現を含む編集インタフェース又はGUI、並びに編集中にユーザを支援するように構成された様々なウィンドウ、メニュー、及びツールバーを含む図である。 本明細書に開示する原理によるコピーアンドペースト動作の一実施形態の表現を含む編集インタフェース又はGUI、並びに編集中にユーザを支援するように構成された様々なウィンドウ、メニュー、及びツールバーを含む図である。 本明細書に開示する原理によるコピーアンドペースト動作の一実施形態の表現を含む編集インタフェース又はGUI、並びに編集中にユーザを支援するように構成された様々なウィンドウ、メニュー、及びツールバーを含む図である。 本明細書に開示する原理によるコピーアンドペースト動作の一実施形態の表現を含む編集インタフェース又はGUI、並びに編集中にユーザを支援するように構成された様々なウィンドウ、メニュー、及びツールバーを含む図である。 本明細書に開示する原理によるコピーアンドペースト動作の一実施形態の表現を含む編集インタフェース又はGUI、並びに編集中にユーザを支援するように構成された様々なウィンドウ、メニュー、及びツールバーを含む図である。 本明細書に開示する原理によるコピーアンドペースト動作の一実施形態の表現を含む編集インタフェース又はGUI、並びに編集中にユーザを支援するように構成された様々なウィンドウ、メニュー、及びツールバーを含む図である。 本明細書に開示する原理によるコピーアンドペースト動作の一実施形態の表現を含む編集インタフェース又はGUI、並びに編集中にユーザを支援するように構成された様々なウィンドウ、メニュー、及びツールバーを含む図である。 本明細書に開示する原理によるコピーアンドペースト動作の一実施形態の表現を含む編集インタフェース又はGUI、並びに編集中にユーザを支援するように構成された様々なウィンドウ、メニュー、及びツールバーを含む図である。 本明細書に開示する原理によるコピーアンドペースト動作の一実施形態の表現を含む編集インタフェース又はGUI、並びに編集中にユーザを支援するように構成された様々なウィンドウ、メニュー、及びツールバーを含む図である。 本明細書に開示する原理によるコピーアンドペースト動作の一実施形態の表現を含む編集インタフェース又はGUI、並びに編集中にユーザを支援するように構成された様々なウィンドウ、メニュー、及びツールバーを含む図である。 本明細書に開示する原理によるコピーアンドペースト動作の一実施形態の表現を含む編集インタフェース又はGUI、並びに編集中にユーザを支援するように構成された様々なウィンドウ、メニュー、及びツールバーを含む図である。 本明細書に開示する原理によるコピーアンドペースト動作の一実施形態の表現を含む編集インタフェース又はGUI、並びに編集中にユーザを支援するように構成された様々なウィンドウ、メニュー、及びツールバーを含む図である。 本明細書に開示する原理によるコピーアンドペースト動作の一実施形態の表現を含む編集インタフェース又はGUI、並びに編集中にユーザを支援するように構成された様々なウィンドウ、メニュー、及びツールバーを含む図である。 本明細書に開示する原理によるコピーアンドペースト動作の一実施形態の表現を含む編集インタフェース又はGUI、並びに編集中にユーザを支援するように構成された様々なウィンドウ、メニュー、及びツールバーを含む図である。 本明細書に開示する原理によるコピーアンドペースト動作の一実施形態の表現を含む編集インタフェース又はGUI、並びに編集中にユーザを支援するように構成された様々なウィンドウ、メニュー、及びツールバーを含む図である。 本明細書に開示する原理によるコピーアンドペースト動作の一実施形態の表現を含む編集インタフェース又はGUI、並びに編集中にユーザを支援するように構成された様々なウィンドウ、メニュー、及びツールバーを含む図である。 本明細書に開示する原理によるコピーアンドペースト動作の一実施形態の表現を含む編集インタフェース又はGUI、並びに編集中にユーザを支援するように構成された様々なウィンドウ、メニュー、及びツールバーを含む図である。 本明細書に開示する原理によるコピーアンドペースト動作の一実施形態の表現を含む編集インタフェース又はGUI、並びに編集中にユーザを支援するように構成された様々なウィンドウ、メニュー、及びツールバーを含む図である。 図3Aから図19に表したシーケンス動作に示す様々な状態及び/又は動作シーケンスに対応する、マークアップ言語で書かれたパートプログラムコード命令又はその部分の図である。 図3Aから図19に表したシーケンス動作に示す様々な状態及び/又は動作シーケンスに対応する、マークアップ言語で書かれたパートプログラムコード命令又はその部分の図である。 図3Aから図19に表したシーケンス動作に示す様々な状態及び/又は動作シーケンスに対応する、マークアップ言語で書かれたパートプログラムコード命令又はその部分の図である。 図3Aから図19に表したシーケンス動作に示す様々な状態及び/又は動作シーケンスに対応する、マークアップ言語で書かれたパートプログラムコード命令又はその部分の図である。 図3Aから図19に表したシーケンス動作に示す様々な状態及び/又は動作シーケンスに対応する、マークアップ言語で書かれたパートプログラムコード命令又はその部分の図である。 図3Aから図19に表したシーケンス動作に示す様々な状態及び/又は動作シーケンスに対応する、マークアップ言語で書かれたパートプログラムコード命令又はその部分の図である。 図3Aから図19に表したシーケンス動作に示す様々な状態及び/又は動作シーケンスに対応する、マークアップ言語で書かれたパートプログラムコード命令又はその部分の図である。 図3Aから図19に表したシーケンス動作に示す様々な状態及び/又は動作シーケンスに対応する、マークアップ言語で書かれたパートプログラムコード命令又はその部分の図である。 図3Aから図19に表したシーケンス動作に示す様々な状態及び/又は動作シーケンスに対応する、マークアップ言語で書かれたパートプログラムコード命令又はその部分の図である。 図3Aから図19に表したシーケンス動作に示す様々な状態及び/又は動作シーケンスに対応する、マークアップ言語で書かれたパートプログラムコード命令又はその部分の図である。 図3Aから図19に表したシーケンス動作に示す様々な状態及び/又は動作シーケンスに対応する、マークアップ言語で書かれたパートプログラムコード命令又はその部分の図である。 図3Aから図19に表したシーケンス動作に示す様々な状態及び/又は動作シーケンスに対応する、マークアップ言語で書かれたパートプログラムコード命令又はその部分の図である。 図3Aから図19に表したシーケンス動作に示す様々な状態及び/又は動作シーケンスに対応する、マークアップ言語で書かれたパートプログラムコード命令又はその部分の図である。 図3Aから図19に表したシーケンス動作に示す様々な状態及び/又は動作シーケンスに対応する、マークアップ言語で書かれたパートプログラムコード命令又はその部分の図である。 図3Aから図19に表したシーケンス動作に示す様々な状態及び/又は動作シーケンスに対応する、マークアップ言語で書かれたパートプログラムコード命令又はその部分の図である。 図3Aから図19に表したシーケンス動作に示す様々な状態及び/又は動作シーケンスに対応する、マークアップ言語で書かれたパートプログラムコード命令又はその部分の図である。 図3Aから図19に表したシーケンス動作に示す様々な状態及び/又は動作シーケンスに対応する、マークアップ言語で書かれたパートプログラムコード命令又はその部分の図である。 図3Aから図19に表したシーケンス動作に示す様々な状態及び/又は動作シーケンスに対応する、マークアップ言語で書かれたパートプログラムコード命令又はその部分の図である。 図3Aから図19に表したシーケンス動作に示す様々な状態及び/又は動作シーケンスに対応する、マークアップ言語で書かれたパートプログラムコード命令又はその部分の図である。 図3Aから図19に表したシーケンス動作に示す様々な状態及び/又は動作シーケンスに対応する、マークアップ言語で書かれたパートプログラムコード命令又はその部分の図である。 本明細書に開示する原理による、マシンビジョン検査システムにおいてパートプログラムを編集する場合にマシンビジョンパートプログラム動作セットをコピーアンドペーストするためのルーチンの一例を示すフロー図を表す。 本明細書に開示する原理による、マシンビジョン検査システムにおいてパートプログラムを編集する場合にマシンビジョンパートプログラム動作セットをコピーアンドペーストするためのルーチンの一例を示すフロー図を表す。
本明細書に開示する記載及び/又は図面に関して、ハードウェア及びソフトウェア構成要素並びにそれらの対応する動作、GUI機能及びそれらの対応する動作等を含めて、図面に示す多くの特徴は、図1における実質的に同様の対応部分の記載に基づいて理解することができる。図1は、本発明の様々な実施形態において使用可能である1つの例示的なマシンビジョン検査システム10の図である。マシンビジョン検査システム10は画像測定機12を含み、これは、データ及び制御信号を制御コンピュータシステム14と交換可能なように接続されている。制御コンピュータシステム14は更に、データ及び制御信号を、モニタ又はディスプレイ16、プリンタ18、ジョイスティック22、キーボード24、及びマウス26と交換可能なように接続されている。本発明の様々な実施形態に従って、モニタ又はディスプレイ16は、マシンビジョン検査システム10の動作の制御及び/又はプログラミングに適切なユーザインタフェースを表示することができる。これは例えば、ステップアンドリピート命令を含むパートプログラムを生成及び編集するためのGUIであり、プログラム生成及び編集動作の一部としてカットアンドペースト動作の実行が含まれる。
画像測定機12は、可動ワークピースステージ32と、ズームレンズ又は交換可能レンズを含み得る光学撮像システム34と、を含む。ズームレンズ又は交換可能レンズは一般に、光学撮像システム34によって得られる画像に様々な倍率を与える。マシンビジョン検査システム10は一般に、上述のQUICK VISION(登録商標)シリーズのビジョンシステム及びQVPAK(登録商標)ソフトウェアや、同様の最新技術を用いた市販の精密マシンビジョン検査システムと類似のものである。また、マシンビジョン検査システム10は、本発明の譲受人に譲渡された米国特許第7,454,053号、第7,324,682号、第8,111,938号、及び第8,111,905号に記載されている。これらの各々は、援用により本願にも含まれるものとする。
図2A及び図2Bは、図1のマシンビジョン検査システム10と同様のマシンビジョン検査システム100の制御システム部120及びビジョン構成要素部200のブロック図である。制御システム部120は、本発明に従った様々な実施形態において使用可能な機能を含む。制御システム部120を用いてビジョン構成要素部200を制御する。図2Aに示すように、ビジョン構成要素部200は、光学アセンブリ部205と、光源220、230、及び240と、中央の透明部212を有するワークピースステージ210と、を含む。ワークピースステージ210は、ワークピース20を位置決めすることができるステージの表面に対して概ね平行な面内にあるX軸及びY軸に沿って制御可能に移動させることができる。光学アセンブリ部205は、カメラシステム260及び交換可能対物レンズ250を含み、レンズ286及び288を有するターレットレンズアセンブリ280も含む場合がある。ターレットレンズアセンブリの代わりに、固定もしくは手作業で交換可能な倍率可変レンズ、又はズームレンズ構成等を含むことも可能である。光学アセンブリ部205は、制御可能モータ294を用いることで、X軸及びY軸に概ね直交するZ軸に沿って制御可能に移動させることができる。
ワークピースステージ210上に、マシンビジョン検査システム100を用いて撮像されるワークピース20、又は複数のワークピース20を保持しているトレイもしくは固定具が配置されている。ワークピースステージ210は、光学アセンブリ部205に対して移動するように制御することができ、交換可能対物レンズ250がワークピース20上及び/又は複数のワークピース20間の位置で移動するようになっている。透過照明光220、落射照明光230、及び斜め照明光240の1つ以上が、それぞれソース光222、232、又は242を発して、ワークピース又は複数のワークピース20を照明することができる。ソース光は、ワークピース光255として反射又は透過され、これは交換可能対物レンズ250及びターレットレンズアセンブリ280を通過して、カメラシステム260によって集光される。カメラシステム260によりキャプチャされたワークピース(複数のワークピース)20の画像は、制御システム部120への信号ライン262に出力される。光源220、230、及び240は、それぞれ信号ライン又はバス221、231、及び241を介して制御システム部120に接続することができる。画像の倍率を変更するため、制御システム部120は、信号ライン又はバス281を介してターレットレンズアセンブリ280を軸284に沿って回転させて、ターレットレンズを選択することができる。
様々な例示的な実施形態において、光学アセンブリ部205は、制御可能モータ294を用いて、ワークピース210に対して垂直なZ軸方向に移動可能である。制御可能モータ294は、アクチュエータ、接続ケーブル等を駆動して、光学アセンブリ部205をZ軸に沿って動かすことで、カメラシステム260によりキャプチャされるワークピース20の画像の焦点を変更する。本明細書において用いる場合、Z軸という言葉は、光学アセンブリ部205によって得られる画像のピントを合わせるために用いることが意図される軸のことを指す。制御可能モータ294は、使用される場合、信号ライン296を介して入出力インタフェース130に接続される。
図2Aに示すように、様々な例示的な実施形態において、制御システム部120は、コントローラ125、電源部128、入出力インタフェース130、メモリ140、ワークピースプログラム(パートプログラム)発生器及び実行器150、レコーダ変換器155、学習モード実行器156、実行モード実行器157、編集部160、代理データマネージャ180、プログラムステータスマネージャ185、ノードマネージャ190、オートスクロールマネージャ195、及びコピーアンドペーストマネージャ169を含む。これらの構成要素及び以下に記載する追加の構成要素の各々は、1つ以上のデータ/制御バス及び/又はアプリケーションプログラミングインタフェースによって、又は様々な要素間の直接接続によって、相互接続することができる。当業者によって認められようが、各実施に応じて、これらの構成要素はいずれもマージすること、多数の副構成要素(sub−component)から成ること、又は副構成要素のいずれもマージすることが可能である。
入出力インタフェース130は、撮像制御インタフェース131、移動制御インタフェース132、照明制御インタフェース133、及びレンズ制御インタフェース134を含む。移動制御インタフェース132は、位置制御要素132a及び速度/加速度制御要素132bを含み得るが、そのような要素はマージされる及び/又は区別できない場合もある。照明制御インタフェース133は、マシンビジョン検査システム100の様々な対応する光源について、例えば選択、パワー(強度)、オン/オフ切り換え、及びストロボパルスタイミングを適用可能な場合に制御する。
メモリ140は、画像ファイルメモリ部141、1つ以上のパートプログラム142PP等を含み得るワークピースプログラムメモリ部142、ビデオツール部143、及び、図示する実施形態では代理データ144SDを含み得る代理データメモリ部144を含む。ビデオツール部143は、各々が特定の機能を実行するように定義されたGUI及び画像処理動作を含む様々なビデオツール(まとめて143aとする)を含む。ツールは例えば、エッジ/境界検出ツール、自動焦点ツール、形状又はパターンマッチングツール、及び寸法測定ツールである。多くの既知のビデオツールが、上述のQUICK VISION(登録商標)シリーズのビジョンシステム及び関連するQVPAK(登録商標)ソフトウェア等、市販のマシンビジョン検査システムに含まれている。ビデオツール部143は、関心領域(ROI:region of interest)発生器143xも含み、これは、ビデオツール部143に含まれる様々なビデオツールにおいて動作可能である様々なROIを定義する自動、半自動、及び/又は手動の動作をサポートする。
代理データメモリ部144は代理データ144SDを含む。いくつかの実施形態によれば、パートプログラムを編集する場合、プログラム内のある位置における編集の継続に必要な動作コンテキストを生成するためにパートプログラムのステップ全てを最初から実行することは要求されず、以前にセーブしたデータを代理データとして用いて(ハードウェア設定とソフトウェアのパラメータ及び値との双方の点で)必要な動作コンテキストをシミュレートすることができる。これは先に言及した232号出願に記載されている。
一般に、メモリ部140は、所望の画像特性を有するワークピース20の画像をキャプチャ又は取得するようにビジョンシステム構成要素部200を動作させるために使用可能なデータを記憶する。メモリ部140は、検査結果データも記憶することができ、また、取得した画像に対して手作業で又は自動で様々な検査及び測定動作を実行する(例えば部分的にビデオツールとして実施される)ように、更にその測定結果を入出力インタフェース130を介して出力するように、マシンビジョン検査システム100を動作させるために使用可能なデータも記憶することができる。また、メモリ部140は、入出力インタフェース130を介して動作可能なユーザインタフェースを定義するデータも収容することができる。
透過照明光220、落射照明光230、及び斜め照明光240のそれぞれの信号ライン又はバス221、231、及び241は全て、入出力インタフェース130に接続されている。カメラシステム260からの信号ライン262及び制御可能モータ294からの信号ライン296は、入出力インタフェース130に接続されている。信号ライン262は、画像データの伝達に加えて、画像の取得を開始するコントローラ125からの信号を伝達することができる。
1つ以上のディスプレイデバイス136(例えば図1のディスプレイ16)及び1つ以上の入力デバイス138(例えば図1のジョイスティック22、キーボード24、及びマウス26)も、入出力インタフェース130に接続することができる。ディスプレイデバイス136及び入力デバイス138を用いて、様々なユーザインタフェース機能を含み得るユーザインタフェースを表示することができる。それらのユーザインタフェース機能は、検査動作の実行、プログラム生成及び/又は編集プロセスの一部としてのカットアンドペースト動作の実行を含むパートプログラムの生成及び/又は編集(修正)、カメラシステム260によってキャプチャされた画像の閲覧、及び/又はビジョンシステム構成要素部200の直接制御のために使用可能である。特に、本発明の様々な例示的な実施形態によれば、ディスプレイデバイス136及び入力デバイス138を用いて提示する様々なユーザインタフェース要素は、マシンビジョン検査システム100におけるカットアンドペースト動作を含むパートプログラムの迅速、高効率、直観的、柔軟かつロバストな編集を可能とするために用いられ得る。
ワークピース発生器及び実行器150、レコーダ変換器155、学習モード実行器156、実行モード実行器157、編集部160、代理データマネージャ180、プログラムステータスマネージャ185、ノードマネージャ190、オートスクロールマネージャ195、及びコピーアンドペーストマネージャ169は全て、一実施形態において、コントローラ125にリンクされている一般マシンコントローラブロックMCの一部と見なすことができる。ワークピースプログラム発生器及び実行器150は、パートプログラムの生成及び編集を担っている。「ワークピースプログラム」及び「パートプログラム」という言葉は、本明細書において交換可能に使用され得ることは認められよう。ワークピースプログラム発生器及び実行器150の動作に基づき、ユーザはマシンビジョン検査システム100を用いてワークピース20のためのパートプログラムを生成するが、その際には、ワークピースプログラミング言語を用いて命令を自動的に、半自動的に、又は手作業で明示的に符号化するか、及び/又は、マシンビジョン検査システム100を学習モードで動作させて(例えば学習モード実行器156により制御されて)所望の画像取得訓練シーケンスを提供することで命令を生成する。例えば訓練シーケンスは、ワークピース要素を視野(FOV)に位置決めし、光レベルを設定し、合焦又は自動合焦を行い、画像を取得し、(例えばビデオツールを用いて)画像に適用される検査訓練シーケンスを提供することを含み得る。学習モードの動作では、「学習された」動作シーケンス(複数のシーケンス)が記録されて、対応するパートプログラムステップ(すなわち命令)に変換されるようになっている。これらのパートプログラムステップは、パートプログラムが実行モードで(例えば実行モード実行器157により制御されて)実行された場合に、マシンビジョン検査システム100に、訓練した画像取得及び検査動作を再生させて、パートプログラムの生成時に用いたワークピースに合致するワークピース又は複数のワークピースを自動的に検査する。
レコーダ変換器155は、マシン動作をパートプログラムコードに変換するために用いられる。換言すると、ユーザがあるアクション(例えばワークピース上の要素の測定に用いられるビデオツールを手作業で変更する等)を実行すると、基本的な命令を生成し、これが機械読み取り可能言語に変換されてパートプログラムを形成する。逆の変換も実行可能である。以下で更に詳しく説明するように、本発明の様々な実施形態においては、編集可能な命令表現が編集GU上に表示され、これらの命令表現は、例えばマークアップタイプの言語で書かれた機械読み取り可能コード命令を指し示す。レコーダ変換器155は、編集可能な命令表現とそれらが対応するコード命令との間の変換を実行することができる。編集部160は、パートプログラムの編集に関連した様々な動作及びユーザインタフェース機能を提供又は活性化する。これについては図2Bを参照して以下で更に詳しく説明する。
いくつかの実施形態において、代理データマネージャ180は、パートプログラムに記録することができる代理データにリンクする。特定の実施において、代理データマネージャ180は、正常に生成される場合に出力から代理データを取得すること、及び代理データをパートプログラムに書き込むために提供することを担っている。代理データが利用可能となり得るパートプログラム内のポイントは、代理データを用いて、そのポイントでの編集のために適正な動作コンテキストを設定することができる。これは、適正な動作コンテキストを提供するためにそのポイントまで実際にパートプログラムを実行して実際のデータを収集しなければならないこととは対照的である。プログラムステータスマネージャ185は、一実施形態において、プログラムを保護するか又は保護しないかを管理する。1つの例示的な実施形態では、保護されるプログラムは編集プロセスが完了しているプログラムであり、例えば工場において実行モードで利用可能なもの等である。1つの実施においては、保護されないパートプログラムは、編集のために正しい動作コンテキストを生成させる際に用いられる記憶された代理データを含み得る。また、プログラムステータスマネージャ185は、パートプログラムが保護されていない場合に代理データがパートプログラムに記録されたままであることを保証するように機能し、パートプログラムが編集部160によって再び呼び出された場合に代理データは利用可能であると示される。
一実施形態において、ノードマネージャ190は、パートプログラム内のノードに割り当てられたノード番号の管理を担っている。ある実施では、1つのパートプログラムの表現内で、命令表現の各々にノード番号を割り当てる。特定の実施においては、親ノード及び子ノードを含む組織ツリー構造を用いることができる。特定の実施では、レコーダ変換器155が生成したパートプログラム表現の全ての行に、ノードマネージャ190によってノード番号が割り当てられる。オートスクロールマネージャ195は、ノードマネージャ190が割り当てたノード番号を用いて、関連付けられたパートプログラム要素の関連要素と対応する編集機能とを同時に異なるウィンドウに表示する。例えば、ワークピースのどの測定値がパートプログラムのどの命令表現及び/又はどの符号化命令に関連しているかをユーザが見てわかるように、オートスクロールマネージャ195は、各ウィンドウにおいて、関連ノード番号に対応するパートプログラム表現及び/又は符号化命令の関連する行に自動的にスクロールすることができる。
コピーアンドペーストマネージャ169は、コピーアンドペーストプログラミング要素命令の生成/発生等を担っている。これは、先の「コピーアンドペースト動作、機能、及び実施の概要」と題するセクションの記載に対応し、ワークピースプログラムの部分を編集/形成するために使用可能である。また、コピーアンドペーストマネージャ169は、GUIの編集インタフェース部に、コピーアンドペーストした要素の編集可能表現を提供することができる。そのために、コピーアンドペーストマネージャ169は、ワークピースプログラム発生器及び実行器150、レコーダ変換器155、編集部160、代理データマネージャ180、プログラムステータスマネージャ185、及びオートスクロールマネージャ195によって提供される機能、動作、及びユーザインタフェース機能のいずれにもアクセスし使用することができる。コピーアンドペーストマネージャ169には代替的な構成も可能である。例えばいくつかの実施形態において、コピーアンドペーストマネージャ169と、ワークピースプログラム発生器及び実行器150、レコーダ変換器155、編集部160、代理データマネージャ180、プログラムステータスマネージャ185、又はオートスクロールマネージャ195の1つ以上とは、マージされる及び/又は区別できない場合もある。一般に、本発明は、マシンビジョン検査システム100と連携して動作可能である現在知られている形態又は後に開発される形態で実施して、本明細書に開示するユーザインタフェース機能並びに関連するプログラミング及び他の動作を提供することができる。
図2Bは、図2Aの編集部160の追加構成要素を示す。図2Bに示すように、編集部160は、編集動作コントローラ174、編集ユーザインタフェース部176、エディタコマンド部177、及び編集実行部178を含む。編集動作コントローラ174は編集機能のための動作を制御し、編集ユーザインタフェース部176は編集機能のためのユーザインタフェース機能を提供する。編集ユーザインタフェース部176は、プログラム命令表現ウィンドウ176piを含み、これは表現ユーザインタフェース機能176rを含み、これはノードユーザインタフェース機能176nを含む。プログラム命令表現ウィンドウ176piは、コピーされた命令のソース及びコピーアンドペーストマネージャ169が生成したペーストされた命令を含んだパートプログラム命令の編集可能表現を含むパートプログラム表現を与える。これについては、先に記載し図3A〜図19に示す「コピーアンドペースト動作、機能、及び実施の概要」と題するセクションに記載されている。一実施形態においては、コピーアンドペーストマネージャ169により生成された命令のグラフィック表現を、各々が1つ以上の子ノードを含む親ノードを含むツリー構造において提供することができる。表現ユーザインタフェース機能176rは、ユーザが多数の編集オプションから選択を行うための様々なプルダウンメニューや、コピーアンドペーストマネージャ169により生成された命令等を含む様々な命令を生成及び編集するためにユーザが選択して開くことができる様々なビデオツールを含むツールバー等の機能を提供する。ノードユーザインタフェース機能176Nは、一実施形態において、特定の命令又は命令ブロックに対応するノードが現在編集されているか又はすでに編集されたこと等を示すためのアイコン及び色による強調表示等の機能を含むことができる。これは、例えば232号出願及び061号出願、及び図3Aから図19に開示されている。
様々な実施形態において、編集実行部178は、学習モードにおける編集プロセス中の様々な編集実行モードを担っており、これは、実行モード(run mode)における実行(execution)の実行モード(run mode)とは異なる実行(execution)の編集モードを含む。一般に、実行の実行モードは、パートプログラムを最初から実行して、ワークピースの撮像から得られる実際のデータを取得及び処理する(例えば検査及び解析する)。一方、様々な実施形態における実行の編集モードは、実際のデータの少なくとも一部を以前に記録した「代理データ」で置き換えるように動作可能であり、この代理データを用いてパートプログラムの所望のポイントで実行が開始できるようにする。これは、実際のデータを取得するためにパートプログラムを最初から開始しなければならないこととは対照的である。すなわち、様々な実施形態における実行の編集モードは、パートプログラムのいずれかの部分の編集のために必要な正しい動作コンテキストを効率的に生成することができる。マシンビジョン検査システムのためのパートプログラムの編集は、マシンツール又はアセンブリロボット等のためのプログラムの編集よりも複雑なタスクであることに留意すべきである。例えば、マシンビジョン検査システムのためのパートプログラムが含む後の方の(後続の)部分は、動作を制御する及び/又は画像に依存した測定結果を提供するが、これらは少なくとも部分的に、プログラムの前の方の部分の実行によって達成/取得された結果、及び/又は解析のために撮像されているワークピースの特定のインスタンスに依存する。また、ビジョンシステムは典型的に、様々な機械的要素、電気的要素、及び光学的要素から成り、これらが複雑に相互作用することで撮像/解析動作を実行することに留意すべきである。このため、ステップアンドリピート命令を含むパートプログラムのいずれの部分の編集も、現実的な条件セットに基づいて正しい動作コンテキストで実行しなければならない、すなわち、ビジョンシステムの様々なハードウェア及びソフトウェア要素並びにパラメータを、その部分を編集するために適正に(現実的なデータに基づいて)セットしなければならない。パートプログラムの編集のために正しい動作コンテキストを達成する際の標準的な慣例は、ビジョンシステムに、パートプログラムの全ての命令を最初から、及び/又は編集対象の命令部分までを含めて実際に実行させることであるが、これは時間がかかり、無駄が多く、大きいパートプログラムでは非現実的である場合がある。「代理データ」の使用に基づいて、編集対象のパートプログラムの特定ノードのために正しい動作コンテキストを生成することができるビジョンシステム編集環境を提供する1つの解決策は、232号出願及び061号出願に開示されている。
いくつかの実施形態において、編集実行部178は、代理モード部180、実モード部191、及び編集実行ユーザインタフェース機能部192を含む。代理モード部180はノード解析器181を含み、これは代理データ動作181a及びマシン動作181bを含む。代理モード部180が代理実行モードを動作させる場合、継続的な編集動作のための動作コンテキストを生成するために代理データが用いられる。1つの実施におけるノード解析器181は、パートプログラムの実行がターゲットノード(例えばパートプログラム内で修正を行う箇所)に到達したか否かを判定する。ノード解析器181は、関与するノードのタイプに従って、代理データ動作181A又は実マシン動作181Bのどちらを実行するかを判定する。一般に、いったんターゲットノードに到達したら、実マシン動作が実行される。これに対して、ターゲットノードよりも前のパートプログラム命令では、継続的な編集動作に必要な動作コンテキストの少なくとも一部を生成するために、代理データ動作が利用され得る。代理データが存在しない場合、必要な動作コンテキストを生成するために実マシン動作を可能とする/実行することをユーザに促すことができる。1つの実施においては、各ノードを解析して、代理データが存在するか否を含めて代理データ動作が適用可能であるか、代理データ動作のために正しいノードタイプであるか、又は実マシン動作を利用する必要があるか等を判定する。例えばパートプログラム内のいくつかのノードにおいては、代理データで置き換えることができない実データを取得するために、ワークピースステージや撮像部を実際に動かす等の実マシン動作が必要である場合がある。
実モード部191は、以前のマシンビジョンシステムによって従来実行されている動作を含む。実モード部191は、適宜、マシン動作181bの実行のために代理モード部180によって呼び出され得ることは認められよう。実モード部191は、マシン動作191a及びデータ動作191bを含む。マシン動作191aは実マシン動作を実行し(例えばビデオツール動作の一部としてステージを動かす)、データ動作191bは一般にデータを出力する。編集実行ユーザインタフェース機能192は、編集機能を実行するためのユーザインタフェース機能を提供する(例えば、パートプログラムのどの部分が代理データを用いたか、又は実際の実行(execution)により実行(run)されたか等を示す色分け等、様々な実行動作のステータスについての指示)。様々な実施形態において、そのような機能は、232号出願及び061号出願に開示されたように実施することができる。
エディタコマンド177は、実行セグメント部177a、修正部177b、挿入/添付部177c、コピーコマンド177d、及びペーストコマンド177eを含む。コピーアンドペーストコマンドは、コピーアンドペーストマネージャ169の各動作、及び/又は、先の「コピーアンドペースト動作、機能、及び実施の概要」と題するセクションに概説したような様々なコピーアンドペースト動作及び方法を活性化することができる。上述のように、様々な実施形態において、コピーアンドペーストマネージャ169は、編集動作コントローラ174、編集UI部176、編集実行部178、及びエディタコマンド177を含む編集部160によって提供される機能(functions)及び機能(features)のいずれにもアクセスし使用することができる。
一般に、実行セグメント部177aは、パートプログラムの選択されたセグメントの実際の実行(run)を実行する。パートプログラムの選択されたセグメントを実行するために、選択されたセグメントまでの適正な動作コンテキストを確立しなければならないことは認められよう。適正な動作コンテキストは、代理データを利用することによって確立可能である。
修正部177bは、実行セグメント部177aの動作とある程度の類似性を有する。一般に、パートプログラムにおける命令表現が修正(編集)のために選択された場合、この修正対象の命令よりも前のパートプログラムの部分に代理モードを用いることで、編集のために正しい動作コンテキストを生成することができる。一実施形態では、パートプログラムにおける命令表現に修正コマンドが選択された場合、その命令表現のノードがターゲットノードとして指定される。いったんターゲットノードに到達したら、エディタは代理モードから実際実行モードに切り換わり(例えば実モード部191により制御されて)、ターゲットノードの第1の関連パートプログラム命令を実行する。
図3A及び図3Bは、ディスプレイデバイス136(例えば図1のディスプレイ16)上に表示することができる、複数の初期パートプログラム命令表現を有するパートプログラムの表現を含んだ編集インタフェース301の図を含むユーザインタフェース画面の図である。編集インタフェースは、マシンビジョン検査システムのためのステップアンドリピート命令を含むパートプログラムをユーザが生成及び編集することを可能とする。また、編集インタフェースは、上部及び側部の選択バー等、様々な測定及び/又は動作選択バーも含む。図3Bは、ディスプレイデバイス136上に表示された画像インタフェースを示す。これは、ワークピースの(ビデオ)画像を表示する視野ウィンドウ302を含み、ここで図3Aのパートプログラムを(編集インタフェース301において)実行することができる。マシンビジョンシステムは、ある実施では多数の個別のワークピースに対してパートプログラムを実行し、他の実施では単一のワークピースにおける多数のワークピース要素に対して、例えば表面に画定された多数の孔に対してパートプログラムを実行する。このため、「ワークピース」及び「ワークピース要素」という言葉は、特定の文脈において、本明細書では交換可能に使用され得る。画像インタフェースは、選択バー303A、303B等の様々な測定及び/又は動作選択バーを含み、更に、ワークピースステージ上で撮像/解析されているワークピースのX−Y−Z位置を関連する座標系に示すリアルタイムX−Y−Z(位置)座標ウィンドウ304も含む。座標系は、測定のための基準を与え、典型的には、ワークピース座標系(例えば矩形ワークピースの1つのかどを原点として用いる)、又はワークピースステージの線形目盛により規定されるマシン座標系である。画像インタフェースは更に、照明制御ウィンドウ305も含む。
パートプログラム表現は、表面に画定された孔等、概ね円形のワークピース要素415の要素を決定するように設定される。一実施形態において、パートプログラム命令表現の各々にはノードが関連付けられ、ノード番号が割り当てられる(例えば232号出願及び061号出願に開示されているように)。特定の実施においてはツリー構造が用いられる。この場合、命令表現のいくつかに親ノードを関連付け、いくつかに子ノードを関連付ける。例えば、子ノード命令表現には、図3Aから図19のそれらの親ノード命令表現がそれぞれ関連付けられている。本明細書において用いる場合、編集インタフェース301(図3A)上に表示されるようなプログラム命令表現の各々は、交換可能に「ノード」と呼んでもよい。また、一実施形態において、編集インタフェース上に表示されるような命令表現は、パートプログラムのマークアップ言語命令(コード命令)から導出されたアイコン及びラベルを含むことは認められよう。いくつかの実施形態において、パートプログラムのマークアップ言語は、カスタム化マークアップ言語コード等のXMLと同様のコードを含み得る。このため、命令表現は、マシンによって実行可能である関連付けられたコード命令を「指し示す」か、又はそのようなコード命令との関連付けを有する。
図3Aの編集インタフェース301に示すように、「プロローグ」ノードは、実行モードでパートプログラムを実行するために必要なプロセスを表し、典型的には学習モードに入った場合に生成される。「プロローグ」ノードは親ノードであり、例えば「光の設定」ノード及び「ステージの移動」ノードのような子ノードを含み得る。「光の設定」ノードは、どのタイプの照明をどの強度レベルで用いるかを規定し、これは、照明制御ウィンドウ305に含まれるスライディングバーを用いてユーザが容易に設定及び調節することができる。「ステージの移動」ノードは、様々な実施に従ってユーザにより手作業で設定されるように、ワークピースを保持するステージの位置を規定する。図1において、その後の命令/表現(「円の測定、円1」「原点を円1に合わせる」「円の測定、円2」「X軸を円2に合わせる」)は、図3Bの円形要素415の測定済みの要素にワークピース座標系を位置合わせすることによって座標系を設定するように動作する。従って、更に測定を実行する際には、これらの命令表現の動作により、関連する座標系においてワークピースの正しい位置及び向きが確立される。また、図3Aは命令ポインタ332も示す。様々な実施形態において、命令ポインタ332は、表示されたパートプログラム表現内でのその位置に対応した編集コンテキストステータスに応じて色を変えることができる。すなわち、命令ポインタの色は、有効な編集コンテキスト又は不確かな(又は無効な)編集コンテキスト(例えばパートプログラム動作の有効かつ完全な実行又はシミュレーション)が、パートプログラム内でのその位置までの予想されるデータ及び動作条件を全て確立し終わったか否かを示すことができる。以下で更に説明するように、様々な実施形態において、本明細書に開示するように新たにペーストされた要素に関して、元のコピーセットが有効な編集コンテキストステータスに対応するコピー位置からコピーされたにもかかわらず、そのような新たにペーストされた要素(例えば修正済みの選択された命令表現コピーセット)が、新たに生成又は挿入された新しい命令と同様の編集コンテキストステータスに対応していることを、編集コンテキストステータスインジケータが控えめに自動的に示すことが有利であり得る。いくつかの例では、命令ポインタを挿入ポインタと称することができる。しかしながら、様々な実施形態において、挿入及びコピーアンドペースト位置等は、選択された及び/又は強調表示された命令表現に対して決定され、これは命令ポインタと必ずしも同じ位置ではない。
図4を参照すると、ユーザは、本発明の実施形態に従った様々なGUI機能を用いてステップアンドリピート命令を定義することができる。具体的には、ユーザが「プログラム」オプション306上にセレクタ(例えばカーソル)を置くと、「ステップアンドリピート」オプション308を含むプルダウンメニュー307を出すことができる。ユーザが「ステップアンドリピート」オプションを選ぶと、「配列」オプションを含む別のプルダウンメニューが表示される。ユーザは「配列」オプションを選んで、ステップアンドリピートプログラミング要素の命令の定義を開始することができる。これは例えば、援用により全体が本願にも含まれる米国特許第8,271,895号に開示されている。
図5を参照すると、図示する実施形態において、上述したようにユーザが「配列」オプションを選択すると、ディスプレイ画面に「ステップアンドリピートの配列」ウィンドウ310が現れて、配列の全体的な配置及び構造の定義をユーザに促すことができる。いくつかの実施形態では、ユーザは名前ボックスに配列の名前を入力することができる。図示する例では、ユーザは「MyLoop(マイループ)」を入力している。ユーザは更に、第1のリピートボックスに、1つの軸(例えばX軸)に沿って生成するリピート数を定義し、「DX」ボックスに、同じ軸に沿ったリピート間の間隔の距離を定義する。同様にユーザは、第2のリピートボックスに、別の軸(例えばY軸)に沿って生成するリピート数を定義し、「DY」ボックスに、その軸に沿ったリピート間の間隔の距離を定義する。図示する例では、ユーザは、基本的なステップアンドリピート命令セットをX軸に沿って1.5875の間隔で4回繰り返すと共に、Y軸に沿って1.5875の間隔で4回繰り返すことを定義している。これは、それぞれ〔X,Y〕と符号を付けたアイコンによってグラフィックに表されている。ユーザは配列の位置の定義を終了すると、OKボタンを選択して、定義した位置をセーブする。
図6は、先に概説したステップアンドリピートループ配列動作に関連したパートプログラム命令表現を含む編集インタフェース301を示す。ここで、パートプログラム命令表現は、「ループの終了」子ノード312を含む「ステップアンドリピートループ配列」ノード311を含む。
図7Aは、先に「コピーアンドペースト動作、機能、及び実施の概要」と題するセクションに概説したような動作を実行するコピーコマンド314の一実施形態に関連付けたパートプログラム命令表現を含む編集インタフェース301を示す。例えば、コピーコマンド314は、限定ではないが、以下のような動作例と関連付けて用いることができる。
・表示されたパートプログラム命令内のコピー位置で少なくとも第1の命令表現を選択して、基礎にある選択した命令コピーセットに関連付けられた選択した命令表現コピーセットを定義する。
・選択した命令表現コピーセット又は基礎にある選択した命令コピーセットの少なくとも一方のコピーを生成するコピー動作を開始するようにGUIを動作させる(例えば選択した命令表現コピーセットを対象とするコピーコマンドウィジェット314を活性化させることによって)。
・コピー動作を自動的に実行して、選択した命令表現コピーセット又は選択した命令コピーセットの少なくとも一方を対象とするコピーセット修正動作の第1のサブセットを実行する(例えば、コピーセット修正動作の第1のサブセットは、コピー位置での動作コンテキストに特定的な要素を対象とし得る。これは、例えば、関連付けられた代理データ及び/又はそのコピーセット(複数のコピーセット)との関連付けを排除すること、及び/又は、新しいか又は変更した一意のノード識別子、機能の名前、トレランスの名前、ワーク座標系の名前、測定ポイントバッファの名前、表示された変数の名前等を提供すること、を含み得る)。部分的に修正したコピーセット(複数のコピーセット)はクリップボード上に記憶することができる。
図示する例では、ユーザは「円の測定、円2」表現を選択している。
図7Bは、図7Aと同期させた「測定結果」316を含むウィンドウ又は枠のインタフェースステータスを示す。ここでは、選択した(コピーした)「円の測定、円2」に対応する測定結果318は、061号出願における開示と同様に、強調表示されている。一実施形態において、GUIの編集インタフェース部に表現を表示する場合、ユーザは、その表現を選択する(例えば編集インタフェースでその上にカーソルを置く)、及び/又は選択した表現上で右クリックすればよい。これにより、選択した表現を対象とする様々なオプション/選択肢を含むメニューウィンドウ315を出すことができる。これは例えば、本明細書に開示するような様々な動作を含むコピーコマンドの一実施形態である「コピー」コマンドオプション314等である。ユーザが「コピー」コマンドオプション314を選択及び/又は実行すると、制御システム部120(図2Aを参照のこと)のコピーアンドペーストマネージャ169は、先に「コピーアンドペースト動作、機能、及び実施の概要」と対するセクションに概説したように、そのコマンドの動作を実行する。様々な実施形態において、コピーアンドペーストマネージャ169は、「コピーアンドペースト動作、機能、及び実施の概要」と題するセクションに概説したように、要素の消去及び/又は修正を自動的に実行するそのコマンドの動作も実行して、選択してコピーした表現の位置における動作コンテキストに特定的な要素を排除する。様々な実施形態において、コピーアンドペーストマネージャ169は、選択してコピーした表現の基礎にあって後の時点でペーストするためにクリップボード上に置かれる命令の代理データコピーを排除するコマンドの動作を実行する。様々な実施形態において、コピーコマンド314は、図8に示すように、コピーした表現における折り畳まれた親ノードを自動的に展開してその子ノードを表示する。320に示すように、選択した「円の選択、円2」ノードの3つの子ノードの全てが表示される。図8は、コピー及び展開したノードを強調表示することも示す。
図9は、先に「コピーアンドペースト動作、機能、及び実施の概要」と題するセクションで概説したような動作を実行するペーストコマンド322の一実施形態に関連付けられたパートプログラム命令表現を含む編集インタフェース301を示す。例えばペーストコマンド322は、限定ではないが、以下のような動作例と関連付けて用いることができる。
・表示されたパートプログラム表現において、選択した命令表現セットをペーストするペースト位置を定義する。このペースト位置は、基礎にあるパートプログラム内の命令ペースト位置に関連付けられている。
・選択した命令表現コピーセット又は基礎にある選択した命令コピーセットを部分的に修正したものの少なくとも一方を対象とするペースト動作を開始するようにGUIを動作させる(例えばペースト位置を対象とするペーストコマンドウィジェット322を活性化させることによって)。
・ペースト動作を自動的に実行して、選択した命令表現コピーセット又は選択した命令コピーセットの少なくとも一方の部分的に修正したものを対象とするコピーセット修正動作の第2のサブセットを実行する。例えば、コピーセット修正動作の第2のサブセットは、ペースト位置での動作コンテキストに特定的な要素を対象とし得る。これは以下のa)からc)のうち少なくとも1つを含む。a)ペースト位置動作コンテキストと不適合である選択した命令表現コピーセットの要素及び関連付けを修正すること、b)ペースト位置動作コンテキストとの適合性のために必要な要素及び関連付けを、選択した命令表現コピーセットに追加すること(例えば、a又はbは、新しいか又は変更された機能の名前等を適正なフォーマットで与えることができる)、c)以下のc1)又はc2)の少なくとも一方を含む動作によって形成した修正済みの選択した命令コピーセットに基づいて、修正済みの選択した命令表現コピーセットを形成すること。c1)命令ペースト位置動作コンテキストと不適合である選択した命令コピーセットの要素及び関連付けを修正すること、c2)命令ペースト位置動作コンテキストとの適合性のために必要な要素及び関連付けを選択した命令コピーセットに追加すること。部分的に修正されたコピーセット(複数のコピーセット)は、クリップボードから自動的に検索することができ、コピーセット修正動作の第2のサブセットを実行して、(完全に)修正済みの選択した命令表現コピーセット及び/又は(完全に)修正済みの選択した命令コピーセットを生成する。
・パートプログラム表現内のペースト位置に修正済みの選択した命令表現コピーセットをペーストする、及び/又は基礎にあるパートプログラム内の命令ペースト位置に修正済みの選択した命令表現コピーセットをペーストするペースト動作を自動的に実行する。
図9に示す例において、ユーザは、ステップアンドリピートループ配列表現の下に(内側に)カーソル/挿入ポインタを位置決めしている(図示する例では「ループの終了」ノード312上)。一実施形態において、ユーザはこの後右クリックすればよい。これにより、選択した位置を対象とする様々なオプション/選択肢を含むメニューウィンドウ323を出すことができる。これは例えば、本明細書に開示するような様々な動作を含むペーストコマンドの一実施形態である「ペースト」コマンドオプション322等である。ユーザが「ペースト」コマンドオプション322を選択及び/又は実行すると、制御システム部120(図2Aを参照のこと)のコピーアンドペーストマネージャ169は、先に「コピーアンドペースト動作、機能、及び実施の概要」と対するセクションに概説したように、そのコマンドの動作を実行する。様々な実施形態において、コピーアンドペーストマネージャ169は、「コピーアンドペースト動作、機能、及び実施の概要」と題するセクションに概説したように、要素の追加及び/又は修正を自動的に実行するそのコマンドの動作も実行して、ペーストした表現の位置における動作コンテキストのために必要な要素を提供する。様々な実施形態において、コピーアンドペーストマネージャ169は、図10に示すように、ペーストした表現を自動的に展開してその子ノードを表示するそのコマンドの動作を実行する。ここでは、コピーアンドペーストした「円の測定、円2」ノード320’が展開されて、その3つの子ノードが全て表示されている。また、図10が示すコピー及び/又はペースト動作は、ペーストした表現における機能名を修正してコピーしたソースの表現における機能と区別すると共に、ペースト要素をペースト位置に適合させる動作を含む。この例では、320’の機能名「円の測定、円2_1〔,〕」における追加のカッコ〔,〕によって、ペーストしたステップアンドリピートループにおける動作コンテキストと適合していることを示し/適合させ、機能名の「_1(下線1)」によって、320のコピーしたソースの機能と区別する。
図11は、ユーザがコピーした要素の別のペースト動作の開始を選択していることを示すが、この場合はステップアンドリピートループの外側である(例えば「パートプログラム終了」表現325が選択されており、ペースト動作は、「ループの終了」表現の下にあるその選択されたノードよりも前に発生する)。前述のように、一実施形態において、ユーザは挿入ポイントの選択後に右クリックすればよい。これにより、「ペースト」コマンドオプション322等、選択した位置を対象とする様々なオプション/選択肢を含むメニューウィンドウ323を出すことができる。ユーザが「ペースト」コマンドオプションを選択及び/又は実行すると、制御システム部120(図2Aを参照のこと)のコピーアンドペーストマネージャ169は、先に「コピーアンドペースト動作、機能、及び実施の概要」と対するセクションに概説したように、そのコマンドの動作を実行する。様々な実施形態において、コピーアンドペーストマネージャ169は、「コピーアンドペースト動作、機能、及び実施の概要」と題するセクションに概説したように、要素の追加及び/又は修正を自動的に実行するそのコマンドの動作も実行して、ペーストした表現の位置における動作コンテキストに特定的な要素を提供する。様々な実施形態において、コピーアンドペーストマネージャ169は、図12に示すように、ペーストした表現を自動的に展開してその子ノードを表示するそのコマンドの動作を実行する。ここでは、コピーアンドペーストした「円の測定、円2」ノード320’’の第2のインスタンスが展開されて、その3つの子ノード全てが表示されている。また、図12が示すコピー及び/又はペースト動作は、ペーストした表現における機能名を修正して、コピーしたソースの表現320及び同様の機能名320’を含むコピーした要素の以前ペーストしたインスタンスにおける機能から区別すると共に、ペースト要素をペースト位置に適合させる動作を含む。この例では、320’’の機能名「円の測定、円2_2」に追加カッコは存在しない。これは、コピーした要素320’の以前にペーストしたインスタンスとは異なるが、これは、カッコ〔,〕が、(例えば以前ペーストした)ステップアンドリピートループの外側の動作コンテキストと不適合であるからである。また、機能名320’’の「_2(下線2)」によって、コピーしたソースの機能名320と、コピーした要素の以前ペーストしたインスタンスにおける機能名320’とから区別する。
図13Aは、ペーストされた「円ツール」327のコピーのいくつかの属性が、コピーしたソースの要素の値を保持していることを付随して示す。これは、コピーした要素320’’の第2のインスタンスに含まれるものとして「円ツール」327を定義する属性/パラメータのリスト329によって示されており、これが当てはまるのは、それらの要素がペースト位置と不適合でない(プログラミングの意味で)場合である。プログラミングの意味で「不適合である」とは、所望のパートプログラムの挙動に照らして「不適切である」のと同じでないことは認められよう。例えば、保持された属性(例えば円ツール位置パラメータ)は、ユーザがそれらを編集することを予想する(例えば図13Aの強調表示した「修正」コマンド330に示すように)という点で不適切であり得るが、それらは編集動作に対して意図しない影響を及ぼすか又は得られるパートプログラムに予想しないクラッシュ又は挙動を引き起こすという点で「不適合」ではない。おそらく、様々な実施形態において最も重要なのは、ペーストした表現又は基礎にある命令をパートプログラム及び/又は編集環境で動作させるために、ユーザがコンピュータ言語で書かれた基礎にある命令の編集を実行しなければならないという意味で、それらが不適合でないことである。コピー及び/又はペーストコマンドは、適合性のために必要なコンテキスト関連動作の全てを自動的に実行して、少なくともいくつかの実施形態において、GUIの編集部に(例えば編集インタフェース301に)及び/又は関連するGUIウィンドウ及びメニューに表示されたパートプログラム表現のレベルで、ユーザがコピーアンドペースト動作を用いてパートプログラムを編集することを可能とする。いくつかの実施形態では、コピーアンドペーストコマンドが、コピー及び/又はペースト表現/命令の特定の場合にそのような動作を自動的に実行することができない場合、関連するエラーメッセージが表示される。図13Aでは、円の測定、円2_2ノードの下にある選択した「円ツール」命令表現に関連して、「修正」コマンドが選択されている。修正のために利用可能な円ツールのパラメータは、属性/パラメータ枠329に表示されている。この特定の例では、ユーザは、「コピーした」パラメータ「走査間隔=20」及び「走査間隔の形式=度」を修正して、走査間隔を「1」に、走査間隔の形式を「画素」にする。これについては以下で図17及び18に示す。
図13Bは、図13Aと同期させた「測定結果」316を含むウィンドウ又は枠のインタフェースステータスを示す。ここでは、「測定結果」ウィンドウ316は、ソース「円の測定、円2」320及び第1のペーストしたインスタンス「円の測定、円2_1〔1,1〕」320’の測定結果を示すが、図示する例において修正対象である第2のペーストしたインスタンス「円の測定、円2−2」320’’の測定結果は示していない。
図14は、選択/強調表示した円ツール327をユーザ入力によって修正する準備において、パートプログラムのその位置で適正なマシン及び/又は編集動作コンテキストを確立しなければならないこと(例えば232号出願に開示されているように)を示し、必要な動作は、挿入ポインタ(及び編集コンテキストステータスインジケータ)332/332’の変化によって示されるように自動的に実行される(例えば232号出願に開示されているように)(図13Aでは有効かつ目に見えるのに対して、必要な動作の実行中は332’として表示されない(suppressed))。編集インタフェース301及び同期したメッセージボックス333におけるグレー表示された命令表現は、システムが適正なマシン動作コンテキストを確立するためにパートプログラムの少なくとも一部を解析中及び/又は実行中であることを示す。
図15は、図14の同期している動作の完了時におけるGUIの状態を示す。この時点で、パートプログラムの修正(編集)のために有効な動作又は編集コンテキストが確立されている。
図16は、先に図13Aから図15において説明した動作の後に続く修正動作を反映している。「円ツール修正」ダイアログボックス335が現れるのは、ユーザが図13Aの「修正」コマンド330を選択し、先に示したように「コピーした」パラメータ「走査間隔=20」及び「走査間隔の形式=度」を「1」の走査間隔及び「画素」の走査間隔形式に変更した後であることに留意すべきである。赤い「記録」ステータスインジケータ337は、マシンビジョン検査システムがパートプログラムの生成及び記録のための「記録」又は学習モードにあることを示すことに留意すべきである。「円ツール修正」ダイアログボックス335内の選択可能コマンドの1つである実行コマンド339は、まだ実行されていない。前述のパラメータ修正を有効にするため、円ツールを実行することができる。また、図16は、「円の測定、円2_1」[3,4]、[4,1]、[4,2]、[4,3]、[4,4]の第1のペーストしたインスタンスの「測定結果」316を含むインタフェースステータスを示す。これらは容易に上下にスクロールすることができる。
図17は、実行コマンド339を実行して修正した円ツールを実行した後のGUIを示す。修正した円ツールの実行の結果、「円ツール修正」ダイアログボックス335には、639のエッジ点が位置付けられていることが示され(340を参照のこと)、位置付けられたエッジ点は、ビデオ表示ウィンドウ(視野ウィンドウ)302のビデオツールの内側に示されている。
図18は、修正した円ツールに実行コマンドを実行した結果として得られた更新済みパラメータを、属性/パラメータのリスト329に示す。これは、図15にリスト化した円ツールの以前のパラメータと比べると、有効になった修正済みパラメータすなわち「1」の走査間隔及び「画素」の走査間隔形式の表示を含む。図19は、図18と同期させた「測定結果」316を含むウィンドウ又は枠のインタフェースステータスを示す。これに含まれる追加のダイアログボックス342を用いて、図17に最もよく見られる検出エッジ点及び図18に示す円測定結果及びパラメータを生成するように、ペースト及び修正された円ツールの結果及び構成を受容することができる(「完了」を押すことにより)。
図20Aから図24Eは、マークアップ言語で書かれたコード命令の図であり、図3Aから図19に表すシーケンス動作に示した様々な状態及び/又は動作シーケンスに対応する。状態間の対応付けは、232号出願及び061号出願、並びに本明細書に含まれる他の援用を含め、本明細書に記載する特徴及び動作に基づいた理解と組み合わせて、図3Aから図19に示す表現に対して図20Aから図24Eに示す命令を慎重に検討することで当業者によって決定することができる。概して言えば、図20Aから図20Hは、図3Aから図3Bに関して記載又は示した動作から得られるパートプログラム命令を示す。様々な命令に参照用の名称を付けて、それらの命令と前出の図面における対応した命令表現との関係を読者が理解するように支援する。例えば、PS及びPEはそれぞれ、「プロローグ」命令表現に関連した命令の開始及び終了に相当する(approximate)。MCIRC1S及びMCIRC1Eはそれぞれ、「円の測定、円−1」命令表現に関連した命令の開始及び終了に相当する。DCIRC1S及びDCIRC1Eはそれぞれ、円−1の「円の定義」命令表現に関連した命令の開始及び終了に相当する。ALIGNOS及びALIGNOEはそれぞれ、「原点を合わせる」命令表現に関連した命令の開始及び終了に相当する。MCIRC2S及びMCIRC2Eはそれぞれ、「円の測定、円−2」命令表現に関連した命令の開始及び終了に相当する。DCIRC2S及びDCIRC2Eはそれぞれ、円−2の「円の定義」命令表現に関連した命令の開始及び終了に相当する。ALIGNXS及びALIGNXEはそれぞれ、「X軸を合わせる」命令表現に関連した命令の開始及び終了に相当する。EPPは「パートプログラム終了」命令表現に関連する。これらの注釈は図21から図24のものと一致し、それらの図におけるプログラムセグメントの位置が、図20に示すパートプログラムに関して位置付けられる(例えば挿入される)箇所に関連付けることができるようになっている。
概して言うと、図21は、図4から図6に関して記載又は示した動作から得られるパートプログラム命令を示す。LOOPS及びLOOPEはそれぞれ、図6に示した「ステップアンドリピートループ配列」命令表現に関連する命令の開始及び終了に相当することがわかる。概して言うと、図22Aから図22Cは、図7Aから図10に関して記載又は示した動作から得られるパートプログラム命令を示す。MCIRC2_1S及びMCIRC2_1Eはそれぞれ、図10の「MyLoop」にペーストされて示された「円の測定、円2_1〔.〕」命令表現に関連する命令の開始及び終了に相当することがわかる。同様に、DCIRC2_1S及びDCIRC2_1Eはそれぞれ、対応する「円の定義」命令表現に関連する命令の開始及び終了に相当する。概して言うと、図23Aから図23Cは、図11から図12に関して記載又は示した動作から得られるパートプログラム命令を示す。MCIRC2_2S及びMCIRC2_2Eはそれぞれ、図12のループ終了後にペーストして示す「円の測定、円2_2」命令表現に関連した命令の開始及び終了に相当することがわかる。同様に、DCIRC2_2S及びDCIRC2_2Eはそれぞれ、対応する「円の定義」命令表現に関連する命令の開始及び終了に相当する。概して言うと、図24Aから図24Eは、図13Aから図19に関して記載又は示した動作から得られるパートプログラム命令及びデータを示す。例えば図24Cにおいて、MOD1は、図18に示した修正済みの走査間隔及び走査間隔形式のパラメータを示すことがわかる。CIRC2_2−SURROS及びCIRC2_2−SURROEはそれぞれ、「円の測定、円2_2」表現に関連したビジョンマシンでの命令実行に関する新しいデータの開始及び終了に相当する(例えば、「円の測定、円2_2」命令表現に関連する命令の開始及び終了にそれぞれ相当する注釈MCIRC2_2S及びMCIRC2_2E内)。このデータは、図18に要素332として示される動作中の編集コンテキストステータスのための基礎を提供する(これは、例えば、「円の測定、円2_2」に関連してペースト及び修正済みの要素について動作中の編集コンテキストステータスが確立されていない図15とは対照的である)。
全体として、図1から図25Bは、上述の「コピーアンドペースト動作、機能、及び実施の概要」と題するセクション及び/又は以下の特許請求の範囲に述べるような特徴、動作、及び対応付けの多くを示す一実施形態を図示することが理解されよう。
テキストベースのプログラム編集環境において実行され得るような既知のコピーアンドペーストプログラム編集動作、又はプログラミング言語機能内で示されるコンテキストを認識しているプログラム編集等が、プログラミング言語に熟練したユーザによるタイピング及び/又はプログラム編集を促進し得ることとは対照的に、本明細書に開示されるコピー及び/又はペーストコマンドは、比較的技術力が低いユーザによって動作されるGUIにおいて利用可能であることは認められよう(例えば個々の位置での動作の編集、拡張、置換、又は削除の目的のため)。既知のコピーアンドペースト動作とは対照的に、本明細書に開示されるコマンド動作は、基礎にあるプログラミング言語命令におけるターゲットプログラミング要素のために必要なコンテキスト調節動作を完全に自動化することができるので、少なくともいくつかの実施形態において、ユーザが、GUIの編集部及び/又は関連するGUIウィンドウ及びメニューに表示されるパートプログラム表現のレベルで、コピーアンドペースト動作を用いて確実にパートプログラムを編集及び/又は実行することが可能となる。
様々な例示的な実施形態において、前述のように、コピーアンドペーストされた命令及び/又はコピーアンドペーストマネージャ169により生成された命令を含むパートプログラムは、XML(拡張マークアップ言語)又は同様のカスタム化マークアップ言語等のマークアップ言語で書かれている。すなわち、編集インタフェース301に表示される編集可能命令表現は、マークアップタイプの言語で書かれた対応するコード命令(機械実行可能命令)を指し示す。
図25A及び図25Bは、マシンビジョン検査システムにおいてパートプログラムを編集する場合に、マシンビジョンパートプログラム動作セットをコピーアンドペーストするための方法を示すフロー図を表す。このマシンビジョン検査システムは、撮像部と、この撮像部の視野に1つ以上のワークピースを保持するためのステージと、制御部と、編集部と、ディスプレイと、グラフィカルユーザインタフェース(GUI)と、学習モードと、を含む。学習モードは、パートプログラムを生成するために、マシンビジョン検査システムの動作を制御するユーザ入力を受信すると共に、制御された動作に対応して関連付けられたパートプログラム命令を記録するように動作可能に構成されている。ブロック2710において、マシンビジョン検査システムが提供される。このシステムは、撮像部と、この撮像部の視野に1つ以上のワークピースを保持するためのステージと、制御部と、編集部と、ディスプレイと、グラフィカルユーザインタフェース(GUI)と、学習モードと、を含む。学習モードは、パートプログラムを生成するために、マシンビジョン検査システムの動作を制御するユーザ入力を受信すると共に、制御された動作に対応して関連付けられたパートプログラム命令を記録するように動作可能に構成されている。ブロック2720において、編集部に関連付けられたコピーコマンド及びペーストコマンドが提供される。ブロック2730において、GUIの編集インタフェース部が提供される。この編集インタフェース部は、基礎にあるパートプログラム命令の編集可能パートプログラム表現を表示するように動作可能である。このパートプログラム表現は命令表現を含む。ブロック2740において、編集インタフェース部において基礎にあるパートプログラムのパートプログラム表現が表示される。ブロック2750において、表示されたパートプログラム表現内のコピー位置で少なくとも第1の命令表現を選択して、基礎にある選択した命令コピーセットに関連付けられた選択した命令表現コピーセットを定義する。ブロック2760において、編集部は、選択した命令表現コピーセット又は選択した命令コピーセットの少なくとも一方を対象とするコピーセット修正動作を実行するように動作する。このコピーセット修正動作は、以下のa)からc)のうち少なくとも1つを含む動作によって修正済みの選択した命令表現コピーセットを形成することを含む。a)ペースト位置動作コンテキストと不適合である選択した命令表現コピーセットの要素及び関連付けを修正すること、b)ペースト位置動作コンテキストとの適合性のために必要な要素及び関連付けを選択した命令表現コピーセットに追加すること、又は、c)以下のc1)及びc2)の少なくとも一方を含む動作によって形成された修正済みの選択した命令コピーセットに基づいて、修正済みの選択した命令表現コピーセットを形成すること。c1)命令ペースト位置動作コンテキストと不適合である選択した命令コピーセットの要素及び関連付けを修正すること、もしくはc2)命令ペースト位置動作コンテキストとの適合性のために必要な要素及び関連付けを、選択した命令コピーセットに追加すること。ブロック2770において、編集インタフェース部は、表示されたパートプログラム表現において、選択した命令表現セットをペーストするペースト位置を定義するように動作する。ペースト位置は、基礎にあるパートプログラムにおける命令ペースト位置に関連付けられている。ブロック2780において、編集インタフェース部は、表示されたパートプログラム表現において、選択した命令表現セットをペーストするペースト位置を定義するように動作する。ペースト位置は、基礎にあるパートプログラムにおける命令ペースト位置に関連付けられている。ブロック2780において、この方法は終了する。
上述の様々な実施形態を組み合わせて、更に別の実施形態を提供することができる。本明細書において言及した及び/又は出願データシートに列挙した米国特許、米国特許出願公報、米国特許出願、外国特許、外国特許出願、及び非特許公報、更に、限定ではないが2013年5月13日に出願された米国特許出願第61/822,822号を含めて全てのものは、全体が援用により本願にも含まれるものとする。これらの様々な特許及び出願の概念を用いて更に別の実施形態を提供するために必要な場合は、実施形態の態様は変更可能である。
前述の記載に照らして、実施形態にこれら及び他の変更を行うことができる。一般に、以下の特許請求の範囲において、用いる用語は本明細書及び特許請求の範囲に開示される特定の実施形態に特許請求の範囲を限定するものとして解釈されず、そのような特許請求の範囲の権利が与えられる均等物の全範囲に従う全ての可能な実施形態を包含するものとして解釈される。

Claims (39)

  1. コンピュータ実行可能命令を含むコンピュータ読み取り可能媒体であって、前記命令が、コンピュータにロードされて、マシンビジョン検査システムにおいてパートプログラムを編集する場合にマシンビジョンパートプログラム動作セットをコピーアンドペーストするための方法を前記コンピュータが実行することを可能とするように構成され、前記マシンビジョン検査システムが、撮像部と、前記撮像部の視野に1つ以上のワークピースを保持するためのステージと、制御部と、編集部と、ディスプレイと、グラフィカルユーザインタフェース(GUI)と、学習モードであって、パートプログラムを生成するために、前記マシンビジョン検査システムの動作を制御するユーザ入力を受信すると共に、前記制御された動作に対応して関連付けられたパートプログラム命令を記録するように動作可能に構成された学習モードと、を含み、前記実行される方法が、
    前記編集部に関連付けられたコピーコマンド及びペーストコマンドを提供することと、
    前記GUIの編集インタフェース部を提供することであって、前記編集インタフェース部が、基礎にあるパートプログラム命令の編集可能パートプログラム表現を表示するように動作可能であり、前記パートプログラム表現が命令表現を含むことと、
    前記編集インタフェース部に、基礎にあるパートプログラムのパートプログラム表現を表示することと、
    前記表示されたパートプログラム表現内のコピー位置で少なくとも第1の命令表現を選択して、基礎にある選択した命令コピーセットに関連付けられた選択した命令表現コピーセットを定義することと、
    前記表示されたパートプログラム表現において、前記選択した命令表現セットをペーストするペースト位置を定義するように前記編集インタフェース部を動作させることであって、前記ペースト位置が、前記基礎にあるパートプログラム内の命令ペースト位置に関連付けられている、ことと、
    前記選択した命令表現コピーセット又は前記選択した命令コピーセットの少なくとも一方を対象とするコピーセット修正動作を実行するように前記編集部を動作させることであって、前記コピーセット修正動作が、以下のa)からc)のうち少なくとも1つを含む動作によって修正済みの選択した命令表現コピーセットを形成することを含む、a)ペースト位置動作コンテキストと不適合である前記選択した命令表現コピーセットの要素及び関連付けを修正すること、b)ペースト位置動作コンテキストとの適合性のために必要な要素及び関連付けを前記選択した命令表現コピーセットに追加すること、又は、c)以下のc1)及びc2)の少なくとも一方を含む動作によって形成された修正済みの選択した命令コピーセットに基づいて、前記修正済みの選択した命令表現コピーセットを形成すること、c1)前記命令ペースト位置動作コンテキストと不適合である前記選択した命令コピーセットの要素及び関連付けを修正すること、もしくはc2)前記命令ペースト位置動作コンテキストとの適合性のために必要な要素及び関連付けを前記選択した命令コピーセットに追加することと、
    前記修正済みの選択した命令表現コピーセットを、前記表示されたパートプログラム表現内の前記ペースト位置にペーストすることを含むペースト動作を実行するように前記編集部を動作させることと、
    含む、コンピュータ読み取り可能媒体。
  2. 前記GUIが、前記表示されたパートプログラム表現内の位置の近くに表示される編集コンテキストステータスインジケータを備え、
    前記方法が更に、新たにペーストされた修正済みの選択した命令表現コピーセットが、前記コピー位置からコピーされたにもかかわらず、新たに生成されたか又は挿入された新しい命令のものと同様の編集コンテキストステータスに対応することを示すように前記GUIの前記編集コンテキストステータスインジケータを自動的に動作させることを含む、請求項1に記載のコンピュータ読み取り可能媒体。
  3. 前記編集コンテキストステータスインジケータが、前記表示されたパートプログラム表現内でのその位置に対応した編集コンテキストステータスに応じて色が変わる命令ポインタを備える、請求項2に記載のコンピュータ読み取り可能媒体。
  4. 前記コピーコマンドが、前記選択した命令表現コピーセットに含まれる少なくとも1つの親ノードを自動的に展開して、前記選択した命令表現コピーセットに含まれるその子ノードの全てを表示する動作を含む、請求項1に記載のコンピュータ読み取り可能媒体。
  5. 前記選択した命令表現コピーセットに含まれる前記表示された子ノードが、a)コピーコマンドGUI要素が前記GUIの上に重ねられた場合、又はb)前記コピーコマンドが実行された場合、の少なくとも一方の間に前記コピー位置に表示される、請求項4に記載のコンピュータ読み取り可能媒体。
  6. 前記コピーセット修正動作を実行するように前記編集部を動作させることが、前記コピーコマンドを実行することを含む、請求項4に記載のコンピュータ読み取り可能媒体。
  7. 前記修正済みの選択した命令表現コピーセットを前記ペースト位置にペーストすることが、前記ペーストした修正済みの選択した命令表現コピーセットに含まれる少なくとも1つの親ノードを自動的に展開して前記修正済みの選択した命令表現コピーセットに含まれるその子ノードの全てを表示する動作を含む、請求項1に記載のコンピュータ読み取り可能媒体。
  8. 前記修正済みの選択した命令表現コピーセットを前記ペースト位置にペーストすることが、前記ペーストコマンドを実行することを含む、請求項7に記載のコンピュータ読み取り可能媒体。
  9. 前記コピーセット修正動作の少なくともいくつかが、前記コピーコマンドの実行に応答して自動的に行われる、請求項1に記載のコンピュータ読み取り可能媒体。
  10. 前記コピーセット修正動作が、a)前記選択した命令表現コピーセットに対応する代理データ、又はb)前記選択した命令表現コピーセットといずれかの対応する代理データとの関連付け、の少なくとも一方を除去することを含む、請求項9に記載のコンピュータ読み取り可能媒体。
  11. 前記コピーセット修正動作が、前記対応する代理データ及び/又はその関連付けを除去した後に、前記選択した命令コピーセット又は前記選択した命令表現コピーセットの少なくとも一方のコピーをクリップボードに移動させることを含む、請求項10に記載のコンピュータ読み取り可能媒体。
  12. 前記選択した命令表現コピーセット又は前記関連付けられた基礎にある選択した命令コピーセットの少なくとも一方がプログラムノードを備える、請求項1に記載のコンピュータ読み取り可能媒体。
  13. c1)前記選択した命令コピーセットの要素及び関連付けを修正するステップ、及び/又はa)前記選択した命令表現コピーセットの要素及び関連付けを修正するステップが、基礎にある命令コード及び/又は表示された命令表現におけるそのような要素に関連付けられた、機能の名前、トレランスの名前、ワーク座標系の名前、測定ポイントバッファの名前、又は表示された変数の名前を変更することを含む、請求項1に記載のコンピュータ読み取り可能媒体。
  14. 前記変更が、自動的な変更であるか、又は自動的に表示されるユーザに対する変更プロンプトを含む、請求項13に記載のコンピュータ読み取り可能媒体。
  15. c1)前記選択した命令コピーセットの要素及び関連付けを修正するステップ、及び/又はa)前記選択した命令表現コピーセットの要素及び関連付けを修正するステップが、そのような要素に関連付けられた一意のノード識別子を変更することを含む、請求項1に記載のコンピュータ読み取り可能媒体。
  16. 前記選択した命令表現コピーセットがステップアンドリピートループ内にペーストされた場合、c1)前記選択した命令コピーセットの要素及び関連付けを修正するステップ、及び/又はa)前記選択した命令表現コピーセットの要素及び関連付けを修正するステップが、基礎にある命令コード及び/又は表示された命令表現におけるそのような要素に関連付けられた、機能の名前、トレランスの名前、ワーク座標系の名前、測定ポイントバッファの名前、又は表示された変数の名前を変更することを含み、前記変更することが、前記ステップアンドリピートループの動作コンテキストに一致する要素又はフォーマットを変更又は追加することを更に含む、請求項1に記載のコンピュータ読み取り可能媒体。
  17. ステップc1)及び/又はステップa)が、表示された要素の名前を、指数カッコを含むように変更することを含み、このカッコが、前記ステップアンドリピートループの前記動作コンテキストにおける、様々な配列位置又はループ繰り返し指数を保持するために用いられるフォーマット要素である、請求項16に記載のコンピュータ読み取り可能媒体。
  18. 前記変更が、自動的な変更であるか、又は自動的に表示されるユーザに対する変更プロンプトを含む、請求項17に記載のコンピュータ読み取り可能媒体。
  19. 前記選択した命令表現コピーセットが、ステップアンドリピートループからコピーされ、ステップアンドリピートループの外側にペーストされた場合、c1)前記選択した命令コピーセットの要素及び関連付けを修正するステップ、及び/又はa)前記選択した命令表現コピーセットの要素及び関連付けを修正するステップが、基礎にある命令コード及び/又は表示された命令表現におけるそのような要素に関連付けられた、機能の名前、トレランスの名前、ワーク座標系の名前、測定ポイントバッファの名前、又は表示された変数の名前、又は前記ステップアンドリピートループの前記動作コンテキストに特定的なフォーマットを変更又は除去することを含む、請求項1に記載のコンピュータ読み取り可能媒体。
  20. ステップc1)及び/又はステップa)が、表示された要素の名前を、指数カッコを削除するように変更することを更に含み、このカッコが、前記ステップアンドリピートループの前記動作コンテキストにおける様々な配列位置又はループ繰り返し指数を保持するために用いられるフォーマット要素である、請求項19に記載のコンピュータ読み取り可能媒体。
  21. c1)前記選択した命令コピーセットの要素及び関連付けを修正するステップ、及び/又はa)前記選択した命令表現コピーセットの要素及び関連付けを修正するステップが、そのような要素を排除することを含む、請求項1に記載のコンピュータ読み取り可能媒体。
  22. 前記編集部が、前記修正済みの選択した命令コピーセットを前記基礎にあるパートプログラム内の前記命令ペースト位置にペーストすることを含むペースト動作を実行するように構成されている、請求項1に記載のコンピュータ読み取り可能媒体。
  23. 前記編集部が、前記コピーコマンドを実行するように前記GUIを動作させるように構成され、前記コピーコマンドが前記選択した命令表現コピーセット及び/又は前記関連付けられた基礎にある選択した命令コピーセットを対象とする、請求項1に記載のコンピュータ読み取り可能媒体。
  24. 前記コピーセット修正動作の少なくともいくつかが、前記ペーストコマンドの実行に応答して自動的に行われる、請求項1に記載のコンピュータ読み取り可能媒体。
  25. 前記コピーセット修正動作が、a)前記選択した命令表現コピーセットと対応する代理データ記憶アドレスもしくは位置との間の関連付け、又はb)機能の名前、トレランスの名前、ワーク座標系の名前、測定ポイントバッファの名前、もしくは表示された変数の名前、の少なくとも一方を追加又は変更することを含む、請求項24に記載のコンピュータ読み取り可能媒体。
  26. 前記コピーセット修正動作が、前記選択した命令コピーセット又は前記選択した命令表現コピーの少なくとも一方のコピーを、クリップボードから前記ペースト又は命令ペースト位置に移動させることを含む、請求項24に記載のコンピュータ読み取り可能媒体。
  27. 前記コピーコマンド及び/又はペーストコマンドが前記GUIに表示可能であり、前記コマンドが、前記対応する動作を活性化して、前記選択した命令表現コピーセット及び/又は前記関連付けられた基礎にある選択した命令コピーセットを対象とする前記コピーセット修正動作を提供するように、ユーザによって選択可能及び/又は実行可能である、請求項1に記載のコンピュータ読み取り可能媒体。
  28. 前記編集インタフェース部が、前記選択した命令表現コピーセット及び/又は前記関連付けられた基礎にある選択した命令コピーセット及び/又はそれらを修正したものを対象として、前記コピーコマンドを選択及び/又は実行するように動作可能であり、その際に、前記GUIの前記編集インタフェース部において前記表現コピーセット及び/又は前記関連付けられた基礎にある選択した命令コピーセットを選択し、前記選択した命令表現コピーセット及び/又は前記関連付けられた基礎にある選択した命令コピーセットに対応する前記コピーコマンドを少なくとも含むメニューを表示するように前記GUIを動作させ、前記表示されたメニューにおいて前記コピーコマンドを選択する、請求項1に記載のコ
    ンピュータ読み取り可能媒体。
  29. 前記編集インタフェース部が、前記選択した命令表現コピーセット及び/又は前記関連付けられた基礎にある選択した命令コピーセット及び/又はそれらを修正したものを対象として、前記ペーストコマンドを選択及び/又は実行するように動作可能であり、その際に、カーソル又は前記GUIの他の編集位置インジケータを前記パートプログラム表現内の前記ペースト位置に位置決めし、前記選択した命令表現コピーセット及び/又は前記関連付けられた基礎にある選択した命令コピーセット又はそれらを修正したものに対応する前記ペーストコマンドを少なくとも含むメニューを前記クリップボード上に表示するように前記GUIを動作させ、前記表示されたメニューにおいて前記ペーストコマンドを選択する、請求項1に記載のコンピュータ読み取り可能媒体。
  30. 前記基礎にあるパートプログラム命令がマークアップ言語で書かれている、請求項1に記載のコンピュータ読み取り可能媒体。
  31. マシンビジョン検査システムにおいてパートプログラムを編集する場合にマシンビジョンパートプログラム動作セットをコピーアンドペーストするための方法であって、前記マシンビジョン検査システムが、撮像部と、前記撮像部の視野に1つ以上のワークピースを保持するためのステージと、制御部と、編集部と、ディスプレイと、グラフィカルユーザインタフェース(GUI)と、学習モードであって、パートプログラムを生成するために、前記マシンビジョン検査システムの動作を制御するユーザ入力を受信すると共に、前記制御された動作に対応して関連付けられたパートプログラム命令を記録するように動作可能に構成された、学習モードと、を含み、前記実行方法が、
    表示されたパートプログラム表現内のコピー位置で少なくとも第1の命令表現を選択して、基礎にある選択した命令コピーセットに関連付けられた選択した命令表現コピーセットを定義することと、
    前記選択した命令表現コピーセット又は前記基礎にある選択した命令コピーセットの少なくとも一方のコピーを生成するコピー動作を開始するように前記GUIを動作させることと、
    コピー動作を自動的に実行して、前記選択した命令表現コピーセット又は前記選択した命令コピーセットの少なくとも一方を対象とするコピーセット修正動作の第1のサブセットを実行し、これによって、前記選択した命令表現コピーセット及び/又は前記基礎にある選択した命令コピーセットの部分的に修正したものを生成することであって、前記コピーセット修正動作の前記第1のサブセットが、前記コピー位置での第1の動作コンテキストに特定的な要素を対象とし、a)関連付けられた代理データ及び/又はその前記コピーセット(複数のコピーセット)との関連付けを排除すること、又はb)新しいか又は変更した一意のノード識別子を提供すること、の少なくとも一方を含む、ことと、
    前記表示されたパートプログラム表現において、前記選択した命令表現コピーセットをペーストするペースト位置を定義することであって、前記ペースト位置が、前記基礎にあるパートプログラム内の命令ペースト位置に関連付けられている、ことと、
    前記選択した命令表現コピーセット又は前記基礎にある選択した命令コピーセットの前記部分的に修正したものの少なくとも一方を対象とするペースト動作を開始するように、前記GUIを動作させることと、
    ペースト動作を自動的に実行して、前記選択した命令表現コピーセット又は前記選択した命令コピーセットの少なくとも一方の前記部分的に修正したものを対象とする前記コピーセット修正動作の第2のサブセットを実行し、これによって、完全に修正済みの選択した命令表現コピーセット及び/又は完全に修正済みの選択した命令コピーセットを生成することであって、前記コピーセット修正動作の前記第2のサブセットが、前記ペースト位置での第2の動作コンテキストに特定的な要素を対象とし、以下のa)からc)のうち少なくとも1つを含む、a)前記ペースト位置動作コンテキストと不適合である前記選択した命令表現コピーセットの要素及び関連付けを修正すること、b)前記ペースト位置動作コンテキストとの適合性のために必要な要素及び関連付けを前記選択した命令表現コピーセットに追加すること、又はc)以下のc1)又はc2)の少なくとも一方を含む動作によって形成された修正済みの選択した命令コピーセットに基づいて、前記修正済みの選択した命令表現コピーセットを形成すること、c1)前記命令ペースト位置動作コンテキストと不適合である前記選択した命令コピーセットの要素及び関連付けを修正すること、もしくはc2)前記命令ペースト位置動作コンテキストとの適合性のために必要な要素及び関連付けを前記選択した命令コピーセットに追加することと、
    含む、方法。
  32. 前記コピー動作を開始するように前記GUIを動作させることが、前記選択した命令表現コピーセットを対象とするコピーコマンドウィジェットを活性化することを含み、前記ペースト動作を開始するように前記GUIを動作させることが、前記ペースト位置を対象とするペーストコマンドウィジェットを活性化することを含む、請求項31に記載の方法。
  33. 前記コピーセット修正動作の前記第1のサブセットから得られた前記選択した命令表現コピーセット又は前記基礎にある選択した命令コピーセットの前記部分的に修正したものが、クリップボード上に記憶され、前記コピーセット修正動作の前記第2のサブセットによって前記クリップボードから自動的に検索される、請求項31に記載の方法。
  34. 前記ペースト動作を自動的に実行するステップが、前記完全に修正済みの選択した命令表現コピーセットを前記パートプログラム表現内の前記ペースト位置にペーストすること、及び/又は前記完全に修正済みの選択した命令コピーセットを前記基礎にあるパートプログラム内の前記命令ペースト位置にペーストすることを更に含む、請求項31に記載の方法。
  35. 前記GUIが、前記表示されたパートプログラム表現内の位置の近くに表示される編集コンテキストステータスインジケータを備え、
    前記方法が更に、前記ペーストされた完全に修正済みの選択した命令表現コピーセットが、前記コピー位置からコピーされたにもかかわらず、新たに生成されたか又は挿入された新しい命令のものと同様の編集コンテキストステータスに対応することを示すように前記GUIの前記編集コンテキストステータスインジケータを自動的に動作させることを含む、請求項31に記載の方法。
  36. 前記コピー動作が、前記選択した命令表現コピーセットに含まれる少なくとも1つの親ノードを自動的に展開して、前記選択した命令表現コピーセットに含まれるその子ノードの全てを表示することを含む、請求項31に記載の方法。
  37. 前記選択した命令表現コピーセットに含まれる前記ノードが前記GUIにおいて強調表示される、請求項36に記載の方法。
  38. 前記選択した命令表現コピーセット内の全てのノードは、コピーコマンドウィジェットが選択されているか又は重ねられているが前記コピーコマンドウィジェットが実行される前に表示される、請求項36に記載の方法。
  39. 前記ペースト動作が、前記ペーストされた完全に修正済みの選択した命令表現コピーセットに含まれる少なくとも1つの親ノードを自動的に展開して、前記完全に修正済みの選択した命令表現コピーセットに含まれるその子ノードの全てを表示することを含む、請求項31に記載の方法。
JP2016514051A 2013-05-13 2014-05-13 動作コンテキストを意識したコピーアンドペースト機能を含むマシンビジョンシステムプログラム編集環境 Active JP6386540B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361822822P 2013-05-13 2013-05-13
US61/822,822 2013-05-13
PCT/US2014/037931 WO2014186419A1 (en) 2013-05-13 2014-05-13 Machine vision system program editing environment including operating context aware copy and paste feature

Publications (2)

Publication Number Publication Date
JP2016521369A JP2016521369A (ja) 2016-07-21
JP6386540B2 true JP6386540B2 (ja) 2018-09-05

Family

ID=51865779

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016514051A Active JP6386540B2 (ja) 2013-05-13 2014-05-13 動作コンテキストを意識したコピーアンドペースト機能を含むマシンビジョンシステムプログラム編集環境

Country Status (5)

Country Link
US (1) US9733902B2 (ja)
JP (1) JP6386540B2 (ja)
CN (1) CN105264474B (ja)
DE (1) DE112014002389B4 (ja)
WO (1) WO2014186419A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170206064A1 (en) * 2013-03-15 2017-07-20 JIBO, Inc. Persistent companion device configuration and deployment platform
US9235337B2 (en) * 2013-05-09 2016-01-12 Mitutoyo Corporation System, GUI and method for editing step and repeat operation instructions in a machine vision inspection system
US10192283B2 (en) * 2014-12-22 2019-01-29 Cognex Corporation System and method for determining clutter in an acquired image
US10203850B2 (en) * 2015-02-27 2019-02-12 Mitsubishi Electric Corporation Data editing apparatus, data editing method, and data editing program
CN107368465B (zh) * 2016-05-13 2020-03-03 北京京东尚科信息技术有限公司 一种用于流式文档的截图类笔记处理的系统及方法
KR102645817B1 (ko) * 2016-12-06 2024-03-08 한화로보틱스 주식회사 로봇의 비헤이비어 관리 방법 및 장치
CN106776070A (zh) * 2016-12-15 2017-05-31 北京小米移动软件有限公司 执行粘贴操作的方法及装置
CN108509103A (zh) * 2017-02-27 2018-09-07 华为技术有限公司 文本复制方法和触屏设备
JP6564431B2 (ja) * 2017-08-28 2019-08-21 ファナック株式会社 工作機械および軸移動制御方法
US10782963B2 (en) * 2017-09-11 2020-09-22 Siemens Industry Software GmbH Introducing artifact information system and method
US20190213249A1 (en) * 2018-01-05 2019-07-11 International Business Machines Corporation Intelligent Copy and Paste
US11562505B2 (en) 2018-03-25 2023-01-24 Cognex Corporation System and method for representing and displaying color accuracy in pattern matching by a vision system
CN110609891B (zh) * 2019-09-18 2021-06-08 合肥工业大学 一种基于上下文感知图神经网络的视觉对话生成方法
US20210141503A1 (en) * 2019-11-07 2021-05-13 Baker Hughes Oilfield Operations Llc Human machine interface generation for industrial monitoring
CN113238686B (zh) * 2021-04-20 2023-11-03 维沃移动通信(杭州)有限公司 文档处理方法、装置和电子设备
CN113238742B (zh) * 2021-06-17 2024-04-12 南方电网科学研究院有限责任公司 一种直流控保页面程序修改回放方法、装置、终端及介质
CN115688695A (zh) * 2021-07-30 2023-02-03 腾讯科技(深圳)有限公司 协同操作处理方法、装置、设备以及介质

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5121498A (en) 1988-05-11 1992-06-09 Massachusetts Institute Of Technology Translator for translating source code for selective unrolling of loops in the source code
JPH04102926A (ja) 1990-08-22 1992-04-03 Nec Corp 繰り返しループの展開最適化方式
US5481712A (en) 1993-04-06 1996-01-02 Cognex Corporation Method and apparatus for interactively generating a computer program for machine vision analysis of an object
US5797013A (en) 1995-11-29 1998-08-18 Hewlett-Packard Company Intelligent loop unrolling
ATE208515T1 (de) * 1996-02-05 2001-11-15 Decamps Viviane Renee Verfahren zur verwendung eines computers zum verwalten des informationsaustausches zum erstellen von formularen
US6026240A (en) 1996-02-29 2000-02-15 Sun Microsystems, Inc. Method and apparatus for optimizing program loops containing omega-invariant statements
US6035125A (en) 1997-07-25 2000-03-07 International Business Machines Corporation Method and system for generating compact code for the loop unrolling transformation
US6466240B1 (en) * 1998-07-08 2002-10-15 Vadim Maslov Method for visually writing programs or scripts that transform structured text presented as a tree
US6311320B1 (en) 1998-12-07 2001-10-30 Lsi Logic Corporation Alterable scripting tool and method
US6668053B1 (en) 1999-09-21 2003-12-23 Verizon Laboratories Inc. Process for generating recent change commands for various stored program telephone switches
US6944821B1 (en) 1999-12-07 2005-09-13 International Business Machines Corporation Copy/paste mechanism and paste buffer that includes source information for copied data
US6542180B1 (en) 2000-01-07 2003-04-01 Mitutoyo Corporation Systems and methods for adjusting lighting of a part based on a plurality of selected regions of an image of the part
JP2003015884A (ja) * 2001-07-04 2003-01-17 Denso Corp 重複定義チェック装置及びプログラム
US7299419B2 (en) * 2001-09-28 2007-11-20 Business Objects, S.A. Apparatus and method for combining discrete logic visual icons to form a data transformation block
GB0206285D0 (en) * 2002-03-16 2002-05-01 Ibm Apparatus method and computer program for providing a GUI representation of relationships between a set of resources of a data processing system
US7526347B2 (en) * 2003-02-18 2009-04-28 Fisher-Rosemount Systems, Inc. Security for objects in a process plant configuration system
US7779356B2 (en) * 2003-11-26 2010-08-17 Griesmer James P Enhanced data tip system and method
US7464370B2 (en) * 2003-12-04 2008-12-09 International Business Machines Corporation Creating a method from a block of code
US7324682B2 (en) 2004-03-25 2008-01-29 Mitutoyo Corporation System and method for excluding extraneous features from inspection operations performed by a machine vision inspection system
US20050229113A1 (en) 2004-04-09 2005-10-13 Alcatel Highlighted objects window
US7454053B2 (en) 2004-10-29 2008-11-18 Mitutoyo Corporation System and method for automatically recovering video tools in a vision system
US7590276B2 (en) * 2004-12-20 2009-09-15 Mitutoyo Corporation System and method for programming interrupting operations during moving image acquisition sequences in a vision system
US8042065B2 (en) 2005-11-17 2011-10-18 Microsoft Corporation Smart copy/paste of graphical nodes
US20070156775A1 (en) 2005-12-29 2007-07-05 Fischer Iija Metadata transformation in copy and paste scenarios between heterogeneous applications
US20070234278A1 (en) * 2006-03-02 2007-10-04 Microsoft Corporation Managing source code in a model-based development environment
US8898633B2 (en) * 2006-08-24 2014-11-25 Siemens Industry, Inc. Devices, systems, and methods for configuring a programmable logic controller
US7668608B2 (en) * 2006-09-01 2010-02-23 Fisher-Rosemount Systems, Inc. Graphical programming language object editing and reporting tool
US7769222B2 (en) * 2006-10-27 2010-08-03 Mitutoyo Corporation Arc tool user interface
US8429551B2 (en) 2007-02-15 2013-04-23 Microsoft Corporation Application-based copy and paste operations
US8312427B2 (en) * 2007-05-15 2012-11-13 International Business Machines Corporation Selecting a set of candidate code expressions from a section of program code for copying
US8392830B2 (en) * 2007-07-04 2013-03-05 International Business Machines Corporation Method and system for code editing
US8245186B2 (en) * 2008-04-03 2012-08-14 Microsoft Corporation Techniques for offering and applying code modifications
US9292478B2 (en) * 2008-12-22 2016-03-22 International Business Machines Corporation Visual editor for editing complex expressions
US8111938B2 (en) 2008-12-23 2012-02-07 Mitutoyo Corporation System and method for fast approximate focus
US8392380B2 (en) 2009-07-30 2013-03-05 Microsoft Corporation Load-balancing and scaling for analytics data
JP2011059918A (ja) * 2009-09-09 2011-03-24 Mitsubishi Electric Corp バージョン管理装置及びバージョン管理方法
US8910113B2 (en) * 2009-09-22 2014-12-09 Adobe Systems Incorporated Methods and systems for visual code refactoring
US8111905B2 (en) 2009-10-29 2012-02-07 Mitutoyo Corporation Autofocus video tool and method for precise dimensional inspection
US8271895B2 (en) * 2010-03-22 2012-09-18 Mitutoyo Corporation GUI for programming step and repeat operations in a machine vision inspection system
US8843892B2 (en) * 2010-12-03 2014-09-23 Adobe Systems Incorporated Visual representations of code in application development environments
US8806430B1 (en) * 2011-06-08 2014-08-12 The Mathworks, Inc. Renaming instances of an entity in a coding environment
US9013574B2 (en) 2011-11-15 2015-04-21 Mitutoyo Corporation Machine vision system program editing environment including synchronized user interface features
US8957960B2 (en) 2011-11-15 2015-02-17 Mitutoyo Corporation Machine vision system program editing environment including real time context generation features
US9081595B1 (en) * 2011-12-06 2015-07-14 The Mathworks, Inc. Displaying violated coding rules in source code
US9710234B2 (en) * 2013-12-26 2017-07-18 International Business Machines Corporation Generating software code

Also Published As

Publication number Publication date
US9733902B2 (en) 2017-08-15
JP2016521369A (ja) 2016-07-21
DE112014002389B4 (de) 2022-08-04
CN105264474B (zh) 2018-10-09
WO2014186419A1 (en) 2014-11-20
DE112014002389T5 (de) 2016-02-18
CN105264474A (zh) 2016-01-20
US20140337775A1 (en) 2014-11-13

Similar Documents

Publication Publication Date Title
JP6386540B2 (ja) 動作コンテキストを意識したコピーアンドペースト機能を含むマシンビジョンシステムプログラム編集環境
JP6122282B2 (ja) リアルタイムコンテキスト生成機能を含むマシンビジョンシステムプログラム編集環境
JP6071453B2 (ja) 同期されたユーザインタフェース機能を含むマシンビジョンシステムプログラム編集環境
JP6418780B2 (ja) マシンビジョン検査システムにおけるステップ・アンド・リピート動作命令編集のためのシステム、guiおよび方法
JP5748518B2 (ja) マシンビジョン検査システムでのステップアンドリピート動作プログラミングのためのgui
JP6071452B2 (ja) マシンビジョンシステムのパートプログラム編集環境内で編集初期化ブロックを利用するシステム及び方法
JP6731478B2 (ja) 一体型の位置合わせプログラムプランニング及び編集機能を含む検査プログラム編集環境
JP6071451B2 (ja) 画像取得動作の連続ストリームが実行モード中に実行されるパートプログラムのマシンビジョンシステム編集環境
CN103176793B (zh) 包含同步用户界面特征的机器视觉系统
US9167215B2 (en) Machine vision system editing environment for a part program in which a continuous stream of image acquisition operations are performed during a run mode
JP6585934B2 (ja) 画像取得動作の連続ストリームが実行モード中に実行されるパートプログラムのマシンビジョンシステム編集環境
JP2015143980A (ja) プログラム可能な計測システムに対するプログラミング環境におけるリモートアクセサリ管理
Room FandPLimitTool

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20160519

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20160519

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170407

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170412

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180502

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180607

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180802

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180809

R150 Certificate of patent or registration of utility model

Ref document number: 6386540

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250