From 04:00 PM CDT – 08:00 PM CDT (09:00 PM UTC – 01:00 AM UTC) Tuesday, April 16, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

Visual BASICとLabVIEWの同期

解決済み
解決策を見る

>フラグの情報を格納するのに、複数のインスタンスで共有できる、グローバル変数は使えないでしょうか?

別のアプリから呼ばれても共有できるグローバル変数というのは分りません。

0 件の賞賛
メッセージ11/20
2,335件の閲覧回数

上田 様、 KONDOH 様、GNDT 様

 

横割り失礼いたします。
日本ナショナルインスツルメンツ 見目と申します。


VBアプリケーションとLabVIEWアプリケーション間にてフラグのようなものを使用するには、
「PostLVUserEvent」をご使用されては如何でしょうか。

 

「PostLVUserEvent」は、DLLにイベントを作成するコードを組み込み、
そのイベントをLabVIEWにて、ユーザイベントとして登録し、
DLLがイベントを作成するタイミングでLabVIEW上にてイベントストラクチャ内コードが実行されるというものでございます。

 

この動作を行ないますサンプルは下記のURLにございますので、ご参照頂けますと幸いです。

 

Posting Events to a LabVIEW Event Structure From a Dll
http://zone.ni.com/devzone/cda/epd/p/id/1480

 

上記内容に関しましてご不明点やご質問がございましたら、
どうぞお気軽にご連絡いただけますよう宜しくお願い申し上げます。

 

日本ナショナルインスツルメンツ 見目 ルツ

0 件の賞賛
メッセージ12/20
2,286件の閲覧回数

日本ナショナルインスツルメンツ 見目様

 

お世話になっております。

提示頂いたサンプルを試そうと思ったのですが、私が使っているLabVIEW7.0では開けませんでした。(最初のスレッドで8.6を使っていると書きましたが、誤りでした。)

サンプルはLabVIEW7.1で作られているようです。

LabVIEW7.0でも同じ方法が可能でしょうか?

もし可能であれば、LabVIEW7.0で試せるサンプルを頂けませんでしょうか?

 

0 件の賞賛
メッセージ13/20
2,267件の閲覧回数

上田 様

日本ナショナルインスツルメンツ 見目でございます。

LabVIEW7.0で保存しましたのでご確認頂けますでしょうか。
何卒宜しくお願い申し上げます。

日本ナショナルインスツルメンツ 見目 ルツ

0 件の賞賛
メッセージ14/20
2,241件の閲覧回数

日本ナショナルインスツルメンツ 見目様

 

サンプルをありがとうございます。

このサンプルでは、LVUserEvent.viの中で[Create User Event]で作成したユーザイベント出力を、DLLの中にあるSendEvent関数の引数LVUserEventRef *rwerとイベントストラクチャに渡して、イベントストラクチャとSendEvent関数の関連付けを行っていると理解しました。

その理解で宜しいでしょうか?

 

ところで、私が行いたいのはVsicalBasicアプリからVIに何かしらの信号を送ることです。

サンプルを見させて頂いて、VsicalBasicアプリからDLL内のSendEvent関数を呼んで、VIにイベントを送れれば良いと思ったのですが、VsicalBasicアプリからSendEvent関数を呼ぶ時に、引数LVUserEventRef *rwerへ何を渡せば良いのか分りません。

この辺を教えて頂けるとありがたいです。

0 件の賞賛
メッセージ15/20
2,219件の閲覧回数

上田 様

 

日本ナショナルインスツルメンツ 見目でございます。
ご連絡が遅れまして大変申し訳御座いません。

 

サンプルの動作は、まずLabVIEWでイベント登録を行ないます。
その後、DLLにLabVIEWで登録されたイベントのレファレンスを渡しますと、DLLが登録されたイベントへ何からのデータを渡します。
渡されるデータタイプは、イベント登録の際に指定します。


「LVUserEvent.cpp」がこのサンプルのDLLのソースファイルでして、このサンプルの場合ですと、
PopulateStringHandle(newStringHandle,"Guess where I came from"); にて、
データ("Guess where I came from")をnewStringHandleに渡しています。
その後、PostLVUserEvent(*rwer,(void *)&newStringHandle);にて、
newStringHandleのデータを*rwerに渡しています。


