ラベルを操作する

ラベルを使用するツールの概要

このトピックでは、FlexSimのさまざまなツールでラベルを作成、設定、読取、変更する方法について説明します。このトピックを読む前に、「ラベルについての主要な概念」に目を通して、FlexSimでのラベルの機能の基本について理解してください。

FlexSimの多数のツールが、ラベルを使用してロジックをコントロールします。次のセクションでは、最も広範囲にラベルを使用するツールの概要について説明します。

処理フローツール

シミュレーションモデルのロジックを作成するために処理フローツールを使用できます。処理フローツールはラベルに大きく依存して、変化する条件に柔軟に適応できるモデルロジックを作成します。処理フローで、ラベルがトークンに割り当てられます。これらのトークンがシミュレーションモデル内を移動するにつれて、さまざまなアクティビティがトークンのラベルを作成、変更、参照して、モデルのロジックをコントロールします。

処理フローを3Dモデルにリンクして、モデル内で発生することをコントロールする場合は、ラベルを使用して行う必要があります。これは、ラベルには3Dモデル内のオブジェクトへの参照が含まれ、トークンで発生することと3Dモデル内のオブジェクトで発生することとの間にリンクを作成するためです。シミュレーションモデル内を移動する際に、トークンをフローアイテムにリンクするために最もよく使われます。

処理フローツールでラベルを作成して設定する主な方法は、[ラベルを割り当てる]アクティビティを使用することです。

[ラベルを割り当てる]アクティビティは、シミュレーションの実行中にトークンを遅延させることはありません。トークンのラベルを作成または変更するのみです。つまり、トークンが処理フローに留まる時間を遅らせることなく、処理フローのどこででも[ラベルを割り当てる]アクティビティを使用できます。たとえば、[遅延]アクティビティにはラベルを割り当てたり変更したりする機能はありませんが、[遅延]アクティビティの直後に[ラベルを割り当てる]アクティビティ使用してラベルを変更できます。新しいラベルを変更することで、[遅延]アクティビティを通過した結果、トークンに何らかの変更が行われたことを表すこともできます。

トークンの作成アクティビティの1つであるスケジュールソースには、必要に応じて新たに作成されたトークンにラベルを割り当てる機能もあります。スケジュールソースには、[ラベルを割り当てる]アクティビティとほぼ同じように機能する[ラベルを割り当てる]プロパティがあります。

その他に、特定のイベントリスニングアクティビティがラベル照合を使用します。サブフローと共有アセット(リソース、リスト、ゾーン)が、関連するトークンやリンクされた3Dオブジェクトへの参照を格納するためにラベルを作成する場合もあります。

このトピックでは主に[ラベルを割り当てる]アクティビティを中心に説明します。これらに関連するトピックの詳細については、以下を参照してください。

3Dモデル

処理フローツールほど広範囲にラベルを使用しませんが、3Dモデルでもラベルが多く使用されます。ラベルは、フローアイテムと、固定リソースやタスク実行者などのその他の3Dオブジェクトの両方に割り当てることができます。

3Dモデルでラベルを使用する最も一般的な理由は、ある固定リソースから他の下流の固定リソースにオブジェクトをルーティングする方法をコントロールすることにあります。ポート、リスト、コンベヤはすべて、フローアイテムをどこにルーティングするかを決めるためにラベルを使用できます。

ラベルを使用するもう1つの一般的な理由は、重量やカスタムステータスなどのフローアイテムの基本プロパティに関する情報を追跡することにあります。

フローアイテムにラベルを作成して設定する主な方法は、ラベルを設定または変更するトリガーのピックリストを使用することです。固定リソースまたはタスク実行者にラベルを作成する場合は、オブジェクトのプロパティウィンドウでラベルを割り当てることができます。

統計コレクター

統計コレクターは、モデルからデータを収集するために広範囲にラベルを使用します。ラベルを使用してイベントをリッスンし、イベント発生時には、3Dモデルまたは処理フローのさまざまなオブジェクトに関するデータを収集します。処理フローツールでラベルを使用するときに当てはまる考え方の多くは、統計コレクターで使用するときにも当てはまります。このトピックでは、統計コレクターラベルを具体的に使用する方法については説明しません。詳細については、「統計コレクターを使用する」を参照してください。

ラベルを作成する

ラベルを作成する方法は、使用しているツールによって異なります。次のセクションでは、処理フローツールと3Dモデルの両方でラベルを作成する方法について説明します。

処理フローツールでラベルを作成する

ほとんどの場合、[ラベルを割り当てる]アクティビティを使用して、処理フローツールでラベルを作成、設定、変更します。[ラベルを割り当てる]アクティビティを使用して処理フローのトークンに新たにラベルを作成するには:

  1. ラベルを割り当てる]アクティビティを処理フローに追加します。詳細については、「アクティビティを追加および接続する」を参照してください。
  2. [クイックプロパティ]で[割り当て先]ボックスにtokenが表示されていることを確認します。このプロパティは、このアクティビティがすべての入るトークンにラベルを割り当てることを意味します。
  3. ラベル]グループの下にある[追加]ボタン をクリックして、新しいラベルを追加します。
  4. 名前]ボックスで、既存のテキストを削除し、このラベルに含まれる情報を表現する名前を新たに入力します。たとえば、ラベルがトークンの重量を表す場合は、ラベルに「Weight」という名前を付けます。
  5. ]ボックスに、ラベルの値を割り当てます。詳細については、「ラベル値を設定する」を参照してください。
  6. 必要に応じて、[追加]ボタン を使用してさらにラベルを追加します。必要に応じて[削除]ボタン を使用してラベルを削除します。

