主要内容

使用NI设备将模拟输入数据记录到文件中

此示例演示如何将在后台获取的数据保存到文件中。

使用模拟输入通道创建数据采集

创建一个数据采集和添加两个模拟输入通道电压测量类型。对于本例,使用National Instruments®X系列数据采集设备,NI pci -6363卡与IDDev1.

d = daqlist (“倪”)
12×4表设备d=12×4 4 4表设备d=12×4 4表设备d描述模型设备d描述模型描述模型设备d d=12×4 4 4 4 4 4 4表设备d=12×4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4表设备d描述模型描述模型描述描述描述模型设备描述描述描述描述数据数据数据数据数据数据数据数据。描述模型描述描述描述数据数据数据数据数据工具工具工具工具。描述描述数据数据工具工具工具。描述描述数据工具工具。描述描述数据工具工具工具。描述数据工具工具工具工具工具工具工具工具工具工具工具工具工具工具工具工具工具。目前的价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格价格5“[1×1数据设备信息]“cDAQ1Mod2”“国家仪器NI 9263”“NI 9263”[1×1数据设备信息]“cDAQ1Mod3”“国家仪器NI 9234”“NI 9234”[1×1数据设备信息]“cDAQ1Mod4”国家仪器NI 9201“NI 9201”[1×1数据设备信息]“cDAQ1Mod5”国家仪器NI 9402“NI 9402”[1×1数据设备信息]“cDAQ1Mod6”国家仪器NI 9213“NI 9213”[1×1数据设备信息]“cDAQ1Mod7”国家仪器NI 9219“NI 9219”[1×1数据设备信息]“cDAQ1Mod8”“国家仪器NI 9265”“NI 9265”[1×1数据设备信息]“Dev1”“国家仪器PCIe-6363”“PCIe-6363”[1×1数据设备信息]“Dev2”“国家仪器NI ELVIS II”“NI ELVIS II”[1×1数据设备信息]“Dev3”“国家仪器PCIe-6363”“PCIe-6363”[1×1数据设备信息]“Dev4”“国家仪器PCIe-6363”“PCIe-6363”[1×1数据采集设备信息]
deviceInfo=d{9,“设备信息”}
deviceInfo=ni:National Instruments PCIe-6363(设备ID:“Dev1”)模拟输入支持:7个范围支持速率从0.0到2000金宝app000.0扫描/秒32通道(“ai0”-“ai31”)“电压”测量型模拟输出支持:-5.0到+5.0伏,-10到+10伏范围速率从0.0到2000000.0扫描/秒4通道(“ao0”,“ao1”,“ao2”,“ao3”)“电压”测量类型数字IO支持:39个通道(“端口0/line0”-“端口2/line6”)“仅输入”、“仅输出”、“双向”测量类型计数器输入支持:速率从0.1到100000000.0扫描/秒4个通道(“ctr0”、“ctr1”、“ctr2”、“ctr3”)“EdgeCount”、“PulseWidth”、“Frequency”、“Position”测量类型计数器输出支持:速率从0.1到100000000.0扫描/秒4个通道(“Cr0”、“Cr1”、“Cr2”、“Cr3”)“PulseGeneration”测量类型
dq =采集(“倪”);附加输入(dq,“Dev1”0:1,“电压”);dq.频道
ans =指数类型设备通道测量类型范围名称  _____ ____ ______ _______ ________________ __________________ __________ 1“人工智能”“Dev1”“ai0”“电压(Diff)”"-10 to +10 Volts" "Dev1_ai0" 2 " "ai" "Dev1" "ai1" "Voltage (Diff)""-10 to +10 Volts" "Dev1_ai1"

创建一个日志文件

创建文件log.bin和打开它。文件标识符用于写入文件。

fid1=fopen(“log.bin”,“w”);

设置ScansAvailableFcn

在后台采集期间,可以使用ScansAvailableFcn所有物

dq.ScansAvailableFcn=@(src,evt)日志数据(src,evt,fid1);

在后台获取数据

使用开始获取五秒钟的数据。

启动(dq,“持续时间”,秒(5))

在正常运行期间,其他MATLAB命令可以在此采集期间执行。对于本例,使用暂停在一个循环中监视在采集期间所采集的扫描次数。

dq。运行暂停(0.5)流("While循环:Scans acquired = %d\n",dq.Numscansaquired)终止fprintf(“采集已终止,已采集%d个扫描\n”,dq.Numscansaquired);

关闭日志文件

fclose(fid1);

从日志文件加载数据

将文件内容作为3列矩阵加载到数据.

fid2=fopen(“log.bin”,“r”);[data,count]=fread(fid2,[3,inf],“双人”)fclose(fid2);

分配并绘制数据

t=数据(1,:);ch=数据(2:3,:);绘图(t,ch);

函数logData(src,~,fid)[数据,时间戳,~]=read(src,src.ScansAvailableFcnCount,“输出格式”,“矩阵”);数据=[时间戳,数据];写入(fid,数据,“双人”);终止
While循环:While循环扫描获得= 500:扫描获得= 1000 While循环:扫描获得= 1500 While循环:扫描获得= 2000 While循环:扫描获得= 2500 While循环:扫描获得= 3000 While循环:扫描获得= 3500 While循环:扫描获得= 4000 While循环:扫描获得= 4500 While循环:扫描采集= 5000采集已终止,采集5000个扫描