Pythonを使用してファンクションジェネレータSDG1032Xを制御する方法をご紹介します。
まず、計測器,実量器と通信するためにNI-VISAをインストールします。
www.ni.com
VISAはVirtual Instrument Software Architecture の略称で計測制御用通信ライブラリ仕様のことを指します。
次にpython側では
pip install pyvisa
と入力してpyvisaライブラリを入れてください。
次にファンクションジェネレータSDG1032XとPCをUSBで接続してください。
接続した後にNI-VISA Interactive Controlを起動してください。
起動すると下図の画面が表示されます。
青矢印のところに接続したファンクションジェネレータが表示されますので選択し、緑矢印のところに表示される文字列をコピーしておいてください(python内にて使用します)
プログラム内容は下記になります。
import pyvisa pvl = pyvisa.ResourceManager() SDG = pvl.open_resource("NI-VISA Interactive Controlに記載された文字列") SDG.write('*IDN?') out = SDG.read() #測定器、実量器の情報 print(out) #出力インピーダンス設定 SDG.write('C1:OUTP LOAD,HZ') #周波数設定 SDG.write('C1:BSWV FRQ,1000') #出力電圧設定 SDG.write('C1:BSWV AMP,1') #出力設定 SDG.write('C1:OUTP ON')
プログラムを実行すると下のファンクションジェネレータ画像のように1kHz 1Vp-pでch1から出力されます。
ここからプログラムの内容について解説します。
pvl = pyvisa.ResourceManager()で接続されている機器名を取得し、
SDG = pvl.open_resource("NI-VISA Interactive Controlに記載された文字列")で操作する機器を指定します。
SDG.write('*IDN?')は「*IDN?」というコマンドをファンクションジェネレータへ送信しています。
IDN?コマンドはファンクションジェネレータのIDを返答するようにというコマンドになります。
out = SDG.read()で返答されたIDを受け取りprint(out) で表示しています。
SDG.write('C1:OUTP LOAD,HZ')はファンクションジェネレータの出力インピーダンスを0Ωに設定しています。SDGwrite('C1:OUTP LOAD,50')と記載すると出力インピーダンスが50Ωに設定されます。
SDG.write('C1:BSWV FRQ,1000')は出力周波数を1000Hzに設定しています。1000の部分の数値を変えることで周波数を自由に設定できます。
SDG.write('C1:BSWV AMP,1')は出力電圧を1Vp-pに設定しています。
SDGwrite('C1:OUTP ON')でOUTPUTされます。SDG.write('C1:OUTP OFF')と記述すると出力が切断されます。
コマンド詳細については下記のSIGLENTのページの「SDG Programming Guide」に記載されています。
www.siglent.eu
「SDG Programming Guide」のダウンロードはページの下の方にあります。