劉 真 胡立生 白 濤
(上海交通大學自動化系1,上海 200030;深圳中廣核工程設計有限公司2,廣東 深圳 518172)
反應堆保護系統的數字化是信息技術高速發展時代的一種不可逆轉的趨勢,是計算機技術應用于核電站反應堆保護系統的必然。數字化保護系統可以獲得比模擬的保護系統更高的可靠性、準確性和穩定性,同時可大幅度地提高反應堆保護系統的功能。數字化反應堆保護系統在具有極大優越性的同時,也對設計和安全評審提出了區別于模擬系統的新問題,其核心是如何遵循核電廠安全級軟件可靠性設計的相關法規標準要求,確保軟件能完整正確滿足預期的安全功能。
核電廠建造過程中,系統執行安全等級的功能不同,對其設備的鑒定要求也不同。所以核電廠儀控設計的首要任務是開展安全等級劃分與定義。
國際上安全分級的標準體系以及類別各異,本文以IEC 61226 (2005)核電廠執行安全重要功能的儀表和控制系統的安全等級劃分為采納標準,進行安全分級討論。
按照三代核電廠用戶需求安全功能的規定,引入了電廠可控狀態、安全停堆狀態和超設計基準(DEC -A)分析的最終狀態三個物理狀態。
①可控狀態:堆芯次臨界,如通過蒸汽發生器在短時間內堆芯熱排出、堆芯水裝量穩定和放射性排放在允許范圍內。
②安全停堆狀態:堆芯次臨界,保證長期地余熱排出和放射性排放在允許范圍內。
③最終狀態:堆芯次臨界,通過一、二次回路進行余熱排出和放射性排放在允許范圍內。
IEC 61226 (2005),將核電廠的安全功能按其重要性分為A、B、C 級[7]。
①A 級
在發生任何一個DBC-2 ~DBC -4 內部事件后,將電廠帶入可控狀態的安全功能(包括支持功能)都定義為A 級(注:DBC,設計基準工況,按核電廠發生該工況的頻率大小,分為4 級。數字越大,工況越稀有,但后果越嚴重)。
②B 級
在發生任何一個DBC-2 ~DBC -4 內部事件、電廠達到可控狀態后,用于確保電廠進入安全停堆狀態的安全功能都定義為B 級。
在電廠正常運行時故障可以導致DBC - 3 或DBC-4事件的控制功能(一回路隔離),也定義為B 級。
③C 級
在DEC-A 事件序列后,將確保電廠帶到并維持在最終狀態的安全功能定義為C 級。
本文重點執行A 類安全功能的軟件可靠性分析方法,其他部分(執行B、C 類安全功能的軟件)不再贅述。
對于工業關鍵領域的軟件可靠性標準,IEEE 標準體系相對其他體系更豐富且可操作性更強,主要包括軟件可靠性度量體系和軟件可靠性評估兩方面。軟件可靠性度量體系由IEEE 982.1 -2005(軟件可信性度量詞典)和IEEE 982.2 -1988(軟件可靠性度量實施指南)組成。
IEEE 982.1 -2005 主要回答了使用哪些參數對軟件可靠性進行度量的問題,即用戶可以通過哪些方面對軟件質量特別是對軟件的可靠性進行了解和評價[1]。
IEEE 982.1 -2005 是IEEE 982.1 -1988 的修訂版,體現了軟件可靠性作為軟件質量重要屬性在軟件質量控制方面的新方法和新趨勢。與IEEE 982.1 -1988 相比,IEEE 982.1 -2005 作了較大程度的修改。IEEE 982.1 -1988 關于軟件可靠性屬性有39 個不同的度量參數,而IEEE 982.1 -2005 刪除了其中的32個度量參數,并對剩余度量參數中4 個進行了修改,只有3 個得到完全保留。同時新增了5 個度量參數,即可靠性度量參數變更為12 個,其中有75%的度量參數是新增或修改的。軟件可靠性評估主要包括IEEE 1633 -2008(軟件可靠性操作規程),其替代了AIAA/ANSI R -013 -1992(軟件可靠性操作規程)。IEEE 1633 -2008 是IEEE 最新發布的軟件可靠性評估標準,也是當前最新的關于軟件可靠性評估的國際標準。IEEE 1633 -2008 主要解決了如何進行軟件可靠性評估的問題,包括軟件可靠性評估過程和軟件可靠性評估模型兩方面。
20 世紀90 年代至今,通過借鑒國外相關標準,我國也制定了軟件可靠性相關標準。
①國軍標GJB/Z102A-2012《軟件安全性設計指南》規定軍用軟件安全性設計的實施指南,給出軍用軟件在需求分析、設計和實現階段的軟件安全性設計準則、要求及實現的技術方法,同時也為可靠性設計提供參考。附錄C 中給出軟件故障樹定性分析的基本實施步驟及應用示例,但未提及定量分析的相關內容。該標準已代替GJB/Z 102 -1997《軟件可靠性安全性設計準則》。
②國軍標GJB/Z161 -2012《軍用軟件可靠性評估指南》規定軍用軟件可靠性評估與可靠性測試的實施指南,其中包括定量評估軍用軟件產品可靠性的實施方法。
③國軍標GJB/Z 1391 -2006《故障模式、影響及危害性分析指南》規定了故障模式、影響及危害性分析(FMECA)的程序和方法,適用于產品(包括硬件、軟件)在論證、方案、工程研制與定型、生產和使用等生命周期各階段開展FMECA 工作。其中第6 章專門對嵌入式軟件FMECA 的工作步驟、分析方法及注意事項進行了詳細說明。
可以看出,國軍標在執行安全功能軟件的可靠性設計與評估方面,處于國內較領先地位。但是,隨著數字化核電廠的大規模項目上馬,核電設計的主要法規標準也不斷強調核電安全級軟件的可靠性設計與評估要求。
①HAD 102/16 -2004 基于“只有遵循系統化、文件化和可評審的工程步驟,才能夠預計并證明軟件可信性”的觀點,對核動力廠基于計算機的安全重要系統軟件的生命周期各個階段應實施的活動、重點關注內容、管理和質量保證、文件編制等方面提出要求,從而為安全性論證提供證據。
②IEEE 7-4.3.2 -2011 在5.15 可靠性一節中要求“在論證核安全級數字化系統的可靠性時應考慮軟件。當采用分析、現場經驗或測試相結合的方法論證系統可靠性時,也將軟件錯誤記錄和趨勢納入其中?!?/p>
③IEC 61513 -2011 在6.2.4.2.2 可靠性評定一節中要求:“軟件可能的設計缺陷對功能可靠性影響的評估宜基于定性評價,并考慮設計的復雜性、開發過程的質量以及運行經驗的反饋。評價宜基于先前認可的方法,宜證明軟件質量符合可靠性目標”。
核電站儀表和控制系統為核電站各系統及工藝設備提供控制、保護及信息監測手段,以保證核電站能安全、可靠和經濟地運行。核電站儀表和控制系統在縱向上主要可分為3 個層次:0 層(工藝系統接口層)、1 層(自動控制和保護層)和2 層(操作和信息管理層)??傮w方案結構如圖1 所示(注:某些核電廠還有第3 層即全廠信息管理層,屬于信號單向的信息管理層,不在本文討論之列)。該方案結構滿足三代核電技術特征。

