基于MX1601B-R的风洞数据采集系统设计与实现
2020-06-29
(中国空气动力研究与发展中心,四川 绵阳 621000)
0 引言
风洞数据采集系统是风洞中不可或缺的重要组成部分,其在风洞中主要是起到重要参数监控以及试验数据获取的作用。风洞数据采集系统通常是由传感器、数采设备以及上位机组成,其中数采设备是系统中最重要的部分,其往往决定这整个数据采集系统的性能指标[1-2]。目前,根据数采设备的不同,已有许多不同的数据采集系统被设计出,例如:黄昊宇等人[3]基于PXI数采模块对H高超声速风洞气动力试验设计了数据采集处理系统;孟亮等人[4]基于MSP430F149单片机设计了一个天平数据采集系统,用于对某低速风洞的天平数据进行采集。由于本文的数据采集系统所针对的风洞数据类型较复杂,传感器输出信号多样化,因此,为了节约成本,简化系统,本文采用MX1601B-R数采设备进行风洞数据采集系统的设计。针对MX1601B-R数采设备,它配备有自带的数据采集软件,可以实现数据的简单采集,但是该软件功能无法扩展,不能满足风洞试验这种特殊情况的使用需求。
基于此,本文开发了一个基于MX1601B-R的风洞数据采集系统,以满足MX1601B-R数采设备在风洞中进行数据采集的需求。本系统软件主要由模块参数设置、主界面、吹风试验、数据查看、远程控制等模块组成,其主要具有以下几个特点:1)基于模块化设计,界面简洁,操作简单,功能扩展性强;2)除了MX1601B-R,还能支持HBM所有的MX系列数据采集设备,兼容性好;3)集成了风洞试验过程中数据采集所需的各种功能,功能齐全。
1 系统结构及原理
1.1 系统结构
本文的风洞数据采集系统主要由MX1601B-R数采设备、以太网交换机、测量上位机三大部分组成。它们的组成结构如图1所示,所有的MX1601B-R数采设备由同步火线FIREWIRE串联在一起,以便实现所有数采设备的数据同步采集。随后, MX1601B-R数采设备与测量上位机再通过网线连接到以太网交换机上,以保证所有硬件设备在一个网段上。
图1 基于MX1601B-R的风洞数据采集系统硬件组成
1.2 系统工作原理
系统在吹风试验过程中,首先,由传感器对风洞中的温度、压力等试验参数进行获取,并将试验参数对应的转换为电压或电流等信号;随后,由MX1601B-R数采设备中已设置好传感器类型的各个通道对传感器的输出信号进行同步采集,采集完成后通过网线将数据传送到测量上位机上;最后,再由测量上位机的数据采集软件对试验数据进行监控、采集、存储以及分析等。
2 系统硬件及设计平台
2.1 数采设备
本系统的数采设备为德国HBM公司的SomatXR MX1601B-R数采模块,该模块为坚固性数据采集模块,专门面向恶劣环境应用设计,能够防水,防尘,可承受极端的振动和冲击,并且具有更宽的温度范围。该模块具有16个通道,每个通道采样率达到19.2 kS/s,信号带宽为3 kHz,通道能够对外提供电源激励。该模块的每个通道可以根据需要对电压、电流、电阻以及温度等各种物理信号进行采集,通道使用具有多样化,能够满足风洞中大部分传感器信号采集的需要。
2.2 设计平台
本文的数采系统基于C#进行设计,C#是微软公司设计的一种从C和C++派生出来的一种简单、现代、面向对象和类型安全的编程语言,其主要用于开发可以运行在.NET平台上的应用程序。C#具有语法简单、彻底面向对象设计、安全机制强大、兼容性好等突出的特点,它的应用领域非常广泛,例如:桌面应用系统开发、网络系统开发、操作系统平台开发、智能手机程序开发等等[5-6]。
HBM Common API是由HBM所提供的应用程序编写接口,它是由C#语言编写而成,因此,能够很好地嵌入到C#软件中。HBM Common API集成了MX1601B-R数采设备的许多重要功能函数,例如:设备扫描与连接、模块通道设置、数据采集等等。本文的数据采集软件通过调用该API里的功能函数可以很方便地实现MX1601B-R数采设备的扫描连接、传感器设置以及数据同步采集等。
Measurement Studio 2019 是NI 公司专为测试和控制领域开发的工具软件,它将强大的数据采集分析功能无缝集成到Visual Studio中,支持VB、C#和C++等语言[7]。它提供了各种常用的测量和自动化控件、工具和类库,包括.NET控件、高级分析函数、科学的用户界面控件以及测量数据网络等功能。运用Measurement Studio 2019可以在Visual Studio编程基础上快速创建完整的测量解决方案,能大大提高数据采集系统的开发效率[8]。
3 系统软件设计
3.1 软件设计思路
数据采集系统硬件设备搭建完成后,打开测量上位机的数据采集软件对系统中的MX1601B-R数采模块进行扫描与连接。连接成功后,根据所采传感器信号的不同对MX1601B-R数采模块的各个通道进行传感器类型设置,同时,对各个通道的数据类型进行定义。所有MX1601B-R数采模块的参数设置成功后,软件开始实时显示各个数采模块的零点值,并根据需要通过软件对所有的数采模块进行零点去除与保存。当需要准备试验吹风时,首先通过软件对本次吹风过程的试验参数进行设置,设置完成后进入到吹风试验界面。吹风试验界面开始对风洞数据采集系统以及控制系统中的一些重要数据参数进行实时监控,同时,根据需要对数采系统采集得到的数据进行多样化的数据显示。当需要进行数据采集时,通过软件控制所有数采设备进行数据的同步采集与存储。数据采集完成后,可以根据需要通过软件对已存储的数据进行查看与分析。此外,针对需要远程控制的情况,可以通过软件连接到远程控制机,并由远程控制机来控制本系统的数据采集。
图2 软件设计思路
3.2 软件模块组成
依据风洞数据采集系统的功能需求以及软件的设计思路,对软件进行模块化设计。软件主要由模块参数设置、主界面、吹风试验、数据查看以及远程控制其5大模块组成。
模块参数设置界面主要用于对MX1601B-R数采模块进行扫描连接、通道传感器类型设置以及通道数据类型设置等,如图3所示。
模块参数设置前,首先对网络中所存在的MX1601B-R数采模块进行扫描,扫描完成后,数采模块的硬件设备信息会显示在显示方框中,随后,根据IP地址以及Port端口对需要连接的MX1601B-R数采模块进行连接。模块连接成功后,通过16个通道按钮对需要进行传感器类型设置的模块通道进行选择;通道选择完成后,通过“未用/4~20 mA/电压”切换控件对传感器类型进行选择,进而通过切换控件内部的控件对该传感器的常规参数进行设置,例如4~20 mA传感器类型所需要设置的参数包括:传感器激励电压、传感器的最小(最大)电气值、传感器所测物理值的单位、传感器电气值所对应的物理值以及传感器的测量范围等。传感器类型参数设置完成后,由传感器设置按钮对所选的模块通道进行一键设置。
由于吹风试验过程中MX1601B-R数采模块各个通道的数据类型与采集位置有所不同,因此,为了便于后续的数据采集、数据区分以及数据处理等,还需要对通道的数据类型进行设置。即当选择了某个数采模块后,通过16个通道数据类型控件对该模块16个通道的数据类型进行定义,定义完成后,由数据类型设置按钮进行设置与保存。
主界面主要用于实现对MX1601B-R数采模块的启动与停止、数采模块零点值的显示与去除以及吹风试验参数的设置等,如图4所示。
图4 主界面
模块参数设置完成后,通过主界面上的启停按钮对所有已连接的MX1601B-R数采模块进行启动,然后,主界面上的16个数据显示控件会实时显示当前所选模块的零点值,模块的选择可以通过8个模块切换按钮来实现。当需要进行零点去除时,通过零点去除按钮可以一键对所有的模块进行零点去除,并对零点值进行存储。此外,由于每次吹风过程的试验条件可能不同,因此主界面上还设置了吹风试验参数的设置与存储,设置内容主要包括试验车次、大气压力、环境温度、采样频率以及采样时间等常规参数。
吹风试验界面主要用于实现对数采系统与控制系统重要参数的实时监控、数采系统试验数据的实时显示以及试验数据的采集与存储等,如图5所示。
图5 吹风试验界面
进入吹风试验状态后,吹风试验界面会对数据采集系统中的一些需要特别关注的试验数据以及风洞控制系统中一些重要的控制参数进行实时监控,以便总体掌握整个风洞的运行情况。其中,数采系统的试验数据是由数采软件通过TCP/IP协议直接从MX1601B-R数采模块获取的,而控制系统的控制参数则是通过OPC协议[9]从控制系统PLC上获取的。
控制系统的参数获取方法为:1)根据所需读取的控制参数在PLC中的地址在NI OPC Servers中添加对应的标签;2)在NI分布式系统管理器中将NI OPC Servers中的标签创建为网络共享变量;3)在软件中调用measurement studio中的NetworkVariable类函数并根据网络共享变量的地址对控制参数进行实时获取。
除了参数的实时监控,主界面还会对数采系统所采的试验数据进行实时显示,显示样式有曲线图、柱状图以及温度云图三种可选,可以通过显示切换控件进行切换;数据显示的频率不超过10 Hz,即采集频率小于10 Hz时就以采集频率显示,采集频率大于10 Hz时就对数据进行抽样显示,显示频率为固定的10 Hz,这种数据显示的方式有助于数据的查看。此外,通过通道选择控件能够对需要显示的通道数据进行任意选择,同时,还能够对数据显示的Y轴显示范围进行设置,设置方式分为自适应与固定值两种。
当需要进行数据采集时,点击开始采集按钮,软件就会对所有连接的MX1601B-R数采模块进行数据的同步采集,采集过程中会有进度提示,采集完成后,点击数据保存按钮对试验数据进行存储,存储的数据内容包括:吹风试验参数、通道数据类型、数据时间戳、试验数据等,数据保存的格式有CSV、TXT、Excel等多种类型可选。
数据查看界面主要用于对已存储的数据进行查看与分析,如图6所示。
图6 数据查看分析界面
吹风试验结束后,为了便于数据的查看与分析,因此,本软件设置了数据查看分析功能。即通过软件打开需要查看的数据,软件就能以图形化的形式显示出打开的数据,并对打开的数据进行分析。同样,数据显示具有多样化,能够对需要查看的通道数据进行任意选择,以及能够对数据显示的Y轴显示范围进行自适应与固定值设置等。
远程控制界面主要用于远程控制机的参数设置与连接,如图7所示。
图7 远程控制界面
风洞吹风试验过程中,有时往往需要多个系统同步采集以及远程操控等,因此本软件还设置了远程控制模式。为了实现多个系统的同步采集,首先需要完成的就是系统之间的时间同步,本文采用NTP的同步方式[10],即将远程控制机设置为NTP服务器,本系统设置为NTP客服端,然后将远程控制机的时间同步到本系统上。时间同步完成后,通过本软件的远程控制界面对远程控制机的IP地址、Port端口、开始采集命令以及停止采集命令等进行设置。当需要进行远程控制时,点击远程控制模式按钮将采集控制权交于远程控制机,远程控制机就可以通过发送采集命令来控制本系统的数据采集,当不需要远程控制时点击本地控制模式按钮再转为本地采集模式。
3.3 软件核心指令
硬件扫描:
DaqEnvironment _daqEnvironment = DaqEnvironment.GetInstance();
List
HBM数采模块连接:
List
QuantumXDevice HBM_myDevice=new QuantumXDevice();
HBM_myDevice.ConnectionInfo=new StreamingConnectionInfo(IP,Port);
bool isOk = _daqEnvironment.Connect(HBM_myDevice, out connectProblems);
通道传感器类型设置:
CurrentSensor MySensor=new CurrentSensor();
MySensor.UniqueName=”4_20mA Sensor”;
MySensor.ActiveSupplyType=Hbm.Api.SensorDB.Enums.ActiveSupplyType.Voltage;
MySensor.ActiveSupplyValue=24;
TwoPointScaling scaling = new TwoPointScaling();
scaling.ElectricalP1 = 4;scaling.ElectricalP2 = 20;scaling.EngineeringP1 = -50;scaling.EngineeringP2 = 120;scaling.MinEngineeringRange = -50; scaling.MaxEngineeringRange = 120; scaling.EngineeringUnit = "℃";
MySensor.Scaling=scaling;
AnalogInChannel ch = HBM_myDevice.Connectors[0].Channels[0] as AnalogInChannel;
Ch.Sensor=MySensor;
List
bool isOk = HBM_myDevice.AssignSensor(ch, out assignProblems);
采集准备与开始:
DaqMeasurement _daqMeasurement=new DaqMeasurement();
List
HBM_signalsToMeasure.Add(HBM_myDevice.Connectors[0].Channels[0].Signals[0]);
_daqMeasurement.AddSignals(HBM_myDevice, HBM_signalsToMeasure);
_daqMeasurement.PrepareDaq();
_daqMeasurement.StartDaq(DataAcquisitionMode.TimestampSynchronized);
采集停止与断开:
daqMeasurement.StopDaq();
_daqEnvironment.Disconnect(HBM_myDevice)。
4 系统测试与验证
为了验证本系统的可行性,使用本系统对某风洞吹风试验时的温度排架数据进行采集与分析,该温度排架包括16个温度传感器,纵向布局。吹风过程中的数据采集情况与采集结束后的数据查看分析情况分别如图8、9所示。
图8 吹风试验中的数据采集情况
图9 数据查看与分析情况
通过测试结果可以表明,本文所设计的风洞数据采集系统能够有效地对风洞数采系统与控制系统的试验参数进行实时监控,并准确地对吹风试验数据进行同步采集、多样化显示以及数据分析。同时,系统的采集启动时间误差优于0.01 s,符合风洞试验中数据采集的响应时间要求。因此,该系统能够有效地满足风洞吹风试验的数据采集需求。
5 结束语
本文为了满足MX1601B-R数采设备在风洞中的进行数据采集的需求,基于MX1601B-R设计了一个风洞数据采集系统。通过数采系统的硬件组成与风洞数据采集的功能需求给出了详细有效的设计思路,并根据该设计思路对数据系统的设备扫描连接、模块参数设置、零点显示、数据监控、数据采集以及数据查看与分析等方面进行了详细设计。最后,使用本系统对某风洞的温度排架进行数据采集,并通过采集分析结果对本系统进行验证。验证结果表明,本系统界面简洁、功能齐全并且设备兼容性好,能够有效的进行零点显示、数据监控、同步采集、多样化显示与数据分析等,同时具有较快的采集响应,满足MX1601B-R数采模块在风洞中进行数据采集的功能需求。下一步工作是融合更多不同的数采设备在本系统中,形成一个通用性的风洞数采系统。