固定リソースの概念
固定リソースとは
固定リソースとは、モデル内の「固定された」または変化のないオブジェクトです。一般的に、固定リソースは、フローアイテムの保存や変更といったさまざまな方法で、ビジネスシステム内のフローアイテムとやり取りします。固定リソースは、ステーションやストレージ領域の処理など、モデル内のさまざまなステップや処理を表すことができます。
固定リソースは、次の3Dオブジェクトのスーパークラスです。
このトピックでは、固定リソースの仕組みに関する詳細な情報を提供します。これは、固定リソースの機能をより深く理解する上級ユーザーを対象としています。
固定リソースロジック
すべての固定リソースにはオブジェクトを送信するだけでなく、ステーションにフローアイテムをプルする同様のロジックがあります。そのロジックでは入力ポートでフローアイテムを受け取り、そのフローアイテムに何かを実行してから出力ポートを介して送信されるフローアイテムをリリースします。
さまざまなタイプの固定リソースが異なる時間にフローアイテムを受け取ってリリースしますが、フローアイテムを受け取ってリリースするロジックはすべての固定リソースに対して同じです。たとえば、キューは同時に複数のフローアイテムを受け取ることができます。また、キューはキューに入るとすぐに各フローアイテムをリリースします。一方、プロセッサは厳密に1つのフローアイテムを受け取り、そのフローアイテムを処理してからリリースし、フローアイテムが離れるまで待ってから次のフローアイテムを受け取ります。キューおよびプロセッサはさまざまな時間にフローアイテムを受け取ってリリースしますが、フローアイテムを受け取ってリリースするプロセッサはどちらでも同じです。それぞれが、受け取ってリリースする各フローアイテムに対して特定の一連のステップを実行します。これらのステップのいくつかは固定リソースによって自動で処理されます。いくつかのステップでは、モデラーとしてフローアイテムを受け取ってリリースする方法を定義できます。これらのモデラー定義入力はすべて、オブジェクトのプロパティウィンドウの[フロー]タブで編集できます。次の図に、固定リソースオブジェクトが受け取ってリリースする各フローアイテムに実行するステップを示します。
次のステップで、前の図の主要な各ステップのロジックについて説明します。
1.入力ポートを開き、受け取るフローアイテムを検索する
固定リソースでフローアイテムを受け取る準備が完了したら、プルモードになっているかどうかを最初に確認します。プルモードになっている場合は、Pull Strategy関数を呼び出します。この関数は開く入力ポート番号の値を返します。0が返された場合、すべての入力ポートを開きます。上流のアイテムがリリースされると、そのアイテムのPull Requirementフィールドを呼び出します。このフィールドはtrue (1)またはfalse (0)を返します。trueの場合、フローアイテムを受け取ります。falseの場合、リリースされた次のフローアイテムに対してPull Requirement関数を再度呼び出そうとするか、上流の固定リソースによって別のフローアイテムがリリースされるまで待機します。このループは、Pull Requirementが特定のアイテムについてそのアイテムを受け取るyes(1)を返すまで続きます。ただし、オブジェクトがプルモードでない場合、固定リソースはすべてのプルロジックをスキップして、最初のフローアイテムが使用可能になるまでただ待機します。
プルロジックの例
上の図は2つの固定リソースを示しています。プルする固定リソースは、上流の固定リソースからプルするように設定されています。上流の固定リソースはフローアイテムのうち3つ(緑色)をリリースしていますが、2つのフローアイテムはまだ処理中です(赤色)。プルする固定リソースで上流の固定リソースのフローアイテムの1つを受け取る準備が完了したら、Pull Requirement関数がyes(1)を返すまで、リリースされた3つのフローアイテムのそれぞれにPull Requirement関数を呼び出します。yesが返されるとすぐに、次のフローアイテムを受け取る準備が完了するまで、プルする固定リソースはアイテムを受け取ってプルロジックを終了します。Pull Requirementへの3つの呼び出しがすべてno(0)を返す場合、プルする固定リソースは待機します。シミュレーションの後半でフローアイテム4がリリースされると、プルする固定リソースはアイテム4のPull Requirementを呼び出します。yesが返された場合は、アイテム4を受け取ります。noが返された場合、Pull Requirementを満たすフローアイテムが見つかるまでこの処理を繰り返します。
フローアイテムを選択し、受け取り、リリースした後、プルする固定リソースで上流の固定リソースのフローアイテムの1つを受け取る準備が完了します。前にno(0)を返したフローアイテムを含め、すべてのフローアイテムが再評価されるように同じ処理が繰り返されます。
2.フローアイテムを処理する
フローアイテムが固定リソースに入ると、そのアイテムは固定リソースのタイプに従って「処理」され、その後リリースされます。たとえば、プロセッサオブジェクトの場合、フローアイテムは一定時間処理されます。キューオブジェクトの場合、製品はすぐにリリースされます。
3.フローアイテムをリリースし、開く出力ポートを決定する
フローアイテムがリリースされると、固定リソースはSend To Port関数を呼び出します。Pull from Port関数と同様に、この関数はポート番号を返します。固定リソースがそのポートを開きます。ポート番号が0の場合は、すべての出力ポートを開きます。ポートが開かれると、固定リソースは下流のオブジェクトでフローアイテムを受け取る準備が完了するまで待機します。固定リソースがSend To Portを再評価するように設定されている場合、下流の固定リソースで新しいフローアイテムを受け取ることができるようになるたびに、上流の固定リソースはそのフローアイテムのSend To Portを再評価します。ここでは、下流のオブジェクトが使用可能になったときにのみ実行されることに注意してください。下流のオブジェクトがすでに使用可能であるという理由だけで連続的に評価することはありません。下流のオブジェクトが使用可能になったとき以外に手動で強制的に再評価する場合は、上流のオブジェクトでopenoutput()コマンドを呼び出すと実行できます。
4.フローアイテムを次のステーションに転送する
フローアイテムがリリースされて下流のオブジェクトで受け取る準備が完了すると、[輸送を使用]チェックボックスがオンになっていなければ、そのアイテムはすぐに下流のオブジェクトに渡されます。[輸送を使用]チェックボックスがオンになっている場合、固定リソースはRequest Transport from関数を呼び出します。この関数は、TaskExecuterまたはディスパッチャーに参照を返します。有効な参照が返されると、デフォルトのタスクシーケンスが自動で作成され、TaskExecuterが最終的にフローアイテムをピックアップして目的地に搬送します。Request Transport Fromフィールドに0の値を返すこともできます。値0が返された場合、固定リソースはタスクシーケンスがユーザーによって明示的に作成されたものと見なし、デフォルトのタスクシーケンスを作成しません。0を返す場合は、タスクシーケンスを作成する必要があります。Request Transport Fieldピックリストで[タスクシーケンスを手動で作成]ピックオプションを選択し、そこからコードを手動で編集することによって、この作業を簡単に開始できます。
輸送を使用する
輸送を使用して下流のオブジェクトにフローアイテムを輸送するようにオブジェクトが設定されている場合、下流のオブジェクトがフローアイテムをプルしたときやフローアイテムを受け取る準備が完了したときに、フローアイテムをすぐに次のステーションに移動するのではなく、オブジェクトはタスク実行者のタスクシーケンスを作成してオブジェクトに移動し、フローアイテムをピックアップし、下流のオブジェクトに移動して、そこにフローアイテムをドロップします。このオペレーションにはいくつかの重要なステップがあります。最初に、オブジェクトはRequest Transport From関数を呼び出して、タスクシーケンスを指定するオブジェクトの参照を取得します。次に、フローアイテムが[輸送待ち]状態になります。これは、フローアイテムの目的地が固定されていて変更できないことを意味します。Send To Portとプルスクリーニングはすでに終了し、そのポートからフローアイテムを送信することが決定されています。この決定は変更されません。また、各固定リソースオブジェクトは2つの数(オブジェクトに輸送中のフローアイテムの数とオブジェクトから輸送されるけれどもまだピックアップされていないフローアイテムの数)を追跡します。これらの2つの変数は、それぞれnroftransportsinおよびnroftransportsoutと呼ばれます。オブジェクトがRequest Transport Fromフィールドを呼び出すと、そのnroftransportsout変数が増加し、下流のオブジェクトに通知されます。その後、そのnroftransportsin変数が増加します。オブジェクトは次のタスクシーケンスを作成します。
- 上流のオブジェクトに移動する:移動タスク。
- アイテムをロードする:FRLoadタスク。
- 必要に応じて他のタスクシーケンスを中断する:中断タスク。
- 下流のオブジェクトに移動する:移動タスク。
- アイテムを下流のオブジェクトにアンロードする:FRUnloadタスク。
各オブジェクトはnroftransportsin変数とnroftransportsout変数に基づいてさらに入出力をスクリーニングする可能性があるため、関連するオブジェクトを正しく動作させるにはこれらの変数の整合性が重要です。たとえば、容量が10のキューを考えてみます。現在キューには5つのコンテンツがあり、キューに輸送中でまだ到着していない製品が5つある場合、キューがいっぱいになる可能性があるため、この時点で製品が5つしかなくてもキューは入力ポートを閉じる必要があります。nroftransportsin変数が正しくないと、キューのコンテンツに重大な問題を引き起こす可能性があります。次の2つの点に注意してください。1つ目は、オブジェクトが所定の下流オブジェクトにフローアイテムを輸送することを選択した場合、nroftransportsin/out変数を適切に減らすことができなくなるため、フローアイテムを元に戻したり、別の目的地にリダイレクトしたりすることはできません。2つ目は、オブジェクトの入力/出力機能に影響する可能性があるため、frload/frunloadと通常のロード/アンロードを使用する際は注意してください。簡単に言えば、Request Transport From関数を実行するたびに、最終的(すぐにではない場合)に上流のオブジェクトからアイテムをロードするfrloadタスクが1つ作成され、下流のオブジェクトにアイテムをアンロードするfrunloadタスクが1つ作成されます。それ以外の場合、通常のロードタスクとアンロードタスクが使用されます。
ポート接続を使用する代わりの方法
いくつかの異なる方法を使用して、固定リソース間のアイテムのフローをコントロールできます。
- 前のセクションで説明したように、標準のポート接続と標準のsend-to/pullロジックを使用します。
- 出力/入力ポートを接続するのではなく、リストからプッシュおよびプルします。
- ポートハンドシェイキングロジックをバイパスして、手動で輸送を開始します。
次のセクションでは、これらのシナリオについて説明します。
標準ポート接続を使用する
まず、標準のポート接続メカニズムが何を実行しているのかを説明することが重要です。
- ポートは固定リソースが送信およびプルできるオブジェクトを定義する
固定リソースの入力ポートと出力ポートを同時に接続する場合、上流の固定リソースがアイテムを送信する下流の固定リソースを検索できる検索パターンや下流の固定リソースが上流の固定リソースからプルするアイテムを検索できる検索パターンを定義しています。たとえば、下流の固定リソースで次のアイテムを受け取る準備が完了している場合、入力ポートに接続されているオブジェクトに対して受け取り可能なアイテムの検索は制限されます。また、ポートが接続されている順番で検索が行われます(最初に入力ポート1、その次にポート2など)。
- ポートには可用性を判断するためのオープン/クローズド状態がある
入力ポートと出力ポートは開閉できます。固定リソースは、このオープン/クローズド状態を使用してアイテムの行き先を判断します。たとえば、アイテムがポート1にリリースされると、オブジェクトの出力ポート1は開きます(緑色)。下流オブジェクトの対応する入力ポートも開いている(緑色)場合は下流のオブジェクトでアイテムを受け取る準備が完了しているという合図であるため、アイテムが下流のオブジェクトに送信されます。
- ポートランキングが重要なケース
定義済みの値(アイテムタイプやラベルなど)に基づいたルーティングルールを使用する場合、ポートランキングが重要になります。たとえば、アイテムタイプ別に直接送信する場合、アイテムタイプ1のアイテムはポート1に送信されます。つまり、ポートランキングが正しい順番に並んでいることを確認する必要があります。
ポート接続を使用するとうまくいく場合は次のとおりです。
- 1対1ルーティング - 1つのステーションから次の単一ステーションにアイテムを送信している場合に、ポート接続がうまく機能します。上流のステーションを下流のステーションに「A」接続で接続するだけです。
- 1対多ルーティング - ラウンドロビン、最初に利用可能、ランダム、アイテムタイプのような定義済みの値など、基本的なルーティングルールを使用して1つのステーションから多くのステーションのいずれかにアイテムを送信する場合にポート接続を使用すると効果的です。ステーションを一連の下流ステーションに接続し、オブジェクトの[フロー]タブの[ポートに送信]フィールドからルーティングルールを定義します。
- 多対一ルーティング - ラウンドロビン、最初に利用可能、最長待ち時間、ランダム、アイテムタイプのような定義済みの値など、基本的なプル規則を使用して多くのステーションの1つから単一の下流ステーションにアイテムを送信する場合にポート接続を使用すると効果的です。各上流ステーションを下流ステーションに接続し、オブジェクトの[フロー]タブの[プル方法]フィールドでプル規則を定義します。
リストからプッシュおよびプルする
多対多ルーティングや優先順位付けが複雑な場合などのいくつかのシナリオでは、ポート接続の管理が困難になることがあります。このような場合、リストを使用してアイテムを送受信するための検索パターンを定義するとポートを使用するよりも簡単です。コネクションレスルーティングの例で、この方法を示します。
この例では、アイテムリストからプッシュおよびプルするピックリストオプションを使用します。これらのピックリストオプションは、デフォルトのポート接続メカニズムよりも優先されます。ここで、上流オブジェクトのSend To Portロジックがアイテムをリストにプッシュし、下流オブジェクトのPull Strategyがリストからアイテムをプルします。したがって、検索パターンは任意の時点でリストに存在するアイテム(上流のオブジェクトによってリリースされたアイテムなど)によって定義されます。検索はリストのみに依存しているため、ポート接続は必要なくなります。そのため、このメカニズムを使用するオブジェクトを未接続のままにできます。
手動で輸送を開始する
時として、下流のオブジェクトでアイテムを受け取る準備が完了する前にアイテムの輸送を開始する必要がある場合があります。上で説明したように、標準のsend-to/pullロジックを使用する場合、[輸送を使用]チェックボックスで定義された輸送は下流のオブジェクトでアイテムを受け取る準備が完了している場合にのみ開始されます。この機能をオーバーライドするには、send-to/pullメカニズムをバイパスする必要があります。そのためには、上流オブジェクトと下流オブジェクトの入力ポートと出力ポートを未接続のままにします。その後、上流のオブジェクトでOnEntryやOnProcessFinishなどのトリガーを使用して、アイテムを目的地に輸送するタスクシーケンスを手動で作成します。処理フローモジュールを使用している場合は、イベントトリガーソースを使用して目的のイベントが発生したときにカスタム処理を開始できます。オブジェクト間の参照にセンターポートを使用できます。
イベント
次のセクションでは、固定リソースイベントに関連する重要な考慮事項について説明します。イベントの詳細については、「イベントリスニング」ページを参照してください。
エントリ時
エントリ時イベントは、オブジェクトのエントリ時トリガーを起動させます。このイベントは、アイテムがオブジェクトに入るとすぐに、他のロジックが実行される前に起動します。これは、オブジェクトの変数やラベルなどを変更し、それらの変更をイベントロジック内に正しく適用できることを意味します。ただし、一部のイベントはオブジェクトのイベントロジックでまだ作成されていないため、オブジェクトのイベントに影響する可能性があるコマンドを入口/出口トリガーで実行しないでください。オブジェクトのイベントに影響する関数はこれらのイベントが作成されるまで待機します。このような場合、(senddelayedmessage()コマンドを使用して)時刻0にオブジェクトに遅延メッセージを送信し、その後にメッセージトリガーから機能を実行します。これにより、コマンドが実行される前にオブジェクトが残りのイベントロジックを終了できます。含まれているタスクのタイプに応じて、オブジェクトの停止、入力ポートと出力ポートの開閉、場合によってはタスクシーケンスの作成とディスパッチが含まれます(ただし、これに限定されません)。
次のパラメータがあります。
イベントパラメータ | タイプ | 説明 |
---|---|---|
入るアイテム | オブジェクト | オブジェクトに入ったフローアイテム。 |
入力ポート | 整数 | フローアイテムが入った入力ポート番号。 |
終了時
終了時イベントは、オブジェクトの終了時トリガーを起動させます。このイベントは、アイテムがオブジェクトを離れるとき、アイテムが実際にオブジェクトを離れる前に起動します。つまり、終了時トリガーのオブジェクトの内容を確認すると、コンテンツには終了アイテムが含まれています。エントリ時イベントの場合と同様に、特定の機能を実行してオブジェクトを停止したり、ポートを開閉したりするときは、senddelayedmessage()コマンドを使用します。
次のパラメータがあります。
イベントパラメータ | タイプ | 説明 |
---|---|---|
出るアイテム | オブジェクト | オブジェクトから出るフローアイテム。 |
出力ポート | 整数 | フローアイテムが出る出力ポート番号。 |
メッセージ時
メッセージ時イベントは、オブジェクトのメッセージ時トリガーを起動させます。このイベントは、オブジェクトがメッセージを受信すると起動します。
次のパラメータがあります。
イベントパラメータ | タイプ | 説明 |
---|---|---|
送信オブジェクト | オブジェクト | メッセージを送信したオブジェクト。 |
メッセージパラメータ1 | バリアント | これはメッセージを介して渡されたパラメータであり、数値、文字列、ツリーノード、配列になります。 |
メッセージパラメータ2 | バリアント | これはメッセージを介して渡されたパラメータであり、数値、文字列、ツリーノード、配列になります。 |
メッセージパラメータ3 | バリアント | これはメッセージを介して渡されたパラメータであり、数値、文字列、ツリーノード、配列になります。 |
プル要件
プル要求イベントは、オブジェクトの[プル]が有効になっている場合にのみ起動します。このイベントは、入力ポートの準備が完了すると起動します。入力ポートが開き、接続されている上流の出力ポートが開いている場合、入力ポートの準備は完了しています。入力ポートが開いているか上流の出力ポートが開いている場合、接続の準備が完了します(ペアのポートがすでに開いていると仮定)。プル要件は、準備が完了したばかりの入力ポートに接続されたオブジェクト内で、準備が完了したフローアイテムごとに評価されます。
次のパラメータがあります。
イベントパラメータ | タイプ | 説明 |
---|---|---|
アイテム | オブジェクト | プルする必要があるかどうか確認する準備完了フローアイテム。 |
ポート | 整数 | 準備完了フローアイテムが入ろうとしているポート番号。 |
オブジェクトのpull requirementフィールドはtrue(1)またはfalse(0)のいずれかを返す必要があります。式がtrue(1)を返すと、準備完了フローアイテムは準備完了入力ポートを介してプルされます。式がfalse(0)を返すと、プル要件は次の準備完了フローアイテムについて評価されます。
プル方法
プル方法イベントは、オブジェクトの[プル]が有効になっている場合にのみ起動します。オブジェクトのpull strategyフィールドは、フローアイテムをプルするポート番号を返す必要があります。0を返すと、最初に利用可能なポートからプルします。このイベントは、入力ポートが準備完了になると起動します。準備完了ポートを構成するものについては、上のプル要件イベントを参照してください。
このイベントにはパラメータがありません。
ポートに送信
このイベントは、フローアイテムが次のオブジェクトに送信される準備が完了したときに、各フローアイテムに対して1回起動されます。フローアイテムの準備が完了する時間は、オブジェクトによって異なります。たとえば、プロセッサは処理時間の終了時にフローアイテムを送信する準備が完了します。キューは、バッチが累積されてリリースされた後にフローアイテムを送信する準備が完了します。
オブジェクトが[下流の可用性でSend toを再評価]に設定されている場合、send to portは下流のオブジェクトでフローアイテムを受け取る準備が完了するたびに準備完了フローアイテムに対しても評価されます。
次のパラメータがあります。
イベントパラメータ | タイプ | 説明 |
---|---|---|
アイテムをリリースする | オブジェクト | リリースするフローアイテム。 |
send to portフィールドの戻り値が0の場合、オブジェクトはフローアイテムを最初に利用可能な下流オブジェクトにリリースします。これによりすべての出力ポートが開き、フローアイテムは最初の準備完了ポートから離れることができます。
接続されているオブジェクトのポート番号を返して、そのアイテムを特定のオブジェクトにリリースできます。これにより出力ポートが開き、ポート番号がフローアイテムに割り当てられます。ポート接続が準備完了になる(出力ポートと接続された下流の入力ポートが開く)と、フローアイテムがプッシュ(またはプル)されます。
戻り値が-1の場合、フローアイテムはまったくリリースされません。releaseitem()コマンドを使用して後でリリースするか、moveobject()コマンドを使用して移動します。
輸送参照
輸送参照イベントを使用すると、リリースするフローアイテムを下流のオブジェクトに輸送するために使用されるタスク実行者オブジェクトを定義できます。このイベントは、オブジェクトのプロパティウィンドウで[輸送を使用]チェックボックスがオンになっている場合にのみ起動します。このイベントは、下流のオブジェクトがリリースアイテムを受け取ることができる場合に、ポートに送信イベントの後に起動します。
次のパラメータがあります。
イベントパラメータ | タイプ | 説明 |
---|---|---|
アイテム | オブジェクト | 輸送するフローアイテム。 |
ポート | 整数 | [ポートの送信]フィールドで指定されたとおりにフローアイテムが出ていくポート番号。 |
目的地 | オブジェクト | フローアイテムが輸送される目的地オブジェクト。 |
優先度 | 倍精度浮動小数点数 | オブジェクトのプロパティウィンドウで設定された輸送リクエストの優先度。 |
プリエンプト | 整数 | オブジェクトのプロパティウィンドウで設定されたプリエンプトオプション。 |
transport referenceフィールドの戻り値は、リリースアイテムを輸送するタスクシーケンスを指定されるタスク実行者オブジェクトへの参照です。戻り値が0の場合、transport referenceフィールドに独自のタスクシーケンスが作成およびディスパッチされたものと見なされます。この場合、オブジェクトは独自のタスクシーケンスをディスパッチしません。
ピックオフセット
このイベントは、輸送オブジェクトが固定リソースオブジェクトに移動し、アイテムをピックアップする位置に移動するためにオフセット移動を使用する準備が完了したときに起動します。
次のパラメータがあります。
イベントパラメータ | タイプ | 説明 |
---|---|---|
アイテム | オブジェクト | 固定リソースオブジェクトから輸送されているアイテム。 |
ローダー | オブジェクト | アイテムを固定リソースオブジェクトでロードしているタスク実行者オブジェクト。 |
プレースオフセット
このイベントは、輸送オブジェクトが固定リソースオブジェクトに移動し、オフセット移動を使用してアイテムが配置される目的地に移動する準備が完了したときに発生します。
次のパラメータがあります。
イベントパラメータ | タイプ | 説明 |
---|---|---|
アイテム | オブジェクト | 固定リソースオブジェクトに輸送されているアイテム。 |
アンローダー | オブジェクト | 固定リソースオブジェクトでアイテムをアンロードしているタスク実行者オブジェクト。 |
停止時
このイベントは、Object.stop()
を使用したコードか、タイムテーブルまたはMTBF/MTTRツールを使用することによってオブジェクトが停止したときに起動します。
次のパラメータがあります。
イベントパラメータ | タイプ | 説明 |
---|---|---|
停止リクエスト数 | 整数 | オブジェクトに与えられた停止リクエストの数。この数には現在の停止リクエストが含まれます。 |
状態 | 整数 | 停止中のオブジェクトが入る状態。 |
ID | 整数 | 停止リクエストのIDまたはキー。 |
優先度 | 倍精度浮動小数点数 | 停止リクエストの優先度。 |
状態プロファイル | 整数 | 新しい状態のプロファイル番号。デフォルトの状態プロファイルは0です。 |
再開時
このイベントは、Object.resume()
を使用したコードか、タイムテーブルまたはMTBF/MTTRツールを使用することによってオブジェクトが再開したときに起動します。
次のパラメータがあります。
イベントパラメータ | タイプ | 説明 |
---|---|---|
停止リクエスト数 | 整数 | オブジェクトに残っている停止リクエストの数。 |
ID | 整数 | 再開リクエストのIDまたはキー。 |
状態プロファイル | 整数 | オブジェクトが停止したときの状態のプロファイル番号。デフォルトの状態プロファイルは0です。 |
コンテンツ変更時
このイベントは、オブジェクトのコンテンツが変更されるたびに起動します。これは、フローアイテムがオブジェクトを出入りするときに発生します。
このイベントにはパラメータがありません。
入力変更時
このイベントは、フローアイテムがオブジェクトに入るときに起動します。
このイベントにはパラメータがありません。
出力変更時
このイベントは、フローアイテムがオブジェクトから出るときに起動します。
このイベントにはパラメータがありません。
滞在時間変更時
このイベントは、出力変更時イベントの直後に、フローアイテムがオブジェクトから出たときに起動します。
このイベントにはパラメータがありません。
状態変化時
このイベントは、オブジェクトの状態が変化すると起動します。このイベントでは、オブジェクトの状態が特定の状態に変化するのをリッスンしたり、オブジェクトの状態を追跡記録したりできます。
次のパラメータがあります。
イベントパラメータ | タイプ | 説明 |
---|---|---|
状態プロファイルノード | ツリーノード | [新しい状態]がデフォルトの状態プロファイルにある場合、このパラメータはNULLです。それ以外の場合、このパラメータは、オブジェクトのstate_profile属性ノードにある状態プロファイルノード(追跡変数)の参照です。 |
新しい状態 | 整数 | オブジェクトが設定される状態番号。 |
前の状態 | 整数 | 新しい状態が設定される前のオブジェクトの状態番号。 |
状態値変更時
状態値変更時イベントは、オブジェクトの状態統計を保存する追跡変数に関連付けられます。このイベントをリッスンすると、変更ルールを使用できます。このイベントは、状態変化時イベントと同時に起動します。
このイベントには状態プロファイル番号が必要です。デフォルトの状態プロファイルを使用している場合、この番号は0です。
リセット時
リセット時イベントは、モデルがリセットされたとき、オブジェクトごとに起動します。
このイベントにはパラメータがありません。
描画時
描画時イベントは、3Dビューが再ペイントされるたびに起動します。これは、実行速度と更新レートに応じて、さまざまなタイミングで発生します。モデルの再現性を確認するために、描画時トリガーで使用されるコードでは、FlexSimの乱数ジェネレータを使用するstochasticsコマンド(distributions)を使用しないでください。
次のパラメータがあります。
イベントパラメータ | タイプ | 説明 |
---|---|---|
ビュー | ツリーノード | オブジェクトが描画されているビュー。複数の3Dビューを開いていると、それぞれのビューで描画時イベントが起動します。 |
状態
状態統計の収集については、下の「統計」セクションを参照してください。各固定リソースは、独自の一連の状態を実装します。固定リソースの状態については、その固定リソースの参照ページを参照してください。
統計
次のセクションでは、固定リソース統計に関連する重要な考慮事項について説明します。
状態
カテゴリ追跡変数は、各オブジェクトの状態履歴を収集するために使用されます。このデータを使用して、各状態の合計時間を取得したり、ダッシュボード上にオブジェクトの現在の状態を表示したり、モデル実行全体の状態履歴を表示したりできます。詳細については、「ダッシュボード」、「統計コレクター」、「追跡変数」のページを参照してください。
スループット
スループットは、入力統計と出力統計で構成されます。固定リソースに入る各フローアイテムでは、入力が1ずつ増加します。フローアイテムが固定リソースから出るときに出力が1ずつ増加します。スルーアウトの統計は常に増加します。
コンテンツ
コンテンツ統計には、固定リソースの内部にあるフローアイテムの数が記録されます。オブジェクトのコンテンツは、モデルの実行中に増減できます。コンテンツ統計からは、最小値、最大値、平均値を含む追加データを収集することもできます。このデータはモデル実行全体から計算されます。
滞在時間
滞在時間統計は、固定リソースから出るフローアイテムごとに記録されます。滞在時間は、終了時刻 - 開始時刻に等しくなります。滞在時間統計からは最小値、最大値、平均値を含む追加データを収集することもできます。このデータはモデル実行全体から計算されます。