【LabVIEW】子vi面板调用

目录

多次拷贝子 vi 同时开多面板

按键调用子vi

应用


多次拷贝子 vi 同时开多面板

在实际使用时,需要同时开很多 chart 显示多个信号的实时变化,如果全部放在一个面板需要很大的窗口空间,因此考虑了以下套娃式拷贝设计:

  1. 给子 vi 设计一个按键 new ,对这种子vi进行拷贝(包括新建文件名)、打开新拷贝的 vi 前面板并运行;

  2. 在子 vi 增加一个按键 delete,按键触发会自动删除该拷贝文件,并关闭前面板;

试着编了一下,子 vi 是个空文件没有任何功能,可以实现目标:

在主 vi 里点击套娃调用按钮,能够完成第一次拷贝,把目标子 vi 的文件的 reference 存到一个全局变量 Global Variable 中(也可以用dialog进行文件选取),得到的 Path 包含了原始文件名,后缀是.vi,利用 Search and Replace String 控件给其加入了_copy1的名字后缀,copy为新文件,并将新路径也存到一个全局变量中。同时利用vi Invoke Node 打开并运行新拷贝的文件;

目标子vi文件的 reference用 File Dialog 控件选取得到:

 而子vi利用循环,从全局变量中访问到目前最新拷贝出的vi文件路径,进行套娃式的自动名称迭代、拷贝、打开和运行:

也可以通过delete按键关闭和删除不需要的子vi面板和文件:

 

按键调用子vi

如果不需要重复打开很多个相同子vi面板,只需要把所要打开的子vi文件的 reference 存为全局变量 Global Variable ,在主vi中利用按键打开前面板,并运行目标子vi程序:

 

 注意在子vi 中需要设计一个按键 close,用于停止子vi的运行 (不对初始文件进行删除),否则子vi运行过程中主vi的其他按键不再起作用,跳出子 vi 后,在主 vi 中继续进行关闭子 vi 前面板的逻辑,在子 vi 的close所进入的Event Structure是空白的,但必须要有这个:

 点击子vi中的close按键就能够停止运行、关闭子vi前面板,程序跳回主vi;

应用

利用上述逻辑,把 Chart 和选择 List 作为全局变量放在子vi中,可以打开多个图窗,选择所需要观测的信号绘制:

 如果出现问题,大多是没有事先设置好vi的property;在实际使用中发现仍然存在问题,每次打开新拷贝之后,之前的图像会停掉;针对这个问题进行检查:

实际需要在打开拷贝文件之后,保持原vi的正常运行,因此在 Run VI 的设置中 inactive Wait Until Done,即该vi程序中打开拷贝子vi文件并运行时,不会等待子文件结束运行,而是同步运行;同时注意通过 File --> VI property --> Execution 选择 Rentrancy 为可重复进入执行;在子vi的 delete 按钮删除机制中添加对前面板的关闭,就可以实现想要的功能。

几种调用的 demo 文件放在最前面,运行时需要选择 subVI 作为被调用的子vi;

  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值