关于labview状态机事件结构的疑问

2019-07-17 10:50发布

最近学习使用状态机事件结构
但是遇到点问题
举个简单例子,说明下我遇到的问题
前面板有两个按钮,按下1按钮灯亮,按下2按钮灯灭
newscreen9730780.jpg
因此将程序分为两个条件
分别为灯亮 和 灯灭
灯亮条件结构中有个事件结构,就是当1按钮按下灯亮。
QQ截图20140326104948.png
灯灭条件结构中也有个事件结构,是当2按钮按下灯灭。
QQ截图20140326105000.png
程序按照先按1,再按2。这样运行没有错
但是先按2,程序界面就被锁死
当我将事件结构中锁定屏幕去掉后,程序就不会被锁死
换句话说,其他条件中的事件结构被相应,但没有执行
但是逻辑上来说,这不符合实际,因为没有执行的条件,事件结构如何能够相应
这是BUG还是我事件结构的原理没搞清楚?
请大家帮忙解答

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
19条回答
koolin534
2019-07-19 08:32
相信楼主已经解决了这个问题了。
刚好正在学状态机,说一下自己对这个问题的理解。
楼主说的锁定屏幕我没有看到,所以不对这个进行理解。
因为while循环外的移位寄存器初始化值是“灯亮”,所以程序一运行,就会进入到灯亮的条件结构中,而灯亮的条件结构中存在“1”值的事件结构,事件结构本身存在等待的动作,所以程序就一开始就一直处于“灯亮”条件结构内的事件结构外等待中。
另外,While循环外的移位寄存器赋值最好使用枚举的格式,While循环的停止条件不应该为空,应该随时保持赋值状态。以免出错。

一周热门 更多>