当前位置:首页 > 消费电子 > 消费电子
[导读]Lebview现在已经越来越广泛地应用于测量、控制、教学、科研等领域,它采用图形化编程方式,内置大量功能,能够很方便地完成数据采集分析显示、仪器控制、测量测试、工业过程

Lebview现在已经越来越广泛地应用于测量、控制、教学、科研等领域,它采用图形化编程方式,内置大量功能,能够很方便地完成数据采集分析显示、仪器控制、测量测试、工业过程仿真及控制等多种操作,并具有良好的可扩展性。

在应用Lebview进行实际项目开发时往往要求程序能够实现多功能集成化,这时程序界面的统一化、便于操作等要求就十分重要。本文以虚拟信号发生器的开发过程为例,对使用Labview开发虚拟仪器时人机界面模式的设计与实现进行了研究。

2 虚拟信号发生器的系统要求及分析

2.1 系统要求

虚拟信号发生器的总体设计要求如下'1、实现多功能信号发生,能够产生常用波形(正弦波、三角波、方波、齿锯波等)、用户自定义函数波形、加噪波形等。2、可进行参数调节、并完成波形的数字存储功能。3、要求良好的人机交互界面,易于操作。

2.2 设计分析

在Lebview中实现单一功能的信号发生较为简单,只需在前面板放置相应的控件进行波形参数设置、波形显示及数据存储路径选择,然后在框图程序窗口选择合适的功能节点,并完成各节点及端点的逻辑连接即可达到要求。

按照系统设计要求,程序不但需要实现多种功能,同时还应该具有能让用户便捷地进行操作的特点,而简单地将多个子功能程序放在一起并不能满足要求。

我们针对"便于操作、良好的人机交互界面"这个系统要求进行了综合分析,设计了三种具有不同特点的人机界面模式:整体界面模式、弹出式界面模式、动态调用界面模式。

3 虚拟信号发生器的人机界面设计

3.1整体界面模式设计

整体界面模式的特点:所有功能模块的参数设置及实现均在同一界面下,不同的功能对应不同的功能按钮。当按下某一按钮时,将实现相应的功能操作。

3.1.1 前面板设计

在前面板设计中,我们将公共参数放在一组,以免出现重复控件;将各子功能的特征参数分在不同的组中,以方便用户操作。波形的显示由一个graph控件完成,数据存储也共用同一功能区。用互锁按钮实现各子功能之间的切换。

3.1.2 框图程序设计要点

我们选用了选择结构来完成整体界面模式的实现:将常用信号模块、用户函数信号模块、加噪信号模块分别作为选择结构的三个分支。当按下所需功能按钮时,执行所选的子框图程序,完成相应操作。这里需要注意的是各子功能按钮应该设置为互锁关系,即在任一时刻只允许有一个按钮被按下。当另一按钮被按下时,原先在按下状态的按钮将自动弹起。

我们将各子功能按钮放入一个数组中,则该数组内容对应各按钮的开关状态。然后设置一个while循环结构,利用循环结构的移位寄存器比较本次循环中的按钮数组内容和上次循环中的按钮数组内容,若相等,则说明没有按下其他按钮;若不等,说明有另外的按钮按下,此时需要将按钮数组的内容重写:原来按下的按钮逻辑值应该改为"false",而新按下的按钮逻辑值应变为"true".可将当前按钮状态内容与前一次的按钮状态内容进行异或运算来实现这两步功能。更新后的按钮状态通过局部变量对原按钮数组内容进行重写完成。互锁逻辑的框图程序如图2所示。

整体界面模式的优点在于所有子功能模块均在同一界面下,整体可视性、可操作性较好。但当子模块类型较多时,将出现界面过于臃肿而不易操作、编程过于繁杂的问题,此时我们可以通过Tab控件进行功能模块的分类,以达到简化前面板界面的目的。

弹出式界面模式的特点:在主程序面板按下子功能按钮时,将弹出相应功能的子程序面板,子面板运行完毕后将返回主面板。

3.2.1 前面板设计

我们将各子功能模块做成多个子程序,为调用方便与主程序放置在同一路径下。主程序的前面板只需实现相应功能的调用按钮配置。当需要使用某项功能时,按下对应的按钮即可将子程序界面调出,执行完毕后关闭子程序则可退回主程序界面,进行其他功能的调用。虚拟信号发生器运行过程中的弹出式界面如图3所示(调用"常用波形发生"子功能程序)。

3.2.2 框图程序设计要点

利用Labview的事件驱动功能可以较容易地实现弹出式界面的设计要求,因此我们选择事件结构来实现虚拟信号发生器的弹出式界面的程序设计。

在主程序的事件结构中,为每个功能按钮的事件发生指定相应子功能程序的调用。这样,每次当某一功能按钮按下时,Labview会自动通知程序所发生的事件,然后按照为这个事件指定的程序代码对事件进行响应。主程序的框图设计如图4所示。

弹出式界面模式的优点在于界面及程序结构清晰,所有子模块单独编程,由主程序按需调用,这样可以大大减少编程的复杂程度。

3.3 动态调用模式

动态调用模式的特点:子功能程序仅在被调用时动态加载入内存,调用结束后即释放。

3.3.1前面板设计

我们将程序界面分为左右两个区域:左边区域设置各功能按钮,可按需调用子功能;右边区域由子面板控件subpanel构成,在子功能被调用时显示和运行相应界面及功能。图5所示的是程序调用"函数信号发生"子功能程序时的界面情况。

3.3.2 框图程序设计要点

为了方便调用子功能程序,将主程序和各子功能程序保存在同一路径下。

主程序运行时,当需要调用某一子功能程序时,首先应该知道该子程序的整体路径:可以先使用cur-renl VI'S Poih函数和Stdp Path函数获取主程序的路径,将此路径与需要调用的子程序名合成子程序的整体路径。然后由loodondRun函数将已知路径的子程序加载并启动,最后在subponel控件对应的调用节点中使用Insert VI方法将子程序的面板插入子面板控件中。

不同子功能程序的选择要求由选择结构实现。

动态调用界面模式的优点在于子模块单独编程,结构清楚,编程的复杂程度低;程序动态加载,占用内存少,加载速度快。

4 总结

我们基于虚拟信号发生器的设计对Labview编程中常用的三种人机界面模式:整体界面模式、弹出式界面模式、动态调用界面模式进行了详细的分析和研究,在实际项目开发中可以根据具体情况直接选用这些模式进行界面设计,也将它们综合使用,以达到更高的设计要求。

另外需要指出的是,每种模式的实现方法也是灵活多变的,比如2.1中涉及到的互锁按钮也可以用枚举(Enum)控件实现相同的功能。而互锁逻辑的实现也能使用事件结构结合设置控件属性节点的方法实现:当某一功能按钮(如"常用波形"按钮)按下时,执行相应程序代码:将自身的逻辑值置为lrue,同时使其他功能按钮的值为false.

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