欒鸞,劉兆峰*,劉傳永,劉振通
(1.山東建筑大學 信息與電氣工程學院,山東 濟南 250101;2.山東省藥學科學院,山東 濟南 250101)
?
基于Socket的采暖評價系統監測軟件設計
欒鸞1,劉兆峰1*,劉傳永2,劉振通1
(1.山東建筑大學 信息與電氣工程學院,山東 濟南 250101;2.山東省藥學科學院,山東 濟南 250101)
隨著經濟的不斷發展,建筑采暖能耗過高的問題日益受到關注。而采暖評價系統的數據采集監測軟件是對分散在網絡上的作為單獨交匯點的數據采集裝置進行監測和操控的前提和基礎。文章針對建筑采暖能耗過高的問題,基于SQLServer數據庫在VisualStudio開發環境中運用Socket技術,對采暖評價系統監測軟件的設計流程、多線程的Socket通信、數據庫進行了設計;通過對采暖評價系統監測軟件工作運行,驗證了采暖評價系統軟件的可行性和實際效果,證明可滿足節能運轉的設計要求。
Socket;數據采集;SQLServer;VisualStudio
隨著經濟的不斷發展,建筑采暖能耗過高的問題日益受到關注。由于我國建筑業的飛速成長,建筑產生的能耗占總能耗的比例愈來愈大,早已到達了29%,其中大約有56%為采暖能耗。通過以上數據明顯可以看出采暖能耗占據了建筑能耗中最大的部分,所以這也是節能環節中最緊要的部分。我國建筑采暖能耗過高的原因不僅僅是因為建筑本身的能耗大,導致能耗過高的另一個原因就是是采暖系統本身的效率比較低,所以采暖系統運行的評價就變得非常重要。它包含了換熱站與管網運送階段中的節能評價跟對用戶自己本身的節能方案評價。在此過程中需要對熱交換站、樓棟及室內運行的設備進行監視,通過數據分析對供暖效果、建筑物墻體數據進行采集和評價以達到優化運行和節能的目的。目前北歐國家的丹麥、瑞典等采暖系統世界領先,主要是以熱電聯采暖為主,普遍采用了計算機自動控制,實現了熱網運行的自動監測,管網運行效率高。在我國主要采用市政熱力管網的采暖系統,以很低的效率在運行,過去很長的時間我們在建筑節能中欠缺對采暖系統的綜合考量,導致了整個建筑能耗始終沒有下降的趨勢,而如何來評價一個采暖系統的節能運轉情況就成為了一個非常值得研究的課題[1-5]。
Socket傳輸在運行過程中有著建立連接所用時間短,速度快,性能高;進行傳輸的原始數據包能夠自定義,數據占用的空間小;適合于客戶端和服務器端實時交互;可以加密,數據安全性強等優勢,文章提出了以ARM為核心的采暖評價系統數據采集模塊,通過CPU和外圍電路完成換熱站的熱量、電量,樓棟的熱量以及室內外溫度等參數的數據采集,然后與上位機通過GPRS模塊以TCP/IP協議為中介經過電信局的轉換進行數據通訊,來完成顯示功能然后保存至SQL數據庫中。文章著重介紹采暖系統上位機軟件的設計,使用Socket無線通訊功能,擺脫了有線傳輸距離的限制,具有了主動采集、實時顯示、按規定時間儲存、網絡傳送、數據分析等功能,保障了設備現場原始數據的實時性、準確性、可使用性,采暖評價系統的數據采集監測軟件是對分散在網絡上的作為單獨交匯點的數據采集裝置進行監測和操控的前提[6]。
文章設計的采暖居住建筑評價系統主要包含數據采集模塊、GPRS通訊模塊和上位機監測軟件。數據采集模塊的主要功能是采集現場設備的實時數據,溫度電量等,經過數據分析上傳給上位機;GPRS模塊是這個系統最重要的組成部分,其作用是連接數據采集模塊與上位機。
目前該通訊領域中比較普遍的的無線通信方式有GPRS、WiFi、無線電站利用衛星通信、無線電臺及ZigBee等,根據系統不同部分的位置和各無線通信方式的特點,各部分選擇相應的無線通信方式。本系統中傳感器與數據采集模塊由于距離比較近,采用RS485方式,監控中心與現場距離比較遠,所以采用GPRS的方式。而采集模塊與監測軟件兩個程序要實現通信需要通過一個雙向的連接,這個連接的一端稱為Socket。Socket又稱"套接字",軟件需要通常通過"套接字"向網絡發出請求或者應答網絡請求。
GPRS全稱是通用分組無線業務,是全球移動通信系統提供的分組數據技術,它第一次在全球移動通信系統網絡中植入分組交換標準樣式。使用GPRS的方式進行數據通訊具有非常的多優勢:(1) 可以一直在線,數據采集器可以始終和網絡維持連接;(2) 費用低廉;(3) 登錄快速,連接時間很快;(4) 網絡組建快捷方便,而現在的GPRS網絡地覆蓋面很廣[7]。本采暖評價系統的總體結構框圖如圖1所示。
2.1系統軟件主要功能
文章軟件的設計需要完成無線網絡原始數據的接收和處理兩個部分。上位機選擇用MicrosoftVisualStudio2010當做開發環境來完成該軟件的設計。它可以進行界面設計、用各種方式進行數據通信,與數據庫創建連接也非常簡單[8]。無線網絡數據接收處理部分采用ASP.NET技術,軟件采用C#語言進行編程。
該GPRS模塊內部嵌有TCP/IP協議,然而TCP/IP協議有十分強大的不同種類處理器互相連接的能力,它在Internet網絡上有很廣泛地應用,并且已經變成網絡連接的統一規則。在VS開發工具下進行網絡通信需要通過網絡編程Socket組件和WindowsSocket接口函數來實現,而Socket還要使用下層的網絡通信協議完成現場的數據通訊任務。Socket就是網絡上的兩個程序通過一個兩個方向的通信連接要求來完成數據的傳輸[9-10]。

