(中國空氣動力研究與發(fā)展中心,四川 綿陽 621000)
風(fēng)洞數(shù)據(jù)采集系統(tǒng)是風(fēng)洞中不可或缺的重要組成部分,其在風(fēng)洞中主要是起到重要參數(shù)監(jiān)控以及試驗(yàn)數(shù)據(jù)獲取的作用。風(fēng)洞數(shù)據(jù)采集系統(tǒng)通常是由傳感器、數(shù)采設(shè)備以及上位機(jī)組成,其中數(shù)采設(shè)備是系統(tǒng)中最重要的部分,其往往決定這整個(gè)數(shù)據(jù)采集系統(tǒng)的性能指標(biāo)[1-2]。目前,根據(jù)數(shù)采設(shè)備的不同,已有許多不同的數(shù)據(jù)采集系統(tǒng)被設(shè)計(jì)出,例如:黃昊宇等人[3]基于PXI數(shù)采模塊對H高超聲速風(fēng)洞氣動力試驗(yàn)設(shè)計(jì)了數(shù)據(jù)采集處理系統(tǒng);孟亮等人[4]基于MSP430F149單片機(jī)設(shè)計(jì)了一個(gè)天平數(shù)據(jù)采集系統(tǒng),用于對某低速風(fēng)洞的天平數(shù)據(jù)進(jìn)行采集。由于本文的數(shù)據(jù)采集系統(tǒng)所針對的風(fēng)洞數(shù)據(jù)類型較復(fù)雜,傳感器輸出信號多樣化,因此,為了節(jié)約成本,簡化系統(tǒng),本文采用MX1601B-R數(shù)采設(shè)備進(jìn)行風(fēng)洞數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)。針對MX1601B-R數(shù)采設(shè)備,它配備有自帶的數(shù)據(jù)采集軟件,可以實(shí)現(xiàn)數(shù)據(jù)的簡單采集,但是該軟件功能無法擴(kuò)展,不能滿足風(fēng)洞試驗(yàn)這種特殊情況的使用需求。
基于此,本文開發(fā)了一個(gè)基于MX1601B-R的風(fēng)洞數(shù)據(jù)采集系統(tǒng),以滿足MX1601B-R數(shù)采設(shè)備在風(fēng)洞中進(jìn)行數(shù)據(jù)采集的需求。本系統(tǒng)軟件主要由模塊參數(shù)設(shè)置、主界面、吹風(fēng)試驗(yàn)、數(shù)據(jù)查看、遠(yuǎn)程控制等模塊組成,其主要具有以下幾個(gè)特點(diǎn):1)基于模塊化設(shè)計(jì),界面簡潔,操作簡單,功能擴(kuò)展性強(qiáng);2)除了MX1601B-R,還能支持HBM所有的MX系列數(shù)據(jù)采集設(shè)備,兼容性好;3)集成了風(fēng)洞試驗(yàn)過程中數(shù)據(jù)采集所需的各種功能,功能齊全。
本文的風(fēng)洞數(shù)據(jù)采集系統(tǒng)主要由MX1601B-R數(shù)采設(shè)備、以太網(wǎng)交換機(jī)、測量上位機(jī)三大部分組成。它們的組成結(jié)構(gòu)如圖1所示,所有的MX1601B-R數(shù)采設(shè)備由同步火線FIREWIRE串聯(lián)在一起,以便實(shí)現(xiàn)所有數(shù)采設(shè)備的數(shù)據(jù)同步采集。隨后, MX1601B-R數(shù)采設(shè)備與測量上位機(jī)再通過網(wǎng)線連接到以太網(wǎng)交換機(jī)上,以保證所有硬件設(shè)備在一個(gè)網(wǎng)段上。
圖1 基于MX1601B-R的風(fēng)洞數(shù)據(jù)采集系統(tǒng)硬件組成
系統(tǒng)在吹風(fēng)試驗(yàn)過程中,首先,由傳感器對風(fēng)洞中的溫度、壓力等試驗(yàn)參數(shù)進(jìn)行獲取,并將試驗(yàn)參數(shù)對應(yīng)的轉(zhuǎn)換為電壓或電流等信號;隨后,由MX1601B-R數(shù)采設(shè)備中已設(shè)置好傳感器類型的各個(gè)通道對傳感器的輸出信號進(jìn)行同步采集,采集完成后通過網(wǎng)線將數(shù)據(jù)傳送到測量上位機(jī)上;最后,再由測量上位機(jī)的數(shù)據(jù)采集軟件對試驗(yàn)數(shù)據(jù)進(jìn)行監(jiān)控、采集、存儲以及分析等。
本系統(tǒng)的數(shù)采設(shè)備為德國HBM公司的SomatXR MX1601B-R數(shù)采模塊,該模塊為堅(jiān)固性數(shù)據(jù)采集模塊,專門面向惡劣環(huán)境應(yīng)用設(shè)計(jì),能夠防水,防塵,可承受極端的振動和沖擊,并且具有更寬的溫度范圍。該模塊具有16個(gè)通道,每個(gè)通道采樣率達(dá)到19.2 kS/s,信號帶寬為3 kHz,通道能夠?qū)ν馓峁╇娫醇?。該模塊的每個(gè)通道可以根據(jù)需要對電壓、電流、電阻以及溫度等各種物理信號進(jìn)行采集,通道使用具有多樣化,能夠滿足風(fēng)洞中大部分傳感器信號采集的需要。
本文的數(shù)采系統(tǒng)基于C#進(jìn)行設(shè)計(jì),C#是微軟公司設(shè)計(jì)的一種從C和C++派生出來的一種簡單、現(xiàn)代、面向?qū)ο蠛皖愋桶踩木幊陶Z言,其主要用于開發(fā)可以運(yùn)行在.NET平臺上的應(yīng)用程序。C#具有語法簡單、徹底面向?qū)ο笤O(shè)計(jì)、安全機(jī)制強(qiáng)大、兼容性好等突出的特點(diǎn),它的應(yīng)用領(lǐng)域非常廣泛,例如:桌面應(yīng)用系統(tǒng)開發(fā)、網(wǎng)絡(luò)系統(tǒng)開發(fā)、操作系統(tǒng)平臺開發(fā)、智能手機(jī)程序開發(fā)等等[5-6]。
HBM Common API是由HBM所提供的應(yīng)用程序編寫接口,它是由C#語言編寫而成,因此,能夠很好地嵌入到C#軟件中。HBM Common API集成了MX1601B-R數(shù)采設(shè)備的許多重要功能函數(shù),例如:設(shè)備掃描與連接、模塊通道設(shè)置、數(shù)據(jù)采集等等。本文的數(shù)據(jù)采集軟件通過調(diào)用該API里的功能函數(shù)可以很方便地實(shí)現(xiàn)MX1601B-R數(shù)采設(shè)備的掃描連接、傳感器設(shè)置以及數(shù)據(jù)同步采集等。
Measurement Studio 2019 是NI 公司專為測試和控制領(lǐng)域開發(fā)的工具軟件,它將強(qiáng)大的數(shù)據(jù)采集分析功能無縫集成到Visual Studio中,支持VB、C#和C++等語言[7]。它提供了各種常用的測量和自動化控件、工具和類庫,包括.NET控件、高級分析函數(shù)、科學(xué)的用戶界面控件以及測量數(shù)據(jù)網(wǎng)絡(luò)等功能。運(yùn)用Measurement Studio 2019可以在Visual Studio編程基礎(chǔ)上快速創(chuàng)建完整的測量解決方案,能大大提高數(shù)據(jù)采集系統(tǒng)的開發(fā)效率[8]。
數(shù)據(jù)采集系統(tǒng)硬件設(shè)備搭建完成后,打開測量上位機(jī)的數(shù)據(jù)采集軟件對系統(tǒng)中的MX1601B-R數(shù)采模塊進(jìn)行掃描與連接。連接成功后,根據(jù)所采傳感器信號的不同對MX1601B-R數(shù)采模塊的各個(gè)通道進(jìn)行傳感器類型設(shè)置,同時(shí),對各個(gè)通道的數(shù)據(jù)類型進(jìn)行定義。所有MX1601B-R數(shù)采模塊的參數(shù)設(shè)置成功后,軟件開始實(shí)時(shí)顯示各個(gè)數(shù)采模塊的零點(diǎn)值,并根據(jù)需要通過軟件對所有的數(shù)采模塊進(jìn)行零點(diǎn)去除與保存。當(dāng)需要準(zhǔn)備試驗(yàn)吹風(fēng)時(shí),首先通過軟件對本次吹風(fēng)過程的試驗(yàn)參數(shù)進(jìn)行設(shè)置,設(shè)置完成后進(jìn)入到吹風(fēng)試驗(yàn)界面。吹風(fēng)試驗(yàn)界面開始對風(fēng)洞數(shù)據(jù)采集系統(tǒng)以及控制系統(tǒng)中的一些重要數(shù)據(jù)參數(shù)進(jìn)行實(shí)時(shí)監(jiān)控,同時(shí),根據(jù)需要對數(shù)采系統(tǒng)采集得到的數(shù)據(jù)進(jìn)行多樣化的數(shù)據(jù)顯示。當(dāng)需要進(jìn)行數(shù)據(jù)采集時(shí),通過軟件控制所有數(shù)采設(shè)備進(jìn)行數(shù)據(jù)的同步采集與存儲。數(shù)據(jù)采集完成后,可以根據(jù)需要通過軟件對已存儲的數(shù)據(jù)進(jìn)行查看與分析。此外,針對需要遠(yuǎn)程控制的情況,可以通過軟件連接到遠(yuǎn)程控制機(jī),并由遠(yuǎn)程控制機(jī)來控制本系統(tǒng)的數(shù)據(jù)采集。
圖2 軟件設(shè)計(jì)思路
依據(jù)風(fēng)洞數(shù)據(jù)采集系統(tǒng)的功能需求以及軟件的設(shè)計(jì)思路,對軟件進(jìn)行模塊化設(shè)計(jì)。軟件主要由模塊參數(shù)設(shè)置、主界面、吹風(fēng)試驗(yàn)、數(shù)據(jù)查看以及遠(yuǎn)程控制其5大模塊組成。
模塊參數(shù)設(shè)置界面主要用于對MX1601B-R數(shù)采模塊進(jìn)行掃描連接、通道傳感器類型設(shè)置以及通道數(shù)據(jù)類型設(shè)置等,如圖3所示。
模塊參數(shù)設(shè)置前,首先對網(wǎng)絡(luò)中所存在的MX1601B-R數(shù)采模塊進(jìn)行掃描,掃描完成后,數(shù)采模塊的硬件設(shè)備信息會顯示在顯示方框中,隨后,根據(jù)IP地址以及Port端口對需要連接的MX1601B-R數(shù)采模塊進(jìn)行連接。模塊連接成功后,通過16個(gè)通道按鈕對需要進(jìn)行傳感器類型設(shè)置的模塊通道進(jìn)行選擇;通道選擇完成后,通過“未用/4~20 mA/電壓”切換控件對傳感器類型進(jìn)行選擇,進(jìn)而通過切換控件內(nèi)部的控件對該傳感器的常規(guī)參數(shù)進(jìn)行設(shè)置,例如4~20 mA傳感器類型所需要設(shè)置的參數(shù)包括:傳感器激勵電壓、傳感器的最小(最大)電氣值、傳感器所測物理值的單位、傳感器電氣值所對應(yīng)的物理值以及傳感器的測量范圍等。傳感器類型參數(shù)設(shè)置完成后,由傳感器設(shè)置按鈕對所選的模塊通道進(jìn)行一鍵設(shè)置。
由于吹風(fēng)試驗(yàn)過程中MX1601B-R數(shù)采模塊各個(gè)通道的數(shù)據(jù)類型與采集位置有所不同,因此,為了便于后續(xù)的數(shù)據(jù)采集、數(shù)據(jù)區(qū)分以及數(shù)據(jù)處理等,還需要對通道的數(shù)據(jù)類型進(jìn)行設(shè)置。即當(dāng)選擇了某個(gè)數(shù)采模塊后,通過16個(gè)通道數(shù)據(jù)類型控件對該模塊16個(gè)通道的數(shù)據(jù)類型進(jìn)行定義,定義完成后,由數(shù)據(jù)類型設(shè)置按鈕進(jìn)行設(shè)置與保存。
主界面主要用于實(shí)現(xiàn)對MX1601B-R數(shù)采模塊的啟動與停止、數(shù)采模塊零點(diǎn)值的顯示與去除以及吹風(fēng)試驗(yàn)參數(shù)的設(shè)置等,如圖4所示。
圖4 主界面
模塊參數(shù)設(shè)置完成后,通過主界面上的啟停按鈕對所有已連接的MX1601B-R數(shù)采模塊進(jìn)行啟動,然后,主界面上的16個(gè)數(shù)據(jù)顯示控件會實(shí)時(shí)顯示當(dāng)前所選模塊的零點(diǎn)值,模塊的選擇可以通過8個(gè)模塊切換按鈕來實(shí)現(xiàn)。當(dāng)需要進(jìn)行零點(diǎn)去除時(shí),通過零點(diǎn)去除按鈕可以一鍵對所有的模塊進(jìn)行零點(diǎn)去除,并對零點(diǎn)值進(jìn)行存儲。此外,由于每次吹風(fēng)過程的試驗(yàn)條件可能不同,因此主界面上還設(shè)置了吹風(fēng)試驗(yàn)參數(shù)的設(shè)置與存儲,設(shè)置內(nèi)容主要包括試驗(yàn)車次、大氣壓力、環(huán)境溫度、采樣頻率以及采樣時(shí)間等常規(guī)參數(shù)。
吹風(fēng)試驗(yàn)界面主要用于實(shí)現(xiàn)對數(shù)采系統(tǒng)與控制系統(tǒng)重要參數(shù)的實(shí)時(shí)監(jiān)控、數(shù)采系統(tǒng)試驗(yàn)數(shù)據(jù)的實(shí)時(shí)顯示以及試驗(yàn)數(shù)據(jù)的采集與存儲等,如圖5所示。
圖5 吹風(fēng)試驗(yàn)界面
進(jìn)入吹風(fēng)試驗(yàn)狀態(tài)后,吹風(fēng)試驗(yàn)界面會對數(shù)據(jù)采集系統(tǒng)中的一些需要特別關(guān)注的試驗(yàn)數(shù)據(jù)以及風(fēng)洞控制系統(tǒng)中一些重要的控制參數(shù)進(jìn)行實(shí)時(shí)監(jiān)控,以便總體掌握整個(gè)風(fēng)洞的運(yùn)行情況。其中,數(shù)采系統(tǒng)的試驗(yàn)數(shù)據(jù)是由數(shù)采軟件通過TCP/IP協(xié)議直接從MX1601B-R數(shù)采模塊獲取的,而控制系統(tǒng)的控制參數(shù)則是通過OPC協(xié)議[9]從控制系統(tǒng)PLC上獲取的。
控制系統(tǒng)的參數(shù)獲取方法為:1)根據(jù)所需讀取的控制參數(shù)在PLC中的地址在NI OPC Servers中添加對應(yīng)的標(biāo)簽;2)在NI分布式系統(tǒng)管理器中將NI OPC Servers中的標(biāo)簽創(chuàng)建為網(wǎng)絡(luò)共享變量;3)在軟件中調(diào)用measurement studio中的NetworkVariable類函數(shù)并根據(jù)網(wǎng)絡(luò)共享變量的地址對控制參數(shù)進(jìn)行實(shí)時(shí)獲取。
除了參數(shù)的實(shí)時(shí)監(jiān)控,主界面還會對數(shù)采系統(tǒng)所采的試驗(yàn)數(shù)據(jù)進(jìn)行實(shí)時(shí)顯示,顯示樣式有曲線圖、柱狀圖以及溫度云圖三種可選,可以通過顯示切換控件進(jìn)行切換;數(shù)據(jù)顯示的頻率不超過10 Hz,即采集頻率小于10 Hz時(shí)就以采集頻率顯示,采集頻率大于10 Hz時(shí)就對數(shù)據(jù)進(jìn)行抽樣顯示,顯示頻率為固定的10 Hz,這種數(shù)據(jù)顯示的方式有助于數(shù)據(jù)的查看。此外,通過通道選擇控件能夠?qū)π枰@示的通道數(shù)據(jù)進(jìn)行任意選擇,同時(shí),還能夠?qū)?shù)據(jù)顯示的Y軸顯示范圍進(jìn)行設(shè)置,設(shè)置方式分為自適應(yīng)與固定值兩種。
當(dāng)需要進(jìn)行數(shù)據(jù)采集時(shí),點(diǎn)擊開始采集按鈕,軟件就會對所有連接的MX1601B-R數(shù)采模塊進(jìn)行數(shù)據(jù)的同步采集,采集過程中會有進(jìn)度提示,采集完成后,點(diǎn)擊數(shù)據(jù)保存按鈕對試驗(yàn)數(shù)據(jù)進(jìn)行存儲,存儲的數(shù)據(jù)內(nèi)容包括:吹風(fēng)試驗(yàn)參數(shù)、通道數(shù)據(jù)類型、數(shù)據(jù)時(shí)間戳、試驗(yàn)數(shù)據(jù)等,數(shù)據(jù)保存的格式有CSV、TXT、Excel等多種類型可選。
數(shù)據(jù)查看界面主要用于對已存儲的數(shù)據(jù)進(jìn)行查看與分析,如圖6所示。
圖6 數(shù)據(jù)查看分析界面
吹風(fēng)試驗(yàn)結(jié)束后,為了便于數(shù)據(jù)的查看與分析,因此,本軟件設(shè)置了數(shù)據(jù)查看分析功能。即通過軟件打開需要查看的數(shù)據(jù),軟件就能以圖形化的形式顯示出打開的數(shù)據(jù),并對打開的數(shù)據(jù)進(jìn)行分析。同樣,數(shù)據(jù)顯示具有多樣化,能夠?qū)π枰榭吹耐ǖ罃?shù)據(jù)進(jìn)行任意選擇,以及能夠?qū)?shù)據(jù)顯示的Y軸顯示范圍進(jìn)行自適應(yīng)與固定值設(shè)置等。
遠(yuǎn)程控制界面主要用于遠(yuǎn)程控制機(jī)的參數(shù)設(shè)置與連接,如圖7所示。
圖7 遠(yuǎn)程控制界面
風(fēng)洞吹風(fēng)試驗(yàn)過程中,有時(shí)往往需要多個(gè)系統(tǒng)同步采集以及遠(yuǎn)程操控等,因此本軟件還設(shè)置了遠(yuǎn)程控制模式。為了實(shí)現(xiàn)多個(gè)系統(tǒng)的同步采集,首先需要完成的就是系統(tǒng)之間的時(shí)間同步,本文采用NTP的同步方式[10],即將遠(yuǎn)程控制機(jī)設(shè)置為NTP服務(wù)器,本系統(tǒng)設(shè)置為NTP客服端,然后將遠(yuǎn)程控制機(jī)的時(shí)間同步到本系統(tǒng)上。時(shí)間同步完成后,通過本軟件的遠(yuǎn)程控制界面對遠(yuǎn)程控制機(jī)的IP地址、Port端口、開始采集命令以及停止采集命令等進(jìn)行設(shè)置。當(dāng)需要進(jìn)行遠(yuǎn)程控制時(shí),點(diǎn)擊遠(yuǎn)程控制模式按鈕將采集控制權(quán)交于遠(yuǎn)程控制機(jī),遠(yuǎn)程控制機(jī)就可以通過發(fā)送采集命令來控制本系統(tǒng)的數(shù)據(jù)采集,當(dāng)不需要遠(yuǎn)程控制時(shí)點(diǎn)擊本地控制模式按鈕再轉(zhuǎn)為本地采集模式。
硬件掃描:
DaqEnvironment _daqEnvironment = DaqEnvironment.GetInstance();
List
HBM數(shù)采模塊連接:
List
QuantumXDevice HBM_myDevice=new QuantumXDevice();
HBM_myDevice.ConnectionInfo=new StreamingConnectionInfo(IP,Port);
bool isOk = _daqEnvironment.Connect(HBM_myDevice, out connectProblems);
通道傳感器類型設(shè)置:
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);
采集準(zhǔn)備與開始:
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)。
為了驗(yàn)證本系統(tǒng)的可行性,使用本系統(tǒng)對某風(fēng)洞吹風(fēng)試驗(yàn)時(shí)的溫度排架數(shù)據(jù)進(jìn)行采集與分析,該溫度排架包括16個(gè)溫度傳感器,縱向布局。吹風(fēng)過程中的數(shù)據(jù)采集情況與采集結(jié)束后的數(shù)據(jù)查看分析情況分別如圖8、9所示。
圖8 吹風(fēng)試驗(yàn)中的數(shù)據(jù)采集情況
圖9 數(shù)據(jù)查看與分析情況
通過測試結(jié)果可以表明,本文所設(shè)計(jì)的風(fēng)洞數(shù)據(jù)采集系統(tǒng)能夠有效地對風(fēng)洞數(shù)采系統(tǒng)與控制系統(tǒng)的試驗(yàn)參數(shù)進(jìn)行實(shí)時(shí)監(jiān)控,并準(zhǔn)確地對吹風(fēng)試驗(yàn)數(shù)據(jù)進(jìn)行同步采集、多樣化顯示以及數(shù)據(jù)分析。同時(shí),系統(tǒng)的采集啟動時(shí)間誤差優(yōu)于0.01 s,符合風(fēng)洞試驗(yàn)中數(shù)據(jù)采集的響應(yīng)時(shí)間要求。因此,該系統(tǒng)能夠有效地滿足風(fēng)洞吹風(fēng)試驗(yàn)的數(shù)據(jù)采集需求。
本文為了滿足MX1601B-R數(shù)采設(shè)備在風(fēng)洞中的進(jìn)行數(shù)據(jù)采集的需求,基于MX1601B-R設(shè)計(jì)了一個(gè)風(fēng)洞數(shù)據(jù)采集系統(tǒng)。通過數(shù)采系統(tǒng)的硬件組成與風(fēng)洞數(shù)據(jù)采集的功能需求給出了詳細(xì)有效的設(shè)計(jì)思路,并根據(jù)該設(shè)計(jì)思路對數(shù)據(jù)系統(tǒng)的設(shè)備掃描連接、模塊參數(shù)設(shè)置、零點(diǎn)顯示、數(shù)據(jù)監(jiān)控、數(shù)據(jù)采集以及數(shù)據(jù)查看與分析等方面進(jìn)行了詳細(xì)設(shè)計(jì)。最后,使用本系統(tǒng)對某風(fēng)洞的溫度排架進(jìn)行數(shù)據(jù)采集,并通過采集分析結(jié)果對本系統(tǒng)進(jìn)行驗(yàn)證。驗(yàn)證結(jié)果表明,本系統(tǒng)界面簡潔、功能齊全并且設(shè)備兼容性好,能夠有效的進(jìn)行零點(diǎn)顯示、數(shù)據(jù)監(jiān)控、同步采集、多樣化顯示與數(shù)據(jù)分析等,同時(shí)具有較快的采集響應(yīng),滿足MX1601B-R數(shù)采模塊在風(fēng)洞中進(jìn)行數(shù)據(jù)采集的功能需求。下一步工作是融合更多不同的數(shù)采設(shè)備在本系統(tǒng)中,形成一個(gè)通用性的風(fēng)洞數(shù)采系統(tǒng)。