条件分岐

このツールでは、一定の条件が真たされたときにどのツールを実行するか、条件が満たされていないときにどのツールを実行するかを定義できます。これは、ツール 式を判定 に似ていますが、このツールでは評価した条件に応じてさらに処理を指定できる点が異なります。

この条件には、前のツール数値または文字列の結果を指定できる他、手動で指定した値を指定できます。ただし、その結果をブール値にマップできるように条件を定義する必要があります。

他の MERLIC ツールと違って、このツールを挿入するときにデフォルトパラメーターはありません。条件でパラメーターを使用する場合、手動でツールに追加する必要があります。詳細については、パラメーターの追加の節を参照してください。ツールボード の下部に、2 つの分岐トリガーコネクターがデフォルトでリストされます: 「条件」と「デフォルト」です。トリガーコネクターの詳細については、トリガーコネクターを参照してください。

グラフィックウィンドウの代わりに、このツールには、この条件を定義できる入力フィールドが表示されます。条件の入力フィールドに入力すると、エントリに一致する可能性のある関数と演算子を含むオートコンプリートリストがポップアップします。このリストには、手動で追加されたパラメーターと以前に定義された結果も含まれています。

リスト全体から直接参照するには、ショートカット CTRL + スペースキーを使用してポップアップを手動で開きます。指定可能な関数と演算子の詳細については、「式を判定」のトピックを参照してください。

アイコン は、有効な分岐トリガーを示します。分岐トリガーは常に 1 つ有効になっています: 条件が真の場合、コネクター「条件」が有効になり、トリガーを送信します。それ以外の条件下(条件が真ではなく、条件が定義されていない場合やツールが不正状態にある場合)では、分岐トリガー「デフォルト」が有効になってトリガーを送信します。有効なコネクターに接続されているすべてのツールが実行されます。

ツールワークスペース の下部で結果を非表示にすることができます。たとえば、他のツールに未接続で、ツールフロー のさらに下でのみ使用される中間結果がある場合です。非表示にしたい結果を右クリックし、「非表示」を選択します。非表示の結果を表示するには、結果の右側にある ボタンを使用します。

以下の画像は、分岐が 2 つある「条件分岐」ツールの模式図です。どちらの分岐にもツールが 2 つあります。左の例ので、条件は真です。したがって、コネクター「条件」はトリガーを送信し、ツール T11-T12 がある分岐が実行されます。右のの例では、条件は真ではありません。したがって、コネクター「デフォルト」はトリガーを送信し、ツール T21-T22 がある分岐が実行されます。

ツールフロー オプション

MERLIC は、「条件分岐」ツール用の追加の視覚化オプションをサポートしています。ツールフロー オプションを有効にすると、実行中にスキップされたツールがハイライト表示されます。詳細については、トピック「ツールフロー」を参照してください。

パラメーター

このツールにデフォルトパラメーターはありません。したがって、ツールを挿入したときに、パラメーターは表示されません。パラメーター値を式で使用する場合、前のツールの結果値を使用するか、ツールの新しいパラメーターを定義できます。

サポートしているセマンティックタイプ

このツールでは、パラメーターに以下のセマンティックタイプをサポートします:

  • 任意
  • double
  • long
  • string

このツールですべてのセマンティックタイプをサポートしているわけではありませんが、'ツールの状態' など、この結果のセマンティックタイプをサポートしていなくても、前のツールの数値結果、または文字列結果を使用できます。ただし、その結果に対する接続を作成すると、個々の新しいパラメーターのセマンティックタイプは、'any' に設定されます。

セマンティックタイプの 'long' は整数でも値の範囲が広い整数を表しますが、以下の解説では引き続き、整数と呼びます。

パラメーターの追加

前のツールの結果をパラメーターとして使用

前のツールの結果をユーザーの式で使用するとき、結果を「条件分岐」ツールに接続する必要があります。

  1. 条件分岐」ツールで結果をパラメーターとして使用する前のツールに移動します。
  2. 接続の矢印を目的のツール結果から接続のドロップターゲットまでドラッグします。あるいは、コンテキストメニューを開き、メニューエントリ「接続先」をクリックします。
  3. ツール「条件分岐」を選択し、メニューエントリ「<接続を追加>」をクリックします。

