Configurable Subsystem の Variant Subsystem への変換
メモ
Configurable Subsystem は将来のリリースで削除されます。既存のモデル内の Configurable Subsystem ブロックを Variant Subsystem ブロックに変換します。
Variant Subsystem には、Configurable Subsystem と比較して以下の利点があります。
機能 | Configurable Subsystem | Variant Subsystem |
---|---|---|
ライブラリ | Configurable Subsystem のインスタンスを作成するには、Simulink ライブラリにテンプレート ブロックを作成する必要があります。 | ライブラリを作成して Variant Subsystem のインスタンスを作成する必要はありません。 |
バリアント制御 | Configurable Subsystem ブロックの制御にバリアント制御は必要ありません。 | label モードと他のモードを介してバリアント ブロックを制御できます。 |
コード生成 | 生成されたコードには、アクティブなブロックの選択肢のみが含まれます。 | 生成されたコードには、アクティブな選択肢と非アクティブな選択肢の両方が含まれる可能性があります。 |
選択肢としての Model ブロックと Subsystem ブロック | Model ブロックと Subsystem ブロックを選択肢として混在させることはできません。 | Model ブロックと Subsystem ブロックをバリアントの選択肢として混在させることができます。 |
入れ子になったワークフロー | 入れ子になった Configurable Subsystem の階層では、ブロックの選択肢の制御が容易ではありません。 | 入れ子になった Variant Subsystem のワークフローは簡単であり、問題はありません。 |
バリアント マネージャー | Configurable Subsystem ブロックを管理する集中型のシステムはありません。 | バリアント マネージャーには、高度なバリアント管理機能があります。 |
以下の方法で Configurable Subsystem ブロックを Variant Subsystem ブロックに変換できます。
アップグレード アドバイザーを対話的に使用する
アップグレード アドバイザーをプログラムによって使用する
convertToVariantSubsystem
メソッドを使用するConfigurable Subsystem ブロックのコンテキスト メニューを使用する
アップグレード アドバイザーを対話的に使用する
Configurable Subsystem ブロックを含むモデルをコンパイルすると、[診断ビューアー] で、Configurable Subsystem ブロックを Variant Subsystem ブロックに変換ための警告が表示されます。
[診断ビューアー] の [推奨アクション] セクションで [開く] をクリックします。これにより、[アップグレード アドバイザー] が開きます。[アップグレード アドバイザー] の詳細については、アップグレード アドバイザーの使用を参照してください。
[このチェックを実行] をクリックして、[Variant Subsystem ブロックに変更するための Configurable Subsystem のブロックを特定] チェックを実行します。アップグレード アドバイザーは、モデル内のすべての Configurable Subsystem ブロックのリストおよび [推奨アクション] を表示します。
モデルで、[モデル階層を解析してアップグレード シーケンスを続行] チェックの実行により提供された [推奨アクション] を実行します。[アップグレード アドバイザー] では、手順の推奨シーケンスに従ってモデルをアップグレードしていきます。[アップグレード シーケンスを続行] をクリックしてシーケンスのライブラリを開きます。
ライブラリで [Variant Subsystem ブロックに変更するための Configurable Subsystem のブロックを特定] を再度実行します。[すべて変換] をクリックして、シーケンスのライブラリ内のすべての Configurable Subsystem ブロックを変換します。[Variant Subsystem ブロックに変更するための Configurable Subsystem のブロックを特定] チェックをライブラリの数だけ実行しなければなりません。
メモ
モデル レベルまたはサブシステム レベルでモデルの離散化により作成された Configurable Subsystem インスタンスをアップグレードするには、[推奨アクション] を実行します。推奨アクションによって、離散化に関する情報は必ず保持されます。Variant Subsystem ブロックに変換するには、リストに示される各 Configurable Subsystem インスタンスを右クリックし、[サブシステムとモデル参照]、[変換]、[Variant Subsystem] を選択します。
プログラムによるアップグレード アドバイザーの使用
関数 upgradeadvisor
を使用して、モデルの Configurable Subsystem ブロックを Variant Subsystem ブロックにプログラムによって変換します。
Configurable Subsystem ブロックを含むモデルを開きます。
関数
upgradeadvisor
を使用して、ライブラリのテンプレート ブロックを Variant Subsystem ブロックに変換します。upgradeadvisor
のオブジェクトを作成し、upgrader
オブジェクトを指定してupgrade
メソッドを実行します。upgrader = upgradeadvisor(bdroot); upgrader.upgrade
ブロックの変換の状態を表すレポートが生成されます。関数
upgradeadvisor
の使用方法の詳細については、プログラムによるモデルの解析とアップグレードを参照してください。
convertToVariantSubsystem
メソッドの使用
convertToVariantSubsystem
メソッドを使用して、モデルの Configurable Subsystem ブロックを Variant Subsystem ブロックに変換します。
次の手順を実行して、モデルの Configurable Subsystem ブロックを Variant Subsystem ブロックに変換します。
Configurable Subsystem ブロックを含むモデルを開きます。
コマンド ウィンドウで
find_system
コマンドを使用して、モデル内のすべての Configurable Subsystem ブロックを見つけます。find_system(bdroot, 'Regexp', 'on',... 'LookUnderMasks', 'on', 'FollowLinks', 'on',... 'MatchFilter', @Simulink.match.allVariants, 'TemplateBlock', '.')
{'mconfigsub/config_sub'} {'mconfigsub/nested config'}
get_param
コマンドを使用して、リストからライブラリのテンプレート ブロックを見つけます。get_param('mconfigsub/nested config',... 'TemplateBlock') ans = 'mconfiglib/nested config' get_param('mconfigsub/config_sub',... 'TemplateBlock') ans = 'mconfiglib/Subsystem/config_sub'
convertToVariantSubsystem
メソッドを使用して、ライブラリのテンプレート ブロックを Variant Subsystem ブロックに変換します。Simulink.VariantUtils.convertToVariantSubsystem('mconfiglib/nested config') Simulink.VariantUtils.convertToVariantSubsystem('mconfiglib/Subsystem/config_sub')
ライブラリを保存します。ライブラリを保存するには、
save_system
コマンドを使用できます。モデルを閉じてもう一度開きます。モデル内の Configurable Subsystem ブロックが Variant Subsystem ブロックに変換されます。
Configurable Subsystem ブロックのコンテキスト メニューの使用
Configurable Subsystem ブロックを含むモデルを開きます。
Configurable Subsystem ブロックを右クリックします。コンテキスト メニューで [サブシステムとモデル参照]、[変換]、[Variant Subsystem] を選択します。
既定では、[設定可能なサブシステム ライブラリへのリンクを作成せずにコピーする] はオンになっています。これにより、ライブラリへのリンクを作成せずにバリアントの選択肢が作成されます。
[OK] をクリックします。Configurable Subsystem ブロックが Variant Subsystem ブロックに変換され、新しいウィンドウに表示されます。
Configurable Subsystem ブロックを、元のモデルで変換された Variant Subsystem ブロックに手動で置き換えます。
アクティブなバリアントの変更
Configurable Subsystem ブロックを Variant Subsystem ブロックに変換すると、Configurable Subsystem ブロックの [ブロック選択] が Variant Subsystem ブロックの [ラベル モードのアクティブな選択肢] に変更されます。
Configurable Subsystem テンプレート ブロックの [ブロック選択] がリンクされている場合、ブロックが Variant Subsystem にコピーされ、コピーされたブロックでリンクが保持されます。Configurable Subsystem テンプレート ブロックの [ブロック選択] がリンクされていない場合、ブロックが Variant Subsystem にコピーされ、Configurable Subsystem ライブラリのブロックがリンクされます。
アクティブなバリアントを変更するには、以下のようにします。
Variant Subsystem ブロック上のバッジを右クリックし、[ブロック パラメーター (Subsystem)] を選択します。[ブロック パラメーター] ダイアログ ボックスで、[ラベル モードのアクティブな選択肢] ドロップダウン リストからアクティブなバリアントを選択します。
Variant Subsystem ブロックのバッジを右クリックして [ラベル モードのアクティブな選択肢] を選択します。
メモ
マスクをもつ Configurable Subsystem ブロックが Variant Subsystem ブロックに変換されると、[ブロック パラメーター] ダイアログ ボックスの [ラベル モードのアクティブな選択肢] オプションとその他のパラメーターすべてが無効になります。アクティブなバリアントを変更するには、Variant Subsystem ブロックのバッジを右クリックして [ラベル モードのアクティブな選択肢] を選択します。
参考
Variant Subsystem, Variant Model