问题标签 [daq-mx]

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 投票
1 回答
106 浏览

c++ - 从驱动程序创建一个 .h 文件,以便能够在 C++ 中使用驱动程序函数

我最近买了一块数据采集板(“NI 6341”),它有一张带有驱动程序的 CD,但没有提供任何库 (.h) 来与之通信。我认为这是因为他们只希望 NI LAB VIEW 使用该板,理论上女巫承认它。

那么,我怎样才能访问驱动程序功能(制作一个库),以便我可以使用 C++ 来控制电路板?

是否可以在 Windows 中访问驱动程序回调并创建一个库?

请帮忙。提前致谢。

0 投票
0 回答
3658 浏览

python - 使用 nidaqmx python 包从 National Instruments DAQ 连续模拟读取

这个问题的答案的启发,我尝试了以下代码:

预期行为:它从一个通道连续读取。我什至还没有尝试让它做一些特定的事情(例如实时绘图),但我希望 python 控制台一直运行到停止它,因为目标是连续读取。

观察到的行为:快速运行此代码并返回控制台提示。

问题:在我看来,这根本不是连续阅读。此外,data变量并没有像我希望的那样被附加(我知道检索一定数量的数据样本不需要使用 nidaqmx 进行如此复杂的代码;这只是我认为我可以尝试看看是否这样做的一种方法我想要什么,即连续读取并连续将缓冲的样本值附加到data,这样我就可以查看获得的总数data)。

任何帮助,将不胜感激。我基本上确定实现这一点的方法是利用这些作为 nidaqmx 一部分的回调,但不知何故我似乎没有很好地管理它们。注意我已经能够通过使用read_many_sample.

详细信息:插入 NI 9205 模块的 NI cDAQ 9178,在运行 Windows Home 10、python 3.7 和适用于 python 的 nidaqmx 包的联想笔记本电脑上。

编辑:对于任何感兴趣的人,我现在通过以下方式进行这项工作,使用 matplotlib 进行实时视觉反馈,并且 - 还不是 100% 确定 - 即使一个目标是长时间采集(> 10 分钟),似乎也没有缓冲问题)。这是代码(未清理,抱歉):

当然,评论表示赞赏。这可能仍然不是最理想的。

0 投票
1 回答
292 浏览

matlab - 该语句不在任何函数内

我在第 51 行收到一个解析错误(从 startw = input('输入起始波长:') 开始),但我不知道为什么。错误是这样写的;行:51 列:1 此语句不在任何函数内。(它遵循终止函数“OpticalFunction”定义的 END。)当在 Matlab 脚本上运行时,有问题的行本身工作得很好。

0 投票
2 回答
76 浏览

labview - 在停止程序之前程序不会启动?

我是一个在我的项目中使用 LabView 的新手。因此,我正在开发一个程序,该程序从连接在 DAQmx 板上的传感器以及 STS-VIS 海洋光学的光谱仪收集数据。在第一次开发时,我将两个设备组合在同一个平面结构中的一个循环中,但我收到错误消息:“应用程序无法跟上硬件获取的速度。” 我无法获得两个设备的图表上显示的数据,但如果我单独运行它就好了。我发现解决方案说我需要在不同的while循环过程中分离两个设备,因为它可能有不同的缓冲区大小(?)。我做到了,并且所有传感器都显示在每个图表中。但奇怪的是,我需要在第一次运行时先停止程序,然后再次运行它第二次以获得在应用程序中显示的图形。谁能告诉我我做错了什么并给我解决方案?由于项目规则,我不能在这里公开分享我的 Vi,但如果有人有兴趣提供帮助,我想亲自分享。谢谢你。

0 投票
0 回答
105 浏览

c# - NI DAQ MAX 从 Task.CIChannels.CreateAngularEncoderChannel() 接收错误结果

我有一个 NI DAQ:cDAQ9185-1E7661EMod1,我试图从端口 ctr1 读取它的数据作为计数器通道:AngularEncoderChannel。我正在使用 NI 的 C# api。

我收到的只是大量 0、0.36、0.72 的流(几千乘以 0,然后再增加几千次 0.36,依此类推),而我期望的值约为 2000,并且不断变化。

