LabVIEW对按钮控件提供的六种不同动作方式

描述

LabVIEW开发的一大优势就是做界面十分方便,而在开发的过程中我们一定会使用前面板控件,其中布尔控件中有一类按钮控件,我们可以通过按下控钮来设计实现不同的程序功能,但是在使用和开发的过程中大家是否注意到按钮控件有不同的动作方式?

其实LabVIEW对按钮控件提供了六种不同动作方式,这就是控件的机械动作。它们可以通过右键选中控件然后选择机械动作来进行设置,这六种不同的机械动作导致按钮输出值的行为是不同的,下面让我们来一起学习这六种机械动作吧!

一、机械动作的分类

布尔控件的机械动作用于模仿与真实仪器(如示波器、信号发生器、万用表等)相类似的前面板按钮行为。机械动作一共分为两类:一类是切换动作,另一类是触发动作。切换和触发动作的相同之处是他们都改变了布尔控件的值,不同之处是他们如何恢复控件的原值。

转换动作是控件从原值转换为新值并且保持一定的转换时间;而触发和转换不同,触发是按钮输出新值只一次,然后立刻恢复为原值,它输出新值时不会保持一定时间。

切换动作:适用于只能由用户将控件值恢复到原值时使用该类机械动作

触发动作:适用于由读取控件的VI将控件值恢复到前一个值时使用该类机械动作。这时用户也可以将控件值恢复成原值,但必须在VI读取控件之前进行。

动作 描述 应用场景
单击时转换 单击时立即改变控件当前值,且保留新值直至下一次单击控件。 照明灯开关—按下开关后灯立即点亮,并一直保持点亮到再次按下开关为止。
释放时转换 释放鼠标按钮时改变控件当前值,且保留新值直至下一次单击控件。 复选框—只在释放鼠标按钮后才改变复选框的值,单击后如将鼠标移至复选框外再释放则复选框值不改变,因而有更多考虑空间。
保持转换直到释放 只在单击鼠标并保持鼠标按钮按下期间改变当前值并保持新值,释放鼠标后将恢复原值。 门铃—按下按钮后门铃立即响起并保持响声直至释放按钮。
单击时触发 单击时立即改变控件当前值,且在VI读取该控件新值后恢复原值。 紧急停止按钮—按下按钮后系统立即停止运行,且按钮在系统读取值改变后立即重置,从而允许被再次按下。
释放时触发 释放鼠标时改变控件当前值,且在VI读取该控件新值后恢复原值。 关闭按钮—只在释放鼠标按钮且应用程序读取了值改变后才关闭程序,单击后如将鼠标移至按钮外再释放则不关闭,因而有更多考虑空间。
保持触发直到释放 只在单击鼠标并保持鼠标按钮按下期间改变当前值并保持新值。释放鼠标按钮且VI读取控件值后将恢复原值。 机器人移动控制器—按下控制器后控制器通知机器人系统移动机器人。释放控制器按钮后,机器人系统读取控件值,机器人恢复不动的状态。

  、 机械动作介绍

1、单击时转换

鼠标按下时,按钮输出的值会转换。例如,如果按钮的值设为假,当按钮被按下,值就转换为真。并且新值会一直保持下去,直到按钮再次被按下。该类控件常用于控制LED灯的开和关。

信号发生器

2、释放时转换

鼠标按下时不改变状态,只有当鼠标在控件上释放时才改变状态,如果鼠标未释放或在控件范围外释放则不改变状态,生效后可以一直保持新值状态。该类控件类似于Windows的确定按钮,用户按下按钮后又经过考虑还是不确定了,可以将鼠标移到按钮外释放,这样就可以放弃此次转换。

信号发生器  

3、保持转换直到释放

鼠标按下时状态改变,并且新值只持续到鼠标释放;鼠标释放时控件恢复成原值状态;控件保持转换的时间取决于鼠标按下和释放之间的时间间隔。该类控件类似于门铃按钮,按下按钮后铃声开始响起,松开按钮后铃声停止。

信号发生器

4、单击时触发

鼠标按下时状态转变为新值,不论鼠标是否释放,按钮立即恢复为原值。该类控件类似于仪器仪表上的功能按钮,按一下后执行控件功能,并且控件会自动复位到初始状态,等待下一次触发。  

信号发生器

5、释放时触发

鼠标按下时不会触发,当鼠标在按钮上释放时才会触发一次值改变,触发完成后控件会立刻恢复到初始状态;当鼠标在按钮外的地方释放时按钮不会动作。和“单击时触发”相比,“释放时触发”会给用户一些考虑时间,防止用户的一些误操作导致程序出现某些不可预期的错误。图示效果请参考“单击时触发”。

6、保持触发直到释放

按钮当按下并保持时改变值,并且在按钮被释放后保持这个改变的值被读到一次。之后,它将返回到它的原值。比如值设为假的按钮当被按下和保持时将变为真。在释放之后,它将多输出真一次,然后返回为假。

信号发生器  

三、开发小Tipes

1、触发动作不兼容局部变量

触发动作与局部变量不兼容,当控件设置为按下时触发、释放时触发和保持转换直到触发这三种机械动作时如果创建该控件的机械动作会导致VI断线并报错,将控件更改为转换动作后才能使用局部变量。

信号发生器  

2、触发动作自动恢复初始值

触发动作理论上都会自动恢复为初始值,但在开发的过程中需要将控件置于循环内部(一般置于该控件的值改变事件结构中)才能实现控件自动恢复为初始值。下面以一个单击时触发的控件为例给大家展示这个小技巧:

按钮在循环外,未自动恢复初始值:

按钮在循环内,自动恢复初始值:

3、机械动作与“值改变”事件

不同机械动作控件使用事件结构中的“值改变”事件时事件结构捕获并响应的次数是不同的,其中“保持转换直到释放”和“保持触发直到释放”按钮在完成一次操作时可以触发两次“值改变”事件,而其余四种机械动作只会让事件结构捕获并响应一次“值改变”事件。下面我们以一个简单的程序实例来看看不同机械动作的控件,事件结构是如何去响应该控件的“值改变”事件的:

单击时转换: 释放时转换: 保持转换直到释放:   单击时触发:  

释放时触发:

保持触发直到释放:

4、恢复按钮至默认值

在实际开发过程中,我们往往需要在点击控件后让控件能恢复到默认状态,触发动作的三种类型控件可以将控件至于循环内部来实现恢复为默认状态,那转换动作的控件应该如何去恢复至默认值呢?其实使用调用节点来实现这个功能可以恢复任意控件的默认值,程序框图如下:

信号发生器

5、机械动作范例

在LabVIEW的范例查找器中搜索“机械动作”,或者在范例查找器中的创建用户界面>>常规中找到机械动作范例,可以学习和熟悉六种机械动作的使用。

信号发生器

以上就是有关LabVIEW中按钮控件机械动作的全部内容啦,本文的示例代码都比较简单,感兴趣的小伙伴可以参考文中的图片和视频自行编写使用!  


审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分