タスクコントロール
Note
回路ファイルはTOPページからダウンロードできます。
Example
task_control/task_control.scicir
Info
このサンプル回路ではスクリプトを使用します。
スクリプトを使用するサンプル回路にはオプション:DigitalPalette
が必要です。
タスクコントロールとは
複数のスクリプトに対し、異なる周波数でこれらを実行したり、実行順序を設定することができます。
また、異なるタスク間での変数の受け渡し等も可能です。
サンプルでは回路素子は使用せず、4つスクリプトで実現しています。
ポイント
実行周波数の変更
このサンプルでは、Prog1
、Prog2
はメイン周波数が設定されており、100
[kHz]の周波数で動作します。
Prog3
、Prog4
はサブ周波数SubFreq
が設定されており、50
[kHz]の周波数で動作します。
実行順序の変更
実行順序の設定は、サブ周波数で実行周期を設定している場合と、していない場合で異なります。
どちらの場合もそれぞれスクリプトに設定された優先度によって実行順序が決定されます。
まず、メイン周期100
[kHz]で動作しているProg1
、Prog2
については、Prog1
が優先度0
、Prog2
が優先度1
に設定されています。
これにより、メイン周期内ではまずProg1
が実行され、次にProg2
が実行されます。
次に、サブ周波数が設定されているProg3
、Prog4
についてはProg3
の優先度を3
、Prog4
の優先度を4
としていますので、
サブ周期内ではProg3
、Prog4
の順番でスクリプトが実行されます。
優先度に関しましては優先度の設定を参照ください。
シミュレーション
Transient
解析でシミュレーションを行い、それぞれのスクリプトでの変数の受け渡しや実行順序を確認しましょう。
シミュレーション時間は10m
秒としてください。
結果は以下となります。
100
[kHz]のタスクと、50
[kHz]のタスクが実行されていることが分かります。