多通道串口采存系统如何运用生产者消费者构架

2019-07-17 10:35发布

做了一个温度采存系统,就是从串口读取传感器发送来的数据处理后波形图表显示并存储到TXT文档。目前已经做了六个通道的,六路并行采集、处理、显示、存储,测试了几天没有问题。但是现在老师说要做48路,也就是要同时采集48个通道的数据并同时显示存储,这个理论上把目前的六路继续复制扩充就行了,就是怕同时运行几十路电脑吃不消。老师让我用生产者消费者循环,我对这个了解不多,目前在学,但是不知道用生产者消费者循环带来的好处是什么?什么做生产者循环,数据采集和处理吗?什么做消费者,显示和存储吗?可是感觉这样的好处也只是节省了时间,可是我采集温度这样的大惯性量又不需要很高的频率,我需要的是节省资源让电脑能同时采集48路。有些不解,请知道的指点指点,谢谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
socobear
1楼-- · 2019-07-18 06:19
hejin515 发表于 2015-11-13 15:54
英雄所见略同啊 ,也有其他人建议用轮询的方法。我也是计划把48路分成八组6路的,分八个波形图表显示,八个文档存储,而且我每一通道的串口号是需要配置的啊,所以怎么用for循环去轮询?每次循环我那组的串口号都各不一样,用来显示的波形图表不一样,存储的文档也不一样。这些我都还没搞清楚。现在做到用很多子VI做到了1 ...

每个串口只能分开配置,配置完成之后,输出ta的resource name,将所有的打包成一个6*8的二维数组。后面用for循环挨个通道读取,每个通道的数据经过处理后得到一个数,再将这所有通道的数打包成一个6*8的二维数组,后面再对这个二维数据进行显示和存储。存储的文件应该是类似COM_N_Time.txt这样类似的文件名吧,这些都可以和通道挂上勾,用for循环的方式挨个操作去。当然,同时操作48个文件的写入,可能是比较费劲些,你可以写入到一个文件中,比如用tdms文件存储数据。
socobear
2楼-- · 2019-07-18 10:49
嫌48个串口挨个读取、配置太麻烦用这个:
获取所有串口resource name.PNG

前提是各个串口的参数配置是一样的。
socobear
3楼-- · 2019-07-18 12:59
接下来,你就可以利用上贴得到的串口array来获取每个通道的数据了:
获取每个通道的数据.PNG

此时获取到的数据就随便你去处理了。
socobear
4楼-- · 2019-07-18 16:09
当然,你执意用之前的程序+for循环也ok:我示意下。2*2数组

捕获.PNG

平淡是福李
5楼-- · 2019-07-18 21:55
 精彩回答 2  元偷偷看……
hejin515
6楼-- · 2019-07-18 23:45
socobear 发表于 2015-11-13 19:45
当然,你执意用之前的程序+for循环也ok:我示意下。2*2数组

好人啊,谢谢!看着很不错,不过我比较菜,先琢磨琢磨有不懂再来请教。再次表示感谢!

一周热门 更多>