板卡类设备性能稳定、使用便捷、采样速度高,是高速数据采集系统中常用的外部设备。在开物2000组态软件中数据采集部分主要在硬件设备的驱动程序中实现。考虑到高速数据采集系统的特殊性,在驱动程序中建立了一个写标签,在执行写标签的过程中将完成两部分工作,即高速大容量数据采集和批量数据存储。为了提高数据采集的优先权并有效降低CPU的占用率,在数据采集时使用了FIFO(First In First Out)、中断和DMA(Direct Memory Access)等技术并使数据采集程序运行在内核模式。当执行写标签时,驱动程序将初始化板卡设备,主要包括设定采样长度和采样频率,然后触发板卡设备进行数据采集,并将采集到的数据存储到板卡的FIFO中,当FIFO中的数据半满时,将产生一个中断信号,然后通过DMA方式将FIFO中的数据存储到内存区域。当采样长度达到预定的要求时,停止板卡设备的数据采集,并将内存区域的数据写入数据文件,从而完成高速大容量的数据采集和存储。
在开物2000组态环境中实现板卡类设备数据采集非常方便。例如可以建立一个数据采集按钮,点击按钮就可以完成数据的采集,如果需要基于一定的条件进行数据采集则可以通过脚本语言来实现。例如If AD0.Value<=3.5 then WRITE_FILE0.Value=True,使用非常方便。下图给出了整个实验系统的数据波形,从图中可以看出,数据波形还原完好,没有任何失真现象,很好的跟踪了螺栓应力的动态变化,满足了系统的测试要求,取得了良好的实验效果,同时也验证了本文提出的高速大容量不间断数据采集方案的正确性。