labview进行被动接收数据,当VISA缓存区设置过小,会产生丢数据现象吗

2019-07-17 07:44发布

利用labview进行双通道数据采集,下位机发来的数据为字符串(类型为2.134,5.345  然后第二行3.453,4.345  第三行 4.784,3.564等等依次类推),然后想把字符串的两路数据提取出来,进行波形显示,提取时候用匹配字符串,输出结果感觉总是数据丢失,之前VISA读函数参数设置为有多少读多少,即调用属性节点,但是会有数据丢失(明显发现读取前的字符数和读取后的字符数不等,利用显示控件观察,此数据丢失应该数缓冲区内地的数据未读取完),后来把VISA读函数的读取字节固定为17(即每一行的字符串长度,包含逗号、换行号等),这样读取函数之后的字节数是相等了,但是采样率提高的话,对应的输出点数并不会改变,怀疑还是由数据丢失(此数据丢失应该是没有存进缓冲区)。所以非常疑惑,希望论坛内的大神指点迷津。
2.PNG
1.PNG
3.PNG
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
2条回答
老蜗牛
2019-07-17 16:08
对于单听式串口通讯,你的要求是高波特率下不丢数,这是有其标准格式的:至少应该先把数据从硬件缓冲区读到一个字符串中(你的read string),再对该字符串进行处理分析,而不是像你现在这样读进来的同时处理读取的数据。

一周热门 更多>