如何解决国仪长监控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 举报,一经查实,本站将立刻删除。