用C8051采集电压信号,Labview做上位机,Labview采样频率低
用C8051采集电压信号,单片机采样频率为50Hz,用串口助手接收数据时采样频率为50Hz,30秒接收1500个点;用Labview上位机接收数据时,采样频率最后只有20Hz,我用上位机30秒时间直接收到595个点。请问如何提高上位机的采样频率,谢谢大家 按理说 pc端接收这点数据显示出来问题不大。就是对labview不了解,看你这个图的意思,收到一次就要在曲线里描点一次,界面的刷新耽误时间,你试试不更新界面,看看能搞定50hz不。 没有用过labview,你的操作是否涉及到不断的打开和关闭串口?以前遇到过一个情况,上位机不断的打开和关闭端口,两次操作中间要花费50~100ms左右 1-使用MOXA卡,想要1Mbps 以上使用NI板卡
2-labview编程,使用生产者--消费者模式 Dogdays 发表于 2020-8-3 17:22
没有用过labview,你的操作是否涉及到不断的打开和关闭串口?
以前遇到过一个情况,上位机不断的打开和关 ...
打开和关闭串口在大框外的两个黄色图标实现,也就是在大循环外实现,只操作一次,不存在频繁操作的问题。 原来的单片机输出带了换行符,WINDOWS中,换行符占了两个字节,今天把换行符去掉了,上位机频率与单片机采样频率相差不大,结果算是比较满意。我也不清楚为什么多了两个字节会有这么大的影响。
换行符能影响速率?你这才多少字节和速率 跟labview没关系,楼主程序写的有问题,在Bytes at port这个位置会丢失好多数据,你观察一下就能看出来 ssaiwo 发表于 2020-8-5 08:23
跟labview没关系,楼主程序写的有问题,在Bytes at port这个位置会丢失好多数据,你观察一下就能看出来 ...
大神,可否带labvⅰew入门? Firman 发表于 2020-8-5 08:26
大神,可否带labvⅰew入门?
大神不敢当,以电工的基础知识labview入门很简单的,labview例程很丰富,你可以安装上试试,有不明白的地方随时问我 ssaiwo 发表于 2020-8-5 08:23
跟labview没关系,楼主程序写的有问题,在Bytes at port这个位置会丢失好多数据,你观察一下就能看出来 ...
好的,谢谢, huangqi412 发表于 2020-8-5 07:56
换行符能影响速率?你这才多少字节和速率
我也不知道,学生,只是通过这个方法解决了我目前的问题。对于目前的我来说,只需要数据满足我的需要就可以 ssaiwo 发表于 2020-8-5 08:23
跟labview没关系,楼主程序写的有问题,在Bytes at port这个位置会丢失好多数据,你观察一下就能看出来 ...
我观察不出来,能详细解释一下吗,感谢 miniyulinr 发表于 2020-8-5 10:45
我观察不出来,能详细解释一下吗,感谢
看visa配置串口控件,上面有个启用终止符的选项,默认是开启的
你启用了终止符,上次读取的数据会被下一次的覆盖,按道理讲应该能看到读取缓冲区里面数值长度是不停变化的才对,这时需要使用移位寄存器,将字符串移位拼接
或者你关闭终止符,应该也会好用(我没具体测试),你现在这个程序和你测试的一样,不发送换行符是好用的,有换行符的接收会不正常
配置一下终止符。VISA默认的是10(0x0A)对应的是回车符号。可以改成换行。(但是实际应用单片机只输出回车就好了)。
接收数据直接填一个比较大的数。遇到结束符会自动输出的。不要用Bytes of port。那个查询接收多少字节的必须电脑端和下位机时间配合比较好才行。
用上面说的方法别说50Hz了。只要波特率够50kHz都没问题。
另外提到的波形图表刷新率问题,对于简单的小程序的话,不用担心。直接更新就好了,labview会自己处理的。 收到,谢谢大家 xiaoergao 发表于 2020-8-5 12:47
配置一下终止符。VISA默认的是10(0x0A)对应的是回车符号。可以改成换行。(但是实际应用单片机只输出回车就 ...
请问不用Bytes of Port的意思是删掉这个属性节点吗,还是其他的,谢谢 miniyulinr 发表于 2020-8-7 20:24
请问不用Bytes of Port的意思是删掉这个属性节点吗,还是其他的,谢谢
如何你用了结束符, 且单片机会一直发送就可以不用
把VISA的接收缓冲区设一个大的buffer, VISA在检查到结束符后就会从buffer中提取这一行给你
如果是HEX收发的必须关闭结束符, 否则HEX随机会有0D, 0A这种数据 给你个参考下把,图片下载直接拖到程序框图里就可以了。
sniper.q 发表于 2020-8-8 15:09
如何你用了结束符, 且单片机会一直发送就可以不用
把VISA的接收缓冲区设一个大的buffer, VISA在检查到结 ...
我想请教一个新问题,最近才发现的新问题。我用两个串口对不同的传感器同时进行采样。两组数据存储的时候总是出现问题,保存时间为60秒,数组二有3042组数据;数组也有3042组数据,但是数组这一组从2092-3042都为0。但是双方的波形图表上的波形都正常,数组那一组的波形图表上并未出现0。不知道怎么去解决这个问题。非常感谢。
2个串口的数据未必同时到达,不能放在1个while里面。 xiaoergao 发表于 2020-8-8 21:01
2个串口的数据未必同时到达,不能放在1个while里面。
我刚试了一下,不放在一个while里面,得到的结果还是和以前一样。{:cry:} labview的延时和单片机可能有错位分包现象,你用我发的那个程序段试试看 xiaoergao 发表于 2020-8-9 13:53
labview的延时和单片机可能有错位分包现象,你用我发的那个程序段试试看
您好,试了一下,不太行。失败了 在我帅气同桌的帮助下问题都已得到解决。非常感谢大家和我的同桌 因为举报该帖子被自动屏蔽和移走。
原论坛:51单片机 帖子移动通知:
原分论坛:举报自动屏蔽区
目标分论坛:51单片机
移动时间:0小时之后 {:smile:}正好学习下;
页:
[1]