関数であるサブVIを2個同時に使用すると、おかしな結果になる。
使用ソフトウェア: LabVIEW Development Systems
使用ソフトウェア・バージョン: 6.0
使用ソフトウェア・バージョンに特化: N/A
二次のソフトウェア:
問題: LabVIEWを使用して、ある動作を行なうサブVIを作成しました。サブVI自体は、問題なく動作しています。Whileループに入れたときも、問題なく動作しています。しかし、このサブVIを2個使用して、2系統分の処理を行なうと、処理した結果がおかしな結果になります。
解決策: LabVIEWでは、同じ名前のVIは、同じ関数であると認識されて動作しています。同じ名前のVIを平行して動作させると、処理をしているメモリ領域も、計算過程の値も競合状態になります。
したがって、1つのVIを使用するときは、正しく動作するが、2つを平行して動作させますと、おかしな動作になります。
対策としては、まずはVIプロパティを参照し、実行オプションの「再入実行」を有効化する事です。これにより同じ名称で定義されたsubVIは配置された回数(インスタンス分)だけ別のメモリ領域を保持します。
通常はこの方法で改善されますが、それでも動作がおかしい場合は使用しているVI名を変更することします。 例えばsub.VIとして使用しているサブVI名を、各々sub1.とsub2.VIと名前を付けます。
もしこれでも、正常でない場合は、このVIの中に含まれているサブVIも同じ名前のサブVIが存在しますので、それらにも、このように名前の変更を行なうことで対処できます。
関連リンク:
添付:
報告日時: 08/14/2001
最終更新日: 08/15/2001
ドキュメントID: 2CDMFI1I
Other Support Options
Ask the NI Community
Collaborate with other users in our discussion forums
Request Support from an Engineer
A valid service agreement may be required, and support options vary by country.