非同期サポートの確認事項
非同期タスクの優先度
Simulink® 製品では、非同期タスクの動作はシミュレートされません。Task Sync ブロックをもつモデルで表された非同期タスクのタスク優先度は指定できますが、優先度の設定は、コードの生成のみが目的で、シミュレーション中には適用されません。
非同期サブシステムのモデル参照への変換
Asynchronous Task Specification ブロックを使用すると、参照モデルへの非同期関数呼び出し入力を指定できます。ただし、Async Interrupt ブロックと Function-Call ブロックをサブシステムに変換し、そのサブシステムを参照モデルに変換しなければなりません。
この例では、変換を完了する方法を示します。
Async Interrupt ブロックと Count ブロックをサブシステムに変換します。両方のブロックを選択し、Count を右クリックします。メニューから、[サブシステムとモデル参照] 、 [選択からサブシステムを作成] を選択します。
新しいサブシステムを Model ブロックに変換する準備のために、最上位モデルで次のモデル コンフィギュレーション パラメーターを設定します。
[マルチタスク データ転送] を
[エラー]
に設定します。[マルチタスクの条件付き実行サブシステム] を
[エラー]
に設定します。[ベクトルとして扱われるバス信号] を
[エラー]
に設定します。[コンテキスト依存の入力] を
[エラー]
に設定します。[マルチタスク データ ストア] を
[エラー]
に設定します。[指定不足の初期化の検出] を
[簡易]
に設定します。モデルが大きい場合や複雑な場合は、簡易初期化モードへの移行の概要フォルダーでモデル アドバイザー チェックを実行し、推奨された変更を加えます。
サブシステムを Atomic Subsystem に変換します。サブシステム ブロック パラメーター [Atomic サブシステムとして扱う] を選択します。
サブシステムを Model ブロックに変換します。サブシステムを右クリックし、[サブシステムとモデル参照] 、 [変換] 、 [参照モデル] を選択します。モデル参照変換アドバイザーが開きます。
最上位モデルのサブシステムを新しい Model ブロックで置き換えます。
Async Interrupt ブロックを参照モデルから最上位モデルの Model ブロックの前に移動します。
参照モデルに Asynchronous Task Specification ブロックを挿入します。Asynchronous Task Specification ブロックの優先順位を設定します (優先順位の設定の詳細については、Asynchronous Task Specificationを参照してください)。
参照モデルで、入力端子をダブルクリックして [Source ブロック パラメーター] ダイアログ ボックスを開きます。[信号属性] タブで、[関数呼び出しの出力] パラメーターを選択します。[OK] をクリックします。
モデルを保存してからブロック線図を更新し、設定を確認します。