Receive
メッセージを受信

ライブラリ:
Simulink /
Messages & Events
SimEvents
Receive ブロックの代替構成:
Message Receive
説明
Receive ブロックは受信したメッセージからデータを抽出し、出力信号端子に書き出します。ブロックが実行されるときに新しいメッセージがない場合は、ブロックは [キューが空のときの値のソース] の値を使用します。Receive と Message Receive は同じブロックです。
[最後の値をホールド]
を選択すると最後のメッセージから読み取ったデータを保持します。[初期値を使用]
を選択すると既定のデータを書き込みます。
例
Simulink 関数によるメッセージ受信インターフェイスの接続
この例では、メッセージベースのシステムでデータの入手に実行を同期させる方法を説明します。イベントとアクションを使用してこの動作をモデル化する方法を示します。この例は、2 つのソフトウェア コンポーネントがメッセージを使用して通信する別の例、ソフトウェア コンポーネント間におけるメッセージ送受信インターフェイスの確立に基づいています。
端子
入力
メッセージの入力端子。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| enumerated
| bus
| fixed point
出力
ブロックがメッセージを正常に受信した場合は 1
を、そうでない場合は 0
を出力します。
依存関係
この端子を有効にするには [受信ステータスの表示] というラベルのチェック ボックスをオンにします。
データ型: double
信号の出力端子。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| enumerated
| bus
| fixed point
パラメーター
メッセージの受信に内部キューを使用する場合は、このチェック ボックスをオンにします。
プログラムでの使用
ブロック パラメーター: UseInternalQueue |
型: 文字ベクトル |
値: 'on' | 'off' |
既定の設定: 'on' |
このチェック ボックスの選択によって、2 つのキュー上書きポリシーの間での選択を行います。
このチェック ボックスをオンにすると、キューが満杯の場合に受信メッセージが最も古いメッセージを上書きします。
このチェック ボックスをオフにすると、キューが満杯の場合にブロックは新しいメッセージを受け取りません。
依存関係
このパラメーターは、[内部キューの使用] というラベルのチェック ボックスをオンにすると表示されます。
プログラムでの使用
ブロック パラメーター: QueueOverwriting |
型: 文字ベクトル |
値: 'on' | 'off' |
既定の設定: 'on' (Simulink の場合) および 'off' (SimEvents の場合) |
メッセージ キューの容量を指定します。キューの長さは、1
から 226-1 までの正の整数として指定できます。
依存関係
このパラメーターは、[内部キューの使用] というラベルのチェック ボックスをオンにすると表示されます。
プログラムでの使用
ブロック パラメーター: QueueLength |
型: 文字ベクトル |
値: '16' | スカラー |
既定の設定: '16' |
ブロックは 3 つのメッセージの並べ替えポリシーをサポートします。
先入れ先出し (
FIFO
) — ストレージ内の最も古いメッセージが最初に出ていく。後入れ先出し (
LIFO
) — ストレージ内の最も新しいメッセージが最初に出ていく。優先
— メッセージやエンティティは優先順位に基づいて並べ替えられる。優先順位キューは、[Overwrite the oldest element if queue is full] チェック ボックスがオフであるときのみ使用できます。
メモ
優先順位キューは非バスのスカラーのみを受け入れ、
fixed point
データ型はサポートしません。
依存関係
このパラメーターは、[内部キューの使用] というラベルのチェック ボックスをオンにすると表示されます。
プログラムでの使用
ブロック パラメーター: QueueType |
型: 文字ベクトル |
値: 'FIFO' | 'LIFO' | 'Priority' |
既定の設定: 'FIFO' |
優先順位に基づいてメッセージの並べ替えの方向を選択します。
昇順
— 小さい優先順位値をもつメッセージがキューの先頭に来ます。降順
— 大きい優先順位値をもつメッセージがキューの先頭に来ます。
依存関係
このパラメーターは、ボックス [内部キューの使用] および [キュー タイプ] 、 [優先] というラベルのチェック ボックスがオンのときにのみ表示されます。
プログラムでの使用
ブロック パラメーター: PriorityOrder |
型: 文字ベクトル |
値: 'Ascending' | 'Descending'
|
既定の設定: 'Ascending' |
メッセージが受信されたかどうかを表示するにはこのチェック ボックスをオンにします。このチェック ボックスがオンの場合、ブロックは、メッセージが正常に受信された場合には 1
を、そうでない場合は 0
を出力します。
プログラムでの使用
ブロック パラメーター: ShowQueueStatus |
型: 文字ベクトル |
値: 'on' | 'off' |
既定の設定: 'off' |
最初のメッセージが到着する前のキューの初期データ値を入力します。既定の値 [](unspecified)
は、データ型が double の 0
として取り扱われます。
このブロックを使用して非バーチャル バス信号を初期化するには、初期値を MATLAB® 構造体として指定します。構造体を使用した非バーチャル バス信号の初期化についての詳細は、Specify Initial Conditions for Bus Elementsを参照してください。
プログラムでの使用
ブロック パラメーター: InitialValue |
型: 文字ベクトル |
値: '[]' | スカラー |
既定の設定: '[]' |
受信したメッセージ キューが空だったときに受け取る値を指定します。
最後の値をホールド
(既定) — 最後のメッセージから読み取ったデータを保持します。まず、ブロックがメッセージの受信を試みて失敗した場合、ブロックは初期値を出力します。
初期値を使用
— 既定のデータを書き込みます。
依存関係
このパラメーターは、[内部キューの使用] というラベルのチェック ボックスをオンにすると表示されます。
プログラムでの使用
ブロック パラメーター: ValueSourceWhenQueueIsEmpty |
型: 文字ベクトル |
値: 'Hold last value' | 'Use initial value'
|
既定の設定: 'Hold last value' |
サンプル時間を継承するには、このパラメーターを -1
に設定します。詳細については、サンプル時間の指定を参照してください。
プログラムでの使用
ブロック パラメーター: SampleTime |
型: 文字ベクトル |
値: '-1' | スカラー |
既定の設定: '-1' |
ブロックの特性
データ型 |
|
直達 |
|
多次元信号 |
|
可変サイズの信号 |
|
ゼロクロッシング検出 |
|
代替構成
Message Receive ブロックは [内部キューの使用] パラメーターを選択し、[キュー タイプ] を FIFO、[キューの長さ] を 16 に設定します。
ライブラリ:
Simulink /
Messages & Events
SimEvents
拡張機能
メッセージ キューを使用していてマルチタスクが有効になっているモデルのコードを生成する際、そのモデルがマルチタスク環境に展開される場合は同時実行タスクの動作を有効にします。そうでない場合、生成コードでデータ破損が発生する可能性があります。同時実行タスクの動作を有効にするにはAllow tasks to execute concurrently on targetを選択します。
メモ
Receive ブロックでは行優先のコード生成はサポートされません。
バージョン履歴
R2016a で導入
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)