EasyBuilder ジョブおよびスプレッドシート

スプレッドシートでの EasyBuilder ジョブの編集ラウンドトリップアプリケーション開発

ラウンドトリップアプリケーション開発とは、In-Sight Explorer の EasyBuilder とスプレッドシートの両開発環境でマシンビジョンアプリケーションをビルドするプロセスのことを指します。EasyBuilder 環境で開始されたジョブは、スプレッドシート環境で編集することができ、これにより EasyBuilder インタフェースに表示されるパラメータをカスタマイズすることができます。例えば、位置決めツールと検査ツールのパラメータを追加、削除または名前変更したり、スプレッドシート環境でのみ使用可能な追加のロジックと機能を追加して EasyBuilder ジョブを強化したりすることが可能です。

:  In-Sight ビジョンシステムによっては、スプレッドシートにアクセスできなかったり、スプレッドシート環境で変更された EasyBuilder ジョブをロードできなかったりする場合があります。EasyBuilder 環境で開発されたジョブをスプレッドシート環境で編集する場合、このジョブは、EasyBuilder のみの In-Sight ビジョンシステム/センサに展開できません。

EasyBuilder とスプレッドシート

EasyBuilder 環境でジョブが作成および開発されると、同時に EasyBuilder 固有のスプレッドシートが作成され、EasyBuilder スニペットによってプログラムされます。EasyBuilder スニペットEasyBuilder スニペットは、EasyBuilder 環境のアプリケーションステップに追加されて設定される機能に相当します。

EasyBuilder 互換スプレッドシートは特定のフォーマットに適合しており、EasyBuilder スニペットの 3 つの垂直セクションで構成されています。 

  • セルの列 A ~ H が最初の垂直セクションを形成し、[画像の設定] ステップでの画像取得設定のための EasyBuilder スニペットと、EasyBuilder に追加される位置決めツールと検査ツール用の EasyBuilder スニペットが格納されます。
  • セルの列 J ~ Q は 2 番目の垂直セクションを形成します。この列は通常、最初の列に値が取り込まれていない限り空になっています。この列は、その時点で、EasyBuilder の位置決めツールと検査ツールのスニペットで使用されます。
  • セルの列 S ~ Z は最後の 3 番目のセクションを形成し、全体的なジョブの PASS/FAIL の結果を求める EasyBuilder スニペット、[入力] ステップと [出力] ステップ、[画像の設定] でのキャリブレーション、および [通信] ステップが格納されます。

すべての EasyBuilder スニペットは 8 列以下の列を占めるようにフォーマットされ、3 つの垂直セクションのいずれかに挿入されます。位置決めツールまたは検査ツールが EasyBuilder 環境内のジョブに追加されると、スプレッドシート内の使用可能なスペースに基づいて、対応する EasyBuilder スニペットが EasyBuilder 固有のスプレッドシートに自動的に追加されます。

例えば、ブロブ計数ツールが EasyBuilder 開発環境のジョブに追加されると、スプレッドシート内の使用可能なスペースに基づき、スプレッドシートの最初のセクション (列 A ~ H) か 2 番目のセクション (列 J ~ Q) のどちらかに、EasyBuilder スニペットファイル BlobCount.cxd が自動的に追加されます。

例 - EasyBuilder BlobCount スニペット

EasyBuilder スニペットでは、スニペット内の個々のセルと、ほかの EasyBuilder スニペットのセルの両方の間の絶対セル参照も保持されます。このセル間の空間関係は、セル実行順序を関連付けることと、EasyBuilder 環境でのテキストラベルと表示パラメータの表示順を決めることの両方の働きを持つメカニズムとして利用されます。EasyBuilder スニペットは、左から右に1 行ずつスキャンされ、セルはスニペット内での配置に基づいて個々に実行されます。

例えば、EasyBuilder スニペットファイル BlobCount.cxd では、オペレータ I/F 関数の上の行と下の行のテキストラベル間の空間関係に基づいて、EasyBuilder 環境で表示されるパラメータの名前とコントロールが作成されます。

例 - スプレッドシートビューと EasyBuilder ビュー

EasyBuilder ツールのスニペット構造体

EasyBuilder ツールのスニペットは、EasyBuilder 環境で位置決めツールと検査ツールをビルドするために使用されます。EasyBuilder ツールのスニペットは、スプレッドシート環境から In-Sight のビジョンツール関数のパラメータを表示し、それらのパラメータを EasyBuilder 環境で容易に設定できるようにしています。

