В этом примере показано, как инициализировать драйвер, считайте несколько свойств драйвера, идентифицируйте установленные карты, установите выходное напряжение канала DAC и использование напряжения постоянного тока меры сбор данных Agilent Technologies 34970 А / модуль переключателя и выведите результат в MATLAB®.
Этот пример требует, чтобы следующее было установлено на компьютере:
Версия 17.1 библиотек Keysight IO или более новый
Keysight 34970 А, Модуль Переключателя Сбора данных на 34972 А 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, чтобы выполнить исследования, которые не могут быть возможным использованием встроенной возможности оборудования.