Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

共有プリンター サーバーのキューの管理

この例では、関数を共有して Simulink® モデルと Stateflow® チャートの間で通信する方法を説明します。たとえば、以下のことができます。

  • Stateflow チャートを使用して、モデルで定義されている Simulink 関数を呼び出す。

  • Simulink モデル内の Function Caller ブロックを使用して、Stateflow チャートで定義されている関数を呼び出す。

この例では、1 台のネットワーク プリンターを共有する 3 台のコンピューター クライアントをモデル化します。各コンピューターは、印刷ジョブを処理するために共通のキューに送信します。各コンピューター クライアントは、Simulink Function ブロック addPrintJob を呼び出すことでプリンター サーバーを起動します。印刷ジョブを作業負荷に追加するために、関数 addPrintJob は Stateflow チャート内のグラフィカル関数 queuePrintJob を呼び出します。プリンター インクの使用量をモデル化するために、チャートは作業を処理し、Simulink Function ブロック 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)

関連するトピック