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

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

この例では、クライアント (この場合は 3 台のコンピューター) がジョブをサーバーやプリンターに送信する方法、またそのサーバーから状態を受信する方法を示します。この例は、主に、Simulink Function をさまざまなサブシステムから呼び出す方法と、Simulink® および Stateflow® の両方とやり取りする方法を取り上げます。

例の要件

この例をシミュレーションすると、Stateflow によって、現在の作業フォルダー内にコードが生成される可能性があることに注意してください。

概要

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

1. クライアントは Function Caller ブロックを使用してプリンターの addPrintJob インターフェイスを呼び出します。

2. この呼び出しでモデル化されるクライアント/サーバー型の対話は、プリンターのインクが切れている場合、負の戻り値となる場合があります。

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

1. addPrintJob の実装は Function Caller ブロックを使用して、Stateflow のエクスポートされたグラフィカル関数である queuePrintJob を呼び出します。

2. queuePrintJob 関数はローカルのチャート変数 'work' を使用してチャート内の他のコンテンツとやり取りします。

3. チャートの実装は、Simulink Function である printerInk への呼び出しを行います。

4. printerInk 関数ジョブはグラフィカル入力および出力を使用して addPrintJob 関数とやり取りします。

この例では、Simulink 関数を可視化およびデバッグする方法も示します。

1. 関数とそれぞれの呼び出し元を結ぶ可視化ラインは、[情報表示] メニューで [関数コネクタ] オプションを選択することで有効化できます。

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