Simulink 関数の複数のインスタンスの再利用
この例では、同じ Simulink® 関数のインスタンスを再利用する方法を示します。モデル slexCounterFunctionMdlRef
に、カウンターを実装する update
関数が含まれています。サブシステム CounterA
と CounterB
のそれぞれにカウンターのインスタンスが含まれており、モデルで関数ロジックを再利用できます。
モデルを開きます。
open_system('slexMultiInstanceFunctionsExample');
再利用可能な Simulink 関数の実装
slexMultiInstanceFunctionsExample
モデルの関数は、slexCounterFunctionMdlRef
サブシステムで定義されている update
関数です。
Simulink Function ブロックを表示するには、CounterA
サブシステムを開きます。
open_system('slexMultiInstanceFunctionsExample/CounterA');
サブシステム CounterA
と CounterB
のそれぞれに、slexCounterFunctionMdlRef
モデルで実装されるカウンターのインスタンスが含まれています。カウンターのインスタンスが複数あるため、モデルで関数ロジックを再利用し、各インスタンスを複数のブロックから呼び出すことができます。
異なる呼び出し元からの同じ Simulink 関数の呼び出し
slexMultiInstanceFunctionsExample
モデルの関数の呼び出し元は、UpdateCounterA
サブシステムと UpdateCounterB
サブシステムにあります。呼び出し表記 CounterA.update
と CounterB.update
で、カウンター ロジックの 2 つの異なるインスタンスを区別します。
CounterA
の呼び出し元を表示するには、UpdateCounterA
サブシステムをダブルクリックします。サブシステムの Function Caller ブロックでは、関数名が Model ブロック名で修飾されています。この場合は、CounterA
が Model ブロック名で update
が関数名です。
sim('slexMultiInstanceFunctionsExample');
参考
Argument Inport | Argument Outport | Function Caller | Model | Simulink Function