JP6418780B2 - マシンビジョン検査システムにおけるステップ・アンド・リピート動作命令編集のためのシステム、guiおよび方法 - Google Patents

マシンビジョン検査システムにおけるステップ・アンド・リピート動作命令編集のためのシステム、guiおよび方法 Download PDF

Info

Publication number
JP6418780B2
JP6418780B2 JP2014097582A JP2014097582A JP6418780B2 JP 6418780 B2 JP6418780 B2 JP 6418780B2 JP 2014097582 A JP2014097582 A JP 2014097582A JP 2014097582 A JP2014097582 A JP 2014097582A JP 6418780 B2 JP6418780 B2 JP 6418780B2
Authority
JP
Japan
Prior art keywords
repeat
block
editing
independently
gui
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
JP2014097582A
Other languages
English (en)
Other versions
JP2014219415A (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 JP2014219415A publication Critical patent/JP2014219415A/ja
Application granted granted Critical
Publication of JP6418780B2 publication Critical patent/JP6418780B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04847Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/409Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by using manual data input [MDI] or by using control panel, e.g. controlling functions with the panel; characterised by control panel details or by setting parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/18Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/35Nc in input of data, input till input file format
    • G05B2219/35208Object oriented planning
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/36Nc in input of data, input key till input tape
    • G05B2219/36018Language for dimensional measuring, inspection
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/37Measurements
    • G05B2219/37208Vision, visual inspection of workpiece

Landscapes

  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Manufacturing & Machinery (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)

Description

本発明は、一般的にはマシンビジョン検査システムに関し、より具体的には、かかるシステムのためにプログラムされるステップ・アンド・リピート動作をより多用途の編集可能な形態に変換するためにコンピュータ読み取り可能媒体中に具現化されるシステム、GUIおよび方法に関する。
精密マシンビジョン検査システム(または略して「ビジョンシステム」)は、検査対象物の正確な寸法測定値を得るため、および種々のその他の物体特性を検査するために利用できる。かかるシステムは、コンピュータ、カメラ、光学系、および複数の方向に移動して検査対象のワークピースの要素をカメラで走査可能にするワークステージを含むことができる。商業的に入手できる先行技術システムの1つの例は、イリノイ州Aurora,に所在するMitutoyo America Corporation(MAC)から入手できるQUICK VISION(登録商標)シリーズのPC利用ビジョンシステムおよびQVPAK(登録商標)ソフトウェアである。QUICK VISION(登録商標)シリーズのビジョンシステムおよびQVPAK(登録商標)ソフトウェアの機能および操作は、たとえば、2003年1月に発行されたQVPAK 3D CNC Vision Measuring Machine User's Guideおよび1996年9月に発行されたQVPAK 3D CNC Vision Measuring Machine Operation Guideにおいて説明されている。このシリーズの製品により、たとえば、顕微鏡型光学システムを使用して様々な倍率のワークピースの画像を提供し、また、必要に応じてステージを移動させて、単一のビデオ画像の撮影範囲を超えてワークピースの表面をスキャンすることが可能である。単一のビデオ画像は、一般的に、かかるシステムの希望倍率、測定解像度、および物理的サイズに限界があり、観察または検査対象のワークピースの一部を取り込むのみである。
マシンビジョン検査システムは、一般的に自動ビデオ検査を利用する。米国特許第6,542,180号(‘180特許)は、かかる自動ビデオ検査の種々の特徴を教示している。‘180特許において教示されているように、自動ビデオ検査計測装置は、一般的に、それぞれ特定のワークピース構成について自動検査イベントシーケンスのユーザによる定義を可能にするプログラミング機能を持っている。これは、たとえばテキスト・ベースのプログラミングにより、またはグラフィカル・ユーザ・インタフェース(GUI)を用いてユーザにより行われる一連の検査作業に対応する一連の機械制御命令を記憶することにより検査イベントシーケンスを次々に「学習する」記録モードを通じて、または両方の方法の組み合わせにより実現することができる。かかる記録モードは、しばしば、「学習モード」または「訓練モード」といわれる。検査イベントシーケンスが「学習モード」において定義された後、かかるシーケンスを使用して「実行モード」中にワークピースの画像を自動的に取得すること(かつ、続いて解析または検査すること)ができる。
具体的な検査イベントシーケンス(すなわち、各画像を取得する方法および取得した各画像を解析/検査する方法)を含む機械制御命令は、一般的に、特定のワークピース構成に固有の「パートプログラム」または「ワークピース・プログラム」として記憶される。たとえば、パートプログラムは、カメラをワークピースに対して位置決めする方法、照明レベル、倍率レベル等の各画像を取得する方法を定義する。さらに、パートプログラムは、たとえば、エッジ/境界検出ビデオツールのような1つまたは複数のビデオツールを使用することにより、取得した画像を解析/検査する方法を定義する。
検査および/またはその他の機械制御操作のために、ビデオツール(略して「ツール」)およびその他のGUI機能を手作業により設定することができる。種々のビデオツールにより行われる測定/解析動作を包含する自動検査プログラム、または「パートプログラム」を作成するために、ビデオツールの設定パラメータおよび動作も学習モード中に記録することができる。ビデオツールは、たとえば、エッジ/境界検出ツール、オートフォーカスツール、形状またはパターン照合ツール、寸法測定ツール等を含み得る。その他のGUI機能は、データ解析、ステップ・アンド・リピート・ループ・プログラミング(たとえば、米国特許第8,271,895号(‘895特許)において開示されているような)等に関するダイアログ・ボックスを含み得る。たとえば、このようなツールおよびGUI機能は、前述したQUICK VISION(登録商標)シリーズのビジョンシステムおよび関連QVPAK(登録商標)ソフトウェア等の商業的に入手できる種々のマシンビジョン検査システムにおいて通常使用されている。
ステップ・アンド・リピート・プログラミングのために現在利用できる機能およびGUI制御手段は、限られている。以下、簡単に説明するが、マシンビジョン検査システムの場合、ステップ・アンド・リピート・プログラミングは、アレイ状に配置されたワークピース要素(たとえば一定間隔の格子位置に配置されたワークピース要素)中のN個の位置でN回反復実行される撮像/解析動作のプログラミングを含む。たとえば、ワークピースにアレイ配置された丸穴が8個出現することになっている場合、ステップ・アンド・リピート・プログラミングは、8組の命令群を個々に定義する必要なしに、この穴を撮像/解析する1ブロックの命令をユーザが定義することを可能とし、次にそれが8回実行される。しかし、配列中の要素のそれぞれを撮像/解析するためにワークステージをシフトしつつ、1組の命令群が複数回実行されるべき場合、現段階では、比較的不慣れのユーザ(基礎となっているパートプログラム言語におけるテキスト・ベースのコンピュータ・プログラミングに熟練していないユーザ)にとって、これらの要素の特定の1つに関して命令を編集または調整する使い勝手の良い方法がない。
本発明は、コンピュータ読み取り可能媒体中に具体化されるシステム、GUIおよび方法の提供を目指している。これらは、精密マシンビジョン検査システムのパートプログラムにおいて、ステップ・アンド・リピート動作命令を、多用途で編集可能な形態への、直感的で柔軟かつ強固な変換を可能にする。
この概要の目的は、詳細な説明においてさらに詳しく説明されるコンセプトの選択を単純化された形態で紹介することである。この概要は、請求される主題の重要な特徴を示すことも、請求される主題の範囲を決定する一助として用いることも意図していない。
種々の実施形態において、学習モードでパートプログラムを作成することができ、かつ以前に作成したパートプログラムを、実行モードで実行することができるマシンビジョン検査システムを提供する。このシステムは、撮像部、1つまたは複数のワークピースを撮像部の視野中に保持するステージ、制御部、およびグラフィカル・ユーザ・インタフェース(GUI)を含む。このシステムは、さらに、学習モードでパートプログラムを編集するために動作可能な編集部を含む。この編集部は、GUIに表示される編集インタフェース部を含んでいる。このシステムは、さらに、パートプログラムのステップ・アンド・リピート・プログラミング要素を学習モードで作成及び定義するために動作できるように構成されるステップ・アンド・リピート・ループ・ジェネレータを含む。ステップ・アンド・リピート・ループ・ジェネレータは、ワークピースの要素の配列中に定義されたN個の位置においてN回実行される検査命令の反復動作ブロックを定義する。このシステムは、さらに、学習モードにおいて、定義されたステップ・アンド・リピート・プログラミング要素を対象とするステップ・アンド・リピート変換動作を行うことができるように構成されるステップ・アンド・リピート・ループ・コンバータを含む。この変換動作は、以下を含む:a)定義されたステップ・アンド・リピート・プログラミング要素の反復動作ブロックにおいて定義された検査命令を自動的に複製してN個の独立編集可能コードブロックを作成すること。これらのブロックのそれぞれは、反復動作ブロックにおいて定義された検査命令の独立編集可能な実質的な複製を含み、N個の位置のうちの当該独立編集可能なコードブロックが対応する1つの位置においてそれぞれ実行されることとなる。b)GUIの編集インタフェース部においてN個の独立編集可能コードブロックの表現を自動的に作成すること。このN個の独立編集可能なコードブロックの表現のそれぞれは、反復動作ブロックのその複製されたインスタンスに含まれている動作の編集可能表現を含んでいる。c)GUIに表示された編集インタフェース部において編集可能要素として定義されたステップ・アンド・リピート・プログラミング要素を削除すること。本明細書において使用される場合、実質的な複製という表現は、検査命令またはその表現の全詳細の文字通りまたは正確な複製を必ずしも意味しない(一部の実施形態においては、そのような場合もあるが)。それは、むしろ、反復動作ブロックの本質的または基本的動作を複製する命令機能の複製を少なくとも意味する。
種々の実施形態において、N個の独立編集可能コードブロックの作成は、各独立編集可能コードブロックについて、当該独立編集可能コードブロックを実行する位置をそれぞれ決定する独立編集可能命令の作成を含む。
独立編集可能コードブロックは、マークアップ言語(たとえば、HTML、XMLまたはそれから派生されたもの)で書かれたマシン実行可能コード命令およびGUI(たとえば編集部)に表示される関連編集可能命令表現を含み得る。本出願において使用されるコードブロックという用語は、記述または文脈により別段の指示がない限り、これらの関連する特徴の両方を含み得る。種々の実施形態において、N個の独立編集可能コードブロックの作成は、各独立編集可能コードブロックについて、当該コードブロックに関する少なくとも1つの固有の識別子(たとえば、固有のコードブロック名またはノード番号等)を作成することを含む。本出願において言及されるその他の種類の命令および命令表現に共通して、かかる固有識別子は、種々の実施形態において、動作、および/またはユーザインタフェース・ウィンドウ同期動作、および/またはコードおよび表現の関連づけを設定する一定のコンテキストをサポートするために割り当て、かつ、使用することができる。一実施形態では、2011年11月15日に提出された「Machine Vision System Program Editing Environment Including Real Time Context Generation Features」と題する同時係属・同時譲渡米国特許出願第13/297,232号(‘232出願)および/または2012年11月13日に提出された「Machine Vision System Program Editing Environment Including Synchronized User Interface Features」と題する同時係属・同時譲渡米国特許出願第13/676,061号(‘061出願)において記述されているように、このような関連づけおよび機能を実現することができる。
種々の実施形態において、独立編集可能コードブロック(たとえば、命令表現および/またはコード命令)のそれぞれは、1つまたは複数の子ノード等を有する1つまたは複数の親ノード等を含むツリー構造に配置することができる。GUI上の命令表現を編集するユーザ入力は、当該命令表現のいずれかの追加、削除および変更の1つまたは複数を含むことができる。一部の実施形態では、ノードの一部はビデオツールに対応し、これらのツールのそれぞれは、形状測定動作または撮像(たとえば、自動焦点)動作、または画像処理動作等のような個別動作を対象とする命令の部分集合を含む。種々の実施形態において、独立編集可能コードブロックのそれぞれに、固有のノード名、変数名、および/またはコードブロック名を割り当てることができる。一部の実施形態または状況における名称は、当該ノードまたはコードブロックが編集されたとき、変更可能である。
種々の実施形態において、コンピュータ実行可能命令を含むコンピュータ読み取り可能媒体を利用する。これらの命令は、ステップ・アンド・リピート・プログラミング要素において定義される検査動作の反復動作ブロックのN個の独立編集可能なインスタンスを作成する方法のコンピュータによる実行を可能とするためにコンピュータにロードされるように構成される。この場合、反復動作ブロックは、マシンビジョン検査システムにおいてワークピース要素の配列中のN個の位置においてN回実行されることになる。Nは、1より大きい整数である。このマシンビジョン検査システムは、撮像部、1つまたは複数のワークピースを撮像部の視野中に保持するステージ、制御部、およびグラフィカル・ユーザ・インタフェース(GUI)を含む。実行される方法は、定義されたステップ・アンド・リピート・プログラミング要素の表現をGUIの編集インタフェース部に表示すること、および編集インタフェース部を動作させて定義されたステップ・アンド・リピート・プログラミング要素を対象とする変換コマンドを実行することを含み得る。この変換コマンドは、以下を含む動作を含むことおよび/または実行することができる:a)定義されたステップ・アンド・リピート・プログラミング要素の反復動作ブロックにおいて定義された検査命令を自動的に複製することによりN個の独立編集可能なコードブロックを作成すること。これらの独立編集可能なコードブロックのそれぞれは、反復動作ブロックにおいて定義された検査命令の独立編集可能な実質的な複製を含み、N個の位置のうちの当該独立編集可能なコードブロックが対応する1つの位置においてそれぞれ実行される。b)GUIの編集インタフェース部においてN個の独立編集可能なコードブロックの表現を自動的に表示すること。このN個の独立編集可能なコードブロックの表現のそれぞれは、反復動作ブロックの複製インスタンスに含まれている検査命令の編集可能表現を含んでいる。およびc)GUIの編集インタフェース部において編集可能要素としての定義されたステップ・アンド・リピート・プログラミング要素を削除すること。一部の実施形態では、編集可能要素としての定義されたステップ・アンド・リピート・プログラミング要素を削除することは、定義されたステップ・アンド・リピート・プログラミング要素の表示されている表現を編集インタフェース部から除去することを含む。
種々の実施形態において、N個の独立編集可能なコードブロックの作成は、各独立編集可能なコードブロックについて、当該独立編集可能コードブロックが実行する位置を決定する独立編集可能な命令の作成を含む。それぞれの位置を決定する独立編集可能な命令は、運動制御命令を含み得る。
一部の実施形態では、編集インタフェース部を動作させて変換コマンドを実行することは、GUIの編集インタフェース部において、定義されたステップ・アンド・リピート・プログラミング要素の表現を選択すること、GUIを動作させて選択された表現に対応する複数の編集コマンドを含むメニューを表示させること、および表示されたメニューから変換コマンドを選択することを含む。
一部の実施形態またはインスタンスでは、実行される方法は、さらに、以下のいずれかにより、定義されたステップ・アンド・リピート・プログラミング要素を与えることを含み得る:a)GUIを動作させてステップ・アンド・リピート・プログラミング要素を作成し、かつ、その反復動作ブロックおよびN個の位置を定義するそのパラメータを定義すること、およびb)前もって作成されているパーツプログラミング(定義されたステップ・アンド・リピート・プログラミング要素を含む)を開き、以前に作成された部品プログラムの表現をGUIの編集インタフェース部に表示すること。
種々の実施形態またはインスタンスにおいて、実行される方法は、さらに、GUI経由でユーザ編集入力(たとえば命令を追加すること、命令を抹消すること、および命令を変更すること)を与えて独立編集可能なコードブロックの1つを編集すること、およびその結果の独立編集可能なコードブロックを編集された状態でパートプログラムに記録することを含み得る。この編集入力は、必要な場合、独立編集可能コードブロックの1つを消去することができる。独立編集可能コードブロックの編集は、その他の独立編集可能コードブロックに影響を及ぼさない。
一部の実施形態において、N個の独立編集可能なコードブロックの作成は、各独立編集可能なコードブロックについて、当該コードブロックに関する少なくとも1つの固有の識別子(たとえば、固有のコードブロック名またはノード番号等)を作成することを含む。以下においてさらに詳しく説明するように、かかる固有識別子は、一部の実施形態において、動作、および/またはユーザインタフェース・ウィンドウ同期動作、および/またはコードおよび表現の関連づけを設定する一定のコンテキストをサポートするために使用することができる。
汎用精密マシンビジョン検査システムの種々の典型的構成要素を示す図である。 図1のシステムと同様なマシンビジョン検査システムの制御システム部およびビジョン構成要素部のブロック・ダイアグラムであり、この発明による種々の実施形態において使用できるモジュールおよび機能を含んでいる。 図1のシステムと同様なマシンビジョン検査システムの制御システム部およびビジョン構成要素部のブロック・ダイアグラムであり、この発明による種々の実施形態において使用できるモジュールおよび機能を含んでいる。 編集インタフェース、すなわちGUIの図であり、独立編集可能インスタンスの編集においてユーザを支援するために構成された種々のウィンドウ、メニューおよびツールバーを含んでいる。 編集インタフェース、すなわちGUIの図であり、命令の反復動作ブロックを含むステップ・アンド・リピート・プログラミング要素の表現およびステップ・アンド・リピート変換動作(これは、本明細書において開示される原理に従って、ステップ・アンド・リピート要素を、その反復動作ブロックの独立編集可能インスタンスを含むコードブロックにより置き換える)の一実施形態の表現のほか、独立編集可能インスタンスの編集においてユーザを支援するために構成された種々のウィンドウ、メニューおよびツールバーを含んでいる。 編集インタフェース、すなわちGUIの図であり、命令の反復動作ブロックを含むステップ・アンド・リピート・プログラミング要素の表現およびステップ・アンド・リピート変換動作(これは、本明細書において開示される原理に従って、ステップ・アンド・リピート要素を、その反復動作ブロックの独立編集可能インスタンスを含むコードブロックにより置き換える)の一実施形態の表現のほか、独立編集可能インスタンスの編集においてユーザを支援するために構成された種々のウィンドウ、メニューおよびツールバーを含んでいる。 編集インタフェース、すなわちGUIの図であり、命令の反復動作ブロックを含むステップ・アンド・リピート・プログラミング要素の表現およびステップ・アンド・リピート変換動作(これは、本明細書において開示される原理に従って、ステップ・アンド・リピート要素を、その反復動作ブロックの独立編集可能インスタンスを含むコードブロックにより置き換える)の一実施形態の表現のほか、独立編集可能インスタンスの編集においてユーザを支援するために構成された種々のウィンドウ、メニューおよびツールバーを含んでいる。 編集インタフェース、すなわちGUIの図であり、独立編集可能インスタンスの編集においてユーザを支援するために構成された種々のウィンドウ、メニューおよびツールバーを含んでいる。 編集インタフェース、すなわちGUIの図であり、独立編集可能インスタンスの編集においてユーザを支援するために構成された種々のウィンドウ、メニューおよびツールバーを含んでいる。 編集インタフェース、すなわちGUIの図であり、独立編集可能インスタンスの編集においてユーザを支援するために構成された種々のウィンドウ、メニューおよびツールバーを含んでいる。 編集インタフェース、すなわちGUIの図であり、独立編集可能インスタンスの編集においてユーザを支援するために構成された種々のウィンドウ、メニューおよびツールバーを含んでいる。 編集インタフェース、すなわちGUIの図であり、独立編集可能インスタンスの編集においてユーザを支援するために構成された種々のウィンドウ、メニューおよびツールバーを含んでいる。 ユーザインタフェースの図であり、図3A−3Iに対応するステップ・アンド・リピート・プログラミング要素の反復動作ブロック命令およびその他のパラメータを定義するために使用されるワークピースの画像を含んでいる。 ユーザインタフェースの図であり、図3A−3Iに対応するステップ・アンド・リピート・プログラミング要素の反復動作ブロック命令およびその他のパラメータを定義するために使用されるワークピースの画像を含んでいる。 ユーザインタフェースの図であり、図3A−3Iに対応するステップ・アンド・リピート・プログラミング要素の反復動作ブロック命令およびその他のパラメータを定義するために使用されるワークピースの画像を含んでいる。 ユーザインタフェースの図であり、図3A−3Iに対応するステップ・アンド・リピート・プログラミング要素の反復動作ブロック命令およびその他のパラメータを定義するために使用されるワークピースの画像を含んでいる。 ユーザインタフェースの図であり、図3A−3Iに対応するステップ・アンド・リピート・プログラミング要素の反復動作ブロック命令およびその他のパラメータを定義するために使用されるワークピースの画像を含んでいる。 ユーザインタフェースの図であり、図3A−3Iに対応するステップ・アンド・リピート・プログラミング要素の反復動作ブロック命令およびその他のパラメータを定義するために使用されるワークピースの画像を含んでいる。 図3A〜3Iおよび/または図4A〜4Fに示された動作に関する動作に関連してユーザインタフェースに追加的および選択的に表示され得る種々のウィンドウの図である。 図3A〜3Iおよび/または図4A〜4Fに示された動作に関する動作に関連してユーザインタフェースに追加的および選択的に表示され得る種々のウィンドウの図である。 図3A〜3Iおよび/または図4A〜4Fに示された動作に関する動作に関連してユーザインタフェースに追加的および選択的に表示され得る種々のウィンドウの図である。 図3A〜3Iおよび/または図4A〜4Fに示された動作に関する動作に関連してユーザインタフェースに追加的および選択的に表示され得る種々のウィンドウの図である。 図3A〜3Iおよび/または図4A〜4Fに示された動作に関する動作に関連してユーザインタフェースに追加的および選択的に表示され得る種々のウィンドウの図である。 図3A〜3Iおよび/または図4A〜4Fに示された動作に関する動作に関連してユーザインタフェースに追加的および選択的に表示され得る種々のウィンドウの図である。 図3A〜3Iおよび/または図4A〜4Fに示された動作に関する動作に関連してユーザインタフェースに追加的および選択的に表示され得る種々のウィンドウの図である。 図3A〜3Iおよび/または図4A〜4Fに示された動作に関する動作に関連してユーザインタフェースに追加的および選択的に表示され得る種々のウィンドウの図である。 図3A〜3Iおよび/または図4A〜4Fに示された動作に関する動作に関連してユーザインタフェースに追加的および選択的に表示され得る種々のウィンドウの図である。 図3A〜3Iおよび/または図4A〜4Fに示された動作に関する動作に関連してユーザインタフェースに追加的および選択的に表示され得る種々のウィンドウの図である。 マークアップ言語で書かれたコード命令の図である。これらは、ステップ・アンド・リピート変換動作(それは、本明細書において開示される原理に従って、ステップ・アンド・リピート要素を、その反復動作ブロックの独立編集可能インスタンスを与えるコード命令ブロックにより置き換える)の一実施形態における命令の反復動作ブロックを含むステップ・アンド・リピート・プログラミング要素に対応している。 マークアップ言語で書かれたコード命令の図である。これらは、ステップ・アンド・リピート変換動作(それは、本明細書において開示される原理に従って、ステップ・アンド・リピート要素を、その反復動作ブロックの独立編集可能インスタンスを与えるコード命令ブロックにより置き換える)の一実施形態における命令の反復動作ブロックを含むステップ・アンド・リピート・プログラミング要素に対応している。 マークアップ言語で書かれたコード命令の図である。これらは、ステップ・アンド・リピート変換動作(それは、本明細書において開示される原理に従って、ステップ・アンド・リピート要素を、その反復動作ブロックの独立編集可能インスタンスを与えるコード命令ブロックにより置き換える)の一実施形態における命令の反復動作ブロックを含むステップ・アンド・リピート・プログラミング要素に対応している。 マークアップ言語で書かれたコード命令の図である。これらは、ステップ・アンド・リピート変換動作(それは、本明細書において開示される原理に従って、ステップ・アンド・リピート要素を、その反復動作ブロックの独立編集可能インスタンスを与えるコード命令ブロックにより置き換える)の一実施形態における命令の反復動作ブロックを含むステップ・アンド・リピート・プログラミング要素に対応している。 マークアップ言語で書かれたコード命令の図である。これらは、ステップ・アンド・リピート変換動作(それは、本明細書において開示される原理に従って、ステップ・アンド・リピート要素を、その反復動作ブロックの独立編集可能インスタンスを与えるコード命令ブロックにより置き換える)の一実施形態における命令の反復動作ブロックを含むステップ・アンド・リピート・プログラミング要素に対応している。 マークアップ言語で書かれたコード命令の図である。これらは、ステップ・アンド・リピート変換動作(それは、本明細書において開示される原理に従って、ステップ・アンド・リピート要素を、その反復動作ブロックの独立編集可能インスタンスを与えるコード命令ブロックにより置き換える)の一実施形態における命令の反復動作ブロックを含むステップ・アンド・リピート・プログラミング要素に対応している。 マークアップ言語で書かれたコード命令の図である。これらは、ステップ・アンド・リピート変換動作(それは、本明細書において開示される原理に従って、ステップ・アンド・リピート要素を、その反復動作ブロックの独立編集可能インスタンスを与えるコード命令ブロックにより置き換える)の一実施形態における命令の反復動作ブロックを含むステップ・アンド・リピート・プログラミング要素に対応している。 本明細書において開示される原理に従って、定義されたステップ・アンド・リピート・プログラミング要素を変換してステップ・アンド・リピート・プログラミング要素の反復動作ブロックにおいて定義された検査命令の独立編集可能な実質的な複製を含む独立編集可能コードブロックを作成するルーチンの一例を示すフローチャートである。
詳細な説明
図1は、本発明の種々の実施形態において利用できる1つの典型的マシンビジョン検査システム10のブロック・ダイアグラムである。マシンビジョン検査システム10は、画像測定機12を含み、画像測定機12は制御コンピュータシステム14、ジョイスティック22とデータおよび制御信号を交換するように接続されている。制御コンピュータシステム14は、さらに、モニタすなわちディスプレイ16、プリンタ18、キーボード24、およびマウス26とデータおよび制御信号を交換するように接続されている。モニタまたはディスプレイ16は、本発明の種々の実施形態に従ってステップ・アンド・リピート命令を作成・編集するためのGUI等の、マシンビジョン検査システム10の動作の制御および/またはプログラミングに適するユーザインタフェースを表示することができる。
画像測定機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軸に沿って制御の下に移動可能である。
マシンビジョン検査システム100を使用して撮像されるワークピース20、または複数のワークピース20を保持するトレイまたは固定具は、ワークピースステージ210の上に置かれる。ワークピースステージ210は、光学アセンブリ部205に対して相対移動するように制御され、それにより交換可能対物レンズ250がワークピース20上の位置の間および/または複数のワークピース20の間を移動できる。透過照明光220、落射照明光230、および斜め照明光240のうちの1つ以上が、それぞれ、光源光222、232、または242を発してワークピース20を照らすことができる。光源光は、ワークピース光255として反射または透過し、交換可能対物レンズ250およびターレット・レンズ・アセンブリ280を経て、カメラシステム260に集光される。カメラシステム260により捕捉されたワークピース20の画像は、信号ライン262を介して制御システム部120に出力される。光源220、230、および240は、それぞれ、信号ラインまたはバス221、231、および241を介して制御システム部120に接続され得る。画像倍率を変更するために、制御システム部120は、信号ラインまたはバス281を介してターレット・レンズ・アセンブリ280を軸284に沿って回転させてターレット・レンズを選択することができる。
種々の例示的実施形態において、光学アセンブリ部205は、アクチュエータを駆動する制御可能モータ294、接続ケーブル等を使用することによりワークピースステージ210に対して垂直Z軸方向に移動可能であり、それにより光学アセンブリ部205をZ軸に沿って移動してカメラシステム260により捕捉されるワークピース20の画像の焦点を変更することができる。本出願において使用する場合、Z軸という用語は、光学アセンブリ部205により得られる画像の焦点合わせのために使用することを意図している軸を指す。制御可能モータ294は、信号ライン296を介して入出力インタフェース130に接続して使用される。
図2Aに示されているように、種々の例示的実施形態において、制御システム部120は、コントローラ125、電源部128、入出力インタフェース130、メモリ部140、ワークピース・プログラム(パートプログラム)ジェネレータ・エグゼキュータ150、レコーダトランスレータ155、学習モードエグゼキュータ156、実行モードエグゼキュータ157、編集部160、代理データマネージャ180、プログラム・ステータス・マネージャ185、ノードマネージャ190、自動スクロールマネージャ195、およびステップ・アンド・リピート・ループ・ジェネレータ172およびステップ・アンド・リピート・ループ・コンバータ173を含んでいる。これらの構成要素のそれぞれは、以下において記述する追加構成要素とともに、1本または複数本のデータ/制御バスおよび/またはアプリケーション・プログラミング・インタフェース、または種々の要素間の直接接続により相互接続され得る。当業者にとって明らかであるように、これらの構成要素のいずれも、各実装形態に応じて、相互に併合すること、多数のサブコンポーネントから構成すること、またはそれらのそれぞれのサブコンポーネントを相互に併合することが可能である。
入出力インタフェース130は、撮像制御インタフェース131、運動制御インタフェース132、照明制御インタフェース133、およびレンズ制御インタフェース134を含む。運動制御インタフェース132は、位置制御要素132a、および速度/加速度制御要素132bを含み得るが、かかる要素は併合可能であり、および/または区別不能である。照明制御インタフェース133は、マシンビジョン検査システム100の種々の対応する光源について、たとえば、選択、電力(明暗度)、オン/オフ切り替え、およびストロボ・パルス・タイミング(該当する場合)を制御する。
メモリ部140は、画像ファイル・メモリ部141、1つまたは複数のパートプログラム142PPまたは同様のプログラムを含み得るワークピース・プログラム・メモリ部142、ビデオツール部143、および例示実施形態における、代理データ144SDを含み得る代理データ・メモリ部144を含む。ビデオツール部143は、エッジ/境界検出ツール、オートフォーカスツール、形状またはパターン照合ツールおよび寸法計測ツール等の種々のビデオツール(まとめて143a)を含む。これらは、それぞれ、特定の機能を行うために定義されるGUIおよび画像処理動作を含んでいる。上述したQUICK VISION(登録商標)シリーズのビジョンシステムや関連QVPAK(登録商標)ソフトウェアのような市販マシンビジョン検査システムには、多数の既知のビデオツールが含まれている。ビデオツール部143は、ビデオツール部143中に含まれる種々のビデオツールにおいて動作可能な、種々の関心領域(ROI)を定義する自動、半自動および/または手動動作をサポートするROIジェネレータ143xも含んでいる。
代理データ・メモリ部144は、代理データ144SDを含んでいる。一部の実施形態では、パートプログラムを編集する際、プログラム中の一定の位置において編集を継続するために必要なコンテキストを作成するときにパートプログラムのステップのすべてを最初から実行するのではなく、必要なコンテキスト(ハードウェア設定とソフトウェアのパラメータおよび値の両方に関する)を、‘232出願において記述されているように、代理データとして以前に保存されたデータを使用してシミュレートすることができる。
一般的に、メモリ部140は、所望の画像特性を有するワークピース20の画像が補足または取得されるようにビジョンシステム構成要素部200を動作させるために利用可能なデータを格納する。メモリ部140は検査結果データも格納でき、また、さらにマシンビジョン検査システム100を動作させて取得された画像について、手動または自動で種々の検査および測定動作(たとえば、一部、ビデオツールとして実現される)を行うため、および入出力インタフェース130を介して測定結果を出力するために利用可能なデータも格納できる。メモリ部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、ステップ・アンド・リピート・ループ・ジェネレータ172およびステップ・アンド・リピート・ループ・コンバータ173は、一実施形態では、すべて、コントローラ125に結合されるジェネラル・マシン・コントローラ・ブロックMCの一部とみなすことができる。ワークピース・プログラム・ジェネレータ/エグゼキュータ150は、パートプログラムの作成および実行を受け持つ。当然のことながら、「ワークピース・プログラム」および「パートプログラム」という用語は、本出願では、どちらを使っても変わりはない。ワークピース・ジェネレータ/エグゼキュータ150の動作に基づいて、ユーザは、マシンビジョン検査システム100を利用して、ワークピース・プログラム言語により自動的、半自動的または手動的に命令を明示的にコーディングすることにより、および/またはマシンビジョン検査システム100を、所望画像取得訓練シーケンスを与える学習モード(たとえば、学習モードエグゼキュータ156の制御による)で動作させて命令を生成することにより、ワークピース20のためのパートプログラムを作成する。たとえば、訓練シーケンスは、視野(FOV)中にワークピース要素を位置付けること、照明レベルを設定すること、焦点を合わせることまたはオートフォーカス設定、画像を取得すること、および画像に適用される検査訓練シーケンスを与えること(たとえばビデオツールを使用すること)を含み得る。この学習モードは、「学習された」動作シーケンスが記録され、かつ、対応するパート・プログラム・ステップ(すなわち命令)に変換されるように動作する。これらのパート・プログラム・ステップは、そのパートプログラムが実行モードで実行されるとき(たとえば、実行モードエグゼキュータ157の制御により)、マシンビジョン検査システム100に、当該訓練における画像取得および検査の動作を再現させ、それによりあるワークピースがパートプログラム作成時に使用されたワークピースと一致するかを自動的に検査する。
レコーダトランスレータ155は、マシンの動作をパートプログラム・コードに変換するために利用される。換言すると、ユーザが操作(たとえば、ワークピース上の要素を測定するために使用されるビデオツールを手動により変更する操作)を行う場合、パートプログラムを形成するためにマシン読み取り可能言語に変換される基本命令が作成され、かつ、逆変換も行われ得る。以下においてさらに詳しく述べるように、本発明の種々の実施形態においては、編集可能な命令表現が編集GUI上に表示され、かつ、その命令表現が、たとえばマークアップ型言語で書かれたマシン読み取り可能コード命令を示す。レコーダトランスレータ155は、編集可能命令とそれに対応するコード命令間の変換を行い得る。図2Bを参照して以下においてさらに詳しく述べるように、編集部160は、パートプログラムの編集に関する種々の動作およびユーザインタフェース機能を準備または起動する。
一部の実施形態では、代理データマネージャ180は、パートプログラムに記録され得る代理データとリンクする。ある実装形態では、代理データマネージャ180は、代理データが通常、生成される出力から代理データを取得すること、およびパートプログラムに書き込まれる代理データを提供することを受け持つ。プログラム・ステータス・マネージャ185は、一実施形態では、プログラムが保護されるか否か管理する。1つの例示実施形態では、保護されるプログラムは、その編集プロセスがすでに完了し、工場において実行モードで利用できるプログラムである。ある実装形態では、保護されないパートプログラムは、編集目的のための正しいコンテキストを生成する際に使用される格納代理データを含むことができる。プログラム・ステータス・マネージャ185は、パートプログラムが保護されていない場合に代理データがパートプログラム中に記録されたままとなるようにすること、また、パートプログラムが編集部160により呼び戻されたときに代理データが利用可能であることを表示することも受け持つ。
ある実施形態では、ノードマネージャ190は、パートプログラム中のノードに割り当てられたノード番号の管理を受け持つ。ある実装形態では、パートプログラムの表現内において、命令表現のそれぞれにノード番号が割り当てられる。ある実装形態では、親ノードおよび子ノードを含む組織的ツリー構造を利用することができる。ある実装形態では、レコーダトランスレータ155により生成されるパートプログラム表現の各行にノードマネージャ190によりノード番号が割り当てられる。自動スクロールマネージャ195は、ノードマネージャ190により割り当てられたノード番号を利用して関連パートプログラム要素の関連要素および対応する編集機能を異なるウィンドウに同時に表示する。たとえば、ワークピースのどの測定がパートプログラム中のどの命令表現および/または命令コードに関連しているかユーザが知ることを可能にするために、自動スクロールマネージャ195は、それぞれのウィンドウ中で関連ノード番号に対応するパートプログラム表現および/またはコード化命令中の関連行まで自動的にスクロールすることができる。
ステップ・アンド・リピート・ループ・ジェネレータ172は、ステップ・アンド・リピート・プログラミング要素命令の作成およびN個の関連検査位置等(これらは、ワークピース・プログラムの一部を形成することができる)の定義を受け持つ。一実施形態では、ステップ・アンド・リピート・ループ・ジェネレータ172は、‘895特許において開示された機能を使用して実現することができる。以下においてさらに詳しく述べるように、ステップ・アンド・リピート・ループ・コンバータ173は、定義されたステップ・アンド・リピート・ループ・プログラミング要素を複数の独立に編集可能なコードブロックに変換すること、および/または置換することを受け持つ。これらのブロックのそれぞれは、ステップ・アンド・リピート・プログラミング要素の反復動作ブロックにおいて定義された検査命令の、独立に編集可能である実質的な複製を含んでいる。この独立に編集可能なコードブロックのそれぞれは、ステップ・アンド・リピート要素において定義されたN個の検査位置の1つに対応するそれぞれの位置で実行される。コンバータ173は、GUIの編集インタフェース部中に、独立編集可能コードブロックの編集可能表現を与えることも、また、編集インタフェース部中の編集要素としてのステップ・アンド・リピート・プログラミング要素を除去することもできる。その目的のために、ステップ・アンド・リピート・ループ・ジェネレータ172およびステップ・アンド・リピート・ループ・コンバータ173は、ワークピース・プログラム・ジェネレータ/エグゼキュータ150、レコーダトランスレータ155、編集部160、代理データマネージャ180、プログラム・ステータス・マネージャ185、および自動スクロールマネージャ195により与えられる機能、動作およびユーザインタフェース機能にアクセスし、利用することができる。ステップ・アンド・リピート・ループ・ジェネレータ172およびコンバータ173について、他の構成も可能である。たとえば、ある実装形態では、ステップ・アンド・リピート・ループ・ジェネレータ172およびコンバータ173および1つまたは複数のワークピース・プログラム・ジェネレータ/エグゼキュータ150、レコーダトランスレータ155、編集部160、代理データマネージャ180、プログラム・ステータス・マネージャ185、および自動スクロールマネージャ195は、併合可能および/または区別不能であってもよい。一般的に、本発明は、本出願において開示されているユーザインタフェース機能および関連プログラミングおよびその他の動作を与えるためにマシンビジョン検査システム100と協力して動作できる既知または将来開発される形態で実現可能である。
図2Bは、図2Aの編集部160の追加構成要素を示す。図2Bに示されているように、編集部160は、編集動作コントローラ174、編集ユーザインタフェース部176、エディタコマンド部177および編集実行部178を含んでいる。編集動作コントローラ174は、編集機能のための動作を制御する。編集ユーザインタフェース部176は、編集機能のためのユーザインタフェース機能を与える。編集ユーザインタフェース部176は、プログラム命令表示ウィンドウ176piを含んでいる。このウィンドウは、表示ユーザインタフェース機能176rを含んでいる。この機能は、ノード・ユーザ・インタフェース機能176nを含んでいる。プログラム命令表示ウィンドウ176piは、図3A〜3Iに関して以下においてさらに詳しく説明するように、ステップ・アンド・リピート命令、ステップ・アンド・リピート・コンバータ173により生成される命令等の編集可能表現を含むパートプログラム表現を与える。一実施形態では、それぞれ1つ以上の子ノードを含んだ親ノードを含むツリー構造内に、ステップ・アンド・リピート命令およびステップ・アンド・リピート・コンバータ173により生成される命令のグラフィック表現を与えることができる。表示ユーザインタフェース機能176rは、ユーザが複数の編集オプションから選択するための種々のプルダウンメニュー、およびステップ・アンド・リピート・ループ中の命令および/またはステップ・アンド・リピート・ループ・ジェネレータ・コンバータ173により生成される命令等を含む種々の命令を作成・編集するためにユーザが選択し、オープンすることができる種々のビデオツールを含むツールバー等の機能を与える。ノード・ユーザ・インタフェース機能176nは、一実施形態では、‘232出願において開示されているように、ある命令または命令ブロックに対応するノードが編集中であるか、または編集された等の場合にそれを表示するアイコンおよびカラー強調表示のような機能を含み得る。
種々の実施形態において、編集実行部178は、学習モードにおける編集プロセス中の種々の編集実行モードを受け持つ。それは、実行モードでの実行とは異なる編集モードでの実行を含む。一般的に、実行モードでの実行は、パートプログラムを最初から実行してワークピースの撮像から得た実際のデータを取得し、かつ、処理する(たとえば、検査し、かつ、解析する)。他方、種々の実施形態における編集モードでの実行は、実際のデータの少なくとも一部を以前に記録された「代理データ」により置き換え、それにより、実際のデータを取得するためにパートプログラムの最初から開始しなければならない場合とは対照的に、代理データを使用してパートプログラムの所望の点から実行開始することを可能にする。すなわち、種々の実施形態における編集モードでの実行は、パートプログラムの任意の部分を編集するために必要な正しいコンテキストを効率的に生成することができる。マシンビジョン検査システムのパートプログラムの編集は、マシン・ツールまたは組立ロボット等のプログラムの編集より複雑な作業であることに注意するべきである。たとえば、マシンビジョン検査システムのパートプログラムは、動作を制御し、および/または画像依存測定結果を与える事後(後続)部分を含んでいる。それは、プログラムの以前の部分の実行により達成/取得された結果および/または解析されるために撮像されるワークピースの特定の実体に少なくとも部分的に依存する。ビジョンシステムは、一般的に、複雑に相互作用して撮像/解析動作を行う、種々の機械的、電気的および光学的要素から構成されていることにも注意しなければならない。したがって、ステップ・アンド・リピート命令を含むパートプログラムのどの部分の編集も、現実の一連の条件に基づく正しいコンテキストにおいて、すなわち、編集される部分についてビジョンシステムの種々のハードウェア要素、ソフトウェア要素およびパラメータを(現実のデータに基づいて)適切に設定した状態において行わなければならない。パートプログラムを編集するための正しいコンテキストを実現する標準的なやり方は、ビジョンシステムにパートプログラムの命令のすべてを、その始めから、および/または編集される命令の部分を含むまで、実際に実行させることである。それは、時間のかかる、むだの多い、そして大きいパートプログラムの場合には非現実的な作業である。編集されるべきパートプログラムの特定のノードの正しいコンテキストを作成することができるビジョンシステム編集環境を「代理データ」に基づいて与える解決方法の一つが、‘232出願により開示されている。
一部の実施形態では、編集実行部178は、代理モード部180、実モード部191、および編集実行ユーザインタフェース機能部192を含んでいる。代理モード部180は、代理データ動作181aおよびマシン動作181bを含むノードアナライザ181を含んでいる。代理モード部180が代理実行モードを動作させると、編集動作を継続するためのコンテキストを生成するために代理データが利用される。一実装形態におけるノードアナライザ181は、パートプログラム実行が目標ノード(たとえば、変更を行うべきパートプログラム中の箇所)に到達したか否か決定する。ノードアナライザ181は、含まれているノードの種類に応じて代理データ動作181aと実際マシン動作181bのいずれが行われるか決定する。一般に、目標ノードに到達した後は、実際にマシン動作が行われるが、目標ノードより前のパートプログラム命令については、編集動作を継続するために必要なコンテキストの少なくとも一部を作成するために代理データ動作を利用することができる。代理データが見当たらない場合、ユーザは、必要なコンテキストを生成する実際のマシン動作の許容/実行を促される。ある実装形態では、各ノードを解析して代理データの実行が適用できるか否か(代理データが実在するか否かを含めて)、それが代理データの動作のための正しい種類のノードであるか否か、実際のマシン動作の利用を必要とするか否か等を決定する。たとえば、パートプログラムの一部のノードは、代理データにより代替できない実際のデータを取得するために、ワークピースステージ、撮像部等の実際の運動等といった、実際のマシン動作を要求することができる。
実モード部191は、以前のマシンビジョンシステムにより伝統的に行われている動作を含んでいる。当然のことながら、実モード部191は、必要に応じて、マシン動作181bを行うために代理モード部180からも呼び出すことができる。実モード部191は、マシン動作191aおよびデータ動作191bを含んでいる。マシン動作191aが実際のマシン動作(たとえば、ビデオツール動作の一部としてステージを動かすこと)を行うのに対し、データ動作191bは一般的にデータを出力する。編集実行ユーザインタフェース機能192は、編集機能の実行のためのユーザインタフェース機能を与える(たとえば、パートプログラムのどの部分が利用可能代理データを有しているか、または実際の実行により実行されたか等を表示するカラー・コードのような種々の実行動作の状態に関する表示)。種々の実施形態において、このような機能は、‘232出願において開示されているように実現することができる。
エディタコマンド177は、実行セグメント部177a、変更部177b、挿入/添付部177c、およびステップ・アンド・リピート・ループ変換コマンド177dを含んでいる。ステップ・アンド・リピート・ループ変換コマンド177dは、ステップ・アンド・リピート・ループ・コンバータ173の動作、および/または種々のステップ・アンド・リピート・ループ変換動作および本出願において開示・請求する方法を起動することができる。前述したように、種々の実施形態において、ステップ・アンド・リピート・ループ・コンバータ173は、編集動作コントローラ174、編集UI部176、編集実行部178およびエディタコマンド177を含む編集部160により与えられる作用および機能のいずれにもアクセスし、使用することができる。変更部177bおよび挿入/添付部177cの動作については、図3A〜3Iを参照しつつ以下においてさらに詳しく説明する。
一般に、実行セグメント部177aは、パートプログラムの選択セグメントの実際の実行を行う。当然のことながら、パートプログラムの選択セグメントを実行するために、選択されたセグメントまで適切なコンテキストを確立しなければならない。適切なコンテキストは、代理データを利用することにより確立することができる。
変更部177bは、実行セグメント部177aの動作との一定の類似性を有している。一般に、パートプログラム中の命令表現が変更される(編集される)ために選択された場合、パートプログラムの当該変更される命令よりも前にある部分について、代理モードを利用して編集目的のために正しいコンテキストを作成することができる。一実施形態では、パートプログラム中の1つの命令表現のために変更コマンドが選択されたとき、その命令表現のノードが目標ノードとして指定される。目標ノードに到達した後、エディタは、代理モードから実際実行モードに切り換えて(たとえば、実モード部191により制御されて)、目標ノードの第1関連パートプログラム命令を実行する。
以下の数パラグラフにおいて、図3A〜3I、図4A〜4F、図5A〜5Jおよび図6A〜6Dをその順番通りではなく、交互にしばしば参照する。これは、連続性のために一貫した種類の要素を有するグループ構成の図の配置(たとえば、あるグループにおける主として種々の種類のGUI要素、別のグループにおけるコード命令の例)に対し、説明の配置は、種々の種類の要素間(たとえば、GUI入力とその結果の命令変更の間)の機能的および/または逐次的関係に従っているためである。特に、図3A〜3Iは、命令の反復動作ブロックを含むステップ・アンド・リピート・プログラミング要素の表現および本出願において開示される原理ならびに独立編集可能なインスタンスを編集するユーザを支援するために構成される種々のウィンドウ、メニューおよびツールバーに従って、ステップ・アンド・リピート要素をその反復動作ブロックの独立編集可能インスタンスを含むコードブロックにより置き換える一実施形態のステップ・アンド・リピート変換動作の表現を含む編集インタフェースすなわちGUIの図である。図4A〜4Fは、図3A〜3Iに対応するステップ・アンド・リピート・プログラミング要素の反復動作ブロック命令およびその他のパラメータを定義するために使用されるワークピースの画像を含むユーザインタフェースの図である。図5A〜5Jは、図3A〜3Iおよび/または図4A〜4Fに示された動作に関連する動作に関連してユーザインタフェース上に追加的かつ選択的に表示され得る種々のウィンドウの図である。図6A〜6Dは、本出願において開示される原理に従ってステップ・アンド・リピート要素をコード命令ブロック(これらのブロックは、その反復動作ブロックの独立編集可能インスタンスを与える)により置き換える一実施形態のステップ・アンド・リピート変換動作における命令の反復動作ブロックを含むステップ・アンド・リピート・プログラミング要素に対応するマークアップ言語で書かれるコード命令の図である。
図3Aは、複数の初期パートプログラム命令表現351〜353を有するパートプログラム310の表現を含む編集インタフェース300の図である。これらの表現は、表示装置136(たとえば、図1のディスプレイ16)上に表示され得る。編集インタフェース300は、マシンビジョン検査システムのためのステップ・アンド・リピート命令を含むパートプログラムのユーザによる生成および編集を可能にする。編集インタフェース300は、選択バー320のような種々の測定バーおよび/または動作選択バーも含んでいる。パートプログラム表現310の命令表現351〜353の動作について図4Aを追加参照しつつ、以下において説明する。
図4Aは、表示装置136上にも表示される画像インタフェース400を示す図であり、図3Aのパートプログラムの実行対象となり得るワークピース415の(ビデオ)画像を表示する視野ウィンドウ410を含んでいる。このマシンビジョンシステムは、一部の実装形態では多数の別々のワークピースについて、別の実装形態においては単一のワークピース中の多数のワークピース要素(表面に画定される多数の穴のような)についてパートプログラムを実行する。したがって、「ワークピース」および「ワ―クピースの要素」という用語は、本出願においては、一定の文脈では、互換使用される。画像インタフェース400は、選択バー420と440、および関連図座標系におけるワークピースステージ210上で撮像/解析されるワークピースのX―Y−Z位置を示すリアルタイムX−Y−Z(位置)座標ウィンドウ430等の種々の測定および/または動作選択バーも含んでいる。この座標系は、測定のための基準を与える。それは、一般的にワークピース座標系(たとえば、矩形ワークピースの1つの隅を原点として使用する)またはワークピースステージの線形目盛りにより定義される機械座標系である。画像インタフェース400は、さらに照明光制御ウィンドウ450を含んでいる。
図3Aにおいて示した例に戻る。パートプログラム表現310は、表面に画定される穴のようなほぼ円形のワークピース要素415の要素を決定するために設定される。一実施形態では、パートプログラム命令表現351〜353のそれぞれは、ノードに関連付けられ、かつ、ノード番号を割り当てられる(たとえば、‘232出願および/または‘061出願において開示されているように)。ある実装形態では、ツリー構造を利用する。その場合、命令表現の一部は、親ノードに関連付けられ、また、一部は子ノードに関連付けられる。たとえば、子ノード命令表現351AおよびB、352Aおよび353Aは、それぞれ、それらの親ノード命令表現351、352および353に関連付けられる。本出願において使用される場合、編集インタフェース300上に表示されるプログラム命令表現のそれぞれは、互換的に「ノード」と呼ばれることがある。また当然のことながら、一実施形態では、編集インタフェース300上に表示される命令表現351〜353は、パートプログラムのマークアップ言語命令(コード命令)から導かれるアイコンおよびラベルを含んでいる。一部の実施形態では、パートプログラムのマークアップ言語は、カスタマイズされたマークアップ言語コード等のXMLのようなコードを含み得る。したがって、命令表現351〜353は、マシン実行可能な関連コード命令に関する関連付けを「正確に示す」か、またはそれを有する。これについては、以下において図6A〜6Dを参照してより詳しく説明する。
図3Aに示したように、“Prologue”ノード351は、実行モードにおいてパートプログラムを実行するために必要なプロセスを表している。そのプロセスは、一般的に、学習モードに入ったときに生成される。“Set Lights”ノード351Aは、どの種類の照明をどの照度レベルで使用するか定義する。それは、ユーザにより、照明光制御ウィンドウ450(図4A)に含まれているスライディング・バーを使用して容易に設定・調整できる。図示した例では、“Stage”照明を27%の照度レベルで使用する。“Move Stage”ノード351Bは、ワークピースを保持するステージの位置を定義する。この位置は、種々の実装形態に従ってユーザにより手動により設定される。図3Aでは、後続する2つの“Measure Circle”ノード352、353が動作して図4Aのほぼ円形のワークピース要素415に座標系を整列させることによりワークピース座標系を設定する。具体的には、“Measure Circle Circle-1”ノード352は円Circle-1を定義し、“Align Origin to Circle-1”ノード352AはCircle-1の中心に座標系の原点を設定する。Measure Circle Circle-2”ノード353は円Circle-2を定義し、“Align X Axis to Circle-2”ノード353Aは、座標系のX軸をZ軸の周りにCircle-2の中心方向まで回転させる。命令表現351〜353の動作は、したがって追加測定を行うために関連座標系におけるワークピース415の正しい位置および向きを確立する。
図4Bを参照すると、ユーザは、本発明の実施形態に従って種々のGUI機能を使用することによりステップ・アンド・リピート命令を定義することができる。具体的には、ユーザがセレクタ(たとえばカーソル)を“Program”オプション411の上に置くと、“Step and Repeat”オプション413を含むプルダウンメニュー412が現れる。“Step and Repeat”オプション413のユーザ選択により、“Array”オプション416を含む別のプルダウンメニュー414が表示される。ユーザは、“Array”オプション416を選択して検査動作の反復動作ブロックを含むステップ・アンド・リピート・プログラム要素の命令の定義を開始することができる。この場合、この反復動作ブロックは、ワークピース要素の配列中のN個の定義された位置でN回行われることになる。
図5Aを参照すると、図示されている実施形態では、上述した“Array”オプション416のユーザ選択後、“Array Step and Repeat”ウィンドウ500が表示画面上に現れ、ユーザに対し配列の全体構成および構造の定義を促す。一部の実施形態では、ユーザは、配列の名前をネームボックス501に入れることができる。図示の例では、ユーザは、この中にすでに“MyLoop”を入力してある。ユーザは、さらに1つの軸(たとえばX軸)に沿って行うべき反復回数を第1反復ボックス502A中で定義し、かつ、同じ軸沿いの反復間の間隔距離を“DX”ボックス502B中で定義する。同様に、ユーザは、さらに別の軸(たとえばY軸)に沿って行うべき反復回数を第2反復ボックス503A中で定義し、かつ、その軸沿いの反復間の間隔距離を“DY”ボックス503B中で定義する。図示された例では、ユーザは、それぞれ、[1,1]、[1,2]、[1,3]および[2,1]、[2,2]、[2,3]の番号が付されている6個のアイコン510により図示されているように、ステップ・アンド・リピート命令の基本セットがX軸に沿って1.5875の間隔をおいて2回行われること、およびY軸に沿って1.5875の間隔をおいて3回行われることを定義している。“Array Step and Repeat”ウィンドウ500は、ユーザに対しステップ・アンド・リピート命令の基本セットを各軸に沿って単一のワークピース504について要素ごとに反復するのか、または複数のワークピース505についてワークピースごとに反復するのか定義するよう促すこともできる。ウィンドウ500は、さらにユーザがスキップされるべき配列のメンバ(要素)を“Skipped Steps”ボックス506中で指定することを可能にすることもできる。たとえば、ステップ・アンド・リピート命令の基本セットを5カ所[1,1]、[1,2]、[1,3]および[2,1]、[2,2]において5回実行するが、位置[2,3]では行わないことをユーザが希望する場合、すなわちユーザが位置[2,3]のスキップを希望する場合、ユーザは、[2,3]を“Skipped Steps”ボックス506に入れることができる。その結果、ステップ・アンド・リピート命令の基本セットは、位置[2,3]では行われない。すなわち、位置[2,3]はスキップされる。ユーザが配列の位置の定義を終了する場合、ユーザは、OKボタン507を選択して定義した位置を保存する。
図3Bを参照すると、ユーザは、次に前記図5Aで定義されたN個のワークピースまたはワークピース要素の配列についてN回反復実行される反復動作ブロックを定義することができる。具体的には、編集インタフェース300において、ビデオツールバー330が適当な位置に現れ得る。これは、種々の測定/検査動作を定義するためにユーザが選択・利用することができる点ツール330A、ボックスツール330B、および円ツール330Cのようなビデオツールを表す種々のアイコンを含んでいる。一部の実施形態では、ツールバー330は、上述した図5Aに示した配列の定義のユーザ完了後に出現し得る。その他の実施形態では、ユーザは、ツールバー330が編集インタフェース300において表示されるよう明示的に要求することができる。要するに、点ツール330Aは、ある点のX−Y−Z座標を決定するために使用されるように構成される。ボックスツール330Bは、ラインを定義する(たとえばフィッティング処理により)ために使用できる点ならびに当該ラインがX軸、Y軸、Z軸およびX−Y平面との間にそれぞれ形成する角度および当該ラインの直線性を決定するように構成される。円ツール330Cは、円を定義する(たとえば最適動作により)ために使用できる点(円の中心のX−Y−Z座標を含む)ならびに、その円の直径、半径および真円度(丸さ)を決定するように構成される。点ツール330A、ボックスツール330Bおよび円ツール330Cは、すべて、形状を定義/測定するエッジ点を識別するように構成されるエッジ検出ツールである。これらおよびその他のビデオツールの機能および動作は、先行技術において既知であり、また、これまでに包含された引用文献においてより詳しく説明されている。
図示されている例では、ユーザは、すでに円ツール330Cを選択し、それを視野ウィンドウ410においてワークピース415の画像に適用している(図4C参照)。それは、編集インタフェース300における親ノード“Array Step and Repeat Loop MyLoop”354の子ノードとしての“Measure Circle Circle-5 [ , ]”ノード355を生成させる。(“Measure Circle Circle-5”において、決定される円の識別子として5が使用されている。)一実施形態では、“Measure Circle Circle-5 [ , ]”ノード355は、3個の子ノード、すなわち“Set Up For Measurement”ノード355A、“Circle Tool”ノード355Bおよび“Define Circle”ノード355Cを自動的に含む。“Set Up For Measurement”ノード355Aは、照明設定およびステージ設定等の円ツールを実行するために必要な(すなわち円を測定するために)設定を定義・表現する。“Circle Tool”ノード355Bは、円ビデオツール330Cを表現し、かつ、円を測定するために構成される命令を含んでいる。“Define Circle”ノード355Cは、測定される“Circle-5”を定義し、それにより“Measure Circle Circle-5 [ , ]”命令表現355の動作を決定する。
ビデオツールバー330からの円ツール330Cの選択は、“Measure Circle”ウィンドウ332を作成するコマンドまたは円測定ツールとともに使用することもできる。このウィンドウは、円測定動作の定義に関連して利用できるオプションをユーザに与える。たとえば、ユーザが“Run”オプション332Aを選択し、それにより学習モードにおいて編集モードでの実行を用いて“Measure Circle Circle-5 [ , ]”命令表現355を実行する場合、ビジョンシステムは、位置[1,1]の第1ワークピース要素から始まる測定動作を行うことができる。
図4Cは、上述“Run”オプション332Aを選択した結果を示している。座標ウィンドウ430中のY位置は、図4Bのウィンドウ430では、0.00241mmであったのに対し、ここでは1.58689mmになり、1.58449mmだけのY軸沿いのステージの運動を指示していることに留意されたい。視野ウィンドウ410は、18個のエッジ点416がワークピース要素415のエッジに沿って検出され、それによりワークピース要素415が円として決定されることを示している。これは、332Bにおいて“18 Points Entered”を指示している図3Bの“Measure Circle”ウィンドウ332にも反映されている。図5Bは、位置[1,1]におけるワークピース要素415の測定結果を示している。一実施形態では、測定結果の少なくとも一部が“Measure Circle Circle-5 [ , ]”命令表現に関連する代理データとしてXMLのようなコード命令またはXMLフォーマット化データ構造中に保存される。これは、後に呼び戻されて使用され、プログラム全体を実行する必要なしにパートプログラムの編集を続けるために必要なコンテキストを生成することができる。
図3Cを参照すると、ユーザは、さらに、図5Aにおいて定義されるN個のワークピースまたはワークピース要素の配列についてN回実行されるライン測定動作を反復動作ブロックに追加することができる。具体的には、編集インタフェース300において、ビデオツールバー330が利用できるが、これからユーザはボックスツール330Bを1回、点ツール330Aを2回選択し、それらを視野ウィンドウ410においてワークピース415の画像に適用することができる(図4D参照)。ボックスツール330B(ラインを測定するように設計されている)のユーザ選択は、編集インタフェース300における親ノード“Array Step and Repeat Loop MyLoop”ノード354のもう1つの子ノードとしての“Measure Line Line-3 [ , ]”ノード356を作成させる。(“Measure Line Line-3”において、3は、決定されるべきラインの識別子として使用されている。)“Measure Line Line-3 [ , ]”ノード356は、4つの子ノード、すなわちBox Tool”ノード356A、第1“Point Tool”356B、第2“Point Tool”356Cおよび“Define Line”ノード356Dを含んでいる。一実施形態では、“Box Tool”ノード356Aおよび“Define Line”ノード356Dは、“Measure Line Line-3 [ ,]”ノード356の下の子ノードの最小組み合わせとして自動的に含まれるが、2つの“Point Tool”は、ユーザにより手動的に追加される。“Box Tool”ノード356Aは、ボックス・ビデオ・ツール330Bを表す。それは、ラインを測定するように構成される命令を含むコマンドまたはライン測定ツールとともに使用することができる。2つの“Point Tool”ノード356B、356Cは、それぞれ、点ビデオツール330Aを表し、かつ、点を決定するように構成される命令を含んでいる。“Define Line”ノード356Dは、1つのボックスツール330Bおよび2つの点ツール330Aの組み合わせにより測定される“Line-3”を定義し、それにより“Measure Line Line-3 [ , ]”ノード356の動作を決定する。“Measure Line Line-3 [ , ]”ノード356の生成は、“Measure Line”ウィンドウ333も生成し得る。それはユーザにライン測定動作の定義に関連して利用できるオプションを提供する。たとえば、ユーザが“Run”オプション333Aを選択することで、学習モードにおいて編集モードでの実行を用いて“Measure Line Line-3 [ , ]”命令表現を実行した場合、ビジョンシステムは、位置[1,1]のワークピース要素を測定してラインを決定する。
図4Dは、上述の“Run”オプション333Aを選択した結果を示している。視野ウィンドウ410は、1個のボックスツール330Bおよび2個の点ツール330Aに基づいて合計6個のエッジ点416がほぼ円形のワークピース要素415のエッジに沿って検出され、それによりワークピース要素415上のラインが決定されることを示している。これは、333Bにおいて“6 Points Entered”を示している図3Cの“Measure Line”ウィンドウ333にも反映されている。図5Cは、位置[1,1]におけるワークピース要素415のライン測定結果を示している。一実施形態では、測定結果の少なくとも一部がボックスツールおよび/または関連“Measure Line Line-3 [ , ]”命令表現に関連する代理データとしてXMLのようなコード命令またはデータ構造中に保存される。これは、後に呼び戻されて使用され、プログラム全体を実行する必要なしにパートプログラムの編集を続けるための正しいコンテキストを生成することができる。
上で定義されたArray Step and Repeat Loop MyLoop354が完全に実行されたとき、円およびラインの測定結果が図5Aにおいて定義された2×3配列中の6つのワークピース要素のそれぞれについて得られる。図5Dは、測定結果の一例を示している。この例では、位置[2,2]および[2,3]の測定結果のみ“Measurement Results”ウィンドウ512中に示されているが、他の位置[1,1]、[1,2]、[1,3]、[2,1]の測定結果もウィンドウ512をスクロールアップすることによりアクセスできる。
ワークピース要素の配列中のN個の位置においてN回実行されるべき検査動作の反復動作ブロックの生成(すなわち、図示例中の“Array Step and Repeat Loop MyLoop”ノード354)は、これで完了する。
ここで図3Dを参照すると、本発明の種々の実施形態に従って、ユーザは、定義されたステップ・アンド・リピート・ループ・プログラミング要素を変換してN個の独立編集可能コードブロックを作成することができる。これらのブロックのそれぞれは、その反復動作ブロックにおいて定義された検査命令の、独立に編集可能な実質的な複製を含んでおり、また、これらの独立編集可能コードブロックのそれぞれは、N個の定義された位置の1つに対応するそれぞれの位置において実行されることになる。一実施形態では、定義されたステップ・アンド・リピート・プログラミング要素の表現がGUIの編集インタフェース部に表示されたとき、ユーザは、その表現を選択するか(たとえば、カーソルを編集インタフェース300上の“Array Step and Repeat Loop MyLoop”ノード354の上に置くことにより)、および/または選択された表現上で右クリックすることができる。これにより、“Unroll Step Loop”コマンドオプション360Aのような、選択された表現向けの種々のオプション/選択を含むメニューウィンドウ360が現れる。このコマンドオプションは、本出願において開示される種々の動作を含む変換コマンドの1つの実施形態である。ユーザが“Unroll Step Loop”コマンドオプション360Aを選択し、かつ/または実行すると、制御システム部120(図2A参照)のステップ・アンド・リピート・ループ・コンバータ173が当該コマンドの動作を実行する。この動作は、選択されたステップ・アンド・リピート・プログラミング要素の反復動作ブロックにおいて定義された検査命令を自動的に複製してN個の独立編集コードブロックを生成する。これらのブロックのそれぞれは、反復動作ブロックにおいて定義された検査命令の、独立に編集可能な実質的な複製を含み、また、独立編集可能コードブロックのそれぞれは、N個の定義された位置の1つに対応するそれぞれの位置において実行されることになる。種々の実施形態において、ステップ・アンド・リピート・ループ・コンバータ173は、当該コマンドの以下の動作も実行する。それは、GUIの編集インタフェース部にN個の独立編集可能コードブロックの表現を自動的に提示する動作である。これらのN個のコードブロック表現のそれぞれは、反復動作ブロックのその複製されたインスタンス中に含まれている検査命令の編集可能な表現を含んでいる。種々の実施形態において、ステップ・アンド・リピート・ループ・コンバータ173は、当該コマンドの以下の動作も実行する。それは、パートプログラム中の要素およびGUIの編集インタフェース部における編集可能な要素としての定義されたテップアンドリピート・プログラミング要素を除去する動作である。一部の実施形態では、これは、ステップ・アンド・リピート・プログラミング要素およびその関連命令が完全に抹消された状態でパートプログラムが保存されるまで、編集可能要素としてのステップ・アンド・リピート・プログラミング要素の動作を停止すること、および/またはその動作停止を所定の色、カーソルの状態、または取り消し線等により表示することを含み得る。その他の実施形態では、ステップ・アンド・リピート・プログラミング要素(たとえば、編集インタフェース300上の“Array Step and Repeat Loop MyLoop”ノード354中に含まれている命令表現)をその関連下層コードとともに直ちに消去することができる。
当然のことながら、コンパイラ等において実行される既知のステップ・アンド・リピート「展開(unroll)」動作(それは、マシンによるコードの実行を加速するためにステップ・アンド・リピート・ループを明示的にコード化されているループ繰り返しに展開する)と対照的に、本出願において開示されるステップ・アンド・リピート・ループ変換コマンドの動作は、比較的不慣れなユーザの選択によりGUI上で利用することができる(たとえば、個々の位置における動作の編集、追加、置換または削除を目的として)。既知の「展開」動作と対照的に、本出願において開示される変換コマンド動作は、ステップ・アンド・リピート・プログラミング要素を完全に除去し、かつ、よりフレキシブルな命令グループに自動的に置き換えることができる。それは、ユーザが、元のステップ・アンド・リピート・ループ要素中では個別にアクセスできなかった検査対象の特定の1つまたは複数の要素に関する命令に対し編集的調整を行うことを可能にする。
図3Eは、6つのブロックに含まれている独立編集可能命令群の6つのインスタンス354.1〜354.6に変換された、および/またはそれにより置き換えられた“Array Step and Repeat Loop MyLoop 354”を表示する編集インタフェース300を示している。これらのインスタンスは、上述の図5Aにおいて定義された位置[1,1]、[1,2]、[1,3]および[2,1]、[2,2]、[2,3]に対応するそれぞれの位置における6つのワークピース要素について実行されることになる。図3Eには、スペースの制約から、インスタンス354.1、354.2、354.3および354.5のみ示されているが、実際の実装では、ユーザは、スクロールバー322を使って編集インタフェース300をスクロールアップおよびダウンすることによりありとあらゆるインスタンスを容易に閲覧し、かつ、それらにアクセスできる。各インスタンスは、ステップ・アンド・リピート命令表現の基本セットからなる別々の独立編集可能インスタンスであることに留意されたい。換言すると、各インスタンス354.1〜354.6は、最初に定義された“Array Step and Repeat Loop MyLoop”354の反復動作ブロックとしての、3つの子ノードを含む“Measure Circle Circle-5”ノードおよび4つの子ノードを含む“Measure Line Line-3”ノードの実質的な複製を含んでいる。しかし、各インスタンスには、固有の1つまたは複数の名前が与えられ、また、各インスタンスを独立に識別可能、編集可能かつ管理可能とするために(たとえば、本出願の別の箇所において説明される種々のコンテキスト、同期機能および表示機能に従って)、その他の表現および/またはコード・サポート要素を必要に応じて追加することができる。その結果、種々の例示的実施形態によれば、いずれかのインスタンスに加えられた変更または編集は、変更または編集されない他のインスタンスに影響を及ぼすことも変更することもない。具体的には、図示された実施形態において、ステップ・アンド・リピート命令の基本セットの第1のインスタンスに“Measure Circle Circle-5-1-1”および“Measure Line Line-3-1-1”という名前が与えられ、インスタンス354.1が図5Aの位置[1,1]に位置付けられているワークピースについて行われるべきことを一意に示す。同様に、命令の基本セットの第2のインスタンスに“Measure Circle Circle-5-1-2”および“Measure Line Line-3-1-2”という名前が与えられ、インスタンス354.2が図5Aの位置[1,2]に位置付けられているワークピースについて行われるべきことを一意に示す。以下同様である。
再び図3Eを参照すると、ユーザが複数の独立編集可能命令セットのうちの1つのインスタンスの編集を希望する場合、ユーザは、カーソルをそのインスタンスの表現の上に置く(かつ、一部の実施形態では次に「右クリック」する)。これによりドロップダウンメニュー324が一定の編集モード・コマンドまたは機能を実行するための編集インタフェース300に現れる。他の実施形態では、前記の代わりに、GUIに常に表示されているツールバーまたはタブに関連するメニュー選択によりドロップダウン・コマンドにアクセスすることができる。この実施形態では、図示例中のドロップダウンメニュー324は、次のようなオプションを含んでいる。すなわち、削除324A、選択されたインスタンスにそれ自身の内部ステップ・アンド・リピート命令を包含させるステップ・ループ昇格324B、コピー324C、カット324D、選択されたインスタンスに対応するコードを実際のデータおよび/または代理データを使用して実行する実行選択324E、ステップ・アンド・リピート命令を含むパートプログラムに対応するコードを選択されたインスタンス(の前)まで実際のデータおよび/または代理データを使用して実行する選択実行324F、選択されたインスタンスの初期設定ブロック・マーカーを消去する初期セットアップ・ブロック・マーカー消去324G。
一実施形態では、ユーザがたとえばマウスを使用してセレクタ(カーソル)を命令表現の上に移動することにより、および/またはその上で右クリックすることにより一定の命令表現を選択したとき、ドロップダウンメニュー324が現れる。編集のために選択された命令表現(たとえば命令表現354.5S)は、図3Eに示すようにセレクタ・ボックスにより、または強調表示方法により、またはその他の指示方法により示され得る。一部の実施形態では、ユーザが1つの命令表現または多数の命令表現のいずれを選択するかに応じて、ドロップダウンメニュー324は、カスタマイズすることができる。図3Eの例では、ユーザが3つの(3行の)命令表現354.5Sを選択したので、ドロップダウンメニュー324は、多数の命令表現にただちに適用できる種々の編集モード・コマンドまたは機能を含んでいる。他方、単一の命令表現が選択された場合、「挿入」(選択された命令表現の上に新しい命令表現を挿入する)または選択された命令表現を変更する「変更」のような単一の命令表現に適用できる種々の編集モード・コマンドまたは機能を含む別のタイプのドロップダウンメニューが現れ得る。
引き続き図3Eを参照すると、ユーザがドロップダウンメニュー324から「削除」オプション324Aを選んだ場合、図3Fに示すように、親ノード“Measure Line Line-3-2-2”の下の1つのボックスツールおよび2つのポイントツールから構成される命令表現354.5Sの削除が行われる。具体的には、図3Fは、親モード“Measure Line Line-3-2-2”354.5Pを示している。それは、いまや空であり、最後の行の“Define Line”子ノードを含むのみである。したがって、この時点において、位置[2,2]におけるワークピース要素に適用される命令の独立編集可能インスタンス354.5は、編集インタフェース300中に表示されている残りのインスタンス354.3、354.4および354.6のいずれよりも短くなっている。図3Eの場合と同様に、4つの独立編集可能インスタンス354.3、354.4、354.5および354.6のみ示されているが、ユーザは、編集インタフェース300のスクロール・バー322を使用することにより6つのインスタンスのすべてを容易に閲覧し、かつ、それらにアクセスすることができる。
図3Fを参照すると、この時点において、ユーザは、たとえば空ノード“Measure Line Line-3-2-2”354.5Pの上にカーソルを置くことにより(かつ、その上で右クリックすることにより)それを選択することができる。これによりドロップダウンメニュー324が現れ、ユーザは、再びそれから「削除」オプション324Aを選択して図3Gに示すように1つの残存子ノード“Delete Line”を含むノード354.5Pを削除することができる。具体的には、図3Gは、位置[2,2]のワークピース要素について実行されるべきインスタンス354.5が“Measure Circle Circle-5-2-2”命令表現のみから構成されており、かつ、“Measure Line Line-3-2-2”命令表現が完全に消去されたことを示している。一実施形態では、親ノードが選択され、かつ、消去された場合、その親ノードに依存するすべての子ノードおよび孫ノードも消去されるが、子ノードが選択され、消去された場合には、上述図3E〜3Gで示した例の場合のように、その親ノードは残存し、自動的には消去されない。
図3Gを参照する。ユーザは、編集インタフェース300中に示されているステップ・アンド・リピート命令の基本セットのインスタンスの個別編集を続けている。この時点において、ユーザが、インスタンス354.5(この中から“Measure Line Line-3-2-2”ノードが除かれた)中に残っている“Measure Circle Circle-5-2-2”ノードの実行中に適用される照明設定の変更を希望する。よって、ユーザは、親ノード“Measure Circle Circle-5-2-2”の下の“Set Up For Measurement”子ノード354.5Lを選択する。図3Gに示すように、命令の集まりの表示されているインスタンス354.3、354.4、354.5および354.6のそれぞれは、初期ステージ位置および照明設定を定義する子ノード“Set Up For Measurement”を有する親ノード“Measure Circle Circle-5-x-x”の真下でスタートする。一実施形態では、ステップ・アンド・リピート命令の基本セットを展開して複数の独立編集可能命令セットの複数インスタンスを生成したとき、各インスタンスは、“Set Up For Measurement”命令表現およびステップ・アンド・リピート命令の基本セットについて構成されたその対応コードのコピーを含むように構成される。したがって、この場合、図4Aの照明光制御ウィンドウ450に示されているように、照明は透過照明光(図2Aにおける220)を27%の照度レベルで使用するように最初に設定されているので、インスタンス354.5の“Set Up For Measurement”命令表現354.5Lも当初は27%の照度レベルにおける透過照明光の使用が定義される。
一実施形態では、親ノードの“Measure Circle Circle-5-2-2”の下の“Set Up For Measurement”ノード354.5Lのユーザ選択は、警告ウィンドウ325の表示によりマシンビジョン検査システム100のワークピースステージ210を移動する必要があることをユーザに警告することがある。この警告は、位置変更が衝突を引き起こす場合に、ウィンドウ325において“OK”をクリックする前に、ユーザにステージを調整するよう促すために定義される。具体的には、“Set Up For Measurement”ノードがワークステージ位置および照明設定を定義するので、種々の実装形態において、ワークステージ位置または照明設定の変更/編集は、正しい「ハードウェア」コンテキスト(正しい初期ステージ位置、照明レベル、倍率等)および正しい「ソフトウェア」コンテキスト(先行測定がすでに行われていること、座標系が利用されること等)の下で行われる必要がある。換言すると、パートプログラムがビジョン装置の動作を正しいコンテキストの下で制御しなければならないというこのプログラムの性質そのもののために、パートプログラムの編集も種々の実施形態において正しいコンテキストの下で行われなければならない。図示した例では、ビジョン装置すなわちより具体的には、ワークステージは、位置[2,2]に置かれているワークピース要素に適用される“Set Up For Measurement”ノード354.5Lのユーザによる編集を許容する正しいコンテキストを生成するために、警告ウィンドウ325に示されているように、物理的に移動しなければならないことがある。
ユーザが図3Gの警告ウィンドウ325上で“OK”をクリックした後、図3Hに示されているように、ユーザは、「ステージ、レンズおよび照明光を調整し、次に‘Done’をクリックする」よう“Set Up Measurement”ウィンドウ326により促され得る。この時点において、パラメータ・ウィンドウ327も編集インタフェース300に現れてステージのX−Y−Z位置、照明および倍率に関する現在のパラメータ値が表示され得る。一実施形態では、ユーザは、パラメータ・ウィンドウ327においてパラメータ値を直接変更して所望の変更を行うこともできる。他の実施形態では、ユーザは、たとえば適切な制御パネルインタフェース経由でマシンビジョンシステムのワークステージの位置および倍率を手動で変更することができる。図4Eの図示例では、ユーザは、照明光制御ウィンドウ450のスライディング・バーを制御して照明光について所望の変更を行うことができる。図4Eは、ユーザが透過照明光照度レベルを27%から0%に、かつ、落射照明光(図2Aの230)照度レベルを0%から15%に変更したことを示している。したがって、位置[2,2]のワークピースについて実行される命令のインスタンス354.5中の“Set Up For Measurement”ノード354.5L(図3H)における照明光設定は、いまや、27%の透過照明光から15%の落射照明光に変更される。種々の実施形態において、パラメータ・ウィンドウ327および照明光制御ウィンドウ450等の種々のウィンドウおよびコントロール・パネルにおいて行われた変更および修正は、いったん記録されると、対応する命令表現(図示例中の“Set Up For Measurement”ノード354.5L)および対応するコンピュータ実行可能コード命令を含む編集インタフェース300の対応するエリアに自動的に反映される。
一部の実施形態では、図3Hに示されているように、矢印および/または下線のような目印299を編集インタフェース300中に含めることにより、編集される命令表現(またはノード)を示すことができる。図3Hの例では、目印299は、インスタンス354.5の“Set Up for Measurement”ノード354.5Lがこれから編集されるか、またはすでに編集されたことを示している。
次に、変換される命令の1つのインスタンスを他のインスタンスと関係なく編集するさらなる例として、ユーザがここでインスタンス354.5の“Measure Circle Circle-5-2-2”ノード中の設定を変更するためにビデオツールを追加したいと仮定する。一実装形態では、編集インタフェース300中の“Measure Circle Circle-5-2-2”ノードのユーザ選択により、図3Bおよび3Cに関連して上述したステップアンドリピート命令の基本セットの当初の定義において見られたようなビデオツール表す種々のアイコンを含むツールバー330が現れる。具体的には、図3Iに示されているように、ユーザが編集インタフェース300において編集されるべき“Measure Circle Circle-5-2-2”ノードの上にカーソルを置いたときにビデオツールバー330が現れ得るか、またはユーザがツールバー330を呼び出すラジオ・ボタンを明示的に選択したときに、それが現れ得る。ツールバー330から、ユーザはそこに含まれているいずれかのビデオツールを選択する(図示の例では、ユーザは、すでに表面焦点ツール330Dを選択している)。簡単に説明すると、表面焦点ツールは、関心領域により正確に焦点を合わせるために関心領域表面に自動的に焦点を合わせるように構成されている。表面焦点ツールの動作および使用方法は先行技術において既知である。図4Eは、表面焦点ツール330Dのユーザによる選択および画像インタフェース400の視野ウィンドウ410におけるワークピース415に対するその適用を示している。図示の例では、ユーザは、位置[2,2]におけるワークピース要素に適用される命令のインスタンス354.5の“Circle Tool”ノード355B.5の設定に関連して実行される表面焦点ツール330Dをすでに選択している。したがって、図3Iに示されているように、ユーザが編集インタフェース300中の“Circle Tool”ノード355B.5の上にカーソルを置き、次に追加する表面焦点ツール330Dをビデオツールバー330から選択したとき、“Surface Focus Tool”ノード354.5Xがインスタンス354.5中の“Circle Tool”ノード355B.5の上に挿入される。図示の実施形態では、新しい“Set Up For Measurement”ノード354.5Yも新しい“Surface Focus Tool”ノード354.5Xとともにデフォルトにより追加される。これは、一部の実施形態では、“Measurement Circle Circle-5-2-2”親ノードの“Setup for Measurement”ノード354.5Lのコピーである。なぜならば、ビデオツールの適切な動作は、適切なSet Up For Measurementを必要とするからである。換言すると、新しい“Set Up For Measurement”ノード354.5Yは、追加する必要がない。なぜならば、“Measurement Circle Circle-5-2-2”親ノードの“Set Up For Measurement”ノード354.5Lが、この例ではすでに存在しているからである。
位置[2,2]のワークピース要素のためのインスタンス354.5中の“Surface Focus Tool”ノード354.5Xを追加した後に、ユーザは、表面焦点ツールの次に実行される後続の“Circle Tool”ノード355B.5の編集を開始できる。そのために、ユーザは、編集インタフェース300において“Circle Tool”ノード355B.5を選択することができる。それにより“Modify Circle Tool”ウィンドウ326および“Circle Tool”355B.5について現在定義されているパラメータ値を示すパラメータ・ウィンドウ327が現れ得る。パラメータ・ウィンドウ327中に含まれているパラメータの1つは、“Edge Slope”パラメータ327Aである。それは、デフォルトにより“Rising”に設定されて、図4Eに示されているようにビジョンシステムが第1の円R1から第2の円R2へ矢印335の方向に画像を走査するときに、上り傾斜のエッジを検出することにより円が決定されるべきことを指示している。したがって、“Circle Tool”ノード355B.5は、表面上の浮き出し模様つきの円形領域を検出するように定義されている。一実施形態では、ユーザは、“Modify Circle Tool”ウィンドウ326中の“Edit”オプションを選択し、続いてパラメータ・ウィンドウ327中に一覧表示されているパラメータを変更・編集することができる。
ある実施形態では、ユーザは、パラメータ・ウィンドウ327中のパラメータを直接編集/変更できる。他の実施形態では、 “Modify Circle Tool”ウィンドウ326中の“Edit”オプションをユーザが選択すると、図5E−5Hに示すような“Circle Tool”パラメータ編集ウィンドウ328および329が編集インタフェース300中に生成される。図5Eを参照すると、第1パラメータ編集ウィンドウ328Aは、円ツールについて現在設定されているパラメータ値を示している。図5Fは、同じ第1パラメータ編集ウィンドウ328Bを示しているが、ここではユーザは、すでに、走査の方向を変更するために“R1”および“R2”(図4E及び図4F参照)の値を図5Eの値から変更している。具体的には、図4Fに示すように、円を決定する走査の方向は、現在、R1の小さい円からR2の大きい円へ矢印335’の方向に行うように設定されている。この方向は、図4Eにおいて使用された走査方向と反対である。一実施形態では、ユーザが第1パラメータ編集ウィンドウ328B中の“OK”を選択して編集の結果を受け入れたとき、図5Gに示す第2パラメータ編集ウィンドウ329Aが現れる。これは、円ツールについて設定されている現在のパラメータ値の別の集まりを含んでいる。図5Hは、同じ第2パラメータ編集ウィンドウ329Bを示しているが、ここではユーザがすでに“Slope”パラメータ(340B参照)を“Rising”から“Falling”に変更している。その結果、円ツールは、ビジョンシステムがR1の第1(小さい)円からR2の第2(大きい)円へ画像を走査するとき下り傾斜のエッジを検出するように構成される。走査の方向も切り換えられているので、検出対象エッジ傾斜の“Rising”から“Falling”への変更により、変更された円ツールも変更前の元の円ツールと同様に浮き出し模様付きの円形領域を検出・測定するように構成されていることになる。編集が完了した後、ユーザが第2パラメータ編集ウィンドウ329Bの“OK”を選択すると、変更の結果が編集インタフェース300中の“Circle Tool”ノード355B.5の中、および実行されるコード命令の中に反映される。
図5Iは、上述のように追加された“Surface Focus Tool”ノード354.5Xおよび変更された“Circle Tool”ノード355B.5に基づいて行われた位置[2,2]のワークピース要素415の測定結果を示す。ラベル(名前)ウィンドウ510において、測定された円は“Circle-5-2-2”と表示されており、測定された円が位置[2,2]において識別されたCircle-5であることを示している。一部の実施形態では、変更された命令表現のセット(対応する修正されたコード命令セットを備える)により測定されたワークピース要素のラベル(名前)は、自動的または半自動的または手動により変更され、変更されていない命令表現の集まりにより測定されたワークピース要素のラベル(名前)から区別することができる。図5Jは、測定されたワークピース要素のラベル(名前)が“Circle-5-2-2”からラベル(名前)ウィンドウ510’中に示すように“Circle-5 SPECIAL”にユーザにより変更された実装形態例を示す。
インスタンス354.5中の“Circle Tool”ノード355B.5の変更を完了した後、ユーザは、編集インタフェース300中において、本出願において例として上述した種々の編集動作と同様に、各インスタンス中の命令表現の編集(たとえば、削除、追加、および変更)を他のインスタンスと関係なく続けることができる。種々の実施形態に従って、命令表現のユーザ編集(たとえば、削除、追加、変更等)は、編集インタフェース300において、編集プロセスを通じて適時に現れてユーザを導く多数のウィンドウ、ドロップダウンメニュー、ツールバー等による視覚的支援の下で直感的、弾力的かつ強固に行うことができる。種々の実施形態において、編集の結果は、編集インタフェース300中のこれらの種々のウィンドウ、メニュー等のすべてに同時にリアルタイムで反映され、編集プロセス中のユーザをさらに支援する。種々の実施形態において、編集インタフェース300において行われた命令表現に対する変更は、対応する実行対象コード命令に対する同じ変更を自動的または半自動的に行うこともできる。種々の実施形態において、編集プロセス全体を通じて、ステップ・アンド・リピート命令の基本セットの各インスタンスが相互に独立して維持されるので、各インスタンスは独立編集可能であり、1つのインスタンスにおいて行われた編集は他のインスタンスに反映されない。
種々の典型的実施形態において、すでに概説したように、ステップ・アンド・リピート命令および/またはステップ・アンド・リピート・ループ・コンバータ173により生成される命令を含むパートプログラムは、拡張マークアップ言語(XML)または同様なカスタマイズされたマークアップ言語等のマークアップ型言語により書かれる。すなわち、編集インタフェース300に表示される編集可能命令表現は、マークアップ型言語で作成された対応するコード命令(マシン実行可能命令)を指し示す。
図6Aは、カスタマイズされたマークアップ言語で書かれたコードの見本であり、これは、変換される(または展開される)前の図3Bおよび3Cの“Array Step and Repeat Loop MyLoop”ノード354に対応している。図6Aでは、編集インタフェース300上の各命令表現(またはノード)に対応するコードが添え字M付きの同じ参照番号で示されている。たとえば、“Array Step and Repeat Loop MyLoop”ノード354に対応するコードは、354Mにより示されている。これは、反復動作ブロック中の“Measure Circle Circle-5”ノード355に対応する355Mおよび反復動作ブロック中の“Measure Line Line-3”ノード356に対応するコード356Mを含んでいる。“Array Step and Repeat Loop MyLoop”ノード354、“Measure Circle Circle-5”ノード355および“Measure Line Line-3”ノード356に対応するコード354M、355Mおよび356Mは、隣接して置かれている“−”記号(354X、355Xおよび356Xにより示されている)で示すように展開されており、それによりそこに含まれている内容全体を示している。編集可能命令表現の残りの部分に対応するその他のコードは、それらに隣接しておかれている“+”記号により示されているように、すべて畳み込まれている。当然のことながら、一実施形態では、図3A〜3Eの命令表現351〜356は、図6AのHTMLのようなまたはXMLのようなコード命令から導かれたアイコンおよびラベルを含んでいる。編集インタフェース300に表示されている命令表現351〜356は、それ自体は実行されず、その代わりに、実行される図6Aの関連コード命令を指し示す。
引き続き図6Aに示されているように、XMLに準じたコード命令は、ノードI.D.番号390を含んでいる。それらは、一実施形態では、それぞれ、図3A〜3Eの編集インタフェース300に表示される命令表現(ノード)に対応することができる。
図6Bは、カスタマイズされたマークアップ言語で書かれたコードの見本である。これは、変換された“Array Step and Repeat Loop MyLoop”ノード354の置換コードに対応する。以下においてさらに詳しく説明するように、この時点において、図3Eにおける「展開」コマンドを実行することにより置換コードは変換され、不要なものが除かれ、かつ、それが編集されて図3Iに示す編集された表現の状態に対応している。図6Aに示したStepArrayコード要素354Mおよび対応する“EndLoop”および</StepArray>要素357は、図6Bでは取り除かれていることに留意されたい。図6Bは、図3Iに示した表現354.1〜354.6に対応するコードの種々の独立編集可能コードブロックを示す。たとえば、355[1,3]Mおよび356[1,3]Mは、それぞれ、354.3中のCircle要素およびLine要素に対応する。同様に、355[2,2]Mは354.5中のCircle要素に対応するが、これは、すでに編集されているので、その編集されたインスタンスにLine要素(たとえば、要素356)は含まれない。同様に、355[2,3]Mおよび356[2,3]Mは、それぞれ、354.6中のCircle要素およびLine要素に対応する。以下同様である。
図6Cは、図6Bに示した命令の編集されたコードインスタンス355[2,2]Mに対応する、展開後のカスタマイズされたマークアップ言語コード命令の一部であり、図3Iの要素354.5に対応している。図6Cに示されているように、展開されたコードは、610A中の変更された照明光設定により変更された“Set Up For Measurement”ノード354.5Lが15%照度レベルの「落射(coax)」照明を使用することを明確に示している(図3Gおよび3H参照)。図6Cは、位置[2,2]の変更されたインスタンス354.5に追加された(図3I参照)“Surface Focus Tool”ノード354.5Xに対応するコード(611A)を含むコード命令の部分も示している。図6Cは、さらに、図3Iにおいて変更された“Circle Tool”ノード355B.5に対応するコードが、612Aに示されているように“RISING”エッジ傾斜の代わりに“FALLING”エッジ傾斜を使用する変更を反映していることを示している。図6Cは、さらに、測定結果、すなわち、いまではラベル“Circle-5-SPECIAL”が付されている(図5J参照)位置[2,2]の円を測定するために位置[2,2]のワークピース要素について、変更された命令インスタンス354.5を実行することにより得られた実際データ614Aを含んでいることを示している。図5Jのラベル(名前)ウィンドウ510’中において名前になされた変更(“Circle-5-SPECIAL”)がコード命令中の実際のデータ614Aの要素ラベル613Aに反映されていることに留意されたい。
図2Aおよび2Bを参照しつつ上述したように、展開されたステップ・アンド・リピート命令を含むパートプログラムのどの部分の実行も、実行モードのみならず(この場合、パートプログラムは始めから実行される)、学習モードにおいても行うことができる。学習モードの場合、ユーザは、マシンビジョン検査システムを訓練し、画像を取得する方法および取得した画像中のワークピース要素を解析/測定する方法を学習させる。上記で詳述したように、種々の実施形態において、作成または編集されるパートプログラムのどの部分も、学習モードにおいて実行可能であり、実行モードでの実行ではなく編集モードでの実行に従う。実行モードでの実行とは異なり、編集モードでの実行は、一般的にパートプログラムの実行から以前に取得した実際のデータである「代理データ」を使用することによりパートプログラムの任意の中間点からスタートできる。種々の実施形態において、パートプログラム中の以前に実行された命令からの代理データを、後でそれらの命令を実際に実行する代わりに代理データとして使用し、それにより、たとえばプログラムの後続部分の実行を続けてプログラムの後続部分において実際のデータを取得することができる。したがって、位置[2,2]のワークピース要素についてステップ・アンド・リピート命令の変更されたインスタンス354.5を実行することにより取得された実際のデータ614Aの一部または全部をかかる代理データとして使用し、それによりパートプログラムの任意の後続部分を編集モードでの実行に従って編集および実行するための正しいコンテキストを生成することができる。逆に言うと、パートプログラムの変換された命令の編集対象インスタンスよりも前にある先行部分の代理データを使用することにより、変換された命令のブロック内のインスタンスを編集するための正しいコンテキストを生成することもできる。すなわち、編集/変更を行うためにユーザが編集インタフェース300において変換された命令の独立編集可能インスタンスのいずれかを選択したとき、パートプログラムの先行部分については以前に取得されたデータまたは互換性のために変更または初期化されたデータを代理データとして利用して選択した編集のための有効なコンテキストを確立することができる。
図6Dは、展開後のカスタマイズされたマークアップ言語の別の一部であり、図3Iの要素354.6に対応する図6Bの未編集コードインスタンス355[2,3]Mに対応している。図6Dの展開されたコードは、610Bに示されているように、27%の照度レベルの「ステージ(stage)」照明光の使用を定義しており、未変更インスタンス354.6の未変更“Set Up For Measurement”ノードに対応するコードを明確に示している(比較参照:図6Cの610Aにより指示されている15%レベルの「落射(coax)」照明光)。図6Dは、未変更インスタンスD354.6の未変更“Circle Tool”ノードに対応するコード命令が、612Bに示されているように、デフォルト“RISING”エッジ傾斜の使用を反映していることも示している(比較参照:図6Cの612Aにより指示されている“FALLING”エッジ傾斜)。図6Dは、さらに、未変更インスタンス354.6に対応するコード命令の部分が、位置[2,3]のワークピース要素について未変更命令インスタンス354.6を実行した測定結果として入手された実際のデータ614Bを含んでいることを示している。位置[2,3]において測定される円の要素ラベル613Bは、未変更であり、“Circle-5-2-3”となっている(比較参照:図6Cの613Aにより指示されている“Circle-5-SPECIAL”)。
図6Cと6Dの比較により、図6Cの変更されたインスタンスのコード命令が図6Dの未変更インスタンスのコード命令と全く異なっていることが分かる。それにも関わらず、これらの2つのインスタンスは、元は、ステップ・アンド・リピート配列内の位置[2,2]および[2,3]におけるステップ・アンド・リピート・ループの同一の反復動作ブロックから複製されたのである。この比較は、さらに、本発明の種々の実施形態によれば、本出願において開示される原理に従ってステップ・アンド・リピート・プログラム要素を変換することにより入手される多数の命令インスタンスが如何に独立編集可能であるか、また、その結果として1つのインスタンスに行われた編集がそれに対応するコードには反映されるが、他のインスタンスに対応するコードには反映されないことを示している。図2Aを参照して上述したように、一部の実施形態では、編集インタフェース300において作成される命令表現とマシン実行可能コード命令間の変換は、コントローラ125に結合されるレコーダトランスレータ155により行うことができる。
図7は、本出願において開示される原理に従って、定義されたステップ・アンド・リピート・プログラミング要素を変換してステップ・アンド・リピート・プログラミング要素の反復動作ブロックにおいて定義される検査命令の独立に編集可能な実質的な複製を含む独立編集可能コードブロックを作成するためにコンピュータにより行われ得るルーチンまたは方法の一例を示すフローチャートである。
この方法の図示実施形態は、一般的に6つのステップを含む。ステップ700は、定義されたステップ・アンド・リピート・プログラミング要素の作成を含む。この要素に関連して、検査命令の反復動作ブロックがマシンビジョン検査システム中のワークピースの配列中のN個の定義された位置においてN回実行されることになる。ただし、Nは1より大きい整数であり、また、マシンビジョン検査システムは、撮像部、撮像部の視野内に1つまたは複数のワークピースを保持するステージ、制御部、グラフィック・ユーザインタフェース(GUI)を含む。ステップ702は、GUIの編集インタフェース部に定義されたステップ・アンド・リピート・プログラミング要素の表現を表示することを含む(たとえば、図3C参照)。ステップ704は、定義されたステップ・アンド・リピート・プログラミング要素を対象とする変換コマンドを実行するために編集インタフェース部を動作させることを含む(たとえば、図3D参照)。ステップ706は、変換コマンドを実行してステップ・アンド・リピート/プログラミング要素中に定義された反復動作ブロックを自動的に複製することにより、N個の独立編集可能コードブロックに含まれる反復動作ブロックのN個の独立編集可能複製インスタンスを作成することを含む。ただし、独立編集可能コードブロックのそれぞれは、N個の定義された位置の1つに対応するそれぞれの位置で実行されるものとする(たとえば、図3E〜3F参照)。ステップ708は、変換コマンドを実行してGUIの編集インタフェース部にN個の独立編集可能コードブロックの表現を自動的に作成することを含む。ただし、N個のコードブロック表現のそれぞれは、反復動作ブロックのその複製インスタンスに含まれている動作の編集可能表現を含むものとする(たとえば、図3E〜3I参照)。ステップ710は、変換コマンドを実行してGUIの編集インタフェース部における編集可能要素としての定義されたステップ・アンド・リピート・プログラミング要素を除去することを含む(たとえば、図3E〜3I参照)。
当然のことであるが、上述したステップ・アンド・リピート・ループ例はXY格子上に配列されたが、ステップ・アンド・リピート・ループは、円形格子上にも配列できる。したがって、当然のことながら、本出願における位置に対する言及は、XY位置に限定されず、半径上の位置および角の位置または場所ならびにステップ・アンド・リピート・ループにおいて使用され得るその他の形式の位置言及に適用される。
上述した種々の実施形態を組み合わせて別の実施形態を作成することができる。この明細書において参照された米国特許および米国特許出願のすべては、参照により本明細書にその全体が含まれている。これらの実施形態の諸特徴を変更し、必要に応じてこれらの種々の特許および出願のコンセプトを取り入れることにより、さらに別の実施形態を作成することができる。
これらおよびその他の変更形態は、上記の詳細説明を踏まえて実施形態とすることができる。一般に、以下のクレームにおいて、使用される表現は、請求項を明細書および請求項において開示された特定の実施形態に限定するものと解するべきではなく、かかる請求項が受ける資格を有する均等物の全範囲とともに、すべての可能な実施形態を含めるものと解するべきである。
10、100 マシンビジョン検査システム
12 画像測定機
14 制御コンピュータシステム
16 ディスプレイ
18 プリンタ
20、415、504、505 ワークピース
22 ジョイスティック
24 キーボード
26 マウス
32 可動ワークピースステージ
34 光学撮像システム
120 制御システム部
125 コントローラ
128 電源部
130 入出力インタフェース
131 撮像制御インタフェース
132 運動制御インタフェース
132a 位置制御要素
132b 速度/加速度制御要素
133 照明制御インタフェース
134 レンズ制御インタフェース
136 表示装置
138 入力装置
140 メモリ部
141 画像ファイル・メモリ部
142 ワークピース・プログラム・メモリ部
142PP パートプログラム
143 ビデオツール部
143a ビデオツール
143x ROIジェネレータ
144 代理データ・メモリ部
144SD 代理データ
150 ワークピース・プログラム・ジェネレータ/エグゼキュータ
155 レコーダトランスレータ
156 学習モードエグゼキュータ
157 実行モードエグゼキュータ
160 編集部
172 ステップ・アンド・リピート・ループ・ジェネレータ
173 ステップ・アンド・リピート・ループ・コンバータ
174 編集動作コントローラ
176 編集ユーザインタフェース部
176n ノード・ユーザ・インタフェース機能
176pi プログラム命令表示ウィンドウ
176r 表示ユーザインタフェース機能
177 エディタコマンド
177a 実行セグメント部
177b 変更部
177c 挿入/添付部
177d ステップ・アンド・リピート・ループ変換コマンド
178 編集実行部
180 代理データマネージャ
181 ノードアナライザ
181a 代理データ動作
181b マシン動作
185 プログラム・ステータス・マネージャ
190 ノードマネージャ
191 実モード部
191a マシン動作
191b データ動作
192 編集実行ユーザインタフェース機能部
195 自動スクロールマネージャ
200 ビジョン構成要素部
205 光学アセンブリ部
210 ワークピースステージ
212 中央透明部
220 透過照明光
221、231、241、281 バス
222、232、242 光源光
230 落射照明光
240 斜め照明光
250 交換可能対物レンズ
255 ワークピース光
260 カメラシステム
262、296 信号ライン
280 ターレット・レンズ・アセンブリ
284 軸
286、288 レンズ
294 制御可能モータ
299 目印
300 編集インタフェース
310 パートプログラム
320、420 選択バー
324A オプション
324B ステップ・ループ昇格
324C コピー
324D カット
324E 実行選択
324F 選択実行
324G 初期セットアップ・ブロック・マーカー消去
325〜327、332、333 ウィンドウ
327A パラメータ
328、329 パラメータ編集ウィンドウ
330 ツールバー
330A 点ツール
330B ボックスツール
330A 点ツール
330B ボックスツール
330C 円ツール
330D 表面焦点ツール
332A、333A オプション
351〜353 命令表現
354、356 ノード
355A〜355C、356A〜356D ノード
360 メニューウィンドウ
360A コマンドオプション
400 画像インタフェース
410 視野ウィンドウ
411 オプション
412、414 プルダウンメニュー
413、416 オプション
430 座標ウィンドウ
450 照明光制御ウィンドウ
500 ウィンドウ
501 ネームボックス
502A 第1反復ボックス
503A 第2反復ボックス
504、506 ワークピース
507 OKボタン
510、512 ウィンドウ
613A,613B 要素ラベル
614A、614B 実際データ

