タスクコントロール

Note

回路ファイルはTOPページからダウンロードできます。


Example

task_control/task_control.scicir

Info

このサンプル回路ではスクリプトを使用します。
スクリプトを使用するサンプル回路にはオプション:DigitalPaletteが必要です。

タスクコントロールとは

複数のスクリプトに対し、異なる周波数でこれらを実行したり、実行順序を設定することができます。
また、異なるタスク間での変数の受け渡し等も可能です。

サンプルでは回路素子は使用せず、4つスクリプトで実現しています。


ポイント

実行周波数の変更

このサンプルでは、Prog1Prog2はメイン周波数が設定されており、100[kHz]の周波数で動作します。 Prog3Prog4はサブ周波数SubFreqが設定されており、50[kHz]の周波数で動作します。

実行順序の変更

実行順序の設定は、サブ周波数で実行周期を設定している場合と、していない場合で異なります。
どちらの場合もそれぞれスクリプトに設定された優先度によって実行順序が決定されます。

まず、メイン周期100[kHz]で動作しているProg1Prog2については、Prog1が優先度0Prog2が優先度1に設定されています。 これにより、メイン周期内ではまずProg1が実行され、次にProg2が実行されます。

次に、サブ周波数が設定されているProg3Prog4についてはProg3の優先度を3Prog4の優先度を4としていますので、 サブ周期内ではProg3Prog4の順番でスクリプトが実行されます。

優先度に関しましては優先度の設定を参照ください。


シミュレーション

Transient解析でシミュレーションを行い、それぞれのスクリプトでの変数の受け渡しや実行順序を確認しましょう。 シミュレーション時間は10m秒としてください。

結果は以下となります。

100[kHz]のタスクと、50[kHz]のタスクが実行されていることが分かります。