接続した結果は、「条件分岐」ツールの新しいパラメーターとしてすぐに追加されます。パラメーターの名前とセマンティックタイプは、接続した結果から自動的に適合されます。接続した結果値のセマンティックタイプをこのツールでサポートしていない場合、新しいパラメーターでは、自動的に 'any' に設定されます。

あるいは、以下に述べるように、ツールで新しいパラメーターを定義して、新しいパラメーターを前のツールの結果に接続することもできます。

新しいパラメーターの定義

新しいパラメーターを定義するには、新しいコネクターを追加して、パラメーター設定を定義します。

  1. ツールボードの左上角の ボタンをクリックします。パラメーター設定を定義するダイアログウィンドウが開きます。
  2. このダイアログウィンドウで新しいパラメーターのセマンティックタイプを選択します。
  3. オプションで新しいパラメーターの最小値と最大値を定義します。
  4. 'Ok' をクリックして、設定を確定します。新しいパラメーターは、デフォルト名で直ちに追加されます。
  5. パラメーター名をダブルクリックすると、オプションでパラメーター名を変更できます。ツールパラメーターと結果の命名規定については、 ツールとコネクターの名前の変更の章を参照してください。
  6. コネクターで新しいパラメーターの値を定義します。

パラメーターのセマンティックタイプと値の範囲を保存すると、これらの設定は以後変更できません。セマンティックタイプや値の範囲を調整する場合は、目的の設定で新しいパラメーターを追加します。

条件

評価する式は、ツールボードの入力フィールドに定義してください。条件が定義されていない場合や、不正条件が定義されている場合、MERLIC では、ツールボードツールフロー パネルにエラーが表示されます。ただし、このエラーは、条件の欠落や不正条件の場合のみ発生します。重要なワークスペースエラーは発行されません。したがって、その場合、「ツール状態」結果では「[0; OK]」が返ります。

評価のためのツールパラメーターの値を使用するには、パラメーター名を条件の入力フィールドに入力します。パラメーターなしで条件を定義することもできます。条件は、数値、文字列値、混合タプルに適用できます。ただし、条件をブール値に割り当てることができることを確認してください。すなわち、どの分岐にトリガーをかけるか確実に評価するためには、結果が真か偽であることが求められます。タプル タプルは、数値や文字列などの要素のリストです。が返った場合、真条件になるためにはそのタプルの各要素が 1 であることとします。条件が偽か、ブール値に割り当てることができない場合、「デフォルト」分岐トリガーが起動し、個々の分岐が実行されます。

各種の条件の詳細については、ツール 式を判定 のリファレンスマニュアルも参照してください。

前のツールの結果を条件内で使用すると、以前に有効であった条件が実行時に無効になることがあります。これは、接続したパラメーターの値が、実行時に変化することがあるためです。 例たとえば、条件を 'Condition := Parameter' と定義し、'Parameter' の値が 1 のとき、条件は有効で真になります。したがって、ツールでエラーにはなりません。ただし、実行時に 'Parameter' の値が、たとえばタプル [1;2] に変化すると、定義した条件を真または偽に解釈できないため、その条件は無効になります。無効な条件をツールは偽として判断します。この場合、条件を無効にしないためには、たとえば 'Condition := Parameter[0] > 0' と設定すれば、より適切な条件が得られます。

分岐トリガー

条件:

この分岐トリガーは、条件が真の場合に、トリガーを送信します。

デフォルト:

この分岐トリガーは、条件が偽の場合にトリガーを送信します。

結果

基本結果

結果:

この結果では、条件の結果値が返ります。結果のセマンティックタイプは、「any」に設定されます。

ツール状態:

ツール状態」はツール状態の情報を返します。したがって、エラー処理に使うことができます。さまざまなツールの状態結果の詳細については、 ツール状態 結果 のトピックを参照してください。

追加結果

処理時間:

この結果は、ツールの直近の実行の持続時間をミリ秒単位で返します。結果は、追加結果として提供されます。したがって、デフォルトでは非表示になっていますが、ツール結果の横にある ボタンを使用して表示できます。詳細については、ツールリファレンス概要の処理時間の節を参照してください。

アプリケーションの例

このツール、以下の MERLIC Vision App 例で使用します:

  • adapt_brightness_for_measuring.mvapp
  • check_correct_filling_on_3d_height_images.mvapp
  • measure_distance_to_center_led.mvapp