Claims (17)

  1. 撮像部、1つまたは複数のワークピースを前記撮像部の視野中に保持するステージ、制御部、およびグラフィカル・ユーザ・インタフェース(GUI)を含むマシンビジョン検査システムであって
    ートプログラムを編集することができる編集部であって、前記GUIに表示可能な編集インタフェース部を含む編集部と
    ークピース要素の配列中に定義されたN個の位置においてN回実行される検査命令の反復動作ブロックを定義するステップ・アンド・リピート・プログラミング要素をパートプログラム中に生成及び定義するステップ・アンド・リピート・ループ・ジェネレータと、
    定義されたステップ・アンド・リピート・プログラミング要素を対象とするステップ・アンド・リピート変換動作を行うことができるように構成されるステップ・アンド・リピート・ループ・コンバータと、を備え、
    前記ステップ・アンド・リピート変換動作は、
    定義された前記ステップ・アンド・リピート・プログラミング要素の前記反復動作ブロック中に定義された前記検査命令を自動的に複製してN個の独立編集可能なコードブロックを作成することであって、各前記独立編集可能なコードブロックは、前記反復動作ブロック中に定義された前記検査命令の独立に編集可能な実質的な複製を含み、前記N個の位置のうちの当該前記独立編集可能なコードブロックが対応する1つの位置においてそれぞれ実行されることと、
    前記N個の独立編集可能なコードブロックの表現を前記GUIに表示された前記編集インタフェース部に自動的に作成することであって、前記N個の独立編集可能なコードブロックの表現のそれぞれは、前記反復動作ブロックのその複製されたインスタンスに含まれる動作の編集可能表現を含むことと、
    前記GUIに表示された前記編集インタフェース部において編集可能要素として定義された前記ステップ・アンド・リピート・プログラミング要素を削除することと
    を含む
    マシンビジョン検査システム。
  2. 前記N個の独立編集可能コードブロックを作成することは、各独立編集可能コードブロックについて、当該独立編集可能コードブロックを実行する位置をそれぞれ決定する独立編集可能命令を生成することを含む請求項1に記載のシステム。
  3. 前記N個の独立編集可能コードブロックは、マークアップ言語で書かれたマシン実行可能コード命令および前記GUI上に表示され、かつ、それらの対応するコード命令に関連する編集可能命令表現を含む請求項1に記載のシステム。
  4. 前記GUI上に、前記ステップ・アンド・リピート・ループ・コンバータを起動し、前記定義されたステップ・アンド・リピート・プログラミング要素を対象とする前記ステップ・アンド・リピート変換動作を行うためにユーザにより選択されるステップ・アンド・リピート変換コマンドが表示される請求項1に記載のシステム。
  5. コンピュータにロードされて前記コンピュータがステップ・アンド・リピート・プログラミング要素中に定義される検査命令の反復動作ブロックのN個の独立編集可能インスタンスを生成する方法を実行することを可能にするように構成されるコンピュータ実行可能命令を含むコンピュータ読み取り媒体であって、
    前記反復動作ブロックはマシンビジョン検査システムにおいてワークピース要素の配列中のN個の位置においてN回実行されるものとし、Nは1より大きい整数とし、
    前記マシンビジョン検査システムは、撮像部、1つまたは複数のワークピースを前記撮像部の視野中に保持するステージ、制御部、およびグラフィカル・ユーザ・インタフェース(GUI)を含んでおり
    実行される前記方法は、
    前記GUIの編集インタフェース部に定義された前記ステップ・アンド・リピート・プログラミング素の表現を表示するステップと、
    前記編集インタフェース部を動作させて、定義された前記ステップ・アンド・リピート・プログラミング要素を対象とする変換コマンドを実行するステップと、を含み
    前記変換コマンドは、
    前記ステップ・アンド・リピート・プログラミング要素中に定義された前記反復動作ブロック中に定義された前記検査命令を自動的に複製してN個の独立編集可能なコードブロックを作成することであって、各独立編集可能なコードブロックは、前記反復動作ブロック中に定義された前記検査命令の独立に編集可能な実質的な複製を含み、前記N個の位置のうちの当該独立編集可能なコードブロックが対応する1つの位置においてそれぞれ実行されること、
    前記N個の独立編集可能なコードブロックの表現を前記GUIの前記編集インタフェース部に自動的に作成することであって、前記N個の独立編集可能なコードブロックの表現のそれぞれは、前記反復動作ブロックのその複製インスタンスに含まれる前記検査命令の編集可能な表現を含むこと、および
    前記GUIの前記編集インタフェース部において編集可能要素としての定義された前記ステップ・アンド・リピート・プログラミング要素を削除すること、を含む、
    コンピュータ読み取り媒体。
  6. 編集可能要素としての定義された前記ステップ・アンド・リピート・プログラミング要素を削除することは、定義された前記ステップ・アンド・リピート・プログラミング要素の表示された前記表現を前記編集インタフェース部から除去することを含む請求項5に記載の媒体。
  7. 前記N個の独立編集可能なコードブロックを生成することは、各独立編集可能コードブロックについて、当該独立編集可能コードブロックを実行する位置をそれぞれ決定する独立編集可能な命令を生成することを含む請求項5に記載の媒体。
  8. 前記独立編集可能なコードブロックの少なくとも1つについて、当該独立編集可能コードブロックを実行する位置を決定する前記独立編集可能な命令が運動制御命令を含む請求項7に記載の媒体。
  9. 前記方法は、定義された前記ステップ・アンド・リピート・プログラミング要素をa)前記GUIを動作させて前記ステップ・アンド・リピート・プログラミング要素を生成し、かつ、その反復動作ブロックおよび前記N個の位置を定義するそのパラメータを定義すること、およびb)定義された前記ステップ・アンド・リピート・プログラミング要素を含む以前に作成されたパートプログラムを開き、以前に作成された前記パートプログラムの表現を前記GUIの前記編集インタフェース部に表示すること、
    のいずれか一つにより提供するステップをさらに含む請求項5に記載の媒体。
  10. 前記方法は、前記独立編集可能なコードブロックの1つを編集するユーザ編集入力を前記GUI経由で与えること、およびその結果の独立編集可能コードブロックを編集された状態でパートプログラム中に記録することをさらに含む請求項5に記載の媒体。
  11. 前記ユーザ編集入力は、前記独立編集可能なコードブロックのうちの前記1つのブロック中において、命令の追加、命令の削除、および命令の変更の1つまたは複数を含む請求項10に記載の媒体。
  12. 前記ユーザ編集入力は、前記独立編集可能なコードブロックのうちの前記1つのブロックの削除を含む請求項10に記載の媒体。
  13. 前記独立編集可能なコードブロックのうちの前記1つを編集する前記ユーザ編集入力は、その他の前記独立編集可能なコードブロックに影響を及ぼさない請求項10に記載の媒体。
  14. 前記編集インタフェース部を動作させて、定義された前記ステップ・アンド・リピート・プログラミング要素を対象とする前記変換コマンドを実行するステップは、
    前記GUIの前記編集インタフェース部において、定義された前記ステップ・アンド・リピート・プログラミング要素の前記表現を選択すること、
    前記GUIを動作させて、選択された前記表現に対応する複数の編集コマンドを含むメニューを表示すること、および表示された前記メニューから前記変換コマンドを選択すること
    を含む請求項5に記載の媒体。
  15. 前記N個の独立編集可能なコードブロックを生成することは、前記独立編集可能なコードブロックのそれぞれについて少なくとも1つの固有ノード識別子および固有コードブロック名を生成することを含む請求項5に記載の媒体。
  16. 前記N個の独立編集可能なコードブロックは、マークアップ言語で書かれたマシン実行可能コード命令および前記GUI上に表示され、かつ、対応するコード命令に関連する編集可能命令表現を含む請求項5に記載の媒体。
  17. 前記N個の独立編集可能なコードブロックの表現のそれぞれは、ノード、親ノード、子ノードの少なくとも1つを含む請求項5に記載の媒体。
