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