首页 理论教育物流包装材料无害化生产过程数据采集系统软件设计

物流包装材料无害化生产过程数据采集系统软件设计

【摘要】:本数据采集系统的目的是从数据采集硬件按照适当的配置采集相应的数据,并对数据进行相应的处理。因此,在物流包装材料无害化生产过程数据采集系统中采用动态VI调用方法,与静态链接的VI不同,动态调用VI只有在需要运行该VI时才会将其加载,并在操作结束后又可将其从内存中释放。图6-20 数据采集程序框图图6-20为数据采集系统的局部程序框图,用以说明“生产者—消费者”模式的实现。

本数据采集系统的目的是从数据采集硬件按照适当的配置采集相应的数据,并对数据进行相应的处理。采用了模块化结构,将系统软件的整体功能分解为一系列功能模块,再将每个功能模块细分,将一个复杂的整体功能分解为一系列简单的子模块,为每个子模块建立一个VI,然后,把这些VI通过相应的数据接口组合在一起完成最终的数据采集系统应用程序。

系统所采集数据具有同步性,即统一在一个时间坐标下。根据系统要实现的功能,该系统设计为主控模块、数据采集与存储模块、数据回放模块。其中主控模块以事件驱动的方式动态调用其他模块,如图6-14所示。其中,数据采集与存储模块进一步划分为综合数据、压力数据、温度数据、功率数据的采集与存储模块,每个子模块包括数据采集、数据处理和显示、数据存储功能。数据回放模块可以选择所需回放的文件和通道。

978-7-111-49442-3-Chapter06-17.jpg

图6-14 数据采集系统功能模块设计

系统运行时,上位机通过NI数据采集卡采集各个传感器的数据和电流数据,并对数据进行处理。然后将结果以波形图的形式实时地显示在软件界面,根据监测情况,由用户选择存储某个时段所采集的数据,并存储在TDMS文件中。另外用户还可以选择采集速率,并可分别查看压力、温度等不同采集区段的数据波形图。系统过程转换图如图6-15所示。

978-7-111-49442-3-Chapter06-18.jpg

图6-15 系统过程转换图

1.主控模块编程

主控模块用户界面如图6-16所示。

978-7-111-49442-3-Chapter06-19.jpg

图6-16 主控模块用户界面

系统主控模块中可以调用多个子模块,在LabVIEW图形化程序设计时,这些子模块是子VI,并被直接放置在程序框图中。习惯上,称这些子VI为静态链接子VI。当程序加载时,这些子VI也同时也被加载到内存中。这个过程不仅费时,还浪费内存。因此,在物流包装材料无害化生产过程数据采集系统中采用动态VI调用方法,与静态链接的VI不同,动态调用VI只有在需要运行该VI时才会将其加载,并在操作结束后又可将其从内存中释放。如果VI调用程序较大,采用动态加载VI的方式可以节省加载时间和内存,为此设计了动态调用子程序的VI,其程序框图如图6-17所示。

978-7-111-49442-3-Chapter06-20.jpg

图6-17 动态调用子VI程序框图

2.数据采集与存储模块编程

数据采集与存储模块采用生产者—消费者设计模式,将高速的数据采集和耗时的数据存储任务分开处理,包括两个并行执行的循环,每个循环以不同的速率执行任务。负责数据采集的生产者循环控制存储数据的消费者循环,并且使用队列通信技术进行通信。这种设计模式能够大大提高不同速率的多个循环之间数据共享的能力,适用对于工业数据采集环境下的多任务处理、实时性和连续性的严格要求。程序设计流程图如图6-18所示。在进入数据采集生产者之前,创建队列并初始化,创建数据采集虚拟通道,初始化TDMS数据存储文件,并设置采集卡物理通道、信号采集类型等参数。

数据采集与存储模块可以选择多通道的综合数据采集与存储模块,也可以根据需要分别选择温度数据采集与存储模块、压力数据采集与存储模块,功耗测量与存储模块。这些模块均采用生产者—消费者模式进行设计。

978-7-111-49442-3-Chapter06-21.jpg

