Main Content

Simulink.MSFcnRunTimeBlock

Level-2 MATLAB S-Function ブロックに関する実行時の情報を取得する

説明

このクラスによって、Level-2 MATLAB® S-Function または他の MATLAB プログラムで Simulink® から情報を取得したり、Level-2 MATLAB S-Function ブロックに関する情報を Simulink に提供したりできます。Simulink は、モデル内の各 Level-2 MATLAB S-Function ブロックに対して、このクラスのインスタンスを作成します。Simulink はモデルの更新やシミュレーションを実行するときに、Level-2 MATLAB S-Function のコールバック メソッドにこのオブジェクトを渡します。これにより、コールバック メソッドは、Simulink とブロックに関連する情報のやり取りをすることができます。詳細については、Write Level-2 MATLAB S-Functionsを参照してください。

シミュレーション中に Level-2 MATLAB S-Function ブロックに関する情報を取得するために、MATLAB プログラムのこのクラスのインスタンスも使用できます。詳細については、シミュレーション中のブロック データへのアクセスを参照してください。

Level-2 MATLAB S-Function のテンプレート matlabroot/toolbox/simulink/blocks/msfuntmpl.m では、以下の多数のメソッドの使用方法を示します。

派生クラス

なし

プロパティのまとめ

名前

説明

AllowSignalsWithMoreThan2D

多次元信号を利用するために Level-2 MATLAB S-Function を有効にします。

DialogPrmsTunable

S-Function のどのダイアログ パラメーターが調整可能かを指定します。

NextTimeHit

可変サンプル時間 S-Function での隣のサンプル ヒットの時間。

メソッドのまとめ

名前

説明

AutoRegRuntimePrms

このブロックのダイアログ パラメーターを、ランタイム パラメーターとして登録します。

AutoUpdateRuntimePrms

このブロックのランタイム パラメーターを更新します。

IsDoingConstantOutput

現在のシミュレーションの段階で、サンプル時間が一定であるかどうかを判定します。

IsMajorTimeStep

現在のシミュレーション タイム ステップがメジャー タイム ステップであるかどうかを判定します。

IsSampleHit

現在のシミュレーション時間が、このブロックでハンドルされるタスクがアクティブな時間であるかどうかを判定します。

IsSpecialSampleHit

現在のシミュレーション時間が、このブロックでハンドルされる複数のタスクがアクティブな時間であるかどうかを判定します。

RegBlockMethod

このブロックに対するコールバック メソッドを登録します。

RegisterDataTypeFxpBinaryPoint

2 進小数点のみのスケーリングで固定小数点データ型を登録します。

RegisterDataTypeFxpFSlopeFixexpBias

小数部の勾配、固定小数点の指数、バイアスで指定された、[勾配 バイアス] スケーリングで、固定小数点データ型を登録します。

RegisterDataTypeFxpSlopeBias

[勾配 バイアス] スケーリングをもつデータ型を登録します。

SetAccelRunOnTLC

このブロックを使用するモデルに対するシミュレーション ターゲットを生成するために、このブロックの TLC ファイルを使用するかどうかを指定します。

SetPreCompInpPortInfoToDynamic

このブロックの、継承される入力端子のコンパイル前の属性を設定します。

SetPreCompOutPortInfoToDynamic

このブロックの出力端子の継承されるコンパイル前の属性を設定します。

SetPreCompPortInfoToDefaults

このブロックの端子の precompiled 属性を既定値に設定します。

SetSimViewingDevice

ブロックがビューアーかどうか指定します。

SupportsMultipleExecInstances

 

WriteRTWParam

カスタム パラメーターの情報を Simulink Coder™ ファイルに書き込みます。

プロパティ

AllowSignalsWithMoreThan2D

説明

Level-2 MATLAB S-Function が多次元信号を使用できるようにします。setup メソッドで AllowSignalsWithMoreThan2D プロパティを設定する必要があります。

データ型

boolean

アクセス

RW

DialogPrmsTunable

説明

S-Function のダイアログ パラメーターが調整可能かどうかを指定します。AutoRegRuntimePrmsメソッドを呼び出す場合、調整可能なパラメーターは、ランタイム パラメーターとして登録されます。SimOnlyTunable パラメーターはランタイム パラメーターとして登録されないことに注意してください。たとえば、以下の行は 3 つのダイアログ パラメーターを初期化します。最初のパラメーターは調整可能ですが、2 番目のパラメーターは調整可能ではありません。3 番目のパラメーターはシミュレーション中のみ調整可能です。

block.NumDialogPrms     = 3;
block.DialogPrmsTunable = {'Tunable','Nontunable','SimOnlyTunable'};

データ型

配列

アクセス

RW

