微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 测试测量 > 虚拟仪器 > 请大家帮我看看这个vi哪里不对,谢谢了!

请大家帮我看看这个vi哪里不对,谢谢了!

时间:12-13 整理:3721RD 点击:
我做了一个实时显示和保存的vi,调用的是自制的dll
现在想实现的目的是实时(大致就行)显示波形,然后把数据保存下来。采样率是
1600S/s,我的想法是同步显示, while循环每循环一次就显示160个数据,while循环里
有100ms的延时,这样每秒就显示1600个数据,同时保存数据为文本格式便于观察。
对LV不是很理解啊,主要还要做其他的事,时间很仓促,编了一个测试dll的程序,现在
的问题是每次一运行就会跳出:
An exception occured within the external code called by a Call Library Node. This may have corrupted LabVIEW's memory. You should save any work to a new location and restart LabVIEW. VI"测试DLL.vi"was stopped at Call Library Function Node Close AdCard 0x1BAC of subVI "测试DLL.vi".
显示的也不对,保存下来的数据也不对。大家帮我看看究竟哪里没对啊?这个dll我用VC
测试过的,思路和上面基本一样,完全实现了的啊。谢谢!
.68

 测试DLL.vi

x-7-2-15
.90

谢谢,现在我修改了很多
目前这个vi可以显示了,但是显示的还是不对,我的思路并没有改变,只
是把for循环嵌套到了while循环里。存储的数据有了,但是也不对。这个
dll明明在vc里可用的啊,大家帮忙看看吧,3x
.68

 测试DLL修改版1.vi

土土的问?
什么意思啊?
.10

精华区的内容
你试着在本版按这几个键看看
.68

hoho,好像data只有一个数阿
并不能累积所有的数据点
.1

应该可以的啊,不是用了 build array 吗?
而且用for循环后出来的就是一个一维数组啊,我自己编了测试程序试过的
.68

不行的
data还是一个sgl数,并不是数组
而且你那个chart也应该放到for循环里面去
.1

我现在把 build array 去掉了,我试过的,从for循环出来真的是一个数组的,
可以用 probe 探针来观察数值的,是一个有160个元素的数组
还有如果把chart放到for循环里,就有悖我的本意了,就是想一次显示160个数据
而不是逐点显示。
anyway,还是很感谢你关注!
.68

1.build array不是说一定要用那个vi的.for循环本身就可以生成数组.
2.早就跟你说了改dll,返回数值.不要返回地址.为什么不改呢? 现在的语言里面基本上只
有C/c++,delphi等少数语言有指针.返回数值你的程序简洁的多. 如果你靠offset来读取数
值,你的同步是怎么做的? 看你的思路我一直很怀疑的...
3.看附图.有关dll的我都删除了.用了个随机数发生器.加了个1ms延时模拟.for外面就不要
用延时了.一次显示160点.没问题的.
4.你dll里面的export函数加个extern "C" 不行么? 看那些怪怪的函数名,你敲的时候不烦
啊?
.70


.68

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top