ライブラリ ブロックへのリンクの無効化または解除
モデルの構造的な変更にはブロックの追加または削除や、端子の追加などがありますが、非構造的な変更にはパラメーター値の変更があります。
リンク付きブロックに対する構造的な変更は許可されていません。親ライブラリ ブロックからリンク付きブロックのリンクを無効にして、必要な変更を行うことができます。無効なリンク付きブロックは、ブロックのローカル インスタンスのように動作して、構造的な変更および非構造的な変更を行うことができます。
リンクを無効にするには、リンク付きブロックを右クリックして、[ライブラリ リンク] 、 [リンクを無効にする] を選択します。[リンクを無効にする] メニューは、リンク付きブロックの親ブロックが無効になっている場合のみ選択できます。メニュー オプションがグレー表示されている場合、まず、親ブロックのリンクを無効にしなければなりません。
あるいは、キャンバスの左下隅のグラフ内のリンク アイコンを右クリックし、[リンクを無効にする] をクリックすることもできます。このアクションは、階層構造に含まれるすべてのブロックのリンクを再帰的に無効にします。
リンク付きブロックを意図せずに無効化しないよう、リンクをライブラリにロックすることができます。リンクをロックするには、ライブラリ ウィンドウの [ライブラリ] タブで、[リンクをロック] をクリックします。その後、[ロックされたリンク] をクリックして、ロックされたリンクをロック解除することを選択できます。
メモ
アクティブなライブラリ リンクを含むブロックに構造的な変更を行おうとすると、Simulink® はライブラリ リンクを無効にすることを提案します (リンクがロックされていない場合)。
アクティブなリンクに対して構造的な変更を行う際に set_param
を使用しないでください。この種類の変更の結果は未定義となります。
リンク付きブロックの無効なリンクは、復元することができます。詳細については、無効なリンクの復元を参照してください。
リンクを無効にすることで、マージの競合が発生し、同じモデル コンポーネントのすべてのインスタンスを更新できなくなることがあります。リンクの階層では、気付かないうちにすべてのリンクを誤って無効にしたり、他のリンクを無効にしたまま 1 つのリンクだけを復元してしまうことがあります。
リンクの解除
親ライブラリへのリンクを完全に解除できます。ライブラリ リンクを解除するには、まずリンクを無効にしなければなりません。リンクを解除すると、リンク付きブロックはスタンドアロン ブロックに変換され、以前そのブロックが何とリンクされていたのかを見分けることはできなくなります。
リンクを解除するには、次のいずれかのオプションを使用します。
無効なリンクのリンク付きブロックを右クリックして、[ライブラリ リンク] 、 [リンクの解除] を選択します。
複数のブロックに対して同時にリンクをコピーして解除するには、複数のブロックを選択してからドラッグします。ロックされたリンクは無視され、リンクは解除されません。
モデルを保存するときに、
save_system
コマンドに引数を指定することでリンクを解除できます。詳細については、save_system
を参照してください。
メモ
一部のモデルには、サードパーティ ライブラリまたはオプションの Simulink ブロック セットのブロックが含まれる可能性があります。そのようなモデルのリンクを解除した場合、モデルをスタンドアロンで実行できることは保証されません。ライブラリ ブロックは当該ライブラリと一緒に提供されている関数を呼び出すことができるため、モデルを実行しているシステムにライブラリがインストールしてある場合に限りそのライブラリ ブロックを実行することができます。
リンクの解除があると、新しいバージョンのライブラリをシステムにインストールするときにモデルが失敗します。たとえば、モデル ブロックがライブラリから供給される関数を呼び出す場合です。そのようなブロックのリンクを解除する場合は、モデルから関数が呼び出されなくなり、シミュレーションに失敗します。このような問題を回避するには、ライブラリへのリンクが解除されないようにします。