图2 监测系统软件结构

LabVIEW 具有多种程序并行处理的实现方式,这里考虑主/从模式和生产者/消费者模式。其中所不同的是生产者/消费者模式多出了一个FIFO 的机制,主要是避免在使用主/从模式时读取数据率小于写入数据时会发生的数据丢失。采用FIFO 可以作为数据的缓存,根据实际情况在两种模式之间进行选择。

由于采集频率较高,而CPU 同时需要参与数据的处理过程,因此不能让CPU 响应每次的采集,所以选择DMA( 直接内存存取) 方式。在这种方式下的CPU 不会参与到每次的采集过程中,而会直接将采集的数据写到内存中,仅当数据存储到一定数量的时候才会向CPU 发出中断申请,这样可以大幅度降低CPU 负担,能更加及时得处理其它程序部分。

研华PCI - 1742 型采集卡内部有DMA 处理器,软件实现时,首先创建一个FIFO 空间,其大小为设定一次采集点数的两倍。将整个FIFO 分成两块,分别定为1#和2#,当1#空间才满时,给从循环发送信号,当从循环取出1#空间的数据时,数据采集的结果放在2#空间,然后反过来。若保证数据分析的时间小于一次采集的时间,则不会发生数据的丢失。

采集的数据都是首先存在缓存中的,然后在每次发送FIFO 半满或者全满信号的时候才会传到LabVIEW 主程序中。

因此,基于以上考虑,最后选择的是主/从模式的基本结构。基本框架如图3 所示。

图3 主从模式基本框架

2.2 信号采集模块

为了保证采集数据的连续性及程序运行的可靠性,采集部分的程序的运行时间需较为精确,不至于产生时间上的累计误差。循环时间间隔定为1s。