スケジュールソース
概要と主要な概念
[スケジュールソース]アクティビティでは、その[到着]テーブルに指定されたとおりに新しいトークンが作成されます。このテーブルは、トークンが作成される時間(モデル単位)、新しいトークンに割り当てられる名前、作成するトークンの数を定義します。これらの設定には固定値と動的に計算された値のいずれも使用可能です。このテーブルに手動でデータを入力するか、Excelインターフェイスを使用してExcelスプレッドシートからテーブルをインポートすることもできます。
到着スケジュールの概要
次の画像は、[スケジュールソース]アクティビティの到着予定の例を示しています。
[オフセット時間]を利用すれば、一定時間経過後に[スケジュールソース]アクティビティで到着スケジュールを開始させることができます。前の画像で使用された例では、[オフセット時間]は100
に設定されています。つまり、シミュレーションの実行中にシミュレーションの時計が100に到達するまでスケジュールは開始されません。
現時点では、[スケジュールを繰り返す]のチェックボックスはスキップします。これに関しては後で説明します。
[スケジュールソース]アクティビティにはそれぞれ、新しいトークンを作成するスケジュールを制御する[到着]テーブルがあります。テーブルの各行は、1つ以上の新しいトークンが作成される時点を表します。各列の下のセルの値を変更し、到着スケジュールをカスタマイズできます。
- 時間 - 1つ以上のトークンが作成される時間。シミュレーションモデルの時計やオフセット時間に関連します。この例では、オフセット時間が0に設定されている場合、最初のトークンはモデルの時計が5に到達したときに作成されます。2つ目のトークンセットは時計が10に到達したときに作成されます。以降、同様に続きます。ただし、この例では現在、オフセット時間が100に設定されているため、最初のトークンは実際には時計が105を示した時点で作成されます。2つ目のトークンセットは時計が110を示した時点で作成されます。以降、同様に続きます。
- 名前 - デバッグ目的で、スケジュールのこの時点で作成されたトークンに名前を割り当てることができます。この例では、作成される最初のトークンの名前はToken1となります。
- 量 - スケジュールのこの時点で作成されるトークンの数。この例では、モデルの時計が105に到達したとき、トークンが1つだけ作成されます。次に、110に到達したとき、5つ作成されます。以降、同様に続きます。
- ラベル - 作成されたトークンに追加されるラベルを定義する追加の列を到着テーブルに定義できます。ラベルの名前が列の名前になります。ラベルには、数値、文字列、配列、ポインター、バンドル、追跡変数を使用できます。
このことを念頭に置き、[スケジュールを繰り返す]チェックボックスに戻りましょう。スケジュールが繰り返すように設定されている場合、無限にループします。オフセット時間は繰り返されません。先の画像に示された例では、最初のトークンは(100というオフセットのために)105で作成されます。次に、110でトークンが5つ作成され、120で2つ作成されます。次に、スケジュールが繰り返されます。125でトークンがさらに1つ作成され、130で5つ、140で2つ作成され、以降、同様に続きます。このプロセスは、シミュレーションの時計が停止するまで無限に続きます。
繰り返しの間にギャップを作成する場合、リストの終わりに到着を追加し、数量を0に設定します。この設定により、その時点でトークンは作成されなくなります。この例では、到着時刻40、数量0を追加すると、到着時間は105、110、120になり、最初の繰り返しの後、到着は145、150、160になります。
動的到着値
上の例では、すべての到着時刻、トークン名、数量が静的値として定義されていました。しかし、到着テーブルの各値はピックリストまたはコードを利用して動的に定義することもできます。これにより、到着スケジュールの定義方法をいろいろとコントロールできます。到着時刻を計算するときは、値を前の到着より大きな数値にしなければならないことに留意してください。「arrivalTime = time - previousTime + modelTime;
」となります。
インスタンス化されたフローでスケジュールソースを使用する
モデルの実行中に、処理フローオブジェクトのインスタンスを動的に作成する場合があります。[人を作成]アクティビティは、フローアイテムビンから新しい人物を作成し、インスタンス化された処理フローを定義して、作成された人物にアタッチできます。そのとき、プロセスフローにスケジュールソースアクティビティがあると、そのスケジュールはあたかも時刻0からのように開始します。つまり、時間はすべてインスタンスの作成時刻からの相対値になります。たとえば、[スケジュールソース]アクティビティに登録されている最初の時刻が50、オブジェクトの新しいインスタンスが時刻200で作成された場合、最初のトークンは時刻250で作成されます。
絶対時間を定義する決まったスケジュールが必要な場合、[日時ソース]を使用してください。
コネクター
[スケジュールソース]アクティビティでは、コネクターを1つのみ使用できます。詳細については、「アクティビティを追加および接続する」を参照してください。
プロパティ
次の画像は、[スケジュールソース]アクティビティのプロパティを示しています。
これらの各プロパティについては、次のセクションで説明します。
名前
アクティビティの名前を変更するために使用します。このプロパティの詳細については、「名前」を参照してください。
フォント
[フォント]ボタン で、アクティビティの背景色プロパティとフォントプロパティを編集するウィンドウが開きます。このプロパティの詳細については、「フォント」を参照してください。
統計
[統計]ボタン でアクティビティの統計ウィンドウが開きます。このプロパティの詳細については、「統計」を参照してください。
有効
チェックボックスをオフにすると、このアクティビティによるイベントのスケジューリングやトークンの作成が行われなくなります。
オフセット時間
これを利用すれば、一定時間経過後に[スケジュールソース]アクティビティで到着スケジュールを開始させることができます。たとえば、到着テーブルで最初のエントリの時間が20、オフセット時間が10の場合、最初のトークンはシミュレーション時間30で作成されます。
繰り返しスケジュール
[繰り返しスケジュール]チェックボックスをオンにすると、シミュレーションの実行中、スケジュールは無限に繰り返されます。オフセット時間は周期ごとに繰り返されず、スケジュールの始まりを計算するときにのみ使用されます。たとえば、到着テーブルの最後のエントリが時間50、オフセット時間が10の場合、最初の周期はシミュレーション時間60で終了します。第2周期はシミュレーション時間110で終了します。
到着
ここで到着予定が定義されます。(詳細については、「到着スケジュールの概要」を参照してください)。行は ボタンのクリックで追加、 ボタンのクリックで削除、 ボタンと ボタンのクリックで並べ替えできます。また、編集フィールドを利用してテーブルを任意のサイズに設定できます。テーブルはまた、Excelインポーターに追加できます。Excelからデータをインポートできます。
テーブルには列が3つあります。
- 時間 - 1つ以上のトークンが作成される時間。シミュレーションモデルの時計やオフセット時間に関連します。(詳細については、「到着スケジュールの概要」を参照してください)。
- 名前 - デバッグ目的で、スケジュールのこの時点で作成されたトークンに名前を割り当てることができます。
- 量 - スケジュールのこの時点で作成されるトークンの数。
- ラベル - [ラベル]フィールドで番号を変更すると、ラベルの列を追加または削除できます。各トークンには、テーブルのセル値に対応する値と列ヘッダーに対応する名前のラベルが与えられます。
テーブルのすぐ下にあるピックリストフィールドを使用して、テーブルまたは動的値を介して静的な値を定義できます。詳細については、「動的到着値」を参照してください。
編集する到着フィールドを選択
このフィールドは、[到着]テーブルで現在選択されているセルに基づいて変更されます。このボックスとその横にあるプルダウン矢印を使用して、テーブルの時間、名前、数量、ラベル値の動的値を入力できます。プルダウンメニューからピックリストオプションを選択するか、FlexScriptに精通している場合はカスタムコードで入力できます。
作成したトークンにラベルを割り当て
到着エントリに基づいて、作成したトークンにラベルを追加できます。ラベルの割り当ての詳細については、「ラベルを割り当て」アクティビティを参照してください。