圖1 滿足三代核電特征的儀控總體結構圖Fig.1 The overall structure of the I & C system meets features of the third generation nuclear power
目前,滿足三代核電技術特征的核電廠通常都采用了數字化儀控系統,來完成數據采集、信號預處理、邏輯處理、控制算法運算、產生自動控制指令和保護等功能,包括反應堆保護系統(RTS +ESFAS)、電站標準自動化系統(PCS)和反應堆功率控制系統(RCCS)。除此之外,還采用了多樣化驅動系統(DAS),以對付保護系統共因故障,其主要功能包括ATWS 系統和專設驅動邏輯系統。此外,還采用了嚴重事故系統(SAS),它能在嚴重事故情況下提供必要的指令和信息,并與專用于嚴重事故的非能動安全系統相結合,提供限制放射性物質排放到環境中的必要的緩解途徑。
核電站儀表和控制系統的操作和管理信息層執行信息支持、診斷、工藝信息和操縱員動作的記錄,以及通過操作設備對機組進行控制等任務,包括過程信息和控制系統(VDU)及安全信息和控制系統(SVDU +ECP)。
PICS(VDU)提供了對電站所有系統(包括安全級和非安全級系統)的監視和控制,采用數字化技術。
SICS(SVDU+ECP)用于關鍵安全功能的系統級手動觸發、非自動執行的其他安全功能的手動觸發及向操縱員提供所有安全相關的電站信息(包括事故后所需的關鍵參數)。SICS 中的SVDU 為人機接口設備,布置在操縱員站和后備盤上。
研究表明,人的錯誤可以導致軟件缺陷病造成系統失效,因此缺陷是一切失效的根源。要消除軟件的失效,最明智的做法是在軟件開發過程中盡可能避免或減少缺陷,這也就是軟件避錯設計的出發點,也是本節討論的重點。軟件避錯設計要通過嚴格的軟件開發過程、方法以及正式規范加以實現。
軟件可靠性設計應和軟件的常規設計緊密結合,貫穿常規設計過程的始終,它包括了從計劃制定、需求分析開始,直至軟件實現的全部過程[2]。軟件和硬件的可靠性雖然有相似的特征,但是又存在不同,包括失效原因、失效率、廢棄原因等。從硬件和軟件可靠性特征的比對得出,設計質量對于軟件可靠性具有特殊意義。與硬件相比,軟件可靠性對設計的依賴程度更大,要保障軟件的可靠性,關鍵在于軟件的可靠性設計。
NUREG/CR6101 -1993《核電廠保護系統軟件的可靠性與安全性》從軟件的全生命周期角度提出了軟件可靠性定性評估條款。這些條款來源于關鍵工業軟件設計以及制作的活動,它是已有的、相似軟件的工程經驗的總結,并被美國電力行業專題報告所采納。美國核管會NRC 認為,當貫徹執行了NUREG/CR6101所羅列的可靠性要求條款后,對于核電廠安全級軟件的可靠性具有重要意義,可以有效避免或減少軟件缺陷的引入,提高軟件的固有可靠性。以“核電廠安全級軟件需求階段”為例,做為軟件可靠性設計的源頭,軟件需求規格(SRS)記錄軟件的所有需求,對于保證最終軟件產品的可靠性屬性至關重要。結合法規標準要求以及核電廠設計建設經驗,為了保證執行核電廠安全功能軟件的可靠性要求,SRS 編制時除了常規的功能性描述外,還需重點關注[10]以下幾個方面。
①對硬件或者軟件進行的變更是否在SRS 中記錄?功能需求是否已獨立驗證?
②每個需求是否都無歧義表達?功能需求作為一個整體能否相互協調?
③每個功能需求是否都能夠檢驗,或者通過檢查,或者通過測試?
④子程序調用、遠程過程調用,通信信道是否清晰表述?
⑤每個信息的傳送方法和介質是否定義?
⑥靜態運行要求是否充分描述?是否有完整清晰的時序要求?
⑦每個軟件需求是否可測試?可靠性和安全要求是否獨立定義?
⑧在系統危險分析中確認的每個危險是否都能夠追蹤到一個或者多個軟件需求,它們會防止、抑制或者減輕這些危險?
⑨如果軟件被要求診斷硬件或者軟件錯誤,所檢測的錯誤的等級是否將被分級?
研究表明,軟件之所以不可靠,一是與軟件中存在的缺陷有關,二是與軟件使用相關。軟件缺陷是導致軟件失效、影響軟件可靠性的根源,沒有缺陷,軟件就絕對可靠。因此為了保障軟件可靠性,可以有兩種設計途徑:一種是3.1 節所討論的軟件避錯設計,體現了以預防為主的思想,避錯設計適用一切類型的軟件,應當貫穿軟件開發的全過程;另一種則是“軟件容錯設計”[4]。
面對日益龐大、復雜的軟件系統,不論其設計如何精心,軟件仍然難免存在缺陷。因此軟件通過避錯設計不能做到沒有缺陷,只能讓軟件達到一定程度的可靠性,對有高可靠性要求或失效后果可能為災難性的系統,僅僅采用避錯設計是不能滿足要求的。錯誤容忍是最后一道防線。其目的在于將允許系統檢測錯誤并且避免失效的技術;或者檢測錯誤并從其所導致的錯誤中恢復的技術,其中隱含的哲理是縱深防御[6]。
以某核電廠數字化儀控保護系統為例,當系統在容錯設計的軟硬件支撐環境下,由Watchdog 定時器監控每一個進程的運行狀態。當系統由于外部干擾等原因使程序故障進而引起該進程工作步長超過其Watchdog 定時值時,Watchdog 捕捉了這一狀態,中斷服務子程序識別了該進程,并執行了一系列識別修復步驟。首先,即時檢查系統設置的RAM 保護區是否被改寫,采集的數據是否在合理范圍內。例如:保護溫度值的第一字節的值必須在0 ~50 之間,除此之外的任何值都說明是被破壞的非法數據。通過重讀控制輸出反饋狀態值,判定控制輸出是否正確,將運行處理結果與系統設置的一組標準范圍值相比較,確定是否要修正。根據診斷的故障類型和性質,可提出不同的修復決策。如出現反復性破壞RAM 工作區等不可修復故障,則強行報警、切換后投入系統復位,實行人工干預排錯處理。
在筆者所了解到的核電廠軟件可靠性設計方法中,除了3.1、3.2 所描述的方法外,目前科研工作者仍在不斷地擴展軟件可靠性設計研究方法,例如FMEA/FMECA、makov 法、Petri 網分析法等,但是考慮到其種種限制使用條件(如輸入數據、分析工具、龐大的數據量等),相關方法仍未在核電領域得到廣泛工程采用。
FMEA/FMECA 是用于分析故障和發現故障樹終端事件的系統性方法。其應用重點在早期系統設計階段和軟件開發過程的早期(如需求分析與概要設計階段),用于發現與功能和性能有關的、軟件需求或體系結構等存在的缺陷,以盡早完善需求分析和概要設計,從而影響設計以降低風險。
Markov 模型是一種用于捕捉系統狀態以及狀態間轉換概率的統計模型,其刻畫的系統狀態變遷過程就是Markov 過程。Markov 過程的特性是無后效性,即對于一個系統,由一個狀態轉換至另一個狀態的轉換過程中,存在轉移概率,并且這種轉移概率可以依據其緊接的前一狀態推算出來,與系統的原始狀態和此次轉移前的Makov 過程無關。
Petri 網分析法是一種系統的數學模型和圖形分析技術,可用來模擬和分析復雜系統的同步、并發、分布、沖突、資源共享等現象,以及關鍵安全的系統諸如可恢復性、可達性、死鎖及故障容限等方面的特性。Petri 網分析法是一種動態分析方法,根據所構造的Petri 網模型,可以得到系統的結構和動態行為等方面信息。在Petri 網中,系統的狀態用庫所表示,改變狀態的事件用變遷表示,令牌用來模擬系統的行為及其并發活動。它可以清晰地說明狀態轉移的進程,并可轉化為數學邏輯表達式。
目前,越來越多的基于軟件的系統和設備在核電站儀控系統得到大規模應用,因此軟件的可靠性問題已成為數字化核電廠設計與制造過程中必須要解決的重要安全問題。上述背景之下,本文通過梳理國內外針對核電站數字化儀控系統軟件可靠性的相關標準要求,結合國內核電廠軟件可靠性工程研究經驗,完成了核電廠關鍵軟件的可靠性標準要求及方法研究,以期對我國核電安全級軟件可靠性評估策劃和實施提供借鑒。
[1] 王文東.軟件可靠性保證與評測技術[J].微機發展,2004(11):104 -106.
[2] 魏穎.航天載荷應用軟件可靠性參數的分析與確立[J].計算機工程與設計,2008(10):2564 -2566.
[3] 蔡開元.軟件可靠性概要[J].系統工程與電子技術,1993(4):45 -47.
[4] 宮云戰.軟件測試與軟件可靠性之間的關系[J]. 同濟大學學報:自然科學版,2002(12):967 -978.
[5] 朱起悅.軟件可靠性的定量評估[J].電子產品可靠性與環境試驗,2003(4):30 -32.
[6] 吳玉美,陸民燕,阮鐮.軟件可靠性加速測試方法研究[J].計算機工程與應用,2006(8):40 -43.
[7] IEC 60880 - 2006 Nuclear power plants - instrumentation and control systems important to safety -software aspect for computerbased systems performing category a functions[R].2006.
[8] BTP 7 -14 guidange on software reviews for digital computer-based instrumentation and control systems[R].2007.
[9] NUREG/CR-6430:software safety hazard analysis[S].1996.
[10]NUREG/CR - 6101:software reliability and safety in nuclear reactor protection systems[R].1993.