NI製品ディスカッション

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

VB.NETで御社のGPIBを制御できますか?

VB.NETでアプリケーションを作成し、GPIB通信行いたいですが
VB6での使い方しか分かりませんので、
もし、対応していれば、詳細を教えていただきたいと思います
よろしくお願いします
0 件の賞賛
メッセージ1/9
14,655件の閲覧回数
VISAライブラリを使うのであれば、最新のNI-VISAをインストールすることで、VB.NETのインポートライブラリを使用できます。このファイルは、C:/VXIpnp/WinNT/include/visa32.vb です。これをVB.NETプロジェクトに追加します。
 
以下、それを使用した際のサンプルです。
 

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim vs As Integer
    Dim viRM As Integer
    Dim vi As Integer
 
    vs = visa32.viOpenDefaultRM(viRM)
    vs = visa32.viOpen(viRM, "GPIB0::1::INSTR", VI_NO_LOCK, 0, vi)
    vs = visa32.viSetAttribute(vi, visa32.VI_ATTR_WR_BUF_OPER_MODE, visa32.VI_FLUSH_ON_ACCESS)
    vs = visa32.viSetAttribute(vi, visa32.VI_ATTR_RD_BUF_OPER_MODE, visa32.VI_FLUSH_ON_ACCESS)
 
    ' Reads *IDN response
    Dim sbIDN As System.Text.StringBuilder = New System.Text.StringBuilder(256)
    vs = visa32.viPrintf(vi, "*IDN?" & vbLf)
    vs = visa32.viScanf(vi, "%s", sbIDN)
    Dim strIDN As String = sbIDN.ToString()
 
    ' Sets voltage and current output
    vs = visa32.viPrintf(vi, ":VOLT %lf" & vbLf, 20.0)
    vs = visa32.viPrintf(vi, ":CURR %lf" & vbLf, 5.1)
 
    ' Measures voltage
    Dim dRd As Double
    vs = visa32.viPrintf(vi, ":MEAS:VOLT?" & vbLf)
    vs = visa32.viScanf(vi, "%lf", dRd)
 
 
    vs = visa32.viClose(vi)
    vs = visa32.viClose(viRM)
End Sub
 
0 件の賞賛
メッセージ2/9
14,629件の閲覧回数
 

このメッセージは 02-16-2006 12:10 PMに Makoto が編集しています。

0 件の賞賛
メッセージ3/9
14,632件の閲覧回数

 

このメッセージは 02-16-2006 12:06 PMに Makoto が編集しています。

0 件の賞賛
メッセージ4/9
14,629件の閲覧回数

 

このメッセージは 02-16-2006 12:05 PMに Makoto が編集しています。

0 件の賞賛
メッセージ5/9
14,629件の閲覧回数
 

このメッセージは 02-16-2006 12:05 PMに Makoto が編集しています。

0 件の賞賛
メッセージ6/9
14,629件の閲覧回数

私が持っているvisa32.vbをちょっと確認してみたところ、Agilent IO Libraries Suite 14付属のものでNIのものではありませんでした。どうもすみません。NI環境の場合はここに書かれている手順でNI-488.2Mソフトウェアをインストールしないといけないようです。http://digital.ni.com/public.nsf/websearch/9D74098B0AFB1D2286256EF40063B3E2?OpenDocument

これとは別に、Dr.Dobb's JournalのサイトにVISA32.DLLのインポーターアセンブリの作成例が載っていました。Agilentのvisa32.vbはこれとよく似た実装になっているようです。VB6で使えなかったcdecl呼び出し規約のviPrintf/viScanfも、オーバーロード記述によりVB.NETでは使えるようです。
http://www.ddj.com/documents/s=9405/ddj0411p/0411p.html#l3

 

0 件の賞賛
メッセージ7/9
14,617件の閲覧回数

平素よりNI製品をご利用頂きまして誠に有難うございます。
日本ナショナルインスツルメンツ技術部の幾田と申します。
お問い合わせの件に関して、以下のとおり回答いたします。

まず、テキストにおきましては開発環境でサンプルなども異なってきます。
MeasurementStdio for VS .netの場合、

C:\Program Files\National Instruments\MeasurementStudioVS2003\DotNET\Examples\GPIB
にサンプルなどが記載されておりますのでこちらからデバックのご参照いただければと思います。

また、MeasurementStdio for VS .netのプログラムのデバックにあたって不明な点など生じた際は以下のURLより内容を検索することも可能です。

http://www.ni.com/support/vsdotnetsupp.htm

VISAにつきましては全てのプログラム>>National Instruments>>NI-VISA framework.net Helpにて関数などご参照いただければと思います。
(大変恐縮ながら、これらの内容につきましては英語の内容のものが多く、大変ご不便をおかけしております。)

また、サンプルに関しましてはWebからも検索することが出来ますので、こちらも是非ご利用いただければと思います。
http://www.ni.com/devzone/dev_exchange/ex_search.htm

0 件の賞賛
メッセージ8/9
14,607件の閲覧回数

早速のご返答ありがとうございました。

 

0 件の賞賛
メッセージ9/9
14,596件の閲覧回数