最上位VIからサブVIで起こったイベントを検知したいのですが、可能でしょうか?



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

問題:
最上位VIからサブVIで起こったイベントを検知したいのですが、可能でしょうか?

解決策:
LabVIEW 7.0では、あるVIから他のVIのフロントパネルで起こったイベントを検知することが可能です。これらのVI間のリンクは、フロントパネルのオブジェクトのリファレンスの受け渡しで実現できます。
BというVIからAというVIで生じたフロントパネルのイベントを検知する方法は以下のようなものです:

  1. VI Aのフロントパネルのオブジェクトへのリファレンスを作成してください。
  2. VI BにおいてVI Aで作成したリファレンスを受け取るためのrefnumを作成してください。
  3. VI Bでアプリケーション制御>>イベント>>イベント登録を置き、イベントソース端子にrefnumを接続してください。
  4. VI Aで作成したリファレンスのパスをサブVIに渡してください。
  5. VI Bで、イベントストラクチャのイベントダイナミック登録端子にイベント登録関数のイベント登録refnumを接続してください。

この作業によりでフロントパネルのイベントがダイナミックイベントとして選択できるようになります。
メモ:LabVIEW7.0以前のバージョンではダイナミックイベント登録が存在しないため、この方法は使用できません。

サンプルが添付されておりますので、ご参照下さい。


関連リンク:
KnowledgeBase 2FTC5LYA: How Can I Wait for Activity on the Front Panel of Another VI?
KnowledgeBase 2X79OFQJ: Event-Driven Programming in LabVIEW
Product Manuals: LabVIEW User Manual - April 2003
Product Manuals: LabVIEW User Manual (Japanese) - May 2004

添付:


Example.zip - Example.zip


報告日時: 12/31/2003
最終更新日: 12/07/2007
ドキュメントID: 34UBL0RF