メインコンテンツ

add_block

R2026b

ブロックをモデルに追加

説明

h = add_block(source,dest) は、指定されたソース ブロックのコピーを指定された宛先に追加します。新しいブロックは、ブロック線図内で、親ブロック線図に表示されるソース ブロックと同じ位置に追加されます。

コピー先のモデルが読み込まれていなければなりません。

例

h = add_block(___,Name=Value) は、1 つ以上の Name=Value ペアの引数を使用して追加のオプションを指定します。

例

例

すべて折りたたむ

myModel という名前のモデルがあると仮定します。Customizable Blocks ライブラリからモデルに Circular Gauge ブロックを追加します。新しいブロックに myBlock という名前を付けます。名前は一意になるようにします。たとえば、myBlock という名前のブロックが既に存在する場合は、代わりにブロックに myBlock1 という名前を付けます。

ライブラリ ブロックのパスを検索します。ブロックを含むライブラリを開くことから始めます。

これを行うには、クイック挿入メニューを使用します。モデル キャンバスをダブルクリックして、クイック挿入メニューを開きます。その後、ブロック名を入力します。矢印キーを使用して、目的の検索結果に移動します。右側の詳細ペインで、ライブラリの名前をクリックします。

Quick insert menu with "circular gauge" entered in the search bar, showing the details pane for the Circular Gauge block

開いたライブラリで、Circular Gauge ブロックを選択します。

MATLAB® コマンド ウィンドウで次のコマンドを入力して、ブロック パスを取得します。

libBlockPath = gcb
libBlockPath =
    'simulink_hmi_customizable_blocks/Circular Gauge'

myBlock という名前のブロックを myModel に追加します。名前を確実に一意にするには、MakeNameUnique を "on" に設定します。

add_block(libBlockPath,"myModel/myBlock,"MakeNameUnique="on")

myBlock という名前のブロックを含む myModel という名前のモデルがあるとします。

ブロックのコピーを作成します。コピーに myBlock1 という名前を付けます。

add_block("myModel/myBlock","myModel/myBlock1");

myModel という名前のモデルがあると仮定します。

値が 0.1 の Constant ブロックをモデルに追加します。新しいブロックに myBlock という名前を付け、名前を確実に一意にします。

add_block("simulink/Sources/Constant","myModel/myBlock",MakeNameUnique="on",Value="0.1");

端子のブロックを追加する方法は目的によって異なります。新規または既存の端子のブロックを追加できます。入力端子に対応するブロックを複製することもできます。

新しい端子のブロックを追加

PortBlockCreation という名前のモデルを作成して開きます。

mdl = "PortBlockCreation";
new_system(mdl);
open_system(mdl);

端子番号で識別される端子を作成するには、In1 ブロックと Out1 ブロックを追加します。既定では、In1 ブロックまたは Out1 ブロックを追加すると端子が作成されます。

add_block("simulink/Ports & Subsystems/In1",...
    "PortBlockCreation/In1")
add_block("simulink/Ports & Subsystems/Out1",...
    "PortBlockCreation/Out1")

端子名で識別される端子を作成するには、In Bus Element ブロックと Out Bus Element ブロックを追加します。既定では、新しい In Bus Element ブロックと Out Bus Element ブロックは InBus と OutBus という名前の端子にそれぞれ対応します。これらの端子にも端子番号はあります。必要に応じて、PortName ブロック パラメーターで端子のカスタム名を指定します。

add_block("simulink/Ports & Subsystems/In Bus Element",...
    "PortBlockCreation/InBusElement")
add_block("simulink/Ports & Subsystems/Out Bus Element",...
    "PortBlockCreation/OutBusElement")

In Bus Element ブロックまたは Out Bus Element ブロックを追加するときに端子を作成するには、CreateNewPort を "on" に設定します。

add_block("simulink/Ports & Subsystems/In Bus Element",...
    "PortBlockCreation/InBusElement1",CreateNewPort="on")
add_block("simulink/Ports & Subsystems/Out Bus Element",...
    "PortBlockCreation/OutBusElement1",CreateNewPort="on")

CreateNewPort を "on" に設定しない場合は異なる動作になります。

  • InBus および OutBus という名前の端子があるとします。追加されるブロックはそれらの端子のいずれかに対応します。ブロックを追加するときに端子名を指定すると、InBus 端子または OutBus 端子の名前が変更され、指定した端子名が使用されます。

  • カスタム名が付けられた端子しかないとします。追加されるブロックは新しい端子に対応します。ブロックを追加するときに端子名を指定すると、指定した端子名が新しい端子に使用されます。

新しい端子要素のブロックを追加

In Bus Element ブロックおよび Out Bus Element ブロックでは、入力端子から複数の要素を選択し、出力端子に複数の要素を接続できます。

In Bus Element ブロックに要素を追加するには、端子に対応する既存のブロックをコピーし、新しい要素の固有の名前を指定します。

add_block("PortBlockCreation/InBusElement",...
    "PortBlockCreation/InBusElement2",Element="signal2")

Out Bus Element ブロックに要素を追加するには、端子に対応する既存のブロックをコピーします。必要に応じて、固有の要素名を指定します。

add_block("PortBlockCreation/OutBusElement",...
    "PortBlockCreation/OutBusElement2")

入力端子のブロックを複製

ある入力端子からの同じ入力をブロック線図内の複数のブロックで使用できます。入力端子に対応するブロックを複製するとライン ルーティングを簡略化できます。

In1 ブロックを複製するには、ブロック線図からブロックをコピーし、CopyOption を "duplicate" に設定します。

