Main Content

Simulink と Stateflow での関数の共有

この例では、Simulink® と Stateflow® の間で関数を呼び出す方法を説明します。slexPrinterExample モデルは、1 台のプリンターを共有する 3 台のコンピューター クライアントで構成されています。各コンピューターは、Simulink 関数 addPrintJob を呼び出すことで印刷ジョブを作成します。

関数を使用した通信とリソースの共有

この例では、Stateflow チャートは次によってモデルと通信します。

  • Simulink によって呼び出されるグラフィカル関数の定義およびエクスポート。

  • Simulink で定義されている Simulink 関数の呼び出し。

各コンピューター クライアントは、Simulink 関数 addPrintJob を呼び出すことでプリンター サーバーを起動します。関数 addPrintJob は Stateflow グラフィカル関数 queuePrintJob を呼び出して、印刷ジョブを作業負荷に追加します。チャートは作業を処理し、Simulink 関数 printerInk を呼び出して、プリンター インクの使用量をモデル化します。

Stateflow からの Simulink 関数の呼び出し

関数 printerInk は、モデルの最上位レベルの Simulink Function ブロック内で定義されます。関数インターフェイス printerInk(work) が 1 つの入力引数を定義します。また、Simulink 関数 printerInk は、入力端子 ink と出力端子 ink' を介し、信号線を使ってモデルを操作します。1 つの入力引数を渡すことで、Busy ステートが printerInk(work) の関数シグネチャと一致します。

Stateflow 関数の Simulink へのエクスポート

チャート Queuing および Processing Incoming Jobs では、プロパティ [チャート レベルの関数をエクスポート] および [エクスポートされた関数をグローバルに可視として扱う] がオンになっています。これらのプロパティによって、Simulink 関数 addPrintJob はチャートのグラフィカル関数 queuePrintJob を呼び出すことができます。

参考

(Simulink)

関連するトピック