labview串口接收到的数据怎样实时更新?

labview串口接收到的数据怎样实时更新?,第1张

如果你每次收到的字节数能确定(比如每条发过来的命令字节数固定,或者最前一两个字节表示后面的字节数),就按照字节数接收。然后直接把收到的字符串给显示控件,不使用移位寄存器或反馈节点当然就不显示之前的字符了。

别加“等待”之类的函数(手表图标哪个),串口读取函数会在读到指定数量的字符或到达超时之后返回读到的字符串。用它就能控制循环。也就是说来一条命令或者到达一次超时之后,自动循环一次,字符串显示控件里面的值就是刚收到的字符串了。

如下图:

可以把图片下载后直接拖入2012或2013的程序框图中。外层的错误分支中有个串口配置失败的d窗提示。

串口的参数我就使用默认的“9600,8,n,1”了,超时值我设置的是100ms,为了让程序运行时不会因为默认的10000ms超时显得程序卡死。但是几乎每100毫秒就会有一个超时错误并返回空字符串,所以内层的错误分支什么也没做,在超时的时候不用空字符串替换原有的显示值。

如果字符数不确定,你还不想保留之前的值,那就不好办了。很有可能会造成一句话分两次显示的情况,某次显示前面一部分,后面一次显示后一部分。

看下图吧:

为减少上述情况的出现,我把超时值改为了1000ms,后面的条件分支根据读到的字节数区分。0的时候不更新显示控件,其它值的时候显示刚刚收到的字符串。因为你不要和前面的拼凑,所以有可能是不完整的。

其实也可以让字符串显示控件自动滚动,或者字符串长度达到一定长度时或点清空按钮时,清空显示值。可以用反馈节点/移位寄存器/局部变量/值属性等。

下图的做法最简单,因为用的是输入控件,可以随便删除之前的内容。

使用update一次是可以更新整条记录的啊。

update的语法:

UPDATE 表名称 SET 列名称 = 新值, 列名称 = 新值, 列名称 = 新值 WHERE 列名称 = 某值

你好,针对你说的可以用db工具包中的

db

tool

seclect

data.vi

具体语句例如你是要找节点编号是8的数据,就是这样连接:

想要后续处理数据,只需对变体后的二维数组进行编程 *** 作就行。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9881476.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存