Main Content

リンク付きブロックのマスク

Simulink® ライブラリには、マスクをもつブロックを含めることができます。このタイプのブロックの例として、Ramp ブロックが挙げられます。このブロックは、モデルまたは別のライブラリにコピーされると、ライブラリ リンクになります。このリンク付きブロックにマスクを追加できます。このリンク付きブロックがライブラリ内に存在しているときに再びコピーすると、このリンク付きブロックに別のマスクを追加して、マスクのスタックを作成できます。リンク付きブロックにマスクを追加することで、他の Simulink ブロックと同様に、カスタム インターフェイスをリンク ブロックに追加できます。

ブロックにマスクを適用してからブロックをライブラリに含めることもできます。後でライブラリ内に配置するブロックをマスクする場合、特別な準備は必要ありません。詳細については、カスタム ライブラリの作成を参照してください。

ライブラリの一部として表示されるブロック マスクは、ベース マスクです。派生マスクは、ベース マスクの上に作成されたマスクです。

たとえば、以下の図では、ライブラリ A にブロック A が含まれており、このブロック A にマスク A が追加されています。ブロック A がライブラリ B にコピーされ、このブロック A にマスク B が追加されています。ブロック A がライブラリ B にコピーされると、ライブラリ B からライブラリ A へのライブラリ リンクが作成されます。

次に、ブロック B がモデルにコピーされ、このブロック B にマスク C が追加されています。これで、ブロック C からライブラリ B へのライブラリ リンクが作成されます。したがって、ブロック C にはマスク A、マスク B およびマスク C が追加されています。マスク C は派生マスクであり、マスク B はベース マスクです。

ブロック C については次のとおりです。

  • マスク パラメーター名は、スタック内で一意です。

  • マスク B およびマスク C に対してマスク パラメーターを設定できます。

  • マスク B およびマスク C は、マスク A から MaskType パラメーターと MaskSelfModifiable パラメーターを継承します。

  • 最初にマスク C、続いてマスク B、マスク A という順番でそれぞれのマスク初期化コードが実行されます。

  • 変数は、スタック内で現在のマスクのすぐ上に位置するマスクから順番に解決されます。現在のマスクが一番上のマスクである場合、通常の変数関連付けルールに従います。

ライブラリ ブロック マスクの作成または変更を行うと、ライブラリ参照を使用してそのブロックにアクセスするすべてのモデル内でブロック インターフェイスが変更されます。ただし、個別のコピーとして存在するブロックのインスタンスには影響しません。

関連する例については、動的なマスク サブシステムを参照してください。

マスク パラメーターのガイドライン

  • 複数のマスク パラメーターに同じ名前を使用することはできません。Promote タイプのマスク パラメーターは例外であり、名前は継承されるので、継承元のパラメーターの名前と同じになります。

  • ベース マスクの下に位置するマスクに対して、マスク パラメーターを設定することはできません。ベース マスクの下に位置するマスクのマスク パラメーターは、ライブラリから継承されます。

マスクされたリンク付きブロックに対するマスクの動作

以下に示すのは、マスクされたリンク付きブロックについて理解しておくことが重要な動作の一部です。

  • MaskType および MaskSelfModifiable パラメーターは、ベース マスクから継承されます。

  • 派生マスクのマスク表示コードが最初に実行され、次に派生マスクの下に位置するマスクの表示コードから、MaskIconFrame パラメーターが opaque に設定されているマスクまで順番に実行されます。

  • 派生マスクのマスク初期化コードが最初に実行され、次に派生マスクの下に位置するマスクの初期化コードが順番に実行されます。

  • 変数は、スタック内で現在のマスクのすぐ上に位置するマスクから順番に解決されます。現在のマスクが一番上のマスクである場合、通常の変数関連付けルールが適用されます。

  • 複数のマスクをもつブロックを含んでいる Simulink モデルまたはライブラリを保存するときに、[シミュレーション] タブの [保存][モデルのエクスポート先][以前のバージョン] を使用していると、Sourceblock パラメーターが変更されて、一番下のマスクをもつライブラリ ブロックを参照します。

  • ライブラリへのリンクを無効化、切断または再確立したときに、以下の処理が発生します。

    • ライブラリ ブロックへのリンクを無効にした場合、マスク階層全体が保存されモデル ファイルに保存されるので、ブロックがスタンドアロン ブロックとして動作できます。

    • ライブラリ ブロックへのリンクを切断した場合、ブロックはスタンドアロン ブロックになります。

    • リンクを無効にしてから復元して再確立した場合、マスクに対する変更内容はすべて破棄されます。サブシステムにマスクを追加した場合、リンクを無効にしてからプッシュを実行して再確立しなければなりません。プッシュを実行したときに、サブシステムの変更内容がライブラリ ブロックにプッシュされ、一番上のマスクの変更内容が隣接ライブラリにプッシュされます。

リンク付きブロックのマスク

手順 1: マスクされたリンク付きブロックを含むカスタム ライブラリの作成

  1. [Simulink ライブラリ ブラウザー] で、 の隣の矢印をクリックし、[新規ライブラリ] を選択します。

  2. ライブラリ エディター ウィンドウで Ramp ブロックを開きます。

  3. Ramp ブロックを選択し、[ブロック] タブの [マスク] グループ内で [マスクの作成] をクリックします。

    マスク エディターが開きます。

  4. [アイコン] ペインで、次のように入力します。

    plot ([0:10],[0,1:10])
  5. [パラメーターとダイアログ] ペインで、[プロモート] を選択して、Slope パラメーターと Initial Output パラメーターをプロモートします。

  6. [OK] をクリックします。

  7. ブロックの名前を Derived Ramp に変更します。

手順 2: マスクされたリンク付きブロックへのマスクの追加

  1. [Simulink ライブラリ ブラウザー] で、 の隣の矢印をクリックし、[新規モデル] を選択します。モデル エディター ウィンドウが開きます。

  2. Derived Ramp ブロックをライブラリ エディターからモデル エディターにドラッグします。

    モデル内の Derived Ramp ブロックには、複数のマスクが適用されています。この派生マスクのパラメーターを設定できます。

手順 3: 最上位マスクの下にあるマスクの表示

  • モデル内で Derived Ramp ブロックを右クリックし、[マスク][ベース マスクの表示] を選択します。これで、ベース マスク定義を示すマスク エディターが表示されます。

関連するトピック