pleeblog 发表于 2007-7-9 11:04

vi间数据的传输

我在做个程序,需要不同vi之间进行数据(检测的振动信号)传输,用什么方式比较好啊,全局变量 ?ref?也有人推荐采用队列,不过我试了试比较慢 ,能否提供几个典型 的程序参考一下 ?谢谢

Eric 发表于 2007-7-9 23:08

看你功能的
为什么有那么多方法,就是应为功能不一样
全局变量是一个数据备份,数据被copy一份,供其他vi使用,按照数据流的理论,全局变量这就是一个数据源
Notification的方式呢,就是一个数据的邮箱,和全局不同在于,只有数据改变才会有数据流流出,换句话,就是不会像全局变量那样,vi总是得到变量的数据而运行
Queue的队列是一种先进先出的方式,和Notification不一样在于,数据被VI读掉就Clear了

这些方式可以克服Windows系统下对程序时间片控制的缺陷
不过要你稍微用点时间熟悉一下咯

LV是一个通用的平台,程序总是根据你的功能来确定的
不管检测什么信号,关键在于你软件模型的确定

关于慢的问题,由我经验来看,
(1)很可能是你当中有程序是在等待
(2)或者就是振动信号的高频,造成数据量太大,使得你的数据备份,
   或者开辟的Buffer过大
(3)或者是实时计算量比较大

1需要您再优化结构,2需要你对于程序的运行采取适当的控制策略,3需要和机器性能考虑,或许可以考虑分时

恩,个人意见,大家参考讨论

pleeblog 发表于 2007-7-10 10:15

谢谢,非常感谢!高手啊,

pleeblog 发表于 2007-7-10 10:17

要是对振动信号进行实时采集,是不是还是用Notification或Queue才能够满足其实时性的要求啊?

Eric 发表于 2007-7-10 11:57

原帖由 pleeblog 于 2007-7-10 10:17 发表 http://www.chinavib.com/forum/images/common/back.gif
要是对振动信号进行实时采集,是不是还是用Notification或Queue才能够满足其实时性的要求啊?

我写那么多其实就是要告诉你
这个没有规定的
至于用什么合适,需要你根据自己软件的功能来设计
和振动信号没有关系
我写一个只有一个VI不需要数据传送的振动测试系统也是OK的
所以和测试的信号没有很大关系
而是和你测试的策略有关
关键看你软件是怎么设计了
页: [1]
查看完整版本: vi间数据的传输