《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 其他 > 設(shè)計(jì)應(yīng)用 > 建筑外窗保溫性能檢測(cè)裝置測(cè)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
建筑外窗保溫性能檢測(cè)裝置測(cè)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
電子工程師
張鐵柱 符影杰 洪俊明
摘要: 建筑耗能數(shù)量大,比例高,發(fā)達(dá)國(guó)家建筑用能比例一般為全國(guó)總能耗的30%~40%,所占能耗比重很大。在我國(guó),建筑能耗占全社會(huì)總能耗的27.6%,而民用建筑能耗中住宅能耗占60%。與之對(duì)應(yīng),建筑節(jié)能潛力巨大。
Abstract:
Key words :

1概述

    建筑耗能數(shù)量大,比例高,發(fā)達(dá)國(guó)家建筑用能比例一般為全國(guó)總能耗的30%~40%,所占能耗比重很大。在我國(guó),建筑能耗占全社會(huì)總能耗的27.6%,而民用建筑能耗中住宅能耗占60%。與之對(duì)應(yīng),建筑節(jié)能潛力巨大。

    建筑節(jié)能,冬季建筑外窗散熱是一個(gè)大問(wèn)題。國(guó)家標(biāo)準(zhǔn)《建筑外窗保溫性能分級(jí)及檢測(cè)方法》(GB/T8484―2002),要求檢測(cè)建筑外窗的傳熱系數(shù),判定建筑外窗的保溫性能等級(jí)。檢測(cè)標(biāo)準(zhǔn)中采用的檢測(cè)設(shè)備如圖1所示。

    該裝置是基于穩(wěn)定傳熱原理,采用標(biāo)定熱箱法檢測(cè)窗戶(hù)保溫性能。試件一側(cè)為熱箱,模擬采暖建筑冬季室內(nèi)氣候條件,另一側(cè)為冷箱,模擬冬季室外氣候條件。在對(duì)試件縫隙進(jìn)行密封處理,試件兩側(cè)各自保持穩(wěn)定的空氣溫度、氣流速度和熱輻射條件下,測(cè)量熱箱中電暖氣的發(fā)熱量,減去通過(guò)熱箱外壁和試件框的熱損失,除以試件面積與兩側(cè)空氣溫差的乘積,即可計(jì)算出試件的傳熱系數(shù)K值(K值為在穩(wěn)定傳熱條件下,外窗兩側(cè)空氣溫差為1℃,單位時(shí)間內(nèi)通過(guò)單位面積的傳熱量以W/(m2·K)計(jì)。試件傳熱系數(shù)K值按下式計(jì)算:



式中:Q為電暖氣的發(fā)熱功率;M1△θ1為熱箱外壁的熱損失;M2△θ2為試件框的熱損失;S·Λ·△θ3為填充板的熱損失;A為試件的面積;△t試件兩側(cè)的溫差。

2系統(tǒng)硬件結(jié)構(gòu)

    國(guó)標(biāo)中要求熱箱空氣溫度的設(shè)定范圍為18℃~20℃,冷箱空氣溫度的設(shè)定范圍為-19℃~-21℃,所以裝置中需要兩臺(tái)溫度控制儀表,分別用來(lái)控制熱室和冷室內(nèi)的溫度。另外,檢測(cè)過(guò)程中需要用到多個(gè)溫度測(cè)點(diǎn)的溫度值和電暖氣的加熱功率,故裝置中還需要一臺(tái)32路溫度巡檢儀表和一臺(tái)功率計(jì)。以上智能儀表作為整個(gè)測(cè)控系統(tǒng)的從機(jī)部分,主機(jī)部分為通用微型計(jì)算機(jī),兩者通過(guò)半雙工RS-232/RS-485標(biāo)準(zhǔn)總線接口通信,采用雙絞線進(jìn)行信號(hào)傳輸。在這種系統(tǒng)結(jié)構(gòu)下,作為下位機(jī)的智能儀表完成測(cè)量控制功能,便于快速構(gòu)造系統(tǒng)并保證測(cè)控精度。

    由于從機(jī)部分的儀表較多,并且通信協(xié)議和通信接口不一致,故系統(tǒng)采用多串口通信。功率計(jì)為RS-232接口,故單獨(dú)為其分配一個(gè)串口;32路溫度巡檢儀和兩個(gè)溫度控制儀為RS-485接口,而PC一般只有RS-232接口,需要RS-232/RS-485接口轉(zhuǎn)換器。系統(tǒng)的總體硬件框圖如圖2所示。巡檢儀按國(guó)家標(biāo)準(zhǔn)外接的溫度傳感器采用銅一康銅熱電偶,要求的溫度測(cè)點(diǎn)很多,所以同類(lèi)溫度測(cè)點(diǎn)的熱電偶可以并聯(lián)。具體裝置尺寸及材質(zhì)、熱箱外壁和試件框熱流系數(shù)標(biāo)定、試件框的面積劃分、溫度測(cè)點(diǎn)的分布、熱電偶的篩選和校驗(yàn)等詳細(xì)要求請(qǐng)參見(jiàn)有關(guān)國(guó)家標(biāo)準(zhǔn)。

3系統(tǒng)軟件結(jié)構(gòu)

    系統(tǒng)軟件總體框圖如圖3所示。它充分利用了Windows系統(tǒng)允許多進(jìn)程、多線程的編程特點(diǎn),開(kāi)辟了兩個(gè)線程;還利用了VC++的面向?qū)ο蟮脑O(shè)計(jì)思想,把有關(guān)的數(shù)據(jù)結(jié)構(gòu)及其操作完全封裝類(lèi)中。系統(tǒng)主要實(shí)現(xiàn)的功能有下位機(jī)數(shù)據(jù)采集、主界面顯示、實(shí)時(shí)曲線顯示、數(shù)據(jù)存儲(chǔ)、歷史曲線顯示、檢測(cè)結(jié)果測(cè)定、檢測(cè)報(bào)告和歷史報(bào)告記錄的瀏覽及打印、數(shù)據(jù)庫(kù)清理及維護(hù)等。

