チュートリアル > Excel VBA

Excel VBA

VISAを使用してGPIB、RS232C、USB経由でPIA4800シリーズと通信します。

まず最初に、「Visual Basic」と「コントロールツールボックス」のツールバーを表示させます。

[表示] > [ツールバー] > [Visual basic]

[表示] > [ツールバー] > [コントロールツールボックス]を選択します。

Visual Basic Editorの起動

ツールバーを表示させたら、Visual Basic Editorを起動します。

[ツール] > [マクロ] > [Visual Basic Editor]を選択します。

通信用ドライバの設定

Visual Basic Editorを起動したら、通信用ドライバ(VISAライブラリ)の設定をします。

[ツール] > [参照設定] を選択してVISA COM3.0 Type Libraryを参照します。

TOP

プログラミングする

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

デザインモードにする

コントロールツールボックスのボタンを選択して、Excelのシート上をクリックします。

 

シート上に配置したボタンをダブルクリックします。

 

ここにプログラムを書きます。

 

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

TOP

VISAのオープン

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

 

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

Set rm = CreateObject("VISA.GlobalRM")

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

 

"USB::0x0B3E::0x1014::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)4116、シリアルナンバー”00000001”を持つUSNTMC計測器の場合

USB0::0x0B3E::0x1014::00000001::INSTR

 

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

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

 

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

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

 

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

USBを使用する場合(KI-VISAの例)

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

機器の制御

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

 

例:

msg.WriteString ("NODE 5")         'ノードアドレス5を指定
msg.WriteString ("CH 1")             'チャンネル1を指定 
msg.WriteString ("VSET 10.0")     '電圧値を10.0 Vに設定
msg.WriteString ("ISET 1.0")        '電流値を1.0 Aに設定 
msg.WriteString ("OUT 1")           '出力オン

VISAのクローズ

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

 

msg.Close

TOP

PIA4850で制御するサンプルプログラム

Option Explicit

 

Dim rm As VisaComLib.ResourceManager

Dim msg As VisaComLib.IMessage

 

Private Sub CommandButton1_Click()

 

   Set rm = CreateObject("VISA.GlobalRM")                 'VISAのオープン

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

   'ノードアドレスは5に設定されているものとします。

 

   msg.WriteString ("TRM 2")                              'ターミネータをEOIに指定

 

   msg.WriteString ("NODE 5")                             'ノードアドレスを指定

   msg.WriteString ("CH 1")                               'CH1を選択

   msg.WriteString ("VSET 10")                            '10Vを設定

   msg.WriteString ("ISET 1.0")                           '1.0Aを設定

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

   msg.WriteString ("VOUT?")                              '出力電圧の問い合わせ

 

   Cells(1, 1) = msg.ReadString(20)                     

 

   msg.Close                                              'VISAのクローズ

 

End Sub

TOP