タスク1.3 - ゾーンを追加してデータを収集する

タスクの概要

これまでチュートリアルでは、リストとリソースの共有アセットを使用する方法について学習しました。このチュートリアルのタスクでは、3つ目の共有アセットの「ゾーン」を使用する方法を学習します。ゾーンは、統計収集とモデルへの制約の追加の両方に役立ちます。このチュートリアルのタスクでは、主にゾーンの統計機能を示します。シミュレーションモデルで現在処理されているすべてのアイテムの合計価格を追跡する処理フローを設計します。

ステップ1 ゾーンを追加する

このステップでは、フローアイテムに「Price」という名前のラベルを追加して、各フローアイテムに1~100ドルの価格をランダムに割り当てます。次に、このラベルを参照する処理フローにゾーンを追加して、シミュレーションモデルで現在処理されているすべてのアイテムの合計価格を計算します。これらのアイテムは、後のステップで作成する処理フローのゾーンセクションに、それぞれトークンで表されます。

このラベルを設定し、処理フローでゾーンを作成するには:

  1. 3Dモデルで、[ソース]をクリックして、右側でそのプロパティを表示します。
  2. トリガー]セクションで、[追加]ボタンをクリックして、メニューを開きます。[作成時]を選択してこの新しいトリガーを追加します。
  3. 新しいOnCreationトリガーの横にある[追加]ボタン をクリックしてメニューを開きます。[データ]をポイントし、[ラベルを設定]を選択してラベルピックリストオプションを開きます。
  4. ラベル]ボックスに「"Price"」と入力します。
  5. ]ボックスに「uniform(1,100)」と入力します。
  6. 処理フローが開いていてアクティブであることを確認してください。
  7. ライブラリの[共有アセット]グループで、処理フローの[共有アセット]形状に[ゾーン]を追加します。
  8. ゾーンの名前を「ゾーン:価格計算」に変更します。
  9. ゾーン]の[プロパティ]で、[その他のプロパティ]ボタンをクリックしてそのプロパティを開きます。
  10. サブセット]タブで[追加]ボタンをクリックして新しいサブセットを追加します。
  11. サブセット名]ボックスに「AllTokens」と入力します。
  12. サブセットの計算]グループで、[追加]ボタン をクリックして、サブセットの計算テーブルに行を追加します。
  13. 計算名]列のセルで、現在のテキストを削除し、「TotalPrice」と入力します。
  14. ラベル/合計式]列のセルで、現在のテキストを削除し、「MyItem.Price」と入力します。
  15. OK]ボタンをクリックして変更を保存し、ウィンドウを閉じます。

モデルを保存することをおすすめします。

ステップ2 価格分析アクティビティを追加する

このステップでは、処理フローにさらにアクティビティを追加します。これらのアクティビティでは、ゾーンの価格計算機能をコントロールします。作業が終了すると、処理フローは次の画像のようになります。

現時点では、これらのアクティビティの追加と処理フローへの接続のみを行います。後のステップで、プロパティを編集して機能を追加します。

これらのアクティビティを追加して接続するには:

  1. ライブラリの[表示]グループで、新しい[コンテナ]形状を新しい処理フローに追加します。
  2. わかりやすくするために、[処理]形状の名前を「価格分析」に変更してください。
  3. [価格分析]形状で、次のアクティビティを追加してスタックブロックを作成します。
    • イベントトリガーソース]アクティビティ([トークンの作成]の下)
    • ゾーンに入る]アクティビティ([共有アセット]の下)
    • イベントを待つ]アクティビティ([ベーシック]の下)
    • ゾーンから出る]アクティビティ([共有アセット]の下)
    • 1つの[シンク]アクティビティ([ベーシック]の下)
  4. 分かりやすくするために、アクティビティの名前を次のように変更します。
  5. アクティビティ 新しい名前
    ソース ソース:アイテムが作成されました
    ゾーンに入る ゾーンに入る:価格計算
    イベントを待つ アイテムがシンクに入るまで待つ
    ゾーンから出る ゾーンから出る:価格計算

シミュレーションモデルを保存することをおすすめします。

ステップ3 アクティビティのプロパティを編集する

このステップでは、処理フローの[価格分析]セクションでアクティビティのプロパティを編集します。このセクションの各アクティビティが機能する方法の概要を次に示します。

