最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Simulink.BlockPath

完全に指定された Simulink ブロック パス

説明

Simulink.BlockPath オブジェクトは、モデルの階層構造内のブロックを一意に識別する完全に指定されたブロック パスを表し、その中には、参照モデルの複数インスタンスが関係するモデル参照階層も含まれます。Simulink® はブロック パス オブジェクトをさまざまなコンテキストで使用します。たとえば、ノーマル モードの可視性を指定する場合、Simulink はブロック パス オブジェクトを用いてノーマル モードの可視性のあるモデルを識別します。詳細については、ノーマル モードの可視性を参照してください。

Simulink.BlockPath クラスは Simulink.SimulationData.BlockPath とよく似ています。

Simulink.BlockPath クラスを使用するには Simulink をインストールしておかなくてはなりません。ただし、Simulink.SimulationData.BlockPath クラスの使用については Simulink をインストールしておく必要はありません。Simulink.BlockPath クラスには、モデル ブロック線図を更新せずにブロック パス オブジェクトの有効性をチェックできるメソッドが用意されているため、Simulink をインストールした場合は Simulink.SimulationData.BlockPath の代わりに Simulink.BlockPath を使用することを検討してください。

プロパティのまとめ

名前

説明

SubPath

ブロック パスに指定されたブロック内の各コンポーネント

メソッドのまとめ

名前

説明

BlockPath

ブロック パスを作成します。

convertToCell

ブロック パスを文字ベクトルの cell 配列に変換します。

getBlock

モデル参照階層にある単一のブロック パスを取得します。

getLength

ブロック パスの長さを取得します。

open

指定したモデル、ライブラリ、サブシステム、ブロックを開きます。

validate

ブロック パスが有効なブロック階層を示しているかを特定します。

プロパティ

SubPath

説明

ブロック パスに指定されたブロックにある 1 つのコンポーネントを示します。

たとえば、SubPath チャートを参照するロック パスの場合、チャートの信号は Stateflow® を用いて示せます。以下に例を示します。

Block Path:
      'sf_car/shift_logic'
 
    SubPath:
      'gear_state.first'

データ型

文字ベクトル

アクセス

RW

メソッド

BlockPath

目的

ブロック パスの作成

構文

blockpath_object = Simulink.BlockPath()
blockpath_object = Simulink.BlockPath(blockpath)
blockpath_object = Simulink.BlockPath(paths)
blockpath_object = Simulink.BlockPath(paths, subpath)

入力引数

blockpath

コピーするブロック パス。

paths

Simulink がブロック パスを構築するために使用する文字ベクトルまたは文字ベクトルの cell 配列。

個々の文字ベクトルの指定は、最上位モデルからブロック パス作成を指定した各ブロックの順番で行います。

各文字ベクトルは、Simulink モデルにある 1 つのブロックへのパスとなっていなければなりません。ブロックは、次の要件を満たさなければなりません。

  • 単一モデルにある 1 つのブロック

  • 1 つの Model ブロック (最後の文字ベクトルは例外で、Model ブロック以外のブロックとなる場合もある)

  • 1 つ前の文字ベクトルに指定された Model ブロックによって参照される、モデル中のブロックの 1 つ

ノーマル モードの可視性を指定するブロック パスの作成する際には、

  • 最初の文字ベクトルは、モデル参照階層中の最上位モデルにある 1 つのブロックを示していなければなりません。

  • 各文字ベクトルは、ノーマル モードにある Model ブロックを示していなければなりません。

  • バリアント モデルまたはバリアント サブシステムを示す文字ベクトルは、アクティブなバリアントを参照していなければなりません。

cell 配列中で gcb を使用すると、現在選択されているブロックを特定できます。

subpath

1 つのブロック内の各コンポーネントを示す文字ベクトル。

出力引数

blockpath_object

作成するブロック パスです。

説明

blockpath_object = Simulink.BlockPath() は、空のブロック パスを作成します。