物理接线没问题。我运行了角度编码器示例中的代码,效果很好。我将所有任务配置更改为与示例尽可能相似,但它仍然不起作用。

我的代码:

Sample 对象和 _exporterQueue 对于该程序的实际功能并不重要。我把它们留在这里,以防万一它们出人意料地相关。Sample 是一个具有 {double Data, and int SampleCounter} 的对象,_exportingQueue 是一个队列,用于存储样本并通过另一个线程将它们出列。此外,我还有一个 NI 的 Task 对象的别名为 NITask,只是因为我正在使用线程,这样两个 Task 对象就不会发生冲突。

我希望这个问题足够清楚。非常感谢!

0 投票
1 回答
180 浏览

python - nidaqmx.Task: (OSError: [WinError 126] The specified module could not be found)

以下用于数据采集的代码给出了以下错误

OSError: [WinError 126] 找不到指定的模块。

你知道是什么原因以及如何解决吗?谢谢,干杯!

0 投票
1 回答
232 浏览

excel - 在 TDMS 文件中写入 LabVIEW 数据

我想从压力传感器获取压力数据。当我使用“写入测量文件”写入数据时,只保存了一部分数据,而其他部分则丢失了。我还尝试从波形图中将数据导出到 excel 中。但是我收到一条消息,说内存不足。我应该怎么做才能保存整个数据而不会丢失它们?有什么方法可以直接将数据保存到硬盘上?谢谢

0 投票
0 回答
41 浏览

matlab - MATLAB 中的 NIDAQ:将数字计数器输入同步到外部触发器

我在让数字计数器按照我想要的方式在我想使用 MATLAB 控制的 NI-DAQ 上工作时遇到了一些问题。

设置:我在 NI-6229 DAQ 的 ctr0 输入上接收到 TTL 脉冲,我想计算在各种条件下我收到了多少个脉冲。输入的脉冲被选通成 350 纳秒的块,例如在 DAQ 之前有一个开关;并且此开关默认关闭,并以半规则间隔打开 350 ns 并再次关闭。(我控制何时发生这种情况,但它不是固定频率。)

期望的结果:我想获取一段时间(长时间)的数据,但我需要知道哪些数据来自哪个窗口。理想情况下,输出应该是一个向量,其中每个条目是一个 350 ns 窗口期间接收到的脉冲总数。至少,我需要一些方法来区分来自不同采集窗口的计数。

这是我到目前为止所尝试的:

如您所见,我每秒收到大约 600 次计数(这是一个合理的数字)。因此,布线等按预期工作。但是,我不知道如何分解它,所以我知道哪些计数来自哪个计数窗口。

接下来我尝试添加一个与采集窗口同步的触发器。它会在每个采集窗口之前的某个任意时间(由我选择)产生一个 TTL 脉冲。我将此触发器连接到 DAQ 上的一个数字输入通道,并设置计数器通道以将此信号用作时钟。(当我尝试将其用作触发器时,我得到一个设备不支持此通道上的触发器错误)。我尝试将速率设置为计数窗口的大致频率。

这给了我一个增加计数和计数时间的向量,但它实际上并没有告诉我任何关于计数器窗口的信息。更令人困惑的是,通过这种设置,1 秒后获得的计数器总数现在很大程度上取决于我选择的数量,s.Rate这在物理上没有意义。

有人对我如何区分来自不同采集窗口的计数有任何建议吗?

如果有帮助,我可以显示更多输出或提供更多详细信息。非常感谢!

0 投票
1 回答
88 浏览

python-3.x - NIDAQmx 计数器输入边沿源更改

我对我的代码有点困惑。我想读取计数器输入(边缘计数器)的位置。我可以获得设备和频道,但我想更改边缘源或终端。如果我添加通道,边缘源会自动为“PFI0”,它计算我需要的一些不同的东西。如图所示,我想将其更改为“PFI1”。我尝试了以下方法,但没有奏效。有人可以帮帮我吗!

最好的问候,西拉德

0 投票
0 回答
69 浏览

python - 如何使用 nidaqmx 在数据采集期间绘制数据

问题定义:我需要使用python获取一些数据大约40分钟。以下工作正常,但唯一的问题是我想在采集期间查看数据。有没有办法以一定的刷新率绘制数据?

下面的代码是从这篇文章修改而来的。

谢谢你们!