メインコンテンツ

生成されたコード内での Simulink モデル要素のトレース

生成されたコードを検証するため、Embedded Coder® は Simulink® モデルと生成されたコード間の双方向のトレーサビリティを提供します。トレーサビリティには、次のいずれかの方法を使用できます。

  • コードからモデルに: 生成されたコードのコメント行に、次のハイパーリンクが表示されます。

    • ブロック/サブシステムの名前

    • 行番号

    • 演算子

    Simulink エディター内の対応するブロックまたはサブシステムを強調表示するには、ハイパーリンクをクリックします。

  • モデルからコードに: Simulink エディターでモデルの単一または複数のブロックを選択し、対応する生成コードに移動できます。

メモ

コード パースペクティブの [コード] ビューでは、既定で双方向のトレーサビリティが提供されます。

コードからモデルへのトレーサビリティ

ハイパーリンクを使用してコードからモデルに要素をトレースするには、次のようにします。

  1. モデルを開いて ERT ターゲットとして構成します。

  2. モデルのコードをビルドまたは生成します。既定では、[コード] ビューが開き、モデルの横に生成されたコードが表示されます。

  3. 生成されたコードで、コメント内のブロック名の上にカーソルを置くと、ソース ブロックが強調表示されます。たとえば、モデル RollAxisAutopilot の HTML レポートを生成します。RollAxisAutopilot.c 内のモデル ステップ関数の生成されたコードで、UnitDelay: '<Root>/Phi' ブロックの上にカーソルを置きます。モデル ウィンドウで、対応する Inport ブロックが強調表示されます。

    Code view containing generated code is open next to the model. Mouse cursor is placed over a comment and the corresponding block is highlighted in the model.

非表示のブロックへのトレーサビリティ

コード ジェネレーターは、データの整合性を維持するためなど、さまざまな理由からコード生成プロセス中に非表示ブロックを挿入することがあります。生成されたコードには、非表示のブロック用のコメントが含まれます。これらのコメント、および非表示のブロックから生成されたコードは、非表示のブロックの挿入をトリガーしたモデル内の元のブロックにトレースされます。非表示のブロックのコメントは、次のテンプレートに従います。

/* <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. コードからモデルへのトレーサビリティのステップ 1 とステップ 2 を完了します。

  2. モデルのコードをビルドまたは生成します。生成されたコードが、モデルの横にある [コード] ビュー ウィンドウに表示されます。

  3. モデル ウィンドウで、モデル要素をクリックします。複数のブロックを選択するには、[SHIFT] キーを押しながら追加のブロックを選択します。

  4. [コード] ビュー ウィンドウ内の生成されたコードで、そのモデル要素に対して生成されたコードの最初の出現箇所が強調表示されます。[コード] ビューの上部で、生成されたファイル名の右に表示される数値は、各ファイル内の強調表示された行の合計数を示しています。次の図は、RollAxisAutopilot モデル内の HDG_Ref Inport ブロックをトレースした結果を示しています。

    Code view containing generated code is open next to the model. Mouse cursor clicks a block in the model and corresponding lines of code are highlighted in Code view.

    コード ウィンドウの上部にあるナビゲーション バーを使用して、強調表示された複数の出現行を前後に移動できます。ナビゲーション サイドバーを使用して、コードの特定の行に直接移動できます。

モデルを閉じてから再度開いた場合、[Embedded Coder] アプリを開くまで [コード] ビューは開きません。現在の作業フォルダー内でモデルのビルド フォルダーを Embedded Coder で検出できないことが原因で、[コード] ビューが利用できない場合があります。現在の作業フォルダーを、既存のビルド フォルダーの親フォルダーにリセットしてください。

コード生成レポートを使用していて、既存のトレーサビリティ情報を再読み込みする場合は、Reload Existing Traceability Informationを参照してください。

参考

トピック