01-11-2008 03:30 AM
大川 様
いつもお世話になっております。
無事ダウンロードできました。
ダウンロードしたインストーラを使用して
LabVIEWのインストールされているマシンとインストールされていないマシンに
SharedとReceivedをインストールしました。
どちらのマシンも実行する前にWindowsファイアウォールをOFFにしましたが
どちらもシェア変数は機能しませんでした。
そこで、LabVIEWがインストールされているPCで実行した場合と
LabVIEWがインストールされていないPCで実行した場合のポート状態を比較してみました。
また、以前頂いたプロジェクトをビルドして作成したEXEはシェア変数が機能していましたので
こちらの場合のポート状態も見てみました。
【LabVIEWありのPC】
TCP Ryu1:4341 localhost:4342 ESTABLISHED
TCP Ryu1:4342 localhost:4341 ESTABLISHED
TCP Ryu1:4345 localhost:4346 ESTABLISHED
TCP Ryu1:4346 localhost:4345 ESTABLISHED
【LabVIEWなしのPC】
TCP PC:1069 localhost:1070 ESTABLISHED
TCP PC:1070 localhost:1069 ESTABLISHED
TCP PC:1072 localhost:1073 ESTABLISHED
TCP PC:1073 localhost:1072 ESTABLISHED
【シェア変数が機能するEXEを実行】
TCP Ryu1:4287 localhost:4288 ESTABLISHED
TCP Ryu1:4288 localhost:4287 ESTABLISHED
TCP Ryu1:4289 localhost:59110 ESTABLISHED
TCP Ryu1:4293 localhost:4294 ESTABLISHED
TCP Ryu1:4294 localhost:4293 ESTABLISHED
TCP Ryu1:4295 localhost:59110 ESTABLISHED
TCP Ryu1:59110 localhost:4289 ESTABLISHED
TCP Ryu1:59110 localhost:4295 ESTABLISHED
シェア変数が機能する場合と機能しない場合で、開放されるポートの数が異なっておりました。
機能する場合はSharedとReceivedの両方で共通のポートを開いているように見受けられます。
何かの手がかりになりますでしょうか。
お手数をお掛け致しますが
ご確認の程よろしくお願い致します。
01-14-2008 10:47 PM
01-15-2008 04:36 AM
01-17-2008 09:01 PM
01-18-2008 01:27 AM
大川 様
いつもお世話になっております。
ご回答ありがとうございます。
ご教授頂いたとおり試してみましたが前回と同様のエラーが出ました。
ターゲットマシンのマシン名を登録してシェア変数のプロパティで「参照」ボタンを押し
ご教授頂いたとおりに設定しましたが変わりませんでした。
Windowsファイアフォールも無効にして確認しましたがエラーが出ました。
シェア変数のプロパティで「参照」ボタンを押したときに表示されます
プロパティダイアログ上で、マシン名のツリーを展開するとシェア変数が表示されましたので
ターゲットマシンを参照は出来ていると思います。
お忙しいところ申し訳ありませんが
ご確認の程よろしくお願い致します。
03-18-2009 08:16 PM
情報のシェアをする目的でアップデートしています。
あるお客様がLabVIEWではない言語で開発していたプログラムと今回LabVIEWで開発するプログラムとのデータ共有を共有メモリを使用して行いたいという依頼があり、このフォーラムの情報を知りました。
Ryu1さんは当初共有メモリを使用してアプリ間のデータ共有を行いたいがハングするということでComMem8.2_2.viをアップデートされていました。このプログラムを変更することでハングしないようになります。添付したプログラムがそれです。(LabVIEW8.6.1にて作成)
変更内容としては、
ローカル変数の呼び出し順番がシーケンスにそっていなかったので排除しました。
文字列長に関してはNULL文字分を追加しました。
コピー元、先のポインタ指定方法をC文字列ポインタに変更しました。
上記変更に伴い、2回目のコピー先のポインタに関して入力ワイヤがつながれていなかったのでワイヤをつなぎました。
ちなみにLabVIEWで作成したアプリケーション同士でデータ共有する場合は今までの紹介どおり共有メモリではなく、シェア変数を使用いただくのが簡単に行える方法になります。共有メモリはLabVIEWで作成されていないアプリケーションとデータ共有する場合にご使用ください。
National Instruments
Application Engineer
Teruhiko Udaka
03-18-2009 08:18 PM