Main Content

Configurable Subsystem の Variant Subsystem への変換

メモ

Configurable Subsystem は将来のリリースで削除されます。既存のモデル内の Configurable Subsystem ブロックは、Variant Subsystem ブロックに変換されなければなりません。

Variant Subsystem には、Configurable Subsystem よりも多くの機能が備わっており、次の利点があります。

機能Configurable SubsystemVariant Subsystem
ライブラリ

Configurable Subsystem のインスタンスを作成するには、ライブラリにテンプレート ブロックを作成するために Simulink ライブラリが必要です。​

ライブラリを作成して Variant Subsystem のインスタンスを作成する必要はありません。
バリアント制御Configurable Subsystem ブロックの制御にバリアント制御は必要ありません。ラベル モードと他のモードを介してバリアント ブロックを制御できます。Variant Subsystem は上位集合です。
コード生成生成されたコードには、ブロックの選択肢のみが含まれます。生成されたコードには、すべてのバリアントからいずれかのアクティブな選択肢を含めることができます。
選択肢としての Model ブロックと Subsystem ブロック。Model ブロックと Subsystem ブロックを選択肢として混在させることはできません。Model ブロックと Subsystem ブロックをバリアントの選択肢として混在させることができます。
入れ子になったワークフロー入れ子になった Configurable Subsystem の階層では、ブロックの選択肢の制御が容易ではありません。入れ子になった Variant Subsystem のワークフローは簡単であり、問題はありません。
バリアント マネージャーConfigurable Subsystem ブロックを管理する集中型のシステムはありません。バリアント マネージャーの高度なバリアント管理機能を利用できます。​

次の 4 つの方法のいずれかを使用して、Configurable Subsystem ブロックを Variant Subsystem ブロックに変換できます。

アップグレード アドバイザーを使用した、プログラムによる Configurable Subsystem ブロックの Variant Subsystem ブロックへの変換

upgradeadvisorを使用して、モデル内の Configurable Subsystem ブロックを Variant Subsystem ブロックにプログラムにより変換できます。

次の手順を実行して、モデルの Configurable Subsystem ブロックを Variant Subsystem ブロックに変換します。

  1. Configurable Subsystem ブロックを含むモデルを開きます。

  2. upgradeadvisorを使用して、ライブラリのテンプレート ブロックを Variant Subsystem ブロックに変換します。upgradeadvisor のオブジェクトを作成し、upgrade メソッドを upgrader オブジェクトの出力と共に使用します。

    upgrader = upgradeadvisor(bdroot);
    upgrader.upgrade
    

    このメソッドの使用方法の詳細については、upgradeadvisorを参照してください。ブロックの変換の状態を表すレポートが生成されます。

アップグレード アドバイザーを使用した Configurable Subsystem ブロックの Variant Subsystem ブロックへの変換

[アップグレード アドバイザー] を使用して、モデルの Configurable Subsystem ブロックを Variant Subsystem ブロックに変換します。

Configurable Subsystem ブロックを含むモデルをコンパイルすると、Configurable Subsystem ブロックを Variant Subsystem ブロックに変換するように指示する警告が表示されます。

  1. Configurable Subsystem ブロックを含むモデルについて考えます。このモデルをコンパイルすると、警告が [診断ビューアー] に表示されます。

    メモ

    新しい Configurable Subsystem ブロックを作成すると、Configurable Subsystem ブロックを Variant Subsystem ブロックに変換するようにアップグレード アドバイザー アラートが表示されます。

  2. [診断ビューアー][推奨アクション] セクションで [開く] をクリックします。

  3. [アップグレード アドバイザー] で、[Variant Subsystem ブロックに変更するための Configurable Subsystem のブロックを特定] を選択し、[このチェックを実行] をクリックします。モデル内のすべての Configurable Subsystem ブロックのリストおよび実行が推奨されるアクションが表示されます。

    メモ

    モデル レベルまたはサブシステム レベルでモデルの離散化により作成された Configurable Subsystem インスタンスをアップグレードするには、[推奨アクション] を実行します。推奨アクションによって、離散化に関する情報は必ず保持されます。

    Variant Subsystem に変換するには、リストに示される各 Configurable Subsystem インスタンスを右クリックし、[サブシステムとモデル参照][変換][Variant Subsystem] を選択します。

  4. モデルで [モデル階層を解析してアップグレード シーケンスを続行] の実行の [推奨アクション] を実行し、Configurable Subsystem テンプレート ブロックを変換して、リストに示された Configurable Subsystem ブロックを更新します。[アップグレード アドバイザー] では、手順の推奨シーケンスに従ってモデルをアップグレードしていきます。[アップグレード シーケンスを続行] をクリックしてシーケンスのライブラリを開きます。

  5. ライブラリで [Variant Subsystem ブロックに変更するための Configurable Subsystem のブロックを特定] を再度実行します。[すべて変換] ボタンをクリックして、シーケンスのライブラリ内のすべての Configurable Subsystem ブロックを変換します。[Variant Subsystem ブロックに変更するための Configurable Subsystem のブロックを特定] チェックをライブラリの数だけ実行しなければなりません。

