信号の構造体
この例では、生成されたコードで信号データの構造体を作成する方法を示します。
C 構成要素
typedef struct {
double signal1;
double signal2;
double signal3;
} my_signals_type;
手順
モデルで構造体型を表すには、Simulink.Bus オブジェクトを作成します。このオブジェクトをモデル内のバスのデータ型として使用します。
1. ex_signal_struct モデルを Gain ブロック、Bus Creator ブロック、Unit Delay ブロックを使用して作成します。Gain ブロックと Unit Delay ブロックによって、生成されたコードで構造体がより識別しやすくなります。

2. 3 つの入力を受け入れるように Bus Creator ブロックを設定するには、ブロック ダイアロブ ボックスで [入力数] を 3 に設定します。
3. ツールストリップの [モデル化] タブの [設計] ギャラリーで、[型エディター] をクリックします。
4. 型エディターで、signal1、signal2、および signal3 という名前の要素を含む my_signals_type という名前の Simulink.Bus オブジェクトを作成します。詳細については、Type Editorを参照してください。

5. バス オブジェクトを現在のフォルダーに ex_signal_struct_data.mat として保存します。
このバス オブジェクトは、生成されたコードで使用する構造体型を表します。
6. [Bus Creator ブロック] ダイアログ ボックスで、次を行います。
[出力データ型] を
Bus: my_signals_typeに設定します。[非バーチャル バスとして出力] を選択します。非バーチャル バスが生成されたコードに構造体として表示されます。
7. Simulink Coder アプリを開きます。[C コード] タブで、[コード インターフェイス]、[個々の要素コードのマッピング] を選択します。
8. [信号/状態] タブを開きます。モデルで Bus Creator ブロックの出力信号を選択し、コード マッピング エディターで [選択した信号をコード マッピングに追加] ボタンをクリックします。
9. 追加された信号について [ストレージ クラス] を ExportedGlobal に設定します。
10. プロパティ インスペクターで [コード]、[Identifier] プロパティを sig_struct_var に設定します。Bus Creator ブロックの出力は生成されたコードに sig_struct_var という名前の個別のグローバル構造体変数として表示されます。
11. モデルからコードを生成します。
結果
生成されたヘッダー ファイル ex_signal_struct_types.h は構造体型 my_signals_type を定義します。
typedef struct {
real_T signal1;
real_T signal2;
real_T signal3;
} my_signals_type;
ソース ファイル ex_signal_struct.c は、Bus Creator ブロックの出力を表すグローバル変数 sig_struct_var にメモリを割り当てます。
/* Exported block signals */ my_signals_type sig_struct_var; /* '<Root>/Bus Creator' */
同じファイル内のモデルの関数 step で、アルゴリズムは sig_struct_var と sig_struct_var のフィールドにアクセスします。