王明玥,曲晓伟,刘同磊,张青,于志强
(天津电气科学研究院有限公司,天津 300180)
在工业领域,用户需要掌握现场工业设备的运行状况,以便进行状态监测、故障分析、预测优化等。数据采集是工业系统检测、管理和控制过程中取得原始数据的主要手段。数据采集分析系统能够将现场采集的温度、压力、风速、流量、水位、频率等非电信号转换成电信号,再传输到上位机进行存储、处理、分析和显示[1]。
现在常见的数据采集设备大部分需要配合外设组件互连(peripheral component interconnect,PCI)接口卡或外设组件互连专用(peripheral com⁃ponent interconnect express,PCIE)接口卡[2-3],与笔记本、台式机连接不方便。主控架构基本上采用“微控制单元(microcontroller unit,MCU)+ 现场可编程门阵列(field-programmable gate array,FP⁃GA)”的模式[4-5],受到片上存储空间限制,当采集通道较多时数据采样周期往往较大,当监测多路信号时会导致某些高频信号无法监测;且多台设备并行时,不能保证数据采集时间点的同步且精准。
工业设备的现场应用环境通常十分恶劣,采样信号容易受到干扰,且各设备之间通常存在一定距离。目前,缺乏一种组网式数据采集分析系统,它能够采集并处理大量数据,且数据具有较高的实时性、同步性;系统设备能够方便快捷地与笔记本或台式机相连,支持设备间长距离运行,且具备较强的抗干扰能力。
组网式工业数据采集分析系统包括上位机软件和采集设备[6]。上位机软件实现系统的参数设置、网卡设置,以及采集数据的接收、存储、解析及显示等功能,采集设备实现数据采集、高速光纤通讯、数据处理和传输等功能。
图1所示为一种组网式工业数据采集分析系统的结构图。数据采集设备包括多路隔离模拟量采集、多路隔离数字量采集、地址选择、高速光纤通讯、以太网通讯等电路结构,主控芯片采用FPGA。各设备之间通过高速光纤通讯级联组网,组网主站与上位机通过以太网相连。
图1 一种组网式工业数据采集分析系统的结构图Fig.1 Structure diagram of the networking industrial data acquisition and analysis system
组网式数据采集分析系统既可以单台运行,也可以组网运行。如果只有一台设备运行,那么该设备即为主站;如果多台设备进行组网运行,那么系统中有且仅有一个主站。
本系统无需特殊主站设备,采集设备兼容主从站功能。用户通过地址选择器对设备的主从属性进行选择,指定组网系统的主站设备。主站同时具备主站数据采集、从站数据汇总的功能。
本系统设备体积小,采样数据实时性高、准确度高、精度高,支持设备间长距离运行,抗干扰能力强。通过上位机软件多线程技术和FPGA高速光纤通讯技术,能够实现大量数据的接收、存储、解析以及显示。数据采样周期可调,且不受通道总数限制。
上位机软件采用微软基础类库(microsoft foundation classes,MFC)开发[7],实现系统的参数设置、网卡设置,以及采集数据的接收、存储、解析及显示等功能。上位机软件可以安装在任意带有网卡和网口的电脑设备上,该电脑作为数据采集分析系统的上位机,通过普通网线与数据采集设备连接。
上位机软件启动后,用户可以根据工业现场需求设置参数,包括:配置网卡、设置组网站点数目、激活或屏蔽站点及通道、设置采样周期、选择采样公式等。由于数据采集分析系统的重点是处理大量数据,因此上位机软件的设计重点在数据处理部分。
数据处理采用多线程技术[8],实现大量数据的接收、存储、解析以及显示等功能,可以支持用户对数据的在线监测和离线分析。多线程包括:数据采集与存储线程、数据解析线程、数据显示线程。其中,数据采集与存储线程为主线程;数据显示线程、数据解析线程属于工作线程,无窗口操作,以避免数据采集与存储线程发生堵塞。图2所示为上位机软件数据处理的多线程结构图。
图2 上位机软件数据处理的多线程结构图Fig.2 Multi-threading structure diagram of data processing of host computer software
数据处理部分的实现具体方法为:
1)数据采集与存储线程。内部又分为数据接收功能、数据存储功能。其中,数据接收功能为:上位机软件接收到数据后,将接收数据存到接收缓存区域内,并根据数据包长度进行处理。当接收数据有效时,将接收缓存中的数据复制到线程间缓存,并开启解析线程。数据存储功能为:上位机软件首先将接收到的原始数据处理成为网络协议包形式的数据,并根据用户设置的采样周期将数据存储到临时数组;当上述临时数组达到指定长度后,数据存储功能进行一次写存储文件操作。
2)数据解析线程。当用户读取在线数据时,上位机软件直接从内存区域取数;当用户读取离线数据时,上位机软件从存储文件中取数,且读取数据后按照网络协议对数据进行解析。
3)数据显示线程。当用户打开视图,则开启数据显示线程。利用双缓冲技术,将解析后的数据利用双缓冲技术绘制波形图,动态显示数据变化情况。
FPGA功能结构图如图3所示。地址选择为外置硬件器件,可选择如拨码开关等器件实现地址选择。主控芯片FPGA主要实现时序控制、数据采集、高速光纤通讯、数据处理及以太网通讯等功能。
图3 FPGA功能结构图Fig.3 FPGA functional structure diagram
其中,时序控制主要控制数据采集、高速光纤通讯、以太网通讯的周期;数据采集实现多路模拟量芯片驱动及数据采集、多路数字量数据采集,并将数据传输给数据处理模块;高速光纤通讯实现主从站的数据传输,也将数据传输给数据处理模块;数据处理汇集数据后,实现通讯协议转换以及数据缓存等功能;经过处理后的数据,通过以太网通讯完成FPGA与上位机的数据传输过程。
组网式工业数据采集分析系统中有且仅有一个主站。当地址选择器设置为“0”时,设备设置为主站;当地址选择器设置为非“0”时,设备设置为从站;从站应按照1,2,…,N的顺序进行设置,各设备根据地址选择器自动识别主、从站,并实现主从站功能。其中,主站FPGA功能包括:时序控制、数据采集、高速光纤通讯主站、数据处理及以太网通讯;从站FPGA功能包括:数据采集和高速光纤通讯从站。
FPGA根据系统方案控制数据采集周期、高速光纤通讯周期和以太网通讯周期。
数据采集包括多路模拟量采集和多路数字量采集,采集后的数据经过滤波,得到优化信号数据。
3.2.1 模拟量采集
实现多通道同步隔离模拟量采集。上位机软件设定模拟量数据采集的相关参数,并传输给FPGA。FPGA根据设定参数进行芯片配置及数据采集。其中,芯片配置可以根据用户配置实现不同范围和精度的数据采集。设备支持两种采集设置:输入范围为-10~10 V,精度2 mV;输入范围为0~10 V,精度1 mV。
3.2.2 数字量采集
实现多通道同步隔离数字量采集。设备能够采集多路0~24 V数字量。
高速光纤通讯采用具有设置灵活、速率快、准确度高等特点的自主协议进行通讯,通讯误码率小于10E-10。光纤通讯能够支持设备间长距离运行,且具有较强的抗干扰能力。通讯分为主站功能和从站功能,状态可通过状态字和故障字进行监测。
高速光纤通讯具备精准时钟控制功能,所有站点的时钟偏差小于200 ns,保证所有站点采集数据时间点的统一。通过该功能,用户能够用上位机软件准确对比同一时刻的不同站点不同通道的采集数据。
系统组网的站点数目可根据实际需求自由设置,从站将采集数据发送给主站,实现数据采集分析系统的组网功能。FPGA具有主从切换的功能,包括:主从功能切换和主从数据切换。主从功能切换是根据用户设置的硬件地址,执行对应功能,并选择正确的通讯端口;主从数据切换是从站数据通过高速光纤通讯传输给主站,而主站的采集数据直接写入FPGA内部随机存储器(ran⁃dom access memory,RAM)。高速光纤通讯充分考虑主、从站功能融合以及数据和站点的对应关系。
除数据传输外,从站还具备自动路由功能。从站根据通讯内容和地址选择器,判断自身是否是尾站。当不是尾站时,FPGA通过图1所示的光纤2将通讯帧传向后面的站点;当是尾站时,FP⁃GA从光纤1将通讯帧回传,同时光纤2不再工作。
主站FPGA汇总所有站点数据后,将数据按照协议处理并存入RAM中。主站FPGA每个发送周期读取本周期内所有数据,并发送至上位机软件。各从站设备虽然都具备以太网通讯功能,但只有当设备被设置成主站时,FPGA才会通过以太网通讯电路向上位机软件传输数据。
3.4.1 数据协议转换
在主站FPGA汇总数据的过程中,需要实现由“按照时间采集”向“按照站点传输”的转换。FPGA采用“乒乓操作”传输与缓存,以减少逻辑资源的使用情况。
3.4.2 数据存储
由于数据采集和高速光纤通讯的速率很快,主站FPGA汇总很多采样时间点的数据后,才会向上位机软件发送一次数据。受以太网带宽和上位机读写数据速率的限制,本周期数据没有传输完成时,下一周期的部分数据就会覆盖之前数据,造成数据错误。因此,FPGA内部采用两个RAM区域存储。
图4为FPGA读写内部RAM区域的逻辑切换图。写入和读取数据的RAM区域由FPGA内部控制,确保发送数据的正确性和完整性。
图4 FPGA读写内部RAM区域的逻辑切换图Fig.4 Logic switching diagram of FPGA reading and writing internal RAM area
图4中,Tc为FPGA与上位机通讯周期;WREN为主站FPGA写内部RAM的使能信号,配合高速光纤通讯周期,在Tc周期内95%时间有效、5%时间无效;WR_RAM为写RAM标志位,RD_RAM为读RAM标志位,二者根据WREN信号进行高低电平切换。当WR_RAM和RD_RAM为0或1时,FPGA分别写入或读取对应RAM区域的数据。
主站FPGA汇总所有站点数据后,将数据按照协议处理并存入RAM中。主站FPGA每个发送周期读取本周期内所有数据,并发送至上位机软件。各从站设备虽然都具备以太网通讯功能,但只有当设备被设置成主站时,FPGA才会通过以太网通讯电路向上位机软件传输数据。
图5为系统显示示例图。上位机软件能够对采样数据进行合并或单独显示。其中,M代表设备,A代表模拟量,D代表数字量。图5中示例性地显示了设备1第8路模拟量、设备2第1路模拟量、设备5第2路模拟量以及设备4第8路数字量的采集和显示效果。
图5 组网式工业数据采集分析系统显示示例图Fig.5 Display example of networking industrial data acquisition and analysis system
本系统已实际应用,可用于工业现场的变频器(如电压型逆变器、大功率中压变频等)系统,能够对运行过程中的数据进行采集和分析。本系统解决了工业现场数据采集受限制较多的问题,所采集的数据具备较高准确率、实时性和采样率,现场应用效果良好。
本文提出了一种组网式数据采集分析系统,其优点及效果如下:
1)系统采用上位机软件多线程技术和FPGA高速光纤通讯技术,共同实现大量数据的接收、存储、解析以及显示。数据采样周期可调,且不受通道总数限制。
2)数据采集设备之间采用光纤连接的方式进行组网,传输实时性高、准确率高;各站点之间能够实现时钟同步,保证组网设备数据采样时间统一;系统支持设备间长距离运行,抗干扰能力强。
3)数据采集设备采用多通道同步隔离采集方式,支持多组模拟量、多组数字量的高精度、高采样率的数据采集,而且数据采集参数可灵活配置。
4)系统无需特殊主站设备,用户通过地址选择器即可选择采集设备的主从属性,操作灵活简单。