主要内容

倪日志模拟输入数据到一个文件中使用设备

这个例子展示了如何将数据获得在后台保存到一个文件中。

创建一个DataAcquisition模拟输入通道

创建一个DataAcquisition和添加两个模拟输入通道电压测量类型。对于这个示例使用一个国家仪器®X系列数据采集设备,镍作为pcie - 6363卡,IDDev1

d = daqlist (“倪”)
d = 12×4表的DeviceID描述模型DeviceInfo ___________ __________________________________ _________________ ____________________“cDAQ1Mod1”“9205年国家仪器倪”“NI 9205”[1×1采集。DeviceInfo]“cDAQ1Mod2”“9263年国家仪器倪”“NI 9263”[1×1采集。DeviceInfo]“cDAQ1Mod3”“9234年国家仪器倪”“NI 9234”[1×1采集。DeviceInfo]“cDAQ1Mod4”“9201年国家仪器倪”“NI 9201”[1×1采集。DeviceInfo]“cDAQ1Mod5”“9402年国家仪器倪”“NI 9402”[1×1采集。DeviceInfo]“cDAQ1Mod6”“9213年国家仪器倪”“NI 9213”[1×1采集。DeviceInfo]“cDAQ1Mod7”“9219年国家仪器倪”“NI 9219”[1×1采集。DeviceInfo]“cDAQ1Mod8”“9265年国家仪器倪”“NI 9265”[1×1采集。DeviceInfo]“Dev1”“国家仪器作为pcie - 6363”“作为pcie - 6363”[1×1采集。DeviceInfo]“Dev2”“国家仪器倪猫王II”“倪猫王II”[1×1采集。DeviceInfo]“Dev3”“国家仪器作为pcie - 6363”“作为pcie - 6363”[1×1采集。DeviceInfo]“Dev4”“国家仪器作为pcie - 6363”“作为pcie - 6363”[1×1 daq.DeviceInfo]
deviceInfo = d {9,“DeviceInfo”}
deviceInfo =倪:国家仪器作为pcie - 6363(设备ID: Dev1)模拟输入支持:7支持利率从0.0到2000000.0不等扫描/秒32通道(“金宝appai0”——“ai31”)电压的测量类型模拟输出支持:-5.0 + 5.0伏,-10 + 10伏特利率从0.金宝app0到2000000.0不等扫描/秒4通道(‘ao0’,‘ao1’,‘ao2’,‘ao3’)电压的测量类型数字IO支持:39渠道(“port0 / line0”——“端金宝app口2 / line6”)“InputOnly”、“OutputOnly”、“双向”测量类型计数器输入支持:利率从0.1到100000000.0扫描/秒4通道(‘ctr0’金宝app,‘ctr1’,‘ctr2’,‘ctr3’)“EdgeCount”、“脉冲宽度”、“频率”、“位置”测量类型计数器输出支持:利率从0.1到100000000.0扫描/秒4通道(‘ctr0’,‘ctr1’,‘金宝appctr2’,‘ctr3’)“PulseGeneration”测量类型
dq =采集(“倪”);addinput (dq,“Dev1”0:1,“电压”);dq.Channels
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

背景收购期间,DataAcquisition可以直接处理获得的数据在指定的方式使用ScansAvailableFcn财产。

dq。ScansAvailableFcn = @ (evt) src logData (evt src fid1);

在后台获取数据

使用开始获取数据5秒钟。

开始(dq,“持续时间”秒(5))

在正常操作期间,其他MATLAB命令可以执行在这个收购。对于这个示例,使用暂停在一个循环中监控扫描期间获得的数量。

dq。运行暂停(0.5)流(“While循环:扫描获得= % d \ n "dq.NumScansAcquired)结束流(“收购已终止,% d扫描获得\ n”,dq.NumScansAcquired);

关闭日志文件

文件关闭(fid1);

从日志文件中加载数据

加载文件内容作为三栏矩阵数据

fid2 = fopen (“log.bin”,“r”);(数据,统计)=从文件中读(fid2(3正),“双”);文件关闭(fid2);

数据分配和阴谋

t =数据(1);ch =数据(2:3,:);情节(t, ch);

函数logData (src, ~, fid)(数据、时间戳~)=阅读(src, src.ScansAvailableFcnCount“OutputFormat”,“矩阵”);数据=(时间戳、数据)';写入文件(支撑材、数据“双”);结束
While循环:While循环扫描获得= 500:扫描获得= 1000 While循环:扫描获得= 1500 While循环:扫描获得= 2000 While循环:扫描获得= 2500 While循环:扫描获得= 3000 While循环:扫描获得= 3500 While循环:扫描获得= 4000 While循环:扫描获得= 4500 While循环:扫描获得= 5000年收购已终止,5000扫描