title

チュートリアル

Visual Basic 2008

Visual Basic 2008とVISAを使用してGPIB、RS232C、USB、LAN経由でPAT-Tシリーズと通信する場合の説明をします。

プロジェクトの設定

最初にプロジェクトに通信用ドライバ(VISAライブラリ)の設定をします。

[プロジェクト] > [参照設定]を選択してVISA COM3.0 Type Libraryを参照します。

 

GPIB、RS232C、USB、LANで通信する

通信用ドライバの設定が終わると、GPIB、RS232C、USB、LANで通信ができます。

VISAを経由しての通信手順を説明します。

VISAのオープン

VISAを経由してGPIB、RS232C、USB、LAN機器と通信するには、まずVISAをオープンします。VISAをオープンするときに、I/Oリソースを指定します。

例:USBを使用する場合のVISAのオープン

Set rm = CreateObject("VISA.GlobalRM")

Set msg = rm.Open("USB::0x0B3E::0x100E::00000001::INSTR", NO_LOCK, 0, "")

"USB::0x0B3E::0x100E::00000001::INSTR"がI/Oリソースです。

I/Oリソースは以下の構文になっています。[ ]で囲まれた部分は省略可能です。斜体で書かれている部分に適切な値を入れます。

GPIB GPIB[board]::PrimaryAddress[::SecondaryAddress][::INSTR]
例:GPIB0に接続されたプライマリアドレス3の計測器の場合
GPIB0::3::INSTR
シリアル
(RS232C)
ASRL[board][::INSTR]
例:シリアルポートCOM1に接続された計測器の場合
ASRL1::INSTR
USB USB[board]::VendorID::ProductID::SerialNumber[::InterfaceNumber][::INSTR]
例:ベンダーID(VID)2878、プロダクトID(PID)4111、シリアルナンバー”00000001”を持つUSNTMC計測器の場合
USB0::0x0B3E::0x100E::00000001::INSTR
LAN TCPIP[board]::LAN divice name[::inst0][::INSTR]
例:IPアドレス(LAN device name)が169.254.7.8の計測器の場合
TCPIP::169.254.7.8::INSTR
LAN device nameはホスト名でも設定できます。

VISAでは、I/Oリソースにエイリアスを使用できます。

I/Oリソースにエイリアスを使用すると、アプリケーション内に直接エイリアス名をハードコーディングしても実行時に適切なI/Oリソース名に簡単に変換できます。

例:I/Oリソースにエイリアス(MYDEV1)を使用した場合

Set msg = rm.Open("MYDEV1", NO_LOCK, 0, "")

エイリアスを使用した場合には、実際のI/Oリソースは外部コンフィグレーション・テーブル等で指定します。下図はUSBを使用する場合(KI-VISAの例)です。

KI-VISA以外のVISAを使用している場合には、ご使用のVISAマニュアルを参照してください。

機器の制御

次に、Read、Writeなどを使用して機器を制御します。

例:

msg.WriteString ("VOLT 13.5")      '電圧値を13.5 Vに設定

msg.WriteString ("CURR 150.0")    '電流値を150.0 Aに設定 

msg.WriteString ("OUTP 1")              '出力オン

VISAのクローズ

最後にVISAをクローズします。

VISAのオープン、クローズは一連の処理の中で1回実行すれば大丈夫です。

msg.Close

サンプルプログラム

Imports Ivi.Visa.Interop

 

Public Class Form1

 

   Dim rm As ResourceManager

   Dim msg As IMessage

 

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

      rm = CreateObject("VISA.GlobalRM")

      msg = rm.Open("GPIB0::1::INSTR", AccessMode.NO_LOCK, 0, "")     'GPIBの書き方例

      'msg = rm.Open("MYDEV1", AccessMode.NO_LOCK, 0, "")  'VISAエイリアスを使用した例

      'msg = rm.Open("USB0::0x0B3E::0x100E::00000001::INSTR", AccessMode.NO_LOCK, 0, "")  'USBを使用した例

      'msg = rm.Open("TCPIP::169.254.178.141::INSTR", AccessMode.NO_LOCK, 0, "")  'LANを使用した例

   End Sub

 

   'IDの問い合わせ

   Private Sub cmdIdn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdIdn.Click

      msg.WriteString("*IDN?")

      TextBox1.Text = msg.ReadString(256)

   End Sub

 

   '電圧設定、電流設定

   Private Sub cmdCurr_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdCurr.Click

      msg.WriteString("OUTP 0")

      msg.WriteString("VOLT 13.5")

      msg.WriteString("CURR 150.0")

      msg.WriteString("OUTP 1")

   End Sub

 

   '電圧測定値の問い合わせ

   Private Sub cmdMeas_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdMeas.Click

      msg.WriteString("MEAS:VOLT?")

      TextBox1.Text = msg.ReadString(256)

   End Sub

 

   Private Sub Form1_Disposed(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Disposed

      msg.Close()

   End Sub

 

END CLASS

>top