纠纷奇闻作文社交美文家庭
聚热点
家庭城市
爱好生活
创业男女
能力餐饮
美文职业
心理周易
母婴奇趣
两性技能
社交传统
新闻范文
工作个人
思考社会
作文职场
家居中考
兴趣安全
解密魅力
奇闻笑话
写作笔记
阅读企业
饮食时事
纠纷案例
初中历史
说说童话
乐趣治疗

LabVIEW编程:以实例学子面板控件的使用方法

3月23日 飞仙轩投稿
  子面板控件介绍
  子面板控件是LabVIEW中的一种容器类型控件,借助于这个控件可以在当前VI前面板上动态加载并运行另一个子VI前面板程序。
  它同选项卡类似,但又不同于选项卡控件,如子面板控件没有选项卡控件的页选择器,一次只能显示一个页面,但它可以在内存中动态加载已运行的子程序,且一个在内存中被加载的子程序(模板程序)可以被多个子面板控件同时加载运行,这样可以实现主面板程序与子面板程序的分离编写,便于一个复杂软件的多人协作分工完成。
  另外,也可以通过子面板控件方便的设计类似向导的用户界面程序,如在顶层VI的前面板上放置上一步和下一步按钮,并用子面板动态加载向导中每一步的前面板。
  下面通过一个例子详细介绍子面板控件的使用方法。
  示例说明
  该示例运行界面如下图所示,通过点击按钮“子面板1”和“子面板2”在“子面板”控件中动态加载并运行对应的子程序,实现不同的功能。其中,在左图中显示的是加载子面板1时的运行情况,动态显示不断变化的正弦曲线;在右图中显示的是加载子面板2时的运行情况,显示了一个字符串“HelloLabVIEW!”。点击“退出”按钮时结束程序的运行。
  其中,子面板1程序(名称为“子面板1。vi”)的前面板及框图程序如下图所示,主要实现利用“正弦信号”函数,每隔50ms产生100个正弦信号的采样点,其幅值为1,在“波形图”控件上显示,程序框图为一始终运行的循环结构,便于主程序面板加载到内存中时能够始终运行。
  子面板2程序(名称为“子面板2。vi”)的前面板及框图程序如下图所示,为简单起见,本例仅仅是每隔500ms显示一个字符串“HelloLabVIEW!”,同上,程序架构为一始终运行的循环结构,以便加载到内存中时能够始终运行。
  框图程序实现过程
  主框架采用while循环事件结构的形式,在事件结构中响应三个按钮控件的“值改变”事件,完成相应的功能。其中,在按钮控件“子面板1”和“子面板2”的值改变事件代码实现过程中,需要重点考虑下面两个主要问题:
  (1)如何在内存中动态加载、运行并将子程序的前面板显示到子面板控件中?
  (2)如何在一个子面板控件中能够随时动态切换显示不同的子程序面板?
  对第1个问题,当在前面板上放置子面板控件时,LabVIEW自动在程序面板上生成一个子面板控件的调用节点函数“InsertVI”,其只需一个参数“VIRef”,为子面板控件中待加载的子程序引用,因此只需在内存中打开一个VI引用并运行即可。实现方式如下图所示,在事件处理结构中,使用了一个包含2帧的顺序结构,在第2帧中取得待加载子程序的路径后使用了三个关键步骤,分别为打开VI引用、运行VI及插入VI到子面板控件,即可实现将子程序的前面板显示到子面板控件中的功能。其中,运行VI步骤中使用了VI引用的调用节点函数“RunVI”,其一个关键参数“WaitUntilDone”设置为假,确保在子面板控件中显示子程序前面板时,无需等待子程序运行完成后才能加载显示。注意,此处最后将打开的VI应用添加到“子VI引用”局部变量中进行保存,以便在动态切换不同子面板时能够将其在内存中成功关闭。
  对第2个问题,本例要求在子面板控件中能够随时切换加载两个不同的子程序面板,此时需考虑的是,当加载另一个子程序面板时,若当前子面板控件中已经加载了一个子程序面板,那么如何将其卸载掉,从而加载新的子程序前面板进行显示。本例的解决方案是在程序中通过一个局部变量来保存当前已加载的VI引用,当加载新的子程序前面板时需判断该变量的值,若该值不为非法的引用句柄,则表示当前子面板控件中已经加载了一个子程序面板,此时调用VI引用的调用节点函数“AbortVI”来终止当前VI的运行并从子面板控件中卸载,然后关闭该VI的引用即可。
  另外,在处理按钮“子面板1”和“子面板2”的事件代码时,由于其完成的功能都是加载对应的子程序前面板,代码除了被加载程序的路径外几乎完全相同,因此本例将这两个事件放在了一个“值改变”的事件结构中。根据当前事件源的控件引用来判断当前是点击了哪个按钮触发了事件。本例中,由于在设计前面板程序时,两个事件源即按钮“子面板1”和“子面板2”其标签是不同的,因此可以利用控件的引用调用控件的属性节点即可得到当前控件的标签,进而判断当前加载哪个子程序面板。这种方法可以大大简化LabVIEW的代码量,使程序更简洁、易读,是LabVIEW中常用的高级编程技巧之一。
  总结
  对于子面板控件的使用,本文通过一个例子,详细给出了如何在内存中动态加载、运行、显示及切换不同的子程序前面板的方法。