3.1多線程

    系統(tǒng)軟件的進(jìn)程分成兩個(gè)線程:主線程(用戶(hù)界面線程)和通信線程(輔助線程)。主線程定時(shí)啟動(dòng)通信線程,通信線程執(zhí)行完一次通信任務(wù)后掛起。主線程能夠提供界面和用戶(hù)交互,通常用于處理用戶(hù)輸入并響應(yīng)各種事件和消息,而通信線程主要用來(lái)進(jìn)行上位機(jī)與下位機(jī)之間的通信。主線程由AppWizard生成,下面主要介紹通信線程的設(shè)計(jì)。

    要?jiǎng)?chuàng)建一個(gè)線程,需要調(diào)用函數(shù)AfxBeginThread。該函數(shù)因參數(shù)重載不同而具有兩種版本,分別對(duì)應(yīng)輔助線程和用戶(hù)界面線程。無(wú)論是輔助線程還是用戶(hù)界面線程,都需要指定額外的參數(shù)以修改優(yōu)先級(jí)、堆棧大小、創(chuàng)建標(biāo)志和安全特性等。函數(shù)AfxBeginThread返回指向CWinThread類(lèi)對(duì)象的指針。同樣,在CMain-View的構(gòu)造函數(shù)中調(diào)用AfxBeginThread函數(shù):

   

    在啟動(dòng)通信線程之前,必須為線程的主程序編寫(xiě)一個(gè)全局函數(shù)。這個(gè)函數(shù)應(yīng)該返回一個(gè)UINT,它應(yīng)該以一個(gè)32位值(聲明為IPVOID)作為參數(shù)。在啟動(dòng)線程的時(shí)候,可以使用這個(gè)參數(shù)來(lái)傳遞任何東西,在AfxBeginThread函數(shù)中傳遞的是this->GetDocument()(文檔類(lèi)的指針),這樣就可以在輔助線程中使用文檔類(lèi)的數(shù)據(jù)。在輔助線程中,要采集下位機(jī)數(shù)據(jù),然后掛起線程,等待定時(shí)器OnTimer函數(shù)恢復(fù)線程。