图6-18 数据采集与存储程序流程图

数据采集前面板包括显示部分和控制部分。显示部分以波形图形式显示实时数据,并显示实验时间、采集时间、入队时间以及采样总次数。程序控制部分可以选择采样速率,采集过程中可根据需要保存某段时间的采样数据。

(1)数据采集处理

数据采集与存储模块前面板如图6-19所示。

978-7-111-49442-3-Chapter06-22.jpg

图6-19 数据采集与存储模块前面板

数据采集与存储模块前面板用于压力、温度、功率多组多通道数据采集系统的图形化操作及显示,是主要的人机对话窗口,包括当前信息状态或将要执行的操作,如采样速率设置、实时数据显示(即开始保存)、停止保存、退出程序等,也可以查看实时的数据采集状态、实验时间等。

数据采集程序运行时,首先设置采样速率,采集数据实时显示在上方的波形图表中,不同颜色代表不同的测量数据,采用逐个数据点描绘曲线,周期性地刷新显示区,新测得的数据点添加到曲线的尾端,原有的值左移,形成以横坐标为采集时间和纵坐标为数据值的实时曲线趋势图。可以方便地对波形图表进行各种显示设置,如横纵坐标的刻度、精度、格式、坐标范围,曲线的线性、线宽、颜色、刷新模式等。根据实际需要,还可以把波形曲线转存为图片。

数据采集程序框图如图6-20所示。

978-7-111-49442-3-Chapter06-23.jpg

图6-20 数据采集程序框图

图6-20为数据采集系统的局部程序框图,用以说明“生产者—消费者”模式的实现。图6-20上部“1”所指的循环框(局部)为主循环,即“生产者”循环,完成采集数据的任务;下部“2”所指为从循环(局部),即“消费者”循环,完成存储数据的任务。“3”处所示为数据采集;“4”处为滤波器;“5”处为数据进入队列;“6”处为数据出队列;“7”处为将数据写入文件。“3”处采用DAQmxRead.vi函数从NI-DAQ中取出缓冲区的样本,之后样本接入数字低通滤波器,按适当标定配置进行处理,并添加到队列中,等待读出队列函数读取。

数据采集处理中,NI-DAQ使用循环式缓冲区。所谓循环式缓冲区的工作原理是:在内存里开辟两块容量相等的缓冲区(以下把它们分别称为第一缓冲区和第二缓冲区)作为连续数据输入的缓冲区,工作开始时,数据采集卡首先将数据写入第一缓冲区中,在数据采集卡开始把数据写入第二缓冲区的同时,用户程序可以根据自身需要取出第一缓冲区中的数据做特定处理。当第二缓冲区被写满后,数据采集卡回到第一缓冲区的起始处,以覆盖旧数据的方式,把新数据写入第一缓冲区中,与此同时用户程序取出第二缓冲区中的数据,整个数据采集处理过程可以如此不断地循环进行下去。连续数据采集的过程,可以简单理解为数据按照设定的采样率连续不断地写入缓冲区,同时又按设定的样本数分次由缓存区读出。因此,需要合理地设置采样率和一次读取样本数的大小,确保数据准确地写入缓冲区中,同时数据被读出的速度足够快,保证缓冲区不会被写满溢出,那么程序就可以一直执行下去,直到被人为终止。因为由缓冲区读取数据的速度要比写入数据的速度快得多,因此,采样率要比每次读取的样本数大,一般来说,二者约10倍的关系。

系统基于NI USB6221进行压力和功率数据采集,基于NI PCI6221进行温度数据采集,如图6-21所示,“1”处为压力和功率数据采集通道,在NI Measurement&Automation中标识为“Dev4”,通道编号0~9;“2”处为温度数据采集通道,在NI Measurement&Automation中标识为“Dev1”,通道编号0~2;“3”处为采样速率设置,可以在前面板设定。如果进行单通道的数据采集,只需要将“1”处和“2”处的设置进行修改即可,如改为“Dev4/ai0”,表示从设备“Dev4”的通道采集1路数据。在实际的采集过程中,系统设置采样率为100,连续采样,多个通道同步采集。电压信号可以分为接地和浮动两种信号类型。根据信号与采集卡功能引脚的连接方式不同,又可以分为三种测量方式分别为差分(DIFF)、参考单端(RSE)、非参考单端(NRSE)。“4”处即为测量方式设置,可以在前面板设定。

