林翀,陳昊
(杭州華電下沙熱電有限公司,杭州 310018)
基于VB.NET的電氣一次模擬屏軟件設(shè)計(jì)
林翀,陳昊
(杭州華電下沙熱電有限公司,杭州 310018)
因安全評價(jià)要求,電廠需要具備電氣一次模擬屏供運(yùn)行人員模擬操作。目前電廠的電氣一次模擬屏主要以馬賽克拼接板面為主,體積龐大,價(jià)格高昂,不利于日后的維護(hù)?;赩isual Basic.NET自行開發(fā)了電氣一次模擬屏軟件,闡述了開發(fā)的全過程,并提出了日后升級的方向。
Visual Basic.NET;動(dòng)態(tài)鏈接庫;可擴(kuò)展標(biāo)記語言;模擬屏
電氣誤操作是威脅電廠及電網(wǎng)安全運(yùn)行的頻發(fā)性事故[1],可能造成設(shè)備停電、損壞,嚴(yán)重時(shí)可能造成人身傷亡事故。防止電氣誤操作是電氣安全操作永恒的課題,在實(shí)際操作前進(jìn)行模擬操作是防止電氣誤操作的有力措施之一。
目前市場上的電氣一次模擬屏[2]主要有普通馬賽克模擬屏、發(fā)光帶模擬屏及防誤操作模擬屏等,這些模擬屏由馬賽克拼接板面、雙色發(fā)光二極管(LED)燈光及防誤報(bào)警設(shè)備組成,體積龐大,造價(jià)高昂。杭州華電下沙熱電有限公司為燃?xì)廨啓C(jī)緊湊型電廠,集控室較小,體積龐大的模擬屏不易安置,且價(jià)格過高,筆者基于Visual Basic.NET(以下簡稱VB.NET)軟件自主開發(fā)了電氣一次模擬圖(以下簡稱模擬圖),可在電腦上直接操作。該模擬圖不僅可以顯示電氣設(shè)備當(dāng)前的運(yùn)行狀態(tài),方便操作者把握全局,還可以讓操作者模擬操作,了解操作全過程,防止因不熟悉操作對象而發(fā)生電氣誤操作。
模擬屏軟件結(jié)構(gòu)如圖1所示,主要由4部分組成:斷路器等公共控件,數(shù)據(jù)統(tǒng)計(jì)功能,保存、讀取等功能,主畫面繪制。整個(gè)系統(tǒng)以公共控件為核心,通過主畫面調(diào)用公共控件,再經(jīng)由保存、讀取、數(shù)據(jù)統(tǒng)計(jì)等輔助功能形成一個(gè)完整的整體。
圖1 模擬屏總體結(jié)構(gòu)
2.1 VB.NET
本軟件采用VB.NET 2010編程語言編寫完成,目前VB.NET編程語言軟件的較新版本為Visual Basic 2010,是Visual Studio 2010環(huán)境支持的幾種語言之一。
選用VB.NET的優(yōu)勢主要有以下3點(diǎn)[3]:(1)具有優(yōu)秀的Windows界面功能;(2)VB.NET可自行開發(fā)控件庫,且控件使用方便,可以提高開發(fā)界面的使用效率,開發(fā)的界面美觀大方;(3)VB.NET在圖形處理方面具有較強(qiáng)的功能,可以靈活運(yùn)用圖形、動(dòng)畫。
2.2 動(dòng)態(tài)鏈接庫(DLL)
DLL可允許多個(gè)程序同時(shí)使用代碼和數(shù)據(jù),其他程序都可以使用DLL所包含的功能,這有助于避免代碼重用,促進(jìn)內(nèi)存的有效使用。通過使用DLL,程序可以實(shí)現(xiàn)模塊化,使系統(tǒng)由相對獨(dú)立的組件組成,本文就是由各公共控件生成DLL文件,再將該DLL文件導(dǎo)入到模擬圖主程序中,直接調(diào)用DLL,方便軟件的編程。
2.3 可擴(kuò)展標(biāo)記語言(XML)
XML是一種用于應(yīng)用程序間交換數(shù)據(jù)的語言。本文使用XML作為軟件的儲(chǔ)存單元,與Access,SQL Server等數(shù)據(jù)庫相比,可以減輕應(yīng)用程序的負(fù)擔(dān),不需要建立和維護(hù)數(shù)據(jù)庫,可以方便地儲(chǔ)存和讀取文件[4]。
3.1 公共控件DLL的設(shè)計(jì)
模擬屏有諸多開關(guān),經(jīng)過統(tǒng)計(jì)及整理后,可將所有開關(guān)分成3類:斷路器,隔離開關(guān),接地閘刀。開關(guān)又分為4種狀態(tài):運(yùn)行,熱備用,冷備用,檢修。針對這一特點(diǎn),簡化設(shè)計(jì)思路,將相同類型的開關(guān)設(shè)計(jì)成公共控件,在繪制模擬圖時(shí),即可直接調(diào)用。
以斷路器為例,斷路器編程主要代碼如下。
Public Sub Chage_State() ′4個(gè)狀態(tài)下,斷路器圖標(biāo)用不同的顏色加以區(qū)分
斷路器插件完成后對程序進(jìn)行測試。通過對斷路器屬性進(jìn)行設(shè)置,可以選擇隱藏或顯示連接處線條,還可以調(diào)整鏈接線條的顏色,如圖2所示。
圖2 斷路器控件測試畫面
斷路器狀態(tài)選擇界面,如圖3所示。通過選擇畫面,可以選擇開關(guān)的狀態(tài)。
圖3 開關(guān)狀態(tài)選擇
相關(guān)選擇主要程序如下。
當(dāng)斷路器公共控件完成后,即可調(diào)試,封裝成DLL文件,并可在bin-debug文件中找到Switch_ 4T_a2.dll文件。
3.2 模擬圖繪制
斷路器DLL制作完成后,將DLL導(dǎo)入到主程序的.NET Framework中。導(dǎo)入完成后,該DLL文件在工具欄-對畫框選項(xiàng)中顯示。繪圖時(shí),直接拖到主畫面中即可,且無需再對其進(jìn)行編程,可直接使用。
隔離開關(guān)、接地閘刀DLL控件的制作及導(dǎo)入過程與斷路器相似,在此不再作介紹。
按照電氣一次接線圖對模屏圖進(jìn)行排版和繪制,繪制完成后如圖4所示。
圖4 繪制完成后的模擬圖
3.3 輔助功能實(shí)現(xiàn)
模擬圖繪制完成后再對其相應(yīng)的模塊進(jìn)行編程,從而實(shí)現(xiàn)模擬圖完整的功能。
3.3.1 保存狀態(tài)功能的實(shí)現(xiàn)
本軟件以XML文件的格式進(jìn)行保存及讀取,保存的相關(guān)程序如下。
當(dāng)各開關(guān)按正常運(yùn)行方式選擇運(yùn)行狀態(tài)后,保存當(dāng)時(shí)的運(yùn)行狀態(tài),保存畫面如圖5所示。
圖5 保存當(dāng)前開關(guān)狀態(tài)界面
3.3.2 讀取狀態(tài)功能的實(shí)現(xiàn)
讀取功能只需讀取保存時(shí)的狀態(tài)即可,相關(guān)主程序如下。
實(shí)際的圖形如圖6所示,可以選擇讀取之前保存的文件,主畫面上的各開關(guān)狀態(tài)以保存時(shí)的狀態(tài)顯示,方便運(yùn)行人員調(diào)取各種運(yùn)行狀態(tài)下的模擬操作。
圖6 讀取之前保存的各開關(guān)狀態(tài)畫面
3.3.3 各開關(guān)狀態(tài)數(shù)據(jù)統(tǒng)計(jì)
這部分主要功能是在軟件運(yùn)行期間,對3類開關(guān)4種狀態(tài)的數(shù)量進(jìn)行實(shí)時(shí)顯示,特別是接地開關(guān)的數(shù)量,直觀地反映給模擬操作前的運(yùn)行人員,可以有效防止帶接地線合閘的誤操作。開關(guān)數(shù)據(jù)統(tǒng)計(jì)模塊主要是根據(jù)計(jì)時(shí)模塊來實(shí)現(xiàn),每隔一段時(shí)間,掃描模擬屏上所有開關(guān)狀態(tài),然后根據(jù)不同狀態(tài)下的開關(guān)進(jìn)行統(tǒng)計(jì),并顯示在主畫面上,如圖7所示。
圖7 數(shù)據(jù)統(tǒng)計(jì)模塊
時(shí)間模塊的主程序如下。
制作完成后模擬屏軟件已基本滿足運(yùn)行人員的需求,方便其模擬操作。該模擬圖還有二次開發(fā)的空間,升級方向主要有以下2點(diǎn)。
(1)VB.NET包含有通信模塊。開發(fā)相應(yīng)的通信模塊,使之與公司的廠級監(jiān)控信息系統(tǒng)(SIS)相連,則模擬屏軟件就可以實(shí)時(shí)讀取公司當(dāng)前的電氣運(yùn)行狀態(tài)及參數(shù),并直接反映至主畫面上。
(2)設(shè)計(jì)模擬屏軟件的“五防”功能[5]。參考數(shù)據(jù)統(tǒng)計(jì)模塊程序,增加計(jì)時(shí)程序,每隔一段時(shí)間自動(dòng)掃描全部開關(guān)的狀態(tài)。如發(fā)現(xiàn)操作后的開關(guān)狀態(tài)不符合設(shè)定的邏輯程序,則會(huì)自動(dòng)彈出對話框,顯示當(dāng)前操作不符合“五防”要求,點(diǎn)擊確認(rèn)后恢復(fù)開關(guān)操作之前的狀態(tài)。
自主開發(fā)的模擬屏軟件,有利于運(yùn)行人員模擬操作,自主學(xué)習(xí),同時(shí)軟件編程開發(fā)完全不受廠家限制,便于后期維護(hù)及二次開發(fā)。該軟件已在某電廠連續(xù)運(yùn)行一年多,性能穩(wěn)定,有效保障了電氣操作的正確性,減少了誤操作事故的發(fā)生,提高了電氣運(yùn)行及管理的水平。
[1]袁大陸,杜彥明.電力系統(tǒng)的防誤操作情況及防誤操作裝置的應(yīng)用[J].高壓電器,2002,38(5):8-11.
[2]中國華電集團(tuán)公司.發(fā)電企業(yè)安全現(xiàn)狀綜合評價(jià)標(biāo)準(zhǔn)火電篇[M].北京:中國電力出版社,2011.
[3]鄭阿奇.Visual Basic.NET實(shí)用教程:基于Visual Studio 2010[M].北京:電子工業(yè)出版社,2013.
[4]THEARON W,NEWSOME B.吳偉敏,李周芳,譯.Beginning Visual Basic 2010[M].北京:清華大學(xué)出版社,2011.
[5]薛玉喜.電氣“五防”的選型與設(shè)計(jì)思想[J].華電技術(shù),2008,30(10):22-26.
(本文責(zé)編:劉炳鋒)
TP 311.52
B
1674-1951(2016)10-0009-04
林翀(1989—),男,浙江杭州人,助理工程師,從事發(fā)電機(jī)電氣運(yùn)行管理工作(E-mail:linchong@chd.com.cn)。
2016-07-18;
2016-08-24
陳昊(1980—),男,浙江杭州人,助理工程師,從事發(fā)電廠熱控管理工作。