Basic FR(固定リソース)
概要と主要な概念
BasicFRオブジェクトは、ユーザーライブラリオブジェクトにカスタマイズされるように設計された固定リソースです(FRは固定リソースを表します)。ほぼすべての継承可能な固定リソースロジックをピックリスト関数に渡します。そのため、ユーザーライブラリの開発者は、固定リソースの事実上すべての機能を指定できます。
BasicFRは固定リソースです。リセット、入口、出口、メッセージトリガーのロジック、オブジェクトを停止/再開、オフセットの選択/配置、輸送イン通知/完了、輸送アウト通知/完了などの詳細機能を指定できます。
このオブジェクトの入口、出口、リセット、メッセージトリガーでは、receiveitem()コマンドとreleaseitem()コマンドを使用してフローアイテムを受信およびリリースするロジックを実装する必要があります。また、setstate()、senddelayedmessage()などのアイテムを処理する際に使用できるいくつかのコマンドと、コマンドリストの固定リソースカテゴリにあるすべてのコマンドも用意されています。このオブジェクトは、すべてのロジックがモデラーによって実装される固定リソースのベアボーン実装になるよう意図されています。
コマンド
receiveitem()
releaseitem()
入口/出口トリガーの追加パラメータ
BasicFRは2つの特別なパラメータを入口トリガーと出口トリガーに渡します。
- param(3) - nroftransportsin変数の現在の値。
- parval(4) - nroftransportsout変数の現在の値。
イベント
イベントの詳細については、「イベントリスニング」ページを参照してください。
BasicFRはすべての固定リソースに共通の標準イベントを使用します。これらのイベントの説明については、「固定リソース - イベント」を参照してください。
BasicFRには次の追加イベントがあります。
詳細機能
このイベントはさまざまな理由で起動します。ほとんどの場合、これらの通知のロジックを実装する必要はありませんが、実装はいつでも可能です。イベントが起動されると、詳細機能トリガーが実行されます。
次のパラメータがあります。
イベントパラメータ | タイプ | 説明 |
---|---|---|
メッセージタイプ | 整数 | 通知のタイプ。詳細については、以下を参照してください。 |
次のとおり、さまざまなメッセージタイプがあります。
- ADV_FUNC_CLASSTYPE - これはオブジェクトのクラスのタイプを取得するリクエストです。特定のビット数を高く設定した整数としてclasstypeが返される必要があります。この値は、ビット単位のOR演算子(|)といくつかのclasstypeマクロで作成できます。たとえば、FixedResourceのclasstypeは次のとおりです。CLASSTYPE_FLEXSIMOBJECT > CLASSTYPE_FIXEDRESOURCE。
- ADV_FUNC_DRAGCONNECTION - この関数は、任意のキーボードのキーを押したまま、ユーザーがこのオブジェクトをクリックして別のオブジェクトにドラッグすると呼び出されます。この場合、マウスのドラッグ先のオブジェクトはparam(2)として、クリックされたキーのASCII値はparam(3)として、オブジェクトのclasstype値はparam(4)として渡されます。
- ADV_FUNC_CLICK - この関数はオブジェクトがクリックされると呼び出されます。ここでクリックされたビューへの参照はparam(2)として渡され、クリックコードはparam(3)として渡されます。考えられるクリックコードは、DOUBLE_CLICK、LEFT_PRESS、LEFT_RELEASE、RIGHT_PRESS、RIGHT_RELEASEです。
- ADV_FUNC_KEYEDCLICK - この関数は任意のキーボードのキーを押したままオブジェクトをクリックすると呼び出されます。ここではビューがparam(2)として、クリックコードはparam(3)として、押したキーのASCII値はparam(4)として渡されます。考えられるクリックコードは、DOUBLE_CLICK、LEFT_PRESS、LEFT_RELEASE、RIGHT_PRESS、RIGHT_RELEASEです。
詳細機能トリガーの戻り値は、1または0となる必要があります。0の場合、指定した通知に関連付けられたデフォルトの機能がオブジェクトで実行されます。1の場合、オブジェクトではデフォルトの機能が実行されず、デフォルトが関数でオーバーライドされたとみなされます。
状態変化時
このイベントは、オブジェクトの状態がObject.setState()
コマンドで変更されたときに起動します。
次のパラメータがあります。
イベントパラメータ | タイプ | 説明 |
---|---|---|
状態 | 整数 | BasicFRが移行しようとしている新しい状態。 |
状態プロファイル | 整数 | 新しい状態のプロファイル番号。デフォルトの状態プロファイルは0です。 |
関数から0が返された場合、オブジェクトは状態を変更します。関数から-1が返された場合、オブジェクトでは何も実行されず、前の状態が保持されます。関数から正の数が返された場合、この新しい状態番号に状態が変わります。
輸送アウト通知完了時
このイベントは2種類のタイミングで起動されます。1つ目は、フローアイテムが輸送を使用してオブジェクトを出ることがオブジェクトに通知されるときです。この機能は輸送アウト通知と呼ばれます。2つ目は、輸送が到着し、ロード時間が終了し、フローアイテムを運び出そうとするときに起動します。これは輸送アウト完了と呼ばれます。変数がこの関数に渡され、適用可能なオペレーションが示されます。このフィールドでは、nroftransportsout変数のようなものや、オブジェクトへのさらなる出力/入力をスクリーニングする方法を管理できます。
次のパラメータがあります。
イベントパラメータ | タイプ | 説明 |
---|---|---|
オペレーション | 整数 | これは1または0です。1は輸送アウト通知オペレーションを意味し、0は輸送アウト完了オペレーションを意味します。 |
アイテム | オブジェクト | このオブジェクトを離れるアイテム。 |
ポート | 整数 | アイテムが出る出力ポート番号。 |
トランスポーター | オブジェクト | 輸送アウト完了オペレーションの場合、これはアイテムをピックアップするタスク実行者です。 |
出荷数ノード | ツリーノード | このノードの値は、通知オペレーションで1ずつ増加し、オペレーションが完了すると1ずつ減少します。また、このノードの値を取得して、輸送がピックアップするのを待機しているアイテムの数を知ることもできます。 |
戻り値が0の場合、オブジェクトでは何も行われなかったとみなされ、独自のデフォルトロジックが実行されます。この関数から1が返されると、オブジェクトでは適切な変数管理が行われたとみなされ、何も実行されません。この関数から-1が返され、該当するオペレーションが完了している場合も、オブジェクトでは適切な変数管理が行われたとみなされます。ただし、同時に、フローアイテムを受け取る準備ができていないことがトランスポーターに通知されます。トランスポーターは、オペレーションを再開できることが通知されるまで待つ必要があります。これを使用する必要があるのは、このオブジェクトがObject.stop()を使用して停止している場合です。その場合、出ていくフローアイテムが不要な場合があります。この場合、savestoppedtransportout()関数を使用してトランスポーターへの参照を保存し、-1を返す必要があります。次に、トランスポーターが(通常はこのオブジェクトの再開オブジェクト関数から)オペレーションを再開できる場合、resumetransportsout()を呼び出して、停止したすべての輸送にオペレーションを再開できることを通知する必要があります。
輸送イン通知完了時
このイベントは2種類のタイミングで起動されます。1つ目は、フローアイテムが輸送を使用してオブジェクトに入ることがオブジェクトに通知されるときです。この機能は輸送イン通知と呼ばれます。2つ目は、輸送が到着し、アンロード時間が終了し、フローアイテムをオブジェクトに移動しようとするときに起動します。これは輸送イン完了と呼ばれます。変数がこの関数に渡され、適用可能なオペレーションが示されます。このフィールドでは、nroftransportsin変数のようなものや、オブジェクトへのさらなる出力/入力をスクリーニングする方法を管理できます。たとえば、複数のフローアイテムを同時にオブジェクトに輸送できます。そのような場合、このフィールド内の次のエントリが通知されたときにreceiveitemを呼び出すことができます。
次のパラメータがあります。
イベントパラメータ | タイプ | 説明 |
---|---|---|
オペレーション | 整数 | これは1または0です。1は輸送イン通知オペレーションを意味し、0は輸送イン完了オペレーションを意味します。 |
アイテム | オブジェクト | このオブジェクトに入るアイテム。 |
ポート | 整数 | アイテムが入る入力ポート番号。 |
トランスポーター | オブジェクト | 輸送イン完了オペレーションの場合、これはアイテムをドロップするタスク実行者です。 |
出荷数ノード | ツリーノード | このノードの値は、通知オペレーションで1ずつ増加し、オペレーションが完了すると1ずつ減少します。また、このノードの値を取得して、このオブジェクトに輸送中のアイテムの数を知ることもできます。 |
戻り値が0の場合、オブジェクトでは何も行われなかったとみなされ、独自のデフォルトロジックが実行されます。この関数から1が返されると、オブジェクトでは適切な変数管理が行われたとみなされ、何も実行されません。この関数から-1が返され、該当するオペレーションが完了している場合も、オブジェクトでは適切な変数管理が行われたとみなされます。ただし、同時に、フローアイテムを受け取る準備ができていないことがトランスポーターに通知されます。トランスポーターは、オペレーションを再開できることが通知されるまで待つ必要があります。これを使用する必要があるのは、このオブジェクトがObject.stop()を使用して停止している場合です。その場合、入るフローアイテムが不要な場合があります。この場合、savestoppedtransportin()関数を使用してトランスポーターへの参照を保存し、-1を返す必要があります。次に、トランスポーターが(通常はこのオブジェクトの再開オブジェクト関数から)オペレーションを再開できる場合、resumetransportsin()を呼び出して、停止したすべての輸送にオペレーションを再開できることを通知する必要があります。
ピックプレースオフセット
ピックプレースオフセットイベントは、タスク実行者標準イベント、ピックオフセット、プレースオフセットと同時に起動されます。違いは利用できるパラメータです。プレースオフセットの場合、このイベントは輸送オブジェクトがこのオブジェクトにフローアイテムを配置、つまりアンロードしようとしたときに起動します。ピックオフセットの場合、輸送がこのオブジェクトからアイテムをピック、つまりロードしようとしたときに起動します。
次のパラメータがあります。
イベントパラメータ | タイプ | 説明 |
---|---|---|
ピックオペレーション | 整数 | これは1または0です。1はピックオペレーションを示し、0はプレースオペレーションを示します。 |
アイテム | オブジェクト | ピックされたアイテムまたは配置されたアイテム。 |
その他のオブジェクト | オブジェクト | アイテムをピックまたは配置しているオブジェクト。 |
X値ノード | ツリーノード | このノードの値は、この関数で設定します。またこのノードの値は、この関数から返されるオフセット位置を表します。たとえば、ピックしているオブジェクトまたは配置しているオブジェクトをx方向に10、y方向に0、z方向に5にオフセットするには、xvalnode.value = 10、yvalnode = 0、zvalnode.value = 5を使用してX値ノードを10に設定します。 |
Y値ノード | ツリーノード | 「X値ノード」を参照してください。 |
Z値ノード | ツリーノード | 「X値ノード」を参照してください。 |
両オペレーションとも、ここでユーザーが独自のピックロジックまたは配置ロジックを実装中で、デフォルトのロジックを実行しない場合は、この関数から1を返す必要があります。0が返された場合、オブジェクトでは何も行われなかったとみなされ、独自のデフォルトロジックが実行されます。
停止/再開
停止または再開イベントは、タスク実行者標準イベント、停止時および再開時と同時に起動されます。違いは利用できるパラメータです。停止の場合、Object.stop()コマンドでオブジェクトが停止したとき、このイベントが起動されます。再開の場合、Object.resume()コマンドが呼び出されたとき、このイベントが起動されます。このイベントではオブジェクト停止 - オブジェクト再開トリガーが実行されます。このトリガーでは、オブジェクトがどのように「停止」され、どのように「再開」されるかの方法が定義されます。また、このフィールドでは、停止リクエストの数、停止前のオブジェクトの状態などを記憶しておくデータも管理します。
次のパラメータがあります。
イベントパラメータ | タイプ | 説明 |
---|---|---|
停止オペレーション | 整数 | この値は1または0です。1はオブジェクトが停止していることを示し、0はオブジェクトが再開していることを示します。 |
停止状態 | 整数 | この値は停止オペレーションにのみ適用されます。リクエストを受けてObject.stop()コマンドに渡される状態を指定します。 |
停止数ノード | ツリーノード | これが停止オペレーションである場合、この関数内でこのノードの値が1のみ増加します。再開オペレーションの場合、この関数内でこのノードの値が1のみ減少します。また、このノードの値を取得すると、このオブジェクトに対して呼び出された停止コマンドの数を把握できます。ユーザーはオブジェクトの初回停止時(ノードの値が0から1に変化)に、このオブジェクトを停止する方法を指定するロジックを実行します。オブジェクトの最終再開時(ノードの値が1から0に変化)には、このオブジェクトを再開する方法を指定するロジックを実行します。 |
最終停止時間ノード | ツリーノード | このオブジェクトの初回停止時に、このノードを現在の時刻に設定します。こうしておくと、オブジェクトの最終再開時にオブジェクトが停止した時間を把握できます。 |
停止前の状態ノード | ツリーノード | このオブジェクトの初回停止時に、このノードをオブジェクトの現在の状態に設定します。これにより、オブジェクトが再開時にどの状態に戻るかを把握できます。 |
状態プロファイル | 整数 | 停止状態のプロファイル番号。デフォルトの状態プロファイルは0です。 |
ここでユーザーが独自の停止ロジックまたは再開ロジックを実装中で、デフォルトのロジックを実行しない場合は、この関数から1を返す必要があります。オブジェクトでは、この関数から戻り値0が渡されると、何も行われなかったとみなされ、独自のデフォルトロジックが実行されます。
状態
統計的な目的で、BasicFRは、シミュレーション実行中、さまざまな位置で次のいずれかの状態になります。オブジェクトをクリックし、[クイックプロパティ]の[統計]ペインを表示すると、現在の状態を表示できます。
アイドル
オブジェクトは空です。
設定
オブジェクトはモデラー定義の設定時間内です。
処理中
オブジェクトはモデラー定義の処理時間内です。
ブロックされました
オブジェクトからフローアイテムがリリースされましたが、下流のオブジェクトではまだ受け取り準備ができていません。
オペレーター待ち
オブジェクトは、オペレーターが到着し、故障を修理するか、バッチオペレーションを実行するまで待っています。
輸送待ち
オブジェクトがフローアイテムをリリースし、下流のオブジェクトはそれを受け取る準備ができていますが、輸送オブジェクトはそれをまだピックアップしていません。
統計
BasicFRはすべての固定リソースに共通の標準統計を使用します。これらの統計情報については、「固定リソース - 統計」を参照してください。
プロパティ
BasicFRオブジェクトでは、次のプロパティパネルを使用します。