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