基于COM技術(shù)的SCADA系統(tǒng)數(shù)據(jù)庫設(shè)計(jì) - 全文
【摘要】近年來組件技術(shù)已被廣泛應(yīng)用于電力調(diào)度自動(dòng)化系統(tǒng)的開發(fā),而且IEC61970標(biāo)準(zhǔn)為系統(tǒng)標(biāo)準(zhǔn)化和組件化提供了互操作標(biāo)準(zhǔn),在此基礎(chǔ)上作者介紹了一種基于組件對象模型(COM)的SCADA數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)方案,其中的系統(tǒng)數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)遵循IEC61970-303標(biāo)準(zhǔn),利用組件連接數(shù)據(jù)庫與SCADA前臺(tái)應(yīng)用。用戶可以通過更新組件模塊的方式擴(kuò)展和升級(jí)系統(tǒng),使系統(tǒng)具有更好的兼容性和可擴(kuò)展性。采用此方法開發(fā)的SCADA系統(tǒng)可作為數(shù)據(jù)交互平臺(tái),用于新一代調(diào)度自動(dòng)化系統(tǒng)。
1、引言
隨著計(jì)算機(jī)技術(shù)的發(fā)展,自動(dòng)化軟件在電力系統(tǒng)的應(yīng)用越來越多,功能也越來越強(qiáng)大,但與此同時(shí)也給應(yīng)用軟件開發(fā)商和電力企業(yè)用戶帶來一些問題:軟件系統(tǒng)越來越龐大、系統(tǒng)內(nèi)部關(guān)系錯(cuò)綜復(fù)雜、系統(tǒng)維護(hù)困難;對其中某一部分的修改可能影響到其他許多應(yīng)用功能,而且難以擴(kuò)展其他功能;當(dāng)用戶對系統(tǒng)中某一部分的功能進(jìn)行擴(kuò)展時(shí),如果用第三方軟件,由于接口專用,要重復(fù)開發(fā)一些軟件,給用戶造成資金和時(shí)間上的浪費(fèi)。
上述問題導(dǎo)致目前針對電力系統(tǒng)開發(fā)的電網(wǎng)監(jiān)控系統(tǒng)不僅系統(tǒng)問移植性較差,甚至系統(tǒng)升級(jí)和功能擴(kuò)展也很困難。由于沒有統(tǒng)一的數(shù)據(jù)標(biāo)準(zhǔn)格式,這些系統(tǒng)難于與外界交換信息,不能實(shí)現(xiàn)異構(gòu)數(shù)據(jù)資源共享,難以滿足電力系統(tǒng)中日益廣泛的分布式網(wǎng)絡(luò)應(yīng)用的需求,已經(jīng)不能適應(yīng)電網(wǎng)監(jiān)控系統(tǒng)發(fā)展的新要求。
近幾年來隨著組件技術(shù)的發(fā)展成熟,它在電力系統(tǒng)中的應(yīng)用受到越來越多開發(fā)人員的重視。組件程序設(shè)計(jì)方法的思想將復(fù)雜的應(yīng)用程序設(shè)計(jì)成一些小的、功能單一的組件模塊,在組件模塊封裝內(nèi)部實(shí)現(xiàn)細(xì)節(jié),只對外提供標(biāo)準(zhǔn)的應(yīng)用接口。利用組件的特性能夠解決網(wǎng)絡(luò)分布環(huán)境中多種異構(gòu)數(shù)據(jù)資源共享問題,實(shí)現(xiàn)多種應(yīng)用軟件的協(xié)同工作,而且組件的重用性還可以大幅提高應(yīng)用軟件的開發(fā)效率,增強(qiáng)系統(tǒng)的穩(wěn)定性,使系統(tǒng)更易于維護(hù)和管理。目前在電網(wǎng)調(diào)度自動(dòng)化軟件中推行組件化和各個(gè)應(yīng)用軟件接口的標(biāo)準(zhǔn)化,以實(shí)現(xiàn)“即插即用”己成為開發(fā)新一代電網(wǎng)調(diào)度自動(dòng)化系統(tǒng)的主要任務(wù)瞄J。國際電工技術(shù)委員會(huì)(IEC)為此制訂了一系列標(biāo)準(zhǔn),其中的IEC61970系列標(biāo)準(zhǔn)對電網(wǎng)調(diào)度自。川口動(dòng)化系統(tǒng)平臺(tái)的標(biāo)準(zhǔn)化具有重要意義,也為基于組隨著計(jì)算機(jī)技術(shù)的發(fā)展,自動(dòng)化軟件在電力系件技術(shù)的電力系統(tǒng)數(shù)據(jù)互操作提供了參考。
2、組件對象模型(COM)技術(shù)
長期以來,面向?qū)ο蟮某绦蛟O(shè)計(jì)方法是進(jìn)行軟20POwerSystemTechnology’V01.28NO.14件開發(fā)的最好方案,它解決了傳統(tǒng)軟件開發(fā)中難以實(shí)現(xiàn)代碼共享、程序沒有可移植性等問題,允許開發(fā)者可以在同一系統(tǒng)的不同應(yīng)用中共享代碼,極大地提高了開發(fā)效率,但是面向?qū)ο?a href="http://www.brongaenegriffin.com/v/tag/1315/" target="_blank">編程的軟件的重用僅限于程序源代碼級(jí)別的重用,而且它一般要求對象程序和使用對象的客戶程序使用同樣的編程語言,因此這樣的代碼重用僅僅是一種較低層次的重用。
組件對象模型(Component0biectModel,COM)是由微軟公司創(chuàng)建的一種二進(jìn)制和網(wǎng)絡(luò)標(biāo)準(zhǔn),遵循這一標(biāo)準(zhǔn)開發(fā)的組件之間可以跨進(jìn)程、跨機(jī)器、跨語言甚至跨操作平臺(tái)進(jìn)行通信。因此,只要組件接口標(biāo)準(zhǔn)化,開發(fā)人員就可以如同搭積木一樣,從某個(gè)組件庫中取出所需的組件并將其快速地組裝到一起,以構(gòu)成所需的應(yīng)用,如圖1所示。
與傳統(tǒng)的軟件設(shè)計(jì)相比,使用組件程序設(shè)計(jì)方法開發(fā)軟件產(chǎn)品具有下列優(yōu)點(diǎn):
?。?)組件易替換
在龐大復(fù)雜的企業(yè)級(jí)系統(tǒng)應(yīng)用程序中,如果使用組件技術(shù)將程序分成一個(gè)個(gè)組件模塊,在組件修改后升級(jí)版本時(shí),就可以只修改或替換相關(guān)的組件,而不影響其他眾多的程序組件。
?。?)便于適應(yīng)業(yè)務(wù)需求進(jìn)行更改
軟件的業(yè)務(wù)需求通常不確定,開發(fā)期間和軟件配置之后,新的需求會(huì)不斷涌現(xiàn)。在組件化的軟件中,可以將業(yè)務(wù)規(guī)則放在少數(shù)幾個(gè)組件中,當(dāng)業(yè)務(wù)規(guī)則發(fā)生改變時(shí),只需修改原組件或重建并發(fā)布新組件。因此,更新是局部的,程序中出錯(cuò)的機(jī)會(huì)也就限制在這個(gè)局部,使程序的調(diào)試和測試更為方便。
(3)可實(shí)現(xiàn)二進(jìn)制代碼重用
組件之間可以在二進(jìn)制級(jí)別上進(jìn)行繼承和重用,這樣一來只需一次編寫代碼而多處應(yīng)用。
(4)有助于進(jìn)行并行開發(fā)
一個(gè)大應(yīng)用系統(tǒng)由許多組件組成,這些組件的實(shí)現(xiàn)可以并列進(jìn)行。只要接口設(shè)計(jì)正確,則建立這些組件后它們將能順利配合。
3、SCADA系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)方法
設(shè)計(jì)數(shù)據(jù)庫時(shí)要根據(jù)數(shù)據(jù)庫管理系統(tǒng)支持的數(shù)據(jù)模型來定義數(shù)據(jù)模式,在傳統(tǒng)的SCADA系統(tǒng)中,由于對電力系統(tǒng)的描述形式和計(jì)算機(jī)實(shí)現(xiàn)方法不同,不同廠家設(shè)計(jì)的系統(tǒng)的數(shù)據(jù)模式是不同的,這造成系統(tǒng)的訪問接口缺乏統(tǒng)一的標(biāo)準(zhǔn),致使不同系統(tǒng)異構(gòu)和互聯(lián)非常困難。從1994~1998年的五年問,通過整個(gè)工業(yè)界的協(xié)作和努力,國際電工技術(shù)委員會(huì)(IEC)發(fā)布了所有使用實(shí)時(shí)信息的應(yīng)用開發(fā)者的最初標(biāo)準(zhǔn)化設(shè)計(jì)規(guī)范,即IEC61970。設(shè)計(jì)規(guī)范第一次允許所有用戶(電力公司、電力聯(lián)營體、電力市場、配電控制中心、供電方、投資者等)能夠在一個(gè)充滿競爭的應(yīng)用領(lǐng)域中來升級(jí)/移植他們的系統(tǒng),而不必依賴某一廠家,也不必浪費(fèi)以前的投資。這些標(biāo)準(zhǔn)的發(fā)布將極大地促進(jìn)開放系統(tǒng)的構(gòu)造。IEC61970系列標(biāo)準(zhǔn),主要包括公用信息格式(CommonInformationModel,CIM)和組件接口標(biāo)準(zhǔn)(ComponentInterfaceSpecification,CIS)。CIM以xML語言描述電力系統(tǒng)數(shù)據(jù)的結(jié)構(gòu),包含了EMS的公共類和屬性以及它們之間的關(guān)系,它用面向?qū)ο蟮姆椒ㄒ?guī)定了公用數(shù)據(jù)的標(biāo)準(zhǔn)數(shù)據(jù)模式,構(gòu)成了系統(tǒng)之間互操作的基礎(chǔ);CIS描述了組件之間信息交換的接口以及應(yīng)用程序訪問公共數(shù)據(jù)的方式pJ。這些標(biāo)準(zhǔn)統(tǒng)一了系統(tǒng)之間數(shù)據(jù)交換的格式,使應(yīng)用組件技術(shù)實(shí)現(xiàn)電力系統(tǒng)應(yīng)用軟件的集成即互操作成為可能。
在本文所介紹的SCADA系統(tǒng)中,數(shù)據(jù)庫系統(tǒng)的分析、設(shè)計(jì)與實(shí)現(xiàn)均采用組件設(shè)計(jì)思想,按照面向設(shè)備的方法描述SCADA系統(tǒng)中的元數(shù)據(jù),遵循IEC61970—303系列標(biāo)準(zhǔn)設(shè)計(jì)SCADA數(shù)據(jù)庫,數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)模式和歷史數(shù)據(jù)等都存放在歷史數(shù)據(jù)庫中,而SCADA系統(tǒng)的實(shí)時(shí)數(shù)據(jù)則存放在實(shí)時(shí)數(shù)據(jù)庫中,對外提供標(biāo)準(zhǔn)的數(shù)據(jù)接口16J。基于COM的SCADA數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)模型如圖2所示。
4、SCADA數(shù)據(jù)庫系統(tǒng)組件化設(shè)計(jì)的優(yōu)越性
在傳統(tǒng)的SCADA系統(tǒng)設(shè)計(jì)中,后臺(tái)數(shù)據(jù)庫的不同會(huì)對整個(gè)SCADA系統(tǒng)的應(yīng)用造成很大的影響,但如果采用如圖2所示的三層軟件應(yīng)用模型,采用控件數(shù)據(jù)對象(ActiveX【)ata0biects,AD0)提供一致的數(shù)據(jù)庫訪問接口,則可以克服這一問題,這也使軟件具有更好的系統(tǒng)適應(yīng)性。圖2中業(yè)務(wù)邏輯層的組件適用于電網(wǎng)監(jiān)控,它對外提供標(biāo)準(zhǔn)接口,客戶調(diào)用相應(yīng)的接口函數(shù)獲得所需的功能。如果外部應(yīng)用程序的數(shù)據(jù)接口也遵循IEC61970標(biāo)準(zhǔn),在SCADA的數(shù)據(jù)庫平臺(tái)上就能夠使用不同廠商的應(yīng)用軟件,做到“即插即用”。由于采用組件設(shè)計(jì),系統(tǒng)的功能由一個(gè)個(gè)功能獨(dú)立的組件“拼裝”而成,減少了系統(tǒng)之間的代碼依賴性,當(dāng)系統(tǒng)要進(jìn)行改動(dòng)或升級(jí)時(shí),只需對相應(yīng)的組件進(jìn)行改動(dòng),而且系統(tǒng)需要增加新的功能時(shí),也只需針對新的需求設(shè)計(jì)新的應(yīng)用組件程序,與原系統(tǒng)“組合”使用,這樣就大大增強(qiáng)了系統(tǒng)的開放性,減少了系統(tǒng)的開發(fā)及維護(hù)工作量,如圖3所示。
5、組件的設(shè)計(jì)與實(shí)現(xiàn)
由于組件的優(yōu)點(diǎn)在于可重用性好,具有標(biāo)準(zhǔn)應(yīng)用接口,因此在系統(tǒng)設(shè)計(jì)中應(yīng)將功能盡可能地細(xì)化,使組件能完成某一項(xiàng)獨(dú)立的功能,以充分體現(xiàn)組件的優(yōu)越性,提高組件的重復(fù)利用率。在本文中,業(yè)務(wù)邏輯層主要設(shè)計(jì)了以下一些組件:
?。?)用戶登錄組件
該組件的功能是對登錄用戶的合法性進(jìn)行識(shí)別,若屬非法用戶則拒絕其進(jìn)入SCADA系統(tǒng),合法用戶則準(zhǔn)許進(jìn)入,并賦予其在SCADA系統(tǒng)中相應(yīng)的權(quán)限。用戶登錄進(jìn)SCADA系統(tǒng)時(shí),調(diào)用該組件,由該組件對外提供接口函數(shù),定義如下:
?。?)數(shù)據(jù)庫連接組件
該組件的功能是連接到后臺(tái)數(shù)據(jù)庫,對外提供以下兩個(gè)接口函數(shù):
1)Open(BSTRdatasource,BSTRuser,BSTRpwd)用于連接后臺(tái)數(shù)據(jù)庫;
2)Close()用于斷開與數(shù)據(jù)庫的連接。
?。?)數(shù)據(jù)訪問組件系列
在本文所述設(shè)計(jì)中,針對SCADA系統(tǒng)數(shù)據(jù)庫中的數(shù)據(jù)表開發(fā)了一系列的數(shù)據(jù)訪問組件,它們封裝了對數(shù)據(jù)庫中數(shù)據(jù)的各項(xiàng)操作,提供了一系列的應(yīng)用接口函數(shù),SCA:DA應(yīng)用系統(tǒng)通過調(diào)用接口函數(shù)來獲得相應(yīng)的信息。以SCADA系統(tǒng)訪問遙測信息為例,所有的對遙測信息的操作均封裝在名為Yclnfo的組件里,組件內(nèi)部包括以下一些操作函數(shù):
1)getYcPara(YcPara*pa)用以得到遙測信息記錄的指針
在系統(tǒng)中為了方便數(shù)據(jù)管理,每項(xiàng)遙測信息保存在一個(gè)名為YcPara的結(jié)構(gòu)體內(nèi),該結(jié)構(gòu)體的定義如下:
structYcPara
{
intRtuID;//廠站號(hào)
intYclD;//遙測號(hào)
charYcName[40】;//遙測名稱
intIfvalid;//是否有效
floatBase;//基值
};
通過獲得結(jié)構(gòu)體的指針得到具體的數(shù)據(jù):
2)First()得到第一條記錄;
3).Next()得到下一條記錄;
4)Prev()返回前一條記錄;
5)Last()得到最后一條記錄;
6)delete()刪除當(dāng)前記錄;
7)update(BSTRstrSQL)更新當(dāng)前記錄。
?。?strong>4)數(shù)據(jù)表管理組件
該組件封裝了對數(shù)據(jù)庫中的表結(jié)構(gòu)進(jìn)行的操作,如新建數(shù)據(jù)表、刪除數(shù)據(jù)表等操作。
以上設(shè)計(jì)的這些組件,能獨(dú)立完成某些功能,對外提供說明其功能的接口及接口函數(shù),如果有其它的客戶需要實(shí)現(xiàn)這樣的功能,也能夠通過調(diào)用相關(guān)組件獲得所需的功能,提高了資源利用率。
6、結(jié)論
數(shù)據(jù)庫管理系統(tǒng)是電力系統(tǒng)應(yīng)用的支撐平臺(tái),也是整個(gè)系統(tǒng)的核心內(nèi)容,從數(shù)據(jù)庫管理系統(tǒng)開始實(shí)施IEC61970標(biāo)準(zhǔn)系列、推行組件化設(shè)計(jì)不僅能夠滿足SCADA系統(tǒng)的開放性和可持續(xù)發(fā)展性的要求,而且使自動(dòng)化系統(tǒng)和信息系統(tǒng)的交互與集成成為可能,必將極大地促進(jìn)信息化電力系統(tǒng)的建設(shè)進(jìn)程。本文介紹的基于COM技術(shù)的SCADA系統(tǒng)數(shù)據(jù)庫組件化設(shè)計(jì)方案,己在武漢大學(xué)開發(fā)的SCADA系統(tǒng)中得到實(shí)現(xiàn)與應(yīng)用,取得了較好的效果。
本文導(dǎo)航
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%
相關(guān)閱讀:
- [編程語言及工具] 常用于緩存處理的機(jī)制總結(jié) 如何避免緩存雪崩問題? 2023-10-24
- [電子說] 觸發(fā)器的基本原理、應(yīng)用場景及優(yōu)缺點(diǎn) 2023-10-23
- [存儲(chǔ)技術(shù)] AI大模型對數(shù)據(jù)存儲(chǔ)技術(shù)的發(fā)展趨勢 2023-10-23
- [電子說] 訪問控制中PIP的典型流程和關(guān)鍵點(diǎn)思考 2023-10-23
- [電子說] 物證管理系統(tǒng)|智物證DW-S404是一套成熟系統(tǒng) 2023-10-23
- [電子說] Tata Communications數(shù)據(jù)收入繼續(xù)保持兩位數(shù)的增長勢頭 2023-10-22
- [電子說] Python 梯度計(jì)算模塊如何實(shí)現(xiàn)一個(gè)邏輯回歸模型 2023-10-21
- [電子說] TinyDB :一個(gè)純Python編寫的輕量級(jí)數(shù)據(jù)庫 2023-10-21
( 發(fā)表人:金巧 )