文|上海現(xiàn)代工程咨詢有限公司 毛 羿
在OPC技術(shù)應(yīng)用于集成系統(tǒng)監(jiān)控平臺之前,傳統(tǒng)的集成系統(tǒng)中,各個設(shè)備廠商的硬件設(shè)備之間以及各硬件設(shè)備與監(jiān)控平臺中的應(yīng)用軟件之間的信息共享是通過驅(qū)動程序來完成的??刂栖浖_發(fā)商要構(gòu)造一個完整的監(jiān)控平臺往往需要針對不同的應(yīng)用軟件開發(fā)大量的驅(qū)動程序。OPC技術(shù)標準的制定,使得所有的設(shè)備之間以及設(shè)備與監(jiān)控平臺中的應(yīng)用軟件之間的通信有了統(tǒng)一的規(guī)則。
由于所有OPC服務(wù)器接口的標準都是統(tǒng)一的,因此OPC客戶端應(yīng)用程序能夠用一種標準的方法實現(xiàn)對所有設(shè)備供應(yīng)商提供的OPC服務(wù)器程序的訪問。用戶能夠直接從OPC服務(wù)器讀取到來自現(xiàn)場設(shè)備的數(shù)據(jù),而不需要另行開發(fā)通信程序。也就是說,只要OPC客戶端應(yīng)用程序開發(fā)成功并能夠使用,就能夠被用于帶有OPC服務(wù)器的監(jiān)控系統(tǒng)中。這樣一來,OPC技術(shù)的引入就大大簡化了監(jiān)控系統(tǒng)的復(fù)雜性,使用戶可以獨立開發(fā)OPC客戶端應(yīng)用程序而不必購買比較昂貴的商業(yè)組態(tài)軟件。
下面以上海由由喜來登酒店系統(tǒng)集成軟件開發(fā)項目為例詳細闡述。為了實現(xiàn)數(shù)據(jù)共享,以及在統(tǒng)一的界面對所有的子系統(tǒng)進行監(jiān)控管理,必須提取所有子系統(tǒng)需要的數(shù)據(jù)。系統(tǒng)通過運行在各子系統(tǒng)監(jiān)控分機上的服務(wù)器程序采集各個子系統(tǒng)的數(shù)據(jù),加以整理后存入數(shù)據(jù)庫,同時提供監(jiān)控系統(tǒng)。整個酒店的各個子系統(tǒng)共設(shè)置有1016個監(jiān)控點(其中AI點294個,DI點268個,AO點216個,DO點238個),監(jiān)控對象主要包括空調(diào)子系統(tǒng)的送/回風機運行狀態(tài)(DI)、手/自動狀態(tài)(DI)、開 /關(guān)控制(DO)、送風溫度(AI)、送風濕度(AI)等,給排水子系統(tǒng)的給排水泵運行狀態(tài)(DI)、手/自動轉(zhuǎn)換狀態(tài)(DI)、開/關(guān)控制(DO)、給排水水流開關(guān)狀態(tài)(DI)等,照明子系統(tǒng)的樓層/事故照明的電源開關(guān)控制(DO)、電源運行狀態(tài)/故障(DI)、電源手/自動狀態(tài)(DI)等,以及供配電子系統(tǒng)、新風機監(jiān)控子系統(tǒng)、冷熱源子系統(tǒng)等各子系統(tǒng)的數(shù)據(jù)。大樓內(nèi)各子系統(tǒng)設(shè)備主要選擇江森和霍尼韋爾的樓控產(chǎn)品,主要采用OPC數(shù)據(jù)通信協(xié)議對辦公大樓內(nèi)的各個子系統(tǒng)進行集成,并對各子系統(tǒng)設(shè)備的運行狀態(tài)進行監(jiān)測和控制,采集并配置相關(guān)參數(shù)。整個大樓的集成網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
整個大樓的集成系統(tǒng)主要分為三個層次,即管理層、控制層和設(shè)備層,各層有著彼此不同的特點。
圖1 基于OPC的系統(tǒng)集成結(jié)構(gòu)圖
管理層主要是位于大樓中央監(jiān)控室的監(jiān)控計算機,采用以太網(wǎng)進行通信,并且能夠與其他監(jiān)控分機進行互聯(lián),實現(xiàn)管理層上的集成。
控制層主要是運行于各監(jiān)控分機中的OPC服務(wù)器程序。由于OPC服務(wù)器封裝了各子系統(tǒng)設(shè)備的驅(qū)動程序,因此服務(wù)器可以向下對現(xiàn)場設(shè)備進行數(shù)據(jù)采集,并將采集到的數(shù)據(jù)轉(zhuǎn)換為統(tǒng)一的OPC數(shù)據(jù)傳輸格式,通過OPC接口向上傳送給位于監(jiān)控主機中的OPC客戶端應(yīng)用程序。
由于霍尼韋爾、江森等大型自動化設(shè)備廠商往往會提供OPC服務(wù)器以便進行系統(tǒng)集成,因此該項目主要采用霍尼韋爾和江森公司提供的自動化設(shè)備,包括空調(diào)子系統(tǒng)、新風機監(jiān)控子系統(tǒng)、給排水系統(tǒng)、供配電子系統(tǒng)的大部分設(shè)備。沒有附帶OPC服務(wù)器的設(shè)備,將由控制軟件開發(fā)商為之開發(fā)OPC服務(wù)器。由于LonWorks使用開放式的,面向?qū)ο蟮目偩€網(wǎng)絡(luò)協(xié)議LonTalk,可靠性和實時性較高,因此底層的現(xiàn)場設(shè)備采用LonWorks總線網(wǎng)絡(luò)進行互聯(lián)。
OPC客戶端運行于中央監(jiān)控計算機中,負責采集并顯示現(xiàn)場設(shè)備運行的實時數(shù)據(jù),管理人員通過OPC客戶端對現(xiàn)場設(shè)備進行數(shù)據(jù)訪問操作??蛻舳伺c服務(wù)器進行連接,通過OPC服務(wù)器實現(xiàn)與現(xiàn)場設(shè)備的通信,從而實現(xiàn)整個系統(tǒng)的數(shù)據(jù)通信,最終達到管理和控制的目的,實現(xiàn)系統(tǒng)集成。
整個上位機監(jiān)控系統(tǒng)包括三個模塊,即集成平臺管理軟件模塊、數(shù)據(jù)通信模塊、數(shù)據(jù)庫模塊,三個模塊既各自獨立又相互聯(lián)系。整個監(jiān)控系統(tǒng)軟件體系結(jié)構(gòu)如圖2所示。
圖2 監(jiān)控系統(tǒng)軟件體系結(jié)構(gòu)圖
在監(jiān)控系統(tǒng)軟件體系中,集成平臺管理軟件模塊主要用于實現(xiàn)模擬現(xiàn)場設(shè)備運行情況的界面顯示、報警通知和報表打印等功能。
數(shù)據(jù)通信模塊也就是OPC客戶端應(yīng)用程序,它作為整個上位機監(jiān)控系統(tǒng)的數(shù)據(jù)通信模塊,與OPC服務(wù)器進行連接,通過OPC服務(wù)器與現(xiàn)場設(shè)備進行數(shù)據(jù)交互,采集現(xiàn)場設(shè)備的運行參數(shù)。在監(jiān)控點比較多的情況下,OPC服務(wù)器程序和OPC客戶端程序一般運行在不同的計算機上,通過DCOM配置實現(xiàn)遠程的數(shù)據(jù)交互。OPC服務(wù)器將采集到的數(shù)據(jù)通過標準的OPC接口傳送給位于上位機監(jiān)控系統(tǒng)中OPC客戶端應(yīng)用程序,OPC客戶端應(yīng)用程序讀取并顯示采集到的各個設(shè)備的運行參數(shù)以供管理人員進行分析和使用。管理人員可以通過OPC客戶端應(yīng)用程序直接對設(shè)備運行參數(shù)進行配置,以實現(xiàn)對現(xiàn)場設(shè)備的監(jiān)測和控制,實現(xiàn)對整個系統(tǒng)的集中監(jiān)控和統(tǒng)一管理。
數(shù)據(jù)庫模塊在整個監(jiān)控系統(tǒng)中也非常重要,它負責存儲由OPC客戶端采集到的現(xiàn)場設(shè)備的數(shù)據(jù)信息,并為集成平臺管理軟件提供接口,使集成平臺管理軟件能夠通過該接口共享數(shù)據(jù)庫信息。由此,在集成平臺管理軟件中既能顯示模擬現(xiàn)場設(shè)備的運行狀況,又能顯示現(xiàn)場設(shè)備的各類數(shù)據(jù)信息。我們采用ADO方式來實現(xiàn)對數(shù)據(jù)庫的訪問。ADO不僅支持關(guān)系型數(shù)據(jù)庫,也支持非關(guān)系型數(shù)據(jù)庫,它封裝了ODBC和OLE DB的功能,執(zhí)行效率和可擴展性能都優(yōu)于ODBC,并且能夠用統(tǒng)一的方法來訪問不同的數(shù)據(jù)類型。
將OPC技術(shù)應(yīng)用于整個大樓的系統(tǒng)集成當中,不僅能夠?qū)崿F(xiàn)各個子系統(tǒng)之間的互聯(lián)和互操作。而且能夠?qū)崿F(xiàn)在一個統(tǒng)一的集成管理平臺上對大樓內(nèi)所有的現(xiàn)場設(shè)備進行控制和管理,這為未來進一步實現(xiàn)智能建筑一體化系統(tǒng)集成奠定了良好的基礎(chǔ)。
編寫OPC客戶端應(yīng)用程序是通過接口調(diào)用OPC服務(wù)器的功能,對樓宇自動化系統(tǒng)中的現(xiàn)場設(shè)備進行數(shù)據(jù)訪問操作,完成對數(shù)據(jù)的配置,從而為監(jiān)控系統(tǒng)提供實時數(shù)據(jù),以達到對系統(tǒng)中現(xiàn)場設(shè)備運行狀態(tài)的實時監(jiān)測。在整個OPC客戶端應(yīng)用程序的設(shè)計過程中,有兩個部分是最重要的,一個部分是OPC數(shù)據(jù)讀取模塊的設(shè)計,另一個部分是OPC數(shù)據(jù)保存模塊的設(shè)計。兩個部分的信息交互采用多線程技術(shù)來完成。我們將數(shù)據(jù)讀取模塊作為工作線程(它對現(xiàn)場設(shè)備的數(shù)據(jù)讀取工作主要在后臺完成),將數(shù)據(jù)保存模塊作為主線程。工作線程會定時讀取服務(wù)器數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù),當數(shù)據(jù)發(fā)生變化時,作為主線程的數(shù)據(jù)保存模塊就會將變化的數(shù)據(jù)保存至數(shù)據(jù)庫。OPC數(shù)據(jù)讀取模塊主要實現(xiàn)與OPC服務(wù)器的數(shù)據(jù)交互,也就是定時讀取來自服務(wù)器的實時數(shù)據(jù);也可以完成對服務(wù)器數(shù)據(jù)的寫入操作。數(shù)據(jù)保存模塊可以通過ADO的數(shù)據(jù)訪問方式來訪問OPC數(shù)據(jù)采集模塊建立的數(shù)據(jù)庫。
這里提到的接口功能實現(xiàn)主要由服務(wù)器來完成,OPC客戶端應(yīng)用程序就是需要通過接口函數(shù)來調(diào)用服務(wù)器接口提供的功能。當然,函數(shù)的編寫必須符合OPC數(shù)據(jù)訪問規(guī)范標準。具體的OPC客戶端應(yīng)用程序連接和斷開OPC服務(wù)器的實現(xiàn)流程如圖3所示。
圖3 OPC客戶端連接和斷開服務(wù)器的程序?qū)崿F(xiàn)流程圖
OPC服務(wù)器的功能主要是通過封裝在其內(nèi)部的設(shè)備驅(qū)動程序?qū)崿F(xiàn)對現(xiàn)場設(shè)備的數(shù)據(jù)訪問,然后通過統(tǒng)一的OPC接口將數(shù)據(jù)傳遞給OPC客戶端。因此,需要按照OPC數(shù)據(jù)訪問規(guī)范的要求完成OPC服務(wù)器的結(jié)構(gòu)、數(shù)據(jù)傳輸機制和接口功能的設(shè)計與實現(xiàn)。在OPC服務(wù)器的結(jié)構(gòu)設(shè)計中,服務(wù)器的數(shù)據(jù)采集功能主要參考OPC數(shù)據(jù)訪問規(guī)范2.0版本來實現(xiàn)。根據(jù)OPC數(shù)據(jù)訪問規(guī)范中有關(guān)服務(wù)器的描述,OPC服務(wù)器的結(jié)構(gòu)應(yīng)如圖4所示。
整個服務(wù)器的設(shè)計主要包括兩個部分,一個是與客戶端進行通信的OPC標準接口類的設(shè)計,另一個是對現(xiàn)場設(shè)備進行數(shù)據(jù)采集的硬件通信模塊部分的設(shè)計。標準接口類部分的設(shè)計目標主要是按照OPC數(shù)據(jù)訪問規(guī)范的要求,分別實現(xiàn)各內(nèi)部組件對象(主要包括OPC Server對象和OPC group對象)的接口功能,以及實現(xiàn)將從現(xiàn)場設(shè)備中采集到的數(shù)據(jù)與接口類中的Item相關(guān)聯(lián),轉(zhuǎn)換為統(tǒng)一的數(shù)據(jù)格式傳遞給OPC客戶端應(yīng)用程序的功能。硬件通信模塊的設(shè)計目標主要是根據(jù)設(shè)備支持的通信協(xié)議完成I/O動態(tài)鏈接庫的設(shè)計,并實現(xiàn)通過調(diào)用動態(tài)鏈接庫中的API函數(shù)進行與現(xiàn)場設(shè)備的數(shù)據(jù)交互的功能。
圖4 OPC服務(wù)器的整體結(jié)構(gòu)圖
OPC服務(wù)器的工作流程如圖5所示。
圖5 OPC服務(wù)器工作流程圖
集成平臺管理軟件主要采用自行開發(fā)的BMS監(jiān)控軟件,通過BMS監(jiān)控軟件來監(jiān)控并顯示空調(diào)系統(tǒng)設(shè)備的運行狀態(tài)。監(jiān)控軟件空調(diào)系統(tǒng)的界面如圖6所示。
圖6 BMS監(jiān)控軟件空調(diào)系統(tǒng)界面
圖6顯示了大樓內(nèi)空調(diào)系統(tǒng)中空調(diào)機組的配置情況,點擊進入空調(diào)機組可以看到每一空調(diào)機的具體運行狀況,如圖7所示。
圖7 空調(diào)機組運行狀況界面
從圖7中我們可以看到,空調(diào)機組運行狀況界面包括空調(diào)機組的5個運行參數(shù),即故障報警、空調(diào)機手/自動設(shè)置、空調(diào)機運行/停止控制選擇、送風溫度以及送風濕度。這5個參數(shù)的讀取和配置由監(jiān)控系統(tǒng)中的OPC客戶端應(yīng)用程序來完成,BMS監(jiān)控軟件共享OPC客戶端應(yīng)用程序的系統(tǒng)數(shù)據(jù)庫。OPC客戶端應(yīng)用程序?qū)照{(diào)系統(tǒng)設(shè)備OPC服務(wù)器進行數(shù)據(jù)訪問操作的主界面如圖8所示。
圖8 OPC客戶端應(yīng)用程序操作界面
從圖8中可以看出,OPC客戶端應(yīng)用程序首先與空調(diào)系統(tǒng)設(shè)備的OPC服務(wù)器進行連接,然后添加組;在與服務(wù)器連接之后,就可以讀取到來自服務(wù)器的空調(diào)機設(shè)備參數(shù)(即故障報警、手/自動設(shè)置、運行/停止控制選擇、送風濕度、送風溫度)。
通過以上OPC客戶端應(yīng)用程序在實際的工程項目中的測試可以看出,本課題設(shè)計的OPC客戶端應(yīng)用程序能夠成功地運用到大樓內(nèi)上位機監(jiān)控系統(tǒng)中,滿足通過服務(wù)器對現(xiàn)場設(shè)備的數(shù)據(jù)訪問操作的要求。OPC客戶端應(yīng)用程序設(shè)計的目的不只是為了讀取一個設(shè)備的數(shù)據(jù)值,而是要實現(xiàn)對整個建筑內(nèi)所有現(xiàn)場設(shè)備的數(shù)據(jù)訪問操作。只要設(shè)備廠商提供了其子系統(tǒng)設(shè)備的OPC服務(wù)器,并將其通過網(wǎng)絡(luò)進行互聯(lián),OPC客戶端應(yīng)用程序就能夠通過多線程的方式同時對大樓內(nèi)所有的OPC服務(wù)器進行連接,在同一界面環(huán)境下對現(xiàn)場設(shè)備進行數(shù)據(jù)讀取和配置。這樣就使得管理人員在需要對多個設(shè)備進行數(shù)據(jù)訪問時,不必同時操作多個界面,從而節(jié)省了系統(tǒng)資源。由于OPC客戶端和OPC服務(wù)器的接口標準是統(tǒng)一的,所以即使現(xiàn)場的硬件設(shè)備進行了升級或完全改變,也只需要替換該設(shè)備相應(yīng)的OPC服務(wù)器或更新服務(wù)器內(nèi)部封裝的設(shè)備驅(qū)動程序,而不需要對客戶端程序作很多改動,只要在程序中更換一個相應(yīng)的ProgID即可。所以說OPC客戶程序的代碼重用率是相當高的。
隨著自動化技術(shù)、網(wǎng)絡(luò)技術(shù)的快速發(fā)展,OPC技術(shù)規(guī)范也在不斷地發(fā)展和創(chuàng)新,它所擁有的強大應(yīng)用潛力已經(jīng)在許多領(lǐng)域得到了展示。隨著Web服務(wù)的廣泛應(yīng)用,在樓宇自動化領(lǐng)域,基于Web服務(wù)的自動化設(shè)備在遠程監(jiān)控、維護、管理等方面的需求越來越迫切。將OPC XML技術(shù)應(yīng)用于樓宇自動化系統(tǒng)集成,更能提高各種應(yīng)用系統(tǒng)在異構(gòu)平臺上基于Internet技術(shù)的互聯(lián)能力和互操作性。同時,由于其采用軟件方式,在實現(xiàn)控制系統(tǒng)和信息系統(tǒng)的無縫連接的同時更易于實現(xiàn)功能的擴展,使得系統(tǒng)更加開放,勢必將成為未來樓宇自動化系統(tǒng)集成的又一種高效的方法。參考文獻