メインコンテンツ

モデル コード インターフェイス

ターゲット プラットフォームのサービスと対話できるコードを生成するには、コード ジェネレーターがターゲット プラットフォームのインターフェイス要件を認識している必要があります。そのための最初のステップとして、特定のモデル要素を含めることで、最上位モデルで必要なインターフェイスを表します。たとえば、ルートレベルの In Bus Element ブロックまたは Inport ブロックを使用して、ターゲット プラットフォームの受信側サービスからデータを読み取るためのインターフェイスをモデル化できます。

次の表に、一般的なコード インターフェイスと、最上位モデルでそれらを表す方法をリストします。

コード インターフェイスのタイプモデル要素またはパターン
呼び出し可能なレートベースのエントリ ポイントシングルタスク実行またはマルチタスク実行用に構成されている、あるいは Simulink スケジュール エディターで区画として設定されている、レートベース モデル内のブロック
呼び出し可能なエクスポート関数のエントリ ポイントFunction-Call Subsystem、関数呼び出し ModelSimulink FunctionMessage Triggered Subsystem、または S-Function の各ブロックを使用して関数を定義するエクスポート関数モデル
呼び出し可能な初期化関数のエントリ ポイントInitialize Function ブロック
呼び出し可能な終了関数のエントリ ポイントTerminate Function ブロック
ターゲット プラットフォームの受信側サービスの呼び出しIn Bus Element ブロックまたは Inport ブロック
ターゲット プラットフォームの送信側サービスの呼び出しOut Bus Element ブロックまたは Outport ブロック
ターゲット プラットフォームのデータ転送サービスの呼び出し

データを交換し、生成コード内で呼び出し可能な関数となる、2 つのブロックを接続する信号線。呼び出し可能な関数とは、ターゲット環境のソフトウェアで呼び出すことができる、生成されたエントリポイントです。

ターゲット プラットフォームの不揮発性メモリへのアクセスMeasurement service interface for persistent data, Initialize Function ブロックおよび Terminate Function ブロック、または Simulink Function ブロックおよび Function Caller ブロック
状態変数とルートレベルの出力変数の間でのメモリの再利用状態変数を信号としてモデル化する関数ループバック パターン、または状態変数をモデル化する Delay ブロック
絶対時間または経過時間の値を取得するための、ターゲット プラットフォームのタイマー サービスの呼び出し(サービスを表す) スコープ内の Simulink Function ブロック、および (サービスを呼び出す) Function Caller ブロックを含むライブラリ ブロック、あるいはサービス インターフェイス (必要) で構成されたモデルの場合は Discrete Time Integrator ブロックまたは Weighted Sample Time ブロック。
メッセージ通信ルートレベルの Outport ブロックに直接接続された Send ブロック、およびルートレベルの Inport ブロックに直接接続された Receive ブロック
クライアント/サーバー通信 Simulink Function ブロックと Function Caller ブロック
調整可能なパラメーターとパラメーター引数モデル ワークスペースに保存されているパラメーター オブジェクト
測定用データ信号 (ブロックの出力端子)、状態 (ブロックの状態)、および Datastore Memory ブロック
カスタム サービス インターフェイスカスタム ブロック

次のトピックに、さまざまなタイプのインターフェイスに関する詳細情報が記載されています。

展開の目的や、コード ジェネレーター用にコード インターフェイスを構成する方法に応じて、モデリング ガイドラインが役立つ場合があります。場合によっては、カスタム ブロックの作成を伴うカスタム表現を作成する必要が生じることがあります。

モデリング ガイドラインについては、モデリング ガイドラインおよびブロックの使用モデリング ガイドライン生成コードに関するモデリング ガイドライン、および Component Deployment Guidelines for Embedded Coder サポート パッケージを参照してください。

カスタム ブロックの作成については、カスタム ブロックのコード生成を参照してください。