このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
Atomic サブチャート用の個別コードの生成
この例では、Atomic サブチャートを使用して、Stateflow® チャートの個別の部分に対するコードを生成する方法を説明します。チャート用にコードを生成すると、Atomic サブチャートのコードが別のファイルに保存されます。Atomic サブチャートは、MATLAB® 内のスタンドアロンの Stateflow チャートではサポートされません。詳細については、Atomic サブチャート使用した再利用可能なサブコンポーネントの作成を参照してください。
Atomic サブチャートがない元のモデル
次のモデルには Sine Wave (Simulink) ブロックが 2 つあり、一方は周波数が毎秒 1 ラジアンで、もう一方は周波数が毎秒 2 ラジアンです。
チャートの各ステートは飽和論理を使用して、入力正弦波を同じ周波数の出力矩形波に変換します。
この例では Atomic サブチャートを使用しないため、モデル全体について生成されたコードが 1 つのファイルに格納されます。チャートの特定の部分のコードを見つけるには、ファイル全体に目を通す必要があります。
一方で、ステート A
を Atomic サブチャートに変換し、このサブチャートのコードが別のファイルになるように指定することができます。このコード生成方法を使用すると、チャートの特定部分の単体テストを行うことができます。関係のないコードを検索することなく、関心があるコードだけに集中できます。
Atomic サブチャートを使用するようにモデルを編集
手順 1: ステートの Atomic サブチャートへの変換
ステート A
を右クリックして、[グループとサブチャート]、[Atomic サブチャート] を選択します。ステート A
が Atomic サブチャートに変わり、左上隅に [Atomic] というラベルが表示されます。
手順 2: Atomic サブチャート用にスタンドアロンの C ファイルを設定
サブチャート
A
を右クリックして [プロパティ] を選択し、このサブチャートのプロパティ ダイアログ ボックスを開きます。[コード生成関数のパッケージ化] プロパティを [
Reusable function
] に設定します。[コード生成ファイル名のオプション] プロパティを [
User specified
] に設定します。[コード生成ファイル名] ボックスで、ファイル名として
saturator
と入力します。[OK] をクリックします。
手順 3: コード生成レポートの設定
[コンフィギュレーション パラメーター] ダイアログ ボックスを開きます。
[コード生成] ペインで、[システム ターゲット ファイル] パラメーターを
ert.tlc
に設定します。[コード生成]、[レポート] ペインで、[コード生成レポートを作成] を選択します。
[詳細設定パラメーター] で、[モデルからコードに] を選択します。
[適用] をクリックします。
手順 4: 生成される関数名のカスタマイズ
[コンフィギュレーション パラメーター] ダイアログ ボックスの [コード生成]、[識別子] ペインで、[サブシステムのメソッド] パラメーターを形式スキーム $R$N$M$F
に設定します。ここで、次のようになります。
$R
はルート モデル名。$N
はブロック名。$M
はマングル トークン。$F
は Atomic サブチャート用のインターフェイス関数のタイプ。
コードの生成
Embedded Coder® を使用してモデルのコードを生成するには、Ctrl+B キーを押します。
コード生成レポートには、チャートから生成されたコード (モデル ファイル) と Atomic サブチャートから生成されたコード (サブシステム ファイル) へのリンクがあります。サブチャートのコードを検証するには、saturator.c
ハイパーリンクをクリックします。
31 行目は Atomic サブチャート用に生成された during
関数が名前 ex_reuse_states_A_during
をもつことを示します。この名前は、[サブシステムのメソッド] 用に指定された形式スキーム $R$N$M$F
に従っています。
ルート モデル名は
ex_reuse_states
です。ブロック名は
A
です。マングル トークンは空です。
Atomic サブチャート用のインターフェイス関数のタイプは
during
です。
メモ: コード生成レポートに表示される行番号は、実際に表示される行番号とは異なる可能性があります。
参考
Sine Wave (Simulink)