NextTimeHit

説明

可変サンプル時間 S-Function での隣のサンプル ヒットの時間。

データ型

double

アクセス

RW

メソッド

AutoRegRuntimePrms

目的

ブロックの調整可能なダイアログ パラメーターを、ランタイム パラメーターとして登録します。

構文

AutoRegRuntimePrms;

説明

MATLAB S-Function の調整可能なパラメーターの既定の名前は、MSFcnParameterMSFcnParameter1、… MSFcnParameterN です。AutoRegRuntimePrms に cell 配列を渡して別の名前を割り当てることができます。AutoRegRuntimePrmsPostPropagationSetup メソッドで使用して、このブロックの調整可能なダイアログ パラメーターをランタイム パラメーターとして登録します。

AutoUpdateRuntimePrms

目的

ブロックのランタイム パラメーターを更新します。

構文

AutoUpdateRuntimePrms;

説明

ProcessParameters を呼び出している際に、ランタイム パラメーターの値を自動的に更新します。

IsDoingConstantOutput

目的

これが、シミュレーションでサンプル時間一定の期間であるかどうかを判定します。

構文

bVal = IsDoingConstantOutput;

説明

これが、シミュレーションのサンプル時間が一定の期間である場合、すなわち、Simulink が、シミュレーション中に変更できないブロック出力の値を計算する、シミュレーションの開始での期間である場合には true を返します (定数サンプル時間を参照)。端子ベースのサンプル時間をもつ S-Function の Outputs メソッドにおいてこのメソッドを使用して、一定のサンプル時間、すなわち、[inf, 0] をもつ端子の出力を不必要に計算することを回避します。

function Outputs(block)
.
.
  if block.IsDoingConstantOutput
    ts = block.OutputPort(1).SampleTime;
    if ts(1) == Inf
    %% Compute port's output.
    end
  end
.
.
%% end of Outputs

詳細については、Specifying Port-Based Sample Timesを参照してください。

IsMajorTimeStep

目的

現在のタイム ステップが、メジャー タイム ステップであるか、マイナー タイム ステップであるかを判定します。

構文

bVal = IsMajorTimeStep;

説明

現在のタイム ステップがメジャー タイム ステップである場合は true を返し、マイナー タイム ステップの場合は false を返します。このメソッドは、Outputs または Update メソッドからのみ呼び出し可能です。

IsSampleHit

目的

現在のシミュレーション時間が、このブロックでハンドルされるタスクがアクティブな時間であるかどうかを判定します。

構文

bVal = IsSampleHit(stIdx);

引数
stIdx

照会されるサンプル時間のグローバル インデックス。

説明

サンプル ヒットが stIdx に生じたかどうかを判定する複数のサンプル時間を MATLAB S-Function がもつ場合、Outputs または Update ブロックのメソッドにおいて使用します。サンプル時間インデックス stIdx は、Simulink モデルのグローバル インデックスです。たとえば、3 つのサンプルレート 0.1、0.2、0.5 を含むモデルと、2 つのレート 0.2、0.5 を含む MATLAB S-Function ブロックを考えます。MATLAB S-Function において、block.IsSampleHit(0) は、レート 0.2 ではなくレート 0.1 に対して true を返します。

このブロックのメソッドは、C-MeX S-Function の ssIsSampleHit に似ていますが、ssIsSampleHit は、S-Function に含まれるサンプル時間のみに基づいて値を返します。たとえば、サンプルレート 0.2 と 0.5 をもつ上記モデルが C-MeX S-Function に含まれる場合、ssIsSampleHit(S,0,tid) は、レート 0.2 に対して true を返します。

マルチレート システムに対するグローバルなサンプル時間インデックスの使用を回避するには、端子ベースのサンプル時間を使用します (Simulink.BlockPortDataを参照)。

IsSpecialSampleHit

目的

現在のシミュレーション時間が、このブロックで実行される複数のタスクがアクティブな時間であるかどうかを判定します。

構文

bVal = IsSpecialSampleHit(stIdx1,stIdx1);

引数
stIdx1

照会される最初のタスクのサンプル時間のインデックス。

stIdx2

照会される 2 番目のタスクのサンプル時間のインデックス。

説明

Outputs または Update ブロック メソッドを使用して、異なるレートで実行する複数のタスクで共有されるデータの有効性を確保します。サンプル ヒットが stIdx1 で発生し、さらに同じタイム ステップで stIdx2 でも発生する場合は、true を返します (C-Mex S-Function の ssIsSpecialSampleHit に類似)。

IsSpecialSampleHit マクロを使用する場合、低速サンプル時間は高速サンプル時間の整数倍でなければなりません。

RegBlockMethod

目的

ブロック コールバック メソッドを登録します。

