Main Content

データ型 ID

データ型 ID の割り当て

S-Function で使用される各データ型にはデータ型 ID が割り当てられます。S-Function でのデータ型に関する情報を取得し設定するにはデータ型 ID を常に使用する必要があります。

一般に Simulink® ソフトウェアでは、モデルの初期化中に "先着順" でデータ型 ID が割り当てられます。たとえば、以下のブロック線図の一般化されたスキーマを考えてみましょう。

Simulink ソフトウェアは、線図の各出力データ型に対して要求される順序でデータ型 ID を割り当てます。単純にするため、要求の順序を左から右と仮定します。このため、ブロック A の出力には、たとえばデータ型 ID 13 が割り当てられ、ブロック B の出力にはデータ型 ID 14 が割り当てられます。ブロック C の出力データ型はブロック A の出力データ型と同じため、ブロック C の出力に割り当てられるデータ型 ID は 13 になります。ブロック D の出力にはデータ型 ID 15 が割り当てられます。

それではモデルのブロックを次のように並べ替えましょう。

Simulink ソフトウェアは今回も使用される順にデータ型 ID を割り当てます。このため各データ型には異なるデータ型が割り当てられる可能性があります。ブロック A の出力には引き続きデータ型 ID 13 が割り当てられます。ブロック D の出力は並びの次のためデータ型 ID 14 が割り当てられます。ブロック B の出力にはデータ型 ID 15が割り当てられます。ブロック C の出力データ型は今回もブロック A のものと同じため、データ型 ID 13 が割り当てられます。

この表に、上の 2 つのケースをまとめます。

ブロック

Model_1 のデータ型 ID

Model_2 のデータ型 ID

A

13

13

B

14

15

C

13

13

D

15

14

この例は、データ型の属性とデータ型 ID の値との間に厳密な関係がないことを示しています。言い換えれば、データ型 ID はデータ型が表現する特性に基づいて割り当てられるのではなく、むしろ、最初に必要とされるデータ型に基づいています。

メモ

データ型 ID の割り当ての性質のため、S-Function でのデータ型についてデータ型 ID から情報を抽出するためには、常に API 関数を使用する必要があります。

データ型の登録

次の表の関数は、ユーザー記述の固定小数点 S-Function 用の API で、シミュレーション時にデータ型を登録するときに使用できます。これらの各関数は、データ型 ID を返します。関数の使用例を確認するには、表に示されているファイルと行に移動してください。

データ型の登録関数

関数

説明

使用例

ssRegisterDataTypeFxpBinaryPoint

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

sfun_user_fxp_asr.c

248 行目

ssRegisterDataTypeFxpFSlopeFixExpBias

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

使用できません

ssRegisterDataTypeFxpScaledDouble

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

使用できません

ssRegisterDataTypeFxpSlopeBias

[勾配 バイアス] スケーリングでデータ型を登録し、そのデータ型 ID を返す

sfun_user_fxp_dtprop.c

324 行目

既定のデータ型 ID

Simulink ソフトウェアはその組み込みデータ型を登録します。それらのデータ型には常に既定のデータ型 ID があります。組み込みデータ型 ID は、次のトークンで与えられます。

  • SS_DOUBLE

  • SS_SINGLE

  • SS_INT8

  • SS_UINT8

  • SS_INT16

  • SS_UINT16

  • SS_INT32

  • SS_UINT32

  • SS_BOOLEAN

これらのデータ型を登録する必要はありません。組み込みデータ型を登録すると、登録関数はそのまま既定のデータ型 ID を返します。

データ型の設定と取得

データ型 ID は、入力端子および出力端子のデータ型、ランタイム パラメーター、DWork の状態を指定するために使用されます。S-Function で数量に対して固定小数点データ型を設定するには、以下の手順に従います。

  1. データ型の登録関数に示されているいずれかの関数を使用して、データ型を登録します。データ型 ID が返されます。

    または、Simulink 組み込みデータ型のいずれかの既定のデータ型 ID を使用できます。

  2. データ型 ID を使用し、次のいずれかの関数を使用して、入力端子または出力端子のデータ型、ランタイム パラメーター、または DWork の状態を設定します。

