NI製品ディスカッション

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

VB6でNI6284及びNI4351を制御する方法について

このたび御社の製品NI6284およびNI4351を使用しての開発を行うことになりまし
た。
今回の制御用のソフト開発はVB6で顧客側が行います。
しかし、NI6284、NI4351はVB6の対応ドライバの提供は行っていないようです。
したがって、VB6からボードをたたくためのインターフェースを要求されていま
す。
私としましては、ボードをたたくためのDLLをLabView7.1にて作成し、そのDLLを
VB6から呼び出すようにすれば要求が満たされると考えています。
上記の考えは実現可能でしょうか?
VB6で作成から呼び出し可能なDLLの作成方法をお教え願えますか?
0 件の賞賛
メッセージ1/6
5,502件の閲覧回数
DLL作成方法はヘルプを参照したところ、ライブラリ関数呼び出しノードを使用すればよいことがわかりました。
0 件の賞賛
メッセージ2/6
5,484件の閲覧回数

最近、どうして、こんなにNI製品に詳しいのかと謎に思われている小澤@東北大学電気通信研究所です。

一応、念のために申し上げます。

 

>DLL作成方法はヘルプを参照したところ、ライブラリ関数呼び出しノードを使用すればよいことがわかりました。
 
これは、VBなどでDLLをつくり、それをLabVIEWから呼び出すときに使うものがライブラリ関数呼び出しノードとなります。
 
 
ここでの問題は、おそらく
ボード=LabVIEWで作ったDLL=VBのやり取りでしょう。
この場合は、LabVIEWでボードをコントロールできるVIを作成します。そして、それをメニューからDLLを作るという項目を選んで、DLLを作ります。
そうすれば、VBから、このDLLに命令を流せば、ボードが動くということになります。
 
ただし、「メニューからDLLを作るという項目」という項目は、LabVIEWの一番高いバージョンでないとついていません。
アプリケーションビルダのライセンスを追加で購入するか、もしくはLabVIEWの一番高いバージョン(通称、バージョンPDS)を購入する必要があります。
 
メッセージ3/6
5,469件の閲覧回数
飯沼と申します。
お返事ありがとうございました。
このディスカッションフォーラムを利用するのは初めてで誰かからも解答がいただけないかもしれないと不安でした。
私が使用しているのは、LabView7.1プロフェッショナル開発システムなのでメニューからDLLの作成は可能なはずです。
 
VC++でTEST.dllというDLLを作成してそれをVBで使用する場合
VC++側では「extern "C" __declspec(dllexport) void __stdcall foo(double *p);」として作成し、
VB側では、「Declare Sub foo Lib "TEST.dlll" (p As Double)」という宣言をすることで使用できるわけですが、
LabViewで作成されたDLLの関数はVBでどのように宣言するかなど少し不安があります。
試してみないことにはなんともいえませんので簡単なDLLを作成してみようと思います。
 
ほんとにご解答ありがとうございました。
また、なにかありましたらよろしくお願いいたします。
0 件の賞賛
メッセージ4/6
5,456件の閲覧回数

この種の問題に対する確立したマニュアルはないので、あっても英語になるので、サンプルで動かしてみるのが一番の早道と思います。

まず、下記のリンクにいくつかのサンプルがありますので、それでできるかどうかを試してみます。

http://search.ni.com/nisearch/nisearchservlet?nistype=default&ddown=3&filter=%2Btaxonomy%3A%22Exampl...

これらが無事に動作するようでしたら、いろいろとクセが把握できたのではないかと思いますので、いろいろとやりたいことを加えていき、必要とする仕様を満たすように作るといいと思います。

 

0 件の賞賛
メッセージ5/6
5,454件の閲覧回数

飯沼です。

貴重な情報ありがとうございました。

試してみようと思います。

0 件の賞賛
メッセージ6/6
5,451件の閲覧回数