JP2014097582A 2013-05-09 2014-05-09 マシンビジョン検査システムにおけるステップ・アンド・リピート動作命令編集のためのシステム、guiおよび方法 Active JP6418780B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/891,106 2013-05-09
US13/891,106 US9235337B2 (en) 2013-05-09 2013-05-09 System, GUI and method for editing step and repeat operation instructions in a machine vision inspection system

Publications (2)

Publication Number Publication Date
JP2014219415A JP2014219415A (ja) 2014-11-20
JP6418780B2 true JP6418780B2 (ja) 2018-11-07

Family

ID=50678029

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014097582A Active JP6418780B2 (ja) 2013-05-09 2014-05-09 マシンビジョン検査システムにおけるステップ・アンド・リピート動作命令編集のためのシステム、guiおよび方法

Country Status (3)

Country Link
US (1) US9235337B2 (ja)
EP (1) EP2801876B1 (ja)
JP (1) JP6418780B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US9740190B2 (en) * 2014-10-09 2017-08-22 Mitutoyo Corporation Method for programming a three-dimensional workpiece scan path for a metrology system
EP3274654B1 (de) * 2015-03-26 2020-04-29 Carl Zeiss Industrielle Messtechnik GmbH Verfahren, vorrichtung und computerprogrammprodukt zum bestimmen von dimensionellen eigenschaften eines messobjekts
RU2637882C2 (ru) 2015-03-31 2017-12-07 Общество С Ограниченной Ответственностью "Яндекс" Способ управления отображением веб-ресурсов в браузерном окне, способ помещения вкладок в стек в браузерном окне, электронное устройство и сервер
US11520472B2 (en) * 2015-09-24 2022-12-06 Mitutoyo Corporation Inspection program editing environment including integrated alignment program planning and editing features
JP7017949B2 (ja) * 2018-03-02 2022-02-09 株式会社ディスコ 加工装置
EP4089363A1 (de) * 2018-05-17 2022-11-16 Carl Zeiss Industrielle Messtechnik GmbH Verfahren und vorrichtung zum erzeugen eines prüfplans für die prüfung eines messobjekts, verfahren und vorrichtung zum prüfen eines messobjekts und sowie computerprogrammprodukt
CN110293539B (zh) * 2019-06-24 2022-09-30 佛山智异科技开发有限公司 工业机器人示教器软件架构的实现方法、装置及示教器
CN113407225B (zh) * 2021-06-23 2022-09-23 未鲲(上海)科技服务有限公司 代码清单的生成方法、装置、计算机设备和存储介质

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5023800A (en) 1988-04-14 1991-06-11 Northrop Corporation Assembly data model system
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 繰り返しループの展開最適化方式
US5453933A (en) 1993-09-08 1995-09-26 Hurco Companies, Inc. CNC control system
DE4437057C2 (de) 1994-10-17 1999-04-01 Agie Ag Ind Elektronik Verfahren und Vorrichtung zur Steuerung von Funkenerosionsmaschinen
US5797013A (en) 1995-11-29 1998-08-18 Hewlett-Packard Company Intelligent loop unrolling
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
US6507945B1 (en) * 1999-05-05 2003-01-14 Symyx Technologies, Inc. Synthesizing combinatorial libraries of materials
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
JP2002032220A (ja) * 2000-07-14 2002-01-31 Mitsutoyo Corp 測定パートプログラムの表示方法
JP4024117B2 (ja) * 2002-09-17 2007-12-19 株式会社ミツトヨ 測定支援装置
JP2004163296A (ja) * 2002-11-14 2004-06-10 Mitsutoyo Corp パートプログラム編集時の座標系再現方法及びその装置
US7316009B2 (en) * 2003-08-06 2008-01-01 National Instruments Corporation Emulation of a programmable hardware element
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
US7454053B2 (en) 2004-10-29 2008-11-18 Mitutoyo Corporation System and method for automatically recovering video tools in a vision system
US8311311B2 (en) * 2005-10-31 2012-11-13 Mitutoyo Corporation Optical aberration correction for machine vision inspection systems
US8111938B2 (en) 2008-12-23 2012-02-07 Mitutoyo Corporation System and method for fast approximate focus
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
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
US8902307B2 (en) * 2011-11-15 2014-12-02 Mitutoyo Corporation Machine vision system editing environment for a part program in which a continuous stream of image acquisition operations are performed during a run mode
US8689127B1 (en) * 2012-11-05 2014-04-01 Mitutoyo Corporation Edge measurement video tool parameter-setting user interface
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
US9733902B2 (en) * 2013-05-13 2017-08-15 Mitutoyo Corporation Machine vision system program editing environment including operating context aware copy and paste feature
US9444995B2 (en) * 2013-10-11 2016-09-13 Mitutoyo Corporation System and method for controlling a tracking autofocus (TAF) sensor in a machine vision inspection system

