微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 模拟电路设计 > LabVIEW数据流控制方法研究

LabVIEW数据流控制方法研究

时间:03-22 来源:互联网 点击:

针对问题⑴,程序遵循“对操作的按钮不操作”的原则。如框图1,用SEARCH 1D ARRAY分辨出被操作的按钮,对其它按钮置“假”。这样,按钮间就可不发生冲突。

  框图1

  框图2

针对问题⑵,则必须充分考虑程序的数据“流”运行过程。分述如下:

  ① 每次读BUTTON布尔值时,都要考虑外界面是否有对按钮的操作输入,这在框图1、2中都体现得很明显;

  ② 框图1要循环2次很关键。考虑这样一种情况:外界面对按钮的操作在BUTTON ARRAY(1)与BUTTON ARRAY(2)之间,则在循环的第一次对按钮的操作没有起作用,但它以反馈机制把按钮信息传给了始端,由于程序运行的速度远在人工界面上的手动操作速度之上,所以循环的第二次无外界输入,这样对按钮的操作在循环二次后便响应了,没有挂空。同理,当外界面对按钮的操作介于BUTTON ARRAY(2)与框图2的read BUTTONs之间时,外界面对按钮的操作会在下一循环(对实际测试系统肯定是大范围循环操作的)产生作用,由于程序运行得很快,操作者看到的是“实时”的操作。如果在read BUTTONs之后,那就回到框图1的始端了。因此,任何时候按下按钮,程序皆运行正常。

  针对问题⑶,未初始化的移位寄存器能保留原有的状态。在程序运行前,若出现按钮异常现象,由于程序默认一个按钮按下,异常按钮会立即得以纠正。

  对于数字化按钮(见流程图框图2)的实现,将按钮状态转化为0、1,用一个连加运算根据其和的大小便可知道是否同时有多按钮或单按钮或无按钮按下,从而将按钮信号引出。

  图2 部分LabVIEW程序示例

  4 结束语

  单选功能按钮的设计是个很典型的数据流控制实例,文中给出的用LabVIEW本身解决变量冲突、响应时序控制、初始状态自适应调整等问题的方法,没有使用事件驱动结构,避免了在测试系统中并行使用事件驱动结构产生的冲突。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top