1. 引言
在當今的IT行業,可擴展標記語言(eXtensible Markup Language,簡稱XML)正成為一個技術熱點,在互聯網、通信、電力自動化、工業自動化等各個領域都得到了廣泛應用。與HTML一樣,XML也是一種置標語言,它最顯著的特點包括:
第一, 可擴展性。XML的最大能量來源于它不僅允許定義自己的一套標記,而且這些標記不必僅限于對于顯示格式的描述。XML允許根據各種不同的規則來制定標記,比如根據商業規則,根據數據描述甚至根據數據關系來制定標記。
第二, 數據和顯示相分離。在XML中,顯示樣式從數據信息中抽取出來,放在樣式單(Style Sheet)文件中。當需要改動信息的表現方式時,不需要改動信息本身,只要改動樣式單就可以實現。
第三, 數據的自描述性,側重于如何結構化地描述信息。信息之間的某些復雜關系,比如樹狀結構、繼承關系都能得到很好的體現。
MACS-SCADA系統以北京城市輕軌鐵路綜合自動化系統工程為依托,于2000年開始設計和開發,歷時3年,形成了一個自主開發的高性能、高可靠性的大型實時分布式綜合監控系統。在此期間,XML技術正逐步深入實際應用,我們項目組在設計和實現系統部分功能時,也進行了在SCADA系統中應用XML技術的初步探索,使得系統功能便于擴展并且配置靈活,配置信息可讀性強,獲得了令人滿意的效果。
2. XML在北京城鐵系統中的典型應用
XML提供了一種人可讀的方式來定義數據對象的名稱、屬性和方法,可以用統一資源標識符(URL)來搜索關于數據對象的信息,并且可以充當不同標準和協議之間的橋梁。XML在各個領域都正得到廣泛應用或存在大量的潛在應用,SCADA系統開發人員在涉及不同平臺和應用程序的集成項目中可以使用XML,應用程序可以通過名為文檔對象模型(Document Object Model,簡稱DOM)的標準訪問數據對象。DOM在應用程序開發過程中所處地位的示意圖如圖1所示。從中可以看出,應用程序不是直接對XML文檔進行操作的,而是首先由XML分析器對XML文檔進行分析,然后,應用程序通過XML分析器所提供的DOM接口對分析結果進行操作,從而間接實現了對XML文檔的訪問。
圖1 DOM在應用程序開發中所處地位的示意圖
在北京城鐵MACS-SCADA系統中,利用Microsoft XML分析程序和軟件開發包(Software Development Kit,簡稱SDK)進行XML開發,在Oracle通用數據庫數據的組態和配置、下裝文件記錄以及圖形導航功能中得到初步應用,取得了良好的效果。下面以其中兩個功能為例,描述XML的應用過程。
2.1. XML在通用數據庫收集配置管理中的應用
MACS-SCADA系統利用ORACLE數據庫來保存關鍵信息,如開關的動作次數、電流的最大值等,保存時間至少為1年。通用數據庫收集配置程序需要從實時數據庫組態數據中獲取所有的組態數據庫記錄,讓用戶配置哪些記錄信息(包括實時數據、統計數據和日志)進入通用數據庫,每個記錄需要進行何種運算處理,并最終生成配置信息下裝文件。所有信息文件采用XML格式進行保存,為減少數據之間的相關性,不同的數據類型分別存為不同的文件,包括運算接口配置文件、點收集信息文件以及日志收集信息文件等。
運算接口配置信息文件中保存了系統當前支持的所有運算接口的類標識符(Class Identifier,CLSID)和接口標識符(Interface Identifier,IID),運行時動態調用各個運算接口,從而實現了運算接口的在線更改。用DOM來表示文檔,如圖2所示。
圖2 運算接口配置文件結構
生成的接口XML配置文件格式如下:
點收集信息文件中以發送周期為分類準則,定義了每一個記錄或者統計點的收集處理信息,相應的文檔結構如圖2所示。
圖2 點收集信息文件XML結構
2.2. XML在圖形導航功能中的應用
在MACS-SCADA系統中,為便于操作員完成圖形文件的分類和快速定位導航功能,提供了一個圖形導航窗口功能。在此窗口中用戶可以在系統導航目錄下分級找到所有的組態圖形,也可以設置自己的導航目錄,將常用的圖形或者其他的組態圖形分類保存在不同的子目錄中。為了便于擴展,使用XML文件來圖形文件名及其路徑等相關配置信息。整個功能通過一個ActiveX控件實現。
圖3 圖形導航文件XML結構
3. XML在SCADA系統中的進一步應用
XML在SCADA系統中的應用還處于發展階段,目前各個廠家和國際標準化組織都在進行相關的工作,總的看來,XML技術在下列一些方面肯定可以得到大力發展和長足應用。
3.1. 對象實時數據庫的設計和實現
面向對象數據庫系統(OODBS)的核心概念包括對象的標識、封裝、類和類層次、繼承等。在SCADA系統中實現的對象數據庫,需要具備實時性、分布式、對象化、層次化以及事件驅動的基本特性,其中定義類(即對象模板)是設計開發和工程應用的第一步。比如對于“開關”對象,可以定義的屬性和行為有:
a) 0/1狀態說明
b) 報警:如發聲、SOE、自動推圖、自動尋呼
c) 操作:如遙控、掛牌(檢修)
d) 統計:累計開關次數
e) 啟動特定任務和發送特定消息:如觸發跳閘事故追憶、啟動快速邏輯計算
等等。對象的行為是可通過回調函數的形式實現的。實現上,采用XML語言定義對象的模板結構是技術發展的方向。采用XML的原因是該語言本身具有標準化、層次化和對象化特性,已有并將會有越來越多的編輯、編譯和解析工具的支持,如XMLSPY Enterprise Edition、MSXML、IBM的XML4C等。整個系統的開發模型如圖4所示。
圖4 采用XML定義對象數據庫的SCADA系統開發模型
3.2. WEB功能的設計和實現