チュートリアルタスク2.2 - 出力コレクターを構築する
タスクの概要
このチュートリアルでは、ステーションの出力を記録する統計コレクターを作成します。このチュートリアルは、このシリーズのチュートリアル1で使用されたものと同じモデルをベースにしています。モデルのロード方法については、そのチュートリアルを参照してください。
このチュートリアルを辿ると、次のような新しい統計コレクターとチャートが出来上がります。
ステップ1 統計コレクターを設定する
このステップでは、新しい統計コレクターを作成して設定します。そのためには、次の手順を実行します。
- 画面の左側にある[ツールボックス]タブに移動します。
- ボタンをクリックして、新しいツールを作成します。[統計情報]セクションに移動して、[統計情報コレクター]オプションを選択します。新しい統計コレクター用の新しいプロパティウィンドウが開くはずです。
- プロパティウィンドウの一番上のフィールドをクリックして、統計コレクターの名前を「StationOutput」に変更します。
- [イベント]タブで、サンプラーボタンをクリックしてから、3DビューでStation1をクリックします。[Stations]オプションをポイントしてから、[On Output Change]を選択します。
- プロパティウィンドウで、[行の値]の横にある三角形をクリックし、[イベントオブジェクト(現在)]を選択します。
- プロパティウィンドウの[列]タブに移動して、ボタンをクリックし、StationOutputコレクターのテーブルに新しい列を追加します。
- [名前]ボックスをクリックして、列の名前を「ステーション」に変更します。
- [行追加値]ボックスの横にある矢印を選択して、ピックリストオプションを開きます。[IDs]カテゴリを選択して、[行の値のID]オプションを選択します。
- もう一度、ボタンをクリックして、新しい列を追加します。
- [名前]ボックスをクリックして、この列の名前を「出力」に変更します。
- [行追加値]ボックスをクリックして、「
0
」と入力します。このケースでは、行が追加されたときの出力の値を0
にしますが、実際のステーションの出力は[イベントの値]ボックスで取得します。 - [イベントの値]ボックスをクリックして、「
data.newValue
」と入力します。 - 列/イベントの接続を作成するには、[イベント/列 結合]フィールドで[Stations - On Output Change]オプションをクリックしてから、[このイベントで更新する列を指定します]という名前のフィールドで[出力]ボックスをオンにします。
- 最後に、[保管タイプ]フィールドをクリックして、[整数]オプションを選択できます。
- [適用]ボタンをクリックします。
ここでは、出力変更時イベントパラメータに対して作成されたラベルが使用され、イベントが発生したときの新しい値が確認されます。このケースでは、ステーションの出力です。
モデルをリセットして実行します。[ツールボックス]タブでStationOutputコレクターオブジェクトを右クリックして、[テーブルを表示]を選択すると、各ステーションの統計コレクターのテーブル更新を確認できるようになります。
説明
グループをリッスンする
統計コレクターは、オブジェクトのグループをリッスンできます。グループ内のオブジェクトがイベントを発生させると、統計コレクターがそのイベントに応答します。このタスクでは、ステーショングループ内のすべてのオブジェクトの出力変更時イベントをリッスンしました。これは、ステーションがその出力変更時イベントを発生させると、統計コレクターが応答することを意味します。
イベントパラメータ
オブジェクトイベントをリッスンすると、そのイベントにパラメータが設定されている場合があります。この例では、2つのパラメータ(出力統計の新しい値と古い値)が設定された出力変更時イベントをリッスンしました。これらのパラメータは、data
エンティティ上のラベルとして割り当てられます。このタスクでは、[出力]列の値でdata.newValue
を使用します。newValue
は、出力変更時イベントのパラメータで、data
オブジェクト上のラベルが割り当てられます。
current
を使用する
統計コレクターでは、キーワードのcurrent
はイベントを発生させたオブジェクトを指します。ステーションが出力変更時イベントを発生させた場合は、current
がイベントを発生させたステーションを指します。
イベントと列を接続する
1つのイベントを1つ以上の列に接続できます。イベントが発生して、その行の値が生成されると、統計コレクターがその値の行が存在することを確認します。その後で、接続先の列ごとに、統計コレクターが現在の行のその列のイベントの値を記録します。このタスクでは、出力変更時イベントを[出力]列に接続します。ステーションの出力が変化すると、統計コレクターが、そのステーションの行が存在することを確認してから、[出力]列に新しい出力値を書き込みます。
保管タイプ
統計コレクターを使用すれば、列ごとに必要なメモリ量を制御することができます。このタスクでは、[保管タイプ]を[整数]に設定します。これは、フィールドには整数値しか保存できないが、必要なメモリ量はダブルの列より少ないことを意味します。
ステップ2 ステーションの表示順序を設定する
現時点で、統計コレクターは、ステーションの出力が初めて変化したときにそのステーション用の行を追加します。これは、テーブル内の行の順序がモデルの実行状態に依存することを意味します。
これを修正するには:
- もう一度、統計コレクターのプロパティウィンドウに移動して、[イベント]タブにアクセスします。
- ボタンをクリックして新しいイベントを追加し、[リセット時にイベントを作成する]オプションを選択します。
- [名前]ボックスをクリックして、イベントの名前を「ステーション - リセット時」に変更します。
- [行の値]ボックスの横にある矢印をクリックしてから、[グループのすべてのメンバー]オプションを選択し、[ステーション]グループを選択します。
- [適用]ボタンをクリックします。
これで、モデルをリセットして実行すると、テーブルを表示して、StationOutputコレクターのテーブルでステーションが正しく並べられていることを確認できます。
説明
ステーション - リセット時イベントが発生すると、ステーショングループ内のすべてのオブジェクトを含む配列が生成されます。これらのオブジェクトは、グループプロパティウィンドウに表示された順序で表示されます。後で、ステーション - 出力変更時イベントが発生しても、すでにステーション用の行が存在するため、統計コレクターは新しい行を追加しません。ただし、このイベントは[出力]列に接続されているため、ステーションの行上の[出力]列が更新されます。
ステップ3 ダッシュボードにテーブルチャートを追加する
次に、ダッシュボードに出力を表示する単純なテーブルチャートを追加します。最終的に、次のようなテーブルが出来上がります。
チャートを作成するには:
- 画面の最上部にある[ダッシュボード]ボタンをクリックして、[ブランクのダッシュボードを追加]オプションを選択します。
- 右側の[プロパティ]で、[ダッシュボード名]ボックスをクリックします。ダッシュボードの名前を「StationOutput」に変更します。
- ダッシュボードビューがアクティブになっている状態で、左側のライブラリに移動します。[基本のチャートタイプ]カテゴリの[テーブルチャート]オプションを探して、テーブルチャートをダッシュボードウィンドウにドラッグします。これにより、新しい空白のチャートが作成され、そのプロパティウィンドウが開きます。
- プロパティウィンドウで、[データソース]フィールドをクリックし、オプションから[StationOutput]コレクターを選択します。
- [含める]フィールドで、[ステーション]ボックスと[出力]ボックスがオンになっていることを確認します。
モデルをリセットして実行すると、テーブルチャートがステーション出力を追跡するようになります。この動作を確認するには、より高速でモデルを実行しなければならない場合があります。
次のタスクでは、統計コレクターを使用して、ステーションのコンテンツを時系列で表示します。