LabVIEW论坛
直播中

李俊杰

4年用户 12经验值
私信 关注
[问答]

labview通过VISA读取数据采集模块数据

我用labview编写一个数据采集程序,采用了一个数据采集模块,因为模块的通讯协议比较单一,想实现不同数据读取只能对它进行三次VISA写命令和VISA读命令(每次读取8个寄存器),现在写完了,感觉程序很臃肿,并且运行速度非常慢,一秒多才能运行一遍。各位大神帮忙提些改进意见吧。(新手一个,只会简单的罗列功能,不会优化)
  • 0.PNG

回帖(4)

冯凯

2020-8-2 21:23:12

最佳答案

从程序看,不至于1s运行一次。串口读取是达到你要求的长度后才反馈数据,也就是很可能大量时间消耗在visa读取上。建议检查一下下位机上传数据的程序。
4 举报
  • 李俊杰: 下位机上传一次就是21个字节,我这样设置就是把每次上传数据一次读取,这样应该是不拖累VISA读取的吧
  • 冯凯 回复 李俊杰: 如果你有数据采集卡的话,建议监控一下通讯的的电压波形,看看是发送的问题还是接收的问题。如果没有采集卡,做个简单的vi,从写入指令开始计时,接收到指令终止,看看通讯一次用时,这种方法不太准,但是对于你这好几百毫秒才能运行一次也够用了。
  • 李俊杰: 我想请问如果正常情况,完成一次VISA读写要多少时间?
  • 冯凯 回复 李俊杰: 读写时间跟你波特率和字符数有关,比如你115200比特率,就是11520字节/s,21个字节的话,21/11520=1.8ms,读写加起来不到4ms。当然这是理论时间,实际软件运行要比这个时间长,但是长一点有限。所以最大的问题应该还是在下位机上

何志刚

2020-8-3 09:29:27
1S多算是正常的速度了 串口本来就慢
1 举报

李俊杰

2020-8-3 13:14:40
用什么方式会比串口更快?
举报

RedJ

2020-8-3 15:10:10
你可以检查一下单次读取的速度是否很慢,然后把串口打开关闭放到循环外面去对比一下速度有没有提高。串口指令并不慢,正常使用下不会超过1s才完成一次写入读取。当然读取速度这也跟你传感器带宽有关,你可以看一下你传感器带宽是多少。
3 举报
  • 李俊杰: 用传感器自带软件试了,自带软件完成一次也要0.5s。我想问一下,如果不是下位机的速度慢,正常VISA读写一次需要多少时间?
  • RedJ 回复 李俊杰: 我们有个陀螺仪三轴角度输出也可以到100Hz呀,也就是10ms可以读一次数。那可能就是你传感器输出带宽就不够。
  • 李俊杰 回复 RedJ: 是传感器原因

更多回帖

发帖
×
20
完善资料,
赚取积分