exponenta event banner

Использование модуля NI-коммутатора и NI DMM для выполнения измерений сопротивления

Коммутационный модуль состоит из набора управляемых реле/переключателей, которые могут быть расположены и адресованы для обеспечения различных конфигураций соединения. При использовании с соответствующей клеммной колодкой модуль NI-коммутатора может быть сконфигурирован для использования определенной топологии коммутатора, такой как мультиплексор или матричная топология с однопроводными или многопроводными режимами переключения. Одним из распространенных применений является объединение одного или более измерительных приборов с коммутационным модулем для выполнения автоматических измерений на ряде устройств или контрольных точек схемы. В этом примере для измерения сопротивления 5 резистивных устройств в двухпроводном режиме измерения сопротивления используется модуль переключения NI вместе с цифровым мультиметром NI (DMM).

Настройка оборудования

Примечание.Модуль коммутатора и модуль DMM, упомянутые ниже, сконфигурированы как моделируемые устройства в NI-MAX для публикации этого примера.

  • Модуль NI 2530 коммутатора, используемый с приставкой матричной клеммной колодки и сконфигурированный в NI MAX для использования двухпроводной матричной топологии 4x16.

  • Цифровой мультиметр NI 4065 (DMM), подключенный к строке матрицы коммутатора «r0».

  • Пять резисторов, подключенных к столбцам матрицы «c0» к «c4».

Требования

Для запуска этого примера необходимо установить следующие пакеты поддержки оборудования:

Инициализация подключения к модулю коммутатора NI

Для подключения к модулю коммутатора используйте предварительно созданный драйвер прибора MATLAB ® 'niswitch.mdd', установленный с пакетом поддержки NI-SWITCH, а в качестве имени ресурса используйте имя устройства из NI MAX (например 'PXI1Slot3'). MATLAB использует драйвер NI-SWITCH для связи с прибором. По умолчанию коммутационные модули NI используют конфигурацию топологии, указанную в NI MAX (утилита поставщика).

mySwitch = icdevice('niswitch.mdd', 'PXI1Slot3');
connect(mySwitch);

Инициализация подключения к цифровому мультиметру NI

Для подключения к инструменту DMM используйте предварительно созданный драйвер прибора MATLAB 'nidmm.mdd', установленный с пакетом поддержки NI-DMM. Для имени ресурса используйте имя устройства из NI MAX (например, Dev1). MATLAB использует драйвер NI-DMM для связи с прибором.

myDMM = icdevice('nidmm.mdd', 'Dev1');
connect(myDMM);

Определение констант, используемых функциями драйвера

Драйверы NI-Switch и NI-DMM используют предопределенные константы в качестве аргументов функции для настройки конкретных настроек и операций. Их значения перечислены в соответствующих файлах справки драйвера. Эти константы определяются в файлах заголовков C, входящих в состав драйверов NI-SWITCH и NI-DMM:

  • 'niswitch.h' и 'IviSwtch.h' в 'C :\Program Files\IVI Foundation\IVI\Include'

  • 'nidmm.h' и 'IviDmm.h' в 'C :\Program Files\IVI Foundation\IVI\Include'

const.NISWITCH_VAL_BREAK_BEFORE_MAKE = 1;
const.NISWITCH_VAL_SOFTWARE_TRIG = 3;
const.NISWITCH_VAL_NONE = 0;
const.NIDMM_VAL_2_WIRE_RES = 5;
const.NIDMM_VAL_SOFTWARE_TRIG = 3;
const.NIDMM_VAL_AUTO_RANGE_ON = -1;
const.NIDMM_VAL_TIME_LIMIT_AUTO = -1;

Сброс переключателя

Сбросить переключатель в состояние подключения по умолчанию.

invoke(mySwitch.Utility, 'Reset');

Настройка цифрового мультиметра

Сконфигурируйте тип измерения DMM как двухпроводное измерение сопротивления. Настройте DMM для выполнения операции автоматического диапазона перед каждым измерением и укажите разрешение измерения.

