LabVIEW 内で複数の VI をロードして実行すると、各 VI の実行優先順位はどのように決められますか?



使用ソフトウェア: LabVIEW Development Systems
使用ソフトウェア・バージョン: 4.1
使用ソフトウェア・バージョンに特化: N/A
二次のソフトウェア:

問題: LabVIEW 内で複数の VI をロードして実行しますと、各 VI の実行優先順位はどのように決められますか?

解決策: LabVIEW の実行システムはいくつかの VI、又はサブダイアグラムを同時に実行し、各 VI に実行優先順位を設定できます。 実行優先順位の範囲は0(低い)から3(高い)まであります、更にその上に最高限度のサブルーチン(s)順位が有ります。 あるコードセクションが実行中には他のコードは実行行列内で待ちしています。 もし実行中のコードセクションが一定の時刻内に終了しませんでしたら、LabVIEW はそのセクションを再び実行行列に戻し、行列内最前列のコードを実行します。 この動作は再び繰り返し、ラウンドロビン式で各 VI とサブダイアグラムを実行します。

VI の実行優先順位は「VI設定」(LabVIEW 6.0 以後は「ファイル≫VIプロパティ」)内で設定できます。 実行優先順位が高い VI は、内部の全てのサブVI の順位も同じレベルに自動的設定されますのでご注意下さい。 例えば、メーンVI の優先順位は3(高い)に設定、その内部のサブVI は1(少し低い)に設定しますと、メーンVI はサブVI を呼びだすため、サブVI の順位も3になります。

LabVIEW 内の実行行列は優先順位の数に対して、いくつかのエントリポイントが有ります。 実行行列はいつも各 VI の優先順位で順番整理されています。 例えば:

sss322211111

もし優先順位3の VI を実行しますと、実行行列は次の様に変わります:

sss3322211111

新しい VI は実行行列の s (サブルーチン)と元行列内の順位3 VI の後ろに放置されました。

もし実行行列内に高い順位の VI が長時間存在しましたら、低順位の VI に実行する機会が無いのでご注意下さい。 実行行列内実行順位が同じの VI の実行順番は決まっていません。 もし新しい実行順位が高い VI が実行行列内に放置されましたら、この VI の順番は現在実行中の低順位の VI の次となります。

関連リンク:

添付:





報告日時: 03/26/1998
最終更新日: 10/13/2000
ドキュメントID: 17PJE892