2019-07-17 10:01发布
12223148 发表于 2017-2-2 09:30 谢谢,请问我这种程序是平铺式顺序结构,能用什么办法实现接收数据的清零呢?
ChE_Li 发表于 2017-1-25 11:35 我觉得具体得看你原来的程序框图吧。 比如,如果是用状态机结构,直接加一个判断按钮是否按下的状态进行跳转即可,因此用移位寄存器就行,当然根据实际情况也可能用到局部/全局变量等;如果是事件结构用超时来控制通讯,那么直接加一个按钮按下的事件即可,因此直接用布尔变量本身就行;如果是while循环,直接再加一个while ...
最多设置5个标签!
具体说如何清零,可也有多种方法吧。7楼说的是一种,即空白写入,它调用的是波形图表的属性。另外如果波形图表的初始值是空白,那么调用初始化属性也是可以的。
同理,你如果是想将整个程序清零初始化,那么调用VI的属性节点,对VI所有控件进行初始化控件也是可以的。
看你程序框图,有几个建议:
1)读写串口VI可以放一起,但是没必要紧接着关闭串口。按你运行截图来看,你这个是要循环读取的,所以,打开/关闭串口以及配置串口等操作最好放在循环外面,但进入循环前进行配置/打开串口,在循环结束后进行关闭串口。不然会不断对内存进行重复操作。
2)你的记录按钮,在你局部的程序框图上我没看出来具体怎么用的。估计你是单独在外面进行布尔变量判断的。如果你的“记录”按钮是指是否进行读写程序,那么可以在整个循环外面加一个条件框图来判断。如果你的“记录”按钮是指是否进行记录读取结果,即不论是否记录都进行读写串口操作,那么直接在读串口VI后面接一个判断框图来对读取缓冲区的数据进行处理会更好点。
3)总体整个程序,按照我的习惯来写,从外到内会是这样的结构:循环结构>>事件结构(用于判断是否运行程序)>>循环结构(状态机:初始化状态,判断状态,读取状态,结束状态)。“清零”“记录”两个按钮都放在判断状态里进行判断,从而确定下一步是重新初始化、读写操作还是停止记录。当然,你也可以考虑把“清零”按钮单独另外反在一个循环结构>>事件结构里面进行操作,这样就相当于额外的另一个轮询。
手边电脑没有Labview,不便上图说明。
谢谢,请问我这种程序是平铺式顺序结构,能用什么办法实现接收数据的清零呢?
一周热门 更多>