文|上海現代工程咨詢有限公司 毛 羿
在OPC技術應用于集成系統監控平臺之前,傳統的集成系統中,各個設備廠商的硬件設備之間以及各硬件設備與監控平臺中的應用軟件之間的信息共享是通過驅動程序來完成的。控制軟件開發商要構造一個完整的監控平臺往往需要針對不同的應用軟件開發大量的驅動程序。OPC技術標準的制定,使得所有的設備之間以及設備與監控平臺中的應用軟件之間的通信有了統一的規則。
由于所有OPC服務器接口的標準都是統一的,因此OPC客戶端應用程序能夠用一種標準的方法實現對所有設備供應商提供的OPC服務器程序的訪問。用戶能夠直接從OPC服務器讀取到來自現場設備的數據,而不需要另行開發通信程序。也就是說,只要OPC客戶端應用程序開發成功并能夠使用,就能夠被用于帶有OPC服務器的監控系統中。這樣一來,OPC技術的引入就大大簡化了監控系統的復雜性,使用戶可以獨立開發OPC客戶端應用程序而不必購買比較昂貴的商業組態軟件。
下面以上海由由喜來登酒店系統集成軟件開發項目為例詳細闡述。為了實現數據共享,以及在統一的界面對所有的子系統進行監控管理,必須提取所有子系統需要的數據。系統通過運行在各子系統監控分機上的服務器程序采集各個子系統的數據,加以整理后存入數據庫,同時提供監控系統。整個酒店的各個子系統共設置有1016個監控點(其中AI點294個,DI點268個,AO點216個,DO點238個),監控對象主要包括空調子系統的送/回風機運行狀態(DI)、手/自動狀態(DI)、開 /關控制(DO)、送風溫度(AI)、送風濕度(AI)等,給排水子系統的給排水泵運行狀態(DI)、手/自動轉換狀態(DI)、開/關控制(DO)、給排水水流開關狀態(DI)等,照明子系統的樓層/事故照明的電源開關控制(DO)、電源運行狀態/故障(DI)、電源手/自動狀態(DI)等,以及供配電子系統、新風機監控子系統、冷熱源子系統等各子系統的數據。大樓內各子系統設備主要選擇江森和霍尼韋爾的樓控產品,主要采用OPC數據通信協議對辦公大樓內的各個子系統進行集成,并對各子系統設備的運行狀態進行監測和控制,采集并配置相關參數。整個大樓的集成網絡結構如圖1所示。
整個大樓的集成系統主要分為三個層次,即管理層、控制層和設備層,各層有著彼此不同的特點。

圖1 基于OPC的系統集成結構圖
管理層主要是位于大樓中央監控室的監控計算機,采用以太網進行通信,并且能夠與其他監控分機進行互聯,實現管理層上的集成。
控制層主要是運行于各監控分機中的OPC服務器程序。由于OPC服務器封裝了各子系統設備的驅動程序,因此服務器可以向下對現場設備進行數據采集,并將采集到的數據轉換為統一的OPC數據傳輸格式,通過OPC接口向上傳送給位于監控主機中的OPC客戶端應用程序。
由于霍尼韋爾、江森等大型自動化設備廠商往往會提供OPC服務器以便進行系統集成,因此該項目主要采用霍尼韋爾和江森公司提供的自動化設備,包括空調子系統、新風機監控子系統、給排水系統、供配電子系統的大部分設備。沒有附帶OPC服務器的設備,將由控制軟件開發商為之開發OPC服務器。由于LonWorks使用開放式的,面向對象的總線網絡協議LonTalk,可靠性和實時性較高,因此底層的現場設備采用LonWorks總線網絡進行互聯。
OPC客戶端運行于中央監控計算機中,負責采集并顯示現場設備運行的實時數據,管理人員通過OPC客戶端對現場設備進行數據訪問操作。客戶端與服務器進行連接,通過OPC服務器實現與現場設備的通信,從而實現整個系統的數據通信,最終達到管理和控制的目的,實現系統集成。
整個上位機監控系統包括三個模塊,即集成平臺管理軟件模塊、數據通信模塊、數據庫模塊,三個模塊既各自獨立又相互聯系。整個監控系統軟件體系結構如圖2所示。

