Main Content

Queue, Entity Queue

メッセージとエンティティのエンキュー

  • ライブラリ:
  • Simulink / Messages & Events

    SimEvents

  • Queue block

説明

このブロックは、到着順または優先順位に基づいて、エンティティまたはメッセージをキューに保存します。キューの先頭の各要素は、下流のブロックが受け入れ準備ができたときにキューを出ます。Queue ブロックと Entity Queue ブロックは、[Overwrite the oldest element if queue is full] チェック ボックスの既定の値が異なる同じブロックです。

キューの容量、およびキューが満杯のときのポリシーを指定できます。ブロックは、先入れ先出し (FIFO)、後入れ先出し (LIFO)、優先順位順の 3 つの異なるメッセージまたはキューの並べ替えポリシーをサポートしています。優先順位キューは、[Overwrite the oldest element if queue is full] チェック ボックスがオフであるときのみ使用できます。

端子

入力

すべて展開する

キューに入るスカラー、バス、またはベクトル データを伝達する入力エンティティまたはメッセージ。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | enumerated | bus | fixed point

出力

すべて展開する

下流のブロックで受け入れ準備ができたときにキューの先頭のエンティティまたはメッセージがキューを出ることができるようにする出力端子。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | enumerated | bus | fixed point

ブロックを出たエンティティの数。

依存関係

この端子を有効にするには [Overwrite the oldest element if queue is full] チェック ボックスをオンにて、[Statistics] タブをクリックして [Number of entities departed, d] というラベルのチェック ボックスをオンにします。

データ型: double

まだブロックを出ていないエンティティの数。

依存関係

この端子を有効にするには [Overwrite the oldest element if queue is full] チェック ボックスをオンにし、[Statistics] タブをクリックして [Number of entities in block, n] というラベルのチェック ボックスをオンにします。

データ型: double

ブロック内のエンティティの平均待機時間。

依存関係

この端子を有効にするには [Overwrite the oldest element if queue is full] チェック ボックスをオンにし、[Statistics] タブをクリックして [Average wait, w] というラベルのチェック ボックスをオンにします。

データ型: double

[Port_l] はエンティティ キューの平均の長さを出力します。

依存関係

この端子を有効にするには [Overwrite the oldest element if queue is full] チェック ボックスをオンにし、[Statistics] タブをクリックして [Average queue length, l] というラベルのチェック ボックスをオンにします。

データ型: double

このブロックから引き出されたエンティティの数。

依存関係

この端子を有効にするには [Overwrite the oldest element if queue is full] チェック ボックスをオンにて、[Statistics] タブをクリックして [Number of entities extracted, ex] というラベルのチェック ボックスをオンにします。

データ型: double

パラメーター

すべて展開する

このチェック ボックスの選択によって、2 つのキュー上書きポリシーの間での選択を行います。

  • このチェック ボックスをオンにすると、キューが満杯の場合に受信メッセージが最も古いメッセージを上書きします。

    このモードは、Simulink のコンポーネントと量産コードとの間の非同期通信を生成するのに使用できる、シンプルなメッセージ バッファーを表します。

  • このチェック ボックスをオフにすると、キューが満杯の場合にブロックは新しいメッセージを受け取りません。

    このモードでは、イベント アクションを使用してエンティティ データを操作し、統計を可視化できます。

    エンティティやメッセージが入るとき、出るとき、またはブロックされるときのアクションをカスタマイズするには、[Event actions] タブの Entry actionExit action、または Blocked action フィールドに MATLAB® コードを入力します。詳細については、Events and Event Actions (SimEvents)を参照してください。

    例については、Manage Entities Using Event Actions (SimEvents)を参照してください。

プログラムでの使用

ブロック パラメーター: QueueOverwriting
: 文字ベクトル
: 'on' | 'off'
既定の設定: 'on' (Simulink の場合) および 'off' (SimEvents の場合)

キューの容量を指定します。

プログラムでの使用

ブロック パラメーター: Capacity
: 文字ベクトル
: '25' | スカラー
既定の設定: '25'

キューのタイプを選択します。

  • FIFO — 先入れ先出し

  • LIFO — 後入れ先出し

  • 優先順位 — 優先順位の順に要素を保存。Serve High-Priority Customers by Sorting Entities Based on Priority (SimEvents)を参照してください。[Priority][Overwrite the oldest element if queue is full] チェック ボックスをオフにすると選択できます。

    メモ

    優先順位キューは fixed point データ型をサポートしません。

プログラムでの使用

ブロック パラメーター: QueueType
: 文字ベクトル
値: 'FIFO' | 'LIFO' | 'Priority'
既定の設定: 'FIFO'

マルチキャスト ソースを介してエンティティのブロードキャストを受け入れるときにタグを指定します。Entity Multicast ブロックには SimEvents ライセンスが必要です。

依存関係

このパラメーターは、[Overwrite the oldest element if queue is full] チェック ボックスをオフにして、[Entity arrival source][Multicast] に設定すると表示されます。

プログラムでの使用

ブロック パラメーター: MulticastTag
: 文字ベクトル
: 'A' | 文字ベクトル
既定の設定: 'A'

エンティティのどの属性が優先順位を決定するかを指定します。

依存関係

このパラメーターは、[Overwrite the oldest element if queue is full] チェック ボックスをオフにして、[Queue type][Priority] に設定すると表示されます。