add_block("PortBlockCreation/In1",...
    "PortBlockCreation/In1Dup",CopyOption="duplicate")

In Bus Element ブロックを複製するには、ブロックをコピーします。

add_block("PortBlockCreation/InBusElement",...
    "PortBlockCreation/InBusElementDup")

複製ブロックでは元のブロックと同じ端子番号が使用されます。名前ベースの端子の場合、元のブロックと同じ端子から同じ要素が選択されます。

入力引数

すべて折りたたむ

追加するブロックのパス。string または文字ベクトルとして指定します。ブロックは、ライブラリ ブロック、またはモデル内のブロックにすることができます。追加したブロックは、指定したソース ブロックと同じパラメーター値をもちます。

組み込みライブラリのブロックのパスを取得するには、次の手順を実行します。

  1. ブロックの追加元にするライブラリを開きます。

    これを行うには、クイック挿入メニューを使用します。モデル キャンバスをダブルクリックして、クイック挿入メニューを開きます。その後、ブロック名を入力します。矢印キーを使用して、目的の検索結果に移動します。右側の詳細ペインで、ライブラリの名前をクリックします。ライブラリが開きます。

  2. 追加するライブラリ ブロックを選択します。

  3. MATLAB コマンド ウィンドウで次のコマンドを入力して、ブロック パスを取得します。

    gcb

ブロック パスの取得の詳細については、Get Handles and Pathsを参照してください。

特定のブロック タイプのブロックを作成するには、ブロック タイプを 'built-in/blocktype' として指定します。ここで、blocktype はプログラム上のブロック名です。ブロックの BlockType パラメーターの値を取得するには、共通ブロック プロパティを参照してください。'built-in/blocktype' を使用して追加されるブロックは、ライブラリ ブロックとは異なる構成になることがあります。

SubSystem を BlockType とするライブラリ ブロックは複数あります。ソース ブロックを "built-in/SubSystem" として指定する場合、新しいブロックは 1 つの入力と 1 つの出力をもつサブシステムを表します。それ以外のサブシステムやマスク ブロックには、BlockType の値の代わりにライブラリ ブロック パスを使用します。

例: "simulink/Math Operations/Gain"

例: "built-in/Gain"

例: "myModel/myOriginalBlock"

データ型: string | character vector

新しいブロックのパス。string として指定します。

ブロック パスの取得については、Get Handles and Pathsを参照してください。

例: "myModel/myNewBlock"

データ型: string | character vector

名前と値の引数

すべて折りたたむ

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

例: add_block("simulink/Math Operations/Gain","myModel/myNewBlock",Gain="5") は、ゲイン値が 5 である myBlock という名前の Gain ブロックを追加します。

add_block 関数では、ブロックのパラメーターとプロパティの値を名前と値の引数として指定します。ブロックのパラメーターとプロパティの詳細については、プログラムによるブロックのパラメーターとプロパティの指定を参照してください。

一意の名前のブロックを追加するためのオプション。"off" または "on" として指定します。このオプションがオンになっていて、指定したブロック名が存在する場合、ブロック名の最後に番号が付加されるか、ブロック名の最後の番号がインクリメントされます。

例: add_block("simulink/Math Operations/Gain","myModel/myNewBlock",MakeNameUnique="on")

データ型: string | character vector

コピー オプション。""、"nolink"、または "duplicate" として指定します。

  • "nolink" — 新しいブロックは、ソース ブロックを含むカスタム ライブラリにリンクしません。

  • "duplicate" — 新しいブロックは、入力端子ブロックを複製し、ソース ブロックと同じ端子番号をもちます。端子の作成やラインの追加なしで入力端子から信号を分岐するには、入力端子に対応するブロックを複製します。詳細については、重複する Inport ブロックの作成を参照してください。

例: add_block("myLibrary/CustomBlock","myModel/CustomBlock",CopyOption="nolink")

例: add_block("myModel/mySubsystem/Inport","myModel/mySubsystem/InportDup",CopyOption="duplicate")

データ型: string | character vector

新しいバス要素端子のブロックを追加するためのオプション。"off" または "on" として指定します。ソース ブロックは In Bus Element ブロックまたは Out Bus Element ブロックでなければなりません。

このオプションをオンにした場合、必要に応じて、PortName パラメーターで新しい端子の名前を指定できます。既定では、新しい端子の名前は、コピーされるブロックの端子名と番号の組み合わせになります。コピーされるブロックの端子名が既に番号で終わっている場合は、一意になるように番号がインクリメントされます。

CreateNewPort を "off" に設定しても、端子を作成できないわけではありません。たとえば、モデルに追加する最初の In Bus Element ブロックまたは Out Bus Element ブロックで端子が作成されます。また、ブロックを追加して PortName で固有の端子名を指定しても端子が作成されます。

CreateNewPort を "off" に設定すると、追加されるブロックを既存の端子に対応させることができます。たとえば、モデルから In Bus Element ブロックまたは Out Bus Element ブロックをコピーする場合、Element パラメーターで要素名を指定すると、新しいブロックで端子の新しい要素を表すことができます。

バス要素端子をプログラムで作成する方法の詳細については、Programmatically Create Bus Element Portsを参照してください。

例: add_block("simulink/Ports & Subsystems/In Bus Element","myModel/InBusElement1",CreateNewPort="on")

データ型: string | character vector

出力引数

すべて折りたたむ

新しいブロック。ハンドルとして返されます。

ヒント

ブロックのオーバーラップを防ぐには、新しいブロックの位置を Position ブロック プロパティで指定します。詳細については、プログラムによるブロックのパラメーターとプロパティの指定を参照してください。

バージョン履歴

R2006a より前に導入