bobozhu 发表于 2006-12-11 22:54:27

Labview:想实现这个功能咋搞

子VI(1.vi)实现:每秒向String Idicator追加一行文字
主VI(main.vi)调用1.vi,如图
得到的结果是主VI的String Idicator一次性显示子VI的最终结果

如果我想要主VI也象子VI那样一行一行的显示 如何实现
那位大侠教教我

cpubbs 发表于 2006-12-11 23:02:51

用全局变量就可以的,兄弟!把它在循环里面放一个全局变量传序给主程序就可以实现了!祝老兄您好运!

LabVIEW8 发表于 2006-12-12 01:15:46

至少有10种方法,介绍简单高效的几种吧:
1、Call SubVI,把subVI的显示部分做为一个subpanel放入到主程序里面,subpanel设置透明,保证完全同步显示;
2、动态调用,把subVI做为main的一个浮动窗口;
3、在subVI中不要串接,在Main中串接,同步通告;
4、subVI中的循环放到Main中;
5、使用Main中输出的那个Reference,Reference的Value接到subVI的输出上;
......
最后一种,Global,设置同样的延迟,实现的是异步刷新
你自己选择吧

bobozhu 发表于 2006-12-12 19:25:21

原帖由 cpubbs 于 2006-12-11 23:02 发表
用全局变量就可以的,兄弟!把它在循环里面放一个全局变量传序给主程序就可以实现了!祝老兄您好运!

谢谢
谢谢哈
不过全局变量好象不行的,那样是一次性显示最终结果的
看图

lgh269 发表于 2006-12-12 20:21:26

用全局变量一定要注意时序

bobozhu 发表于 2006-12-12 20:34:32

原帖由 lgh269 于 2006-12-12 20:21 发表
用全局变量一定要注意时序


谢谢
不过你好象误解我的意思了
我一定要将第一个vi 作为子vi调用
不然模块化程度低,工作量大,麻烦

lgh269 发表于 2006-12-13 11:12:17

你还是没明白,你用TIMED LOOP吧

然后用全局没问题

bobozhu 发表于 2006-12-13 11:39:05

谢谢
在你们帮助下终于解决了

使用notifier搞定的,还比较简洁
页: [1]
查看完整版本: Labview:想实现这个功能咋搞