978-7-111-49442-3-Chapter06-24.jpg

图6-21 双设备数据采集通道配置

(2)数字低通滤波

在数据采集系统中,真实信号的特征往往容易受到噪声的干扰,使得信号中有用的特征信息也常常淹没在噪声之中。系统采用Butterworth进行信号的滤波,能有效地消除噪声。滤波器的作用是对信号进行筛选,只让特定频段的信号通过。在信号传输过程中,由于外界的干扰,经常会混入高频噪声。因此在测试信号时需要把这些来自外部的高频噪声信号去掉。通常的做法都是采用低通滤波器将高频噪声滤掉。

滤波部分是本数据采集系统的关键部分。选用滤波速度快,对相位没有要求的数字IIR滤波器。本程序采用Butterworth滤波器。Butterworth滤波器拥有最平滑的频率响应,在截断频率以外,频率响应单调下降。在通带中是理想的单位响应,在阻滞中响应为零,过渡带的陡峭成度正比于滤波器的阶数,所以通过提高阶数可以明显提高滤波效果。并且可以选择低通滤波、高通滤波、带通滤波或者带阻滤波,操作者可以根据自己的滤波要求选择合适的滤波模式。

数字IIR滤波器位于函数→信号处理→波形调理中,其图标及参数设置如图6-22所示。

978-7-111-49442-3-Chapter06-25.jpg

图6-22 数字IIR滤波器及输入端口定义

选择低通滤波器时,忽略下截止频率;而设定上截止频率必须符合奈奎斯特定理(采样定理),即上截止频率必须小于采样频率的二分之一。例如:设置上截止频率为10Hz,那么采样频率必须大于20Hz。

(3)信号标定

本项目用到的压力传感器型号为PT124B-121T-35MPa-1/2-J,压力传感器是0~10V标准电压信号输出,由于电压值和压力值之间是线性关系,可以很方便地通过电压值计算出实际压力值,具体换算如下:

假设压力变送器量程PmaxPmin(MPa公式),压力变送器输出电压为X(V),则对应的压力值为

978-7-111-49442-3-Chapter06-26.jpg

对称三相交流电器功率计算公式:

978-7-111-49442-3-Chapter06-27.jpg

用于检测电机功率的功率传感器的输入为380V,30A;输出为0~5V,故电机功率测试路的标定值可由式(6-2)得到,为3.9444。

用于加热功率的功率传感器的输入为220V,30A;可以得到加热功率测试路的标定值2.2836。

信号标定的实施如图6-23所示,图中蓝色框中的数字代表通道号,它们和通道对应关系见表6-4。

978-7-111-49442-3-Chapter06-28.jpg

图6-23 信号标定实施

表6-4 通道及信号标定对应关系

978-7-111-49442-3-Chapter06-29.jpg

(4)数据采集分析与存储处理

图6-24为数据采集分析与存储的局部程序框图,通过元素出队列函数,可以读取队列中的数据。这个过程与前面叙述的数据采集处理过程构成了一个基于队列的数据采集系统,即数据采集循环不间断地采集数据,并将采集到的数据放在队列中,数据分析循环不间断地处理数据。由于数据采集循环占一个线程,数据分析循环占一个线程,这两个线程相互独立,因此互不干扰。采用双线程的技术,可以使得两个独立的任务并发执行,提高了程序的效率

978-7-111-49442-3-Chapter06-30.jpg

图6-24 数据采集分析与存储局部框图

