非バーチャル バスに対して生成されたコードの検証
この例では、非バーチャル バスが、あるモデルに対して生成されたコードにどのように表示されるかを示します。
非バーチャル バスを含むモデル例を開いてシミュレーションします。
mdl = "NonvirtualBusCode";
open_system(mdl)
sim(mdl);
モデルのコードを生成するには、Simulink ツールストリップの [アプリ] タブの [アプリ] ギャラリーで、[Simulink Coder] をクリックします。[C コード] タブが開いたら、[コード生成] をクリックします。あるいは、"Ctrl+B" を押すか以下のコマンドを入力します。
slbuild(mdl)
### Searching for referenced models in model 'NonvirtualBusCode'. ### Total of 1 models to build. ### Starting build procedure for: NonvirtualBusCode ### Successful completion of code generation for: NonvirtualBusCode Build Summary Top model targets: Model Build Reason Status Build Duration ======================================================================================================= NonvirtualBusCode Information cache folder or artifacts were missing. Code generated. 0h 0m 20.955s 1 of 1 models built (0 models already up to date) Build duration: 0h 0m 22.306s
生成されたファイルを確認するには、NonvirtualBusCodeGenModel_grt_rtw フォルダーを開きます。
NonvirtualBusCode_types.h は、Simulink.Bus オブジェクトを構造体として定義します。
typedef struct {
  real_T a;
  real_T b;
  real_T c;
} BusObject;
NonvirtualBusCode.h は、BusObject struct を使用して Unit Delay ブロックを定義します。
typedef struct {
  BusObject UnitDelay_DSTATE;          /* '<Root>/Unit Delay' */
} DW_NonvirtualBusCode_T;
NonvirtualBusCode.c は、非バーチャル バスを Outport ブロックに渡す、Unit Delay ブロックを実装します。
NonvirtualBusCode_Y.Out1 = NonvirtualBusCode_DW.UnitDelay_DSTATE;
参考
ブロック
オブジェクト
トピック
- 合成インターフェイスのガイドライン
- バス オブジェクトでのバス プロパティの指定
- 生成されたコードにおける構造体へのデータの整理 (Simulink Coder)