blockpath_object = Simulink.BlockPath(blockpath) は、source_blockpath 引数に指定されたブロック パス オブジェクトに対し、そのブロック パスのコピーを作成します。

blockpath = Simulink.BlockPath(paths) は、paths 引数に指定された文字ベクトルの cell 配列から、1 つのブロック パスを作成します。個々の文字ベクトルはモデルの階層構造の各レベルにおける 1 つのパスを示します。Simulink はこれらの文字ベクトルに基づいて完全なブロック パスを作成します。

blockpath = Simulink.BlockPath(paths, subpath) は、paths 引数に指定された文字ベクトルまたは文字ベクトルの cell 配列からブロック パスを作成し、ブロックの各コンポーネント (たとえば 1 つの信号) に対する 1 つのパスを作成します。

gcb を使用して現在のブロックを取得し、bp1 というブロック パス オブジェクトを作成します。

sldemo_mdlref_depgraph
bp1 = Simulink.BlockPath(gcb)

得られるブロック パスは、thermostat という名前の、最上位の Model ブロックです (左上の Model ブロック)。

bp1 = 

  Simulink.BlockPath
  Package: Simulink

  Block Path:
    'sldemo_mdlref_depgraph/thermostat'

ブロック パスの要素を示す文字ベクトルの cell 配列を使用して、bp2 という名前のブロック パス オブジェクトを作成します。

sldemo_mdlref_depgraph
bp2 = Simulink.BlockPath({'sldemo_mdlref_depgraph/thermostat', ...
'sldemo_mdlref_heater/Fahrenheit to Celsius', ...
'sldemo_mdlref_F2C/Gain1'})

得られるブロック パスは、ブロック パスのモデル参照階層を反映しています。

bp2 = 

  Simulink.BlockPath
  Package: Simulink

  Block Path:
    'sldemo_mdlref_depgraph/thermostat'
      'sldemo_mdlref_heater/Fahrenheit to Celsius'
        'sldemo_mdlref_F2C/Gain1'

convertToCell

目的

ブロック パスを文字ベクトルの cell 配列に変換

構文

cellarray = Simulink.BlockPath.convertToCell()

出力引数

cellarray

ブロック パスの要素を示す文字ベクトルの cell 配列。

説明

cellarray = Simulink.BlockPath.convertToCell() は、ブロック パスを文字ベクトルの cell 配列に変換します。

sldemo_mdlref_depgraph
bp2 = Simulink.BlockPath({'sldemo_mdlref_depgraph/thermostat', ...
'sldemo_mdlref_heater/Fahrenheit to Celsius', ...
'sldemo_mdlref_F2C/Gain1'}) 
cellarray_for_bp2 = bp2.convertToCell()

得られる結果は、ブロック パスの要素を示す cell 配列です。

cellarray_for_bp2 = 

    'sldemo_mdlref_depgraph/thermostat'
    'sldemo_mdlref_heater/Fahrenheit to Celsius'
    'sldemo_mdlref_F2C/Gain1'

getBlock

目的

モデル参照階層にあるブロック パスを取得します。

構文

block = Simulink.BlockPath.getBlock(index)

入力引数

index

取得するブロック パスのブロック インデックスです。このインデックスは、モデル参照階層のレベルを反映しています。インデックス 1 は最上位モデルに対応し、インデックス 2 はインデックス 1 のブロックで参照されるモデル中のブロックに対応し、インデックス n はインデックス n-1 の参照ブロックに対応します。

出力引数

block

index 引数に指定されたモデル参照階層のレベルを示すブロックです。

説明

blockpath = Simulink.BlockPath.getBlock(index) は、index 引数に指定されたブロックのブロック パスを返します。

モデル参照階層にある 2 番目のレベルに対するブロックを取得します。

