作者:李聰,李春梅,周志群,張瑞芳
1 概述
建筑耗能數量大,比例高,發達國家建筑用能比例一般為全國總能耗的30%~40%,所占能耗比重很大。在我國,建筑能耗占全社會總能耗的27.6%,而民用建筑能耗中住宅能耗占60%。與之對應,建筑節能潛力巨大。
建筑節能,冬季建筑外窗散熱是一個大問題。國家標準《建筑外窗保溫性能分級及檢測方法》(GB/T8484―2002),要求檢測建筑外窗的傳熱系數,判定建筑外窗的保溫性能等級。檢測標準中采用的檢測設備如圖1所示。
該裝置是基于穩定傳熱原理,采用標定熱箱法檢測窗戶保溫性能。試件一側為熱箱,模擬采暖建筑冬季室內氣候條件,另一側為冷箱,模擬冬季室外氣候條件。在對試件縫隙進行密封處理,試件兩側各自保持穩定的空氣溫度、氣流速度和熱輻射條件下,測量熱箱中電暖氣的發熱量,減去通過熱箱外壁和試件框的熱損失,除以試件面積與兩側空氣溫差的乘積,即可計算出試件的傳熱系數K值(K值為在穩定傳熱條件下,外窗兩側空氣溫差為1℃,單位時間內通過單位面積的傳熱量以W/(m2·K)計。試件傳熱系數K值按下式計算:
式中:Q為電暖氣的發熱功率;M1△θ1為熱箱外壁的熱損失;M2△θ2為試件框的熱損失;S·Λ·△θ3為填充板的熱損失;A為試件的面積;△t試件兩側的溫差。
2 系統硬件結構
國標中要求熱箱空氣溫度的設定范圍為18℃~20℃,冷箱空氣溫度的設定范圍為-19℃~-21℃,所以裝置中需要兩臺溫度控制儀表,分別用來控制熱室和冷室內的溫度。另外,檢測過程中需要用到多個溫度測點的溫度值和電暖氣的加熱功率,故裝置中還需要一臺32路溫度巡檢儀表和一臺功率計。以上智能儀表作為整個測控系統的從機部分,主機部分為通用微型計算機,兩者通過半雙工RS-232/RS-485標準總線接口通信,采用雙絞線進行信號傳輸。在這種系統結構下,作為下位機的智能儀表完成測量控制功能,便于快速構造系統并保證測控精度。
由于從機部分的儀表較多,并且通信協議和通信接口不一致,故系統采用多串口通信。功率計為RS-232接口,故單獨為其分配一個串口;32路溫度巡檢儀和兩個溫度控制儀為RS-485接口,而PC一般只有RS-232接口,需要RS-232/RS-485接口轉換器。系統的總體硬件框圖如圖2所示。巡檢儀按國家標準外接的溫度傳感器采用銅一康銅熱電偶,要求的溫度測點很多,所以同類溫度測點的熱電偶可以并聯。具體裝置尺寸及材質、熱箱外壁和試件框熱流系數標定、試件框的面積劃分、溫度測點的分布、熱電偶的篩選和校驗等詳細要求請參見有關國家標準。
3 系統軟件結構
系統軟件總體框圖如圖3所示。它充分利用了Windows系統允許多進程、多線程的編程特點,開辟了兩個線程;還利用了VC++的面向對象的設計思想,把有關的數據結構及其操作完全封裝類中。系統主要實現的功能有下位機數據采集、主界面顯示、實時曲線顯示、數據存儲、歷史曲線顯示、檢測結果測定、檢測報告和歷史報告記錄的瀏覽及打印、數據庫清理及維護等。
3.1多線程
系統軟件的進程分成兩個線程:主線程(用戶界面線程)和通信線程(輔助線程)。主線程定時啟動通信線程,通信線程執行完一次通信任務后掛起。主線程能夠提供界面和用戶交互,通常用于處理用戶輸入并響應各種事件和消息,而通信線程主要用來進行上位機與下位機之間的通信。主線程由AppWizard生成,下面主要介紹通信線程的設計。
要創建一個線程,需要調用函數AfxBeginThread。該函數因參數重載不同而具有兩種版本,分別對應輔助線程和用戶界面線程。無論是輔助線程還是用戶界面線程,都需要指定額外的參數以修改優先級、堆棧大小、創建標志和安全特性等。函數AfxBeginThread返回指向CWinThread類對象的指針。同樣,在CMain-View的構造函數中調用AfxBeginThread函數:
在啟動通信線程之前,必須為線程的主程序編寫一個全局函數。這個函數應該返回一個UINT,它應該以一個32位值(聲明為IPVOID)作為參數。在啟動線程的時候,可以使用這個參數來傳遞任何東西,在AfxBeginThread函數中傳遞的是this->GetDocument()(文檔類的指針),這樣就可以在輔助線程中使用文檔類的數據。在輔助線程中,要采集下位機數據,然后掛起線程,等待定時器OnTimer函數恢復線程。
3.2串口通信
輔助線程的主要工作是PC通過串口采集下位機數據,PC機的Windows操作系統不提倡應用程序直接控制硬件,而是通過Windows操作系統提供的設備驅動程序來進行數據傳遞。基于上述特點,結合本系統多串口通信的特點,使用Visual C++6.0集成開發環境下封裝好的串口類CSerialPort來設計串口通信。本系統使用兩個串口,串口3用于與功率計之間的通信,串口4用于與巡檢儀及溫控儀之間的通信。
從機通信協議以巡檢儀為例簡述如下:波特率設置為2 400 bit/s,幀格式為1個起始位,8個數據位,1個停止位。巡檢儀采用ASCII碼傳輸,其下傳命令幀格式如表1所示,儀表返回數據幀如圖4所示。每個通道的測量值為16位二進制,最高位為測量值的符號標志位,1為負,0為正。接收到返回數據后,在程序中按照協議對其進行相應的處理。
使用CSerialPort類實現雙串口通信,先要在對象所有者窗口類頭文件(.H)中聲明兩個CSerialPort的對象,然后調用該類的InitPort函數(主要完成串口號選擇、波特率設置等串口的初始化設置),并啟動監視串口的工作線程。之后串口接到數據后,會以消息的形式發送到串口的所有者窗口中,只要在該窗口中加入對這些消息的響應即可。
數據發送可以使用CSerialPort::WriteToPort(char*string)函數,鑒于本系統中的通信協議都采用BYTE數據類型進行傳送,故把該函數修改為Serial-Port::WriteToPort(BYTE bWriteBuffer[],int nWfite-BufferSize),bWriteBuffer[]為要發送的數據,nWfite-BufferSize為要發送的字節個數。
數據接收需要添加消息響應函數,首先要在對象所有者窗口類頭文件(.H)中加入串口接收的響應函數聲明。由于沒有自動的消息映射機制,必須在消息映射機制的標志處手工添加:
然后在該窗口類的CPP文件中添加消息映射:
ON_MESSAGE(WM_COMM_RXCHAR,OnCommunication)
最后加入消息處理函數OnCommunication,在其中進行相應的接收數據處理即可。
3.3其他部分
系統除了基本測試功能的設計外,還增加了數據存儲、歷史數據的查詢、檢測報告的打印等功能。
3.3.1數據庫
ODBC(開放式數據庫連接)為不同的數據庫資源提供一個標準接口,是目前Windows應用程序中應用最廣泛的數據接口,已經成為工業標準。為了方便ODBC使用,MFC針對ODBC原始的簡單的函數型API,建立了一些抽象類:CDatabase、CRecordset和CRecordView,分別用來支持數據庫、記錄集和記錄視圖。MFC的ODBC類與數據庫的關系如圖5所示。
本系統數據庫中建立了實時數據、歷史數據和檢測結果3張表,故相應用到3個CRecordset的派生類,通過這些派生類的對象調用類中的成員函數,即可進行數據的添加、編輯、刪除、查詢等操作。
3.3.2打印
如果單純使用Windows的API函數來實現打印任務,程序的編寫將會變得非常繁瑣,而利用MFC提供的打印和打印預覽的應用程序框架將會使打印任務難度大大降低。要有效使用打印的話,必須理解函數調用的順序以及知道哪個函數需要被重載。
1)打印機的設備環境和OnDraw()函數
當程序在打印機上打印的時候,它使用了一個CDC類的設備環境對象。這個對象由應用程序框架構造,并把它作為參數傳遞給視圖的OnDraw函數。如果應用程序要將顯示結果在打印機上打印出來,OnDraw()函數便擔負著雙重任務。如果正在顯示,OnPaint函數便調用OnDraw,并且設備環境是顯示器環境。如果正在打印,OnDraw由另一個CView虛函數OnPrint調用,用一個打印機設備環境作為參數。
2)CView::OnPrint函數
從上面可以看到,基類的OnPrint函數調用OnDraw函數,并且OnDraw函數既可以使用顯示器設備環境,也可以使用打印機設備環境。在調用OnPrint函數之前,將會設置映射模式。可以重載OnPrint函數來打印那些未顯示的項目,諸如標題、頁碼等。在重載的OnPrint函數中,可以選擇不調用OnDraw函數,來支持打印邏輯,這樣就使打印邏輯與顯示邏輯分開。
4 系統功能及其實現
系統功能較多,下面主要介紹主界面、測量界面功能的實現。
4.1主界面
國標規定熱箱中溫度波動幅度不大于0.1℃,冷箱中溫度波動幅度不大于0.3℃,并且上述溫度的波動不再是單向的,才表示傳熱過程穩定,然后方可進行后續的測量,所以設定系統運行后的主界面如圖6所示。圖中,左側實時顯示熱箱、冷箱、試件框等溫度測點的溫度值,右側繪制熱箱內溫度、冷箱內溫度和供電電壓的曲線,具體某一點的數據還可以通過時間游標來查看,并且在后臺程序中對國標所要求的溫度條件進行判斷,如果滿足,則彈出消息框給出提示,便可進入其他界面進行下一步的檢測。
4.2測量界面
傳熱過程穩定之后,每隔30 min測量一次參數:電暖氣加熱功率、熱箱空氣平均溫度、冷箱空氣平均溫度、熱箱外壁內外表面面積加權平均溫度之差、試件框熱側冷側表面面積加權平均溫度之差和填充板兩表面的平均溫差,共測6次。測量界面設計如圖7所示。進入該界面后將每隔30 min自動測量一次上述參數,測量完畢后將彈出消息框給出提示。設計中為了實際檢測方便,增加了“手動測量”按鈕,點擊一次該按鈕將測量一次。測量完畢后點擊“計算結果”按鈕,將進行參數求平均并計算檢測結果。另外,根據用戶需要增加了打印當前數據的功能,點擊后進行各參數及檢測結果的打印。測量完畢后,點擊“報告編輯”即進入檢測報告編輯界面,進行報告編輯及榆測記錄保存等操作。
5 結束語
本文介紹了建筑外窗保溫性能檢測系統的組成,并在Visual c++6.0平臺下實現了多串口通信、實時曲線繪制、數據庫操作等功能。實際應用中表明,該檢測系統操作方便,界面簡潔直觀,檢測過程穩定,檢測結果準確可靠,具有很強的實用價值。考慮到成本及產品化的要求,溫度測量與控制功能也可通過設計專用的儀表實現,有關工作目前正在進行。
責任編輯:gt
-
接口
+關注
關注
33文章
8575瀏覽量
151015 -
檢測系統
+關注
關注
3文章
954瀏覽量
43029
發布評論請先 登錄
相關推薦
評論