Main Content

model_step

Simulink モデルの各ステップの実行コードが含まれる、生成された C/C++ エントリポイント関数

説明

void model_step(void) は、Simulink® モデルのブロックのための出力および更新コードが含まれている実行関数です。

void model_step_N(void) は、Simulink モデルのブロックのための出力および更新コードが含まれている、タスク識別子をもつ実行関数です。

ステップ エントリポイント関数は、ブロックの現在の値を計算します。ログが有効になっている場合、ステップ関数はログ変数を更新します。ステップ関数は、rt_OneStep から割り込みレベルで呼び出されるように設計されています (タイマー ISR として起動される)。関数 rt_OneStep は関数 model_step を呼び出して、モデルの 1 クロック期間の処理を実行します。詳細については、rt_OneStep and Scheduling Considerationsを参照してください。

モデルの終了時間が有限の場合、ステップ関数は、現在の時間が終了時間と等しい場合に、実行終了の合図を送ります。そうでない場合は、次の 1 つ以上の条件に当てはまるときに、ステップ関数は現在の時間を終了時間に対してチェックせず、プログラムが無限に実行されます。

  • モデルの終了時間が inf に設定されている。

  • ログが無効になっている。

  • [終了関数が必要] パラメーターが選択されていない。

モデルのステップ エントリポイント関数の生成された呼び出しインターフェイスは、次のパラメーターによって異なります。

  1. ステップ エントリポイント関数を生成するには、[1 つの出力/更新関数] パラメーターを選択します。このパラメーターをクリアすると、エントリポイント関数 model_output および model_update がステップ関数の代わりに生成されます。

  2. 設定可能な引数を使用して単一のステップ関数を生成するには、[各離散レートを個別のタスクとして扱う] パラメーターをクリアします。タイミング要件に基づいて個別のステップ関数を生成する場合は、このパラメーターを選択します。詳細については、各離散レートを個別のタスクとして扱うを参照してください。

    • パラメーター値: Off (シングル レートまたはマルチレートのシングルタスク モデル)

      関数プロトタイプ: void model_step(void);

    • パラメーター値: On (マルチレート マルチタスク モデル)

      関数プロトタイプ: void model_step_N (void); (N はタスク識別子)

  3. 生成された呼び出しインターフェイスを変更するには、[言語] パラメーターと [コード インターフェイスのパッケージ化] パラメーターを設定します。詳細については、コード インターフェイスのパッケージ化を参照してください。

生成された C/C++ ステップ エントリポイント関数の名前と引数をプレビューおよびカスタマイズするには、Embedded Coder® のライセンスが必要です。ステップ エントリポイント関数をプレビューするには、コード マッピング エディターを開いて、[関数] タブをクリックします。関数名をカスタマイズするには、[関数名] 列でスプレッドシートをクリックして直接編集します。関数名と引数をカスタマイズするには、[関数プレビュー] 列で関数のハイパーリンクをクリックし、表示されたダイアログ ボックスでステップ関数を設定します。テンプレートを使用して関数をカスタマイズするには、[関数カスタマイズ テンプレート] 列で、関数に適用するテンプレートを選択します。詳細については、個々のステップ関数に対する名前と引数の設定Interactively Configure C++ InterfaceおよびConfigure Default Code Generation for Functionsを参照してください。

生成されたステップ エントリポイント関数を確認するには、[コード] ビューまたはコード生成レポートを開いて、モデルのソース コードを表示します。詳細については、Analyze Generated Data Code Interface Reportを参照してください。

すべて折りたたむ

この例では、ステップ エントリポイント関数を設定、カスタマイズ、生成、および確認する方法について、基本的なワークフローを示します。

  1. モデルを開きます。

  2. コーダーを選択します。アプリ ギャラリーで [Simulink Coder] または [Embedded Coder] をクリックします。

  3. モデル コンフィギュレーション パラメーター [1 つの出力/更新関数][各離散レートを個別のタスクとして扱う][言語]、および [コード インターフェイスのパッケージ化] を設定します。

  4. (Embedded Coder のみ) 関数をカスタマイズします。Embedded Coder を使用して、ステップ エントリポイント関数の名前と引数をカスタマイズできます。

    • コード マッピング エディターを開きます。

    • [関数] タブをクリックします。

    • 名前と引数をカスタマイズします。[関数プレビュー] 列で、関数のハイパーリンクをクリックし、[C Step 関数 インターフェイスの設定] ダイアログ ボックスを開きます。名前と引数を設定します。

  5. コードを生成します。

  6. 生成されたコードを調べます。[コード] ビューで、生成されたステップ関数が想定された名前とパラメーターで表示されることを確認します。

入力引数

すべて折りたたむ

ステップ エントリポイント C/C++ 関数は、モデルの実行コードへのインターフェイスを提供します。既定では、生成された関数は、引数をもたない void-void インターフェイスを提供します。C ステップ関数の入力引数を設定するには、コード マッピング エディター - C を使用します。C++ ステップ関数の入力引数を設定するには、コード マッピング - C++ エディターを使用します。

出力引数

すべて折りたたむ

ステップ エントリポイント C/C++ 関数は、モデルの実行コードへのインターフェイスを提供します。既定では、生成された関数は、引数をもたない void-void インターフェイスを提供します。C ステップ関数の出力引数を設定するには、コード マッピング エディター - C を使用します。C++ ステップ関数の出力引数を設定するには、コード マッピング - C++ エディターを使用します。

バージョン履歴

R2006a より前に導入