投诉 评论 转载

自学编程不再是梦编程语言都是想通的,只是有些门槛比较低,有些门槛比较高,所以我们应该采用曲线救国的方式去学习,比如你想从事C语言,一开始就去学C语言,估计你花的时间和努力是成倍的,既然这样,我……手把手教你零编程一天快速制作自己的教育APP。。。教育APP开发的意义教育APP开发公司哪家好?教育APP定制开发费用怎么算?随着儿童消费的领域从线上到线下,包含的领域众多。目前在线上市场,全国做家园互动的移动教育类AP……养成编程思维,可以从python开始,今天说说p。。。程序分割代码块,python采用代码缩进和冒号“:”。这样程序的代码层次就分开了!一般的情况下,我们要关注两点:1、键,作为一个缩进量。2、空格键4个,作为一个缩进量。想了解缩……刻录软件哪个好用6款免费的刻录app推荐光盘仍旧是一种很不错的存储媒介,把资料刻录到光盘里不失为一种保存数据的可选方式。既然选择了光盘刻录数据,那就需要选择一款好用的光盘刻录软件,下面的六款刻录软件提供了最基本的功能……科普:如何免费生成生活服务小程序?随着移动互联网发展,生活服务行业也开始使用小程序来连接品牌与客户,尤其是家政服务、摄影、美业、课程学习小程序依托于微信十亿流量的平台,方便快捷、不占内存的特点,让它给生活服务行……抖音怎么涨粉?新手抖音怎么涨粉?教你从0做。。。问题:最近有很多人在讨论,到底要不要入局抖音?毕竟“两微一抖”的说法已经出街。其实该不该入局?这一点不用多讲,毕竟在互联网时代,流量就是金钱,没有放着如此巨大的流量而不去争取的……编码RNA与非编码RNA(三)环状RNA(circRNA)是闭合环状的RNA分子,不受核酸外切酶降解,因而比线性RNA更稳定。最初认为circRNA是异常剪接的产物,最近由于生物信息学和深度测序技术的应用,……win10录屏功能怎么开启win10录屏功能怎么开启?不管是录制教程还是游戏,很多时候我们喜欢使用第三方的软件达到效果,很多小伙伴升级win10系统后发现自带录屏功能,那么下面小白系统带你看下如何开启w……CPU是如何工作的?CPU(中央处理器),也被称为微处理器,是计算机的心脏和或大脑。本文让我们一起深入了解计算机的核心,以帮助我们高效地编写计算机程序。作者MilapNeupane……怎么把地址、电话等信息生成二维码?有哪些。。。想把地址、电话等内容类信息生成二维码其实非常简单。方法见下:1。草料二维码PC端百度“草料二维码”,进入草料官网。把你想要输入的文本信息输入进去,点击生……LabVIEW编程:以实例学子面板控件的使用方法子面板控件介绍子面板控件是LabVIEW中的一种容器类型控件,借助于这个控件可以在当前VI前面板上动态加载并运行另一个子VI前面板程序。它同选项卡类似,但又不同于选……第二课:菜鸟必备命令(中)1、Copy命令将一个或多个文件从一个位置复制到其他位置命令格式:C:0hack。D:(将c:0hack。tx……
如何撰写读书报告2019年英国南安普敦大学世界排名【QS最新世界排名第96名怎样在CAD中输入乘号三观是什么意思小学英语课可以玩哪些游戏?中小学学籍系统如何查询学生学籍怎样学好英语,我的方法word文档怎么变成横版试管的用途和注意事项是什么?EXCEL表格怎样修改日期为年月日怎样学习素描?怎样制定学习目标
日本听我对你说(转载)硬卧上铺空间多大花王染发剂兑好了可以放多久至的拼音至的正确读音品味秋色叙事作文夏日垂钓网络安全宣传周活动主题是什么?李师师出生时不哭不笑,父亲带到寺庙祈福,住持你不该来这里降雨降温!未来一周,及时添衣父母在,儿女才有家可回一体化压铸工业神话or资本泡沫?美业SaaS即将进入剩者为王期

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找美丽时装彩妆资讯历史明星乐活安卓数码常识驾车健康苹果问答网络发型电视车载室内电影游戏科学音乐整形