问题标签 [labview]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
3097 浏览

c++ - 如何向我的 C++ 应用程序添加一个简单的 API 以供 LabView 访问?

我有一个用 C++ (Visual Studio 6.0) 编写的数据采集程序。一些客户希望通过他们自己的定制软件或 LabView 来控制软件。我想提出一个带有 dll 的简单 API,我可以将其分发给他们,并且想要一些关于如何开始的提示。这将是非常基本的,可能是 4 或 5 个命令。我的 DAQ 程序仍将在同一台机器上的自己的窗口中运行,我只想将其设置为由另一个程序控制。

0 投票
2 回答
11341 浏览

labview - 如何在高速率采集多通道数据时定期更新 Labview 图表

寻求有关 Labview 数据收集程序的帮助。如果我可以在每个通道以 8kHz(提供 16 个数据点)收集 2ms 的数据(我正在使用 National Instruments 数据采集板在 4 个模拟通道上收集数据)。DAQ-MX 采集任务提供 4 个波形的一维数组。

如果我不显示数据,我可以做的所有计算时间大约是 2 毫秒,如果处理循环稍微落后于收集循环,那也没关系。在 Labview 的前面板中更新图表会引入不可接受的延迟。我们不需要非常快速地更新显示,可能 5-10Hz 就足够了。但我不知道如何设置。

我当前的 Labview VI 有三个并行循环

  1. 用于数据收集的定时循环
  2. 用于分析和处理的循环
  3. 用于将数据作为 TDMS 文件缓存到磁盘的低优先级循环

使用队列将数据从收集循环传递到其他循环。Labview 的例子给了我一些想法,但我被卡住了。

任何建议、参考、想法将不胜感激。

谢谢

阿齐姆

跟进问题

