Main Content

カスタム ライブラリの作成

独自のライブラリを作成し、必要に応じて Simulink®ライブラリ ブラウザーに追加できます。モデルを保存する方法と同様に、ライブラリを .slx ファイルとして保存します。ただし、ライブラリ内ではシミュレートできず、ライブラリは閉じるたびに編集に対してロックされるようになります。ライブラリのロックを解除してから変更を加えなければなりません。ライブラリのロックとロック解除を参照してください。

  1. Simulink スタート ページから、[空のライブラリ] を選択して [ライブラリの作成] をクリックします。

    メモ

    ライブラリ ブラウザーはライブラリのみをサポートします。ライブラリ ブラウザーでモデルの内容は表示できません。

  2. (オプション) Simulink データ ディクショナリでブロック インターフェイスで使用されるデータ型を定義します。次に、データ ディクショナリをライブラリに接続します。ライブラリ ユーザーは、ライブラリからモデルにブロックをドラッグすると、ディクショナリに含まれているデータに自動的にアクセスできます。

  3. ブロックを新しいライブラリに追加します。ブロック パラメーターの変更、マスクの追加、サブシステムへのブロックの追加など、ブロックに対して希望する変更を行います。

    ライブラリ階層のサブシステム名は一意でなければなりません。たとえば、Subsystem_Name1/Subsystem_Name2/Subsystem_Name1 のような階層を作成しないでください。

  4. (オプション) 注釈またはイメージを追加します。ライブラリ ブラウザーでライブラリに表示させるものを右クリックして、[ライブラリ ブラウザーで表示] を選択します。

  5. ライブラリ ブラウザーにライブラリを追加する予定の場合、ライブラリでブロックと注釈を並べることができます。既定では、ライブラリ ブラウザーには最初はサブシステム、次にブロック、その次に注釈がアルファベット順に表示されます。ライブラリのユーザーはライブラリ ブラウザーのコンテキスト メニューを使用して、それらをアルファベット順に表示するか、指定した順番に表示するかを選択できます。ユーザーがこのオプションを選択すると、ライブラリに表示される順番によって、ライブラリ ブラウザーのライブラリのグリッド上に表示される順番が決定されます。

  6. ライブラリをライブラリ ブラウザーに表示する場合、ライブラリを保存する前に EnableLBRepository ライブラリ プロパティを有効にします。

    set_param(gcs,'EnableLBRepository','on');

  7. ライブラリを保存します。

    ライブラリを保存する場所は、ライブラリの使用方法によって異なります。ライブラリをライブラリ ブラウザーに追加する場合、これを MATLAB® パス上のフォルダーに保存するか、場所を MATLAB パスに追加します。あるいは、ブロックを使用するモデルがアクセスできる場所にライブラリを保存します。

ライブラリをライブラリ ブラウザーに表示する場合、MATLAB パス上に、ライブラリをブラウザーに追加する関数 slblocks も作成しなければなりません。ライブラリをブラウザーに追加する完全な手順を示す例については、ライブラリ ブラウザーへのライブラリの追加を参照してください。

メモ

ライブラリ ブラウザーをカスタム ライブラリで更新するには、ライブラリ ブラウザーのライブラリ リスト内の任意の場所を右クリックして [ライブラリ ブラウザーを更新] を選択します。ライブラリ ブラウザーを更新すると、クイック挿入メニューも現在有効なカスタム ライブラリ内のブロックを含むように更新されます。クイック挿入メニューを使用すると、キャンバスから移動せずにモデルにブロックを追加できます。クイック挿入メニューからブロックを追加するには、キャンバスをクリックして入力を開始します。

カスタム ライブラリのデータ ディクショナリ

