王明玥,曲曉偉,劉同磊,張青,于志強(qiáng)
(天津電氣科學(xué)研究院有限公司,天津 300180)
在工業(yè)領(lǐng)域,用戶需要掌握現(xiàn)場(chǎng)工業(yè)設(shè)備的運(yùn)行狀況,以便進(jìn)行狀態(tài)監(jiān)測(cè)、故障分析、預(yù)測(cè)優(yōu)化等。數(shù)據(jù)采集是工業(yè)系統(tǒng)檢測(cè)、管理和控制過(guò)程中取得原始數(shù)據(jù)的主要手段。數(shù)據(jù)采集分析系統(tǒng)能夠?qū)F(xiàn)場(chǎng)采集的溫度、壓力、風(fēng)速、流量、水位、頻率等非電信號(hào)轉(zhuǎn)換成電信號(hào),再傳輸?shù)缴衔粰C(jī)進(jìn)行存儲(chǔ)、處理、分析和顯示[1]。
現(xiàn)在常見(jiàn)的數(shù)據(jù)采集設(shè)備大部分需要配合外設(shè)組件互連(peripheral component interconnect,PCI)接口卡或外設(shè)組件互連專用(peripheral com?ponent interconnect express,PCIE)接口卡[2-3],與筆記本、臺(tái)式機(jī)連接不方便。主控架構(gòu)基本上采用“微控制單元(microcontroller unit,MCU)+ 現(xiàn)場(chǎng)可編程門(mén)陣列(field-programmable gate array,F(xiàn)P?GA)”的模式[4-5],受到片上存儲(chǔ)空間限制,當(dāng)采集通道較多時(shí)數(shù)據(jù)采樣周期往往較大,當(dāng)監(jiān)測(cè)多路信號(hào)時(shí)會(huì)導(dǎo)致某些高頻信號(hào)無(wú)法監(jiān)測(cè);且多臺(tái)設(shè)備并行時(shí),不能保證數(shù)據(jù)采集時(shí)間點(diǎn)的同步且精準(zhǔn)。
工業(yè)設(shè)備的現(xiàn)場(chǎng)應(yīng)用環(huán)境通常十分惡劣,采樣信號(hào)容易受到干擾,且各設(shè)備之間通常存在一定距離。目前,缺乏一種組網(wǎng)式數(shù)據(jù)采集分析系統(tǒng),它能夠采集并處理大量數(shù)據(jù),且數(shù)據(jù)具有較高的實(shí)時(shí)性、同步性;系統(tǒng)設(shè)備能夠方便快捷地與筆記本或臺(tái)式機(jī)相連,支持設(shè)備間長(zhǎng)距離運(yùn)行,且具備較強(qiáng)的抗干擾能力。
組網(wǎng)式工業(yè)數(shù)據(jù)采集分析系統(tǒng)包括上位機(jī)軟件和采集設(shè)備[6]。上位機(jī)軟件實(shí)現(xiàn)系統(tǒng)的參數(shù)設(shè)置、網(wǎng)卡設(shè)置,以及采集數(shù)據(jù)的接收、存儲(chǔ)、解析及顯示等功能,采集設(shè)備實(shí)現(xiàn)數(shù)據(jù)采集、高速光纖通訊、數(shù)據(jù)處理和傳輸?shù)裙δ堋?/p>
圖1所示為一種組網(wǎng)式工業(yè)數(shù)據(jù)采集分析系統(tǒng)的結(jié)構(gòu)圖。數(shù)據(jù)采集設(shè)備包括多路隔離模擬量采集、多路隔離數(shù)字量采集、地址選擇、高速光纖通訊、以太網(wǎng)通訊等電路結(jié)構(gòu),主控芯片采用FPGA。各設(shè)備之間通過(guò)高速光纖通訊級(jí)聯(lián)組網(wǎng),組網(wǎng)主站與上位機(jī)通過(guò)以太網(wǎng)相連。
圖1 一種組網(wǎng)式工業(yè)數(shù)據(jù)采集分析系統(tǒng)的結(jié)構(gòu)圖Fig.1 Structure diagram of the networking industrial data acquisition and analysis system
組網(wǎng)式數(shù)據(jù)采集分析系統(tǒng)既可以單臺(tái)運(yùn)行,也可以組網(wǎng)運(yùn)行。如果只有一臺(tái)設(shè)備運(yùn)行,那么該設(shè)備即為主站;如果多臺(tái)設(shè)備進(jìn)行組網(wǎng)運(yùn)行,那么系統(tǒng)中有且僅有一個(gè)主站。
本系統(tǒng)無(wú)需特殊主站設(shè)備,采集設(shè)備兼容主從站功能。用戶通過(guò)地址選擇器對(duì)設(shè)備的主從屬性進(jìn)行選擇,指定組網(wǎng)系統(tǒng)的主站設(shè)備。主站同時(shí)具備主站數(shù)據(jù)采集、從站數(shù)據(jù)匯總的功能。
本系統(tǒng)設(shè)備體積小,采樣數(shù)據(jù)實(shí)時(shí)性高、準(zhǔn)確度高、精度高,支持設(shè)備間長(zhǎng)距離運(yùn)行,抗干擾能力強(qiáng)。通過(guò)上位機(jī)軟件多線程技術(shù)和FPGA高速光纖通訊技術(shù),能夠?qū)崿F(xiàn)大量數(shù)據(jù)的接收、存儲(chǔ)、解析以及顯示。數(shù)據(jù)采樣周期可調(diào),且不受通道總數(shù)限制。
上位機(jī)軟件采用微軟基礎(chǔ)類庫(kù)(microsoft foundation classes,MFC)開(kāi)發(fā)[7],實(shí)現(xiàn)系統(tǒng)的參數(shù)設(shè)置、網(wǎng)卡設(shè)置,以及采集數(shù)據(jù)的接收、存儲(chǔ)、解析及顯示等功能。上位機(jī)軟件可以安裝在任意帶有網(wǎng)卡和網(wǎng)口的電腦設(shè)備上,該電腦作為數(shù)據(jù)采集分析系統(tǒng)的上位機(jī),通過(guò)普通網(wǎng)線與數(shù)據(jù)采集設(shè)備連接。
上位機(jī)軟件啟動(dòng)后,用戶可以根據(jù)工業(yè)現(xiàn)場(chǎng)需求設(shè)置參數(shù),包括:配置網(wǎng)卡、設(shè)置組網(wǎng)站點(diǎn)數(shù)目、激活或屏蔽站點(diǎn)及通道、設(shè)置采樣周期、選擇采樣公式等。由于數(shù)據(jù)采集分析系統(tǒng)的重點(diǎn)是處理大量數(shù)據(jù),因此上位機(jī)軟件的設(shè)計(jì)重點(diǎn)在數(shù)據(jù)處理部分。
數(shù)據(jù)處理采用多線程技術(shù)[8],實(shí)現(xiàn)大量數(shù)據(jù)的接收、存儲(chǔ)、解析以及顯示等功能,可以支持用戶對(duì)數(shù)據(jù)的在線監(jiān)測(cè)和離線分析。多線程包括:數(shù)據(jù)采集與存儲(chǔ)線程、數(shù)據(jù)解析線程、數(shù)據(jù)顯示線程。其中,數(shù)據(jù)采集與存儲(chǔ)線程為主線程;數(shù)據(jù)顯示線程、數(shù)據(jù)解析線程屬于工作線程,無(wú)窗口操作,以避免數(shù)據(jù)采集與存儲(chǔ)線程發(fā)生堵塞。圖2所示為上位機(jī)軟件數(shù)據(jù)處理的多線程結(jié)構(gòu)圖。
圖2 上位機(jī)軟件數(shù)據(jù)處理的多線程結(jié)構(gòu)圖Fig.2 Multi-threading structure diagram of data processing of host computer software
數(shù)據(jù)處理部分的實(shí)現(xiàn)具體方法為:
1)數(shù)據(jù)采集與存儲(chǔ)線程。內(nèi)部又分為數(shù)據(jù)接收功能、數(shù)據(jù)存儲(chǔ)功能。其中,數(shù)據(jù)接收功能為:上位機(jī)軟件接收到數(shù)據(jù)后,將接收數(shù)據(jù)存到接收緩存區(qū)域內(nèi),并根據(jù)數(shù)據(jù)包長(zhǎng)度進(jìn)行處理。當(dāng)接收數(shù)據(jù)有效時(shí),將接收緩存中的數(shù)據(jù)復(fù)制到線程間緩存,并開(kāi)啟解析線程。數(shù)據(jù)存儲(chǔ)功能為:上位機(jī)軟件首先將接收到的原始數(shù)據(jù)處理成為網(wǎng)絡(luò)協(xié)議包形式的數(shù)據(jù),并根據(jù)用戶設(shè)置的采樣周期將數(shù)據(jù)存儲(chǔ)到臨時(shí)數(shù)組;當(dāng)上述臨時(shí)數(shù)組達(dá)到指定長(zhǎng)度后,數(shù)據(jù)存儲(chǔ)功能進(jìn)行一次寫(xiě)存儲(chǔ)文件操作。
2)數(shù)據(jù)解析線程。當(dāng)用戶讀取在線數(shù)據(jù)時(shí),上位機(jī)軟件直接從內(nèi)存區(qū)域取數(shù);當(dāng)用戶讀取離線數(shù)據(jù)時(shí),上位機(jī)軟件從存儲(chǔ)文件中取數(shù),且讀取數(shù)據(jù)后按照網(wǎng)絡(luò)協(xié)議對(duì)數(shù)據(jù)進(jìn)行解析。
3)數(shù)據(jù)顯示線程。當(dāng)用戶打開(kāi)視圖,則開(kāi)啟數(shù)據(jù)顯示線程。利用雙緩沖技術(shù),將解析后的數(shù)據(jù)利用雙緩沖技術(shù)繪制波形圖,動(dòng)態(tài)顯示數(shù)據(jù)變化情況。
FPGA功能結(jié)構(gòu)圖如圖3所示。地址選擇為外置硬件器件,可選擇如撥碼開(kāi)關(guān)等器件實(shí)現(xiàn)地址選擇。主控芯片F(xiàn)PGA主要實(shí)現(xiàn)時(shí)序控制、數(shù)據(jù)采集、高速光纖通訊、數(shù)據(jù)處理及以太網(wǎng)通訊等功能。
圖3 FPGA功能結(jié)構(gòu)圖Fig.3 FPGA functional structure diagram
其中,時(shí)序控制主要控制數(shù)據(jù)采集、高速光纖通訊、以太網(wǎng)通訊的周期;數(shù)據(jù)采集實(shí)現(xiàn)多路模擬量芯片驅(qū)動(dòng)及數(shù)據(jù)采集、多路數(shù)字量數(shù)據(jù)采集,并將數(shù)據(jù)傳輸給數(shù)據(jù)處理模塊;高速光纖通訊實(shí)現(xiàn)主從站的數(shù)據(jù)傳輸,也將數(shù)據(jù)傳輸給數(shù)據(jù)處理模塊;數(shù)據(jù)處理匯集數(shù)據(jù)后,實(shí)現(xiàn)通訊協(xié)議轉(zhuǎn)換以及數(shù)據(jù)緩存等功能;經(jīng)過(guò)處理后的數(shù)據(jù),通過(guò)以太網(wǎng)通訊完成FPGA與上位機(jī)的數(shù)據(jù)傳輸過(guò)程。
組網(wǎng)式工業(yè)數(shù)據(jù)采集分析系統(tǒng)中有且僅有一個(gè)主站。當(dāng)?shù)刂愤x擇器設(shè)置為“0”時(shí),設(shè)備設(shè)置為主站;當(dāng)?shù)刂愤x擇器設(shè)置為非“0”時(shí),設(shè)備設(shè)置為從站;從站應(yīng)按照1,2,…,N的順序進(jìn)行設(shè)置,各設(shè)備根據(jù)地址選擇器自動(dòng)識(shí)別主、從站,并實(shí)現(xiàn)主從站功能。其中,主站FPGA功能包括:時(shí)序控制、數(shù)據(jù)采集、高速光纖通訊主站、數(shù)據(jù)處理及以太網(wǎng)通訊;從站FPGA功能包括:數(shù)據(jù)采集和高速光纖通訊從站。
FPGA根據(jù)系統(tǒng)方案控制數(shù)據(jù)采集周期、高速光纖通訊周期和以太網(wǎng)通訊周期。
數(shù)據(jù)采集包括多路模擬量采集和多路數(shù)字量采集,采集后的數(shù)據(jù)經(jīng)過(guò)濾波,得到優(yōu)化信號(hào)數(shù)據(jù)。
3.2.1 模擬量采集
實(shí)現(xiàn)多通道同步隔離模擬量采集。上位機(jī)軟件設(shè)定模擬量數(shù)據(jù)采集的相關(guān)參數(shù),并傳輸給FPGA。FPGA根據(jù)設(shè)定參數(shù)進(jìn)行芯片配置及數(shù)據(jù)采集。其中,芯片配置可以根據(jù)用戶配置實(shí)現(xiàn)不同范圍和精度的數(shù)據(jù)采集。設(shè)備支持兩種采集設(shè)置:輸入范圍為-10~10 V,精度2 mV;輸入范圍為0~10 V,精度1 mV。
3.2.2 數(shù)字量采集
實(shí)現(xiàn)多通道同步隔離數(shù)字量采集。設(shè)備能夠采集多路0~24 V數(shù)字量。
高速光纖通訊采用具有設(shè)置靈活、速率快、準(zhǔn)確度高等特點(diǎn)的自主協(xié)議進(jìn)行通訊,通訊誤碼率小于10E-10。光纖通訊能夠支持設(shè)備間長(zhǎng)距離運(yùn)行,且具有較強(qiáng)的抗干擾能力。通訊分為主站功能和從站功能,狀態(tài)可通過(guò)狀態(tài)字和故障字進(jìn)行監(jiān)測(cè)。
高速光纖通訊具備精準(zhǔn)時(shí)鐘控制功能,所有站點(diǎn)的時(shí)鐘偏差小于200 ns,保證所有站點(diǎn)采集數(shù)據(jù)時(shí)間點(diǎn)的統(tǒng)一。通過(guò)該功能,用戶能夠用上位機(jī)軟件準(zhǔn)確對(duì)比同一時(shí)刻的不同站點(diǎn)不同通道的采集數(shù)據(jù)。
系統(tǒng)組網(wǎng)的站點(diǎn)數(shù)目可根據(jù)實(shí)際需求自由設(shè)置,從站將采集數(shù)據(jù)發(fā)送給主站,實(shí)現(xiàn)數(shù)據(jù)采集分析系統(tǒng)的組網(wǎng)功能。FPGA具有主從切換的功能,包括:主從功能切換和主從數(shù)據(jù)切換。主從功能切換是根據(jù)用戶設(shè)置的硬件地址,執(zhí)行對(duì)應(yīng)功能,并選擇正確的通訊端口;主從數(shù)據(jù)切換是從站數(shù)據(jù)通過(guò)高速光纖通訊傳輸給主站,而主站的采集數(shù)據(jù)直接寫(xiě)入FPGA內(nèi)部隨機(jī)存儲(chǔ)器(ran?dom access memory,RAM)。高速光纖通訊充分考慮主、從站功能融合以及數(shù)據(jù)和站點(diǎn)的對(duì)應(yīng)關(guān)系。
除數(shù)據(jù)傳輸外,從站還具備自動(dòng)路由功能。從站根據(jù)通訊內(nèi)容和地址選擇器,判斷自身是否是尾站。當(dāng)不是尾站時(shí),F(xiàn)PGA通過(guò)圖1所示的光纖2將通訊幀傳向后面的站點(diǎn);當(dāng)是尾站時(shí),F(xiàn)P?GA從光纖1將通訊幀回傳,同時(shí)光纖2不再工作。
主站FPGA匯總所有站點(diǎn)數(shù)據(jù)后,將數(shù)據(jù)按照協(xié)議處理并存入RAM中。主站FPGA每個(gè)發(fā)送周期讀取本周期內(nèi)所有數(shù)據(jù),并發(fā)送至上位機(jī)軟件。各從站設(shè)備雖然都具備以太網(wǎng)通訊功能,但只有當(dāng)設(shè)備被設(shè)置成主站時(shí),F(xiàn)PGA才會(huì)通過(guò)以太網(wǎng)通訊電路向上位機(jī)軟件傳輸數(shù)據(jù)。
3.4.1 數(shù)據(jù)協(xié)議轉(zhuǎn)換
在主站FPGA匯總數(shù)據(jù)的過(guò)程中,需要實(shí)現(xiàn)由“按照時(shí)間采集”向“按照站點(diǎn)傳輸”的轉(zhuǎn)換。FPGA采用“乒乓操作”傳輸與緩存,以減少邏輯資源的使用情況。
3.4.2 數(shù)據(jù)存儲(chǔ)
由于數(shù)據(jù)采集和高速光纖通訊的速率很快,主站FPGA匯總很多采樣時(shí)間點(diǎn)的數(shù)據(jù)后,才會(huì)向上位機(jī)軟件發(fā)送一次數(shù)據(jù)。受以太網(wǎng)帶寬和上位機(jī)讀寫(xiě)數(shù)據(jù)速率的限制,本周期數(shù)據(jù)沒(méi)有傳輸完成時(shí),下一周期的部分?jǐn)?shù)據(jù)就會(huì)覆蓋之前數(shù)據(jù),造成數(shù)據(jù)錯(cuò)誤。因此,F(xiàn)PGA內(nèi)部采用兩個(gè)RAM區(qū)域存儲(chǔ)。
圖4為FPGA讀寫(xiě)內(nèi)部RAM區(qū)域的邏輯切換圖。寫(xiě)入和讀取數(shù)據(jù)的RAM區(qū)域由FPGA內(nèi)部控制,確保發(fā)送數(shù)據(jù)的正確性和完整性。
圖4 FPGA讀寫(xiě)內(nèi)部RAM區(qū)域的邏輯切換圖Fig.4 Logic switching diagram of FPGA reading and writing internal RAM area
圖4中,Tc為FPGA與上位機(jī)通訊周期;WREN為主站FPGA寫(xiě)內(nèi)部RAM的使能信號(hào),配合高速光纖通訊周期,在Tc周期內(nèi)95%時(shí)間有效、5%時(shí)間無(wú)效;WR_RAM為寫(xiě)RAM標(biāo)志位,RD_RAM為讀RAM標(biāo)志位,二者根據(jù)WREN信號(hào)進(jìn)行高低電平切換。當(dāng)WR_RAM和RD_RAM為0或1時(shí),F(xiàn)PGA分別寫(xiě)入或讀取對(duì)應(yīng)RAM區(qū)域的數(shù)據(jù)。
主站FPGA匯總所有站點(diǎn)數(shù)據(jù)后,將數(shù)據(jù)按照協(xié)議處理并存入RAM中。主站FPGA每個(gè)發(fā)送周期讀取本周期內(nèi)所有數(shù)據(jù),并發(fā)送至上位機(jī)軟件。各從站設(shè)備雖然都具備以太網(wǎng)通訊功能,但只有當(dāng)設(shè)備被設(shè)置成主站時(shí),F(xiàn)PGA才會(huì)通過(guò)以太網(wǎng)通訊電路向上位機(jī)軟件傳輸數(shù)據(jù)。
圖5為系統(tǒng)顯示示例圖。上位機(jī)軟件能夠?qū)Σ蓸訑?shù)據(jù)進(jìn)行合并或單獨(dú)顯示。其中,M代表設(shè)備,A代表模擬量,D代表數(shù)字量。圖5中示例性地顯示了設(shè)備1第8路模擬量、設(shè)備2第1路模擬量、設(shè)備5第2路模擬量以及設(shè)備4第8路數(shù)字量的采集和顯示效果。
圖5 組網(wǎng)式工業(yè)數(shù)據(jù)采集分析系統(tǒng)顯示示例圖Fig.5 Display example of networking industrial data acquisition and analysis system
本系統(tǒng)已實(shí)際應(yīng)用,可用于工業(yè)現(xiàn)場(chǎng)的變頻器(如電壓型逆變器、大功率中壓變頻等)系統(tǒng),能夠?qū)\(yùn)行過(guò)程中的數(shù)據(jù)進(jìn)行采集和分析。本系統(tǒng)解決了工業(yè)現(xiàn)場(chǎng)數(shù)據(jù)采集受限制較多的問(wèn)題,所采集的數(shù)據(jù)具備較高準(zhǔn)確率、實(shí)時(shí)性和采樣率,現(xiàn)場(chǎng)應(yīng)用效果良好。
本文提出了一種組網(wǎng)式數(shù)據(jù)采集分析系統(tǒng),其優(yōu)點(diǎn)及效果如下:
1)系統(tǒng)采用上位機(jī)軟件多線程技術(shù)和FPGA高速光纖通訊技術(shù),共同實(shí)現(xiàn)大量數(shù)據(jù)的接收、存儲(chǔ)、解析以及顯示。數(shù)據(jù)采樣周期可調(diào),且不受通道總數(shù)限制。
2)數(shù)據(jù)采集設(shè)備之間采用光纖連接的方式進(jìn)行組網(wǎng),傳輸實(shí)時(shí)性高、準(zhǔn)確率高;各站點(diǎn)之間能夠?qū)崿F(xiàn)時(shí)鐘同步,保證組網(wǎng)設(shè)備數(shù)據(jù)采樣時(shí)間統(tǒng)一;系統(tǒng)支持設(shè)備間長(zhǎng)距離運(yùn)行,抗干擾能力強(qiáng)。
3)數(shù)據(jù)采集設(shè)備采用多通道同步隔離采集方式,支持多組模擬量、多組數(shù)字量的高精度、高采樣率的數(shù)據(jù)采集,而且數(shù)據(jù)采集參數(shù)可靈活配置。
4)系統(tǒng)無(wú)需特殊主站設(shè)備,用戶通過(guò)地址選擇器即可選擇采集設(shè)備的主從屬性,操作靈活簡(jiǎn)單。