共工科技

labview串口传输数据丢失(labview串口数据不稳定)

本篇目录:

用Labview做串口采集数据的软件,运行几个小时后就收不到数据了

1、没有问题啊?我这样做过。完全可以收到。只需要满足下述条件:电脑有两个(或以上)串口 两个串口使用交叉线连接(即COM1的二号脚接到COM2的三号脚,而COM1的三号脚接到COM2的二号脚)LabVIEW和串口调试助手分别打开COM1和COM2。

2、你的这个串口设备在打开(也就是调用open函数获取设备描述符)的时候设置的是非阻塞方式。导致串口上没数据的时候read也立即返回,但是你的while已经把有效的数据读走了,if里面读到的一定是空的,所以什么也不打印。

labview串口传输数据丢失(labview串口数据不稳定)-图1

3、这个有可能是几方面原因: CPU变慢,因为程序结构设计不合理; 内存占用过多,因为数组等控件存储数据累积太多; 串口数据因为没有识别码与校验位,万一产生数据丢失,无从判断;所以当读取的数据达不到要求长度时,就会等待,直到超时才返回。这跟使用属性节点优化性能没多大关系。

4、你程序是不是在while里面的,接收数据的话你的visa要一直处在运行状态。

5、范例一般都是能够正常运行的,像你这种情况,你可以先排除一下数据收发端有没有什么问题,保证上位机接受的数据字节数等等 都是与数据发送端一致的。另外,多试一试,自己编个简单的程序,因为没有源程序,别人也不在现场,这类问题分析起来很困难。

labview串口传输数据丢失(labview串口数据不稳定)-图2

6、使用规范的labview自带demo程序 -- basic serial write and read 注意该程序中, 读取串口数据前需要加上时间延迟。 (串口读取需要时间等待) 确定发送数据的格式正确。

labviewrs232串口数据丢失

1、串口按照读书和接收数据出现了问题,解决办法有两个。根据今日头查询,针对labviewrs232串口数据丢失的第一个方法是,通过建立移位寄存器,将接收到的数据首尾相连,保证接收串口数据的完整性。

2、LABviewRs232串口接收到的数据有移位的现象是每一帧数据先找到帧头0X11。labview使用串口有两种方法一种调用vb的mscomm控件很麻烦我没用过另一种就是使用labview自带的串口使用这个必须要装vist不然在前面板的端口选择下拉框里是没有串口号的不能用。奇偶校验位:在串口通信中一种简单的检错方式。

labview串口传输数据丢失(labview串口数据不稳定)-图3

3、你要先发送一个读取命令吧,否则光谱仪不能往上位机发数据的。在光谱仪的手册里,应该都写明了读取指令或者写控制指令的语句,定义了数据格式,这些数据格式就是某种协议,如果是简单串口的话,发送一个读取的指令后,光谱仪就会往上位机发送数据,然后上位机用LabVIEW的串口就可以读取了。

4、首先是要确认仪器选择的通信模式是串口通信模式。现在的仪器一般都至少有二种通信模式,一种是RS232,一种是GPIB,如果仪器是设置为GPIB通信的话,RS232是不可能通信上的,所以要先确认一下,方法一般是在仪器面板上选择设置远程控制GPIB/RS232,各个仪器稍微不同,可以查仪器手册看一下。

5、这是一种标准的写法,在VISA写入的地方加入case结构,来控制是否进行写串口,case状态为假时,直接传递函数即可。

labview串口数据接收控制超时

题主是否想询问“labview串口数据接收控制超时的原因有什么”?原因有CPU变慢、内存占用过多、没有识别码与校验位。CPU变慢,因为程序结构设计不合理。内存占用过多,因为数组等控件存储数据累积太多。串口数据因为没有识别码与校验位,万一产生数据丢失,无从判断。

换成LabVIEW里的例子。串口通讯在设置时可以配置一个超时时间,比如10秒,那么串口在读取时,若串口缓冲区内没有接收到数据,等待10秒之后,超时事件触发,串口读取函数就不再等待了,继续往下运行。不知我这样解释你能否听明白。

你这个错误是由于在超时(10秒)内没有收到下位机数据。

到此,以上就是小编对于labview串口数据不稳定的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位老师在评论区讨论,给我留言。

分享:
扫描分享到社交APP
上一篇
下一篇