网站程序自带的采集器采集文章(在后面板的范例主要是在“队列消息处理器”项目模板)

优采云 发布时间: 2022-01-04 16:14

  网站程序自带的采集器采集文章(在后面板的范例主要是在“队列消息处理器”项目模板)

  LabVIEW2014在项目创建模板中有“连续测量和记录”例程。这个模板可以作为一些中小型采集、处理、存储系统的模板。

  前面板:

  

  前面板

  前面板的功能非常简单。通过设置按钮设置波形,点击开始生成(采集)波形,点击停止生成采集,对话框显示当前状态,退出退出系统。

  后面板功能齐全,功能强大。后面板上的例子主要是在“队列消息处理器”项目模板的基础上创建的,该模板设计有足够的公共知识,如用户事件、队列、通知程序、生产者-消费者结构、控件引用、许多知识方面,例如使用自定义控件。

  这个连续测量和记录的模板是从左到右、从上到下、从外到内介绍的。

  

  

  程序首先执行事件注册和声明。作者在一般的程序开发过程中并没有使用它。在偶尔的使用中,我发现这种事件注册和响应的方法非常适合在LabVIEW中进行中断处理,避免接收数据。使用了不间断轮询的方法,但是具体的实现方法没有在项目中实现,不再赘述。

  接下来是队列的声明和初始化,用于创建应用程序所需的所有消息队列。如果应用需要两个以上的消息队列,可以右击上面的“消息队列”常量,选择打开自定义类型,在自定义类型中添加一个新的消息队列,然后通过这个VI进行初始化,就可以了queued out-queue、out-queue等函数函数都封装了两次。虽然功能与入队等内置功能相同,但可以实现队列消息和消息数据的传输。这样,笔者认为非常方便。它在队列中传输。在这个过程中,相当于消息标记了要传输和处理的数据。数据采用变体形式,

  

  通知功能不是很可靠,所以我的应用不多,但作为一个理解,我也建议学习如何使用它。熟悉这个方法可能很适合在其他地方使用。

  

  初始化完成后,从*敏*感*词*上介绍框架。如上图所示,这是典型的生产者-消费者结构。事件处理循环会响应前面板用户事件,通过UI队列进入UI消息循环,对前面板的动作进行“启动、存储”等一系列前面板的处理。 用户操作,UI消息队列作者经常充当中继站,对前面板的操作进行分类中继,然后在UI消息循环中对类型进行分类,如下图所示。比如storage放入storage loop进行处理,所有采集都放入采集循环进行处理。不同的板子可能有采集存储等功能。对相似的函数进行分类,以方便数据处理。如下图所示,采集录制UI队列会进入UI消息循环进行分发,然后在Acquisition Message Loop和Logging Message Loop中进行处理,例如< @采集 需要存储吗?在这两个循环中,UI队列需要排队,带有标记功能的数据会被发送出去。也许它会再次进入显示队列。也许它会简单地在 UI 消息循环中处理,或者它可能需要再次处理。UI消息循环后,将标记的数据转入存储循环,使整个数据流有序排列,使数据传输非常清晰。录制UI队列会进入UI消息循环进行分发,然后在Acquisition Message Loop和Logging Message Loop中进行处理,比如采集的数据需要进行存储?在这两个循环中,UI队列需要排队,带有标记功能的数据会被发送出去。也许它会再次进入显示队列。也许它会简单地在 UI 消息循环中处理,或者它可能需要再次处理。UI消息循环后,将标记的数据转入存储循环,使整个数据流有序排列,使数据传输非常清晰。录制UI队列会进入UI消息循环进行分发,然后在Acquisition Message Loop和Logging Message Loop中进行处理,比如采集的数据需要进行存储?在这两个循环中,UI队列需要排队,带有标记功能的数据会被发送出去。也许它会再次进入显示队列。也许它会简单地在 UI 消息循环中处理,或者它可能需要再次处理。UI消息循环后,将标记的数据转入存储循环,使整个数据流有序排列,使数据传输非常清晰。需要 存储?在这两个循环中,UI队列需要排队,带有标记功能的数据会被发送出去。也许它会再次进入显示队列。也许它会简单地在 UI 消息循环中处理,或者它可能需要再次处理。UI消息循环后,将标记的数据转入存储循环,使整个数据流有序排列,使数据传输非常清晰。需要 存储?在这两个循环中,UI队列需要排队,带有标记功能的数据会被发送出去。也许它会再次进入显示队列。也许它会简单地在 UI 消息循环中处理,或者它可能需要再次处理。UI消息循环后,将标记的数据转入存储循环,使整个数据流有序排列,使数据传输非常清晰。

  

  在项目的开发过程中,按照框架进行编程可以极大的约束自己,方便自己编程。即使更换了程序员,也能很快熟悉项目的功能,继续完成工作。在笔者目前的工作中,这一优势也得到了体现。两个或三个人可以在他们的项目之间自由切换,因为每个人都遵守相同的规则和约束,这比评论更有效。

  

  经过作者的研究和使用,发现在UI消息循环中,有一个自定义控件的使用,声明了前面板引用的UI Refs。这个自定义控件极大地方便了我们的编程。为了在初始化时完成前面板控件的引用初始化,我们可以将这个UI Ref自定义控件连接到其他子VI上,比如程序框图下方的存储循环或者采集循环,这样我们只需要使用参考属性。您可以在任何子VI中修改前面板的控件属性,而无需将相关操作放回到一级VI主中。这在项目的开发过程中非常实用,省去了很多麻烦。

  它上面的Config可以作为数据存储容器来记录前面板的值。初始化时,释放上次关闭文件时存储在文件中的值。在当前测试中更新该值时,Config 也可以继续存在。这样,方便我们使用。

  以上是我在应用这个框图时的一些个人经验。希望能对做工程项目的初学者有所帮助。LabVIEW上手很快,但要做好却并不容易。项目逐渐做大,功能逐渐增多,表现形式多样。这方面的问题也是对编程标准等问题的考验。希望能和大家多交流,多学习,还望大家指正。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线