EasyBuilder ツールのスニペットは、ツールの複雑さに応じて、さまざまな行数で 8 列以内に収まるようにフォーマットされます。スニペットに含まれる In-Sight の関数および EasyBuilder タグとラベルは、条件付きで有効にされ、スニペット内のセル間の特定の空間関係に依存しています。

例 - EasyBuilder エッジ位置決めツール - EdgeLocation スニペット

例 -EdgeLocation スニペット EnabledStatus セル依存関係

EasyBuilder タグとタグラベル 

EasyBuilder タグにより、GUI フォーマットとセル参照のデータが EasyBuilder 環境に提供され、EasyBuilder タグラベルにより、EasyBuilder 環境で表示されるテキストが提供されるか、スプレッドシートでの EasyBuilder タグが示されます。EasyBuilder タグが付いていることは、セルの左下隅に表示される緑の三角形のコメントインジケータによって示されます。また、マウスにより表示されるツールチップが含まれます。

例 - EasyBuilder タグとテキストラベルのセル

EasyBuilder タグのセルは特定のシンタックスに準拠しており、1 つのセル、または事前定義された相互の空間関係を保持する必要があるセルグループを意味します。例えば、EasyBuilder タグ Input:Fixture は、必ず 3 つの連続するセル (EasyBuilder のタグラベル [行]、[列]、および [角度] の行の下) の行で構成される必要があり、これにより EasyBuilder 環境における X、Y、および Angle データが関連付けられます。セルの空間関係を変更したり、特定のセルを削除したりすると、ジョブで予期せぬ動作が引き起こされる可能性があります。

位置決めツールまたは検査ツールが EasyBuilder ジョブに追加されると、EasyBuilder アプリケーションでは、ツールの動作と EasyBuilder 環境で表示される項目を定義する、EasyBuilder タグおよびテキストラベルのセルの EasyBuilder スプレッドシートを解析します。EasyBuilder タグのセルは、ツールのスニペット内のほかの EasyBuilder タグのセル間のセル参照も意味し、さらにジョブ内のほかの EasyBuilder スニペットへのリンクも意味します。例えば、EasyBuilder ツールのスニペットは、EasyBuilder タグのセルを介して、フィクスチャ、キャリブレーション、および全体的な PASS/FAIL ステータスデータを管理します。

In-Sight ビジョンツールの関数

ビジョン処理アルゴリズムを提供する In-Sight ビジョンツールの関数は、EasyBuilder 開発環境における位置決めツールと検査ツールの中核機能です。ほとんどの In-Sight ビジョンツールの関数は、関数のパラメータに含まれる複雑で動的な引数に依存しているため、これらの数式は編集しないことをお勧めします。

例 - EdgeLocation スニペットの FindLine セル依存関係と FindLine プロパティシート

ツールのパラメータ 

オペレータ I/F 関数は、In-Sight ビジョンツール関数やほかの In-Sight 関数のプロパティシートのパラメータとリンクされており、これにより、EasyBuilder 環境における位置決めツールと検査ツールのコントロールパラメータが決まります。EasyBuilder 環境で表示されるパラメータは、6 つのオペレータ I/F 関数のいずれか 1 つのすぐ上にあるツールパラメータラベルによって示されます。

  • Button 関数: EasyBuilder 環境でボタンコントロールを表示します。
  • CheckBox 関数: EasyBuilder 環境でチェックボックスコントロールを表示します。
  • EditFloat 関数: EasyBuilder 環境で整数編集コントロールを表示します。
  • EditInt 関数: EasyBuilder 環境で浮動小数点数編集コントロールを表示します。
  • EditString 関数: EasyBuilder 環境でテキスト編集コントロールを表示します。
  • ListBox 関数: EasyBuilder 環境でドロップダウンリストボックスコントロールを表示します。

