Используя модуль переключателя NI и DMM NI, чтобы выполнить измерения сопротивления

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

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

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

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

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

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

Требования

Чтобы запустить этот пример, следующие пакеты аппаратной поддержки должны быть установлены:

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

Чтобы соединиться с модулем переключателя, используйте предварительно созданный инструментальный драйвер MATLAB® 'niswitch.mdd', как установлено с пакетом поддержки ПЕРЕКЛЮЧАТЕЛЯ NI, и как использование имени ресурса имя устройства от NI MAX (такой как 'PXI1Slot3'). MATLAB будет использовать драйвер ПЕРЕКЛЮЧАТЕЛЯ NI, чтобы связаться с инструментом. defaut модули переключателя 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 и драйверы NI-DMM используют предопределенные константы в качестве аргументов функции для конфигурирования определенных настроек и операций. Их значения перечислены в соответствующих справочных файлах драйвера. Эти константы заданы в заголовочных файлах C, включенных с драйверами NI-DMM и ПЕРЕКЛЮЧАТЕЛЕМ NI:

  • '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');

Операция сканирования управляемого переключателя программного обеспечения

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

Чтобы сконфигурировать операцию сканирования, задайте список связей как строка списка сканов. Здесь, переключатель циклически повторится посредством связей между измерительным прибором (DMM) в строке матрицы 'r0' и устройствами под тестом в столбцах матрицы 'c0' к 'c4'. Для получения дополнительной информации в списке сканов синтаксис обращаются к документации драйвера ПЕРЕКЛЮЧАТЕЛЯ NI.

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);