圖1 采集評價系統總體框圖
根據監測需求采暖數據采集系統要實現的軟件功能有:
(1) 數據實時監測功能 換熱站、各個樓棟和用戶的實時數據(流量、電量和溫度等)被采集到服務器后進行運算處理,能夠顯示在服務器的屏幕上,準確的反映系統實際運行狀態,每30min紀錄一次數據。
(2) 故障報警功能 該采暖評價系統有故障自動警報功能,方便實時告知維修人員去處理檢測。檢測的故障有:溫度電量熱量傳感器采集數據錯誤、GPRS通信連接失敗、停電等。
(3) 數據報表功能 本軟件可以通過連接數據庫自動生成Excel報表,隨時對歷史數據做統計與打印。
(4) 數據分析功能 實時繪制室內外的溫度曲線圖、換熱站的瞬時流量曲線圖和電量曲線圖、水泵的電量和棟表流量曲線圖、溫差曲線圖;同時對供暖效果、建筑物墻體數據進行分析和統計,然后進行調整。
(5) 數據存儲功能 系統的數據庫可以進行本地儲存,存儲時間由監測中心需求決定。使用人員還可以根據需求來隨時將數據進行備份,假如系統遭到病毒入侵,可以利用備份還原系統。
2.2軟件設計方案
此系統要求通過無線網絡遠程接收各個換熱站、樓棟和室內的所有變量的數據。在這里考慮到系統的實際應用性及成本高低,本方案決定采用GPRS作為載體來實現。
(1) 軟件設計流程 首先服務器端與各個客戶端都要各自新建一個套接字Socket,目的是向網絡發出請求,緊接著服務器端要調取一個Bind()函數,它的作用是把之前新建的套接字跟該服務器端的本地網絡地址捆綁在一塊,本地網絡地址包含了所使用計算機的IP地址跟要使用的端口號。之后服務器端使用Listen()函數,這個函數是為了使這個創建的套接字處于一直被監聽的狀態,與此同時還要預先指定套接字的請求隊列的長度;隨后就使用Accept()函數,這是為了讓服務器端接受來自不同客戶端的連接請求,然后調取Receive()函數用來接收從客戶端發來的原始數據包。最后加入傳輸Close()函數來結束關掉套接字,傳輸通信程序終止[11]。Socket通信流程如圖2所示。
(2) 多線程的Socket通信 由于此采暖評價系統有很多個客戶端同時往服務器端發送數據,此時必須要采用多線程Socket通信。每一個客戶端想要與服務器端建立連接通信,服務器端就要添加一個新的線程去處理這個連接請求。多線程的程序是一種可以使很多任務同時去完成的運行模式,它的優勢有很多:多線程能夠大幅度地提高應用程序響應速度,讓多核CPU的系統變得更有效率,調整原本的程序結構等[12]。每當要建立新的客戶端連接請求時,主線程不會去直接處理這個請求而是會在程序中創建一個新的子線程承擔請求連接的責任。其多線程服務器端的部分程序算法如圖3所示。

圖2 Socket通信流程圖

