メインコンテンツ

コンポーネント モデルからの C サービス インターフェイス コードの生成

この例では、サービス コード インターフェイスを使用する C コードの生成方法を示します。C コンポーネントの展開が目的の場合は、サービス コード インターフェイスを使用すると次のような利点があります。

  • データの一貫性を維持するための組み込みセーフガードを含む、実行外および実行中のデータ通信用にカスタマイズされたインターフェイス コード

  • 関数実行の外 (実行前および実行後) でデータを関数間で転送するためにカスタマイズされたコード

  • タスクにおける時間値へのアクセスのサポート

  • 柔軟なスケジューリング

  • ストレージ クラスや特定のプロパティ設定ではなく完全なインターフェイスの抽象化へのモデル要素のマッピング

サービス コード インターフェイスとデータ コード インターフェイスの比較、およびサービス インターフェイスの詳細情報へのリンクについては、コード生成用のコード インターフェイスの選択を参照してください。

Embedded Coder® をはじめて使用する場合、またはアプリケーション コードのカスタマイズ要件が最小の場合は、グラフィカル ツールと既定のコード構成の設定を使用して、量産品質のコードを迅速に生成できます。既存の外部コードとの統合のために、コードのガイドラインとコーディング標準を満たすカスタマイズしたコードを生成できます。ツールを使用して、インターフェイス、コードの外観、パッケージ化、最適化の要件に合うようにコード ジェネレーターを構成できます。

組み込みシステムに展開するコードの生成と確認は、Embedded Coder クイック スタートを使用してコード生成用にモデルを準備するのと同じように簡単に実行できます。その後、Embedded Coder アプリからアクセスできるコード ツールを使用して、コード インターフェイスを構成し、コード生成を開始して、生成されたコードを確認できます。

モデル例

このチュートリアルでは、モデル例 ComponentDeploymentFcn を使用します。

モデル ComponentDeploymentFcn を開きます。

open_system('ComponentDeploymentFcn')

このエクスポート関数モデルには以下が含まれています。

  • 不揮発性メモリから値を読み取り、その値を使用して状態変数を初期化する Initialize Function ブロック。

  • 積分アルゴリズムをモデル化するトリガー型の Function-Call Subsystem。このサブシステムは、前進積分法を適用して状態変数にゲイン値 1.25 を適用し、その出力を Accumulator サブシステムに送ります。Integrator サブシステムは非周期的に実行されます。

  • Integrator サブシステムから状態変数の値を受け取り、その値を 1 インクリメントして実行時に調整可能なゲイン値を適用する周期的な Function-Call Subsystem。アキュムレータの関数は 1 秒間隔で周期的に実行され、状態変数の最新の値を保持します。

  • アキュムレータのアルゴリズムの実行が停止した後に Accumulator サブシステムの出力を不揮発性メモリに書き込む Terminate Function ブロック。

次の方法を学習します。

  1. Embedded Coder クイック スタート ツールを使用してコードを生成します。

  2. サービス インターフェイスを構成します。

  3. 実行時に調整できるようにモデル パラメーターをグローバル変数として設定します。

  4. テスト ハーネス モデル例 ComponentDeploymentFcnHarness. を使用して、数値の等価性についてモデルのシミュレーションと生成コードの結果を比較します。

  5. 生成されたコードを展開します。

チュートリアルを開始するには、Generate Code by Using Embedded Coder Quick Startを参照してください。