基于图灵开物组态软件实现高速大容量数据采集
1 引言
随着计算机技术的飞速发展和自动化技术的广泛应用,通用监控组态软件逐步蓬勃发展起来并涌现出一些极具竞争力的产品。组态软件作为一种连续过程控制的通用监控平台极大的缩短了计算机监控系统软件的开发周期、增强了软件产品的稳健性,显著提高了经济效益。
组态软件自从出现以来,一直以其通用性、易用性的优点深得广大工程技术人员的青睐,但是组态软件的连续慢变过程监控的特点使它很难满足中高频信号的测试需求。在组态软件的发展过程中,对于高速大容量数据采集的需求逐渐明朗起来。
2 总体方案设计
一般的,高速大容量数据采集需要处理三个方面的问题,即高速数据采集、批量数据存盘和实时数据显示。但是由于在组态软件运行过程中需要同时处理很多任务,使得组态软件对于实时性要求很高的场合不能很好的满足,而高速大容量数据采集又必须使数据采集获得更高的优先权,从而保证实时不间断数据采集。综合考虑高速大容量数据采集的需求和组态软件的特殊性可选用一种折中的方案,即高速大容量数据采集,非实时数据显示,从而既保证了高速大容量数据信号的采集,又不至于占用太多的CPU时间。
高速大容量数据采集分为两部分,即在组态软件的硬件设备驱动程序中实现高速大容量数据采集,然后在组态环境下利用插件等形式将数据文件展开。
3 高速大容量数据采集
板卡类设备性能稳定、使用便捷、采样速度高,是高速数据采集系统中常用的外部设备。在开物2000组态软件中数据采集部分主要在硬件设备的驱动程序中实现。考虑到高速数据采集系统的特殊性,在驱动程序中建立了一个写标签,在执行写标签的过程中将完成两部分工作,即高速大容量数据采集和批量数据存储。为了提高数据采集的优先权并有效降低CPU的占用率,在数据采集时使用了FIFO(First In First Out)、中断和DMA(Direct Memory Access)等技术并使数据采集程序运行在内核模式。当执行写标签时,驱动程序将初始化板卡设备,主要包括设定采样长度和采样频率,然后触发板卡设备进行数据采集,并将采集到的数据存储到板卡的FIFO中,当FIFO中的数据半满时,将产生一个中断信号,然后通过DMA方式将FIFO中的数据存储到内存区域。当采样长度达到预定的要求时,停止板卡设备的数据采集,并将内存区域的数据写入数据文件,从而完成高速大容量的数据采集和存储。
4 非实时数据显示
基于组态软件很难实现中高频信号实时波形的显示,一般需采用非实时数据波形回放的方法。为了满足数据波形回放的要求,基于图灵开物环境开发了数据采集插件。图灵开物中的插件类似于ActiveX控件,但与ActiveX控件相比,图灵开物中的插件结构小巧,运行安全可靠,具有更强的功能,并且由于其仅在使用时被动态加载,可以有效的节省系统资源。
数据采集插件功能丰富,可以满足数据波形回放的多种功能要求,如打开数据文件、保存数据文件、波形放大、缩小、自定义缩放、设置和打印输出等各种功能。在数据采集插件中通过设置工程值和测量值的最大最小值可以实现数据量纲的转换。
5 工程实例
基于上面提到的方案,在螺栓应力测试系统中取得了很好的实验效果。实验过程中需要测量的高速信号为螺栓的动态应力变化。在实际实验过程中基于图灵开物环境建立写标签“WRITE_FILE0”,代表板卡设备第0通道的数据信号,设定采样长度为8192点,采样频率为5000Hz。
在图灵开物组态环境中实现板卡类设备数据采集非常方便。例如可以建立一个数据采集按钮,点击按钮就可以完成数据的采集,如果需要基于一定的条件进行数据采集则可以通过脚本语言来实现。例如 If AD0.Value<=3.5 then WRITE_FILE0.Value=True,使用非常方便。下图给出了整个实验系统的数据波形,从图中可以看出,数据波形还原完好,没有任何失真现象,很好的跟踪了螺栓应力的动态变化,满足了系统的测试要求,取得了良好的实验效果,同时也验证了本文提出的高速大容量不间断数据采集方案的正确性。
6 结束语
本文综合考虑组态软件和高速大容量不间断数据采集的要求,提出了实时数据采集,非实时数据显示的解决方案,很好的满足了中高频信号的测试需求,扩展了图灵开物组态软件的使用范围,对于高速大容量数据采集具有一定的指导意义。
文章版权归西部工控xbgk所有,未经许可不得转载。