圖3 多線程服務端算法圖
本采暖評價系統的服務器端是搭載Windows系統的個人計算機,客戶端是三個基于嵌入式的數據采集器。首先從采暖評價系統監測軟件通信部分的主線程里,新建立一個Socket套接字并與本地網絡地址捆綁在一起,然后承擔監聽數據采集器發送來的Socket連接請求的職責。各個數據采集器開始運行自己獨立的程序時,數據采集器會給計算機發送一個Socket連接請求,軟件程序此時應對三個數據采集器連接請求就要分別打開一個新的線程,并且要在每個線程里建立起新的Socket連接與數據采集器進行通信,本軟件設計運用了構造函數的方法實現多線程通信。
Socket是能夠容許同步和異步兩種方法進行工作的。同步方式就是客戶端發送原始數據包以后,不等服務器給它響應,就立即發送下一個原始數據包;異步方式就是當客戶端發送一個原始數據包以后,必須要接到服務器端的響應指令后,才可以繼續發送下一個原始數據包。相對比于網絡運行負荷有些大的系統來說,這時就要使用異步方式的Socket操作了。異步Socket可以在偵聽的同時進行其他的操作。服務器端的異步方式Socket操作,它必須要有一種標志,這個標志可以同意客戶端發來的無線網絡的連接請求;還要有一個回調函數來處理解決剛才的連接請求并且從網絡中開始接受從客戶端發來的原始數據,最后設計回調函數去終止接收原始數據[13]。在Socket中使用BeginReceive方法接受數據,其中部分算法程序如下:
(3) 數據庫設計 對于上位機監測軟件來說數據庫已經變成它最關鍵的部分,數據庫能否實時并且精確得得到傳感器設備發來的數據是所有數據采集系統合理運行的根本條件。本設計采用SQLServer2008,SQLServer的優勢是圖形化用戶界面易操作,響應時間短,并且可以為大量用戶保持高速運行的職能[14]。本設計將實時數據按要求存入數據庫中,工作人員可從數據庫中查詢歷史數據表并打印,其中部分數據會根據需求采用某些算法處理后使用。采用SQLServer數據庫相對來說簡單且易操作的。
設計中用到的主要控件介紹及其使用如下:
Panel控件Windows窗體Panel控件的功能是可以讓其他控件放到不同的界面中。一般情況下,使用面板按具體頁面的功能來細分窗體。將所有選項分組在一個面板中可向用戶提供邏輯可視提示。進行界面設計的時候任何控件都可以輕松移動,但是移動Panel控件時候,那些屬于Panel控件區域的其他控件也都會跟隨平移。本設計中主要應用在界面的切換。
Timer控件 當觸發Timer事件的時候,它可以隔規定時間就響應一段程序如此反復。它的重要屬性有Interval和Enabled。本軟件設計中該控件主要應用在把數據儲存到數據庫中。
DataGridView控件 在用C#語言進行的軟件開發過程中,DataGridView控件功能非常強大、用途普遍,它能夠很容易而快速地顯示出數據庫中的數據記錄信息,還能對其顯示的數據進行實時修改或僅僅起到顯示查看的作用。使用DataGridView控件,能夠大批量顯示和修改表格式的數據,然而這些數據是允許來自于不同類型不同種類的數據源。DataGridView控件擁有很高的可操作性和可添加性,具備了非常多的屬性,能夠對該控件的外觀等狀態進行自定義設計[15]。
① 數據庫表的建立
表是儲存數據的地方,因此是數據庫的核心部分。因為表是由行和列構成的,所以創建表其實等于定義行和列。在相同一個表中的列名不能有相同的,同一列的數據一定是相同一種數據類型,否則數據不能存儲進去。本軟件中在數據庫建立表如圖4所示,其中包括系統時間、換熱站流量、換熱站總電量、水泵電量、棟表流量、室內外溫度等。

圖4 數據庫表目錄
② 上位機軟件與數據庫的連接
用VisualStudio作為數據庫開發平臺有互操作性、可伸縮性、標準化三個優點。在軟件中要訪問數據庫,第一步要建立與數據庫的連接。在框架中,VS提供了用于創建和管理連接的類:SqlConnection類,主要用于VS與SQLServer數據庫的連接;數據命令類:SqlCommand類,主要用于數據的儲存。
2.3采暖評價系統監測軟件運行效果檢驗
本軟件通過長時間的工作運行,數據采集實時準確,可以將現場發送來的的原始數據精確讀取并按傳感器的協議規定格式換算顯示,獲得了相對較好的數據采集效率,達成了設計預計的目標。其中主要運行界面及效果圖如圖5所示。

圖5 數據顯示圖
數據查詢界面如圖6所示,主要用于工作人員查詢記錄的數據信息。用DataGridView控件來進行顯示查詢的結果,點擊“返回”按鈕即可退出查詢界面。