Also Published As

Publication number Publication date
JP2014219415A (ja) 2014-11-20
US9235337B2 (en) 2016-01-12
EP2801876A1 (en) 2014-11-12
EP2801876B1 (en) 2015-12-30
US20140337780A1 (en) 2014-11-13

Similar Documents

Publication Publication Date Title
JP6418780B2 (ja) マシンビジョン検査システムにおけるステップ・アンド・リピート動作命令編集のためのシステム、guiおよび方法
JP6386540B2 (ja) 動作コンテキストを意識したコピーアンドペースト機能を含むマシンビジョンシステムプログラム編集環境
JP6122282B2 (ja) リアルタイムコンテキスト生成機能を含むマシンビジョンシステムプログラム編集環境
JP6071453B2 (ja) 同期されたユーザインタフェース機能を含むマシンビジョンシステムプログラム編集環境
JP6731478B2 (ja) 一体型の位置合わせプログラムプランニング及び編集機能を含む検査プログラム編集環境
JP6071451B2 (ja) 画像取得動作の連続ストリームが実行モード中に実行されるパートプログラムのマシンビジョンシステム編集環境
US8271895B2 (en) GUI for programming step and repeat operations in a machine vision inspection system
JP6071452B2 (ja) マシンビジョンシステムのパートプログラム編集環境内で編集初期化ブロックを利用するシステム及び方法
JP4933785B2 (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
CN105204840B (zh) 用于部件程序的机器视觉系统的编辑环境

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170407

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180329

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180510

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: 20180927

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181009

R150 Certificate of patent or registration of utility model

Ref document number: 6418780

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250