電子負荷装置 PLZ-5Wシリーズ

通信インターフェースマニュアル


 

チュートリアル

Visual Basic 2013を使用する

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

プロジェクトの設定

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

[ソリューションエクスプローラー]からプロジェクトを選択 > 右クリックのメニューから[プロパティ]>[参照]>[追加]を選択し、使用するVISA COMを選択します。

例)VISA COM5.5 Type Libraryを選択する場合

 

RS232C、USB、LANで通信する

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

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

VISAのオープン

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

例:PLZ-5WでUSBを使用する場合のVISAのオープン

Dim rm As IResourceManager3 = New ResourceManager()
Dim msg As IMessage
msg = rm.Open("USB0::0x0B3E::0x1042::AB012345::INSTR", AccessMode.NO_LOCK, 0, "")

"USB0::0x0B3E::0x1042::AB012345::INSTR"がI/Oリソースです。

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

シリアル
(RS232C)
ASRL[board][::INSTR]
例:シリアルポートCOM1に接続された計測器の場合
ASRL1::INSTR
USB USB[board]::VendorID::ProductID::SerialNumber[::InterfaceNumber][::INSTR]
例:ベンダーID(VID)2878、プロダクトID(PID)4132、シリアルナンバー”00000001”を持つUSBTMC計測器の場合
USB0::0x0B3E::0x1024::00000001::INSTR
LAN*1 VXI-11 TCPIP[board]::hostname[::inst0][::INSTR]
例:IPアドレス(hostname)が169.254.7.8の計測器の場合
TCPIP::169.254.7.8::INSTR
hostnameはホスト名でも設定できます。
HiSLIP TCPIP[board]::hostname::hislip0[::INSTR]
例:IPアドレス(hostname)が169.254.7.8の計測器の場合
TCPIP::169.254.7.8::hislip0::INSTR
hostnameはホスト名でも設定できます。
SCPI-RAW TCPIP[board]::hostname::portno::SOCKET
例:IPアドレス(hostname)が169.254.7.8の計測器の場合(PLZ-5Wのportnoは常に5025)
TCPIP::169.254.7.8::5025::SOCKET
hostnameはホスト名でも設定できます。

*1: ホスト名は、有効なmDNSホスト名(.localで終わるボンジュールホスト名)か、外部DNSサーバによって管理されるDNSホスト名(FQDN、フルクオリアファイドドメインネーム)である必要があります。mDNSホスト名を利用する場合は、使用するパソコンにApple Bonjour(またはiTunes、Safariなど)がインストールされている必要があります。

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

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

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

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

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

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

機器の制御

次に、Read、Writeなどを使用して機器を制御します。コマンド文字列には改行コードが必要です。

例:

msg.WriteString("CURRent 0.3" & vbLf) '電流値を0.3Aに設定

msg.WriteString("CURRent:PULSe:FREQuency 10" & vbLf) 'スイッチング周波数を10Hzに設定

msg.WriteString("INPut ON" & vbLf) 'ロードオンに設定

VISAのクローズ

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

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

msg.Close

サンプルプログラム

    
Imports Ivi.Visa.Interop