オペレータ I/F 関数は、In-Sight ビジョンツール関数やほかの In-Sight 関数のプロパティシートのパラメータと相関しています。通常は、スプレッドシートでの絶対セル参照を介して別の入力パラメータにリンクされています。別の状況では、オペレータ I/F 関数がいくつかの関数のパラメータにリンクされていたり、EasyBuilder の位置決めツールまたは検査ツールに追加のロジックを提供するために含められていたりすることもあります。EasyBuilder 開発環境で正常に表示されるためには、オペレータ I/F 関数のすぐ上のセルにツールパラメータラベルを入力する必要があります (テキストの入力前にアポストロフィ (') を入力します)。

例えば、エッジ位置決めツールのエッジコントラストコントロールの場合は、EditInt 関数のすぐ上に「Edge Contrast (エッジコントラスト)」というツールパラメータラベルがあります。このラベルは、FindLine 関数の AcceptThresh パラメータへの絶対セル参照として設定されています。

例 - オペレータ I/F 関数と EasyBuilder パラメータコントロール

表示されるグラフィックスと対象領域

EasyBuilder 環境における対象領域グラフィックスと検出された特徴の表示方法を定義するオペレータ I/F 関数。EasyBuilder の各位置決めツールと検査ツールには領域 (円形または矩形) があり、EditAnnulus または EditRegion 関数を使用して領域の形状を定義します。各円形領域は、EditAnnulus 関数で構成され、その後に、行、列、内側の半径および外側の半径を定義するセルが続きます (これらのセルは、正常に機能するためには、常にこの順序で表示される必要があります)。各矩形領域は、EditRegion 関数で構成され、その後に、行、列、高さ、幅、角度およびカーブのデータを定義するセルが続きます (これらのセルは、正常に機能するためには、常にこの順序で表示される必要があります)。

例 - オペレータ I/F 関数と表示される EasyBuilder のグラフィックス

スプレッドシートでの EasyBuilder ツールパラメータの追加、削除および名前変更 

EasyBuilder ツールのスニペットはさまざまな In-Sight 関数で構成され、それらの関数のいくつかには、デフォルトで、EasyBuilder 開発環境では表示されない追加機能が含まれています。これらの追加パラメータは、スプレッドシート環境内で設定することによって、EasyBuilder 環境で有効にして表示することができます。

ヒント :  プロパティシートのパラメータは、設定項目をドラッグ & ドロップして、スプレッドシートに配置することができます。プロパティシートからパラメータを選択してから、それをスプレッドシートにドラッグすることによって、パラメータのラベルとエディットコントロールが自動的に作成され、スプレッドシートで参照できるようになります。例えば、ExtractBlobs 関数のプロパティシートが開いている場合に、[しきい値] パラメータをスプレッドシートのセル A2 にドラッグ & ドロップすると、セル A2 に「Threshold (しきい値)」というテキストが入力され、セル A3 に EditInt 関数が入力されます。この場合、ExtractBlobs 関数のプロパティシートにある [しきい値] パラメータが、自動的にセル A3 への絶対参照として設定されます。

スプレッドシートで EasyBuilder ジョブを編集する場合の重要な指針 

行を追加または削除するときには、個々のセルをクリックして、[挿入] メニューで [セル] を選択するか、右クリックメニューを使用して [挿入] または [削除] を選択します。これによりそれぞれ、[セルの挿入] ダイアログか [セルの削除] ダイアログが開かれます。必ず、2 つある [セルをシフト] オプションのいずれかを選択してください。

  • EasyBuilder スニペットには列を挿入しないでください。
  • スニペットから EasyBuilder のタグを削除しないでください。
  • 列 I または R には関数または数式を挿入しないでください。

これらのいずれかの操作を実行すると、依存関係が壊れ、EasyBuilder ジョブが正常に機能しなくなる可能性があります。

:  スプレッドシート環境でジョブを編集するには、ユーザのアクセスレベルがフルアクセスに設定されている必要があります。デフォルトでは、スプレッドシート環境でジョブが誤って編集されるのを防止するため、EasyBuilder ジョブがロックされています。開始前に、[ファイル] メニューで [ジョブの保護を解除...] を選択してジョブの保護を解除してください。

EasyBuilder ツールのスニペットへのパラメータの追加

EasyBuilder のほとんどの位置決めツールと検査ツールには、オペレータ I/F 関数を追加し、次に新規作成されたコントロールをスプレッドシートの既存のプロパティシートパラメータまたはロジックにリンクすることによって追加のパラメータを表示する機能があります。スプレッドシートでのオペレータ I/F 関数の配置により、EasyBuilder 開発環境での表示順序が決まります。

:  デフォルトでは、スプレッドシート環境でジョブが誤って編集されるのを防止するため、EasyBuilder ジョブがロックされています。開始前に、[ファイル] メニューで [ジョブの保護を解除...] を選択してジョブの保護を解除してください。

スプレッドシート環境で EasyBuilder の位置決めツールまたは検査ツールにパラメータを追加するには:

  1. [パレット] の [結果] タブでツールを右クリックして [Go to this tool in the Spreadsheet (スプレッドシート内のこのツールに移動)] を選択するか、または [表示] メニューで [スプレッドシート] を選択することにより、スプレッドシート環境内のツールに移動します。

    :  EasyBuilder 環境の [パレット] の [結果] タブでツールがハイライト表示されている場合は、スプレッドシートでツールのスニペットがハイライト表示されます。
  2. 表示されるスプレッドシート関数のパラメータを識別し、パラメータのタイプに基づいてテキストラベルとオペレータ I/F 関数を追加します。各オペレータ I/F 関数では、その上のセルにテキストラベルが表示されている必要があります。ラベルは、EasyBuilder に対して、表示されているパラメータの「名前」と、EasyBuilder の設定ペインおよび [結果の設定] アプリケーションステップ に表示される項目 ([入力][出力]、および [通信]) を示します。例えば、エッジ位置決めツールは、EditInt 関数の上に「Edge Width (エッジ幅)」というテキストラベルを追加することによって、FindLine 関数の [エッジ幅] パラメータが表示されるように変更できます。

    :  スニペットで新しいラベルとコントロールを挿入するため空のセルが不足している場合は、既存のラベルとコントロールを切り取り、追加の行を挿入して、切り取ったラベルとコントロールを新しく作成した領域に貼り付けます。列は挿入しないでください。ラベルのテキストを入力する場合には、テキストの前にアポストロフィ (') を忘れずに入力してください。
  3. 目的の関数のパラメータと新規作成したオペレータ I/F 関数の間の絶対セル参照を作成します。目的の関数のプロパティシートを開き、目的のパラメータを選択して、プロパティシートのツールバーで [絶対参照を挿入] ボタンをクリックします。これにより、セル選択モードに切り替わります。新規作成したオペレータ I/F 関数を選択し、[OK] ボタンをクリックして選択を確定します。
  4. オペレータ I/F 関数の [セル状態] を EasyBuilder タグの EnabledStatus セルに設定して、コントロールを条件付きで有効にします。コントロールは、EasyBuilder 環境で正常に機能して表示されるためには、条件付きで有効化され、この特定のセルへの絶対参照として設定される必要があります。
  5. オペレータ I/F 関数が格納されているセルをハイライト表示し、[編集] メニューから [セル状態] を選択します。これにより、[セル状態] ダイアログが開きます。
  6. [Conditionally Enabled (条件付きで有効化)] オプションを選択し、[Conditional Reference (条件付き参照)] を [絶対] に設定して、[セルの選択] ボタンをクリックします。これで、セル選択モードに切り替わります。「Enabled Status (有効化ステータス)」ラベルのセルの直下にある EasyBuilder タグの EnabledStatus セルを選択します。[OK] ボタンをクリックして選択を確定します。
  7. これで、EasyBuilder 開発環境に戻るときに、新しく追加したコントロールが有効になって表示されます。

例 - エッジ位置決めツールへの EdgeWidth パラメータの追加

この例では、EditInt 関数の上に「Edge Width (エッジ幅)」というテキストラベルを追加することによって、FindLine 関数の [エッジ幅] パラメータが表示されるようにエッジ位置決めツールに変更を加えます。

  1. EasyBuilder 開発環境において、[位置決め] アプリケーションステップ内で、エッジ位置決めツールを追加します。
  2. [パレット] の [結果] タブで、エッジ位置決めツールを右クリックし、[Go to this tool in the Spreadsheet (スプレッドシート内のこのツールに移動)] を選択します。

  3. エッジ位置決めツールには、オペレータ I/F 関数とツールパラメータラベルによる 2 行が含まれており、ツールパラメータラベル「Tool Enabled (ツール有効化)」で始まり、その下に ListBox 関数が配置されます。この例では、EasyBuilder 開発環境で表示される [エッジ幅] パラメータが [Edge Contrast (エッジコントラスト)] パラメータと [Edge Transition (エッジ移動)] パラメータの間に表示されるようにします。したがって、「Edge Contrast (エッジコントラスト)」ラベルと ListBox 関数の右側の 2 行のセルをハイライト表示し、8 個のセルを 1 列右側にカット & ペーストします。

  4. ツールパラメータラベル「Edge Contrast (エッジコントラスト)」のセルの右側のセルに、「Edge Width (エッジ幅)」という名前でツールパラメータラベルを入力します (テキストを入力する前にアポストロフィ (') を使用します)。

  5. ツールパラメータラベルの下のセルに、右クリックメニューを使用して [関数の挿入] を選択するか、[挿入] メニューで [関数] を選択することによって EditInt 関数を挿入して、[関数の挿入] ダイアログを開きます。

  6. EditInt 関数を挿入すると、関数のプロパティシートが自動的に開きます。EditInt 関数の [最小] と [最大] のパラメータを 0 と 10 に設定し、[OK] ボタンをクリックして変更を確認します。

  7. スニペット内で ( データ構造体によって示される) FindLine 関数を見つけ、そのセルをダブルクリックして関数のプロパティシートを開きます。

  8. FindLine プロパティシートで、EdgeWidth パラメータを選択して、プロパティシートのツールバーで [絶対参照を挿入] ボタンをクリックします。

  9. これによりセル選択モードが開始されるので、EditInt 関数が格納されているセルを選択します。セルをダブルクリックするか、または [ジョブの編集] ツールバーで [OK] ボタンをクリックして、選択を確定します。

  10. FindLine のプロパティシートが再表示されます。EdgeWidth パラメータには、EditInt 関数への絶対セル参照が表示されます。[OK] ボタンをクリックして変更を確定します。

  11. 最後に、FindLine 関数の EdgeWidth パラメータを制御している EditInt 関数は、ツールで実行するように条件付きで有効にされる必要があります。EditInt 関数を右クリックし、右クリックメニューから [セル状態] を選択して [セル状態] ダイアログを開きます。
  12. [セル状態] を [Conditionally Enabled (条件付きで有効化)] に設定し、[セルの選択] ボタンをクリックしてセル選択モードを開始します。

  13. EasyBuilder タグのセル「EnabledStatus」を選択します。セルをダブルクリックするか、または [ジョブの編集] ツールバーで [OK] ボタンをクリックして、選択を確定します。

  14. [セル状態] ダイアログが再び表示されます。[OK] ボタンをクリックして選択を確定します。
  15. EasyBuilder 開発環境に戻ります。ツールの [設定] タブに、[エッジ幅] パラメータが表示されます。

EasyBuilder ツールのスニペットからのパラメータの削除

一部のアプリケーションでは、EasyBuilder の位置決めツールまたは検査ツールにおいて、有効にするコントロールのサブセットの数を制限する必要があります。このような状況では、特定のコントロールを削除してツールを簡素化することができます。

スプレッドシート環境の EasyBuilder の位置決めツールまたは検査ツールからパラメータを削除するには:

  1. [パレット] の [結果] タブでツールを右クリックして [Go to this tool in the Spreadsheet (スプレッドシート内のこのツールに移動)] を選択するか、または [表示] メニューで [スプレッドシート] を選択することにより、スプレッドシート環境内のツールに移動します。
  2. 削除するパラメータのラベルおよびオペレータ I/F 関数が格納されているセルを選択します。ハイライト表示したセルを右クリックし、[コンテンツのクリア] オプションを選択します。

    :  セルは削除しないでください。セルの位置がずれると依存関係が破れ、ジョブが正常に機能しなくなる可能性があります。
  3. これでセルが空になります。EasyBuilder 開発環境に戻っても、コントロールは表示されません。

EasyBuilder ツールのスニペットのパラメータ名の変更

EasyBuilder の位置決めツールと検査ツールのパラメータ名は、パラメータ名を変更することにより、アプリケーションとジョブに応じてカスタマイズ可能です。

スプレッドシート環境の EasyBuilder の位置決めツールまたは検査ツールからパラメータを削除するには:

  1. [パレット] の [結果] タブでツールを右クリックして [Go to this tool in the Spreadsheet (スプレッドシート内のこのツールに移動)] を選択するか、または [表示] メニューで [スプレッドシート] を選択することにより、スプレッドシート環境内のツールに移動します。
  2. 変更するテキストラベルのセルを選択し、[ジョブの編集] ツールバーの数式エディタに新しい名前を入力します。テキストの前からアポストロフィ (') を削除しないでください。削除すると、テキストラベルが EasyBuilder に認識されなくなります。
  3. これで、EasyBuilder 開発環境に戻ると、コントロールが新しい名前で表示されます。