構文

RegBlockMethod(methName, methHandle);

引数
methName

登録されるメソッドの名前。

methHandle

登録されるコールバック メソッドの MATLAB 関数ハンドル。

説明

methNamemethHandle で指定されるブロックのコールバック メソッドを登録します。このメソッドは、S-Function が実現するブロックコールバック メソッドを指定するために、Level-2 MATLAB S-Function の関数 setup で使用します。

RegisterDataTypeFxpBinaryPoint

目的

2 進小数点のみのスケーリングで固定小数点データ型を登録します。

構文

dtID = RegisterDataTypeFxpBinaryPoint(isSigned, wordLength, fractionalLength, obeyDataTypeOverride);

引数
isSigned

符号付データ型の場合は true

符号なしデータ型の場合は false

wordLength

データ型の総ビット数。符号ビット数を含みます。

fractionalLength

データ型における、バイナリ ポイントの右側のビット数。

obeyDataTypeOverride

true は、サブシステムに対する Data Type Override 設定が満たされていることを示します。Data Type Override の値に応じて、結果のデータ型は DoubleSingleScaledDouble、または関数の他の引数で指定される固定小数点データ型になります。

false は、Data Type Override 設定が無視されていることを示します。

説明

このメソッドは、Simulink ソフトウェアで固定小数点データ型を登録し、データ型 ID を返します。データ型 ID は、入力端子と出力端子のデータ型、ランタイム パラメーター、DWork の状態を指定するのに使用できます。これは、DatatypeSizeのように、このクラスのインスタンスに対して定義された、標準データ型のすべてのアクセス メソッドでも使用できます。

2 進小数点のみのスケーリングで固定小数点データ型を登録したい場合には、この関数を使用してください。あるいは、固定小数点を登録する他の関数を使用することもできます。

  • 語長、小数部の勾配、固定小数点の指数、バイアスを指定して、[勾配 バイアス] スケーリングをもつデータ型を登録する場合はRegisterDataTypeFxpFSlopeFixexpBiasを使用してください。

  • [勾配 バイアス] スケーリングをもつデータ型を登録する場合は、RegisterDataTypeFxpSlopeBiasを使用してください。

登録されたデータ型が、Simulink 組み込みデータ型のいずれかでない場合は、Fixed-Point Designer™ ライセンスが確認されます。

RegisterDataTypeFxpFSlopeFixexpBias

目的

小数部の勾配、固定小数点の指数、バイアスで指定される、[勾配 バイアス] スケーリングで固定小数点データ型を登録します。

構文

dtID = RegisterDataTypeFxpFSlopeFixexpBias(isSigned, wordLength, fractionalSlope, fixedexponent, bias, obeyDataTypeOverride);

引数
isSigned

符号付データ型の場合は true

符号なしデータ型の場合は false

wordLength

データ型の総ビット数。符号ビット数を含みます。

fractionalSlope

データ型の小数部の勾配。

fixedexponent

データ型の勾配の指数。

bias

データ型のスケーリングのバイアス。

obeyDataTypeOverride

true は、サブシステムに対する Data Type Override 設定が満たされていることを示します。Data Type Override の値に応じて、結果のデータ型は True DoublesTrue SinglesScaledDouble、または関数の他の引数で指定される固定小数点データ型になります。

false は、Data Type Override 設定が無視されていることを示します。

説明

このメソッドは、Simulink ソフトウェアで固定小数点データ型を登録し、データ型 ID を返します。データ型 ID は、入力端子と出力端子のデータ型、ランタイム パラメーター、DWork の状態を指定するのに使用できます。これは、DatatypeSizeのように、このクラスのインスタンスに対して定義された、標準データ型のすべてのアクセス メソッドでも使用できます。

語長、小数部の勾配、固定小数点の指数、バイアスを指定して固定小数点データ型を登録したい場合は、この関数を使用してください。あるいは、固定小数点を登録する他の関数を使用することもできます。

登録されたデータ型が、Simulink 組み込みデータ型のいずれかでない場合は、Fixed-Point Designer ライセンスが確認されます。

RegisterDataTypeFxpSlopeBias

目的

[勾配 バイアス] スケーリングをもつデータ型を登録します。

構文

dtID = RegisterDataTypeFxpSlopeBias(isSigned, wordLength, totalSlope, bias, obeyDataTypeOverride);

引数
isSigned

符号付データ型の場合は true

符号なしデータ型の場合は false

wordLength

データ型の総ビット数。符号ビット数を含みます。

totalSlope

データ型のスケーリングの総勾配。

bias

データ型のスケーリングのバイアス。

obeyDataTypeOverride