Public Class Form1
  Dim rm As IResourceManager3 = New ResourceManager()
  Dim msg As IMessage

  'VISAリソースのオープン
  Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    msg = rm.Open("ASRL1::INSTR", AccessMode.NO_LOCK, 0, "")                           'シリアルポート・COM1を使用する場合
    'msg = rm.Open("USB0::0x0B3E::0x1042::AB012345::INSTR", AccessMode.NO_LOCK, 0, "") 'USBを使用する場合
    'msg = rm.Open("TCPIP0::192.168.1.23::inst0::INSTR", AccessMode.NO_LOCK, 0, "")    'LAN(VXI-11)を使用する場合
    'msg = rm.Open("MYDEV1", AccessMode.NO_LOCK, 0, "")                                'VISAエイリアスを使用する場合
    msg.TerminationCharacterEnabled = True

   'シリアルポートを使用する場合は、下記のコードでパラメーターを設定します。
    Dim seri As ISerial = msg
    seri.BaudRate = 19200                               'ボーレートを19200に設定
    seri.DataBits = 8                                   'データビットを8に設定
    seri.StopBits = SerialStopBits.ASRL_STOP_ONE        'ストップビットを1に設定
    seri.Parity = SerialParity.ASRL_PAR_NONE            'パリティなしに設定
    seri.FlowControl = SerialFlowControl.ASRL_FLOW_NONE 'フロー制御をなしに設定
  End Sub

  'IDの問い合わせ
  Private Sub CommandIdn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CommandIdn.Click
    msg.WriteString("*IDN?" & vbLf)
    TextBox1.Text = msg.ReadString(256)
    msg.WriteString("*RST" & vbLf)
  End Sub

   '電流値の設定、スイッチング機能の設定
  Private Sub CommandCurr_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CommandCurr.Click
    msg.WriteString("*RST" & vbLf)                       '「SOURCE」「MEASURE」の設定値をリセット
    msg.WriteString("FUNCtion CC" & vbLf)                '動作モードをCCモードに設定
    msg.WriteString("CURRent:RANGe LOW" & vbLf)          '電流レンジをLOWに設定
    msg.WriteString("CURRent 0.3" & vbLf)                '電流値を0.3Aに設定
    msg.WriteString("CURRent:SLEWrate 0.1" & vbLf)       'スルーレートをC0.1A/μsに設定
    msg.WriteString("CURRent:PULSe:LEVel 0.15" & vbLf)   'スイッチングレベルを0.15Aに設定
    msg.WriteString("CURRent:PULSe:FREQuency 10" & vbLf) 'スイッチング周波数を10Hzに設定
    msg.WriteString("CURRent:PULSe:DCYCle 10" & vbLf)    'デューティー比を10%に設定
    msg.WriteString("POWer:PROTection  30" & vbLf)       'OPPを30Wに設定
    msg.WriteString("POWer:PROTection:STATe ON" & vbLf)  'OPP作動時にロードオフするように設定
    msg.WriteString("INITiate:PULSe" & vbLf)             'スイッチング機能をONに設定
    msg.WriteString("INPut ON" & vbLf)                   'ロードオンに設定
  End Sub
  
  'プログラムの編集
  Private Sub CommandProg_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CommandProg.Click
    msg.WriteString("PROG """"" & vbLf)                   'プログラムの選択を解除
    msg.WriteString("PROG:CRE ""/Program1""" & vbLf)      '「Program1」という名前のプログラムを作成
    msg.WriteString("PROG ""/Program1""" & vbLf)          '「Program1」のプログラムを選択
    msg.WriteString("PROG:LOOP 2" & vbLf)                 '「Program1」のループ回数を2回に設定
    msg.WriteString("PROG:STEPS:COUN 4" & vbLf)           '「Program1」のステップ数を4つに設定
    msg.WriteString("PROG:STEP1:LEV 8" & vbLf)            '「Program1」のステップ1の電流値を8Aに設定
    msg.WriteString("PROG:STEP2:LEV 4" & vbLf)            '「Program1」のステップ2の電流値を4Aに設定
    msg.WriteString("PROG:STEP3:LEV 0" & vbLf)            '「Program1」のステップ3の電流値を0Aに設定 
    msg.WriteString("PROG:STEP4:LEV 3" & vbLf)            '「Program1」のステップ4の電流値を3Aに設定
    msg.WriteString("PROG:STEP1:DWEL 10" & vbLf)          '「Program1」のステップ1の実行時間を10sに設定
    msg.WriteString("PROG:STEP2:DWEL 12" & vbLf)          '「Program1」のステップ2の実行時間を12sに設定
    msg.WriteString("PROG:STEP3:DWEL 7" & vbLf)           '「Program1」のステップ3の実行時間を7sに設定
    msg.WriteString("PROG:STEP4:DWEL 15" & vbLf)          '「Program1」のステップ4の実行時間を15sに設定
    msg.WriteString("PROG:STEP1:INP ON" & vbLf)           '「Program1」のステップ1をロードオンに設定
    msg.WriteString("PROG:STEP2:INP ON" & vbLf)           '「Program1」のステップ2をロードオンに設定
    msg.WriteString("PROG:STEP3:INP OFF" & vbLf)          '「Program1」のステップ3をロードオフに設定
    msg.WriteString("PROG:STEP4:INP ON" & vbLf)           '「Program1」のステップ4をロードオンに設定
    msg.WriteString("PROG:STEP1:TRAN RAMP" & vbLf)        '「Program1」のステップ1の遷移方法をRampに設定
    msg.WriteString("PROG:STEP2:TRAN IMM" & vbLf)         '「Program1」のステップ2の遷移方法をImmediateに設定
    msg.WriteString("PROG:STEP4:TRAN IMM" & vbLf)         '「Program1」のステップ4の遷移方法をImmediateに設定
    msg.WriteString("PROG:STEP1:TRIG:GEN NONE" & vbLf)    '「Program1」のステップ1の信号出力を無しに設定
    msg.WriteString("PROG:STEP2:TRIG:GEN NONE" & vbLf)    '「Program1」のステップ2の信号出力を無しに設定
    msg.WriteString("PROG:STEP3:TRIG:GEN NONE" & vbLf)    '「Program1」のステップ3の信号出力を無しに設定
    msg.WriteString("PROG:STEP4:TRIG:GEN TRIGOUT" & vbLf) '「Program1」のステップ4の信号出力をTRIGOUTに設定
    msg.WriteString("PROG:SAVE" & vbLf)                   '「Program1」のプログラムを保存する
    msg.WriteString("INIT:TRAN:PROG" & vbLf)              '「Program1」のプログラムを実行する
  End Sub

  '電流測定値の問い合わせ
  Private Sub CommandMeas_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CommandMeas.Click
    msg.WriteString("MEAS:CURR?" & vbLf)   '測定コマンドの送信
    TextBox2.Text = msg.ReadString(256)    '測定データの読み取り
  End Sub

  'VISAリソースのクローズ
  Private Sub Form1_Disposed(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Disposed
    msg.Close()
  End Sub

    

関連情報

当社では、KIKUSUI版のI/Oライブラリ(KI-VISA)を公開しています。KI-VISAを使用する場合、詳しくはKI-VISAライブラリ・プログラミング・ガイドブックを参照してください。KI-VISAとガイドブックは、当社ウェブサイトのダウンロードサービス(http://www.kikusui.co.jp/download/)から入手できます。

>top

セットアップ

コマンドの概要

コマンド(機能別)

コマンド(ABC別)

コマンド(サブシステム別)

レジスタ

付録

チュートリアル

Electronic Load  PLZ-5W series電子負荷装置 PLZ-5Wシリーズ
通信インターフェースマニュアル