3.2串口通信

    輔助線程的主要工作是PC通過(guò)串口采集下位機(jī)數(shù)據(jù),PC機(jī)的Windows操作系統(tǒng)不提倡應(yīng)用程序直接控制硬件,而是通過(guò)Windows操作系統(tǒng)提供的設(shè)備驅(qū)動(dòng)程序來(lái)進(jìn)行數(shù)據(jù)傳遞?;谏鲜鎏攸c(diǎn),結(jié)合本系統(tǒng)多串口通信的特點(diǎn),使用Visual C++6.0集成開(kāi)發(fā)環(huán)境下封裝好的串口類(lèi)CSerialPort來(lái)設(shè)計(jì)串口通信。本系統(tǒng)使用兩個(gè)串口,串口3用于與功率計(jì)之間的通信,串口4用于與巡檢儀及溫控儀之間的通信。

    從機(jī)通信協(xié)議以巡檢儀為例簡(jiǎn)述如下:波特率設(shè)置為2 400 bit/s,幀格式為1個(gè)起始位,8個(gè)數(shù)據(jù)位,1個(gè)停止位。巡檢儀采用ASCII碼傳輸,其下傳命令幀格式如表1所示,儀表返回?cái)?shù)據(jù)幀如圖4所示。每個(gè)通道的測(cè)量值為16位二進(jìn)制,最高位為測(cè)量值的符號(hào)標(biāo)志位,1為負(fù),0為正。接收到返回?cái)?shù)據(jù)后,在程序中按照協(xié)議對(duì)其進(jìn)行相應(yīng)的處理。

    使用CSerialPort類(lèi)實(shí)現(xiàn)雙串口通信,先要在對(duì)象所有者窗口類(lèi)頭文件(.H)中聲明兩個(gè)CSerialPort的對(duì)象,然后調(diào)用該類(lèi)的InitPort函數(shù)(主要完成串口號(hào)選擇、波特率設(shè)置等串口的初始化設(shè)置),并啟動(dòng)監(jiān)視串口的工作線程。之后串口接到數(shù)據(jù)后,會(huì)以消息的形式發(fā)送到串口的所有者窗口中,只要在該窗口中加入對(duì)這些消息的響應(yīng)即可。

    數(shù)據(jù)發(fā)送可以使用CSerialPort::WriteToPort(char*string)函數(shù),鑒于本系統(tǒng)中的通信協(xié)議都采用BYTE數(shù)據(jù)類(lèi)型進(jìn)行傳送,故把該函數(shù)修改為Serial-Port::WriteToPort(BYTE bWriteBuffer[],int nWfite-BufferSize),bWriteBuffer[]為要發(fā)送的數(shù)據(jù),nWfite-BufferSize為要發(fā)送的字節(jié)個(gè)數(shù)。

    數(shù)據(jù)接收需要添加消息響應(yīng)函數(shù),首先要在對(duì)象所有者窗口類(lèi)頭文件(.H)中加入串口接收的響應(yīng)函數(shù)聲明。由于沒(méi)有自動(dòng)的消息映射機(jī)制,必須在消息映射機(jī)制的標(biāo)志處手工添加:

   

    然后在該窗口類(lèi)的CPP文件中添加消息映射:

    ON_MESSAGE(WM_COMM_RXCHAR,OnCommunication)

    最后加入消息處理函數(shù)OnCommunication,在其中進(jìn)行相應(yīng)的接收數(shù)據(jù)處理即可。

3.3其他部分

    系統(tǒng)除了基本測(cè)試功能的設(shè)計(jì)外,還增加了數(shù)據(jù)存儲(chǔ)、歷史數(shù)據(jù)的查詢(xún)、檢測(cè)報(bào)告的打印等功能。

3.3.1數(shù)據(jù)庫(kù)

    ODBC(開(kāi)放式數(shù)據(jù)庫(kù)連接)為不同的數(shù)據(jù)庫(kù)資源提供一個(gè)標(biāo)準(zhǔn)接口,是目前Windows應(yīng)用程序中應(yīng)用最廣泛的數(shù)據(jù)接口,已經(jīng)成為工業(yè)標(biāo)準(zhǔn)。為了方便ODBC使用,MFC針對(duì)ODBC原始的簡(jiǎn)單的函數(shù)型API,建立了一些抽象類(lèi):CDatabase、CRecordset和CRecordView,分別用來(lái)支持?jǐn)?shù)據(jù)庫(kù)、記錄集和記錄視圖。MFC的ODBC類(lèi)與數(shù)據(jù)庫(kù)的關(guān)系如圖5所示。


    本系統(tǒng)數(shù)據(jù)庫(kù)中建立了實(shí)時(shí)數(shù)據(jù)、歷史數(shù)據(jù)和檢測(cè)結(jié)果3張表,故相應(yīng)用到3個(gè)CRecordset的派生類(lèi),通過(guò)這些派生類(lèi)的對(duì)象調(diào)用類(lèi)中的成員函數(shù),即可進(jìn)行數(shù)據(jù)的添加、編輯、刪除、查詢(xún)等操作。

