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 ブロックの制御にバリアント制御は必要ありません。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 ブロックに変換ための警告が表示されます。

  1. [診断ビューアー][推奨アクション] セクションで [開く] をクリックします。これにより、[アップグレード アドバイザー] が開きます。[アップグレード アドバイザー] の詳細については、アップグレード アドバイザーの使用を参照してください。

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

  3. モデルで、[モデル階層を解析してアップグレード シーケンスを続行] チェックの実行により提供された [推奨アクション] を実行します。[アップグレード アドバイザー] では、手順の推奨シーケンスに従ってモデルをアップグレードしていきます。[アップグレード シーケンスを続行] をクリックしてシーケンスのライブラリを開きます。

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

メモ

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

プログラムによるアップグレード アドバイザーの使用

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

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

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

    upgrader = upgradeadvisor(bdroot);
    upgrader.upgrade
    

    ブロックの変換の状態を表すレポートが生成されます。関数 upgradeadvisor の使用方法の詳細については、プログラムによるモデルの解析とアップグレードを参照してください。

convertToVariantSubsystem メソッドの使用

convertToVariantSubsystem メソッドを使用して、モデルの Configurable Subsystem ブロックを Variant Subsystem ブロックに変換します。

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

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

  2. コマンド ウィンドウで find_system コマンドを使用して、モデル内のすべての Configurable Subsystem ブロックを見つけます。

    find_system(bdroot, 'Regexp', 'on',...
     'LookUnderMasks', 'on', 'FollowLinks', 'on',...
     'MatchFilter', @Simulink.match.allVariants, 'TemplateBlock', '.')
    {'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. convertToVariantSubsystem メソッドを使用して、ライブラリのテンプレート ブロックを Variant Subsystem ブロックに変換します。

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

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

Configurable Subsystem ブロックのコンテキスト メニューの使用

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

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

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

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

  5. 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 ブロックのバッジを右クリックして [ラベル モードのアクティブな選択肢] を選択します。

参考

関連するトピック