質問: コード生成時だけコメントアウトする方法 simulinkで作製したモデルの中で、あるサブシステム(もしくはブロック)だけはシミュレーション時だけ有効、embeddedcoderでコード生成する時には無効(コメントアウト)する方法はありますか?
回答: r2020bであれば、バリアントサブシステム(variant subsystem)を使うことで可能です。以下のようにバリアント制御モードに「sim/codegenの切り替え」が存在しています。 このモードに設定後、バリアント制御スイッチに「(sim)」と設定すればシミュレーション時、「(codegen)」と設定すればコード生成時にバリアントが切り替わるようになります。 r2019bでは上記の機能が使えません。 代替手段としては昔ながらの方法になりますが、シミュレーション実行時には「rtwtypes.h」が読み込まれませんので、 #define rtwtypes_h が実行されません。 従って、上記defineが定義されているかどうかを調べることで、今の実行がシミュレーションなのかそうでないのか、を知ることができます。