LabVIEWwilliam hill官网
直播中

荣琪

8年用户 689经验值
擅长:可编程逻辑 测量仪表 嵌入式技术
私信 关注
[文章]

荣小菜补钙记第50期:报文合成与解析之统型设计4(含源码)

荣小菜补钙记第50期:报文合成与解析之统型设计4
同步更新于 WeChat:荣小菜在补钙
欢迎关注 内容更丰富
大家好,我是荣小菜,本期开始讲解Demo中的“ControlCluster”类,展示如何根据Excel加载表的内容生成对应控制项UI。话不多说,先看视频吧。
1.     视频演示
在视频中,我们将逐条讲解ControlCluster.lvclass的关键Vis并详细介绍它们的功能和实现逻辑。
(视频见底部)
                              
2.     补充
这里简单补充一下数值引用的内容。在数据处理时,我们常常会将写一些数据处理Vi,这些Vi一般以数组为输入输出端口。数据量小的时候这样做问题不大,但是当一个数组达到几百MB时,我们写的程序往往会报错,提示内存不足。
随后我们Debug时会发现,一个输入数组500MB,分别经好几个Vi进行数据处理,经过1个,内存就增长500MB,再经过1个,内存再增长500MB。按照这种写法,labview本身可使用的2G肯定不够用,估计再给个20G也不够用。这主要是因为每个Vi都会复制一份数据,而只要程序还在运行,该Vi就算执行完毕,也不会自动释放其复制的内存。
一种方法可以在Vi里使用“请求释放内存”函数,但是数据处理Vi一般是频繁运行的,而频繁请求释放内存会降低运行速度,也可能导致未知错误。
另一种方法是在数据结构上进行优化,使用“数据值引用”,官方帮助文档如下,使用该方法,可以大大减少内存占用,加快执行速度。
值引用方法优点.JPG
最后再介绍一个工具包,在数值引用的基础上,Variant Ring Buffer (或者叫:环形缓存、环形缓冲器、环形队列) 工具包可以帮助我们更好的管理内存,有兴趣的可以去研究一下。

Demo源代码:
控制UI加载表.rar (21.91 MB)
(下载次数: 128, 2021-11-22 21:44 上传)
注意:考虑到可能有人没有QControl,我进行了源代码发布,使用时请注意。
分享开源免费,共同学习进步^_^

20211122-204255

回帖(4)

LVGT

2021-11-22 23:47:21
感谢分享。。。。。
举报

一枫一叶

2021-11-23 08:54:52
感谢分享,感谢分享
举报

myyugin

2021-11-23 16:39:17
谢谢楼主分享,学习一下!!!
举报

吴增初

2022-1-17 14:42:34
66666666666666666太牛了
举报

更多回帖

发帖
×
20
完善资料,
赚取积分