3Dモデルのフローアイテムにラベルを作成する

通常、フローアイテムが固定リソースの起動のトリガーを引き起こすと、フローアイテムにラベルを作成します。

  1. 3Dオブジェクトをダブルクリックして、プロパティウィンドウを開きます。
  2. トリガー]タブで[追加]ボタン をクリックして、メニューを開きます。適切なトリガーを選択し、起動されたときにフローアイテムにラベルを作成するようにします。たとえば、「作成時」や「到着時」です。
  3. 新しく追加されたトリガーの横にある[追加]ボタン をクリックして、ピックリストオプションのメニューを開きます。
  4. ラベルを設定]ピックリストオプションを探します。トリガーによっては、ルートメニューにあることもあれば、[データ]サブメニューにあることもあります。
  5. ピックリストオプションで、[オブジェクト]ボックスの表示が「item」になっていることを確認します。
  6. ラベル]ボックスに、ラベルの名前を引用符(" ")で囲んで入力します。
  7. ]ボックスに、ラベルの値を割り当てます。詳細については、「ラベル値を設定する」を参照してください。

3Dモデルの固定リソースまたはタスク実行者にラベルを作成する

固定リソースまたはタスク実行者にラベルを追加するには:

  1. 3Dオブジェクトをダブルクリックして、プロパティウィンドウを開きます。
  2. ラベル]タブにテーブルが表示され、そのテーブルでオブジェクトのラベルを追加および編集できます。[追加]ボタン をクリックして、メニューを開きます。
  3. メニューには選択可能なデータタイプの一覧が表示されます。作成するラベルの種類に一致するデータタイプを選択します。
  4. 新しいラベルが下のテーブルに表示されます。ラベルの名前をダブルクリックして、ラベルの名前を変更します。
  5. ラベル名の横にある空の列に、ラベルの初期値を入力します。

ラベル値を設定する

下表に、さまざまなタイプのラベル値を設定する方法を示します。

値のタイプ 割り当て方法
固定(静的)ラベル ラベルの値として数値または文字列(テキスト)を入力します。たとえば、値として10を入力すると、すべてのオブジェクトにこのラベルの値10が割り当てられます。
特定のオブジェクトへの参照 サンプラー]ボタン を使用してそのオブジェクトを選択するか、メニューから選択します。
ランダム統計分布 ラベルを割り当てるボックスの横にある矢印をクリックしてメニューを開きます。「統計分布」をポイントし、分布セレクターを開きます。適切な統計分布を選択し、パラメータを編集します。

たとえば、3つの異なる製品タイプを作成する場合に、1が最小で3が最大のDuniform分布方法を使用できます。このツールの使用方法と統計分布で使用可能なものの詳細については、「分布セレクターを使用する」を参照してください。
割合 トークンの特定の割合を特定のラベルに割り当てるには、ボックスの横にある矢印をクリックしてメニューを開きます。[割合別]を選択してピックリストオプションを開きます。[追加 ボタンを使用して、割合グループを必要な数だけ追加します。次に、割合とその割合に割り当てられる値を編集します。
FlexScript より複雑なオプションについては、カスタムFlexScriptコードを使用してラベル値を生成できます。

ラベル値のプロパティの横にあるプルダウンメニューで、利用可能なオプションをいくつか自由に試してみてください。

ラベルを読み取る、または参照する

このセクションを読む前に、FlexSimでのラベルの読込、参照の概要について、「ラベルの仕組み」をお読みください。

FlexSimでは多数のプロパティにより値を参照することができるため、変化する動的な条件にシミュレーションモデルが対応できます。プロパティのラベル値を置き換えるときには、基本的なFlexScriptを使用してラベルを参照できます。FlexScriptにそれほど精通していない場合は、プロパティごとにメニューを使用して、シミュレーションモデルで利用可能なラベルを表示するオプションを選択することもできます。

処理フローの多くのアクティビティには、ユニバーサル編集機能を使用する特別なプロパティがあります。ユニバーサル編集機能は、FlexScriptを知らなくても特定のプロパティに複雑な機能を簡単に追加できるように設計されています。

次の画像で示すように、プロパティにユニバーサル編集機能があるときは、プロパティボックスの周りが青色で囲まれているのでわかります。

プロパティフィールドに「token.」と入力すると、これまで処理フローで作成した利用可能なラベルを検索して、これらのラベルをメニューに一覧表示します。一覧から適切なラベルを選択するか、引き続き手動でラベル名を入力します。シミュレーションの実行中に、プロパティは入力トークンのラベルを検索します。

ラベル値を変更する

ラベルの値を変更する方法は、ラベルを作成して初期値を設定する方法と似ています。その処理は3Dモデルでは同じですが、処理フローでは少し異なります。

  1. ラベルを割り当てる]アクティビティを処理フローに追加します。
  2. [クイックプロパティ]で[割り当て先]ボックスにtokenが表示されていることを確認します。このプロパティは、このアクティビティがすべての入るトークンにラベルを割り当てることを意味します。
  3. ラベル]グループの下にある[追加]ボタン をクリックして、新しいラベルを追加します。
  4. 名前]ボックスで、既存のテキストを削除し、変更する正確なラベル名を入力します。たとえば、「Weight」という名前のラベルを変更する場合は、このボックスに正確な名前を入力します。
  5. ]ボックスに、ラベルの値を割り当てます。このプロパティの横にあるプルダウンメニューをクリックすると、次のようなラベルの変更に使用できるオプションがいくつか表示されます。
    • Remove Label
    • 増加量ラベル
    • 条件付き値