В этом примере показано, как инициализировать драйвер, прочитать несколько свойств драйвера, идентифицировать установленные платы, установить выходное напряжение канала DAC и измерить напряжение постоянного тока с помощью Agilent Technologies 34970A модуля сбора/переключения данных и вывести результат в MATLAB ®.
Этот пример требует установки на компьютере следующего:
Библиотеки Keysight IO версии 17.1 или новее
Keysight 34970A, 34972A драйвер IVI модуля сбора данных 1.0.3.0 или более новый
Здесь перечисляются драйверы IVI, установленные на компьютере.
IviInfo = instrhwinfo('ivi');
IviInfo.Modules
ans = Columns 1 through 6 'Ag33220' 'Ag3352x' 'Ag34410' 'Ag34970' 'Ag532xx' 'AgAC6800' Columns 7 through 11 'AgE36xx' 'AgInfiniiVision' 'AgMD1' 'AgRfSigGen' 'AgXSAn' Columns 12 through 13 'KtRFPowerMeter' 'rsspecan'
% Create the MATLAB instrument driver makemid('Ag34970','Ag34970.mdd') % Use icdevice with the MATLAB instrument driver name and instrument's % resource name to create a device object. In this example the instrument % is connected by GPIB at board index 0 and primary address 1. myInstrument = icdevice('Ag34970.mdd', 'GPIB0::01::INSTR','optionstring','simulate=true'); % Connect driver instance connect(myInstrument);
Запросите информацию о драйвере и приборе
Utility = get(myInstrument, 'Utility'); DriverIdentification = get(myInstrument,'Inherentiviattributesdriveridentification'); InstrumentIdentification = get(myInstrument,'Inherentiviattributesinstrumentidentification'); Revision = invoke(Utility, 'revisionquery'); Vendor = get(DriverIdentification, 'Specific_Driver_Vendor'); Description = get(DriverIdentification, 'Specific_Driver_Description'); InstrumentModel = get(InstrumentIdentification, 'Instrument_Model'); FirmwareRev = get(InstrumentIdentification, 'Instrument_Firmware_Revision'); % Print the queried driver properties fprintf('Revision: %s\n', Revision); fprintf('Vendor: %s\n', Vendor); fprintf('Description: %s\n', Description); fprintf('InstrumentModel: %s\n', InstrumentModel); fprintf('FirmwareRev: %s\n', FirmwareRev); fprintf(' \n');
Revision: 1.4.0.0 Vendor: Agilent Technologies Description: IVI driver for the Agilent 34970 data acquisition/switch unit. [Compiled for 64-bit.] InstrumentModel: 34970A FirmwareRev: Sim1.4.0.0
System = get(myInstrument, 'System'); for iLoop = 100:100:300 CardType = invoke(System, 'systemgetcardtype', iLoop, 127); fprintf('Slot: %d CardType: %s\n', iLoop, CardType); if regexp(CardType, ',34907A,') DacSlot = iLoop; end if regexp(CardType, ',34908A,') % Single ended -- 40 channels MuxSlot = iLoop; end if regexp(CardType, ',34902A,') % 16 channel Mux MuxSlot = iLoop; end if regexp(CardType, ',34901A,') MuxSlot = iLoop; end end fprintf('\n');
Slot: 100 CardType: HEWLETT-PACKARD,34901A,0,1.1 Slot: 200 CardType: HEWLETT-PACKARD,34901A,0,1.1 Slot: 300 CardType: HEWLETT-PACKARD,34907A,0,1.1
% set DAC voltage to 2.345 V and Select channel 5 on the DAC card DacVoltage = 2.345; DacChannel = DacSlot+5; if DacSlot ~= 0 % Sets the output voltage level on the DAC channel 5 Dac = get(myInstrument, 'Dac'); invoke(Dac, 'dacsetvoltage', DacChannel,DacVoltage); % Gets the output voltage level on the DAC channel 5 DacVoltage = invoke(Dac, 'dacgetvoltage', DacChannel); fprintf('DAC channel %d set to %.3f volts\n\n', DacChannel, DacVoltage); else fprintf('34907A Multifunction Module not found\n\n'); end
DAC channel 305 set to 2.345 volts
% If there are any errors, query the driver to retrieve and display them. ErrorNum = 1; while (ErrorNum ~= 0) [ErrorNum, ErrorMsg] = invoke(Utility, 'errorquery'); fprintf('ErrorQuery: %d, %s\n', ErrorNum, ErrorMsg); end
ErrorQuery: 0, No error.
disconnect(myInstrument);
% Remove instrument objects from memory.
delete(myInstrument);
Этот пример показывает установленное и измеренное напряжение канала DAC от коммутатора с помощью драйвера IVI. Когда измеренные данные о напряжении извлекаются из прибора, MATLAB может использоваться, чтобы визуализировать и выполнить анализ данных, используя богатую библиотеку функций в Signal Processing Toolbox™ и Коммуникационные системы Toolbox™. Используя Instrument Control Toolbox™, можно автоматизировать управление инструментами, и, создать тестовые системы, которые используют MATLAB для выполнения анализа, который может быть невозможен с помощью встроенной возможности оборудования.