如何实现接收数据的清零
具体说如何清零,可也有多种方法吧。7楼说的是一种,即空白写入,它调用的是波形图表的属性。另外如果波形图表的初始值是空白,那么调用初始化属性也是可以的。
同理,你如果是想将整个程序清零初始化,那么调用VI的属性节点,对VI所有控件进行初始化控件也是可以的。
看你程序框图,有几个建议:
1)读写串口VI可以放一起,但是没必要紧接着关闭串口。按你运行截图来看,你这个是要循环读取的,所以,打开/关闭串口以及配置串口等操作最好放在循环外面,但进入循环前进行配置/打开串口,在循环结束后进行关闭串口。不然会不断对内存进行重复操作。
2)你的记录按钮,在你局部的程序框图上我没看出来具体怎么用的。估计你是单独在外面进行布尔变量判断的。如果你的“记录”按钮是指是否进行读写程序,那么可以在整个循环外面加一个条件框图来判断。如果你的“记录”按钮是指是否进行记录读取结果,即不论是否记录都进行读写串口操作,那么直接在读串口VI后面接一个判断框图来对读取缓冲区的数据进行处理会更好点。
3)总体整个程序,按照我的习惯来写,从外到内会是这样的结构:循环结构>>事件结构(用于判断是否运行程序)>>循环结构(状态机:初始化状态,判断状态,读取状态,结束状态)。“清零”“记录”两个按钮都放在判断状态里进行判断,从而确定下一步是重新初始化、读写操作还是停止记录。当然,你也可以考虑把“清零”按钮单独另外反在一个循环结构>>事件结构里面进行操作,这样就相当于额外的另一个轮询。
手边电脑没有Labview,不便上图说明。
方法有好几种;适合自己的就好
复位
局部变量应该要用到
我觉得具体得看你原来的程序框图吧。
比如,如果是用状态机结构,直接加一个判断按钮是否按下的状态进行跳转即可,因此用移位寄存器就行,当然根据实际情况也可能用到局部/全局变量等;如果是事件结构用超时来控制通讯,那么直接加一个按钮按下的事件即可,因此直接用布尔变量本身就行;如果是while循环,直接再加一个while循环+事件结构用于清零处理。
当然用什么信号量那些也是可以考虑的。
个人建议。
谢谢,请问我这种程序是平铺式顺序结构,能用什么办法实现接收数据的清零呢?
将波形图表属性节点 历史数据写入空值,波形就清零了,接受数据可以用属性节点也可以用局部变量
谢谢,有没有例子啊,接收数据的属性节点选项有点多,不知道怎么用,求指点
你用的是中文版还是英文版
历史数据在属性节点最下方
谢谢!能否给个qq,我还有很多的疑问,可以请教你吗?
546740089,相互学习
谢谢!
感谢小编!