首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在LabVIEW中的不同速度循环之间传递数据

在LabVIEW中的不同速度循环之间传递数据
EN

Stack Overflow用户
提问于 2018-03-24 07:10:32
回答 2查看 919关注 0票数 1

我有一个(桌面) LabVIEW程序运行几个大的While循环。每个环路对应于myRIO数据采集系统中IO卡上的功能。每个卡都以不同的速度运行,因此我的代码中的每个循环和子my也以不同的速度运行。

然而,我现在发现我需要将数据从一个低速循环传递到一个高速循环,我不确定如何才是最好的。

低速环路实际上通过TCP连接到横河功率分析仪,环路速度为50ms (20 is )。高速环路以50 The的频率运行,使用高速ADC的输入执行数学运算以计算电机转矩,并且需要来自低速环路(功率分析仪)的信息才能继续。数据流差异为816:1。

在运行时,它看起来工作得很好,直到我启动马达,然后过度扭矩例程开始并关闭我。

因此,我接下来尝试对数据进行排队,这只会显著降低高速循环的速度。

话虽如此,我的想法是将传入的数据放在低速循环中,并用该数据填充一个数组(816深),然后将其排队到高速循环中,但我也不太确定如何做到这一点。

我应该如何以一种更有效、更恰当的方式完成我想要做的事情?

EN

回答 2

Stack Overflow用户

发布于 2018-03-25 17:37:32

查看Real-Time FIFO调色板。这里的函数创建并操作一个无锁FIFO系统,该系统明确地设计用于在循环之间以确定性的方式传递数据。如果使用得当,它们可以保证尝试写入数据的较慢循环不会锁定FFO,从而使较快的循环脱离其计划。

您可以找到RT FIFO代码here的一个简单示例。您可以在LabVIEW交付示例中找到更多内容。

票数 2
EN

Stack Overflow用户

发布于 2018-03-26 13:53:20

如果高速循环运行得更快,那么它实际上只需要最新的值,因此您需要一个变量/标记型通信。

根据您已经了解的情况,有几个选项:

get staus局部/全局Variable

  • Functional全局变量(但全局变量为faster)

  • Notifier (如果使用
  • ,则可以将其视为变量。

我会选一个你觉得舒服的,试一试。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49459454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档