ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

チャートの構造体の外部バス信号への接続

モデル sfbus_demo は、Stateflow® チャートの構造体の例を示しています。

チャートにはグラフィカル関数が含まれています。

上記のモデルでは、Stateflow チャートは入力端子 1 の構造体 inbus を使用してバスの入力信号を受信し、出力端子 1 の構造体 outbus からバス信号を出力します。入力信号は、他の 2 つの Bus Creator ブロックからの信号をバンドルする Simulink® Bus Creator ブロックの COUNTERBUSCreator から派生しています。SIGNALBUSCreatorLIMITBUSCreator の 2 つがあります。構造体 outbus は Simulink Bus Selector ブロックの BUSSelector に接続しています。この Stateflow チャートには、ローカル構造体 counterbus_struct、および入力構造体 u と出力構造体 y で構成されるグラフィカル関数 get_input_signal も含まれています。

sfbus_demo Stateflow チャートの構造体の定義

sfbus_demo モデルのチャートの構造体定義は、モデル エクスプローラーで次のように表示されます。

    メモ:   ローカル構造体 counterbus_struct は、式による構造体の型の定義 の説明にあるとおり、式で type 演算子を使用して定義されています。

sfbus_demo Stateflow グラフィカル関数の構造体の定義

グラフィカル関数 get_input_signal の構造体定義は、以下のようにモデル エクスプローラーに表示されます。

Simulink バス オブジェクトによる Stateflow 構造体の定義

各 Stateflow 構造体は、ベース ワークスペース内の Simulink.Bus オブジェクトで定義しなければなりません。構造体は、バス オブジェクトと同じプロパティ (フィールドの数、名前、型など) を共有します。たとえば、sfbus_demo モデルは、以下のバス オブジェクトをベース ワークスペース内に定義しています。

Stateflow 構造体を定義しているバス オブジェクトを確認するには、モデル エクスプローラーの [コンテンツ] ペインの [データ型] 列と [Compiled Type] 列を調べます。たとえば、構造体 inbusoutbus、および counterbus_struct はすべて、同じ Simulink バス オブジェクト、COUNTERBUS によって sfbus_demo に定義されます。

各定義に基づいて、inbusoutbus、および counterbus_struct には、COUNTERBUS と同じプロパティが設定されています。たとえば、sfbus_demo 内の各 Stateflow 構造体は、以下のように、COUNTERBUS の要素と同じ名前のフィールドを参照します。

構造体最初のフィールド2 番目のフィールド
inbusinbus.inputsignalinbus.limits
outbusoutbus.inputsignaloutbus.limits
counterbus_structcounterbus_struct.inputsignalcounterbus_struct.limits

Simulink.Bus オブジェクトを使用して、構造体を Stateflow チャート内に定義する方法については、Stateflow 構造体の定義 を参照してください。

Stateflow チャート用に C のカスタム構造体を定義する場合は、Stateflow チャートでのカスタム構造体の統合 で説明するように、構造体を定義する Simulink.Bus オブジェクトのプロパティと一致するように、ヘッダー ファイル内の構造体の typedef 宣言を記述しなければなりません。

この情報は役に立ちましたか?