ブロック インターフェイスで使用するデータ型 (バスや列挙型など) を定義するときに、ライブラリに接続されているデータ ディクショナリにそれらのデータ型を保存して、これらのデータ型をユーザーが利用できるようにすることができます。ユーザーがブロックをライブラリからモデルにドラッグすると、モデルはディクショナリに含まれるデータに自動的にアクセスします。

  1. データ ディクショナリを作成します。

  2. ディクショナリにおいて、ライブラリ ブロックのインターフェイス定義に使用するバス オブジェクト、列挙型、またはその他のデータ オブジェクトを定義します。

  3. プログラムで set_param を使用するか、UI で [ライブラリ プロパティ] ダイアログ ボックスの [外部データ] タブを使用してディクショナリをライブラリの外部データ ソースとして接続します。モデル エクスプローラーに、接続されているディクショナリとその内容がライブラリの外部データ ソースとして表示されます。

  4. データ ディクショナリの仕様を保存するには、ライブラリを保存します。

ライブラリで定義した型は、ライブラリ ブロックを作成するときに使用できるようになりました。Attach Data Dictionary to Custom Librariesを参照してください。

カスタム ライブラリのブロック

ライブラリには、目的に合わせて構成された、必要なブロックを含めることができます。ライブラリ内のサブシステム、マスクされたブロックおよびチャートは、モデル内のインスタンスとしてリンク付きブロックとなり、ライブラリ内で変更するとリンク付きブロックも更新されます。カスタム ブロックについて知っていると、ライブラリを作成する際にも便利です。カスタム ブロックの設計と作成を参照してください。

特定の目的のために設定されたカスタム ライブラリにブロックを作成できます。

サブライブラリの作成

ライブラリにブロックが多く含まれている場合、ブロックをサブシステムまたは別のサブライブラリにグループ化できます。サブライブラリを作成するには、サブライブラリ ブロックのライブラリを作成して、親ライブラリにある Subsystem ブロックからライブラリを参照します。

  1. サブライブラリを追加するライブラリで、Subsystem ブロックを追加します。

  2. Subsystem ブロック内部で、既定の入力端子と出力端子を削除します。

  3. 必要に応じて、サブライブラリの目的を示すテキストまたはイメージを表示する、サブシステムのマスクを作成します。

  4. サブシステムのブロックのプロパティで、OpenFcn コールバックを参照するライブラリの名前に設定します。

マスクの詳細については、簡単なマスクの作成を参照してください。

ライブラリ ブロックのインスタンスへのリンクの防止

ライブラリ ブロックから作成されたインスタンスがリンク付きブロックではなくコピーであるように、ライブラリ ブロックを設定できます。ブロックの CopyFcn コールバックを設定します。

set_param(gcbh,'LinkStatus','none'); 

リンク付きブロックにブロックの説明を含める

リンク付きブロックに表示される説明を追加するには、ライブラリ ブロックをマスクして、マスクの [ドキュメンテーション] ペインに説明を追加します。ブロックのプロパティを介してライブラリ ブロックに追加された説明は、リンク付きブロックには表示されません。

クイック挿入のキーワードによるブロックの構成

1 つ以上のキーワードをライブラリのブロックに追加できます。キーワードにより、キーワードまたはブロック名をクイック挿入メニューから入力することでモデルにブロックを追加できます。

たとえば、ライブラリにカスタムの Gain ブロックがあるとします。キーワード My Gain をブロックに追加できます。次に、クイック挿入メニューで「My Gain」と入力することにより、モデルにブロックを追加できます。

メモ

さまざまなライブラリにある頻繁に使用されるブロックを表示する場所であるため、[Commonly Used Blocks] のブロックにキーワードを追加することはできません。[Commonly Used Blocks] で利用可能なブロックにキーワードを追加する場合は、ブロックが定義されているライブラリ内に設定していることを確認してください。

ライブラリのブロックにキーワードを追加するには、'BlockKeywords' パラメーターを指定して set_param を使用します。値には文字ベクトル、string スカラー、または string 配列を使用できます。次に例を示します。

set_param(gcb,'BlockKeywords',{"My Gain","Your Gain"})
set_param(gcb,'BlockKeywords','My Integrator')

メモ

キーワードでサポートされている特殊文字は '&', '(', ')', '+', '@', '!' です。

メモ

クイック挿入メニューは、国際化対応キーボードを使用することで、英語以外の言語によるブロックの検索もサポートしています。

