前回は、測定と読み取りを複数回繰り返しました。
接続は前回と同じ
複数回の測定をDMM内部でまとめて行って、一度に読み取ります。デフォルトのバッファでは32個ほどが読み取れました。入力バッファを増やしましたが、最大値は不明です。obj1.InputBufferSize = 100000;
%Instrument Connection
% Find a VISA-USB object.
obj1 = instrfind('Type', 'visa-usb', 'RsrcName', 'USB0::0x2A8D::0x1301::MY53216054::0::INSTR', 'Tag', '');
% Create the VISA-USB object if it does not exist
% otherwise use the object that was found.
if isempty(obj1)
obj1 = visa('KEYSIGHT', 'USB0::0x2A8D::0x1301::MY53216054::0::INSTR');
else
fclose(obj1);
obj1 = obj1(1);
end
% Connect to instrument object, obj1.
obj1.InputBufferSize = 100000;
fopen(obj1);
本体です。(参考文献;Keysight Truevoltシ リ ーズ 操作およ び サービ ス ・ ガイ ド)
CONF:VOLT:DC:RANG 1
直流電圧、1Vレンジ
VOLT:IMP:AUTO OFF
DC電圧測定の入力インピーダンスが10MΩ(低くなる)、ONのとき、10V以下のレンジでは10GΩになる。
SENS:VOLT:DC:ZERO:AUTO OFF
DC電圧測定およびDC電圧比測定のオートゼロ・モードを無効に
VOLT:NPLC 0.02
積分時間が長いと、変な電圧でサンプリングをしてしまう。
TRIG:SOUR IMM
測定器を「トリガ待ち」状態にすると、トリガが直ちに実行される。
TRIG:SLOP POS
正のスロープ(立ち上がりエッジ)で外部トリガを使用して測定を行う。
TRIG:COUN 1
トリガ・カウント を1に。測定回数は、この値×SAMP:COUNの値
TRIG:DEL:AUTO OFF
自動トリガ遅延を無効。DCだから?
TRIG:DEL 0
自動トリガ遅延なし=各測定間の遅延は0秒
SAMP:COUN n
測定回数
INIT
ここまでの設定を実行に移す
FETCh?
は、測定の完了を待機し、すべての使用可能な測定を測定器の出力バッファにコピーする。 読み値はメモリに残る。
dは、'-5.12355133E-01,+9.25219338E-01,...' の文字列です。str2num()は、区切り記号、ここではカンマごとに数値に変換し、1次元の配列dataになります。
% Instrument Configuration and Control
% Communicating with instrument object, obj1.
fprintf(obj1, '*RST;*CLS');
% Communicating with instrument object, obj1.
fprintf(obj1, ':CONF:VOLT:DC:RANG 1');
fprintf(obj1, ':VOLT:IMP:AUTO OFF');
fprintf(obj1, ':SENS:VOLT:DC:ZERO:AUTO OFF');
fprintf(obj1, ':VOLT:NPLC 0.02');
fprintf(obj1, ':TRIG:SOUR IMM');
fprintf(obj1, ':TRIG:SLOP POS');
fprintf(obj1, ':TRIG:COUN 1');
fprintf(obj1, ':TRIG:DEL:AUTO OFF');
fprintf(obj1, ':TRIG:DEL 0');
data=[];
counter = 100;
message = ":SAMP:COUN " + counter;
fprintf(obj1, message);
fprintf(obj1, 'INIT');
d = query(obj1, 'FETCH?');
data = str2num(d);
x=[1:counter];
plot(x, data,'-o')
title('34461A DC')
xlabel('x')
ylabel('Volt [V]')
前回と同様にDisconnect and Clean Upは変更なしです。