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