我在使用NI和Python进行数据采集方面遇到了问题。我使用3轴x,y,z的磁场传感器,我正在使用National Instruments库(Python)来获取数据。我设置为每1秒收集100个数据,并且每1秒返回3个包含100个元素的列表。
time_memory = [k + i/100 for i in range(100)] # dividing 1 second into 100 intervals
x = [100 elements]
y = [100 elements]
z = [100 elements]
下面是将数据写入文件。
for i in range(self.samples):
self.time_memory[i] = file_time + self.time_index[i]
f.write("{0} {1} {2} {3}\n".format(self.time_memory[i], x[i], y[i], z[i]))
因此,生成的数据文件必须如下所示。
time_value, x, y, z
time_value, x, y, z
1.01, 32, 36, 123
1.02, 32, 38, 123.4
...
所以我试图尽可能长时间地获取数据,但是在8000秒之后,程序显示了如图所示的奇怪错误。
显示
The application is not able to keep up with the hardware acquisition.
Increasing the buffer size, reading the data more frequently,
or specifying a fixed number of samples to read instead of all available samples
might correct the problem. Property: DAQmx_Read_RelativeTo Corresponding Value:
DAQmx_Val_CurrReadPos Property: DAQmx_Read_Offset Corresponding Value: 0
Task Name: _unnamedTask<0> Status Code: -200279
为了解决这个错误,我用Google搜索并向许多人询问,但我无法找到真正的原因。 其中最有说服力的答案是,对于带有HDD的计算机,写入400个不到1秒的数据(在Python中使用for循环)远远超出计算机的能力,但我仍然无法相信这一个并且无法找到解决此问题的解决方案。
请帮帮我们:(