摘 要: 為了滿足多用戶同時(shí)進(jìn)行空氣壓縮機(jī)性能實(shí)驗(yàn)的要求,設(shè)計(jì)了基于數(shù)據(jù)采集單元和計(jì)算機(jī)網(wǎng)絡(luò)的實(shí)驗(yàn)測試系統(tǒng)。數(shù)據(jù)采集單元由16位微控制器MC9S12XET256和以太網(wǎng)控制器組成,測量空氣壓縮機(jī)的壓力和轉(zhuǎn)速,接收來自網(wǎng)絡(luò)的命令并上傳數(shù)據(jù)。計(jì)算機(jī)網(wǎng)絡(luò)采用客戶機(jī)/服務(wù)器的結(jié)構(gòu),客戶機(jī)通過服務(wù)器分時(shí)共享硬件資源。服務(wù)器負(fù)責(zé)轉(zhuǎn)發(fā)數(shù)據(jù)和客戶機(jī)的采集命令,接收和保存客戶機(jī)的實(shí)驗(yàn)結(jié)果;客戶機(jī)負(fù)責(zé)數(shù)據(jù)的處理,繪制示功圖并上傳實(shí)驗(yàn)結(jié)果。實(shí)際應(yīng)用結(jié)果表明,該系統(tǒng)可以滿足多達(dá)253個(gè)用戶共同實(shí)驗(yàn),實(shí)驗(yàn)教學(xué)的質(zhì)量和時(shí)效性大為提高。
關(guān)鍵詞: 空氣壓縮機(jī);實(shí)驗(yàn)測試系統(tǒng);以太網(wǎng);多線程通信
活塞式空氣壓縮機(jī)作為一種通用設(shè)備,廣泛用于工業(yè)和民用等領(lǐng)域,其性能一般是通過實(shí)驗(yàn)測量示功圖來評判。示功圖是指壓縮機(jī)一個(gè)工作循環(huán)中活塞處于不同位置時(shí),氣缸內(nèi)氣體壓力變化的曲線。根據(jù)示功圖可以計(jì)算壓縮機(jī)的平均指示壓力、指示功率、氣缸內(nèi)的實(shí)際壓比等,進(jìn)而確定最節(jié)能的設(shè)計(jì)工況點(diǎn)[1-2]。目前實(shí)驗(yàn)室所用空氣壓縮機(jī)實(shí)驗(yàn)臺由交流電機(jī)驅(qū)動的空氣壓縮機(jī)、計(jì)算機(jī)、打印機(jī)、求積儀等組成,實(shí)驗(yàn)時(shí),先根據(jù)采集軟件的提示測量環(huán)境大氣壓力,然后啟動空氣壓縮機(jī),在計(jì)算機(jī)上操作軟件,采集壓力數(shù)據(jù),打印示功圖,用求積儀測定示功圖上不同部分的面積,在圖上量出對應(yīng)線段的長度,計(jì)算各性能參數(shù)。實(shí)驗(yàn)過程耗時(shí)長、過程繁瑣、效率低,且不能保證每個(gè)實(shí)驗(yàn)參與者獨(dú)立自主完成實(shí)驗(yàn)。
利用以太網(wǎng)作為通信網(wǎng)絡(luò),配合基于網(wǎng)絡(luò)接口的數(shù)據(jù)采集系統(tǒng)和C/S模式運(yùn)行的后臺(服務(wù)端和客戶端)管理軟件,用戶可以快速靈活地控制和訪問采集設(shè)備[3-4]。為此,通過對空氣壓縮機(jī)試驗(yàn)臺進(jìn)行升級改造,設(shè)計(jì)了基于以太網(wǎng)的實(shí)驗(yàn)測試系統(tǒng),使得一套實(shí)驗(yàn)設(shè)備可以與多臺計(jì)算機(jī)聯(lián)網(wǎng),允許多個(gè)用戶同時(shí)獨(dú)立進(jìn)行實(shí)驗(yàn),只需在客戶機(jī)上操作客戶端軟件,即可進(jìn)行實(shí)驗(yàn)數(shù)據(jù)的分析和計(jì)算,從而提高實(shí)驗(yàn)教學(xué)效果。
1 實(shí)驗(yàn)測試系統(tǒng)基本結(jié)構(gòu)
實(shí)驗(yàn)測試系統(tǒng)由數(shù)據(jù)采集單元和運(yùn)行后臺管理軟件的計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)組成,如圖1所示。數(shù)據(jù)采集單元通過單片機(jī)的輸入捕捉模塊測量空氣壓縮機(jī)的旋轉(zhuǎn)周期并計(jì)算轉(zhuǎn)速,利用周期中斷定時(shí)器定時(shí)觸發(fā)氣缸壓力信號采樣,按照采樣周期計(jì)算采樣的轉(zhuǎn)角間隔,并將采集到的數(shù)據(jù)通過以太網(wǎng)傳輸?shù)桨惭b服務(wù)端軟件的計(jì)算機(jī)(服務(wù)器)上。服務(wù)器負(fù)責(zé)轉(zhuǎn)發(fā)數(shù)據(jù)采集命令、采集數(shù)據(jù)和接收客戶機(jī)上傳的實(shí)驗(yàn)結(jié)果??蛻魴C(jī)作為人機(jī)交互設(shè)備,負(fù)責(zé)數(shù)據(jù)采集命令的發(fā)布、數(shù)據(jù)的處理和分析、繪制示功圖以及上傳實(shí)驗(yàn)結(jié)果。
2 數(shù)據(jù)采集單元硬件設(shè)計(jì)
2.1 主控制器模塊
數(shù)據(jù)采集單元的核心采用Freesacle的MC9S12XET256單片機(jī),該芯片集成有12位分辨率的高速A/D轉(zhuǎn)換模塊、增強(qiáng)型定時(shí)器(ECT)模塊和大容量的RAM。采用片上A/D模塊和ECT的輸入捕捉模塊可使系統(tǒng)硬件結(jié)構(gòu)緊湊,提高可靠性。以太網(wǎng)通信采用RTL8019AS以太網(wǎng)控制器,全雙工峰值通信速率可達(dá)10 Mbit/s。
2.2 壓力信號測量電路
壓縮機(jī)氣缸壓力測量電路如圖2所示。來自壓力變送器的信號通過一階低通濾波器進(jìn)行濾波,并經(jīng)過一個(gè)電壓跟隨器和限幅電路后,由單片機(jī)的A/D模塊轉(zhuǎn)換為數(shù)字信號。電壓跟隨器用于緩沖、隔離,提高帶載能力和阻抗匹配。限幅電路的作用是將信號的幅值限制在0~5 V,保護(hù)A/D轉(zhuǎn)換模塊。
2.3 壓縮機(jī)轉(zhuǎn)速測量電路
壓縮機(jī)的飛輪邊緣上安裝有一個(gè)磁鋼,磁電轉(zhuǎn)速傳感器固定在壓縮機(jī)的機(jī)身上,每轉(zhuǎn)產(chǎn)生一個(gè)轉(zhuǎn)速脈沖。傳感器的輸出信號通過整形電路變換成0~5 V方波,由單片機(jī)的輸入捕捉模塊測量轉(zhuǎn)速。信號調(diào)理電路如圖3所示。
3 數(shù)據(jù)采集單元軟件設(shè)計(jì)
數(shù)據(jù)采集采用定時(shí)方式,根據(jù)壓縮機(jī)的最高轉(zhuǎn)速和角度分辨率(0.25° CA)要求,確定采樣周期為30 μs。利用單片機(jī)內(nèi)的周期中斷定時(shí)器使其每隔30 μs產(chǎn)生一次中斷,在定時(shí)器中斷服務(wù)程序中觸發(fā)一次A/D轉(zhuǎn)換,相鄰兩個(gè)采樣點(diǎn)對應(yīng)的角度α為:
α=6·n·T(1)
其中,n為轉(zhuǎn)速(r/min),T為采樣周期(s)。
數(shù)據(jù)采集流程如圖4所示。當(dāng)數(shù)據(jù)采集單元收到來自服務(wù)器的采集命令時(shí),使能單片機(jī)的輸入捕捉模塊,并將記錄轉(zhuǎn)速脈沖的變量n賦值為0。當(dāng)捕捉到壓縮機(jī)轉(zhuǎn)速脈沖信號后,將變量n賦值為1,同時(shí)記錄該脈沖的時(shí)刻,并使能定時(shí)器,定時(shí)器周期性觸發(fā)A/D采集。當(dāng)輸入捕捉模塊捕捉到下一個(gè)轉(zhuǎn)速脈沖信號,表明壓縮機(jī)曲軸已經(jīng)轉(zhuǎn)過一圈,一個(gè)循環(huán)的數(shù)據(jù)采集已經(jīng)完成,于是,結(jié)束采集任務(wù)并記錄第二個(gè)轉(zhuǎn)速脈沖發(fā)生的時(shí)刻,把測量數(shù)據(jù)臨時(shí)保存在單片機(jī)的RAM中,并觸發(fā)數(shù)據(jù)傳送任務(wù),將數(shù)據(jù)傳送到服務(wù)器。
4 后臺管理軟件
后臺管理軟件是一個(gè)基于UDP協(xié)議,以C/S模式運(yùn)行的網(wǎng)絡(luò)應(yīng)用程序,分為服務(wù)端軟件和客戶端軟件,采用面向?qū)ο罂梢暬木幊汰h(huán)境Visual Basic.NET 2010開發(fā)。
4.1 服務(wù)端軟件
服務(wù)端軟件啟動后,將調(diào)用My.Settings訪問用戶和應(yīng)用程序級設(shè)置[5],初始化配置參數(shù)。當(dāng)用戶啟動通信后,服務(wù)端軟件將創(chuàng)建6個(gè)Socket的UDP對象,其中3個(gè)UDP對象用于發(fā)送命令和數(shù)據(jù);另外3個(gè)UDP對象用于創(chuàng)建監(jiān)聽不同端口的線程,分別監(jiān)聽8000、8001、8002端口,分別對應(yīng)前臺數(shù)據(jù)接收端口、客戶機(jī)采集命令接收端口和客戶機(jī)實(shí)驗(yàn)結(jié)果接收端口。建立UDP對象和線程,服務(wù)器將等待客戶端發(fā)送采集命令。當(dāng)UDP的監(jiān)聽線程監(jiān)聽的端口出現(xiàn)數(shù)據(jù)時(shí),UDP線程通過自定義類的事件代理,觸發(fā)接收數(shù)據(jù)和協(xié)議解析事件[6]。當(dāng)服務(wù)端發(fā)送命令和數(shù)據(jù)時(shí),會把目的IP地址和數(shù)據(jù)寫入到其中一個(gè)UDP對象中,并創(chuàng)建一個(gè)臨時(shí)線程,把數(shù)據(jù)發(fā)送到指定的IP地址上。數(shù)據(jù)發(fā)送完成后撤銷臨時(shí)線程,釋放硬件資源。
當(dāng)服務(wù)器的8001端口出現(xiàn)數(shù)據(jù),服務(wù)端將記錄客戶機(jī)發(fā)送數(shù)據(jù)的源IP地址,并把收到的數(shù)據(jù)轉(zhuǎn)發(fā)到數(shù)據(jù)采集單元中,啟動數(shù)據(jù)采集。當(dāng)服務(wù)器收到數(shù)據(jù)后,立即把數(shù)據(jù)組包轉(zhuǎn)發(fā)到提出請求的IP地址客戶機(jī)上,從而減少數(shù)據(jù)采集單元的通信負(fù)擔(dān)。數(shù)據(jù)采集單元只響應(yīng)服務(wù)器的命令請求和發(fā)送數(shù)據(jù),所有命令和數(shù)據(jù)均由服務(wù)器轉(zhuǎn)發(fā)。
如圖5所示,當(dāng)服務(wù)器收到多個(gè)客戶機(jī)發(fā)出數(shù)據(jù)采集請求時(shí),服務(wù)端把多臺客戶機(jī)的IP地址和請求命令保存到地址數(shù)組中,并使請求地址指針Pt1指向最新寫入的地址,檢查采集標(biāo)志CFlag是否為0,若為0,則啟動地址比較定時(shí)器ADT1。ADT1事件中將比較請求地址指針Pt1和應(yīng)答地址指針Pt2是否一致,當(dāng)Pt2<Pt1時(shí),說明服務(wù)端有未應(yīng)答的請求,將提取Pt2指向的IP地址和采集命令,然后將Pt2指向下一個(gè)地址,關(guān)閉定時(shí)器ADT1并把CFlag置為1,把采集命令發(fā)送到采集單元,等待接收數(shù)據(jù)。當(dāng)采集到的數(shù)據(jù)接收并組包完成后,把數(shù)據(jù)發(fā)送到提取的IP地址的客戶機(jī),并打開定時(shí)器ADT1,從而完成一個(gè)客戶機(jī)的請求響應(yīng)。服務(wù)端將繼續(xù)等待一個(gè)定時(shí)器ADT1事件,當(dāng)Pt2=Pt1時(shí),軟件把CFlag置為0,關(guān)閉定時(shí)器ADT1。
服務(wù)器的8002端口收到數(shù)據(jù)時(shí),說明有客戶機(jī)在上傳實(shí)驗(yàn)結(jié)果,服務(wù)端收到數(shù)據(jù)協(xié)議包后,提取用戶信息、實(shí)驗(yàn)報(bào)告和分包個(gè)數(shù),然后等待接收分包的數(shù)據(jù),直到接收的分包數(shù)據(jù)個(gè)數(shù)與數(shù)據(jù)協(xié)議包中的個(gè)數(shù)相等時(shí),再根據(jù)數(shù)據(jù)包的編號進(jìn)行組包處理,還原示功圖數(shù)據(jù)并保存至服務(wù)器。
4.2 客戶端軟件
客戶端軟件安裝在客戶機(jī)上,是壓縮機(jī)性能實(shí)驗(yàn)人機(jī)交互的關(guān)鍵部分??蛻舳税l(fā)送采集命令后,將會收到服務(wù)端返回的數(shù)據(jù),客戶端軟件負(fù)責(zé)對數(shù)據(jù)進(jìn)行處理和繪制示功圖,提交實(shí)驗(yàn)結(jié)果[7]。
4.2.1 數(shù)字濾波處理
數(shù)據(jù)采集模塊采集到的數(shù)據(jù)可能包含一些干擾,為此采用滑動平均數(shù)字濾波對數(shù)據(jù)處理,如式(2)所示。該算法較為簡單,對于抑制隨機(jī)噪聲并保留陡峭邊沿非常有效。
其中,Pi和Vi分別是第i個(gè)采樣點(diǎn)對應(yīng)的氣缸壓力和工作容積。
客戶端軟件對壓力數(shù)據(jù)濾波和計(jì)算處理后,繪制的P-α和P-V示功圖如圖6所示。
4.2.3 實(shí)驗(yàn)結(jié)果的生成和上傳
客戶端完成數(shù)據(jù)采集后,用戶根據(jù)軟件繪出的示功圖分析容積效率和多變指數(shù)因數(shù)??蛻舳塑浖S后自動生成一個(gè)數(shù)據(jù)協(xié)議包和若干個(gè)分包數(shù)據(jù)。數(shù)據(jù)協(xié)議包包含用戶信息、實(shí)驗(yàn)報(bào)告內(nèi)容和示功圖數(shù)據(jù)分包的個(gè)數(shù)。每個(gè)分包數(shù)據(jù)包大小為30 KB,根據(jù)示功圖截圖的數(shù)據(jù)生成,其編號用于服務(wù)端組包??蛻舳税l(fā)送數(shù)據(jù)時(shí),先發(fā)送數(shù)據(jù)協(xié)議包,再發(fā)送分包數(shù)據(jù)。服務(wù)端軟件收到數(shù)據(jù)協(xié)議包和分包數(shù)據(jù)后,進(jìn)行組包處理。
通過對空氣壓縮機(jī)試驗(yàn)臺進(jìn)行升級改造,利用MC9S12XET256單片機(jī)設(shè)計(jì)了數(shù)據(jù)采集單元,采用Visual Basic.NET開發(fā)了基于以太網(wǎng)的后臺(服務(wù)端和客戶端)管理軟件。該管理軟件具有以下優(yōu)點(diǎn):
?。?)利用MC9S12XET256的輸入捕捉模塊測量轉(zhuǎn)速,采用單片機(jī)內(nèi)置的周期中斷定時(shí)器和A/D模塊采集壓力數(shù)據(jù),采樣轉(zhuǎn)角間隔可達(dá)0.25° CA。
?。?)利用多線程和UDP協(xié)議,實(shí)現(xiàn)數(shù)據(jù)采集、實(shí)驗(yàn)結(jié)果的發(fā)送和接收??蛻舳死没瑒悠骄鶠V波對采集數(shù)據(jù)進(jìn)行處理,繪出P-α和P-V示功圖。
?。?)大批量、多人次的使用表明,該系統(tǒng)完全滿足多達(dá)253個(gè)用戶同時(shí)實(shí)驗(yàn),操作方便,提高了實(shí)驗(yàn)效率;實(shí)驗(yàn)結(jié)果保存在服務(wù)器中,便于管理;每個(gè)用戶獨(dú)立完成實(shí)驗(yàn),提高了實(shí)驗(yàn)教學(xué)效果。
參考文獻(xiàn)
[1] Xie Mujun,Liu Jian.Design and simulation of air compres-sor performance controller[C].International Conference on Computer, Mechatronics, Control and Electronic Engineering(CMCE),Changchun,China,2010,3:504-506.
[2] 楊紅,胡家順,修吉平.基于PC的壓縮機(jī)示功圖測試、分析系統(tǒng)[J].壓縮機(jī)技術(shù),2003(3):14-16.
[3] AHMED I,Wong Hong,SAPILA V.Internet-based remote control using a microcontroller and an embedded Ethemet[C].Proceedings of the 2004 American Control Conference,Boston,2004,2:1329-1344.
[4] 朱安邦,黃君良.基于網(wǎng)絡(luò)的多臺空氣壓縮機(jī)遠(yuǎn)程監(jiān)控系統(tǒng)[J].東華大學(xué)學(xué)報(bào)(自然科學(xué)版),2005,31(2):41-46.
[5] 薛梅,鞏艷華,李洪國,等.Visual Basic.NET程序設(shè)計(jì)基礎(chǔ)[M].北京:高等教育出版社,2013.
[6] 馬玉春,劉杰民,王鑫.Visual Basic .NET案例教程[M].北京:機(jī)械工業(yè)出版社,2009.
[7] 杜樹旺,方志民,王文明,等.基于PC的改進(jìn)型活塞式壓縮機(jī)性能檢測系統(tǒng)[J].浙江工業(yè)大學(xué)學(xué)報(bào),2005,33(4):421-424.
[8] 楊偉新,張曉森.基于DSP的空氣壓縮機(jī)示功圖測試系統(tǒng)設(shè)計(jì)[J].工業(yè)儀表與自動化裝置,2011(4):38-40.