From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

NI製品ディスカッション

cancel
Showing results for 
Search instead for 
Did you mean: 

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

VB.NETでアプリケーションを作成し、GPIB通信行いたいですが
VB6での使い方しか分かりませんので、
もし、対応していれば、詳細を教えていただきたいと思います
よろしくお願いします
0 Kudos
Message 1 of 9
(14,689 Views)
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 Kudos
Message 2 of 9
(14,663 Views)
 

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

0 Kudos
Message 3 of 9
(14,666 Views)

 

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

0 Kudos
Message 4 of 9
(14,663 Views)

 

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

0 Kudos
Message 5 of 9
(14,663 Views)
 

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

0 Kudos
Message 6 of 9
(14,663 Views)

私が持っている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 Kudos
Message 7 of 9
(14,651 Views)

平素より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 Kudos
Message 8 of 9
(14,641 Views)

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

 

0 Kudos
Message 9 of 9
(14,630 Views)