几种LabVIEW 编程框架介绍
本帖最后由 xyl4804 于 2009-3-8 16:44 编辑本着取之论坛,服务论坛的精神,结合我所做的测试项目,在这里总结几种比较常用的LabVIEW 编程框架,和大家分享,希望对LabVIEW爱好者有所帮助。待完善的地方望高手指正。
第一种:基于队列和事件管理的多线程编程框架。这个框架主要会用到:事件结构,基于队列的状态机,生产者消费者模式,由用户事件管理的错误处理机制,等。
这个框架是我目前项目中最常用的。它由三个主线程和若干个硬件线程组成。
这三个主线程包括:事件管理循环,管理所有任务的所有状态;主循环,完成除硬件任务以外的所有任务,例如,数据库存储,回放,菜单操作等等;显示循环,负责显示程序中需要显示的所有数据;若干个模块化硬件循环,负责执行由事件控制的硬件任务。
程序框图如下。
To Be Continued...
20090308,
下面附件中有这个程序框架的子单元,其他循环也都是按照这种思路添加进去的。
这个框架实际就是多个生产者/消费者(事件)结构的组合,这些结构由一个事件循环统一管理。另外,每一个循环又都是基于队列的状态机,这样一来除了事件结构外,每一个循环也能控制自身的状态队列。
谢谢分享。看来又有连载的好东东可以学习。 方便的话可以传些程序更好看。 3# baby
好的,我整理一下。 图太乱,看不清。偶图省事,全搞成全局变量了。线程之间都是全局变量交互。 学习一下!!!!! 不知道楼主什么时候出第二部? 谢谢分享 NI 的生产者和消费者结构在你这个图上表现的淋漓尽致。 哪位高手做出程序来看看啊? 图太乱,看不清。偶图省事,全搞成全局变量了。线程之间都是全局变量交互。
CR333 发表于 2009-3-9 02:50 http://www.cpubbs.com/bbs/images/common/back.gif
这不是个好办法 请问各位,按照楼主的框架如果子循环中出现错误,如何停止event handling循环?其他循环可以通过enqueue “quit” element来实现。 12# foolooo
哦,用event ref来结束……刚看到。 先学习下,谢谢楼主和各位大虾
页:
[1]