圖2 監控系統軟件體系結構圖
在監控系統軟件體系中,集成平臺管理軟件模塊主要用于實現模擬現場設備運行情況的界面顯示、報警通知和報表打印等功能。
數據通信模塊也就是OPC客戶端應用程序,它作為整個上位機監控系統的數據通信模塊,與OPC服務器進行連接,通過OPC服務器與現場設備進行數據交互,采集現場設備的運行參數。在監控點比較多的情況下,OPC服務器程序和OPC客戶端程序一般運行在不同的計算機上,通過DCOM配置實現遠程的數據交互。OPC服務器將采集到的數據通過標準的OPC接口傳送給位于上位機監控系統中OPC客戶端應用程序,OPC客戶端應用程序讀取并顯示采集到的各個設備的運行參數以供管理人員進行分析和使用。管理人員可以通過OPC客戶端應用程序直接對設備運行參數進行配置,以實現對現場設備的監測和控制,實現對整個系統的集中監控和統一管理。
數據庫模塊在整個監控系統中也非常重要,它負責存儲由OPC客戶端采集到的現場設備的數據信息,并為集成平臺管理軟件提供接口,使集成平臺管理軟件能夠通過該接口共享數據庫信息。由此,在集成平臺管理軟件中既能顯示模擬現場設備的運行狀況,又能顯示現場設備的各類數據信息。我們采用ADO方式來實現對數據庫的訪問。ADO不僅支持關系型數據庫,也支持非關系型數據庫,它封裝了ODBC和OLE DB的功能,執行效率和可擴展性能都優于ODBC,并且能夠用統一的方法來訪問不同的數據類型。
將OPC技術應用于整個大樓的系統集成當中,不僅能夠實現各個子系統之間的互聯和互操作。而且能夠實現在一個統一的集成管理平臺上對大樓內所有的現場設備進行控制和管理,這為未來進一步實現智能建筑一體化系統集成奠定了良好的基礎。
編寫OPC客戶端應用程序是通過接口調用OPC服務器的功能,對樓宇自動化系統中的現場設備進行數據訪問操作,完成對數據的配置,從而為監控系統提供實時數據,以達到對系統中現場設備運行狀態的實時監測。在整個OPC客戶端應用程序的設計過程中,有兩個部分是最重要的,一個部分是OPC數據讀取模塊的設計,另一個部分是OPC數據保存模塊的設計。兩個部分的信息交互采用多線程技術來完成。我們將數據讀取模塊作為工作線程(它對現場設備的數據讀取工作主要在后臺完成),將數據保存模塊作為主線程。工作線程會定時讀取服務器數據緩沖區中的數據,當數據發生變化時,作為主線程的數據保存模塊就會將變化的數據保存至數據庫。OPC數據讀取模塊主要實現與OPC服務器的數據交互,也就是定時讀取來自服務器的實時數據;也可以完成對服務器數據的寫入操作。數據保存模塊可以通過ADO的數據訪問方式來訪問OPC數據采集模塊建立的數據庫。
這里提到的接口功能實現主要由服務器來完成,OPC客戶端應用程序就是需要通過接口函數來調用服務器接口提供的功能。當然,函數的編寫必須符合OPC數據訪問規范標準。具體的OPC客戶端應用程序連接和斷開OPC服務器的實現流程如圖3所示。

