面向對象設計在樓宇控制系統中的應用

時間:2015-08-20 10:09 來源:發表吧 作者:發表吧編輯 點擊:
  【摘要】介紹了面向對象編程如何提高程序的可靠性、提供更大的靈活性和減少編制費用,進而介紹了完整的面向對象設計還包括構成控制系統通訊基礎的面向對象協議。BACnet協議將每個控制子單元歸納為對象形式,簡化了設備之間的通訊和操作。
  【關鍵詞】面向對象設計,控制系統,BACnet,協議
  1簡介
  自20世紀80年代以來,面向對象的方法已廣泛應用于計算機及其相關領域,它不僅應用于編程階段,而且應用在系統設計和系統分析上。面向對利用設計在控制系統中的應用減少了控制系統的費用、提高了系統的易用性、加強了系統的可維護性,因此成為控制系統的發展方向。控制系統中的面向對象設計主要分為兩部分:
  ①面向對象編程
  傳統的過程化編程語言(比如BASIC,C)由于不具備對象的特點,編制程序時得一行一行地編制,因此只有專業人員才能輕松地應用這些工具[1]。但即使這些專業人員也難免在編程過程中產生錯誤,而這對于控制系統可能是災難性的。由于控制系統控制的是實際設備,任何疏忽均可能會使設備出現故障甚至報廢,從而對業主造成巨大的損失。
  面向對象編程實現了編程的簡單化和可視化,從而大大減少編程人員的工作量。同時對象中的成員及函數均由專業人員反復測試和檢驗過,出錯的可能性也因此顯著降低。相對于傳統的編程語言,缺乏編程背景的建筑設備工程師可以熟練運用"對象"來完成他所需的控制任務,而不需軟件人員的幫助。
  ②面向對象的協議
  協議是控制系統相互之間通訊的基礎,面向對象設計必須由面向對象的協議來完善。傳統的集散式控制系統(DCS)主要由模擬量輸入(AI)、模擬量輸出(AO)、數字量輸入(DI)和數字量輸出(DO)構成控制系統的各個通道,它們之間彼此相互獨立。DCS的這種結構便于工程人員根據工程的特點來任意組合控制系統通道的組成,但通道之間獨立的數據造成的大量冗余數據和信息的盲目性使數據的解釋變得非常復雜,很難發現其中有用的數據。面向對象的底層協議將數據的解釋、分類和判斷由前期設計人員完成,使無用的數據變成有用的信息,大大方便了工程人員的應用。
  面向對象技術若要在控制系統中真正應用,必須在這兩個層次完成對象化改造。缺乏其中的任何一環,整個面向對象系統均是不完整的。
  2面向對象編程
  2.1控制語言中的對象
  隨著面向對象語言C++的流行,面向對象編程已廣泛被人們所認知。但由于種種原因,控制系統的編程語言多數是逐行編制的非面向對象語言,面向對象語言還較少應用。眾所周知,面向對象技術是建立在"對象"和"類"的基礎上的,因此對于它們應有一個準確的定義。對象的定義為"問題域或者其實現中一些東西的抽象,它反映系統為之保存信息和(或)與它交互的能力。它是一些屬性及其專用服務的一個封裝體"[2]。而類的定義為"一個或多個對象的描述,可用一組屬性和服務的形式來描述"[1]。對于控制系統中的面向對象語言,"對象"應有如下特點:
  ①獨立性
  一個對象是獨立存在的模塊,各對象彼此之間依賴性很小。系統可由各自獨立的對象組成,而不必考慮彼此之間的干擾。
  ②連接性
  一個孤立的對象只能完成很少的一部分功能,只有將對象有機地結合起來才能發揮它的作用。面向對象系統通過消息激發機制使對象相互作用、相互聯系,構成一個聯系緊密的整體。
  ③易維護性
  一個對象的內部功能與外界環境沒有任何的固有聯系,因此對一個對象的維護、發行不會影響到其它對象和外界程序的功能。
  在對象的獨立性上,控制語言中應分離對象內部的運算變量與實際的操作變量。例如集散式控制系統(DCS)中直接操作設備的是4~20mA/0~10V的模擬量輸出或開關量輸出,而現場總線控制系統(FCS)直接操作的是閥門、電機等智能控制器。控制語言中的變量若直接是AO,DO或特定的閥門、電機等,雖然程序看起來比較直觀,但它喪失了通用性和對象封裝的特點。當系統中的控制程序移植到具有相同特點的另一個系統中時,用戶就需將程序中的每一個變量變更以適應新的系統,這樣做不僅費時而且極容易出錯。因此需要將程序中的運算變量和實際操作變量分離,使對象的獨立性和系統的可操作性統一起來。
  控制系統中的現場控制模塊通常程序容量和計算速度均遠低于計算機的相應性能,因此硬件上的限制使控制語言盡量減少類的復雜過程的應用。同時類中的成員函數也應盡量減少,構造函數和析構函數均由賦值表達式完成。簡言之,控制語言中的類由兩部分組成:
  變量的聲明表;②對變量進行計算和操作的方法。
  控制語言中的類定義為:
  類名稱:
  類變量聲明表:
  變量類型變量1
  …
  變量類型變量n
  類代碼:
  方法1
  …
  方法m
  類描述結束
  2.2消息的發送和接收
  一個面向對象的控制程序由若干相互關聯的一組對象組成,并通過對象之間的相互聯系完成所有的功能。對象之間的聯系方式即是消息激勵機制,消息是"用來請求對象執行某個處理或回答某些信息的要求"[3]。在面向對象系統中,對象之間的聯系是通過消息的傳遞完成的,對象只有接收到消息之后才能做出響應。而對消息進行響應的是對象中的成員函數即所謂的"方法",方法是實現消息具體功能的手段。
  消息具有如下幾個性質:
  ①同一對象可以接收不同形式的多個消息,產生不同響應。
  ②一條消息可以發送給不同的對象,消息的解釋完全由接收對象完成。
  ③對象對消息的響應是不必須的。對象既可以對消息作出響應,也可以不返回任何的回答信息。
  根據消息表,控制語言將包括設備、時鐘和數據交換等系統事件發送給能夠響應這些事件的對象。設備事件是控制系統中的實際設備的狀態變化等設備信息,控制系統將其通知相應的操作對象。時鐘事件用于滿足系統對時間控制的要求,定時器時鐘在時間條件具備的條件下向對象發送"時間已到"的信息,對象根據此信息按固定時間步長或絕對時間操作。
  由于控制程序要兼顧系統中的所有設備,因此在程序中不能存在無限循環等待某一外界變量變化的情況。若對系統"死機"的現象。當一個對象需要向另外一個對象發送數據的時候便產生一個數據交換消息以激勵該對象,被激勵對象據此接收被發送的數據。數據交換的消息激勵機制同時可用于對象根據內部的某些條件來觸發自己本身。
  在控制系統中事件的產生是沒有規律的,某一時刻可能會同時出現多個消息。而哪個消息應首先得到處理、哪個最后處理就需要控制系統對消息進行管理。消息管理通常采用隊列方式即按消息產生的時間序列來排隊,先來的先處理后來的后處理。若消息產生的時間恰好相同,則按消息的等級即設備、時間、數據通訊的順序來排列。設備消息對應的是實際現場設備,消息的產生說明現場設備出現了變化,因此控制系統應首先作出響應。
  一個對象可能對多個觸發消息響應,而每個消息必然需要一個成員函數對它響應,這種成員函數即所謂的"方法"。將系統事件映射到對象時所使用的手段稱為"消息表"。面向對象控制語言出于簡便的原則將消息映射和對應的方法按照統一的格式來書寫。在消息表中預定義了系統事件所映射到的方法,當消息觸發該對象后尋找對應這個消息的方法名稱,并據此執行相應的方法。
  控制語言中一個完整的對象應包括對象名稱、消息表、對象變量聲明和數據交換表和對象的實體。對象變量聲明和數據交換表將系統內的變量聲明并與外界設備數據進行交換。當消息觸發對象時,表中的系統設備狀態和數據均映射到相應的變量上。對象的整體構造為:
  對象名稱:
  消息表:
  方法名稱1(觸發條件1)
  …
  方法名稱k(觸發條件k)
  對象變量聲明和數據交換表:
  變量類型變量1=系統設備1
  …
  變量類型變量n=系統設備n
  對象的實體:
  方法名稱1
  方法的源代碼1
  方法名稱2:
  方法的源代碼
  …
  結束

  (www.aadpij.tw),是一個專門從事期刊推廣、論文刊登的網站。
  本站提供如何發表論文,尋求論文刊登代理,快速發表論文,發表論文格式指導等解決方案:省級論文刊登/國家級論文刊登/CSSCI核心/醫學論文發表/職稱論文發表。

 投稿郵箱:[email protected]
 在線咨詢:論文發表275774677論文發表1003180928
 在線咨詢:論文發表610071587論文發表1003160816
 聯系電話:18796993035

聯系方式
李老師QQ:發表吧客服610071587 陳老師QQ:發表吧客服275774677 劉老師QQ:發表吧客服1003160816 張老師QQ:發表吧客服1003180928 聯系電話:18796993035 投稿郵箱:[email protected]
期刊鑒別
  • 刊物名稱:
  • 檢索網站:
熱門期刊
發表吧友情提醒

近來發現有些作者論文投稿存在大量剽竊、抄襲行為,“發表吧”對此類存在大量剽竊、抄襲的論文已經停止編輯、推薦。同時我們也提醒您,當您向“發表吧”投稿時請您一定要保證論文的原創性、唯一性,這既是對您自己負責,更是對他人的尊敬。

此類投稿的論文如果發表之后,對您今后的人生和事業將造成很大的麻煩,后果不堪設想,請您一定要慎重,三思而后行。

如因版權問題引起爭議或任何其他原因,“發表吧”不承擔任何法律責任,侵權法律責任概由剽竊、抄襲者本人承擔。

 
QQ在線咨詢
論文刊登熱線:
187-9699-3035
微信號咨詢:
fabiaoba-com
广东快乐10分开奖走势图