LabVIEW事件结构

问题

今天学习LabVIEW时,遇到了在for循环结构中加入了事件结构的情况。我自己先写了一个,然后就发现程序执行第一次循环后就不再继续了。接着看了下参考程序,原来是在事件结构中加入了“超时”事件。不得其解,于是Google资料,然后就明白了。

原理

在事件结构中,默认的超时参数为-1,也即“永不超时”。当循环结构包含事件结构时,如果事件源没有发生,那么程序会一直等待事件发生。这样循环就无法进入下一次循环。这样,就只能给一个超时事件的分支(该分支内不需要有响应代码)。当超时后,程序就不再等待,从而进入下一次循环。若要详细了解LabVIEW事件结构,可以参考1


### LabVIEW事件结构的使用方法 #### 一、LabVIEW 事件结构概述 LabVIEW事件结构用于响应各种类型的事件,这些事件可以来自前面板控件的操作、定时器触发或其他特定条件。事件结构允许程序根据发生的事件执行不同的操作[^1]。 #### 二、创建并配置事件结构 为了在 VI (虚拟仪器) 中添加事件结构: 1. 打开函数选板,在 **编程** 类目下找到 **结构** 子类目中的「事件结构」图标,并将其放置到程序框图中。 2. 右键单击事件结构边框上的空白处,选择 **编辑事件列表...**, 此时会弹出对话框让用户指定要监听哪些对象及其关联的事件类型。 3. 添加所需监视的对象(如按钮、滑动条等),以及对应的事件种类(按下、释放、数值改变等)。对于每一个选定组合,都能够在事件框架内编写专门处理逻辑代码片段。 #### 三、具体实例展示 下面给出一段简单的例子来说明如何利用事件结构实现交互功能: 假设有一个带有两个输入控件(数字旋钮和字符串输入框)及一个显示标签的面板界面;当用户调整任意一项参数之后,希望自动更新标签内容为两者拼接而成的新文本串。 ```labview // 前面板设计部分省略... // 程序框图区域布局示意如下: // 放置好事件结构后, 对其内部做进一步设置: // 配置监听源为目标控件们各自的 "值变化" 事件. // 接着分别针对每种情况定义具体的动作流程. Case Structure // 根据不同组件产生的事件进入相应分支 Case: 数字旋钮 Value Change Event Fetch the new value from numeric control and convert it into string format; Concatenate this number-string with current text inside String Control; Update Label Indicator using updated combined message; Case: 字符串输入框 Value Change Event Get modified content directly since its already in proper type; Combine existing numeral part plus fresh inputted phrase together as one sentence; Refresh Text shown on label accordingly by setting property node output to aforementioned composition; End of Event Structure ``` 上述伪代码描述了一个典型的应用场景:每当检测到来自界面上任一组件的数据变动信号,则立即启动对应子例程完成信息同步刷新工作。实际开发过程中应当依据项目需求灵活调整细节之处。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值