- 相關(guān)推薦
面向?qū)ο笤O(shè)計(jì)在樓宇控制系統(tǒng)中的應(yīng)用
Object-oriented design in building automation application
關(guān)鍵詞 面向?qū)ο笤O(shè)計(jì), 控制系統(tǒng), BACnet, 協(xié)議
Abstract lllutrates how object-oriented programming improves reliability, provides greater flexibility and reduces programming costs, and further presents that an object-oriented protocol as a base of communication makes a whole object-oriented design. BACnet changes control units to a control units to a collection of objects, which facilitates the communication and operation of the devices.
Keywords object-oriented design, control system, BACnet, protocol
1 簡(jiǎn)介
自20世紀(jì)80年代以來,面向?qū)ο蟮姆椒ㄒ褟V泛應(yīng)用于計(jì)算機(jī)及其相關(guān)領(lǐng)域,它不僅應(yīng)用于編程階段,而且應(yīng)用在系統(tǒng)設(shè)計(jì)和系統(tǒng)分析上。面向?qū)迷O(shè)計(jì)在控制系統(tǒng)中的應(yīng)用減少了控制系統(tǒng)的費(fèi)用、提高了系統(tǒng)的易用性、加強(qiáng)了系統(tǒng)的可維護(hù)性,因此成為控制系統(tǒng)的發(fā)展方向?刂葡到y(tǒng)中的面向?qū)ο笤O(shè)計(jì)主要分為兩部分:
、 面向?qū)ο缶幊?BR> 傳統(tǒng)的過程化編程語言(比如BASIC,C)由于不具備對(duì)象的特點(diǎn),編制程序時(shí)得一行一行地編制,因此只有專業(yè)人員才能輕松地應(yīng)用這些工具[1]。但即使這些專業(yè)人員也難免在編程過程中產(chǎn)生錯(cuò)誤,而這對(duì)于控制系統(tǒng)可能是災(zāi)難性的。由于控制系統(tǒng)控制的是實(shí)際設(shè)備,任何疏忽均可能會(huì)使設(shè)備出現(xiàn)故障甚至報(bào)廢,從而對(duì)業(yè)主造成巨大的損失。
面向?qū)ο缶幊虒?shí)現(xiàn)了編程的簡(jiǎn)單化和可視化,從而大大減少編程人員的工作量。同時(shí)對(duì)象中的成員及函數(shù)均由專業(yè)人員反復(fù)測(cè)試和檢驗(yàn)過,出錯(cuò)的可能性也因此顯著降低。相對(duì)于傳統(tǒng)的編程語言,缺乏編程背景的建筑設(shè)備工程師可以熟練運(yùn)用"對(duì)象"來完成他所需的控制任務(wù),而不需軟件人員的幫助。
、 面向?qū)ο蟮膮f(xié)議
協(xié)議是控制系統(tǒng)相互之間通訊的基礎(chǔ),面向?qū)ο笤O(shè)計(jì)必須由面向?qū)ο蟮膮f(xié)議來完善。傳統(tǒng)的集散式控制系統(tǒng)(DCS)主要由模擬量輸入(AI)、模擬量輸出(AO)、數(shù)字量輸入(DI)和數(shù)字量輸出(DO)構(gòu)成控制系統(tǒng)的各個(gè)通道,它們之間彼此相互獨(dú)立。DCS的這種結(jié)構(gòu)便于工程人員根據(jù)工程的特點(diǎn)來任意組合控制系統(tǒng)通道的組成,但通道之間獨(dú)立的數(shù)據(jù)造成的大量冗余數(shù)據(jù)和信息的盲目性使數(shù)據(jù)的解釋變得非常復(fù)雜,很難發(fā)現(xiàn)其中有用的數(shù)據(jù)。面向?qū)ο蟮牡讓訁f(xié)議將數(shù)據(jù)的解釋、分類和判斷由前期設(shè)計(jì)人員完成,使無用的數(shù)據(jù)變成有用的信息,大大方便了工程人員的應(yīng)用。
面向?qū)ο蠹夹g(shù)若要在控制系統(tǒng)中真正應(yīng)用,必須在這兩個(gè)層次完成對(duì)象化改造。缺乏其中的任何一環(huán),整個(gè)面向?qū)ο笙到y(tǒng)均是不完整的。
2 面向?qū)ο缶幊?BR>
2.1 控制語言中的對(duì)象
隨著面向?qū)ο笳Z言C 的流行,面向?qū)ο缶幊桃褟V泛被人們所認(rèn)知。但由于種種原因,控制系統(tǒng)的編程語言多數(shù)是逐行編制的非面向?qū)ο笳Z言,面向?qū)ο笳Z言還較少應(yīng)用。眾所周知,面向?qū)ο蠹夹g(shù)是建立在"對(duì)象"和"類"的基礎(chǔ)上的,因此對(duì)于它們應(yīng)有一個(gè)準(zhǔn)確的定義。對(duì)象的定義為"問題域或者其實(shí)現(xiàn)中一些東西的抽象,它反映系統(tǒng)為之保存信息和(或)與它交互的能力。它是一些屬性及其專用服務(wù)的一個(gè)封裝體"[2]。而類的定義為"一個(gè)或多個(gè)對(duì)象的描述,可用一組屬性和服務(wù)的形式來描述"[1]。對(duì)于控制系統(tǒng)中的面向?qū)ο笳Z言,"對(duì)象"應(yīng)有如下特點(diǎn):
、 獨(dú)立性
一個(gè)對(duì)象是獨(dú)立存在的模塊,各對(duì)象彼此之間依賴性很小。系統(tǒng)可由各自獨(dú)立的對(duì)象組成,而不必考慮彼此之間的干擾。
、 連接性
一個(gè)孤立的對(duì)象只能完成很少的一部分功能,只有將對(duì)象有機(jī)地結(jié)合起來才能發(fā)揮它的作用。面向?qū)ο笙到y(tǒng)通過消息激發(fā)機(jī)制使對(duì)象相互作用、相互聯(lián)系,構(gòu)成一個(gè)聯(lián)系緊密的整體。
、 易維護(hù)性
一個(gè)對(duì)象的內(nèi)部功能與外界環(huán)境沒有任何的固有聯(lián)系,因此對(duì)一個(gè)對(duì)象的維護(hù)、發(fā)行不會(huì)影響到其它對(duì)象和外界程序的功能。
在對(duì)象的獨(dú)立性上,控制語言中應(yīng)分離對(duì)象內(nèi)部的運(yùn)算變量與實(shí)際的操作變量。例如集散式控制系統(tǒng)(DCS)中直接操作設(shè)備的是4~20mA/0~10V的模擬量輸出或開關(guān)量輸出,而現(xiàn)場(chǎng)總線控制系統(tǒng)(FCS)直接操作的是閥門、電機(jī)等智能控制器。控制語言中的變量若直接是AO,DO或特定的閥門、電機(jī)等,雖然程序看起來比較直觀,但它喪失了通用性和對(duì)象封裝的特點(diǎn)。當(dāng)系統(tǒng)中的控制程序移植到具有相同特點(diǎn)的另一個(gè)系統(tǒng)中時(shí),用戶就需將程序中的每一個(gè)變量變更以適應(yīng)新的系統(tǒng),這樣做不僅費(fèi)時(shí)而且極容易出錯(cuò)。因此需要將程序中的運(yùn)算變量和實(shí)際操作變量分離,使對(duì)象的獨(dú)立性和系統(tǒng)的可操作性統(tǒng)一起來。
控制系統(tǒng)中的現(xiàn)場(chǎng)控制模塊通常程序容量和計(jì)算速度均遠(yuǎn)低于計(jì)算機(jī)的相應(yīng)性能,因此硬件上的限制使控制語言盡量減少類的復(fù)雜過程的應(yīng)用。同時(shí)類中的成員函數(shù)也應(yīng)盡量減少,構(gòu)造函數(shù)和析構(gòu)函數(shù)均由賦值表達(dá)式完成。簡(jiǎn)言之,控制語言中的類由兩部分組成:
變量的聲明表;②對(duì)變
【面向?qū)ο笤O(shè)計(jì)在樓宇控制系統(tǒng)中的應(yīng)用】相關(guān)文章:
面向?qū)ο蟪绦蛟O(shè)計(jì)技術(shù)在金融信息系統(tǒng)的應(yīng)用03-07
淺論面向?qū)ο蟪绦蛟O(shè)計(jì)技術(shù)在金融信息系統(tǒng)的應(yīng)用03-01
CAN總線在樓宇監(jiān)控系統(tǒng)中的應(yīng)用03-07
面向?qū)ο蟮那度胧较到y(tǒng)設(shè)計(jì)方法03-18
智能照明控制系統(tǒng)的設(shè)計(jì)和應(yīng)用03-03
面向服務(wù)的架構(gòu)(SOA)在電子商務(wù)中的應(yīng)用03-22
工業(yè)Ethernet在遠(yuǎn)程實(shí)時(shí)控制系統(tǒng)中的具體應(yīng)用03-18