eaolson 建议我重新采样数据以进行显示。来自 DAQ-MX 读取的数据是一维波形数组。所以我需要以某种方式构建或连接每个通道的波形数据。然后在更新前面板图表之前重新采样数据。我想最好的方法是对数据进行排队,并在显示循环中将堆栈构建出列并根据屏幕分辨率重新采样数据,然后更新图表。有没有其他办法。我将在(NI Labview 论坛)[ http://forums.ni.com/ni/board?board.id=170]上查看 eaolson 建议的更多信息。

更新

  1. 将图表的可接受更新率更改为 5-10Hz(感谢 Underflow 和 eaolson)
  2. 磁盘缓存循环是低优先级的(感谢 eaolson)
  3. 感谢所有的回复。
0 投票
19 回答
11634 浏览

labview - LabVIEW的哪些特定功能让您感到沮丧?

请耐心等待:这不是语言辩论或火焰。这是一个真正的征求意见。

有时,我必须帮助教育传统的文本编码人员如何在 LabVIEW (LV) 中进行思考。在这个过程中,我经常会听到关于 LV 的糟糕之处。除了“语言 X 好得多!”之外,这种洞察力很少伴随理性观察。虽然这句话让他们满意,但它并不能帮助我理解是什么让他们感到沮丧。

那么,对于那些有 LabVIEW文本语言经验的人来说,关于 LV的哪些具体内容让您抓狂?

------ 总结------

感谢所有的答案!有些问题在下面的评论中得到了回答,有些在其他网站上存在,有些只是 LV 的真正问题。本着最初问题的精神,我不打算在这里回答所有这些问题:查看LAVANI的网站,你会惊喜地发现其中有多少是可以克服的。

  • 无意并发
  • 无法使用传统的文本操作工具
  • 仅二进制源代码控制
  • 难以分支和合并
  • 打开的窗户太多
  • 文本具有更清晰/更清晰/更具表现力的语法
  • 干净的编码需要大量的时间和操作
  • 大型、难以访问的 API/调色板系统
  • 需要鼠标
  • 文件命名空间:内存中没有同名的重复文件
  • LV 对象本身只是按值的
  • 需要开发环境才能查看代码
  • 缺乏变焦
  • 启动缓慢
  • 记忆猪
  • “巨型”代码难以使用
  • UI锁定很容易做到
  • 触控板和 LV 不能很好地混合
  • 字符串操作在图形上很臃肿
  • 有限的 UI 定制
  • “隐藏”原语(是的,这些存在)
  • 缺乏官方元编程能力(不过不会太久)
  • 缺乏 unicode 支持
0 投票
2 回答
4330 浏览

labview - 如何在 Labview for/while 循环中手动增加/减少索引

这是我的基本用例:

Labview 收到来自外部硬件的触发后,开始收集模拟数据。如果模拟数据达到阈值,它会监视此数据并触发另一块硬件。对于每个试验,此阈值可以具有不同的值。但是,操作员可能希望能够重做试验(如果触发器由于噪声而提前发送或未按预期达到阈值)。

是否可以递增/递减索引,或者我是否需要使用可以根据需要递增/递减的移位寄存器(即,如果按下重做按钮则递减)?

谢谢

阿齐姆

0 投票
3 回答
7001 浏览

labview - 轻松创建 LabVIEW 应用程序使用的 VI 列表

我有一个我继承的 LabVIEW 应用程序,它有一堆子 VI。在清理它的过程中,我发现一些包含的 VI 没有使用。我知道我可以使用 VI Hierarchy 将包含的每个 VI 作为图标查看,但这对于与目录列表进行比较并没有多大用处。是否有一种(简单的)方法来创建 LabVIEW 应用程序使用的 VI 列表?我只想要一个清单。

0 投票
4 回答
4746 浏览

labview - 如何在LabVIEW的文本框指示器和滑块中显示值?

有没有办法链接LabVIEW前面板上的两个指示器,使它们始终具有相同的值?现在我每次都将两者设置为相同的值,但如果有一种方法可以设置一个来镜像另一个,那就容易多了。

0 投票
2 回答
2027 浏览

deployment - 我必须在 Program Files 下构建我的 LabVIEW 仪器驱动程序吗?

我正在尝试为我们销售的设备构建一个 LabVIEW 即插即用仪器驱动程序项目。我按照说明创建了一个项目,它使用 LabVIEW 程序创建了项目:

C:\Program Files\National Instruments\LabVIEW 2011\instr.lib

我想我可以将该文件夹连接到源代码管理并在那里完成所有工作,但是在 Program Files 下工作感觉很奇怪。当我尝试将项目文件夹移到我的常规工作区文件夹中时,它破坏了所有子调色板文件 (*.mnu)。我可以重新创建它们,但是当我们的客户从 LabVIEW 网站安装驱动程序时,我担心它们无法为他们工作。

是否可以移动驱动程序项目,还是必须保留在默认位置?如果我们的一位客户已将 LabVIEW 安装在不同的位置(例如在驱动器 D:)上,驱动程序菜单是否对他们不起作用?

0 投票
4 回答
5141 浏览

coding-style - LabVIEW不鼓励使用集群吗?

我在 LabVIEW仪器驱动指南(第 6.2 节)中找到了这条评论:

如果您需要比推荐模式更多的终端,请重新考虑 VI 上的控件和显示控件的分组。除错误输入和错误输出外,避免使用集群以尽量减少终端数量。集群通常需要用户从集群中解绑和重新绑定数据。

如果 National Instruments 不鼓励集群,那么“重新考虑 VI 上的控件和指示器的分组”是什么意思?

我真的很喜欢使用集群,而且我认为它们改进了我的 VI。我错过了什么吗?

0 投票
1 回答
2002 浏览

.net - 是什么导致 ProcessorArchitecture 锁定到 x86 或 MSIL?

我有一个使用 COM 调用 LabVIEW 应用程序(构建为 .exe)的 .Net 2.0 应用程序。LabVIEW 应用程序调用我们编写的各种 .Net 程序集。

通常这一切都很好。我有一个 app.config 将 LabVIEW 应用程序重定向到正确文件的正确版本,一切都很愉快。

昨天,LabVIEW 应用程序决定在这台 PC 上找不到我的程序集。Fusion 日志错误表明它需要 x86 版本的程序集,但已经加载了 MSIL 版本。

请注意,我们使用 platform=x86 构建了有问题的程序集。另请注意,相同的构建在 5 台相同(直至硬件)的 PC 上运行良好。

所以我想,嘿,我没有理由强制执行 x86。我从构建中删除了平台规范并构建了一个 MSIL 版本的程序集。

然后 Fusion 出现了同样的错误,但它说它需要 MSIL 版本的程序集,而 x86 版本已经加载。

(我也尝试过使用corflags。)

我们没有在 GAC 中注册我们的程序集,它们都是应用程序本地的,并且在那台 PC 上没有其他程序集副本。

哦,更令人困惑的是:更新我们的数据库后,问题就消失了。它现在可以使用,与我开始使用的构建相同。

有问题的程序集根本不是我们 DB 代码的一部分,它是一个单独的类及其关联的工厂。它使用 DB 代码程序集,但不与数据库直接通信。

是什么让 .Net 中的 ProcessorArchitecture 锁定到 x86 或 MSIL?

你有没有遇到过这种情况,如果有,你做了什么来解决它?

(如果问题再次出现,我将发布确切的 Fusion 日志内容,因为问题消失了,我没有可用的日志。)

0 投票
1 回答
2568 浏览

http - 在labview中显示来自URL的jpeg

我需要制作一个labview VI,它将显示来自URL 的jpeg 图像。(url是根据一些数据生成的)

我找到了一种从硬盘驱动器显示图像的方法(读取 JPEG 文件),所以我可能需要的只是一种将其下载到临时文件的方法。

我发现的只是一些低级 TCP 客户端 VI。有没有更简单的方法?如果没有,我可以只打开一个浏览器窗口,但我宁愿不这样做。