Python-PyDAQmx定时循环

时间:2018-12-20 10:58:44

标签: python-2.7 nidaqmx

我有一个来自National Instruments的数据采集板,我正在用它来采集传感器的数据。为此,我不是使用LabVIEW,而是使用NI的新Python API。

我的任务是以50ms的周期收集测量值,偏差为+ -1ms。

代码的作用:

  • 读取板上的内部计数器的值(计数器的输入是来自车轮速度传感器的脉冲序列)
  • 将值输出到日志文件
  • 每5分钟创建一个新的日志文件(以便在系统崩溃的情况下,仅丢失部分测量值)

到目前为止,我尝试过的是:

fileTimer = time.time() #used to count 5 minutes for the new file creation
loopTimer = time.time() #used to count 50ms

while(1):

    if((time.time()-loopTimer)>=0.05):

        Print(task.read())

        #reinitialize loop timer
        loopTimer = time.time()

    if((time.time()-fileTimer)>=5*60):

        print "NEW FILE CREATED"

        fileTimer = time.time()

        newFileName = "something"
        #set the flag to TRUE to open the new file
        Print.next = True

我得到的结果比接受的要差一些... 就这样,我在一个周期中得到了55ms。

我已经阅读了有关使用线程的选项的信息,其中一个线程用于读取数据,以确保在精确的50毫秒周期内完成读取;还有一个线程进行后处理。

任何有关实施的建议都值得欢迎,我在此先感谢您。

0 个答案:

没有答案