データ型 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 を返します。関数の使用例を確認するには、表に示されているファイルと行に移動してください。
データ型の登録関数
関数 | 説明 | 使用例 |
---|---|---|
2 進小数点のみのスケーリングで固定小数点データ型を登録し、そのデータ型 ID を返す | 248 行目 | |
小数部の傾き、固定小数点の指数、バイアスで指定される、[傾きバイアス] スケーリングで固定小数点データ型を登録し、そのデータ型 ID を返す | 使用できません | |
小数部の傾き、固定小数点の指数、バイアスで指定される、[傾きバイアス] スケーリングでスケーリングされた double データ型を登録し、そのデータ型 ID を返す | 使用できません | |
[傾きバイアス] スケーリングでデータ型を登録し、そのデータ型 ID を返す | 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 で数量に対して固定小数点データ型を設定するには、以下の手順に従います。
表データ型の登録関数に示されているいずれかの関数を使用して、データ型を登録します。データ型 ID が返されます。
または、Simulink 組み込みデータ型のいずれかの既定のデータ型 ID を使用できます。
データ型 ID を使用し、次のいずれかの関数を使用して、入力端子または出力端子のデータ型、ランタイム パラメーター、または DWork の状態を設定します。
入力端子または出力端子のデータ型 ID、ランタイム パラメーター、または DWork の状態を取得するには、次のいずれかの関数を使用します。
データ型に関する情報の取得
関数でデータ型 ID を使用すると、組み込みデータ型と S-Function で登録されたデータ型に関する情報を取得できます。次の表の関数は、登録されたデータ型に関する情報を抽出するために API で使用できます。関数の使用例を確認するには、表に示されているファイルと行に移動してください。データ型 ID は、関数 ssGetDataTypeSize
のように、simstruc.h
の標準データ型のすべてのアクセス メソッドでも使用できます。
ストレージ コンテナーの情報関数
関数 | 説明 | 使用例 |
---|---|---|
登録されたデータ型のストレージ コンテナーの語長を返す |
116 行目 | |
登録されたデータ型のストレージ コンテナー カテゴリを返す | 290 行目 | |
登録されたデータ型のストレージ コンテナーのサイズを返す |
171 行目 |
信号データ型の情報関数
関数 | 説明 | 使用例 |
---|---|---|
登録された固定小数点データ型が符号付きか符号なしかを判定 | 250 行目 | |
登録された固定小数点データ型の語長を返す | 251 行目 | |
登録されたデータ型が固定小数点データ型であるかどうかを判定 | 128 行目 | |
登録されたデータ型が浮動小数点データ型であるかどうかを判定 |
108 行目 | |
登録されたデータ型が、ユーザー記述の固定小数点 S-Function 用の API でサポートされているかどうかを判定 | 183 行目 | |
登録されたデータ型が 2 のべき乗スケーリングをもつかどうかを判定 | 202 行目 | |
登録されたデータ型のスケーリングが傾き = 1、バイアス = 0 であるかどうかを判定 |
104 行目 |
信号スケーリングの情報関数
関数 | 説明 | 使用例 |
---|---|---|
登録されたデータ型のバイアスを返す | 243 行目 | |
登録されたデータ型の傾きの指数を返す | 242 行目 | |
登録されたデータ型の小数部の傾きを返す | 239 行目 | |
2 のべき乗スケーリングをもつ登録されたデータ型の小数部の長さを返す | 252 行目 | |
登録されたデータ型のスケーリングの総傾きを返す | 245 行目 |
データ型の変換
次の表の関数を使用すると、固定小数点 S-Function で登録されたデータ型間で値を変換できます。
データ型の変換関数
関数 | 説明 | 使用例 |
---|---|---|
あるデータ型から別のデータ型に値を変換 | 使用できません | |
データ型 | 使用できません | |
任意のデータ型から | 使用できません |