李萬輝
(中核核電運(yùn)行管理有限公司,浙江 海鹽 314300)
電站控制計(jì)算機(jī)系統(tǒng)是重水堆核電站主回路控制系統(tǒng),其采用典型計(jì)算機(jī)架構(gòu)構(gòu)成集中式控制系統(tǒng)。為提高控制可靠性,重水堆電站控制計(jì)算機(jī)系統(tǒng)采用雙機(jī)冗余設(shè)置,其中主控機(jī)稱為X計(jì)算機(jī)[1,2],而熱備機(jī)則稱為Y計(jì)算機(jī),二者之間通過繼電器執(zhí)行整體或部分的控制轉(zhuǎn)移,以實(shí)現(xiàn)電站控制計(jì)算機(jī)系統(tǒng)的冗余切換,確保機(jī)組的穩(wěn)定運(yùn)行。
重水堆電站控制計(jì)算機(jī)系統(tǒng)由加拿大CAE公司設(shè)計(jì)生產(chǎn),因設(shè)計(jì)較早,元器件停產(chǎn)導(dǎo)致的設(shè)備斷供問題日漸突出,且隨著國際環(huán)境的復(fù)雜化,備件供應(yīng)的可靠性問題已經(jīng)開始影響電站控制計(jì)算機(jī)系統(tǒng)的運(yùn)行。為解決上述問題,確保電站控制計(jì)算機(jī)系統(tǒng)的長期可靠運(yùn)行,2018年3月啟動,電站控制計(jì)算機(jī)系統(tǒng)的國產(chǎn)化工作正式啟動。
電站控制計(jì)算機(jī)內(nèi)存數(shù)據(jù)校驗(yàn)采用16位漢明碼構(gòu)建ECC(Error Check and Correct,下同)校驗(yàn)回路,可實(shí)現(xiàn)一位數(shù)據(jù)錯(cuò)誤的自動糾錯(cuò),對于出現(xiàn)的兩位或更多位數(shù)據(jù)錯(cuò)誤,則不能進(jìn)行有效檢驗(yàn)和糾正,僅向Processor發(fā)送內(nèi)部中斷“Parity Error”[1],使相應(yīng)電站控制計(jì)算機(jī)重啟或死機(jī),對機(jī)組安全運(yùn)行造成影響。梳理自投運(yùn)以來,電站控制計(jì)算機(jī)系統(tǒng)歷史缺陷,確認(rèn)因內(nèi)存數(shù)據(jù)校驗(yàn)錯(cuò)誤而造成相應(yīng)計(jì)算機(jī)系統(tǒng)重啟或停機(jī)的故障至少3次。因此,有必要在電站控制計(jì)算機(jī)系統(tǒng)國產(chǎn)化工作中就內(nèi)存數(shù)據(jù)校驗(yàn)方法進(jìn)行優(yōu)化。
國產(chǎn)電站控制計(jì)算機(jī)系統(tǒng)研發(fā)技術(shù)方案采用FPGA等可編程芯片,以柔性化其硬件設(shè)計(jì),消除原設(shè)計(jì)不足或隱患,擺脫對特定元器件的依賴,有助于提高國產(chǎn)器件的應(yīng)用,達(dá)成相應(yīng)設(shè)備的完全知識產(chǎn)權(quán)。相較于較早的單功能芯片、PAL芯片、PLD芯片等,F(xiàn)PGA具有更多更高處理能力的資源,可在兼容原系統(tǒng)接口的情況下對電站控制計(jì)算機(jī)內(nèi)存數(shù)據(jù)校驗(yàn)進(jìn)行優(yōu)化加強(qiáng),降低數(shù)據(jù)校驗(yàn)異常對電站控制計(jì)算機(jī)系統(tǒng)的影響。
電站控制計(jì)算機(jī)系統(tǒng)主時(shí)鐘為8MHz,國產(chǎn)電站控制計(jì)算機(jī)系統(tǒng)運(yùn)行時(shí)鐘為200MHz,因此電站控制計(jì)算機(jī)系統(tǒng)一個(gè)內(nèi)存存取的操作,國產(chǎn)計(jì)算機(jī)系統(tǒng)可執(zhí)行25次。因而在不改變控制功能的情況下,國產(chǎn)電站控制計(jì)算機(jī)系統(tǒng)足以執(zhí)行更復(fù)雜的數(shù)據(jù)校驗(yàn)運(yùn)算,由此考慮采用ECC校驗(yàn)及CRC16校驗(yàn)聯(lián)合的方式作為國產(chǎn)電站控制計(jì)算機(jī)系統(tǒng)內(nèi)存數(shù)據(jù)的校驗(yàn)方式,即首先通過ECC校驗(yàn)回路對寫入或讀取自內(nèi)存的數(shù)據(jù)進(jìn)行檢查,當(dāng)無數(shù)據(jù)錯(cuò)誤或可由ECC校驗(yàn)回路自動糾錯(cuò)的一位數(shù)據(jù)錯(cuò)誤時(shí),CRC16校驗(yàn)糾錯(cuò)回路不工作;當(dāng)待校驗(yàn)數(shù)據(jù)出現(xiàn)兩位或以上數(shù)據(jù)錯(cuò)誤時(shí),ECC校驗(yàn)回路不能執(zhí)行糾錯(cuò)功能,此時(shí)CR16C校驗(yàn)糾錯(cuò)回路開始執(zhí)行對數(shù)據(jù)的校驗(yàn)和糾錯(cuò)工作;若CRC16校驗(yàn)糾錯(cuò)回路仍不能完成錯(cuò)誤數(shù)據(jù)的校驗(yàn)和糾正,則發(fā)出相應(yīng)的數(shù)據(jù)校驗(yàn)錯(cuò)誤的信號,使得電站控制計(jì)算機(jī)重新啟動。由上述,繪制優(yōu)化方案的流程圖如圖1所示。
根據(jù)繪制的流程圖,結(jié)合國產(chǎn)電站控制計(jì)算機(jī)的設(shè)計(jì),著手對優(yōu)化方案進(jìn)行分析和構(gòu)建。
1.2.1 優(yōu)化方案分析
構(gòu)建國產(chǎn)電站控制計(jì)算機(jī)內(nèi)存數(shù)據(jù)校驗(yàn)優(yōu)化方案前,首先對原電站控制計(jì)算機(jī)內(nèi)存板卡中ECC校驗(yàn)回路進(jìn)行分析。圖2為電站控制計(jì)算機(jī)內(nèi)存板卡的框圖,其中紅色框模塊即構(gòu)成ECC校驗(yàn)回路,其包括PARITY GEN模塊、ERR CORRECT模塊以及ECC STATUS模塊。IB+[0…15]為內(nèi)存板卡內(nèi)部總線,MB-[0…22]為Memory總線。
以寫入內(nèi)存為例,簡單分析一下電站控制計(jì)算機(jī)內(nèi)存數(shù)據(jù)ECC校驗(yàn)流程。來自CPU或其他設(shè)備的待校驗(yàn) 數(shù) 據(jù)MB00-~MB15-經(jīng)DATA XCVRS模 塊 生 成 信號IB00+~I(xiàn)B15+并進(jìn)入內(nèi)存板卡內(nèi)部總線IB+[0…15],IB00+~I(xiàn)B15+經(jīng)PARITY GEN模塊進(jìn)行漢明校驗(yàn),生成校驗(yàn)狀態(tài)信號“PERR00~PERR05+”。校驗(yàn)后的數(shù)據(jù)經(jīng)ERR CORRECT模塊后,并再次送上內(nèi)部總線IB,生成最終寫入內(nèi)存的數(shù)據(jù)“IB00+~I(xiàn)B15+”。同時(shí),校驗(yàn)狀態(tài)信號“PERR00~PERR05+”經(jīng)ECC STATUS模塊生成校驗(yàn)特征信息“EO00+~EO15+”(Error Syndrome),并經(jīng)Memory IO Interface模塊送入Processor板卡,存入Error Register,作為CPU運(yùn)行檢查的標(biāo)志位信息之一。上述校驗(yàn)特征信息“EO00+~EO15+”中的“EB06+”定義為數(shù)據(jù)校驗(yàn)出現(xiàn)兩位錯(cuò)誤的標(biāo)志位,即“ECC_DBE”信號(DBE即Double Bits Error)。
基于漢明校驗(yàn)?zāi)茏詣蛹m正一位數(shù)據(jù)錯(cuò)誤,能發(fā)現(xiàn)全部兩位數(shù)據(jù)錯(cuò)誤但不能進(jìn)行糾正,以及能發(fā)現(xiàn)大多數(shù)兩位以上數(shù)據(jù)錯(cuò)誤的特點(diǎn)??芍陔娬究刂朴?jì)算機(jī)運(yùn)行期間,當(dāng)有數(shù)據(jù)(待校驗(yàn)數(shù)據(jù))需要寫入內(nèi)存時(shí),這些待校驗(yàn)數(shù)據(jù)在無錯(cuò)誤或僅有一位數(shù)據(jù)錯(cuò)誤的情況下,經(jīng)該校驗(yàn)回路最終寫入內(nèi)存的是正確數(shù)據(jù),此時(shí)電站控制計(jì)算機(jī)運(yùn)行不受影響。若待校驗(yàn)數(shù)據(jù)在傳輸過程中出現(xiàn)兩位或兩位以上的錯(cuò)誤,因ERR CORRECT模塊不能實(shí)現(xiàn)多于一位數(shù)據(jù)錯(cuò)誤的糾正,此時(shí)寫入內(nèi)存的數(shù)據(jù)就是錯(cuò)誤的,若電站控制計(jì)算機(jī)仍然使用這些錯(cuò)誤的數(shù)據(jù),則會導(dǎo)致控制異常,這是電站控制計(jì)算機(jī)不應(yīng)出現(xiàn)的情況。為避免出現(xiàn)這種情況,電站控制計(jì)算機(jī)執(zhí)行重啟操作,其重啟信號來源即內(nèi)部中斷“Parity Error”,由數(shù)據(jù)校驗(yàn)特征碼中“EO06+”信號(“ECC_DBE”信號)經(jīng)Memory IO Interface模塊后,在Processor板卡中產(chǎn)生。
電站控制計(jì)算機(jī)采用漢明校驗(yàn)結(jié)合內(nèi)部中斷的機(jī)制有效避免了出現(xiàn)控制異常的情況,但也引入了較多的內(nèi)部中斷,使得計(jì)算機(jī)本身運(yùn)行受到一定影響,進(jìn)而影響到機(jī)組的穩(wěn)定運(yùn)行。由此,從提升電站控制計(jì)算機(jī)運(yùn)行穩(wěn)定性的角度考慮,對原數(shù)據(jù)校驗(yàn)回路進(jìn)行優(yōu)化,優(yōu)化重點(diǎn)在于對待校驗(yàn)數(shù)據(jù)進(jìn)行復(fù)核校驗(yàn)并對兩位數(shù)據(jù)錯(cuò)誤進(jìn)行糾正,對兩位以上數(shù)據(jù)錯(cuò)誤則認(rèn)為硬件故障,要求電站控制計(jì)算機(jī)系統(tǒng)重啟或停機(jī)。
從數(shù)據(jù)傳輸中數(shù)據(jù)錯(cuò)誤的概率角度考慮,出現(xiàn)一位數(shù)據(jù)錯(cuò)誤的概率要遠(yuǎn)高于出現(xiàn)兩位甚至兩位以上數(shù)據(jù)錯(cuò)誤的概率,因此為保持電站控制計(jì)算機(jī)內(nèi)存數(shù)據(jù)校驗(yàn)的高效性,仍選擇將原ECC校驗(yàn)回路作為主數(shù)據(jù)校驗(yàn)回路,僅在ECC校驗(yàn)不能自動糾錯(cuò)的情況下才允許系統(tǒng)進(jìn)行CRC16校驗(yàn)。如此設(shè)計(jì),能確保電站控制計(jì)算機(jī)系統(tǒng)既能維持高效安全運(yùn)行,又能減少原兩位或兩位以上數(shù)據(jù)錯(cuò)誤需要重啟的次數(shù),提升系統(tǒng)運(yùn)行的穩(wěn)定性。同時(shí),考慮到數(shù)據(jù)保真的重要性,新增CRC16校驗(yàn)回路必須和ECC校驗(yàn)回路同時(shí)接收數(shù)據(jù),且因CRC16校驗(yàn)僅在ECC校驗(yàn)不能完成糾錯(cuò)的情況下才能啟動CRC16校驗(yàn),故需要考慮在CRC16校驗(yàn)回路中增加數(shù)據(jù)暫存環(huán)節(jié)。若CRC校驗(yàn)需啟動,則暫存的待校驗(yàn)數(shù)據(jù)輸出至CRC16校驗(yàn)回路進(jìn)行校驗(yàn);CRC16校驗(yàn)不需啟動,則暫存的待校驗(yàn)數(shù)據(jù)被后續(xù)數(shù)據(jù)覆蓋。
由上述即可確定完整的優(yōu)化方案,該方案結(jié)構(gòu)框圖如圖3所示。在該結(jié)構(gòu)框圖中,ECC Logic為電站計(jì)算機(jī)系統(tǒng)內(nèi)存板卡采用的ECC校驗(yàn)回路,圓角方框內(nèi)為優(yōu)化方案新增邏輯部分,其中新增CRC16校驗(yàn)糾錯(cuò)回路與原電站控制計(jì)算機(jī)ECC校驗(yàn)回路并接,使得兩個(gè)數(shù)據(jù)校驗(yàn)回路能同時(shí)接收待校驗(yàn)數(shù)據(jù)。新增仲裁回路(Judge Module),用于選擇最終輸出ECC校驗(yàn)數(shù)據(jù)還是CRC16校驗(yàn)數(shù)據(jù)。將原電站控制計(jì)算機(jī)ECC校驗(yàn)回路作為主數(shù)據(jù)校驗(yàn)回路,切斷其送往Processor板卡觸發(fā)“Parity Error”內(nèi)部中斷的“ECC_DBE”信號通路,轉(zhuǎn)而將之作為新增CRC16校驗(yàn)糾錯(cuò)回路的使能信號和仲裁回路的選擇信號;新增CRC16校驗(yàn)糾錯(cuò)回路中CRC16校驗(yàn)碼添加模塊CRC_ADDER和數(shù)據(jù)暫存模塊CRC_RAM,用于為接收到的待校驗(yàn)數(shù)據(jù)添加校驗(yàn)碼,并暫存添加校驗(yàn)碼后的數(shù)據(jù)。
優(yōu)化方案的詳細(xì)工作流程如圖1所示,即當(dāng)電站控制計(jì)算機(jī)系統(tǒng)需要對內(nèi)存進(jìn)行數(shù)據(jù)讀取/寫入時(shí),相應(yīng)數(shù)據(jù)同時(shí)送入ECC校驗(yàn)回路和CRC16校驗(yàn)糾錯(cuò)回路。此時(shí),因ECC校驗(yàn)回路始終導(dǎo)通,待校驗(yàn)數(shù)據(jù)總是能夠被其直接處理,而CRC16校驗(yàn)糾錯(cuò)部分(CRC_Verification Correct)受ECC校驗(yàn)回路的校驗(yàn)狀態(tài)信息“ECC_DBE”信號控制,因此其校驗(yàn)碼添加回路(CRC_Adder)在收到待校驗(yàn)數(shù)據(jù)添加校驗(yàn)碼并存入數(shù)據(jù)暫存區(qū)(CRC_RAM)后,不能直接進(jìn)行校驗(yàn)糾錯(cuò),而是等待ECC校驗(yàn)回路的校驗(yàn)狀態(tài)信息“ECC_DBE”信號。若ECC校驗(yàn)無誤或僅有一位數(shù)據(jù)錯(cuò)誤時(shí),其校驗(yàn)狀態(tài)信息“ECC_DBE”信號無效,校驗(yàn)后的數(shù)據(jù)(ECC_DATA)經(jīng)仲裁回路輸出作為最終數(shù)據(jù);若ECC校驗(yàn)出現(xiàn)兩位或兩位以上錯(cuò)誤時(shí),其校驗(yàn)狀態(tài)信息ECC_DBE信號有效,CRC校驗(yàn)糾錯(cuò)回路開始工作。對于兩位數(shù)據(jù)錯(cuò)誤,CRC16校驗(yàn)糾錯(cuò)回路直接糾正,糾錯(cuò)后的數(shù)據(jù)(CRC_DATA)經(jīng)仲裁模式輸出作為最終數(shù)據(jù);對于超過兩位數(shù)據(jù)錯(cuò)誤的情況,CRC校驗(yàn)糾錯(cuò)回路將不能進(jìn)行糾錯(cuò),而是產(chǎn)生“Data Error”信號,該信號將替代原內(nèi)存校驗(yàn)中的ECC_DBE信號,作為國產(chǎn)電站控制計(jì)算機(jī)內(nèi)部中斷信號“Parity Error”信號的產(chǎn)生源。需要特別說明的是,標(biāo)準(zhǔn)CRC16校驗(yàn)回路僅能校驗(yàn)而不能糾錯(cuò),優(yōu)化方案采用標(biāo)準(zhǔn)CRC16校驗(yàn)回路和分段增距漢明碼相結(jié)合的CRC16校驗(yàn)糾錯(cuò)回路。
1.2.2 優(yōu)化方案的實(shí)現(xiàn)
國產(chǎn)電站控制計(jì)算機(jī)采用可編程器件如FPGA、CPLD等進(jìn)行設(shè)計(jì),Verilog作為硬件編程語言,這樣既可以規(guī)避進(jìn)口器件的限制,實(shí)現(xiàn)完全知識產(chǎn)權(quán)的國有化,又可以柔性化設(shè)計(jì),精細(xì)調(diào)整和規(guī)整電站控制計(jì)算機(jī)系統(tǒng)重要信號,消除原設(shè)計(jì)隱患,提升國產(chǎn)電站控制計(jì)算機(jī)系統(tǒng)運(yùn)行可靠性。
可編程器件,特別是FPGA等,當(dāng)前應(yīng)用越來越廣泛,芯片制造商和用戶也提供越來越多標(biāo)準(zhǔn)化開源編碼和數(shù)據(jù)庫,方便用戶使用。就國產(chǎn)電站計(jì)算機(jī)內(nèi)存數(shù)據(jù)校驗(yàn)優(yōu)化方案使用的編碼而言,ECC校驗(yàn)、CRC16校驗(yàn)以及漢明碼校驗(yàn)糾錯(cuò)等均有開源編碼,且基于篇幅限制,這里不再編列,有興趣的讀者可從網(wǎng)上查詢。
將優(yōu)化方案編碼整合、編譯、仿真和精調(diào)后,可得到新增回路部分的等效電路圖如圖4所示。
基于運(yùn)行安全考量,新設(shè)計(jì)的國產(chǎn)電站控制計(jì)算機(jī)必須經(jīng)過嚴(yán)格苛刻的測試、認(rèn)證和長期試運(yùn)行考驗(yàn),國產(chǎn)電站計(jì)算機(jī)內(nèi)部板卡屬于國產(chǎn)化設(shè)計(jì)的一部分,也必須同國產(chǎn)電站控制計(jì)算機(jī)一起進(jìn)行測試和考驗(yàn)。國產(chǎn)電站控制計(jì)算機(jī)測試包括長期可靠性測試和特殊工況測試。長期可靠性測試即配置兩套國產(chǎn)電站控制計(jì)算機(jī)(計(jì)算機(jī)X和計(jì)算機(jī)Y),兩者均連接至一臺現(xiàn)場設(shè)備模擬機(jī)?,F(xiàn)場設(shè)備模擬機(jī)根據(jù)歷史日志模擬現(xiàn)場系統(tǒng)或設(shè)備的運(yùn)行狀態(tài)信息(模擬量輸入AI和數(shù)字量輸入DI)并送入國產(chǎn)電站控制計(jì)算機(jī)X和電站控制計(jì)算機(jī)Y中,國產(chǎn)電站控制計(jì)算機(jī)系統(tǒng)根據(jù)上述模擬信號執(zhí)行控制程序,輸出相應(yīng)的控制信號(模擬量輸出AO和數(shù)字量輸出DO)。現(xiàn)場模擬機(jī)記錄國產(chǎn)電站控制計(jì)算機(jī)的控制輸出信號,并與歷史實(shí)際運(yùn)行狀態(tài)進(jìn)行比較,以檢驗(yàn)國產(chǎn)電站控制計(jì)算機(jī)的控制功能和效果。長期可靠性測試將不間斷進(jìn)行1年半至2年時(shí)間,以此驗(yàn)證國產(chǎn)電站控制計(jì)算機(jī)系統(tǒng)長期運(yùn)行的可靠性。特殊工況測試即現(xiàn)場模擬機(jī)模擬遠(yuǎn)超正常工況的現(xiàn)場設(shè)備運(yùn)行狀態(tài)(如主泵振動高、幅度大、變化快等),此時(shí)檢查驗(yàn)證國產(chǎn)電站控制計(jì)算機(jī)系統(tǒng)的合理響應(yīng),如模擬要求停運(yùn)異常狀態(tài)的泵、降功率,甚至觸發(fā)機(jī)組停堆停機(jī)操作等。
為驗(yàn)證國產(chǎn)電站控制計(jì)算機(jī)系統(tǒng)內(nèi)存數(shù)據(jù)校驗(yàn)優(yōu)化方案的可靠性和穩(wěn)定性,特別準(zhǔn)備兩種不同配置的國產(chǎn)電站控制計(jì)算機(jī)內(nèi)存板卡,即不執(zhí)行優(yōu)化方案的內(nèi)存板卡(I型)和執(zhí)行優(yōu)化方案的內(nèi)存板卡(II型)。將I型內(nèi)存板卡安裝于國產(chǎn)電站控制計(jì)算機(jī)X中,II型內(nèi)存板卡安裝于國產(chǎn)電站控制計(jì)算機(jī)Y中,二者接受相同的現(xiàn)場模擬機(jī)信號,執(zhí)行相同的工作,記錄并比對二者運(yùn)行情況和控制差異,以驗(yàn)證上述優(yōu)化方案的可行性和可靠性。
按照計(jì)劃,國產(chǎn)電站控制計(jì)算機(jī)系統(tǒng)測試階段從2021年5月1日開始執(zhí)行,2022年12月31截至,驗(yàn)收標(biāo)準(zhǔn)為至少半年時(shí)間內(nèi)國產(chǎn)電站控制計(jì)算機(jī)X和Y運(yùn)行平穩(wěn),無停機(jī)和重啟事件發(fā)生。因II型內(nèi)存板卡安裝在國產(chǎn)電站控制計(jì)算機(jī)Y中,故上述內(nèi)存數(shù)據(jù)校驗(yàn)優(yōu)化方案測試時(shí)間窗口和驗(yàn)收標(biāo)準(zhǔn)將與國產(chǎn)電站控制計(jì)算機(jī)測試窗口和驗(yàn)收標(biāo)準(zhǔn)一致。國產(chǎn)電站控制計(jì)算機(jī)自2021年5月30日開始執(zhí)行調(diào)試和長期可靠性測試,至今未見異常情況,這也意味著優(yōu)化后的II型內(nèi)存板卡至目前運(yùn)行情況良好。
后續(xù)在國產(chǎn)電站控制計(jì)算機(jī)測試無異常的情況下,2023年正式走設(shè)計(jì)變更流程,將優(yōu)化方案正式列入新設(shè)計(jì)中;測試異常則利用FPGA技術(shù)的特點(diǎn),對優(yōu)化方案進(jìn)行編程優(yōu)化調(diào)整,后續(xù)再執(zhí)行相應(yīng)設(shè)計(jì)變更。
電站控制計(jì)算機(jī)系統(tǒng)是重水堆電站主回路的控制核心,確保其設(shè)備的平穩(wěn)性和備件供應(yīng)的可靠性是確保電站長期穩(wěn)定運(yùn)行的必要條件,因此在當(dāng)前國際環(huán)境下,擺脫對國外供貨商的依賴,解決“卡脖子”問題的工作是迫在眉睫的,對電站控制計(jì)算機(jī)系統(tǒng)進(jìn)行國產(chǎn)化是目前唯一的出路,而優(yōu)化原設(shè)計(jì),提升國產(chǎn)設(shè)備的可靠性更是該項(xiàng)工作的重中之重,不但利于后期機(jī)組的長期穩(wěn)定可靠運(yùn)行,也對后續(xù)其他設(shè)備國產(chǎn)化工作起到十分積極的促進(jìn)作用。