圖3 OPC客戶端連接和斷開服務器的程序實現流程圖
OPC服務器的功能主要是通過封裝在其內部的設備驅動程序實現對現場設備的數據訪問,然后通過統一的OPC接口將數據傳遞給OPC客戶端。因此,需要按照OPC數據訪問規范的要求完成OPC服務器的結構、數據傳輸機制和接口功能的設計與實現。在OPC服務器的結構設計中,服務器的數據采集功能主要參考OPC數據訪問規范2.0版本來實現。根據OPC數據訪問規范中有關服務器的描述,OPC服務器的結構應如圖4所示。
整個服務器的設計主要包括兩個部分,一個是與客戶端進行通信的OPC標準接口類的設計,另一個是對現場設備進行數據采集的硬件通信模塊部分的設計。標準接口類部分的設計目標主要是按照OPC數據訪問規范的要求,分別實現各內部組件對象(主要包括OPC Server對象和OPC group對象)的接口功能,以及實現將從現場設備中采集到的數據與接口類中的Item相關聯,轉換為統一的數據格式傳遞給OPC客戶端應用程序的功能。硬件通信模塊的設計目標主要是根據設備支持的通信協議完成I/O動態鏈接庫的設計,并實現通過調用動態鏈接庫中的API函數進行與現場設備的數據交互的功能。

圖4 OPC服務器的整體結構圖
OPC服務器的工作流程如圖5所示。

圖5 OPC服務器工作流程圖
集成平臺管理軟件主要采用自行開發的BMS監控軟件,通過BMS監控軟件來監控并顯示空調系統設備的運行狀態。監控軟件空調系統的界面如圖6所示。

圖6 BMS監控軟件空調系統界面
圖6顯示了大樓內空調系統中空調機組的配置情況,點擊進入空調機組可以看到每一空調機的具體運行狀況,如圖7所示。

圖7 空調機組運行狀況界面
從圖7中我們可以看到,空調機組運行狀況界面包括空調機組的5個運行參數,即故障報警、空調機手/自動設置、空調機運行/停止控制選擇、送風溫度以及送風濕度。這5個參數的讀取和配置由監控系統中的OPC客戶端應用程序來完成,BMS監控軟件共享OPC客戶端應用程序的系統數據庫。OPC客戶端應用程序對空調系統設備OPC服務器進行數據訪問操作的主界面如圖8所示。

圖8 OPC客戶端應用程序操作界面
從圖8中可以看出,OPC客戶端應用程序首先與空調系統設備的OPC服務器進行連接,然后添加組;在與服務器連接之后,就可以讀取到來自服務器的空調機設備參數(即故障報警、手/自動設置、運行/停止控制選擇、送風濕度、送風溫度)。
通過以上OPC客戶端應用程序在實際的工程項目中的測試可以看出,本課題設計的OPC客戶端應用程序能夠成功地運用到大樓內上位機監控系統中,滿足通過服務器對現場設備的數據訪問操作的要求。OPC客戶端應用程序設計的目的不只是為了讀取一個設備的數據值,而是要實現對整個建筑內所有現場設備的數據訪問操作。只要設備廠商提供了其子系統設備的OPC服務器,并將其通過網絡進行互聯,OPC客戶端應用程序就能夠通過多線程的方式同時對大樓內所有的OPC服務器進行連接,在同一界面環境下對現場設備進行數據讀取和配置。這樣就使得管理人員在需要對多個設備進行數據訪問時,不必同時操作多個界面,從而節省了系統資源。由于OPC客戶端和OPC服務器的接口標準是統一的,所以即使現場的硬件設備進行了升級或完全改變,也只需要替換該設備相應的OPC服務器或更新服務器內部封裝的設備驅動程序,而不需要對客戶端程序作很多改動,只要在程序中更換一個相應的ProgID即可。所以說OPC客戶程序的代碼重用率是相當高的。
隨著自動化技術、網絡技術的快速發展,OPC技術規范也在不斷地發展和創新,它所擁有的強大應用潛力已經在許多領域得到了展示。隨著Web服務的廣泛應用,在樓宇自動化領域,基于Web服務的自動化設備在遠程監控、維護、管理等方面的需求越來越迫切。將OPC XML技術應用于樓宇自動化系統集成,更能提高各種應用系統在異構平臺上基于Internet技術的互聯能力和互操作性。同時,由于其采用軟件方式,在實現控制系統和信息系統的無縫連接的同時更易于實現功能的擴展,使得系統更加開放,勢必將成為未來樓宇自動化系統集成的又一種高效的方法。參考文獻