问题标签 [data-acquisition]
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.
python - 在 Python 文件中写入这么多值的更好方法(设备内存不足)
我对 Python 中的文件输出有疑问。我正在设计一个从 3 个传感器读取值的软件。每个传感器在 1 秒内读取 100 个值,在每个进程之间,我必须将它们打印到文件中。
下面是写入文件的代码。
所以文件中的结果看起来像
但是,当测量时间超过 8000 秒时,软件停止。我认为这是由于设备必须处理的数据太多,因为我使用的设备有点旧。(我无法更改设备,因为计算机已连接到 NI DAQ 设备。)
我试图找到许多替代方法来更改上面的代码,但我找不到。有没有人可以帮我解决这个问题??
c# - 使用 NI USB-6363 在 C# 中读取 CI 频率
上面附上的是我过去成功用于从设备读取频率数据的 LabVIEW 代码。我也经常在我的属性节点和 while 循环之间使用 Start Task VI。
我正在尝试用 C# 编写代码。到目前为止,我已经成功地在我的设备 USB-6363 上对模拟输出和模拟输入进行了编码(所以我知道我能够使用 C# 成功地从设备写入和读取数据)。
我还使用万用表(帖子底部的 Grainger 链接)读取频率数据(设备在图片中设置为橙色 Hz 模式)。
但是,我的 C# 代码似乎在读取频率数据时出现问题。附上我的 C# 代码。当我尝试运行此程序时,出现以下错误。这与我在使用名为“MeasDigFreqBuffCont_ExtClk_ArmStart.2013”的示例程序时遇到的错误相同。我展示的代码只是创建任务,稍后我会在程序的不同部分调用代码,这就是我得到错误的方式。
- - - - - - - - - - - - - - - - - - - - - - - - - 开始错误代码 - - - - - - - - - - - - - - - - - - - - - - - - -
{Error=-200077 Message="请求的值不是此属性支持的值。属性值可能无效,因为它与另一个属性冲突。\n\n属性:NationalInstruments.DAQmx.CIChannel.FrequencyDivisor\n请求的值:1\ n可能的值:4 到 4294967295\n通道名称:数字频率\n\n任务名称:_unnamedTask<0>\n\n状态代码:-200077"}
- - - - - - - - - - - - - - - - - - - - - - - - - 结尾错误代码 - - - - - - - - - - - - - - - - - - - - - - - - --
在示例程序中,它要求提供采样时钟源(来自设备的 PFI 通道)。然而,在 LabVIEW 代码中,它并没有要求这样做。这个例子可能比我想要做的更详细吗?
c++ - 时序问题:QT 写入串行端口,然后读取
我正在为我的实验室中的一个应用程序制作一个 Qt 数据采集 GUI 来替换 LabVIEW。
我想要我的 GUI 上的一个按钮将一些数据写入串行端口(到微控制器),然后等待数据采集完成(微控制器会这样做),然后通过串行端口获取数据以进行保存、绘图等.
以下 void 检查传入的串行数据。它打印串行缓冲区中的字节数。
现在,当我运行程序时,我单击按钮并在第一次单击时获得“0”。第二次单击为我提供了正确的可用字节数。
看来直到下次单击按钮时,我才能获得可用的传入串行数据。为什么是这样?
仅供参考,如果它很重要,以下是串行端口的属性:
2016 年 11 月 14 日更新
按照其他人的建议,以下代码可以正常工作,一旦我按下按钮,就会立即读取数据。我将 readyRead 信号连接到 readData:
注意 blockSignals 的使用,因此 DAQ 在运行时无法启动。
python - 数据采集连接最佳实践
配置 DAQ 并与之通信的最佳实践是什么?是配置一次数据采集器然后保持线路打开并在需要时进行通信,还是每次需要通信时打开、配置和关闭连接更好?我更关心稳定性而不是速度。使用一种或另一种方式工作有什么好处(如果有的话)?
系统规格:NI USB-6000 DAQ、Python 3 和 PyDaqMx 读取三个模拟通道。
spring-mvc - spring mvc中的数据采集层和结构是什么
我有一个 webapp 来接收来自设备的数据,并且我的客户有以下规格的要求——数据采集层应该在基于开源 MQ 的交付机制上工作。a) 数据采集层必须是平台无关的,可以在Linux或windows等操作系统上运行,并应使用java Gdk6)开发。
不知道什么是数据采集层
我需要在另一个单独的项目中实现它吗我的应用程序是在 Spring MVC 中开发的
请帮助我理解结构我应该如何实现它
c++11 - c++11以后版本的fetch_XXX函数中正确使用memory_order_acquire/release
我在下面找到了某个类中的代码。
我认为“memory_order_acquire”与读取操作一起使用。所以我理解了加载(memory_order_acquire)的功能。
但是, fetch_add 实际上由两个函数组成:
1) 读取当前值
2)写入新的附加值
在此类中还存在一个函数,该函数将 fetch_sub 函数包含到带有 memory_order_release 的“计数器”中。
fetch_add 中的 memory_order_acquire 和 fetch_sub 中的 memory_order_release 的意图是什么?难道不能在 fetch_add 中使用 memory_order_release 吗?
c++ - 从工作线程更新 QtCharts 的正确方法?
因为这是我的第一个问题,所以我想说 StackOverflow 帮助了我无数次。谢谢你。
现在到我的问题。我目前正在尝试在 Qt 5.8 中实现一个简单的数据采集应用程序。应用程序必须与 DSP 通信并以 100Hz 至 10kHz 的速率获取一些电压。由于我需要对采集的电压进行一些额外的计算,我认为在与 GUI 线程不同的线程中进行数据采集和操作是个好主意。
数据采集和附加计算在单独的线程中工作得很好。我的问题是,使用 QtCharts 异步显示工作线程结果的正确方法是什么?
任何建议将不胜感激。
此致,
克拉斯特夫
python - Keithley 2410 和 PyVISA - VI_ERROR_TMO:在操作完成前超时
我正在尝试在 x86_64 linux 机器(CentOS 7)上通过 python 控制 Keithley 2410。我正在使用 python 2.7.5、NI-VISA 16 和 PyVISA 1.8。吉时利通过一根 RS232 转 USB 电缆连接到计算机,并配置为 RS232 通信(参数为:波特 57600、位 8、奇偶校验无、终止符、流控制无)。当我尝试查询 Keithley 时,出现超时错误,如下所示:
matlab - 转子不平衡的 FFT 分析
我正在平衡一个空气主轴。对于不平衡分析,我使用加速度计(NI 设备)。我有来自加速度计的电压信号,对应于主轴在特定频率(rpm)下的振动,保存在 Excel 文件中。为了分析这个振动信号的不平衡,我使用了 Matlab 中的“fft”函数。我的数据以 100,000 Hz 的采样频率进行采样。我正在使用 fft 文档中给出的相同示例代码。在文档中,fft 在对应于正弦波信号频率(50Hz 和 120Hz)的频率处具有峰值。当我使用相同的代码获取旋转频率为 40Hz (2400rpm) 的采样数据的 fft 时,我没有得到 40Hz 的峰值。难道我做错了什么??在 fft 代码中我应该在哪里提到我的主轴的旋转频率。我想知道我的旋转频率(40Hz)的振动信号的相位和幅度。fft 图看起来像这个。我的代码如下。任何帮助深表感谢。
python - 将行附加到 Pandas DataFrame
我正在尝试从测量计算个人测量设备 (PMD-1208FS) 中读取模拟信号,然后将其写入具有每个观察对应时间戳的文件。我想每秒一次附加到这个文件中,并进行新的观察。
这PyUniversalLibrary
允许我从设备中读取,但我一直试图弄清楚如何将信息保存到数据框中。此示例有助于从 PMD 读取数据,但它不提供任何数据记录示例。
下面的示例接近解决此问题,但该df.append(pd.DataFrame()
功能没有为我提供所需的结果。此函数最终将最新的数据帧附加到先前保存的数据帧的底部,而不仅仅是附加新数据。结果是一个数据帧,其中包含许多按顺序重复的数据帧。