プログラムでの使用

ブロック パラメーター: PrioritySource
: 文字ベクトル
: 'PriorityAttribute' | 文字ベクトル
既定の設定: 'PriorityAttribute'

優先順位に基づく並べ替えの方向を選択します。

  • 昇順 — 優先順位の値が小さい要素がキューの前方に表示されます。

  • 降順 — 優先順位の値が大きい要素がキューの前方に表示されます。

依存関係

このパラメーターは、[Overwrite the oldest element if queue is full] チェック ボックスをオフにして、[Queue type][Priority] に設定すると表示されます。

プログラムでの使用

ブロック パラメーター: SortingDirection
: 文字ベクトル
: 'Ascending' | 'Descending'
既定の設定: 'Ascending'

エンティティの到着元を選択します。

  • 入力端子 — 入力端子がメッセージやエンティティのソースです。

  • MulticastEntity Multicast ブロックがエンティティのソースです。Entity Multicast ブロックには SimEvents ライセンスが必要です。

依存関係

このパラメーターは、[Overwrite the oldest element if queue is full] チェック ボックスをオフにして、[Queue type][Priority] に設定すると表示されます。

プログラムでの使用

ブロック パラメーター: EntityArrivalSource
: 文字ベクトル
: 'Input port' | 'Multicast'
既定の設定: 'Input port'

特定のイベントでのエンティティの動作を指定します。動作を [Event action] パラメーターで指定します。[Entry] アクションおよび [Exit] アクションは、エンティティが入った直後、およびエンティティが出る直前に呼び出されます。[Blocked] アクションは、エンティティがブロックされた後に呼び出されます。詳細については、Events and Event Actions (SimEvents)を参照してください。

メモ

イベント アクションは fixed point データ型をサポートしません。

依存関係

イベント アクションは [キューが満杯の場合は最も古い要素を上書き] チェック ボックスをオフにすると表示されます。

プログラムでの使用

ブロック パラメーター: EntryAction, ExitAction, BlockedAction
: 文字ベクトル
: MATLAB コード
既定の設定: ''

ブロックを出たエンティティの数。

依存関係

[Number of entities departed, d] は、[Overwrite the oldest element if queue is full] チェック ボックスをオフにすると表示されます。

プログラムでの使用

ブロック パラメーター: NumberEntitiesDeparted
: 文字ベクトル
: 'on' | 'off'
既定の設定: 'off'

ブロック内に存在し、まだ出ていないエンティティの数。

依存関係

[Number of entities in block, n] は、[Overwrite the oldest element if queue is full] チェック ボックスをオフにすると表示されます。

プログラムでの使用

ブロック パラメーター: NumberEntitiesInBlock
: 文字ベクトル
: 'on' | 'off'
既定の設定: 'off'

ブロックを出るエンティティの待機時間の合計をそのその総数で除算した値。"待機時間" とは、エンティティが Entity Queue ブロックに入ってから出るまでの期間です。詳細については、Interpret SimEvents Models Using Statistical Analysis (SimEvents)を参照してください。

依存関係

[Average wait, w] は、[Overwrite the oldest element if queue is full] チェック ボックスをオフにすると表示されます。

プログラムでの使用

ブロック パラメーター: AverageWait
: 文字ベクトル
: 'on' | 'off'
既定の設定: 'off'

時間により重み付けされた平均のキュー サイズの累積。ブロックはこの値を次のように計算します。

  1. キューのサイズに期間を乗算して時間により重み付けされたキューのサイズを計算

  2. 時間により重み付けされたキューのサイズをすべて合計し、総時間で平均を計算

詳細については、Interpret SimEvents Models Using Statistical Analysis (SimEvents)を参照してください。

依存関係

[Average queue length, l] は、[Overwrite the oldest element if queue is full] チェック ボックスをオフにすると表示されます。

プログラムでの使用

ブロック パラメーター: AverageQueueLength
: 文字ベクトル
: 'on' | 'off'
既定の設定: 'off'

このブロックから Entity Find ブロックによって引き出された、抽出されたエンティティの数を出力します。Entity Find ブロックには、SimEvents ライセンスが必要です。抽出されたエンティティがキューの最初のエンティティである場合、次のエンティティはブロックを出る保留中のエンティティとして設定されます。優先順位キューでエンティティの属性が優先順位を定義する場合で、その属性が Entity Find ブロックによって変更される場合、キューは再度並べ替えられます。エンティティが抽出されると、[Number of entities departed, d][Number of entities in block, n][Average wait, w]、および [Average queue length, l] の統計がそれに従って更新されます。エンティティの検出と抽出の詳細については、Find and Extract Entities in SimEvents Models (SimEvents)を参照してください。

依存関係

[Number of entities extracted, ex] は、[Overwrite the oldest element if queue is full] チェック ボックスをオフにすると表示されます。

プログラムでの使用

ブロック パラメーター: NumEntitiesExtracted
: 文字ベクトル
: 'on' | 'off'
既定の設定: 'off'

ブロックの特性

データ型

Boolean | bus | double | enumerated | fixed point | integer | single | string

直接フィードスルー

いいえ

多次元信号

はい

可変サイズの信号

いいえ

ゼロクロッシング検出

いいえ

拡張機能

R2016a で導入