Instrument Control Toolboxを追加しています。Matlabを使うのは初めてです。
DMMとの接続
34461Aは、標準でUSBとLANポートをもっています。LANを使うとソケットで通信できますし、LANとUSBはvisaのライブラリを使えばSCPI言語でプログラミングできます。pythonの事例はこちらで書きました。
今回、DMMとWindows10 PCとはUSBケーブルで接続しました。
アドレスを調べる
無償ツールのKeysightのIOライブラリ・スイート(Keysight Connection Expert 2020)を使ってアドレスを見つけます。
VISA AddressのUSB0::...
をコピーします。
サンプルをベースに修正
アドレスを修正します。obj1 = visa('KEYSIGHT', 'USB0::0x2A8D::0x1301::MY53216054::0::INSTR');
% 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.
fopen(obj1);
本体部分です。50回のデータ読み取りです。実験用電源TR6142で1.0000Vを発生させています。
最初にリセット*RST;*CLS
します。
直流モードに設定します。:CONF:VOLT:DC:RANG AUTO
ただ、リセット後はこのモードになっているので不要ですが。
SCPIのread?で計測データを読み取ります。返ってくるのはASCIIで、+1.000000E+00のようなフォーマットですから、数値に変換して配列dataに追加します。
for文で50回繰り返します。
% Instrument Configuration and Control
% Communicating with instrument object, obj1.
fprintf(obj1, '*RST;*CLS');
% Communicating with instrument object, obj1.
fprintf(obj1, ':CONF:VOLT:DC:RANG AUTO');
data=[]
counter = 50
for i = 1:counter
data(i) = str2num(query(obj1, 'read?'));
end
x=[1:counter];
plot(x, data,'-o')
title('34461A DC')
xlabel('x')
ylabel('Volt [V]')
終了処理は変更なしです。
% Disconnect and Clean Up
% The following code has been automatically generated to ensure that any
% object manipulated in TMTOOL has been properly disposed when executed
% as part of a function or script.
% Disconnect all objects.
fclose(obj1);
% Clean up all objects.
delete(obj1);
clear obj1;
実行結果です。