invoke(myDMM.ConfigurationMeasurementOptions, 'ConfigurePowerLineFrequency', 60);
MeasurementFunction = const.NIDMM_VAL_2_WIRE_RES;
Range = const.NIDMM_VAL_AUTO_RANGE_ON;
ResolutionDigits = 5.5;
invoke(myDMM.Configuration, 'ConfigureMeasurementDigits', MeasurementFunction, Range, ResolutionDigits);

Подключение коммутатора и выполнение одного измерения сопротивления

Соедините тракт между тестируемым устройством (DUT) в столбце матрицы коммутатора «c0» и измерительным прибором, в данном случае DMM в строке «r0».

invoke(mySwitch.Route, 'Connect', 'r0', 'c0');
MaximumTimeMs = 5000;
invoke(mySwitch.Route, 'WaitForDebounce', MaximumTimeMs);

После установки переключателя выполните измерение.

MaximumTime = const.NIDMM_VAL_TIME_LIMIT_AUTO;
reading = invoke(myDMM.Acquisition, 'Read', MaximumTime);

% Check if DMM reading was over-range
IsOverRange = invoke(myDMM.Acquisition, 'IsOverRange', reading);
disp(reading);
disp(IsOverRange);
   5.0002e+07

     0

Отключите путь между терминалами «» r0 «» и «» c0 «».

invoke(mySwitch.Route, 'disconnect', 'r0', 'c0');

Программно-управляемая операция сканирования коммутатора

Коммутационный модуль может быть сконфигурирован для переключения между различными путями соединения путем сканирования, т.е. последовательного переключения и продвижения через список соединений, определенный в списке сканирования. Переключение соединения во время сканирования может быть синхронизировано с измерительным прибором посредством аппаратного запуска (аппаратно-синхронизированное квитирование) или может быть программно-синхронизировано с помощью команды программного запуска.

Чтобы настроить операцию сканирования, укажите список подключений в виде строки списка сканирования. Здесь переключатель будет циклически подключаться между измерительным прибором (DMM) в строке матрицы «r0» и тестируемыми устройствами в столбцах матрицы «c0» - «c4». Дополнительные сведения о синтаксисе списка сканирования см. в документации драйвера NI-SWITCH.

NrConnections = 5;
scanList = 'c0:4->r0;';
scanMode = const.NISWITCH_VAL_BREAK_BEFORE_MAKE;
invoke(mySwitch.Scan, 'configureScanList', scanList, scanMode);

% Set scan trigger input to software -- switching to the next connection in
% the scan list will be done as a result of a SendSoftwareTrigger command.
scanDelay = 0;
triggerInput = const.NISWITCH_VAL_SOFTWARE_TRIG;
scanAdvancedOutput = const.NISWITCH_VAL_NONE;
invoke(mySwitch.Scan, 'ConfigureScanTrigger', scanDelay, triggerInput, scanAdvancedOutput);

% Configure switch to cycle only once through the scan list by disabling
% the continuous scan mode.
invoke(mySwitch.Scan, 'SetContinuousScan', 0);

Инициируйте операцию сканирования коммутатора с помощью программного запуска.

invoke(mySwitch.Scan, 'InitiateScan');

for ii=1:NrConnections
    % Perform DMM measurement
    readings(ii) = invoke(myDMM.Acquisition, 'Read', const.NIDMM_VAL_TIME_LIMIT_AUTO);
    % Check if DMM reading is over-range
    IsOverRange = invoke(myDMM.Acquisition, 'IsOverRange', readings(ii));
    if IsOverRange
        fprintf('Measurement %d is over range.\n', ii);
    end
    % Send trigger command to switch to advance to next connection
    invoke(mySwitch.Scan, 'SendSoftwareTrigger');
end

Отображение результатов измерений.

figure;
bar(readings);
ylabel('Resistance (ohm)');
xlabel('Device #');
set(gca, 'XTick', [1:NrConnections]);

Отсоединение от модуля коммутатора и прибора DMM

disconnect(mySwitch);
delete(mySwitch);

disconnect(myDMM);
delete(myDMM);