Main Content

スコープ内、グローバル、および端子スコープ内の Simulink Function ブロックの概要

関数の可視性を定義すると、参照モデルを統合する際の名前空間の競合を回避するのに役立つことがあります。Simulink Function ブロックでは、そのブロックを含むサブシステムまたはモデルを基準として関数の可視性をスコープ内、グローバル、または端子スコープ内のいずれかとして定義します。既定では、Simulink Function ブロックはスコープ内になります。

  • "関数の可視性"。スコープ内の関数は、その階層において表示されるようになります。関数と同じレベルまたは 1 つ以上低いレベルにある関数の呼び出し元が、その関数を参照できます。グローバル関数は、モデルの階層全体において表示されます。これは、現在のモデルまたは親モデルの階層の任意の場所に配置された関数の呼び出し元が、その関数を参照できることを意味します。端子スコープ内の関数は、現在のモデル内の特定のエクスポート関数の端子にのみ表示され、モデルの階層構造の他の場所には表示されません。この関数は、現在のモデルの外部からに限り、エクスポート関数の端子を介してのみ呼び出すことができます。

  • "関数のアクセス" は、関数の可視性と、関数の呼び出し元の Simulink Function ブロックに対する相対的な場所で決まります。関数の呼び出し元が関数よりも 1 レベル上の階層にある場合、関数名をバーチャル Subsystem ブロックの名前または Model ブロックの名前で修飾します。

  • "関数のエクスポート" は、モデルからエクスポートされる関数を表します。エクスポート関数モデルの任意の場所に配置されたグローバルの可視性をもつ関数は、モデル インターフェイスに加え、モデルの階層構造の最上位レベルにエクスポートされます。エクスポート関数モデルのルート レベルにあるスコープ内の可視性をもつ関数は、モデル インターフェイスにエクスポートされます。どちらの場合も、エクスポートされた関数にモデルの外部からアクセスできます。端子スコープ内の可視性をもつ関数は、エクスポート関数モデルのルート レベルに配置する必要があり、他のエクスポート関数モデル内の関数の呼び出し元から、それぞれのモデルの関数端子間の接続を介してのみアクセスできます。

関数の可視性は、Simulink Function ブロック内の Trigger ブロックの [関数の可視性] パラメーターを使用して [スコープ内][グローバル]、または [端子] のいずれかに設定します。端子スコープ内の関数については、端子の名前を [端子へのスコープ] フィールドで指定します。

Simulink Function ブロックの可視性とアクセスの概要

Simulink Function ブロック関数の可視性関数のアクセス関数のエクスポート
バーチャル サブシステム

スコープ内

同じ階層レベルの関数名は一意でなければならない。

階層内または親レベルにある関数の呼び出し元。

Subsystem ブロックの階層内にある関数の呼び出し元 – 修飾なし、fcn()サブシステムのスコープ内の Simulink Function ブロックの「関数の階層的な関連付け」を参照してください。

親レベルにある関数の呼び出し元 – サブシステム ブロック名で修飾、subsystem.fcn()サブシステムのスコープ内の Simulink Function ブロックの「関数の修飾による関連付け」を参照してください。

該当なし。

グローバル

関数名は一意でなければならない。

階層の上下の任意のレベルにある関数の呼び出し元。

階層の任意のレベルにある関数の呼び出し元 – 修飾なし、fcn()

モデルの任意のレベルにある関数が最上位モデルのグローバル名前空間にエクスポートされる。

[端子] の可視性は許可されない。

該当なし。

該当なし。

Atomic サブシステム

スコープ内

同じ階層レベルの関数名は一意でなければならない

階層内にある関数の呼び出し元のみ

Subsystem ブロックの階層内にある関数の呼び出し元 – 修飾なし、fcn()サブシステムのスコープ内の Simulink Function ブロックの「関数の階層的な関連付け」を参照してください。

親レベルにある関数の呼び出し元 – 許可されない。

該当なし。

[グローバル] の可視性は許可されない。

関数の呼び出しは許可されない。

該当なし。

[端子] の可視性は許可されない。

該当なし。

該当なし。

モデル

スコープ内

モデル ルート レベルでは関数名は一意でなければならない。

階層内または親レベルにある関数の呼び出し元。

Subsystem ブロックの階層内にある関数の呼び出し元 – 修飾なし、fcn()モデルのスコープ内の Simulink Function ブロックの「関数の階層的な関連付け」を参照してください。

親レベルにある関数の呼び出し元 – モデル ブロック名で修飾、model_block.fcn()モデルのスコープ内の Simulink Function ブロックの「関数の修飾による関連付け」を参照してください。

モデルのルート レベルにある関数がモデル インターフェイスにエクスポートされる。

グローバル

関数名は一意でなければならない。

階層の上下の任意のレベルにある関数の呼び出し元。

階層の任意のレベルにある関数の呼び出し元 – 修飾なし、fcn()

モデルの任意のレベルにある関数が最上位モデルのグローバル名前空間にエクスポートされる。

端子

異なる端子をスコープとしている場合、モデル ルート レベルの関数名が一意である必要はない。

関数がスコープとするエクスポート関数の端子に接続された呼び出し元の関数の端子に関連付けられている関数の呼び出し元。呼び出し元の端子名で修飾、PortName.fcn()

関数はエクスポート関数の端子を介してしか表示されない。

参考

ブロック

関連するトピック