sldemo_mdlref_depgraph
bp2 = Simulink.BlockPath({'sldemo_mdlref_depgraph/thermostat', ...
'sldemo_mdlref_heater/Fahrenheit to Celsius', ...
'sldemo_mdlref_F2C/Gain1'})
blockpath = bp2.getBlock(2)

ブロック パス階層の 2 番目のレベルに存在する thermostat ブロックが得られます。

blockpath =

sldemo_mdlref_heater/Fahrenheit to Celsius

getLength

目的

ブロック パスの長さを取得します。

構文

length = Simulink.BlockPath.getLength()

出力引数

length

ブロック パスの長さです。この長さは、モデル参照階層のレベル数です。

説明

length = Simulink.BlockPath.getLength() は、ブロック パスのモデル参照階層におけるレベル数を、対応する数値で返します。

bp2 ブロック パスの長さを取得します。

sldemo_mdlref_depgraph
bp2 = Simulink.BlockPath({'sldemo_mdlref_depgraph/thermostat', ...
'sldemo_mdlref_heater/Fahrenheit to Celsius', ...
'sldemo_mdlref_F2C/Gain1'})
length_bp2 = bp2.getLength()

得られる結果は、3 つの要素をもつブロック パスを反映したものとなります。

length_bp2 =

     3

open

目的

指定したモデル、ライブラリ、サブシステム、ブロックを開きます。

構文

Simulink.BlockPath.open()
Simulink.BlockPath.open('OpenType', openType)
Simulink.BlockPath.open('Force', forceOpen)

入力引数

openType

Simulink.BlockPath オブジェクトで指定されたサブシステムまたはモデルを開く場所を指定します。オプションは次のとおりです。

  • 'REUSE_TAB' (default) — 現在のウィンドウのタブで開きます。

  • 'NEW_TAB' — 新規タブで開きます。

  • 'NEW_WINDOW' — 新規ウィンドウで開きます。

forceOpen

ブロック マスクに関係なく、Simulink.BlockPath オブジェクトを強制的に開きます。オプションは次のとおりです。

  • 'off' (default) — ブロック マスクを開きます。

  • 'on' — マスク内のブロックのダイアログ ボックスを開くか、マスク システムを新しいタブで開きます。

説明

Simulink.BlockPath.open() は、指定したモデル、ライブラリ、サブシステム、またはブロックを開きます。これは、現在のフォルダー ブラウザーでモデルやライブラリをダブルクリックするか、Simulink エディターでサブシステムやブロックをダブルクリックすることに相当します。

Simulink.BlockPath.open('OpenType', openType) では新しいタブまたはウィンドウでサブシステムまたはモデルを開くかどうかを指定できます。

Simulink.BlockPath.open('Force', forceOpen) は、マスク ブロックのマスク内を調べます。マスク内のブロックのダイアログ ボックスを開くか、マスク サブシステムを新しいタブで開きます。このオプションは、[マスク内を表示] メニュー項目に相当します。

モデル sldemo_mdlref_depgraph を開きます。

sldemo_mdlref_depgraph

モデル階層内のブロックを選択します。

bp3 = Simulink.BlockPath({'sldemo_mdlref_depgraph/thermostat', ...
'sldemo_mdlref_heater/Fahrenheit to Celsius'})

bp3 で指定された参照モデルを新しいタブで開きます。

bp3.open('OpenType','NEW_TAB')

validate

目的

ブロック パスが有効なブロック階層を示しているかを特定します。

構文

Simulink.BlockPath.validate()
Simulink.BlockPath.validate(AllowInactiveVariant)

説明

Simulink.BlockPath.validate() は、ブロック パスが有効なブロック階層を示しているかを特定します。有効性になんらかの問題がある場合は、MATLAB® コマンド ウィンドウにメッセージが表示されます。このメソッドは、以下をチェックします。

  • ブロック パスのすべての要素が有効なブロックを示しているか

  • 最後の要素を除いて、すべての要素が次の要件を満たしているか

    • 有効な Model ブロックであるか

    • 次の要素のモデルを参照しているか