Real-Time Workshop User's Guide    

実行時の構造

リアルタイムプログラムは、SimulinkとStethoScopeが同じまたは異なるホストワークステーション上で実行しているとき、VxWorks上で実行します。SimulinkとStethoScopeは、通信を扱うためにVxWorksターゲット上のタスクを要求します。

つぎの図は、SimulinkのexternalモードとStethoScopeを使ったVxWorksアプリケーションの構造を説明したものです。

図 12-2: 実行時の構造

プログラムは、リアルタイムシステム上で実行するためにVxWorksのタスクを作成します。そのタスクの1つは、Simulinkとの通信を行い、もう1つは、モデルを実行します。StethoScopeは、データ収集のためにタスクを作成します。

ホスト側のプロセス

リアルタイムプログラムと通信するホスト側では、2つのプロセスが実行されます。

VxWorksタスク

リアルタイムプログラムが実行できる2つのモードとして、シングルタスクとマルチタスクがあります。両方のモデルのコードは、つぎの場所にあります。

Real-Time Workshopは、ビルドプロセス中にモデルコードを使ってrt_main.cをコンパイルし、リンクします。

シングルタスク.   デフォルトでは、モデルは1つのタスクtSingleRateとして実行されます。これは、モデルによっては最高の性能(最高のサンプルレート)になる場合があります。

tSingleRateタスクは、モデルのベースレートで実行し、遅いサンプルレートのすべてのコードを実行します。tSingleRateタスクの実行は、通常VxWorksのsemTakeルーチンの呼び出しによりブロックされます。クロック割り込みが起こるときに、割り込みサービスルーチンは、semTakeの呼び出しに戻るsemGiveルーチンを呼び出します。実行可能になると、tSingleRate タスクは、1時間ステップに対してモデルコードを実行します。その後ループは、再度semTakeを呼び出すまで待ちます。semTakeおよびsemGiveルーチンの詳細は、VxWorks Reference Manualを参照してください。このタスクはデフォルトでは、比較的高い優先度(30)で実行し、バックグランドシステムの挙動から割り込みされずに実行できます。

マルチタスク.   モデルは、モデル内のサンプルレート毎に1つのマルチタスクとしてオプションで実行できます。

サポートするタスク..   ビルドプロセス中にexternalモードとStethoScopeを選択する場合、つぎのタスクも作成されます。


 パラメータチューニングとモニタリング 実現方式の概要