主要内容

使用NI交换模块和NI DMM进行电阻测量

开关模块由一系列可控继电器/开关组成,这些继电器/开关可进行布置和寻址,以提供各种连接配置。当与适当的接线板一起使用时,NI开关模块可配置为使用特定的开关拓扑,例如具有单线或多线开关模式的多路复用器或矩阵拓扑。One常见应用是将一个或多个测量仪器与开关模块组合,以对多个设备或电路测试点执行自动测量。此示例使用镍开关模块和镍数字万用表(DMM)在双线电阻测量模式下测量5个电阻设备的电阻。

硬件设置

注意:为了发布本示例,下面提到的交换模块和DMM被配置为NI-MAX中的模拟设备。

  • NI 2530交换模块,与矩阵端子排附件一起使用,在NI MAX中配置为2线4x16矩阵拓扑。

  • ni4065数字万用表(DMM)连接到开关矩阵行'r0'。

  • 连接至开关矩阵列“c0”至“c4”的五个电阻器。

需求

要运行此示例,需要安装以下硬件支持包:万博1manbetx

初始化与NI开关模块的连接

要连接到交换机模块,请使用与NI-switch支持包一起安装的预构建MATLAB®仪器驱动程序“niswitch.mdd”,并使用NI MAX中的设备名称(如“PXI1Slot3”)作为资源名称。MATLAB将使用NI开关驱动器与仪器进行通信。通过万博1manbetxdefaut,NI开关模块使用NI MAX(供应商提供的实用程序)中指定的拓扑配置。

mySwitch = icdevice (“niswitch.mdd”,“PXI1Slot3”);连接(mySwitch);

初始化与NI数字万用表的连接

要连接到DMM仪器,使用预先构建的MATLAB仪器驱动程序的nidmm。与NI-DMM支持包一起安装。万博1manbetx对于资源名,使用NI MAX中的设备名(例如'Dev1')。MATLAB将使用NI-DMM驱动程序与仪器进行通信。

myDMM = icdevice (“nidmm.mdd”,“Dev1”); 连接(myDMM);

定义驱动程序函数使用的常量

NI开关和NI-DMM驱动程序使用预定义常量作为配置特定设置和操作的函数参数。它们的值列在相应的驱动程序帮助文件中。这些常量在NI-SWITCH和NI-DMM驱动程序附带的C头文件中定义:

  • “C:\Program Files\IVI Foundation\IVI\Include”中的“niswitch.h”和“ivisWatch.h”

  • 'C: Program Files\IVI Foundation\IVI\Include'中的'nidmm.h'和'IviDmm.h'

const.NISWITCH\u VAL\u BREAK\u BEFORE\u MAKE=1;const.NISWITCH\u VAL\u SOFTWARE\u TRIG=3;const.NISWITCH\u VAL\u NONE=0;const.NIDMM\u VAL\u WIRE\u RES=5;const.NIDMM\u VAL\u SOFTWARE\u TRIG=3;const.NIDMM\u VAL\u AUTO\u RANGE\u ON=-1;const.NIDMM\u VAL\u TIME LIMIT\u AUTO=-1;

复位开关

重置开关到默认连接状态。

调用(mySwitch。实用工具,“重置”);

配置数字万用表

配置DMM测量类型为两线电阻测量。配置DMM,在每次测量前执行自动量程操作,并指定测量分辨率。

调用(myDMM。ConfigurationMeasurementOptions,“配置电源线频率”,60);MeasurementFunction=const.NIDMM\u VAL\u 2\u WIRE\u RES;Range=const.NIDMM\u VAL\u AUTO\u Range\u ON;ResolutionDigits=5.5;调用(myDMM.Configuration,“配置度量指标”,测量功能,范围,分辨率(数字);

进行开关连接并进行单个电阻测量

在开关矩阵列'c0'处的被测设备(DUT)和测量仪器之间连接一条路径,在本例中是在行'r0'处的DMM。

调用(mySwitch。路线,“连接”,“r0”,‘c0’); 最大时间=5000;调用(mySwitch.Route,“WaitForDebounce”, MaximumTimeMs);

开关设置好后,进行测量。

MaximumTime = const.NIDMM_VAL_TIME_LIMIT_AUTO;阅读=调用(myDMM。收购,“读”, MaximumTime);检查DMM读数是否超量程(myDMM IsOverRange =调用。收购,“IsOverRange”、阅读);disp(阅读);disp (IsOverRange);
5.0002e+07 0

断开终端'r0'和'c0'之间的路径。

调用(mySwitch。路线,“断开连接”,“r0”,‘c0’);

软件控制的交换机扫描操作

交换模块可以配置为通过扫描在不同的连接路径之间进行切换,即按照扫描列表中定义的连接列表进行顺序切换和推进。扫描期间的连接切换可以通过硬件触发(硬件定时握手)与测量仪器同步,也可以通过软件触发命令进行软件定时。

要配置扫描操作,请将连接列表指定为扫描列表字符串。此处,开关将循环通过矩阵行“r0”处的测量仪器(DMM)和矩阵列“c0”至“c4”处的被测设备之间的连接。有关扫描列表语法的详细信息,请参阅NI-switch驱动程序文档。

NrConnections=5;扫描列表=“c0:4 - > r0;”;scanMode=const.NISWITCH\u VAL\u BREAK\u BEFORE\u MAKE;invoke(mySwitch.Scan,“配置扫描列表”、scanList scanMode);设置扫描触发输入到软件-切换到下一个连接%扫描列表将作为SendSoftwareTrigger命令的结果完成。scanDelay = 0;triggerInput = const.NISWITCH_VAL_SOFTWARE_TRIG;scanAdvancedOutput = const.NISWITCH_VAL_NONE;调用(mySwitch.Scan,“配置扫描触发器”,scanDelay,triggerInput,scanAdvancedOutput);%通过禁用,将开关配置为仅在扫描列表中循环一次%连续扫描模式。调用(mySwitch.Scan,“设置连续扫描”, 0);

使用软件触发启动开关扫描操作。

调用(mySwitch.Scan,“启动扫描”);对于2 = 1: NrConnections%执行DMM测量读数(ii)=调用(myDMM.Acquisition,“读”, const.NIDMM_VAL_TIME_LIMIT_AUTO);%检查数字式万用表读数是否超出范围(myDMM IsOverRange =调用。收购,“IsOverRange”,第(ii)段);如果等超程fprintf('测量%d超过量程',ii);终止%发送触发命令以切换到下一个连接调用(mySwitch.Scan,“SendSoftwareTrigger”);终止

显示测量结果。

图形;条形图(读数);Y标签(‘电阻(欧姆)’); xlabel(“设备#”);集(gca,“XTick”(1: NrConnections));

从开关模块和数字式万用表仪表上断开

断开(mySwitch);删除(mySwitch);断开(myDMM);删除(myDMM);