風電場組態(tài)監(jiān)控系統(tǒng)運行時的應用研究
1 引言
所謂的組態(tài)(configuration)技術(shù)就是對于不同但類似的應用對象不需要重新設(shè)計和編程,只需根據(jù)系統(tǒng)分析,應用面向過程的組態(tài)工具(軟件包)進行簡單的配置和定義或編寫簡單的組態(tài)語言,即可設(shè)計完成一個特定功能的新系統(tǒng)或修改系統(tǒng)的功能。
風電場組態(tài)監(jiān)控系統(tǒng)是用來對風電場內(nèi)各臺所需查看的風機的具體信息進行監(jiān)視的系統(tǒng)。風力發(fā)電是當今世界新能源開發(fā)中技術(shù)最成熟、最具有大規(guī)模和商業(yè)化發(fā)展前景的發(fā)電方式。隨著風場個數(shù)的增加,單個風場裝機容量的增加,對風場內(nèi)每個風機的控制和管理的難度也在增加,使得傳統(tǒng)的工業(yè)控制軟件已無法滿足用戶的各種需求,此時就需要一種軟件,它是在自動控制系統(tǒng)監(jiān)控層一級的軟件平臺和開發(fā)環(huán)境,使用靈活的組態(tài)方式,為用戶提供快速構(gòu)建風場自動控制系統(tǒng)監(jiān)控功能的、通用層次的軟件工具,組態(tài)軟件就應運而生。
本文在調(diào)研了風電場的基本信息的基礎(chǔ)上,開發(fā)了基于風電場的組態(tài)監(jiān)控系統(tǒng)運行時軟件,運行時軟件是用來還原組態(tài)成品的軟件,將在下文中進行詳細的討論。
2 軟件開發(fā)
2.1 組態(tài)軟件的設(shè)計時與運行時
組態(tài)軟件可以分為兩部分實現(xiàn),分別是設(shè)計時和運行時。運行時將解析由設(shè)計時所生成的中間文件以及組態(tài)資源文件,等同于商品化工控組態(tài)軟件的目標執(zhí)行文件。本文主要研究運行時軟件的開發(fā)與實現(xiàn)。
界面組態(tài)設(shè)計時,等同于界面組態(tài)開發(fā)環(huán)境,組態(tài)制作人員設(shè)計具體組態(tài)界面的開發(fā)環(huán)境,開發(fā)環(huán)境生成 .xml組態(tài)描述文件(中間文件),以及組態(tài)資源文件(xap,其中包含組態(tài)描述文件))和運行時。如圖1所示。
圖1 組態(tài)軟件結(jié)構(gòu)圖
2.2 組態(tài)軟件開發(fā)原理
在分析風場具體信息的基礎(chǔ)上,為了使用于遠程監(jiān)控組態(tài)軟件運行時得以實現(xiàn),在visual2008/c#平臺上建立了puremvc框架,從而使得在實際的開發(fā)過程中可以靈活的處理各種信息。puremvc是基于模型、視圖和控制器mvc模式的一種輕量級的應用框架,它對外的接口是facade,由facade來組織整個應用,其命名規(guī)范也顯而易見,可以望文生義。其中controller,model,view是管理icommand,iproxy,imediator的容器,而icommand,iproxy,imediator是應用系統(tǒng)要擴展的mvc各層的接口。
組態(tài)制作人員通過組態(tài)界面設(shè)計時設(shè)計出需要查看的風機以及具體信息,通過設(shè)計時軟件生成相應的xap包,運行時將該xap包還原成制作人員配置的界面并將數(shù)據(jù)綁定到相應的控件,從而將完整的界面呈現(xiàn)給用戶。
由設(shè)計時所生成的xap包內(nèi)包含運行時所需要的資源文件,但運行時還是針對xap包中的.xml文件進行還原。控制器主要是用于發(fā)送各種命令,用來傳遞信息,而模型主要是執(zhí)行控制器所發(fā)送的各種命令,以及對各種信息進行解析和處理。在該軟件中針對.xml文件中涉及的各種控件的事件的處理都集成在上圖所示的事件中。公共基類用于將模型中處理后的各種數(shù)據(jù)與信息傳給繼承于它的各種控件,從而使設(shè)計時的界面得以還原。組態(tài)運行時(還原)軟件結(jié)構(gòu)圖如圖2所示。
圖2 組態(tài)運行時軟件結(jié)構(gòu)圖
2.3 xml文件形式
由設(shè)計時所生成的xap包中包含了組態(tài)描述文件即config.xml文件,該文件包括了組態(tài)設(shè)計人員所布置的各種控件的基本信息。以一條表示一個風機控件信息為例:
設(shè)計時將生成的該風機控件的基本信息放在該條.xml文件的節(jié)點中,該節(jié)點又具有多條屬性(此例中指包含了一些基本屬性,開發(fā)人員可以根據(jù)需要對屬性進行添加),用于表示該風機控件的各種信息,運行時通過解析這些節(jié)點及其相應屬性從而將風機控件顯示在指定的界面上。
2.4 控制器塊的功能
控制器塊主要功能是發(fā)送命令和傳遞各種信息。例如:控制器塊通過發(fā)送開始命令將xap包的的相對路徑傳送給xml文件處理代理,同時,文件讀取命令通知文件流獲取代理,準備獲取經(jīng)xml文件處理代理處理后的文件流,數(shù)據(jù)流創(chuàng)建命令通知數(shù)據(jù)處理代理準備處理文件流中的相應數(shù)據(jù)。
控制器塊控制著整個軟件的各種行為,它傳遞的信息僅僅是一些整體的,未經(jīng)過解析的信息,而對具體信息的解析還需要交給模型塊來處理。
2.5 模型塊的功能
模型塊包含了許多用于處理各種數(shù)據(jù)的代理類。以數(shù)據(jù)處理代理為例,它將處理經(jīng)過xml文件處理代理處理后的文件流,提取該文件流中的各種信息,以合適的,自定義的數(shù)據(jù)結(jié)構(gòu)存儲下來,以便在創(chuàng)建每一個控件時可以根據(jù)自身的信息對其在界面上的位置,顏色等多種屬性進行準確的還原。例如可以通過如下的數(shù)據(jù)結(jié)構(gòu)類來存儲一條xml節(jié)點中的信息,如圖3所示。
圖3 xml文件數(shù)據(jù)節(jié)點的存儲
數(shù)據(jù)處理代理通過實例化block dmo類,調(diào)用該類中的與xml文件各個節(jié)點屬性對應的屬性來儲存節(jié)點中各個屬性的值。而將數(shù)據(jù)存儲以后就要將存儲的信息還原在界面上,如圖4所示。
圖4 運行時界面還原過程
數(shù)據(jù)處理代理首先調(diào)用自身的pasedata方法,利用blockdmo類將各個節(jié)點中的數(shù)據(jù)存儲在一個以blockdmo為存儲類型的堆棧中。再通過blockdmocreat方法,遍歷各個blockdmo類型的數(shù)據(jù),通過blockdmo自身的creat方法將自身創(chuàng)建出來。這個創(chuàng)建過程實質(zhì)上是:blockdmo通過調(diào)用公共基類,將相應的數(shù)據(jù)信息傳遞給繼承于公共基類的相應控件類,于是,這些控件類便可以利用傳入的blockdmo中的相應數(shù)據(jù)將自己給創(chuàng)建并顯示出來,同時將采集到的每臺風機所需要的各種數(shù)據(jù)綁定到.xml文件中所指定的演示這些數(shù)據(jù)的各個控件上。
3 風電場組態(tài)應用
首先,可以由設(shè)計時生成一個xap包,該包內(nèi)包含用戶需要查看的各種信息和資源,設(shè)計時接到這個xap包后,最主要的是解析該包中的.xml文件,充分利用.xml文件中的信息還原出用戶所需要利用哪種控件查看哪種信息,創(chuàng)建出相應控件,并對其所要顯示的數(shù)據(jù)進行實時更新。主要流程如圖5所示。
圖5 整體框架流程圖
由設(shè)計時生成的文件如圖6所示。
圖6
由設(shè)計時提供的文件中不僅有一個單獨的config.xml文件,在xap包中也包含了同樣一個.xml文件以便運行時進行查看和解析。由運行時對設(shè)計時生成的文件進行解析過后還原出的界面分別如圖7、圖8所示。
圖7 運行時還原風場全景圖界面
圖8 運行時還原風場詳細圖界面
4 結(jié)束語
組態(tài)軟件通過靈活的組態(tài)方式,以“搭積木式”的方式靈活配置、組合各功能模塊,為用戶提供快速構(gòu)建工業(yè)自動控制系統(tǒng)監(jiān)控功能的、通用層次的軟件工具。本文基于這種思想,實現(xiàn)了組態(tài)運行時界面的還原,并將其運用到風電場的實時監(jiān)控組態(tài)系統(tǒng),使用戶可以方便的查看風場的實時信息。
文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。