convertToVariant を使用した、プログラムによる Configurable Subsystem ブロックの Variant Subsystem ブロックへの変換

convertToVariant メソッドを使用して、モデル内の Configurable Subsystem ブロックを Variant Subsystem ブロックにプログラムにより変換できます。

Configurable SubsystemVariant Subsystem ブロックに変換されると、Configurable Subsystem ブロックのブロック選択は Variant Subsystem ブロックの LabelModeActiveChoice に変更されます。

Configurable Subsystem テンプレート ブロックのブロック選択がリンクされている場合、ブロックが Variant Subsystem グラフにコピーされ、コピーされたブロックのリンクが保持されます。Configurable Subsystem テンプレート ブロックのブロック選択がリンクされていない場合、ブロックが Variant Subsystem グラフにコピーされ、Configurable Subsystem ライブラリのブロックがリンクされます。

次の手順を実行して、モデルの Configurable Subsystem ブロックを Variant Subsystem ブロックに変換します。

  1. Configurable Subsystem ブロックを含むモデルを開きます。

  2. コマンド ラインで find_system コマンドを入力し、モデル内のすべての Configurable Subsystem ブロックを見つけます。

    find_system(bdroot, 'Regexp', 'on', 'LookUnderMasks', 'on','FollowLinks', 'on', 'Variants', 'AllVariants', 'TemplateBlock', '.')

    モデル内に存在する Configurable Subsystem ブロックがリストされます。

    {'mconfigsub/config_sub'}
    {'mconfigsub/nested config'}
  3. get_param コマンドを使用して、リストからライブラリのテンプレート ブロックを見つけます。

    get_param('mconfigsub/nested config','TemplateBlock')
    ans =
        'mconfiglib/nested config'
    
    get_param('mconfigsub/config_sub','TemplateBlock')                                                                               
    ans =
        'mconfiglib/Subsystem/config_sub'
    
  4. convertToVariant を使用して、ライブラリのテンプレート ブロックを Variant Subsystem ブロックに変換します。

    Simulink.VariantManager.convertToVariant('mconfiglib/nested config')
    
    Simulink.VariantManager.convertToVariant('mconfiglib/Subsystem/config_sub')
  5. ライブラリを保存します。ライブラリを保存するには、save_system コマンドを使用できます。

  6. モデルを閉じてもう一度開きます。モデル内の Configurable Subsystem ブロックが Variant Subsystem ブロックに変換されます。

ダイアログを介した Configurable Subsystem ブロックの Variant Subsystem ブロックへの変換

  1. Configurable Subsystem ブロックを含むモデルを開きます。

  2. コンテキスト メニューで Configurable Subsystem ブロックを右クリックし、[サブシステムとモデル参照][変換][Variant Subsystem] を選択します。

  3. 既定では、[設定可能なサブシステム ライブラリへのリンクを作成せずにコピーする] チェック ボックスがオンになっています。これにより、ライブラリへのリンクを作成せずにバリアントの選択肢が作成されます。

  4. [OK] をクリックします。Configurable Subsystem ブロックは Variant Subsystem ブロックに変換され、新しいウィンドウに表示されます。

    メモ

    Configurable Subsystem ブロックが Variant Subsystem ブロックに変換されると、Configurable Subsystem ブロックのブロック選択は Variant Subsystem ブロックの LabelModeActiveChoice に変更されます。

  5. Configurable Subsystem ブロックを、元のモデルで変換された Variant Subsystem ブロックに手動で置き換えます。

アクティブなバリアントの変更

Configurable Subsystem ブロックが Variant Subsystem ブロックに変換されると、Configurable Subsystem ブロックのブロック選択は Variant Subsystem ブロックのラベル モードのアクティブな選択肢に変更されます。

アクティブなバリアントを変更するには、次のいずれかの手順を実行します。

  • Variant Subsystem ブロック上のバッジを右クリックし、[ブロック パラメーター (Subsystem)] を選択します。ブロック パラメーター ダイアログ ボックスで、[ラベル モードのアクティブな選択肢] ドロップダウン リストからアクティブなバリアントを選択します。

  • Variant Subsystem ブロックのバッジを右クリックして [ラベル モードのアクティブな選択肢] を選択します。

メモ

マスクをもつ Configurable Subsystem ブロックが Variant Subsystem ブロックに変換されると、ブロック パラメーター ダイアログ ボックスの [ラベル モードのアクティブな選択肢] オプションとその他のパラメーターすべてが無効になります。アクティブなバリアントを変更するには、Variant Subsystem ブロックのバッジを右クリックして [ラベル モードのアクティブな選択肢] を選択します。

参考

関連するトピック