【发布时间】:2018-03-27 17:11:27
【问题描述】:
我有一个(桌面)LabVIEW 程序运行几个大的 While 循环。每个循环对应于 myRIO DAQ 系统中 IO 卡上的功能。每张卡都以不同的速度运行,因此我的代码中的每个循环和子 VI 也以不同的速度运行。
但是,我现在发现我需要将数据从低速环路传递到高速环路,但我不确定如何最好地进行。
低速环路实际上是通过 TCP 连接到 Yokogowa 功率分析仪,环路速度为 50ms (20Hz)。高速环路以 50kHz 运行,并使用来自高速 ADC 的输入执行数学运算以计算电机扭矩,并且需要来自低速环路(功率分析仪)的信息才能继续。存在 816:1 的数据流差异。
在运行时,它似乎工作正常,直到我旋转电机,然后过转矩例程启动并关闭我。
所以我接下来尝试对数据进行排队,但这只会显着减慢高速循环。
话虽如此,我的想法是在低速循环中获取传入数据,并用该数据(816 深)填充一个数组并将其排队到高速循环,但我不太确定如何也要去做。
我应该如何以更有效和适当的方式完成我想做的事情?
【问题讨论】:
-
高速环路以 50kHz 运行 - 你确定吗?在桌面操作系统上?如果您需要这种速度并且拥有 myRIO,我认为您最好在 myRIO 上的实时操作系统中运行此任务。
标签: labview