生成されたコード内での Simulink モデル要素のトレース
生成されたコードを検証するため、Embedded Coder® は Simulink® モデルと生成されたコード間の双方向のトレーサビリティを提供します。トレーサビリティには、次のいずれかの方法を使用できます。
コードからモデルに: 生成されたコードのコメント行に、次のハイパーリンクが表示されます。
ブロック/サブシステムの名前
行番号
演算子
Simulink エディター内の対応するブロックまたはサブシステムを強調表示するには、ハイパーリンクをクリックします。
モデルからコードに: Simulink エディターでモデルの単一または複数のブロックを選択し、対応する生成コードに移動できます。
メモ
コード パースペクティブの [コード] ビューでは、既定で双方向のトレーサビリティが提供されます。
コードからモデルへのトレーサビリティ
ハイパーリンクを使用してコードからモデルに要素をトレースするには、次のようにします。
モデルを開いて ERT ターゲットとして構成します。
モデルのコードをビルドまたは生成します。既定では、[コード] ビューが開き、モデルの横に生成されたコードが表示されます。
生成されたコードで、コメント内のブロック名の上にカーソルを置くと、ソース ブロックが強調表示されます。たとえば、モデル
RollAxisAutopilotの HTML レポートを生成します。RollAxisAutopilot.c内のモデル ステップ関数の生成されたコードで、UnitDelay: '<Root>/Phi'ブロックの上にカーソルを置きます。モデル ウィンドウで、対応する Inport ブロックが強調表示されます。
非表示のブロックへのトレーサビリティ
コード ジェネレーターは、データの整合性を維持するためなど、さまざまな理由からコード生成プロセス中に非表示ブロックを挿入することがあります。生成されたコードには、非表示のブロック用のコメントが含まれます。これらのコメント、および非表示のブロックから生成されたコードは、非表示のブロックの挿入をトリガーしたモデル内の元のブロックにトレースされます。非表示のブロックのコメントは、次のテンプレートに従います。
/* <Hidden_Block_Type> generated from: <Hyperlinked_Original_Block_Name> */
以下に例を示します。
/* SignalConversion generated from: '<Root>/Subsystem' */ Varianttoground_B.VM_Conditional_Signal_Subsystem_0 = 0.0;
SignalConversion はモデル内には存在しません。非表示のブロックの挿入をトリガーしたモデル内の '<Root>/Subsystem' ブロックにトレースするには、'<Root>/Subsystem' のハイパーリンクをクリックします。この例の詳細については、Generate Code for Variant Subsystem Blocksを参照してください。モデルからコードへのトレーサビリティ
モデル要素を対応する生成されたコードにトレースするには、次のようにします。
コードからモデルへのトレーサビリティのステップ 1 とステップ 2 を完了します。
モデルのコードをビルドまたは生成します。生成されたコードが、モデルの横にある [コード] ビュー ウィンドウに表示されます。
モデル ウィンドウで、モデル要素をクリックします。複数のブロックを選択するには、[SHIFT] キーを押しながら追加のブロックを選択します。
[コード] ビュー ウィンドウ内の生成されたコードで、そのモデル要素に対して生成されたコードの最初の出現箇所が強調表示されます。[コード] ビューの上部で、生成されたファイル名の右に表示される数値は、各ファイル内の強調表示された行の合計数を示しています。次の図は、
RollAxisAutopilotモデル内のHDG_RefInport ブロックをトレースした結果を示しています。
コード ウィンドウの上部にあるナビゲーション バーを使用して、強調表示された複数の出現行を前後に移動できます。ナビゲーション サイドバーを使用して、コードの特定の行に直接移動できます。
モデルを閉じてから再度開いた場合、[Embedded Coder] アプリを開くまで [コード] ビューは開きません。現在の作業フォルダー内でモデルのビルド フォルダーを Embedded Coder で検出できないことが原因で、[コード] ビューが利用できない場合があります。現在の作業フォルダーを、既存のビルド フォルダーの親フォルダーにリセットしてください。
コード生成レポートを使用していて、既存のトレーサビリティ情報を再読み込みする場合は、Reload Existing Traceability Informationを参照してください。