12-15-2006 03:10 AM
12-15-2006 03:57 AM
サブviを呼び出すと、サブviの実行が終わらないとメインに制御が戻らないので、次のイベント待ちに行けないでいるものと思われます。
サブviを呼び出してもメインの制御が続くには、いろいろ書き方があると思いますが、添付のような方法もあるかと思います。
当方LabVIEW6なので、6.1以上のイベントストラクチャを使っていませんが、基本的にはイベントストラクチャで書き直せる書き方であると思います。
最初にサブviも呼び出してしまいますが、サブviは開きません。また、サブviの呼び出しとメインのループは並列なので、相互に無関係です。メインでA,B,Cのボタンが押されたら、対応するサブviを「表示する」ようにしています。単に表示するだけなのでメインの制御は生きています(乱数を表示し続ける)。サブviを閉じるときはサブviの右上の「×」をクリックすれば閉じますが、メインで再度ボタンを押せば開きます。メインの制御が生きているので、Aを開いている最中にメインでBを押すと、Bも開くことができます。
メインで終了を押すと、各サブviでそれをリファレンスで検知して全体が終了するようになっています。
以上、スマートかどうか分かりませんが、ご参考になればと思います。