微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

国仪长监控Python

如何解决国仪长监控Python

我正在通过 NI 开发的 nidaqmx 模块构建一些脚本程序。 我使用 2 个 NI PXI 44-98(32 通道)采集卡。

我们希望以 200k Hz 的采样率进行长时间(10 小时)的监测实验。

目前,我正在努力解决 Python 的内在限制和 Nidaqmx 模块的逻辑。

到目前为止,我已经用有限数量的传感器编写了一个连续采集程序。

import nidaqmx
from nidaqmx.constants import AcquisitionType
import matplotlib.pyplot as plt
import numpy as np

sample_time = 600  # units = seconds
s_freq = 200000
num_samples = sample_time*s_freq
dt = 1/s_freq
print('go acquisition !')
with nidaqmx.Task() as task:
    task.ai_channels.add_ai_accel_chan("PXI1Slot2_3/ai1:3",sensitivity=10000.0,max_val=1,min_val=-1)
    task.timing.cfg_samp_clk_timing(s_freq,sample_mode = AcquisitionType.CONTINUOUS)
    data = task.read(number_of_samples_per_channel=num_samples,timeout = nidaqmx.constants.WAIT_INFINITELY)
print('I do it right !')

但是使用这个非常简单的例程,我无法记录超过 10 分钟的监控。 python的内存是不够的。这对我来说完全合乎逻辑。

我在 NI 网站上查了缓冲区逻辑,但我不太明白如何在这里实现它...

我无法理解如何在这个小例程中将任务记录的每 X MB 数据写入磁盘,同时仍然监视和清空“数据”目录以避免溢出,而且我没有在我的案例中,请参阅 stackoverflow 上的一些正确答案。

如果你已经遇到这个问题并且你有解决方案,我很感兴趣,

感谢阅读

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?