true は、サブシステムに対する Data Type Override 設定が満たされていることを示します。Data Type Override の値に応じて、結果のデータ型は True DoublesTrue SinglesScaledDouble、または関数の他の引数で指定される固定小数点データ型になります。

false は、Data Type Override 設定が無視されていることを示します。

説明

このメソッドは、Simulink ソフトウェアで固定小数点データ型を登録し、データ型 ID を返します。データ型 ID は、入力端子と出力端子のデータ型、ランタイム パラメーター、DWork の状態を指定するのに使用できます。これは、DatatypeSizeのように、このクラスのインスタンスに対して定義された、標準データ型のすべてのアクセス メソッドでも使用できます。

[勾配 バイアス] スケーリングで固定小数点データ型を登録したい場合は、この関数を使用してください。あるいは、固定小数点を登録する他の関数を使用することもできます。

  • 2 進小数点のみのスケーリングでデータ型を登録するには、RegisterDataTypeFxpBinaryPointを使用してください。

  • 語長、小数部の勾配、固定小数点の指数、バイアスを指定して、データ型を登録する場合は、RegisterDataTypeFxpFSlopeFixexpBiasを使用してください。

登録されたデータ型が、Simulink 組み込みデータ型のいずれかでない場合は、Fixed-Point Designer ライセンスが確認されます。

SetAccelRunOnTLC

目的

Simulink のアクセラレータ モードに対するコードを生成するには、ブロックの TLC ファイルを使用するかどうかを指定します。

構文

SetAccelRunOnTLC(bVal);

引数
bVal

'true' (TLC ファイルを使用)、または 'false' (インタープリター モードでブロックを実行) になります。

説明

アクセラレータと共に実行するコードを生成するために、ブロックが TLC ファイルを使用する必要があるかどうかを指定します。このオプションが 'false' である場合、このブロックは、インタープリター モードで実行されます。例については、Simulink モデル msfcndemo_timestwo の S-Function msfcn_times_two.m を参照してください。

メモ

既定の JIT アクセラレータ モードでは、ユーザー作成の TLC S-Function のインライン化はサポートされていません。詳細については、アクセラレータ モードの動作S-Function 実行の制御を参照してください。

SetPreCompInpPortInfoToDynamic

目的

このブロックの、継承される入力端子のコンパイル前の属性を設定します。

構文

SetPreCompInpPortInfoToDynamic;

説明

このブロックの入力端子のコンパイルされた情報 (次元、データ型、実数/複素数、サンプリング モード) を初期化し、継承されるようにします。

SetPreCompOutPortInfoToDynamic

目的

このブロックの出力端子の継承されるコンパイル前の属性を設定します。

構文

SetPreCompOutPortInfoToDynamic;

説明

ブロックの出力端子のコンパイルされた情報 (次元、データ型、実数/複素数、サンプリング モード) を初期化し、継承されるようにします。

SetPreCompPortInfoToDefaults

目的

このブロックの端子の precompiled 属性を既定値に設定します。

構文

SetPreCompPortInfoToDefaults;

説明

ブロックの端子のコンパイルされた情報 (次元、データ型、実数/複素数、サンプリング モード) を既定値に初期化します。既定の設定では、端子は、データ型 double をもつ、実数のスカラーのサンプルされた信号を受け取ります。

SetSimViewingDevice

目的

このブロックがビューアーであるかどうかを指定します。

構文

SetSimViewingDevice(bVal);

引数
bVal

'true' (viewer の場合)、または 'false' (viewer でない場合) になります。

説明

ブロックがビューアー/スコープであるかどうかを指定します。このフラグが指定されている場合、ブロックは、シミュレーション中のみ使用され、自動的に消去されるので生成コードには含まれません。

SupportsMultipleExecInstances

目的

For Each Subsystem 内での S-Function の使用をサポートするかどうかを指定します。

構文

SupportsMultipleExecInstances(bVal);

引数
bVal

'true' (S-Function をサポート) または 'false' (S-Function を非サポート) です。

説明

S-Function が For Each Subsystem 内で機能できるかどうかを指定します。

WriteRTWParam

目的

コード生成に使用される Simulink Coder 情報ファイルに、カスタム パラメーターを書き込みます。

構文

WriteRTWParam(pType, pName, pVal)

引数
pType

書き込まれるパラメーターのタイプ。有効な値は 'string' および 'matrix' です。

pName

書き込まれるパラメーター名。

pVal

書き込まれるパラメーターの値。

説明

MATLAB S-Function の WriteRTW メソッドにおいて、カスタム パラメーターを書き込むために使用します。これらのパラメーターは、S-Function に対する TLC ファイルでコードをどのように生成するかを決めるために使う一般的な設定です。

バージョン履歴

R2006a より前に導入