開發(fā)分布式控制系統(tǒng)可視化組態(tài)仿真軟件
摘 要:介紹了最新研制的基于分布式控制系統(tǒng)(DCS)的火電站全CRT仿真培訓(xùn)裝置中熱力系統(tǒng)控制回路的可視化組態(tài)軟件系統(tǒng)。該系統(tǒng)采用面向?qū)ο蟮拈_發(fā)手段,具有易用性、開放性和通用性等特點(diǎn)。該系統(tǒng)具有在線組態(tài)功能,可以根據(jù)組態(tài)結(jié)果直接實(shí)現(xiàn)控制策略,同時(shí)可進(jìn)行控制系統(tǒng)結(jié)構(gòu)和參數(shù)的在線修改。 關(guān)鍵詞:分布式控制系統(tǒng);火電站;仿真培訓(xùn)器;組態(tài) 引言 隨著控制系統(tǒng)和計(jì)算機(jī)技術(shù)的發(fā)展,我國(guó)電力工業(yè)的自動(dòng)化水平有了顯著提高。集散式控制系統(tǒng)(DCS)以其先進(jìn)性、靈活性、高可靠性和合理的性價(jià)比,在電力部門中廣泛應(yīng)用于電廠的運(yùn)行控制,尤其是新建電廠,已經(jīng)取消常規(guī)儀表和手動(dòng)裝置,采用了全CRT監(jiān)視和鍵盤操作。面對(duì)這一全新的課題,無(wú)論是電廠運(yùn)行人員或?qū)I(yè)工程師,還是電站仿真領(lǐng)域的研究和開發(fā)人員,都面臨著如何更好地掌握DCS控制系統(tǒng)的結(jié)構(gòu)和原理,盡早適應(yīng)這種運(yùn)行方式的問題?;贒CS系統(tǒng)的全CRT仿真機(jī),不僅與機(jī)組實(shí)際運(yùn)行方式一致,能逼真再現(xiàn)操作環(huán)境,而且將大大節(jié)省仿真機(jī)的造價(jià),具有廣闊的應(yīng)用前景。 本文以200MW火電機(jī)組全CRT仿真機(jī)的開發(fā)為背景,采用面向?qū)ο蟮募夹g(shù),開發(fā)了基于Windows平臺(tái)的控制系統(tǒng)圖形組態(tài)系統(tǒng)。該系統(tǒng)在工程師站上運(yùn)行,工程師完成控制回路的組態(tài)后,系統(tǒng)將自動(dòng)生成反映被組態(tài)的控制回路控制規(guī)律的源代碼,源代碼經(jīng)編譯后即可下裝到操作站(下位機(jī)),代替原有控制代碼,直接參與運(yùn)行或進(jìn)行調(diào)試。 由于仿真系統(tǒng)的特殊性,本文所說(shuō)的組態(tài)與實(shí)際DCS中的組態(tài)有所不同。在這里,組態(tài)主要是指軟件組態(tài),尤指組態(tài)軟件中最重要的部分-控制算法組態(tài),即對(duì)過程點(diǎn)特性、回路控制策略以及順序控制等進(jìn)行的組態(tài);而不包括對(duì)系統(tǒng)硬件配置和I/O點(diǎn)等硬件的組態(tài)。 1 軟件設(shè)計(jì)的特點(diǎn) 1.1 采用面向?qū)ο蟮姆椒? 面向?qū)ο蟮姆椒ㄊ且环N新的程序設(shè)計(jì)思想和認(rèn)知方法學(xué)。其基本特征為:信息封裝、數(shù)據(jù)抽象、動(dòng)態(tài)連接和繼承。面向?qū)ο蟮某绦蚓哂心K化的特點(diǎn),具備表達(dá)廣泛概念、默認(rèn)值表達(dá)和代碼復(fù)用的能力。 在軟件設(shè)計(jì)時(shí),采用了面向?qū)ο蠓椒āR环矫?,將DCS中常用的控制過程分解為許多功能塊,這些功能塊具備如輸入轉(zhuǎn)換、PID調(diào)節(jié)等等最基本的功能,功能塊與外界只存在接口數(shù)據(jù)的交換,通過調(diào)用這些功能塊就能搭建起自己的控制回路;另一方面,使用圖形化的組態(tài)平臺(tái)進(jìn)行控制策略的組態(tài)和數(shù)據(jù)庫(kù)的管理,使控制策略的構(gòu)造能夠采用面向?qū)ο蟮墓δ軌K組合,具備了圖標(biāo)驅(qū)動(dòng)(icondriven)的功能。 1.2 基于Windows95平臺(tái) 組態(tài)軟件的設(shè)計(jì),應(yīng)該始終堅(jiān)持“計(jì)算機(jī)適應(yīng)人”的原則,因此,在軟件設(shè)計(jì)時(shí),采用了目前通用的Windows95平臺(tái)。這樣的設(shè)計(jì),不僅使人機(jī)界面更加友好,而且能夠更好地利用Windows系統(tǒng)的資源,使組態(tài)軟件的功能更為強(qiáng)大。 在Windows95平臺(tái)上,本組態(tài)軟件能夠進(jìn)行在線/離線組態(tài)、能進(jìn)行控制系統(tǒng)的調(diào)試和診斷、支持功能塊組態(tài)、梯形邏輯組態(tài)、支持全局變量,從而實(shí)現(xiàn)站間通信和不同畫面的點(diǎn)與點(diǎn)之間的連接。 1.3 采用客戶機(jī)/服務(wù)器(Client/Server)模式 組態(tài)軟件是基于系統(tǒng)平臺(tái)的大型應(yīng)用軟件,它集控制技術(shù)、人機(jī)界面技術(shù)、圖形技術(shù)、數(shù)據(jù)庫(kù)技術(shù)、網(wǎng)絡(luò)技術(shù)于一身,包含動(dòng)態(tài)顯示、報(bào)警、趨勢(shì)、控制策略、網(wǎng)絡(luò)通訊等組件。在軟件設(shè)計(jì)中,采用了目前流行的Client/Server體系結(jié)構(gòu),將仿真裝置中所用到的組態(tài)功能軟件組織起來(lái),從而使組態(tài)軟件更具適應(yīng)性和靈活性。 Server:即圖1中的服務(wù)器,進(jìn)行實(shí)時(shí)服務(wù),包括與模型機(jī)、操作員臺(tái)和工程師站的數(shù)據(jù)交換、執(zhí)行控制策略算法、對(duì)實(shí)時(shí)數(shù)據(jù)庫(kù)的管理。 Client:在圖1中包括操作員站和工程師站。在操作員站上進(jìn)行報(bào)警顯示、實(shí)時(shí)和歷史趨勢(shì)顯示;在工程師站上進(jìn)行增加測(cè)點(diǎn)、控制回路圖的繪制、控制源程序的編譯和下裝。在Client端,圖形的動(dòng)態(tài)顯示都能滿足實(shí)時(shí)性的要求,而且,在工程師站上已經(jīng)預(yù)備了OLE功能,從而能夠?qū)崿F(xiàn)程序的編譯鏈接操作以及組態(tài)文件的下裝。 2 組態(tài)系統(tǒng)結(jié)構(gòu) 控制回路組態(tài)系統(tǒng)的結(jié)構(gòu)如圖2所示。組態(tài)人員通過組態(tài)軟件作圖系統(tǒng)生成組態(tài)回路圖,進(jìn)而由模型生成系統(tǒng)將其與控制模型的功能塊庫(kù)相結(jié)合,生成被組態(tài)控制系統(tǒng)的源程序,下裝以后參與仿真模型的運(yùn)行,運(yùn)行結(jié)果反饋給組態(tài)人員,實(shí)現(xiàn)在線組態(tài)。 2.1 功能塊模型 依據(jù)模塊化建模的思想,各控制環(huán)節(jié)劃分為一個(gè)個(gè)具有特定功能的子塊,采用FORTRAN90編程,使這些子塊與實(shí)際環(huán)節(jié)具有同樣的動(dòng)態(tài)特性,能實(shí)現(xiàn)與實(shí)際環(huán)節(jié)同樣的功能。本系統(tǒng)參考美國(guó)電力研究院EPRI提出的系統(tǒng)分解原則,依據(jù)實(shí)際控制系統(tǒng)的構(gòu)成特點(diǎn),以實(shí)際系統(tǒng)物理結(jié)構(gòu)為基礎(chǔ)、以功能特性為參照,將控制系統(tǒng)的環(huán)節(jié)劃分為一百余個(gè)模塊。這樣,全部的仿真模塊(或稱功能塊)就構(gòu)成了控制系統(tǒng)仿真模塊庫(kù),本文稱其為功能塊庫(kù)。另外,為這些功能塊制作了BMP文件(SAMA圖),以圖形的方式表示功能塊。在這里,每個(gè)功能塊的圖形表示稱為圖元。 2.2 系統(tǒng)設(shè)計(jì) 組態(tài)支撐系統(tǒng)采用面向?qū)ο蟮脑O(shè)計(jì)思想,在界面上遵循了一致性和直接性的原則,采用目前流行的Windows95平臺(tái)風(fēng)格,易于理解,便于操作,窗口調(diào)用靈活。各控制環(huán)節(jié)都以圖形的形式表現(xiàn),且?guī)в袆?dòng)態(tài)提示,非常直觀。 在組態(tài)方式的設(shè)計(jì)上,采用圖形組態(tài)的方法。與填表式組態(tài)方法相比,圖形組態(tài)更加形象,能夠更直觀得體現(xiàn)工程師的組態(tài)思想。組態(tài)工程師只需按照自己的控制策略,選用功能塊庫(kù)中的功能塊,按照搭積木的方式搭接起該回路的控制回路圖,即可自動(dòng)生成該回路的控制源程序。這樣,組態(tài)工程師就可以集中精力于如何建立、優(yōu)化自己的控制策略,而不用去理會(huì)控制以外的東西。顯然,這樣的組態(tài)方式從根本上脫離了實(shí)際DCS的限制,使用時(shí)不必拘泥于某種具體類型的DCS系統(tǒng)的要求進(jìn)行控制回路的組態(tài),因此可以應(yīng)用于仿真不同類型DCS系統(tǒng)和仿真培訓(xùn)裝置中。 在組態(tài)時(shí),工程師在功能塊列表區(qū)中選中所需要的功能塊的圖元,賦之以唯一的標(biāo)識(shí),然后通過圖元的接口將有關(guān)圖元連接起來(lái),搭接起自己的控制回路圖,輸入必要的控制參數(shù),即可自動(dòng)生成該回路的存儲(chǔ)文件,生成控制回路源程序。 對(duì)組態(tài)回路中圖形信息的存儲(chǔ),采用數(shù)據(jù)庫(kù)解決。這些數(shù)據(jù)庫(kù)分為圖元信息庫(kù)和組態(tài)回路信息庫(kù)兩類。圖元信息庫(kù)是一個(gè)資源庫(kù),存儲(chǔ)圖元在資源文件中的位圖名稱、接口坐標(biāo)等等一些固定的信息,供組態(tài)時(shí)產(chǎn)生回路圖。組態(tài)回路信息庫(kù)是一組動(dòng)態(tài)數(shù)據(jù)庫(kù),各控制回路互不相同,以一個(gè)控制回路為單位,建立一組關(guān)于該回路中各模塊及其連接關(guān)系拓樸結(jié)構(gòu)的數(shù)據(jù)庫(kù)。借助這些庫(kù)文件,首先,能夠調(diào)出本回路的圖形信息,重繪回路圖;其次,能夠檢索到某圖元對(duì)應(yīng)模塊的輸入輸出變量、控制參數(shù)和自身屬性等信息;第三,為了體現(xiàn)回路圖中數(shù)據(jù)流的流動(dòng)過程,將各圖元依其組態(tài)時(shí)連接的順序自動(dòng)編號(hào),依據(jù)該編號(hào),調(diào)用它所屬的模塊,就可以在生成源代碼時(shí)實(shí)現(xiàn)順序調(diào)用,從而真實(shí)體現(xiàn)控制流程。 考慮到本軟件中功能塊的數(shù)據(jù)傳輸?shù)母袷?,?duì)于圖形化組態(tài)平臺(tái)來(lái)說(shuō),關(guān)鍵是如何根據(jù)控制回路圖的拓?fù)浣Y(jié)構(gòu)建立起控制源程序的數(shù)據(jù)流。這里,采用流向名來(lái)解決這一問題。用戶在連線時(shí),系統(tǒng)直接根據(jù)連線上下游圖元的接口標(biāo)識(shí)自動(dòng)產(chǎn)生連線所代表的變量的流向名,使圖元的接口與流向名發(fā)生聯(lián)系,生成源程序時(shí),直接用流向名代替模塊中的變量名即可。 為了將產(chǎn)生實(shí)際參與運(yùn)行的控制程序,要對(duì)根據(jù)組態(tài)圖產(chǎn)生的控制源程序進(jìn)行編譯和下裝,采用OLE技術(shù),以DLL的方式生成控制程序,可以隨時(shí)下裝,并能夠進(jìn)行在線的修改。 3 組態(tài)支撐系統(tǒng)特點(diǎn) 組態(tài)系統(tǒng)采用Delphi4.0作為開發(fā)語(yǔ)言。Delphi以其基于窗口和面向?qū)ο蟮姆椒?、高效的開發(fā)速度、可視化的開發(fā)環(huán)境、強(qiáng)大的數(shù)據(jù)庫(kù)支持,并與Windows緊密結(jié)合的特點(diǎn),使用戶能在Windows95和WindowsNT平臺(tái)上方便地開發(fā)32位應(yīng)用程序。Delphi提供的許多面向?qū)ο?Object-Oriented)的結(jié)構(gòu)化的組件,使用戶能很方便地生成應(yīng)用程序;而且,組件結(jié)構(gòu)具有徹底的可擴(kuò)展性,可以輕松地生成自己的組件并把它加入到開發(fā)環(huán)境中。Delphi還內(nèi)置了數(shù)據(jù)庫(kù)引擎(BDE),提供高性能的可伸縮數(shù)據(jù)庫(kù)結(jié)構(gòu)技術(shù)和對(duì)數(shù)據(jù)庫(kù)的控制,Delphi對(duì)數(shù)據(jù)庫(kù)的強(qiáng)大支持使組態(tài)工作變得更為順利。 3.1 組態(tài)界面 系統(tǒng)內(nèi)核包括作圖系統(tǒng)、控制參數(shù)組態(tài)系統(tǒng)、編譯系統(tǒng)。 3.2 圖形信息 3.2.1 圖元信息庫(kù) 圖元信息庫(kù)用于記錄各圖元的靜態(tài)信息,以供在作圖時(shí)繪制調(diào)用的圖元以及進(jìn)行連線。它的字段包括有: 圖元在本數(shù)據(jù)庫(kù)中的序號(hào):UnitSN; 圖元代表的功能塊的漢字名稱:UnitName; 圖元的位圖在資源中的名稱:BMPName; 圖元的起點(diǎn)、終點(diǎn)坐標(biāo):StartX,StartY; 圖元各輸入接口的相對(duì)坐標(biāo):InPortX,InPortY; 圖元各輸出接口的相對(duì)坐標(biāo):OutPortX,OutPortY; 3.2.2 圖元資源文件 在組態(tài)軟件中,對(duì)各圖元的調(diào)用應(yīng)該是獨(dú)立的,動(dòng)態(tài)的。采用資源的概念來(lái)解決這一問題:把所有圖元的BMP文件包裝在一個(gè)資源文件中,將應(yīng)用程序?qū)蝹€(gè)BMP文件的直接調(diào)用轉(zhuǎn)化為在資源文件中對(duì)相應(yīng)位圖的調(diào)用,這樣就避免了在應(yīng)用程序系統(tǒng)中保留太多圖形文件所帶來(lái)的不便。 3.2.3 組態(tài)回路信息庫(kù) 當(dāng)每次對(duì)一個(gè)回路進(jìn)行組態(tài)時(shí),就產(chǎn)生一組與該回路對(duì)應(yīng)的組態(tài)信息數(shù)據(jù)庫(kù)。組態(tài)回路信息庫(kù)分為回路圖元信息庫(kù)和回路連線信息庫(kù)兩類。依據(jù)這些庫(kù)文件中的信息,能夠在下次打開該回路時(shí)進(jìn)行重繪。 這些數(shù)據(jù)庫(kù)包含的字段有: 圖元類數(shù)據(jù)庫(kù): .圖元在資源庫(kù)UnitInfo.DB中的序號(hào):UnitSN; .圖元在本回路圖中的序號(hào):ShapeNo; .用戶定義的圖元的標(biāo)識(shí):UnitID; .圖元在組態(tài)區(qū)內(nèi)的坐標(biāo): StartPX、StartPY、EndPX、EndPY; .圖元各輸入接口在組態(tài)區(qū)內(nèi)的坐標(biāo): InPortX、InPortY; .圖元各輸出接口在組態(tài)區(qū)內(nèi)的坐標(biāo): OutPortX、OutPortY; .模塊各輸入量的流向名:StmIn; .模塊各輸出量的流向名:StmOut; .各輸入接口連線名:InLineNo; .各輸出接口連線名:OutLineNo; 連線類數(shù)據(jù)庫(kù): .連線在本回路中的序號(hào):LineNo; .連線上游圖元在本回路圖中的序號(hào):Shape1No; .連線下游圖元在本回路圖中的序號(hào):Shape2No; .連線所接的上游圖元輸出接口號(hào):Shap1P; .連線所接的下游圖元輸入接口號(hào):Shap2P; .本連線所代表的流向名:StmID。 3.3 組態(tài)圖拓樸結(jié)構(gòu)的排序 組態(tài)系統(tǒng)能夠根據(jù)組態(tài)圖自動(dòng)生成反映回路控制規(guī)律的源程序。前已敘及,組態(tài)圖拓樸結(jié)構(gòu)的確定主要以圖元各接口的流向名作為依據(jù),以此可決定產(chǎn)生控制回路源程序的次序。由于DCS是采樣控制系統(tǒng),其控制程序的執(zhí)行由采樣周期決定,如果不考慮功能塊的計(jì)算順序,會(huì)造成處理過程的遲滯,從而影響控制系統(tǒng)的性能指標(biāo)。因此在分析組態(tài)系統(tǒng)拓樸結(jié)構(gòu)時(shí)必須待別考慮其中含有循環(huán)有向子回路的問題。 本組態(tài)系統(tǒng)采用Johnson算法的思想來(lái)解決循環(huán)有向子回路的排序,具體實(shí)施過程為:以當(dāng)前正在進(jìn)行拓樸結(jié)構(gòu)分析的模塊接口作探索出發(fā)點(diǎn),用該接口的連線作為索引,沿該連線數(shù)據(jù)流方向深入,每深入一步,即將經(jīng)過的模塊接口標(biāo)識(shí)記入數(shù)據(jù)庫(kù),如果某一步達(dá)到了原出發(fā)點(diǎn),則形成回路。因?yàn)樵谘h(huán)回路中,數(shù)據(jù)流在某個(gè)采用周期內(nèi)不存在時(shí)間序列上的優(yōu)先次序,因此我們將回路人為斷開,并按上述索引的順序產(chǎn)生反映該循環(huán)回路特性的源程序。需要注意的是,該有向循環(huán)回路與不屬于該回路的其它部分則存在先后順序關(guān)系,這正是必須特別處理循環(huán)有向回路的原因。 4 組態(tài)軟件的主要功能 4.1 組態(tài)界面的功能 組態(tài)系統(tǒng)的用戶界面具有標(biāo)準(zhǔn)Windows95圖形應(yīng)用程序的基本功能,如新建組態(tài)圖、打開已有的組態(tài)圖、保存組態(tài)圖、打印組態(tài)圖等文件操作;對(duì)組 |