Main Content

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

Simulink 関数を使用した共有プリンターでのインク状態の監視

この例では、クライアント (この場合は 3 台のコンピューター) がジョブをサーバーやプリンターに送信する方法、またそのサーバーから状態を受信する方法を示します。この例は、主に、Simulink Function をさまざまなサブシステムから呼び出す方法と、Simulink® および Stateflow® の両方とやり取りする方法を取り上げます (この例をシミュレーションすると、Stateflow によって、現在の作業フォルダー内にコードが生成される可能性があることに注意してください)。

コンピューターがそれぞれ、ランダムなサイズの印刷ジョブを一定の間隔で生成します。プリンターは、Simulink キャンバス上にある 2 つの Simulink Function と、Stateflow 内の 1 つのエクスポートされたグラフィカル関数を通してコンピューターとやり取りします。

クライアントはFunction Callerブロックを使用してプリンターの addPrintJob インターフェイスを呼び出します。この呼び出しでモデル化されるクライアント/サーバー型の対話は、プリンターのインクが切れている場合、負の戻り値となる場合があります。

この例では、関数を使用して Simulink と Stateflow がやり取りを行う方法も示します。

addPrintJob の実装は Function Caller ブロックを使用して、Stateflow のエクスポートされたグラフィカル関数である queuePrintJob を呼び出します。関数 queuePrintJob はローカルのチャート変数 work を使用してチャート内の他のコンテンツとやり取りします。

チャートの実装は、Simulink 関数である printerInk への呼び出しを行います。この関数は、グラフィカル入力および出力を使用して関数 addPrintJob とやり取りします。

Simulink 関数を可視化およびデバッグすることもできます。関数とそれぞれの呼び出し元を結ぶラインを可視化するには、Simulink エディターの [デバッグ] タブにある [情報のオーバーレイ] で、[コネクタ] をクリックします。Simulink キャンバスに表示された [コネクタ] ペインで [関数コネクタ] オプションを選択します。

Sequence Viewerブロックには、関数の呼び出しが生成される場所、異なる時間に呼び出される関数が示されます。この情報により、呼び出しの流れを時間に基づいて把握したり、これらの関数の呼び出しの間に送信される引数を解析することができます。