于 在 甫
(華電金沙江上游水電開(kāi)發(fā)有限公司蘇洼龍分公司,四川 成都 610041)
隨著我國(guó)水電建設(shè)的不斷發(fā)展,水電站監(jiān)控的發(fā)展也經(jīng)歷了人工監(jiān)控、電話調(diào)度和遠(yuǎn)動(dòng)化監(jiān)控,以及以計(jì)算機(jī)為核心、以現(xiàn)代化數(shù)據(jù)通信為基礎(chǔ)的計(jì)算機(jī)監(jiān)控系統(tǒng)等階段。水電廠應(yīng)用計(jì)算機(jī)監(jiān)控系統(tǒng)對(duì)提高自動(dòng)化水平,保證安全運(yùn)行,提高經(jīng)濟(jì)效益,改善勞動(dòng)條件,促進(jìn)技術(shù)進(jìn)步都具有十分重要的意義。
根據(jù)電力行業(yè)相關(guān)標(biāo)準(zhǔn)要求,機(jī)組現(xiàn)地控制單元,即電站計(jì)算機(jī)監(jiān)控系統(tǒng)下位機(jī)的順序控制和調(diào)節(jié)需要具備機(jī)組正常開(kāi)、停機(jī)順序控制及緊急停機(jī)順序控制[1]。在電站的實(shí)際應(yīng)用中,一般會(huì)根據(jù)機(jī)組事故等級(jí),將機(jī)組緊急停機(jī)順序控制程序分為三類:電氣事故停機(jī)、機(jī)械事故停機(jī)、緊急事故停機(jī)。
同時(shí),水電站各類輔助設(shè)備信息化、智能化越來(lái)越高,技術(shù)人才逐漸緊缺,都對(duì)水電站監(jiān)控系統(tǒng)的穩(wěn)定性、可靠性帶來(lái)一定影響。各個(gè)監(jiān)控設(shè)備廠家針對(duì)這一需求,也對(duì)各自的計(jì)算機(jī)監(jiān)控系統(tǒng)進(jìn)行了迭代升級(jí)。根據(jù)相關(guān)要求,對(duì)監(jiān)控系統(tǒng)軟件的修改,應(yīng)制定相應(yīng)的技術(shù)方案并經(jīng)技術(shù)管理部門(mén)審定后執(zhí)行。經(jīng)過(guò)模擬測(cè)試和現(xiàn)場(chǎng)試驗(yàn),合格后方可投入正式運(yùn)行。實(shí)施軟件改進(jìn)前,應(yīng)對(duì)當(dāng)前運(yùn)行的應(yīng)用軟件進(jìn)行備份并做好記錄。改進(jìn)實(shí)施完成后,應(yīng)做好最新應(yīng)用軟件的備份,及時(shí)更新軟件功能手冊(cè)及相關(guān)運(yùn)行手冊(cè)。若軟件改進(jìn)涉及到多臺(tái)設(shè)備,且不能一次完成時(shí),宜采用軟件改進(jìn)跟蹤表,以便跟蹤記錄改進(jìn)的實(shí)施情況[2]。
在計(jì)算機(jī)監(jiān)控系統(tǒng)不斷升級(jí)的過(guò)程中,仍不可避免地會(huì)出現(xiàn)一些BUG。由于主、客觀原因,調(diào)試人員在升級(jí)完程序后進(jìn)行調(diào)試或者試驗(yàn)時(shí),并不能完全真實(shí)地模擬機(jī)組所有狀態(tài),導(dǎo)致這些BUG不能得到及時(shí)的處理,給計(jì)算機(jī)監(jiān)控系統(tǒng)帶來(lái)隱藏的故障或缺陷。由于這類故障或缺陷的隱蔽性,在機(jī)組正常運(yùn)行時(shí)不會(huì)暴露出來(lái),一旦出現(xiàn)往往會(huì)帶來(lái)極大的危害。本文描述的這類缺陷在計(jì)算機(jī)監(jiān)控系統(tǒng)缺陷中,屬于典型的程序邏輯錯(cuò)誤,給機(jī)組控制流程帶來(lái)隱藏缺陷。因?yàn)樯婕暗綑C(jī)組緊急停機(jī)流程,一旦機(jī)組發(fā)生事故,就可能繼續(xù)擴(kuò)大,發(fā)生機(jī)組二級(jí)過(guò)速甚至飛逸事故。
四川某水電站,計(jì)算機(jī)監(jiān)控系統(tǒng)按照“無(wú)人值班(少人值守)”的原則設(shè)計(jì),能受到現(xiàn)地控制單元(LCU)、 中控室、四川省電力調(diào)度中心的監(jiān)視和控制[3]。上位機(jī)采用北京中水科技水電科技開(kāi)發(fā)有限公司開(kāi)發(fā)的H9000水電廠計(jì)算機(jī)監(jiān)控系統(tǒng)結(jié)構(gòu)及配置:下位機(jī)LCU采用國(guó)電南京自動(dòng)化股份有限公司供貨,以施耐德可編程控制器(PLC)為基礎(chǔ)構(gòu)成(在建的遠(yuǎn)程控制系統(tǒng)亦由國(guó)電南京自動(dòng)化股份有限公司供貨及技術(shù)支持)。
該電站計(jì)算機(jī)監(jiān)控系統(tǒng)具有以下主要功能:
(1)數(shù)據(jù)采集和處理;
(2)安全運(yùn)行監(jiān)視;
(3)自動(dòng)發(fā)電控制(AGC);
(4)自動(dòng)電壓控制(AVC);
(5)人機(jī)接口及操作;
(6)設(shè)備運(yùn)行管理指導(dǎo);
(7)系統(tǒng)自動(dòng)診斷與自動(dòng)恢復(fù);
(8)系統(tǒng)通信。
在一次機(jī)組檢修過(guò)程中,開(kāi)展機(jī)組監(jiān)控系統(tǒng)事故流程模擬試驗(yàn),發(fā)現(xiàn)當(dāng)模擬“機(jī)組轉(zhuǎn)速大于二級(jí)過(guò)速(145% Ne)”事故源,機(jī)組能夠按照要求啟動(dòng)緊急停機(jī)流程,并“動(dòng)作快速門(mén)”(緊急落門(mén))。但是,當(dāng)同時(shí)模擬“調(diào)速器手動(dòng),且轉(zhuǎn)速大于115%”、“機(jī)組轉(zhuǎn)速大于二級(jí)過(guò)速(145%Ne)”時(shí),機(jī)組并不能正?!皠?dòng)作快速門(mén)”。
該電站采用引水調(diào)壓式,通過(guò)壓力鋼管將水庫(kù)水源引致調(diào)壓室,經(jīng)過(guò)調(diào)壓室工作閘門(mén)控制將水源送至水輪機(jī)組。在機(jī)組正常運(yùn)轉(zhuǎn)時(shí),只通過(guò)導(dǎo)葉控制機(jī)組轉(zhuǎn)速及機(jī)組狀態(tài)轉(zhuǎn)換過(guò)程。當(dāng)機(jī)組發(fā)生嚴(yán)重事故,導(dǎo)葉關(guān)閉失敗或者機(jī)組轉(zhuǎn)速過(guò)快(大于額定轉(zhuǎn)速145%),就要通過(guò)落下調(diào)壓室工作閘門(mén)來(lái)切斷水源,防止事故擴(kuò)大。
在監(jiān)控系統(tǒng)機(jī)組LCU控制程序中,對(duì)機(jī)組事故進(jìn)行了分類,分別有電氣事故、機(jī)械事故、緊急事故。對(duì)于緊急事故,根據(jù)事故原因的不同,動(dòng)作結(jié)果分為落工作門(mén)與不落工作門(mén)兩種。經(jīng)過(guò)本次檢修測(cè)試發(fā)現(xiàn),當(dāng)同時(shí)發(fā)生導(dǎo)致落門(mén)與不落門(mén)的事故時(shí),不落門(mén)的事故源會(huì)覆蓋需要落門(mén)的事故啟動(dòng)源,導(dǎo)致工作門(mén)不再需要時(shí)及時(shí)落下,造成極大的安全隱患。
機(jī)組事故流程控制主要由計(jì)算機(jī)監(jiān)控系統(tǒng)下位機(jī)控制,主控為機(jī)組LCU,輔控為水機(jī)保護(hù)柜PLC。該電站下位機(jī)由國(guó)電南京自動(dòng)化股份有限公司供貨,采用施耐德品牌可編程控制器。經(jīng)分析,此缺陷的原因主要是下位機(jī)PLC控制程序BUG導(dǎo)致。
該電站下位機(jī)LCU采用施耐德品牌昆騰系列PLC,調(diào)試軟件為UNITY Pro,主程序及程序段根據(jù)具體需求,采用以下語(yǔ)言編寫(xiě):
功能塊圖FBD、梯形圖(LD) 語(yǔ)言、指令列表IL、結(jié)構(gòu)化文本ST、序列控制SFC。
所有編程語(yǔ)言可在同一項(xiàng)目中混用,并符合IEC 61131-3標(biāo)準(zhǔn)。UNITY Pro附帶的擴(kuò)展功能塊庫(kù)中包含各種功能,從簡(jiǎn)單布爾運(yùn)算的功能塊、進(jìn)行字符串和數(shù)組操作的功能塊到對(duì)復(fù)雜控制回路進(jìn)行控制的功能塊都有[4]。
一個(gè)完整的控制程序可由以下元素構(gòu)成:
主任務(wù)(MAST)、快速任務(wù)(FAST)、1~4個(gè)Aux任務(wù)、為其分配一項(xiàng)已定義任務(wù)的段、用于處理由時(shí)間控制的事件的段(Tlmerx)、用于處理由硬件控制的事件的段(EVTx)、 子程序段。
該電站下位機(jī)LCU控制程序有一個(gè)主程序 MAIN-PROC和許多子程序段構(gòu)成。機(jī)組運(yùn)行至今,機(jī)組LCU及水機(jī)保護(hù)PLC控制程序共進(jìn)行過(guò)“加裝機(jī)組運(yùn)行過(guò)程中主軸密封水中斷啟動(dòng)事故停機(jī)流程”、“區(qū)分機(jī)組事故停機(jī)、緊急停機(jī)過(guò)程”、“將事故停機(jī)、緊急停機(jī)事故過(guò)程分優(yōu)先級(jí)”等多項(xiàng)修正和升級(jí)。
在機(jī)組LCU及水機(jī)保護(hù)PLC控制程序升級(jí)過(guò)程中,監(jiān)控廠家及業(yè)主單位都對(duì)監(jiān)控系統(tǒng)各項(xiàng)功能進(jìn)行了測(cè)試,并對(duì)機(jī)組流程進(jìn)行了試驗(yàn)。歷次試驗(yàn)中,均未發(fā)現(xiàn)監(jiān)控系統(tǒng)BUG出現(xiàn)故障。
經(jīng)查,此次BUG故障發(fā)生在幾種不同語(yǔ)言編寫(xiě)的程序段中,其中機(jī)組緊急停機(jī)事故判定程序采用功能塊圖FBD語(yǔ)言編寫(xiě),程序段主要內(nèi)容見(jiàn)圖1。
如圖1所示,在機(jī)組開(kāi)關(guān)量、中斷量同時(shí)報(bào)“機(jī)組轉(zhuǎn)速大于145%Ne故障”信號(hào)時(shí)(圖1中轉(zhuǎn)速大于145%信號(hào)滿足),且信號(hào)保持時(shí)長(zhǎng)大于300毫秒(途中信號(hào)過(guò)濾),將會(huì)給事故啟動(dòng)源中間變量“RESON”置值為3(圖1中啟動(dòng)源置為3),然后經(jīng)綜合判定、上升沿觸發(fā)、流程閉鎖等一系列程序流,再分別對(duì)控制對(duì)象置值、對(duì)控制接受置值、對(duì)流程步驟置值、對(duì)啟動(dòng)原因置值、對(duì)下位機(jī)LCU號(hào)置值,并執(zhí)行子程序調(diào)用。在此過(guò)程中,流程將機(jī)組控制流程控制接受值“RCEVIVE.CMMD”置為2。當(dāng)機(jī)組控制流程接受值“RCEVIVE.CMMD”等于“2”時(shí),流程跳轉(zhuǎn)到另一組由結(jié)構(gòu)化文本ST語(yǔ)言編寫(xiě)的程序段,此后將機(jī)組流程轉(zhuǎn)為緊急事故停機(jī)流程,再將機(jī)組工況轉(zhuǎn)換流程步驟跳轉(zhuǎn)到第200步,進(jìn)入機(jī)組緊急停機(jī)流程見(jiàn)圖2。
當(dāng)模擬“機(jī)組轉(zhuǎn)速大于二級(jí)過(guò)速”事故時(shí),機(jī)組LCU監(jiān)控程序按照以上方式,觸發(fā)緊急停機(jī)流程,然后根據(jù)事故源中間變量REASON的值來(lái)判定動(dòng)作快速門(mén),即:當(dāng)“REASON”大于0且小于5時(shí)給落門(mén)控制零,并保持120秒確保工作門(mén)落門(mén)到位,然后繼續(xù)執(zhí)行投數(shù)固配壓閥、向電調(diào)柜發(fā)出緊急停機(jī)令、事故跳發(fā)電機(jī)出口斷路器DL2第1組跳閘線圈、事故跳發(fā)電機(jī)出口斷路器DL2第2組跳閘線圈、跳滅磁開(kāi)關(guān)等一系列操作。當(dāng)“REASON”的值不是0~5之間時(shí),不執(zhí)行落門(mén)程序,直接執(zhí)行投數(shù)固配壓閥、向電調(diào)柜發(fā)出緊急停機(jī)令、事故跳發(fā)電機(jī)出口斷路器DL2第1組跳閘線圈、事故跳發(fā)電機(jī)出口斷路器DL2第2組跳閘線圈、跳滅磁開(kāi)關(guān)等一系列操作。
當(dāng)同時(shí)模擬“調(diào)速器手動(dòng)且轉(zhuǎn)速大于115%”、“機(jī)組轉(zhuǎn)速大于二級(jí)過(guò)速(145% Ne)”時(shí),存在兩個(gè)事故判定源。“調(diào)速器手動(dòng)且轉(zhuǎn)速大于115%”事故將事故源中間變量REASON的值置為7,而“機(jī)組轉(zhuǎn)速大于二級(jí)過(guò)速(145%Ne)”將事故源中間變量REASON置為3。
根據(jù)施耐德編程手冊(cè)可知,F(xiàn)BD功能塊程序執(zhí)行的順序由信號(hào)流決定,并行功能塊執(zhí)行順序由功能塊的執(zhí)行編號(hào)指示,執(zhí)行編號(hào)數(shù)值代表執(zhí)行次序。由圖1可以看出,將事故源中間變量REASON置為3的功能塊執(zhí)行編號(hào)為16,將事故源中間變量REASON置為6的功能塊執(zhí)行編號(hào)為51。由此可知,當(dāng)這兩個(gè)事故源同時(shí)存在時(shí),程序執(zhí)行過(guò)程中,中間變量REASON先被置為3,后被置為7,最后按照REASON置為7來(lái)執(zhí)行后續(xù)程序,此時(shí),程序?qū)⑴卸C(jī)組緊急停機(jī)狀態(tài)為不落門(mén)的一種。這也是在本次檢修中,當(dāng)同時(shí)模擬的兩個(gè)事故源時(shí),機(jī)組不能正常動(dòng)作快速門(mén)的原因。而且,一旦進(jìn)入緊急停機(jī)流程,將按照當(dāng)前緊急停機(jī)流程啟動(dòng)源執(zhí)行,即便事故擴(kuò)大至需要?jiǎng)幼鞴ぷ鏖T(mén)的事故時(shí),由于已經(jīng)在緊急停機(jī)流程中,新的事故源即便被識(shí)別也不會(huì)執(zhí)行。當(dāng)存在兩種情況會(huì)導(dǎo)致需要落工作門(mén)的事故時(shí),工作門(mén)無(wú)法落下:
圖2 進(jìn)入機(jī)組緊急停機(jī)流程
(1)同時(shí)發(fā)生需要落門(mén)和不需要落門(mén)的緊急停機(jī)事故;
(2)先發(fā)生了不需要落門(mén)的緊急停機(jī)事故,然后事故擴(kuò)大發(fā)生了需要落門(mén)的緊急停機(jī)事故。
從圖1可以看出,不僅事故源“調(diào)速器手動(dòng),且轉(zhuǎn)速大于115%”存在時(shí),會(huì)導(dǎo)致“機(jī)組轉(zhuǎn)速大于二級(jí)過(guò)速(145% Ne)”事故源無(wú)法觸發(fā),緊急停機(jī)的最后三個(gè)事故源存在時(shí)(分別將REASON置為5、6、7),都將閉鎖前四個(gè)需要?jiǎng)幼魇鹿书T(mén),使緊急停機(jī)流程無(wú)法觸發(fā)。如果最后三個(gè)事故源先滿足條件的話,也將占用緊急停機(jī)流程,導(dǎo)致前四個(gè)事故源無(wú)法觸發(fā)。
根據(jù)《NB /T 35004- 2013水力發(fā)電廠自動(dòng)化設(shè)計(jì)技術(shù)規(guī)范》規(guī)定,當(dāng)機(jī)組發(fā)生下列事故時(shí),應(yīng)關(guān)閉快速事故閘門(mén)或蝶閥、球閥、圓筒閥,并啟動(dòng)水力機(jī)械事故停機(jī)流程:
(1)機(jī)組過(guò)速到最大瞬態(tài)轉(zhuǎn)速的規(guī)定值加3%額定轉(zhuǎn)速(二級(jí)過(guò)速)時(shí),電氣轉(zhuǎn)速信號(hào)器動(dòng)作;
(2)機(jī)組過(guò)速到最大瞬態(tài)轉(zhuǎn)速的規(guī)定值加5%額定轉(zhuǎn)速(二級(jí)過(guò)速)時(shí),機(jī)械液壓過(guò)速保護(hù)裝置或機(jī)械過(guò)速開(kāi)關(guān)動(dòng)作。
機(jī)組在發(fā)生事故的時(shí)候,特別是過(guò)速事故時(shí),都是從額定轉(zhuǎn)速增加到一級(jí)過(guò)速(115%Ne),然后發(fā)展到二級(jí)過(guò)速。如果監(jiān)控系統(tǒng)不能正確動(dòng)作,將會(huì)給機(jī)組穩(wěn)定運(yùn)行帶來(lái)極大的安全隱患。
為了消除缺陷,修復(fù)機(jī)組監(jiān)控流程BUG,可以采取兩種方式:
第一種方式:將需要?jiǎng)幼饔诼溟T(mén)的緊急停機(jī)事故與不動(dòng)作落門(mén)緊急停機(jī)流程獨(dú)立開(kāi),即將緊急停機(jī)流程分為兩個(gè),不動(dòng)作于落門(mén)的一級(jí)緊急流程獨(dú)立動(dòng)作,當(dāng)動(dòng)作于落門(mén)的二級(jí)停機(jī)流程動(dòng)作后,閉鎖一級(jí)緊急停機(jī)流程,執(zhí)行二級(jí)緊急停機(jī)流程,確保在事故擴(kuò)大時(shí)工作閘門(mén)能夠可靠動(dòng)作。這樣修改的優(yōu)點(diǎn)是:不管兩事故同時(shí)發(fā)生、還是不需要?jiǎng)幼髀溟T(mén)的事故先發(fā)生,一旦需要?jiǎng)幼髀溟T(mén)事故發(fā)生,就會(huì)執(zhí)行落門(mén)的緊急停機(jī)事故。缺點(diǎn)是:程序改動(dòng)較大,在程序改動(dòng)的過(guò)程中,有帶來(lái)其他漏洞的風(fēng)險(xiǎn)。
第二種方式:在緊急停機(jī)7個(gè)啟動(dòng)源中,將需要落門(mén)的緊急停機(jī)事故啟動(dòng)源程序塊(FBD功能塊)調(diào)整到不需要落門(mén)的緊急停機(jī)事故啟動(dòng)源程序塊之后。這樣修改的優(yōu)點(diǎn)是:當(dāng)同時(shí)發(fā)生需要落工作門(mén)和不需要落工作門(mén)的緊急停機(jī)事故時(shí),能夠保證機(jī)組緊急停機(jī)事故正常落門(mén),程序改動(dòng)較小。缺點(diǎn)是:如果不需要落門(mén)的緊急停機(jī)事故先發(fā)生,后續(xù)事故擴(kuò)大發(fā)生了需要落門(mén)的緊急停機(jī)事故時(shí),工作門(mén)不能正常落下。
經(jīng)該電站與監(jiān)控系統(tǒng)供應(yīng)商共同協(xié)商后,計(jì)劃先按照方案2執(zhí)行,待后期改造時(shí)再處理遺留問(wèn)題。檢修單位根據(jù)業(yè)主意見(jiàn),將機(jī)組LCU及水機(jī)保護(hù)PLC控制程序根據(jù)方案2進(jìn)行了修改,并對(duì)機(jī)組重新進(jìn)行了流程試驗(yàn)。經(jīng)試驗(yàn)驗(yàn)證:當(dāng)發(fā)生機(jī)組緊急停機(jī)事故時(shí)(模擬事故信號(hào)),機(jī)組緊急流程能夠正常動(dòng)作;當(dāng)同時(shí)發(fā)生需要落門(mén)的緊急停機(jī)事故以及不需要落門(mén)的緊急停機(jī)事故時(shí),機(jī)組緊急停機(jī)流程能夠正常動(dòng)作,并能夠正常地動(dòng)作于落工作閘門(mén)。
根據(jù)計(jì)算機(jī)監(jiān)控系統(tǒng)試驗(yàn)驗(yàn)收規(guī)程要求,監(jiān)控系統(tǒng)試驗(yàn)驗(yàn)收工作中,需要通過(guò)各種人機(jī)接口設(shè)備(如現(xiàn)地/廠站,鍵盤(pán)/按鈕等)發(fā)出控制命令或模擬啟動(dòng)條件啟動(dòng)控制流程。各種命令或啟動(dòng)條件所引發(fā)的控制操作(包括成功與失敗)、提示、登錄、報(bào)警及相應(yīng)處理等應(yīng)滿足受檢產(chǎn)品技術(shù)條件規(guī)定,且最終的控制流程及設(shè)置的有關(guān)參數(shù)應(yīng)與現(xiàn)場(chǎng)設(shè)備要求一致[5]。在水電站監(jiān)控系統(tǒng)設(shè)備調(diào)試過(guò)程中,需要模擬各類機(jī)組事故來(lái)驗(yàn)證機(jī)組事故流程能否正常啟動(dòng)。然而,機(jī)組事故發(fā)生時(shí)存在很多不確定性,甚至可能多類事同時(shí)發(fā)生。在面對(duì)各類復(fù)雜情況下,怎樣驗(yàn)證監(jiān)控系統(tǒng)流程是否正常啟動(dòng),怎樣檢查各類設(shè)備動(dòng)作情況,是監(jiān)控調(diào)試人員需要重點(diǎn)關(guān)注的事情。
為實(shí)現(xiàn)國(guó)家“碳達(dá)峰”和“碳中和”的總體目標(biāo),清潔能源必將迎來(lái)新的發(fā)展。而計(jì)算機(jī)監(jiān)控系統(tǒng)作為電站的大腦,如何在不斷的迭代發(fā)展中,保證電站的安全穩(wěn)定運(yùn)行,就顯得尤為重要。在電站建設(shè)中,特別是電站計(jì)算機(jī)監(jiān)控系統(tǒng)建設(shè)中,一定要大膽驗(yàn)證。同時(shí),在電站檢修調(diào)試過(guò)程中,應(yīng)盡量模擬機(jī)組真實(shí)的故障現(xiàn)象,并以發(fā)展的眼光看待機(jī)組事故,讓機(jī)組安全穩(wěn)定運(yùn)行的各種保障措施真正發(fā)揮作用。