3.3.2打印

    如果單純使用Windows的API函數(shù)來(lái)實(shí)現(xiàn)打印任務(wù),程序的編寫(xiě)將會(huì)變得非常繁瑣,而利用MFC提供的打印和打印預(yù)覽的應(yīng)用程序框架將會(huì)使打印任務(wù)難度大大降低。要有效使用打印的話,必須理解函數(shù)調(diào)用的順序以及知道哪個(gè)函數(shù)需要被重載。

    1)打印機(jī)的設(shè)備環(huán)境和OnDraw()函數(shù)

    當(dāng)程序在打印機(jī)上打印的時(shí)候,它使用了一個(gè)CDC類(lèi)的設(shè)備環(huán)境對(duì)象。這個(gè)對(duì)象由應(yīng)用程序框架構(gòu)造,并把它作為參數(shù)傳遞給視圖的OnDraw函數(shù)。如果應(yīng)用程序要將顯示結(jié)果在打印機(jī)上打印出來(lái),OnDraw()函數(shù)便擔(dān)負(fù)著雙重任務(wù)。如果正在顯示,OnPaint函數(shù)便調(diào)用OnDraw,并且設(shè)備環(huán)境是顯示器環(huán)境。如果正在打印,OnDraw由另一個(gè)CView虛函數(shù)OnPrint調(diào)用,用一個(gè)打印機(jī)設(shè)備環(huán)境作為參數(shù)。

    2)CView::OnPrint函數(shù)

    從上面可以看到,基類(lèi)的OnPrint函數(shù)調(diào)用OnDraw函數(shù),并且OnDraw函數(shù)既可以使用顯示器設(shè)備環(huán)境,也可以使用打印機(jī)設(shè)備環(huán)境。在調(diào)用OnPrint函數(shù)之前,將會(huì)設(shè)置映射模式。可以重載OnPrint函數(shù)來(lái)打印那些未顯示的項(xiàng)目,諸如標(biāo)題、頁(yè)碼等。在重載的OnPrint函數(shù)中,可以選擇不調(diào)用OnDraw函數(shù),來(lái)支持打印邏輯,這樣就使打印邏輯與顯示邏輯分開(kāi)。

4系統(tǒng)功能及其實(shí)現(xiàn)

    系統(tǒng)功能較多,下面主要介紹主界面、測(cè)量界面功能的實(shí)現(xiàn)。

4.1主界面

    國(guó)標(biāo)規(guī)定熱箱中溫度波動(dòng)幅度不大于0.1℃,冷箱中溫度波動(dòng)幅度不大于0.3℃,并且上述溫度的波動(dòng)不再是單向的,才表示傳熱過(guò)程穩(wěn)定,然后方可進(jìn)行后續(xù)的測(cè)量,所以設(shè)定系統(tǒng)運(yùn)行后的主界面如圖6所示。圖中,左側(cè)實(shí)時(shí)顯示熱箱、冷箱、試件框等溫度測(cè)點(diǎn)的溫度值,右側(cè)繪制熱箱內(nèi)溫度、冷箱內(nèi)溫度和供電電壓的曲線,具體某一點(diǎn)的數(shù)據(jù)還可以通過(guò)時(shí)間游標(biāo)來(lái)查看,并且在后臺(tái)程序中對(duì)國(guó)標(biāo)所要求的溫度條件進(jìn)行判斷,如果滿足,則彈出消息框給出提示,便可進(jìn)入其他界面進(jìn)行下一步的檢測(cè)。

4.2測(cè)量界面

    傳熱過(guò)程穩(wěn)定之后,每隔30 min測(cè)量一次參數(shù):電暖氣加熱功率、熱箱空氣平均溫度、冷箱空氣平均溫度、熱箱外壁內(nèi)外表面面積加權(quán)平均溫度之差、試件框熱側(cè)冷側(cè)表面面積加權(quán)平均溫度之差和填充板兩表面的平均溫差,共測(cè)6次。測(cè)量界面設(shè)計(jì)如圖7所示。進(jìn)入該界面后將每隔30 min自動(dòng)測(cè)量一次上述參數(shù),測(cè)量完畢后將彈出消息框給出提示。設(shè)計(jì)中為了實(shí)際檢測(cè)方便,增加了“手動(dòng)測(cè)量”按鈕,點(diǎn)擊一次該按鈕將測(cè)量一次。測(cè)量完畢后點(diǎn)擊“計(jì)算結(jié)果”按鈕,將進(jìn)行參數(shù)求平均并計(jì)算檢測(cè)結(jié)果。另外,根據(jù)用戶(hù)需要增加了打印當(dāng)前數(shù)據(jù)的功能,點(diǎn)擊后進(jìn)行各參數(shù)及檢測(cè)結(jié)果的打印。測(cè)量完畢后,點(diǎn)擊“報(bào)告編輯”即進(jìn)入檢測(cè)報(bào)告編輯界面,進(jìn)行報(bào)告編輯及榆測(cè)記錄保存等操作。

5 結(jié)束語(yǔ)

    本文介紹了建筑外窗保溫性能檢測(cè)系統(tǒng)的組成,并在Visual c++6.0平臺(tái)下實(shí)現(xiàn)了多串口通信、實(shí)時(shí)曲線繪制、數(shù)據(jù)庫(kù)操作等功能。實(shí)際應(yīng)用中表明,該檢測(cè)系統(tǒng)操作方便,界面簡(jiǎn)潔直觀,檢測(cè)過(guò)程穩(wěn)定,檢測(cè)結(jié)果準(zhǔn)確可靠,具有很強(qiáng)的實(shí)用價(jià)值??紤]到成本及產(chǎn)品化的要求,溫度測(cè)量與控制功能也可通過(guò)設(shè)計(jì)專(zhuān)用的儀表實(shí)現(xiàn),有關(guān)工作目前正在進(jìn)行。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。