DLLにLabVIEWで登録されたイベントレファレンスを渡す事により、SendEventは、(LVUserEventRef *rwer)を取得します。

LabVIEWでDLLを呼び出すには「ライブラリ関数呼び出しノード」を使用します。
「ライブラリ関数呼び出しノード」をダブルクリックして、
DLLのパスを参照し、SendEvent関数を指定して頂いたあと、パラメータにてパラメータを指定します。
その後、イベントストラクチャにて、ユーザイベントを指定して頂ければ、DLLから渡されるデータ(今回は文字列)がLabVIEWで呼び出せます。

従って、SendEvent関数の引数LVUserEventRef *rwerには、LabVIEWからイベントレファレンスを渡してください。

 

上記内容につきまして、ご質問やご不明な点などございましたら、
どうぞお気軽にご連絡頂けますようお願い申し上げます。

 

日本ナショナルインスツルメンツ 見目 ルツ

0 件の賞賛
メッセージ16/20
2,183件の閲覧回数

日本ナショナルインスツルメンツ

見目様

 

お世話になっております。

私のしたいことが伝わっていないでしょうか?

頂いたサンプルは”LabVIEWアプリA→DLL→LabVIEWアプリB”でイベントを受け渡しています。

私のしたいことは、”Visual BASICアプリ→DLL→LabVIEWアプリ”です。

LabVIEWアプリならイベントレファレンスを登録し、DLLへ渡せますが、Visual BASICアプリでもLabVIEWイベントレファレンスを登録することが出来るのでしょうか?

 

Visual BASICアプリ(DLLではないウィンドウを持つアプリ)からLabVIEWアプリへイベントかなにかを渡して、Visual BASICアプリとLabVIEWアプリの同期を取る方法があれば教えて下さい。

 

0 件の賞賛
メッセージ17/20
2,179件の閲覧回数
解決策
トピック作成者上田が受理

上田 様

ご連絡ありがとうございます。
上田様のご希望の動作の把握ができておらず大変申し訳ございません。

LabVIEWとVisual Basicのデータの共有をご希望ということでよろしいでしょうか。

Visual BasicからLabVIEWにデータを共有させる方法は、ActiveXを使用します。
LabVIEWで作成されたVIはActiveXServerでして、VIを実行中はActiveXServerとして
Visual Basicから値が制御できます。
その際、LabVIEW側は、VIを実行していればそれ以外の動作は必要ございません。

下記のURLにサンプルがございます。

Passing Data between LabVIEW and Visual Basic Using the ActiveX Server
http://zone.ni.com/devzone/cda/epd/p/id/1396


逆にLabVIEWから制御する場合は、ActiveXのレファレンスを開いて値を書き込む必要がございます。

下記のディレクトリにサンプルがございますので、ご参考にして頂ければと思います。
C:\Program Files\National Instruments\LabVIEW 2009\examples\comm\axevent.llb\ActiveX Event Callback for Excel.vi

また、NIサンプルファインダから、外部アプリケーションとの通信>ActiveXにて他サンプルもご覧頂けます。

上記内容につきまして、ご質問やご不明な点などございましたら、
どうぞお気軽にご連絡頂けますようお願い申し上げます。

日本ナショナルインスツルメンツ 見目 ルツ

0 件の賞賛
メッセージ18/20
2,144件の閲覧回数

日本ナショナルインスツルメンツ

見目様

 

御提示された方法でできました。

 

ありがとうございました。

0 件の賞賛
メッセージ19/20
2,026件の閲覧回数

上田 様

 

ご多忙中、ご連絡ありがとうございます。
ご希望の動作が出来たとのこと大変嬉しく思います。

 

この度は上田様のご希望の動作の把握に時間がかかってしまい申し訳ございません。
また何かお困りの際は御気軽にご連絡頂けますようお願い申し上げます。
 
この度はNIディスカッションフォーラムをご利用いただきましてありがとうございました。
 
日本ナショナルインスツルメンツ 見目 ルツ

0 件の賞賛
メッセージ20/20
2,014件の閲覧回数