由图6-24可见,从元素出队列函数以波形数组方式输出的信号,分成两个分支,一个分支连接波形图表,可以分通道显示实时波形曲线(前面板如图6-19下方选项卡控件),反映实时数据的变化趋势;另一个分支连接TDMS数据文件进行数据存储。“1”处为元素出队列;“2”处为出队压力、功率数据写入TDMS文件的PressureData分组,相当于excel文件中的独立表单;“3”处为出队温度数据写入TDMS文件的TemperatureData分组;“4”处为PressureData分组数据包含的采集数据种类名称,每个名称对应一列;“5”处为TemperatureData分组数据包含的采集数据种类名称;“6”和“7”处为获取采集数据的时间分量,即数据的采集时间;“8”和“9”处为分通道显示实时波形曲线。

如果采集数据的入队速度和出队速度(这里速度通过延时控制)相同,则队列中的元素数量为零或为一个常数。如果入队速度大于出队速度,则队列的元素在增长;针对退出程序时队列中仍有未出队数据的情况设计了如图6-25所示的结构,保证只有在队列中没有数据时才释放队列引用并完成退出程序的操作,以保证采集数据能够完整存储。

978-7-111-49442-3-Chapter06-31.jpg

图6-25 队列等待循环程序框图

本数据采集系统采用了二进制TDMS文件格式。在保存文件的最后一列加入了数据点的采样时间,以便数据采集离线后地分析与处理,图6-26所示为文件存储格式。

978-7-111-49442-3-Chapter06-32.jpg

图6-26 TDMS文件存储格式

TDMS(Technical Data Management Streaming)是NI主推的一种二进制文件记录方式,它具有高速、易存取等特点。TDMS的逻辑结构分为三层:文件(File)、通道组(Channel Groups)和通道(Channels),本系统的TDMS文件逻辑结构如图6-26所示。TDMS文件的每一个层次上都可以附加特定的属性(Properties)。可以非常方便地使用这三个逻辑层次定义测试数据,也可以任意检索各个逻辑层次的数据,这使得数据检索变得有序且方便存取。当写完TDMS文件后,LabVIEW会自动生成两个文件:.tdms文件和.tdms_index文件。前者为数据文件(主文件),后者为索引文件(头文件)。二者最大的区别在于索引文件不包含Rawdata信息,而只包含属性等信息,这样可以增加数据检索的速度并且利于搜索TDMS文件。

本数据采集系统的TDMS文件的存储格式如图6-27所示。其中图6-27a为TDMS文件存储的通道组信息,图6-27b为存储的压力与功率数据,图6-27c为存储的温度数据,图6-27b和图6-27c中最后一列为每行数据的采集时间,其他每列为各个采样通道的数据值。

978-7-111-49442-3-Chapter06-33.jpg

图6-27 所采用的TDMS文件存储格式

a)TDMS文件存储的通道组信息 b)压力与功率数据 c)温度数据

3.数据回放模块编程

由于数据采集过程是连续的,在采集过程中无法完成更加深入细致地研究和分析,系统将所采集到的生产过程中的大量数据以TDMS格式保存在磁盘上,需要设计一个具有数据回放功能的程序,能够设置回放参数(包括通道选择、时间等),将采集到的数据进行回放,供离线分析使用,并为结合产品样本进行分析提供了基础。系统数据回放模块以存储的TDMS文件构成数据源,可选择单个或多个通道数据进行回放。数据回放程序运行状态流程图如图6-28所示。数据回放前面板如图6-29所示。

978-7-111-49442-3-Chapter06-34.jpg

图6-28 数据回放程序运行状态流程图

978-7-111-49442-3-Chapter06-35.jpg

图6-29 数据回放前面板

可以选择进行回放分析的TDMS数据文件,当在图表中显示很多个通道信号时,若把所有的信号都显示出来会使曲线很难辨认,若给每个信号都创建一个图表更不可能。这时候最好的办法是通过复选框来选择需要显示的信号。当操作者选择不同的通道后,单击“确定”按钮,数据曲线的图例也会相应的改变。可对采集的信号进行放大或缩小观察,或者选用标签进行逐点观察。数据回放模块基于状态机结构,程序框图如图6-30所示。

978-7-111-49442-3-Chapter06-36.jpg

图6-30 数据回放程序框图