通过NI-SCOPE MATLAB仪器驱动程序在仿真模式中获取波形
本例展示了如何在仿真模式下从美国国家仪器公司®NI-SCOPE驱动器的两个通道获取数字波形。
简介
仪器控制工具箱™支持通过高级驱动程序与仪器通信。金宝app在本例中,您可以在模拟模式下从National Instruments®NI-SCOPE驱动器获取数字波形。
需求
此示例需要Microsoft®Windows®系统和NI-SCOPE包3.6或更高版本。在使用此示例之前,请确保Measurement & Automation Explorer能够识别NI-SCOPE驱动程序。
检查NI-SCOPE安装
使用instrhwinfo
命令检查NI-SCOPE软件包是否正确安装。如果正确安装,NI-SCOPE将被列为安装在Windows计算机上的模块之一。本例使用与它一起安装的库。
驱动器信息= instrhwinfo (“新”);disp (driversInfo.Modules ');
{'nidcpower'} {'nidmm'} {'niFgen'} {'nisACPwr'} {'niScope'} {'nisCounter'} {'nisDCPwr'} {'nisDigitizer'} {'nisDmm'} {'nisDownconverter'} {'nisFGen'} {'nisPwrMeter'} {'nisRFSigGen'} {'nisScope'} {'nisSpecAn'} {'nisSwtch'} {'nisUpconverter'} {'niSwitch'}
创建一个MATLAB仪器对象
使用icdevice
函数从您生成的MDD创建一个仪器对象,并使用该对象建立到范围的连接。
icdevice
函数接受两个或多个输入参数。MDD文件名、作用域的资源名以及可以设置的特定于设备的参数(可选)。
您可以从NI Measurement and Automation Explorer获取范围的资源名称。例如:的资源名PXI1Slot6
在NI MAX中是PXI1Slot6
.您可以删除optionstring
参数和相应的字符串参数(如果您有实际的硬件)。
属性可以建立到范围的连接连接
命令。
ictObj = icdevice(“niscope.mdd”,“PXI1Slot6”,“optionstring”,“模拟= true”);连接(ictObj);disp (ictObj);
仪器设备对象使用驱动程序:niScope仪器信息类型:IVIInstrument制造商:National Instruments Corp.型号:NI Digitizers驱动信息驱动类型:MATLAB IVI驱动名称:niScope驱动版本:1.0通信状态状态:打开
配置作用域
在本例中,使用自动设置来配置作用域,自动设置垂直范围、采样率、触发级别和其他一些设置。
使用MATLAB仪器驱动程序编辑器(middit)查看允许您配置设备的其他属性和函数。该工具显示NI-SCOPE软件包支持的所有属性和功能。金宝app
configuration = ictObj.Configuration;调用(配置,“autosetup”);
配置每个通道的垂直范围
ConfigureVertical功能配置数字化仪垂直子系统最常用的配置属性,如距离、偏移量、耦合、探头衰减和通道。我们将从通道“0”和“1”中获取数据,从而配置这些通道。更多信息请参考NI-Scope文档。
范围= 10;偏移量= 0;耦合= 1;ProbeAttenuation = 1;配置通道0调用(ictObj。Configurationfunctionsvertical,“configurevertical”,' 0 ',范围,偏移量,耦合,探头衰减,true);配置通道1调用(ictObj。Configurationfunctionsvertical,“configurevertical”,' 1 ',范围,偏移量,耦合,探头衰减,true);
准备波形信息
波形信息是一种结构,包含用于从作用域获取波形的时序信息、采样数、增益和偏移比例因子。内存将被预先分配给每个通道的波形信息结构。
numChannels = 2;channelList =“0 1”;numSamples = 1024;为i = 1:numChannels waveformInfo(i)。absoluteInitialX = 0;waveformInfo(我)。relativeInitialX = 0;waveformInfo(我)。xIncrement = 0;waveformInfo(我)。actualSamples = 0;waveformInfo(我)。偏移量= 0;waveformInfo(我)。增益= 0;waveformInfo(我)。Reserved1 = 0;waveformInfo(我)。Reserved2 = 0;结束
获取波形
使用所需的设置配置作用域后,使用适当的函数调用从通道获取波形0
而且1
.预分配waveformArray来存储所有请求通道的数据。在获取数据之前,必须先进行波形采集。获取数据后,提取每个通道对应的波形。
waveformArray = 0 (numChannels * numSamples, 1);TimeOut = 10;%秒调用(ictObj。收购,“initiateacquisition”);[waveformArray, waveformInfo] =调用(ictObj.)收购,“获取”channelList,...TimeOut, numSamples, waveformArray, waveformInfo);waveformArray =重塑(waveformArray, numSamples, numChannels);
绘制波形图
情节(waveformArray);
清理
删除MATLAB仪器对象。
断开(ictObj);删除(ictObj);清晰的ictObj;