圖6 查詢界面圖
文章在VisualStudio2010環境中編寫了采暖評價系統監測軟件的程序,在GPRS網絡的傳輸介質下,運用了Socket多線程通信技術,在上位機構建了一個Socket服務端為核心的監測平臺,實現了上位機監測軟件與數據采集裝置的數據采集、顯示、儲存,另外還實現了數據分析、故障報警等功能。經過現場設備運行了一段時間,證明設計的使用效果滿足節能運轉的設計要求。
[1]張健,李東玲,馬愛龍,等.基于GPRS的集中供熱數據采集系統[J].遼寧工程技術大學學報,2007,26(6): 885-888.
[2]耿香麗.北方城鎮住宅采暖節能評價體系研究[J].低溫建筑技術, 2015, 37(3):131-133.
[3]尹冰玉.供熱系統節能評價辦法及優化方案研究[D].大連:大連海事大學, 2014.
[4]黎文安. 西安市既有建筑節能改造技術與效果評價[J]. 山西建筑, 2010, 36(2):266-268.
[5]沈婷婷. 夏熱冬冷地區既有居住建筑節能改造策略研究[D]. 杭州:浙江大學, 2010.
[6]陳立新,梁明,陳敬謙,余楠,等.基于基于ARM和Linux的數據采集系統及其在電能質量的監測中的應用[J].環境技術,2010,6(3): 27-30.
[7]佟欣.GPRS技術在數據采集與監控系統中的應用[J].黑龍江科技信息, 2013,30(23): 26-29.
[8]解麗華.通用軟件自動化測試框架開發與應用[D].北京:北京工業大學,2012.
[9]司志澤.基于嵌入式與GPRS的電梯數據傳輸系統的設計[D].烏魯木齊:新疆大學,2013.
[10]孫忠富,曹洪太,李洪亮,等.基于GPRS和WEB的溫室環境信息采集系統的實現[J].農業工程學報,2006, 22(6):131-134.
[11]詹文元,金花,程永誼,等.基于嵌入式網關的socket編程及通信協議[J].可編程控制器與工廠自動化, 2005(1):117-120.
[12]崔海全,張春梅,趙志誠.基于C#液位過程測控軟件的設計與實現[J].太原科技大學學報, 2012,33(1):1-5.
[13]黃承安,謝東文,徐聰.C#網絡應用案例導航[M].北京:中國鐵道出版社,2003.
[14]姚一永,呂峻閩.SQLServer2008數據庫實用教程[M].北京:電子工業出版社,2010.
[15]趙書沁,黃洪,游青山.C#.NET中dataGridView控件的設計使用[J].電腦編程技巧與維護,2014(15):32-34.
[16]王志偉,沈杰峰,郭啟峰,等.基于Socket的GPRS遠程數據采集方法[J].西華大學學報, 2006,25(1):37-39.
(學科責編:李雪蕾)
Design of monitoring software for the heatingevaluationsystembasedonSocket
Luan Luan1,Liu Zhaofeng1*,Liu Chuanyong2,et al.
(1.School of Information & Electrical Engineering, Shandong Jianzhu University, Jinan 250101, China; 2.Shandong Academy of Pharmaceutical Science, Jinan 250101, Chiina)
Withthecontinuousdevelopmentofeconomy,theproblemofhighenergyconsumptionofheatingbuildingshasbeenpaidmoreandmoreattentionto.Thedataacquisitionandmonitoringsoftwareoftheheatingevaluationsystemisthepremiseandfoundationofmonitoringandoperatingthedatacollectingdevicewhichisdistributedtothenetworkasanindependentnode.Aimingattheproblemofhighenergyconsumptionofbuildingheating,thispaperusesSockettechnologybasedontheServerSQLdatabaseinStudioVisualdevelopmentenvironmentanddesignsthemonitoringsoftwareofheatingevaluationsystem.Thedesignincludesthesoftwaredesignprocess,multithreadSocketcommunication,anddatabase.Thefeasibilityandtheactualeffectofthesoftwareoftheheatingevaluationsystemareverifiedbythesoftwareofthemonitoringsystem,whichprovesthatthesystemcanmeetthedesignrequirementsoftheenergysavingoperation.
Socket;dataacquisition;SQLServer;VisualStudio
2016-01-10
欒鸞(1989-),男,在讀碩士,主要從事檢測技術與自動化裝置等方面的研究.E-mail:luan891201@sina.com
*:劉兆峰(1961-),男,教授,學士, 主要從事建筑設備智能化等方面的研究.E-mail:goldauto@163.com
1673-7644(2016)01-0053-05
TP311.5
A