tennis8310 发表于 2008-10-10 20:12:26

请教:关于不同VI程序之间的实时数据传输

我做数据采集方面的应用。单独的AD以及DA程序均已调通。
现在想做一个简单的数据流:即从AD采回数据,不做任何操作,将采回的数据实时的传给DA输出

我试过用全局变量在AD与DA程序之间传送实时数据,但失败了

想请教大家,应该怎样实现两个VI程序之间的实时数据的传输??烦请大家指点谢谢!!

cpubbs 发表于 2008-10-10 22:10:36

用全局变量应该是可行的,具体出现的是什么错误呢?好运!

fangy2010 发表于 2008-10-10 22:23:10

用“同步”中的“通知”应该也可以的。

tennis8310 发表于 2008-10-11 13:53:46

先谢谢各位的回答!

我再描述具体一点哈:
我将AD程序采回的实时数据传送到全局变量var,然后在DA程序中先读取var然后DA输出, 是不是也要采用循环的方式不断的读取var才能实时的读出数据呢??

我尝试过不加循环来读取var,但发现仅仅只读取一次,并不能连续不断的读取暂存在var中的实时数据。

难道LABVIEW不能不依靠直接实现实时数据传递么?烦请大家指教!

谢谢!

wdyjz 发表于 2008-10-11 19:18:18

全局变量很难保证数据同步,如果要求同步,可以采用信号灯、事件、通告、队列的方式来进行。
如果单点采集、单点发送,则放在一个while内采用移位寄存器来实现即可。
多个while或者多个vi,就采用NI的同步结构吧。最好是生产--消费者

tennis8310 发表于 2008-10-13 16:17:12

Thanks for wdyjz's help!
(还是继续请教AD与DA程序之间的实时数据传输问题)

我仿照例程做了一个简单的通告程序:一个循环不断产生数据,发送通知,另外一个循环接收数据 (通告.vi 附件中)

我把上面程序稍做改动,去掉while循环,想把接收的数据直接实时输出。但无循环后,没有了输出(通告modified.vi附件中)

我想问,接收数据部分为什么一定要循环?(因为我的DA程序不方便做循环来接收AD采回来的实时数据)

谢谢!

curben_ma 发表于 2008-10-13 16:22:43

用 堆栈也可以吧。。。全局变量不好,占资源
页: [1]
查看完整版本: 请教:关于不同VI程序之间的实时数据传输