ライブラリ ブラウザーで OpenFcn コールバックを使用するサブシステムの設定

カスタム ライブラリでの Subsystem ブロックの一般的な使用方法は、OpenFcn コールバック プロパティを設定して、ライブラリを開き、ライブラリ階層を作成することです。しかし、Subsystem ブロックの OpenFcn コールバック プロパティを別の目的、たとえば MATLAB コードを実行したり、リンクを開いたりするために使用することができます。

ライブラリ内の Subsystem ブロックが空であり、その OpenFcn コールバックにはライブラリを指す以外のアクションを実行するコードが含まれている場合、'ShowInLibBrowser' マスク パラメーターをサブシステムに追加して、それがライブラリ ブラウザーに表示されるようにします。

  1. サブシステムを右クリックし、[マスク][マスクの作成] を選択します。ブロックにマスクが既に設定されている場合は、代わりに [マスクの編集] を選択します。

  2. マスク エディターの [コントロール] ペインの [パラメーターとダイアログ] タブで、[チェック ボックス] をクリックします。

  3. [ダイアログ ボックス] ペインで、新しいチェック ボックスのプロンプトと名前を ShowInLibBrowser に設定して、[OK] をクリックします。

カスタム ライブラリの注釈

注釈をカスタム ライブラリに追加して、オプションでライブラリ ブラウザーに表示させることができます。たとえば、ライブラリを記述する注釈を追加できます。ライブラリのユーザーがライブラリ ブラウザーから自分のモデルに追加できる注釈を追加することもできます。注釈にはテキストやイメージが含まれる場合と方程式が表示される場合があります。注釈は、クリックされた時に、ある動作を実行することもできます。注釈の詳細については、Annotate Modelsを参照してください。

注釈からライブラリのブロックへのコールアウトの線を追加できます。ただし、コールアウトはライブラリ ブラウザーには表示されません。

注釈をライブラリ ブラウザーに表示させる場合、注釈をライブラリに追加してから右クリックして [ライブラリ ブラウザーで表示] を選択します。ユーザーがポインターをライブラリ ブラウザーの注釈に合わせるとツールヒントに説明が表示されるようにするには、プログラムで注釈に説明を追加します。MATLAB コマンド プロンプトで、次のように入力します。

set_param(annotationHandle,'Description','descriptionText)

注釈ハンドルを取得するには、find_system を使用します。この例では、ライブラリ mylib のすべての注釈を取得します。

ann = find_system('mylib','FindAll','on','Type','annotation');

特定の注釈を取得するには、正規表現検索をオンにして、次のように 'Name' 引数を使用して注釈テキストの一部を指定します。

ann = find_system('mylib2',FindAll','on','RegExp',...
'on','Type','annotation','Name','matchingText');

ライブラリ ブラウザーへのライブラリの追加では、ライブラリ ブラウザーに表示される注釈を追加する手順について説明しています。

ライブラリのロックとロック解除

ライブラリを閉じると、編集に対してロックされます。次に開くときに、変更する場合はロックを解除します。ライブラリの左下隅にあるロック バッジをクリックしてロックを解除します。さらに、ロックされたライブラリを変更する場合は、ロック解除を求めるメッセージが表示されます。

ライブラリのロック解除をプログラムで行うことができます。MATLAB コマンド プロンプトで、次のように入力します。

set_param('library_name','Lock','off');

ライブラリをプログラムでロックするには、次のように入力します。

set_param('library_name','Lock','on');

ライブラリのリンクの無効化の防止

既定では、ライブラリ内のブロックのユーザーはライブラリ ブロックへのリンクを無効にできます。リンク付きブロックの編集を制限して、ブロック ユーザーがリンクを無効にできないようにする場合、ライブラリへのリンクをロックします。ライブラリ リンクをロックすると、ユーザーはブロック インスタンスに変更を加えることができなくなります。

  • ライブラリの [ライブラリ] タブで [リンクをロック] をクリックします。

ブロック ユーザーがロックされたライブラリのブロックを操作する方法を理解するには、ライブラリ内のブロックへのリンクのロックを参照してください。

関連するトピック