完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
例子:有四个通道采集数据,采样率为10S/s,采样数为3S/次,现要求以文本文件类型实时保存数据,其中,第一列为采样时间,第二、三、四、五列为参数列,分别记录0、1、2、3四个通道的采样值。
图2为实现题目目标的程序代码。
图2 数据保存程序框图提示:图2的程序代码是有点复杂罗嗦,其实,可以用下图所示的代码代替,它的实现功能与图2的一样。 最左边的波形数组包含四个成员,每个成员对应一个通道的波形数据,而一个通道的波形数据又包括采样开始时间t0,采样间隔dt和数据数组Y。(注:采样间隔dt等于采样率的倒数;数据数组Y的大小等于采样数。四个通道波形数据的t0、dt相等。)当“使能”布尔控件为真时,波形数组的数据流入case“真”分支中,该分支主要由3个for循环(分别用for 1、for 2和for 3标注)和一些数组、字符串、时间节点组成,通过调用这些功能节点,即可达到题目的要求。下面将详细介绍波形数组在case“真”分支中的执行过程。一维波形数组通过自动索引隧道进入for 1中(共有四个通道,即自动索引4次,循环次数为4),由“获取波形成分”函数分别提取波形数据的成分,之后,dt、t0流入上面的红色虚线框图中,四个通道的数组Y流向下面的红色虚线框图。上面的框图与获取采样时间有关,下面的红色框图用于处理数组Y,先把二维数组转换为一维数组方便后续处理,再通过两次转换变为一维字符串数组输出,由for 3把一维字符串数组转为二维字符串数组输出(注:此循环的次数由最左边的一维波形数组的元素个数决定,最后输出的二维字符串数组,其行数等于一维波形数组的元素个数,列数等于数组Y的大小,即采样数),然后通过“连接字符串”把上下框图流出的数据组合成一个新的二维字符串数组,其中第一行为采样时间,第二、三、四、五行依次对应第0通道至第3通道的采样数据,再由“二维数组转置”节点把二维数组转置,这时第一列就是采样时间,其他列依次为各通道的采样数据,然后通过“数组至电子表格字符串转换”转换为ASCII字符串直接写入文本文件中。强调地,在上面的红色虚线框图中,有一个“格式化日期/时间字符串”节点,这个节点右边端子产生的时间字符串,其格式由该节点左上角的输入端子所设置的时间格式决定,图中设置的格式为%H:%M:%S%?u,字符u表示时间精度为秒的小数位,?为常量,指小数的位数,例子中由于采样率是10S/s,则0.1s采集一个数据点,那么采样时间的精度应该为0.1s,所以应在?处写上1,这时整个时间格式写成%H:%M:%S%1u,即产生的时间字符串格式为小时:分钟:秒:秒.小数位,具体见图3。用该程序保存的文本文件的数据格式如图3所示。 图3 四通道数据存储(采样率为10S/s) 30
图2 数据保存程序框图
提示:图2的程序代码是有点复杂罗嗦,其实,可以用下图所示的代码代替,它的实现功能与图2的一样。
最左边的波形数组包含四个成员,每个成员对应一个通道的波形数据,而一个通道的波形数据又包括采样开始时间t0,采样间隔dt和数据数组Y。(注:采样间隔dt等于采样率的倒数;数据数组Y的大小等于采样数。四个通道波形数据的t0、dt相等。)当“使能”布尔控件为真时,波形数组的数据流入case“真”分支中,该分支主要由3个for循环(分别用for 1、for 2和for 3标注)和一些数组、字符串、时间节点组成,通过调用这些功能节点,即可达到题目的要求。下面将详细介绍波形数组在case“真”分支中的执行过程。一维波形数组通过自动索引隧道进入for 1中(共有四个通道,即自动索引4次,循环次数为4),由“获取波形成分”函数分别提取波形数据的成分,之后,dt、t0流入上面的红色虚线框图中,四个通道的数组Y流向下面的红色虚线框图。上面的框图与获取采样时间有关,下面的红色框图用于处理数组Y,先把二维数组转换为一维数组方便后续处理,再通过两次转换变为一维字符串数组输出,由for 3把一维字符串数组转为二维字符串数组输出(注:此循环的次数由最左边的一维波形数组的元素个数决定,最后输出的二维字符串数组,其行数等于一维波形数组的元素个数,列数等于数组Y的大小,即采样数),然后通过“连接字符串”把上下框图流出的数据组合成一个新的二维字符串数组,其中第一行为采样时间,第二、三、四、五行依次对应第0通道至第3通道的采样数据,再由“二维数组转置”节点把二维数组转置,这时第一列就是采样时间,其他列依次为各通道的采样数据,然后通过“数组至电子表格字符串转换”转换为ASCII字符串直接写入文本文件中。强调地,在上面的红色虚线框图中,有一个“格式化日期/时间字符串”节点,这个节点右边端子产生的时间字符串,其格式由该节点左上角的输入端子所设置的时间格式决定,图中设置的格式为%H:%M:%S%?u,字符u表示时间精度为秒的小数位,?为常量,指小数的位数,例子中由于采样率是10S/s,则0.1s采集一个数据点,那么采样时间的精度应该为0.1s,所以应在?处写上1,这时整个时间格式写成%H:%M:%S%1u,即产生的时间字符串格式为小时:分钟:秒:秒.小数位,具体见图3。用该程序保存的文本文件的数据格式如图3所示。 图3 四通道数据存储(采样率为10S/s) 30
最左边的波形数组包含四个成员,每个成员对应一个通道的波形数据,而一个通道的波形数据又包括采样开始时间t0,采样间隔dt和数据数组Y。(注:采样间隔dt等于采样率的倒数;数据数组Y的大小等于采样数。四个通道波形数据的t0、dt相等。)当“使能”布尔控件为真时,波形数组的数据流入case“真”分支中,该分支主要由3个for循环(分别用for 1、for 2和for 3标注)和一些数组、字符串、时间节点组成,通过调用这些功能节点,即可达到题目的要求。下面将详细介绍波形数组在case“真”分支中的执行过程。
一维波形数组通过自动索引隧道进入for 1中(共有四个通道,即自动索引4次,循环次数为4),由“获取波形成分”函数分别提取波形数据的成分,之后,dt、t0流入上面的红色虚线框图中,四个通道的数组Y流向下面的红色虚线框图。上面的框图与获取采样时间有关,下面的红色框图用于处理数组Y,先把二维数组转换为一维数组方便后续处理,再通过两次转换变为一维字符串数组输出,由for 3把一维字符串数组转为二维字符串数组输出(注:此循环的次数由最左边的一维波形数组的元素个数决定,最后输出的二维字符串数组,其行数等于一维波形数组的元素个数,列数等于数组Y的大小,即采样数),然后通过“连接字符串”把上下框图流出的数据组合成一个新的二维字符串数组,其中第一行为采样时间,第二、三、四、五行依次对应第0通道至第3通道的采样数据,再由“二维数组转置”节点把二维数组转置,这时第一列就是采样时间,其他列依次为各通道的采样数据,然后通过“数组至电子表格字符串转换”转换为ASCII字符串直接写入文本文件中。强调地,在上面的红色虚线框图中,有一个“格式化日期/时间字符串”节点,这个节点右边端子产生的时间字符串,其格式由该节点左上角的输入端子所设置的时间格式决定,图中设置的格式为%H:%M:%S%?u,字符u表示时间精度为秒的小数位,?为常量,指小数的位数,例子中由于采样率是10S/s,则0.1s采集一个数据点,那么采样时间的精度应该为0.1s,所以应在?处写上1,这时整个时间格式写成%H:%M:%S%1u,即产生的时间字符串格式为小时:分钟:秒:秒.小数位,具体见图3。
用该程序保存的文本文件的数据格式如图3所示。
图3 四通道数据存储(采样率为10S/s) 30
图3 四通道数据存储(采样率为10S/s)
举报
陈召
松上
h1654155271.2864
易品天成
a423835764
Andysstyle
张杰男
64791504
沉默gg
quningningqu123
李玉
elle77
h1654155948.1984
吴俊余
我撸啊撸
二层楼学生
kobe
贾超556
你正在撰写讨论
如果你是对讨论或其他讨论精选点评或询问,请使用“评论”功能。
发布讨论
在NI-VISA测试中显示超时,怎么处理?
267 浏览 1 评论
用udl里的字符串信息在局域网内其他电脑连接sql数据库为什么为出现连接失败拒绝访问?
1927 浏览 2 评论
为什么同一个队列引用的全局变量,运行在两个子vi中发现队列数据丢失了
1545 浏览 0 评论
有没有大佬知道为啥我这个每通道写入数一直是0啊
1743 浏览 0 评论
关于labview2024版本的lvanlys.dll出错的问题
3998 浏览 3 评论
电子发烧友网
电子发烧友论坛
查看 »
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-27 06:50 , Processed in 0.865611 second(s), Total 75, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com