技術(shù)頻道

      風(fēng)電場(chǎng)組態(tài)監(jiān)控系統(tǒng)運(yùn)行時(shí)的應(yīng)用研究

      1 引言

        所謂的組態(tài)(configuration)技術(shù)就是對(duì)于不同但類似的應(yīng)用對(duì)象不需要重新設(shè)計(jì)和編程,只需根據(jù)系統(tǒng)分析,應(yīng)用面向過程的組態(tài)工具(軟件包)進(jìn)行簡(jiǎn)單的配置和定義或編寫簡(jiǎn)單的組態(tài)語(yǔ)言,即可設(shè)計(jì)完成一個(gè)特定功能的新系統(tǒng)或修改系統(tǒng)的功能。

        風(fēng)電場(chǎng)組態(tài)監(jiān)控系統(tǒng)是用來對(duì)風(fēng)電場(chǎng)內(nèi)各臺(tái)所需查看的風(fēng)機(jī)的具體信息進(jìn)行監(jiān)視的系統(tǒng)。風(fēng)力發(fā)電是當(dāng)今世界新能源開發(fā)中技術(shù)最成熟、最具有大規(guī)模和商業(yè)化發(fā)展前景的發(fā)電方式。隨著風(fēng)場(chǎng)個(gè)數(shù)的增加,單個(gè)風(fēng)場(chǎng)裝機(jī)容量的增加,對(duì)風(fēng)場(chǎng)內(nèi)每個(gè)風(fēng)機(jī)的控制和管理的難度也在增加,使得傳統(tǒng)的工業(yè)控制軟件已無法滿足用戶的各種需求,此時(shí)就需要一種軟件,它是在自動(dòng)控制系統(tǒng)監(jiān)控層一級(jí)的軟件平臺(tái)和開發(fā)環(huán)境,使用靈活的組態(tài)方式,為用戶提供快速構(gòu)建風(fēng)場(chǎng)自動(dòng)控制系統(tǒng)監(jiān)控功能的、通用層次的軟件工具,組態(tài)軟件就應(yīng)運(yùn)而生。

        本文在調(diào)研了風(fēng)電場(chǎng)的基本信息的基礎(chǔ)上,開發(fā)了基于風(fēng)電場(chǎng)的組態(tài)監(jiān)控系統(tǒng)運(yùn)行時(shí)軟件,運(yùn)行時(shí)軟件是用來還原組態(tài)成品的軟件,將在下文中進(jìn)行詳細(xì)的討論。

      2 軟件開發(fā)

        2.1 組態(tài)軟件的設(shè)計(jì)時(shí)與運(yùn)行時(shí)


        組態(tài)軟件可以分為兩部分實(shí)現(xiàn),分別是設(shè)計(jì)時(shí)和運(yùn)行時(shí)。運(yùn)行時(shí)將解析由設(shè)計(jì)時(shí)所生成的中間文件以及組態(tài)資源文件,等同于商品化工控組態(tài)軟件的目標(biāo)執(zhí)行文件。本文主要研究運(yùn)行時(shí)軟件的開發(fā)與實(shí)現(xiàn)。

        界面組態(tài)設(shè)計(jì)時(shí),等同于界面組態(tài)開發(fā)環(huán)境,組態(tài)制作人員設(shè)計(jì)具體組態(tài)界面的開發(fā)環(huán)境,開發(fā)環(huán)境生成 .xml組態(tài)描述文件(中間文件),以及組態(tài)資源文件(xap,其中包含組態(tài)描述文件))和運(yùn)行時(shí)。如圖1所示。

      圖1 組態(tài)軟件結(jié)構(gòu)圖

      2.2 組態(tài)軟件開發(fā)原理

        在分析風(fēng)場(chǎng)具體信息的基礎(chǔ)上,為了使用于遠(yuǎn)程監(jiān)控組態(tài)軟件運(yùn)行時(shí)得以實(shí)現(xiàn),在visual2008/c#平臺(tái)上建立了puremvc框架,從而使得在實(shí)際的開發(fā)過程中可以靈活的處理各種信息。puremvc是基于模型、視圖和控制器mvc模式的一種輕量級(jí)的應(yīng)用框架,它對(duì)外的接口是facade,由facade來組織整個(gè)應(yīng)用,其命名規(guī)范也顯而易見,可以望文生義。其中controller,model,view是管理icommand,iproxy,imediator的容器,而icommand,iproxy,imediator是應(yīng)用系統(tǒng)要擴(kuò)展的mvc各層的接口。

        組態(tài)制作人員通過組態(tài)界面設(shè)計(jì)時(shí)設(shè)計(jì)出需要查看的風(fēng)機(jī)以及具體信息,通過設(shè)計(jì)時(shí)軟件生成相應(yīng)的xap包,運(yùn)行時(shí)將該xap包還原成制作人員配置的界面并將數(shù)據(jù)綁定到相應(yīng)的控件,從而將完整的界面呈現(xiàn)給用戶。

        由設(shè)計(jì)時(shí)所生成的xap包內(nèi)包含運(yùn)行時(shí)所需要的資源文件,但運(yùn)行時(shí)還是針對(duì)xap包中的.xml文件進(jìn)行還原。控制器主要是用于發(fā)送各種命令,用來傳遞信息,而模型主要是執(zhí)行控制器所發(fā)送的各種命令,以及對(duì)各種信息進(jìn)行解析和處理。在該軟件中針對(duì).xml文件中涉及的各種控件的事件的處理都集成在上圖所示的事件中。公共基類用于將模型中處理后的各種數(shù)據(jù)與信息傳給繼承于它的各種控件,從而使設(shè)計(jì)時(shí)的界面得以還原。組態(tài)運(yùn)行時(shí)(還原)軟件結(jié)構(gòu)圖如圖2所示。

      圖2 組態(tài)運(yùn)行時(shí)軟件結(jié)構(gòu)圖


      2.3 xml文件形式

        由設(shè)計(jì)時(shí)所生成的xap包中包含了組態(tài)描述文件即config.xml文件,該文件包括了組態(tài)設(shè)計(jì)人員所布置的各種控件的基本信息。以一條表示一個(gè)風(fēng)機(jī)控件信息為例:

        設(shè)計(jì)時(shí)將生成的該風(fēng)機(jī)控件的基本信息放在該條.xml文件的節(jié)點(diǎn)中,該節(jié)點(diǎn)又具有多條屬性(此例中指包含了一些基本屬性,開發(fā)人員可以根據(jù)需要對(duì)屬性進(jìn)行添加),用于表示該風(fēng)機(jī)控件的各種信息,運(yùn)行時(shí)通過解析這些節(jié)點(diǎn)及其相應(yīng)屬性從而將風(fēng)機(jī)控件顯示在指定的界面上。

        2.4 控制器塊的功能

        控制器塊主要功能是發(fā)送命令和傳遞各種信息。例如:控制器塊通過發(fā)送開始命令將xap包的的相對(duì)路徑傳送給xml文件處理代理,同時(shí),文件讀取命令通知文件流獲取代理,準(zhǔn)備獲取經(jīng)xml文件處理代理處理后的文件流,數(shù)據(jù)流創(chuàng)建命令通知數(shù)據(jù)處理代理準(zhǔn)備處理文件流中的相應(yīng)數(shù)據(jù)。

        控制器塊控制著整個(gè)軟件的各種行為,它傳遞的信息僅僅是一些整體的,未經(jīng)過解析的信息,而對(duì)具體信息的解析還需要交給模型塊來處理。

      2.5 模型塊的功能

        模型塊包含了許多用于處理各種數(shù)據(jù)的代理類。以數(shù)據(jù)處理代理為例,它將處理經(jīng)過xml文件處理代理處理后的文件流,提取該文件流中的各種信息,以合適的,自定義的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)下來,以便在創(chuàng)建每一個(gè)控件時(shí)可以根據(jù)自身的信息對(duì)其在界面上的位置,顏色等多種屬性進(jìn)行準(zhǔn)確的還原。例如可以通過如下的數(shù)據(jù)結(jié)構(gòu)類來存儲(chǔ)一條xml節(jié)點(diǎn)中的信息,如圖3所示。

      圖3 xml文件數(shù)據(jù)節(jié)點(diǎn)的存儲(chǔ)


      數(shù)據(jù)處理代理通過實(shí)例化block dmo類,調(diào)用該類中的與xml文件各個(gè)節(jié)點(diǎn)屬性對(duì)應(yīng)的屬性來儲(chǔ)存節(jié)點(diǎn)中各個(gè)屬性的值。而將數(shù)據(jù)存儲(chǔ)以后就要將存儲(chǔ)的信息還原在界面上,如圖4所示。

      圖4 運(yùn)行時(shí)界面還原過程


      數(shù)據(jù)處理代理首先調(diào)用自身的pasedata方法,利用blockdmo類將各個(gè)節(jié)點(diǎn)中的數(shù)據(jù)存儲(chǔ)在一個(gè)以blockdmo為存儲(chǔ)類型的堆棧中。再通過blockdmocreat方法,遍歷各個(gè)blockdmo類型的數(shù)據(jù),通過blockdmo自身的creat方法將自身創(chuàng)建出來。這個(gè)創(chuàng)建過程實(shí)質(zhì)上是:blockdmo通過調(diào)用公共基類,將相應(yīng)的數(shù)據(jù)信息傳遞給繼承于公共基類的相應(yīng)控件類,于是,這些控件類便可以利用傳入的blockdmo中的相應(yīng)數(shù)據(jù)將自己給創(chuàng)建并顯示出來,同時(shí)將采集到的每臺(tái)風(fēng)機(jī)所需要的各種數(shù)據(jù)綁定到.xml文件中所指定的演示這些數(shù)據(jù)的各個(gè)控件上。

      3 風(fēng)電場(chǎng)組態(tài)應(yīng)用

        首先,可以由設(shè)計(jì)時(shí)生成一個(gè)xap包,該包內(nèi)包含用戶需要查看的各種信息和資源,設(shè)計(jì)時(shí)接到這個(gè)xap包后,最主要的是解析該包中的.xml文件,充分利用.xml文件中的信息還原出用戶所需要利用哪種控件查看哪種信息,創(chuàng)建出相應(yīng)控件,并對(duì)其所要顯示的數(shù)據(jù)進(jìn)行實(shí)時(shí)更新。主要流程如圖5所示。

      圖5 整體框架流程圖

      由設(shè)計(jì)時(shí)生成的文件如圖6所示。

      圖6


      由設(shè)計(jì)時(shí)提供的文件中不僅有一個(gè)單獨(dú)的config.xml文件,在xap包中也包含了同樣一個(gè).xml文件以便運(yùn)行時(shí)進(jìn)行查看和解析。由運(yùn)行時(shí)對(duì)設(shè)計(jì)時(shí)生成的文件進(jìn)行解析過后還原出的界面分別如圖7、圖8所示。

      圖7 運(yùn)行時(shí)還原風(fēng)場(chǎng)全景圖界面

      圖8 運(yùn)行時(shí)還原風(fēng)場(chǎng)詳細(xì)圖界面


      4 結(jié)束語(yǔ)

      組態(tài)軟件通過靈活的組態(tài)方式,以“搭積木式”的方式靈活配置、組合各功能模塊,為用戶提供快速構(gòu)建工業(yè)自動(dòng)控制系統(tǒng)監(jiān)控功能的、通用層次的軟件工具。本文基于這種思想,實(shí)現(xiàn)了組態(tài)運(yùn)行時(shí)界面的還原,并將其運(yùn)用到風(fēng)電場(chǎng)的實(shí)時(shí)監(jiān)控組態(tài)系統(tǒng),使用戶可以方便的查看風(fēng)場(chǎng)的實(shí)時(shí)信息。


      文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。

      主站蜘蛛池模板: 精品视频一区二区三区免费| 国产日韩精品一区二区在线观看播放| 亚洲av无码一区二区三区乱子伦| 国产美女口爆吞精一区二区| 波多野结衣一区二区三区高清av| 鲁大师成人一区二区三区| 一区二区三区在线观看| 免费一本色道久久一区| 色欲AV无码一区二区三区| 亚洲片国产一区一级在线观看| 久久国产精品免费一区二区三区| 三上悠亚精品一区二区久久| 无码一区二区三区视频| 国产精品久久久久久麻豆一区| 精品国产一区二区麻豆| 一区免费在线观看| 亚洲国产一区在线| 国产精品视频免费一区二区三区| 国产精品自在拍一区二区不卡| 国产免费一区二区视频| 无码精品一区二区三区| 国产成人精品久久一区二区三区av| 久久精品视频一区二区三区 | 国产视频福利一区| 亚洲av成人一区二区三区在线观看| 国产精品日本一区二区在线播放| 97精品一区二区视频在线观看| 亚洲国产av一区二区三区| 亚洲福利视频一区二区三区| 一区二区精品视频| 影音先锋中文无码一区| 制服中文字幕一区二区| 亚洲AV无码一区二区三区鸳鸯影院 | 亚洲午夜日韩高清一区| 亚洲午夜精品一区二区公牛电影院| 免费人人潮人人爽一区二区| 末成年女A∨片一区二区| 一区二区三区免费高清视频| 久久精品国产AV一区二区三区| 亚洲国产综合精品一区在线播放| 亚洲国产精品一区二区三区在线观看 |