アクティビティ 説明
ソース:アイテムが作成されました 「イベントトリガーソース」はイベントリスニングアクティビティです。つまり、シミュレーションモデルで特定のイベントが発生するたびにトークンを作成します。この処理フローでは、3Dモデルのソースでフローアイテムが作成されるたびに、イベントトリガーソースでトークンが作成されます。作成された特定のフローアイテムへの参照を含む「MyItem」というラベルを新しく作成されたトークンに割り当てることで、トークンをフローアイテムにリンクさせます。
ゾーンに入る:価格計算 このアクティビティにより、新しいトークンが価格計算ゾーンに入ります。
アイテムがシンクに入るまで待つ 「イベントを待つ」アクティビティは、「イベントリスニング」アクティビティでもあります。このアクティビティでは、3Dモデルのシンクをリッスンします。フローアイテムがシンクに入るたびに、「MyItem」ラベルを使用して対応するフローアイテムにトークンを一致させます。
ゾーンから出る:価格計算 フローアイテムがシンクに入った後、対応するトークンは価格計算ゾーンを出ます。

これらのアクティビティのプロパティを編集するには:

  1. 価格分析]形状にあるアクティビティのスタックブロックをクリックして選択します。
  2. ソース:アイテムが作成されました]アクティビティの横にある[感嘆符]ボタン をクリックして、サンプリングモードに入ります。
  3. 3Dモデルで、[ソース]をクリックして、メニューを開きます。[作成時]を選択して、このイベントをサンプリングします。
  4. [プロパティ]の[ソース:アイテムが作成されました]アクティビティの[クイックプロパティ]で[ラベルの割り当て]テーブルを見つけます。[ラベル名]列の[作成されたアイテム]行に「MyItem」と入力します。
  5. オペレーション]列の下の[作成されたアイテム]行のセルをクリックしてメニューを開きます。[割り当てる]を選択します。
  6. ゾーンに入る:価格計算]アクティビティの横にある[感嘆符]ボタン をクリックして、サンプリングモードに入ります。
  7. ゾーン:価格計算]をクリックしてゾーンにリンクします。ゾーンがリンクされていることを示す青い線が表示されます。
  8. アイテムがシンクに入るまで待つ]アクティビティの横にある[感嘆符]ボタン をクリックして、サンプリングモードに入ります。
  9. 3Dモデルで[シンク]をクリックして、メニューを開きます。[エントリ時]を選択して、このイベントをサンプリングします。
  10. アイテムがシンクに入るまで待つ]アクティビティの[プロパティ]で、[ラベルの割り当て/一致]テーブルを検索します。[ラベル名]列の[入るアイテム]行で、空白のセルの内側をクリックします。セルの横に表示される矢印をクリックして、メニューを開きます。[MyItem]を選択します。
  11. オペレーション]列の[入るアイテム]行で、空白のセルの内側をクリックします。セルに表示される矢印をクリックして、メニューを開きます。[一致]を選択します。
  12. ゾーンから出る:価格計算]アクティビティの横にある[感嘆符]ボタン をクリックして、サンプリングモードに入ります。
  13. ゾーン:価格計算]をクリックしてリンクします。ゾーンがリンクされていることを示す青い線が表示されます。

シミュレーションモデルを保存することをおすすめします。

ステップ4 モデルを実行して合計価格を計算する

このステップでは、モデルを実行して、シミュレーションモデルで現在処理されているアイテムの合計価格を計算します。

  1. 処理フローで、[ゾーン:価格計算]をクリックして選択します。
  2. [プロパティ]で、[ステータスを表示]ボタンをクリックして、ゾーンの統計とステータスウィンドウを開きます。
  3. サブセット]タブが開いていることを確認してください。
  4. シミュレーションコントロールバーの[リセット]と[実行]ボタンをクリックしてモデルを起動します。

ゾーンの統計を確認すると、現在の「TotalPrice」の計算は上下に変動していることが分かります。この計算では、現在システムにあるすべてのアイテムの合計価格が確認できます。たとえばこの計算を使用すると、システムにキューされるアイテムが多過ぎることで、どのくらいの損失を出しているかが把握できます。

またこの計算は別のものに代用できます。たとえば、ゾーンは現在システムにあるすべてのアイテムの最新の重量を計算できます。

このチュートリアルでは、ゾーンの統計的用途を示していますが、ゾーンでゾーンへのアクセスをコントロールできることにも注意してください。たとえば、最大容量に達するとトークンがゾーンに入らないようにしたり、必要に応じて他の制約を追加したりできます。またゾーンで統計コレクターを使用して、シミュレーションモデルで処理されたすべてのアイテムの合計価格を計算することもできます。詳細については、「共有アセットについての主要な概念」を参照してください。

結論

以上で、共有アセットのチュートリアルは終了です。3つの共有アセットの機能や、多種多様なモデルロジックをシミュレートするさまざまな可能性についての理解を深めていただけたことと思います。