入力端子または出力端子のデータ型 ID、ランタイム パラメーター、または DWork の状態を取得するには、次のいずれかの関数を使用します。

データ型に関する情報の取得

関数でデータ型 ID を使用すると、組み込みデータ型と S-Function で登録されたデータ型に関する情報を取得できます。次の表の関数は、登録されたデータ型に関する情報を抽出するために API で使用できます。関数の使用例を確認するには、表に示されているファイルと行に移動してください。データ型 ID は、関数 ssGetDataTypeSize のように、simstruc.h の標準データ型のすべてのアクセス メソッドでも使用できます。

ストレージ コンテナーの情報関数

関数

説明

使用例

ssGetDataTypeFxpContainWordLen

登録されたデータ型のストレージ コンテナーの語長を返す

sfun_user_fxp_ContainWordLenProbe.c

116 行目

ssGetDataTypeStorageContainCat

登録されたデータ型のストレージ コンテナー カテゴリを返す

sfun_user_fxp_asr.c

290 行目

ssGetDataTypeStorageContainerSize

登録されたデータ型のストレージ コンテナーのサイズを返す

sfun_user_fxp_StorageContainSizeProbe.c

171 行目

信号データ型の情報関数

関数

説明

使用例

ssGetDataTypeFxpIsSigned

登録された固定小数点データ型が符号付きか符号なしかを判定

sfun_user_fxp_asr.c

250 行目

ssGetDataTypeFxpWordLength

登録された固定小数点データ型の語長を返す

sfun_user_fxp_asr.c

251 行目

ssGetDataTypeIsFixedPoint

登録されたデータ型が固定小数点データ型であるかどうかを判定

sfun_user_fxp_const.c

128 行目

ssGetDataTypeIsFloatingPoint

登録されたデータ型が浮動小数点データ型であるかどうかを判定

sfun_user_fxp_IsFloatingPointProbe.c

108 行目

ssGetDataTypeIsFxpFltApiCompat

登録されたデータ型が、ユーザー記述の固定小数点 S-Function 用の API でサポートされているかどうかを判定

sfun_user_fxp_asr.c

183 行目

ssGetDataTypeIsScalingPow2

登録されたデータ型が 2 のべき乗スケーリングをもつかどうかを判定

sfun_user_fxp_asr.c

202 行目

ssGetDataTypeIsScalingTrivial

登録されたデータ型のスケーリングが勾配 = 1、バイアス = 0 であるかどうかを判定

sfun_user_fxp_IsScalingTrivialProbe.c

104 行目

信号スケーリングの情報関数

関数

説明

使用例

ssGetDataTypeBias

登録されたデータ型のバイアスを返す

sfun_user_fxp_dtprop.c

243 行目

ssGetDataTypeFixedExponent

登録されたデータ型の勾配の指数を返す

sfun_user_fxp_dtprop.c

242 行目

ssGetDataTypeFracSlope

登録されたデータ型の小数部の勾配を返す

sfun_user_fxp_dtprop.c

239 行目

ssGetDataTypeFractionLength

2 のべき乗スケーリングをもつ登録されたデータ型の小数部の長さを返す

sfun_user_fxp_asr.c

252 行目

ssGetDataTypeTotalSlope

登録されたデータ型のスケーリングの総勾配を返す

sfun_user_fxp_dtprop.c

245 行目

データ型の変換

次の表の関数を使用すると、固定小数点 S-Function で登録されたデータ型間で値を変換できます。

データ型の変換関数

関数

説明

使用例

ssFxpConvert

あるデータ型から別のデータ型に値を変換

使用できません

ssFxpConvertFromRealWorldValue

データ型 double から別のデータ型に値を変換

使用できません

ssFxpConvertToRealWorldValue

任意のデータ型から double に値を変換

使用できません