艾九斤,李運堅,李相建
(北京廣利核系統工程有限公司,北京100094)
核電廠數字控制系統是保障核電廠安全運行的核心,尤其是保護控制系統(簡稱 “安全級”),而國內在役和在建核電廠的保護控制系統均為國外引進,這使得核電廠建造和運行成本大幅提高,為了解決這一問題,提出了核電廠保護控制系統國產化的目標。在保護控制系統國產化的過程中,除了對硬件的質量嚴格要求外,還要保證軟件的安全性,為了提高軟件的安全性,需對核電廠保護控制系統應用軟件開發過程中的危險進行分析。目前核電廠保護控制系統國產化才剛剛起步,還未建立對核電廠安全級應用軟件開發過程的危險分析體系。因此針對這一現狀,結合CPR1000(中國改進型壓水堆核電站)項目的工程實踐,對核電廠安全級應用軟件的開發過程進行驗證和確認(verification &validation,V&V)活動,對應用軟件開發過程中的危險進行分析。
在對核電廠內執行安全重要功能的安全級系統進行系統設計時,需對系統設計方案進行全面的危險分析以提高系統的預期安全性。所謂危險,是指可能導致事故發生的一種狀態,它是發生事故的先決條件,危險與事故的關系如圖1所示??赡軐е率鹿实臓顟B有物質狀態、環境狀態和人員活動狀態以及它們的組合。為了提高系統設計的安全性,應分析、識別出系統設計方案中的危險因素并對其采取必要的控制措施,使系統獲得最佳的整體安全性。
圖1 危險與事故關系
在系統設計驗證(verification1,V1)階段,通過分析標準法規以及合同技術條款等對于安全保護系統的基本要求,識別出系統設計中的潛在危險。以CPR1000某項目為例,在V1階段,通過識別危險項并對危險因子以及危險事故所產生的后果進行分析,識別出系統設計在環境、安全性、可靠性等方面存在的潛在危險。在V1階段識別出的部分危險項,以及觸發危險事故的危險因子和事故的后果見表1。
在識別出危險項后應對引發危險的危險因子及危險的后果進行分析,以建立危險緩解策略來減小或避免危險帶來的后果。在V1階段采用基于安全保護層模型的分層危險分析策略,將表1中的危險項根據觸發危險的因子和事故后果的影響程度,從安全保護層模型的固有安全層、控制和監視層、防護層、抑制減輕層進行分析。
表1 系統設計危險項識別
(1)固有安全層:固有安全層是指通過工藝技術的選擇、設備結構設計的考慮、操作參數的設置等因素,減輕或消除潛在的危險。對于核電廠來說永遠存在著發生地震的潛在危險,該危險發生的概率非常低,但后果卻是災難性的。通過對固有安全層的安全級機柜進行有效的抗震設計來緩解地震帶來的潛在危險。
(2)控制和監視層:控制和監視層通過基本過程控制系統的常規控制、過程報警和操作人員的操作,將工藝過程參數控制在正常操作設定值以內。不當的接口設計將使系統過分復雜化,給安全級與非安全級間的監視、報警等信息的傳遞帶來潛在的危險。通過簡化各系統軟件間的接口,采用高速、有效、可靠的通信方式來減小控制和監視層的危險。
(3)防護層:防護層的基本功能是試圖減少危險事件發生的頻率,使工藝過程取得或保持安全狀態。在防護層中存在因特定單一事件引起的兩個或多個系統、部件功能失效的共因故障的潛在危險。在防護層采用設備多樣性和功能多樣性設計來緩解共因故障的潛在危險。
(4)抑制減輕層:抑制減輕層的作用是降低危險事件發生的后果。在抑制減輕層中存在因反應堆跳堆響應時間超時而導致核安全事故的潛在危險。通過嚴格驗證的方法來確保反應堆跳堆響應時間滿足設計要求。
軟件需求是系統需求的子集也是進行軟件設計的基礎,軟件需求應包含系統需求分配給軟件的各項約束,具體包括安全要求和潛在的故障狀態,在各種運行模式下的功能需求和運行要求,以及性能指標、故障探測、安全監測和安全防范等要求。
在軟件需求驗證(verification2,V2)階段,為了能夠全面評估可能會涉及的危險因素,采用了預先危險分析法(preliminary hazard analysis,PHA)對軟件需求中的潛在危險進行分析。預先危險分析法是對一個系統或子系統存在的危險類別、出現條件及可能造成的后果進行的一種定性分析。其目的是識別出危險,鑒別危險產生的原因及事故后果,對已識別的危險進行分級,確定安全設計準則,并提出減輕或控制危險的緩解策略。
2.1.1 預先危險分析表
在進行V2活動時,應根據系統設計要求、用戶安全要求、安全標準法規文件和以往的實踐經驗,對軟件需求進行分析和驗證,列出需要進行分析的危險項或因素,并制定預先危險分析表(preliminary hazard list,PHL),以確定預先危險分析的待分析危險項。在CPR1000某項目中,V2階段識別出的部分危險見表2。
2.1.2 預先危險分析
(1)安全性危險分析:為了提高反應堆控制的安全性,降低潛在的危險。在軟件需求驗證中通常從以下幾個方面對影響軟件需求的危險因素進行分析:①安全功能分級,將不同安全級別的功能分配到相應的安全級設備中去執行,可以避免非安全功能級別的故障影響安全級別的功能。②設備冗余設計,為了使保護系統滿足單一故障準則,提高反應堆的安全性??蓪Π踩O測通道進行冗余設計,如在保護系統中廣泛采用二重,三重或四重通道。③邏輯符合設計,為了使保護系統的設計盡量滿足可靠性和安全性的要求,采用邏輯符合設計原則,也就是在保護系統動作之前必須有兩個或兩個以上的冗余信號相一致。④多樣性設計來降低共因故障的可能性。
表2 軟件需求初步危險分析(PHL)
(2)防御性危險分析:核電廠保護控制系統在發生共模故障時,存在喪失保護功能的危險。為了防止共模故障帶來的危險,可以采用縱深防御的設計策略。縱深防御在CPR1000項目安全級軟件設計中的體現有:①反應堆保護系統有4個保護通道,每個通道彼此實現電氣隔離;②反應堆保護系統采用雙子系統,兩個子系統彼此實現軟件的隔離;③將相同功能的設備邏輯分開到不同的專設驅動功能子系統中。
(3)故障探測危險分析:如果探測設備或線路故障,存在因保護系統不能使反應堆進入到安全狀態的危險。為了緩解故障探測的危險,反應堆保護系統進行了以下設計:①采用四通道冗余設計;②對模擬量信號的量程、質量位以及計算的有效性等進行監測;③采用降級邏輯設計,如四取二邏輯降級為三取二。
(4)可試驗性危險分析:在核電廠運行期間對保護系統進行定期試驗,存在著參數修改、設備誤動作等人為因素帶來的危險。為了緩解因定期試驗帶來的危險,設計了AT(automatic tester)系統來進行定期試驗。采用AT對保護系統進行定期試驗可以將系統的危險累積降低到較低的水平。
軟件組態設計是利用軟件組態工具和面向應用的程序設計語言將軟件需求轉化為可實現的軟件設計方案的過程。在軟件組態階段可能存在著因人為因素、邏輯設計、接口方式等方面的問題而給軟件設計和運行帶來潛在的危險。為了降低組態設計中的危險性,對軟件組態設計進行驗證,通過對組態設計過程及設計輸出結果進行驗證來發現軟件組態設計中的問題。
2.2.1 人為因素危險
人對組態過程的影響主要來自于組態時的人為錯誤,這些錯誤突出表現為組態不符合組態規范。在CPR1000項目的軟件設計驗證(verification3,V3)階段,對組態是否符合組態規范進行驗證,并對驗證結果采用故障樹分析的方法分析人為因素給軟件組態設計帶來的潛在危險。
以CPR1000某項目中反應堆保護柜第二通道(reactor protection cabinet II,RPC-II)通道軟件組態為例,假設故障=組態規范不符合,基本故障=不符合項,引發事件=人為組態錯誤。定義故障發生率=P,基本故障發生率=P(A),引發事件發生率=P(B)。根據故障樹分析模型可知當引發事件發生時引發基本故障發生,最終導致故障的發生,則P=P(A)×P(B)。為了便于分析將人為組態錯誤發生率P(B)定為0.01。在V3階段RPC-II發現的不符合項統計情況見表3,故障樹分析結果見表4。
表3 V3階段RPC-II不符合項統計
表4 V2階段RPC-II故障樹分析結果
通過對表4的結果進行分析,發現跳轉不符合組態規范的發生率高達28.4%,而在假定人為組態錯誤發生率為1%時,跳轉不符合規范的故障率為0.284%,從而可見人為因素對組態的影響非常顯著。
2.2.2 邏輯符合危險
軟件組態設計中最重要的是邏輯符合,同時邏輯符合也是最難達到的。因為,邏輯設計不只是將設計輸入的模擬圖或邏輯圖等功能圖簡單地轉化為組態圖,同時還要確保轉化中的完整性、準確性、一致性,并且沒有引入非預期功能和危險,從而最終實現工藝系統及安全功能的要求。在V3階段對CPR1000某項目進行邏輯驗證時,對識別出的部分危險采用事件樹的分析方法,從設計輸入、工藝及安全功能要求等方面對危險因素進行分析。事件樹分析方法,常用于分析在不同防護或抑制措施生效或失效狀態下,分析危險發生的概率及發生的后果。為了便于分析對初始事件和中間事件發生的概率作了假定。
(1)RSS與KIC、BUP切換組態的潛在危險
在設計輸入中無運程停堆站(remote shutdown station,RSS)與 KIC(plant computer information &control system,電站計算機和控制系統)、后備盤(backup panel,BUP)之間的切換,在組態時存在因遺漏遠程控制而喪失遠程控制功能的潛在危險。采用事件樹分析方法對該危險進行分析,假定RSS與KIC、BUP切換組態遺漏發生的概率為0.1/次,V&V驗證人員成功驗證出組態遺漏的概率為0.9/次,未成功驗證出的概率為0.1/次,則 RSS與KIC、BUP切換組態遺漏的事件樹分析結果如圖2所示。
圖2 RSS與KIC、BUP切換危險事件樹分析
(2)降級邏輯設計復雜化帶來的潛在危險
在驗證降級邏輯時,發現有降級邏輯組態復雜化的情況出現。降級邏輯組態復雜化會導致軟件復雜化,進而降低系統的響應速度,最終降低系統的可靠性。為了便于分析,假設降級邏輯復雜化設計的概率為0.1/次,導致軟件復雜化概率為0.9/次,軟件未復雜化概率為0.1/次,響應時間增加的概率為0.9/次,響應時間未增加的概率為0.1/次,則降級邏輯設計復雜化的事件樹分析結果如圖3所示。
圖3 降級邏輯設計復雜化事件樹分析
在CPR1000項目中,安全級工程應用軟件的實現階段是將設計好的組態轉化為計算機能識別的機器語言,然后下裝到保護控制系統的主控器運行。軟件實現階段是對軟件設計的檢驗,對軟件實現的危險分析將從以下幾個方面進行分析。
在CPR1000項目中,將應用軟件組態圖通過組態軟件轉化為計算機代碼,由于采用軟件進行代碼轉換,所以會存在由于編譯器、鏈接器等原因造成的轉換錯誤等潛在危險。為了降低代碼轉換帶來的潛在危險,一方面需要選擇具有良好使用業績和遵循嚴格質保過程開發的可靠編譯工具,另一方面需在軟件實現驗證階段(verification4,V4)對代碼轉換進行驗證。驗證的內容包括:
(1)驗證用于代碼轉換的工具軟件本身是否可靠,應用業績是否可信,是否經過權威機構認證,并且轉換規則和轉換過程是否符合相應標準;
(2)對轉換后的代碼進行審查,驗證代碼是否具備可讀性和可追溯性,編碼方式是否滿足指定的編碼規范,是否正確實現了組態的功能,是否沒有引入非預期功能等。
代碼的可測試性是衡量代碼質量的重要因素。除考慮是否滿足邏輯要求外,還需考慮是否具備可測試的特征,以便能快速查找出代碼中的錯誤。
由于組態人員的風格、習慣存在差異,加之組態工具自身還不十分完善,導致對相同的邏輯可能會出現不同風格的組態或將組態復雜化,因而在將其轉換為代碼后可能會存在因代碼結構復雜,執行語序不一致帶來的可測性降低的潛在危險。
為了減小代碼可測性的潛在危險,在軟件組態設計階段應嚴格按組態規范進行組態設計,在滿足設計需求的前提下盡量簡化組態步驟,使其轉換為計算機代碼后具備可測試性。
在CPR1000項目實踐中,采用驗證與確認的方法,并結合安全保護層模型、預先危險分析、故障樹分析和事件樹分析的方法對安全級應用軟件的開發過程進行危險分析,分析的結果見表5。
表5 安全級應用軟件開發過程危險識別結果
為了提高核電廠DCS安全級應用軟件的安全性,對安全級應用軟件的開發過程采用驗證和確認的方法,從危險發生的概率、產生的后果對危險進行分析。同時將安全保護層模型、預先危險分析、故障樹和事件樹分析應用于危險分析中,對已識別的危險從影響危險發生概率和后果的因素進行分析,為建立危險緩解策略提供了分析依據。實踐表明,采用驗證與確認的方法,結合安全保護層模型、預先危險分析、故障樹和事件樹分析能有效地發現和緩解核電廠DCS安全級應用軟件開發過程中因環境、人因、技術實現等因素造成的危險,從而實現提高核電廠DCS安全級應用軟件安全性的目的。
[1]ZHOU Sheng,WANG Gehua.The development situation of international nuclear energy [J].Science and Technology Newspaper,2006,24(6):15-17(in Chinese). [周勝,王革華.國際核能發展態勢 [J].科技導報,2006,24(6):15-17.]
[2]OU-YANG Yu.Technology development situation of overseas nuclear electricity [J].China Nuclear Industry,2006,18(1):23-26(in Chinese). [歐陽予.國外核電技術發展趨勢[J].中國核工業,2006,18(1):23-26.]
[3]IEEE Std 1012TM–2004.IEEE standard for software verification and validation [S].
[4]HAD 102/16.The safety important system of nuclear power plant based on computer [S](in Chinese).[HAD 102/16.核動力廠基于計算機的安全重要系統軟件 [S].]
[5]ZHANG Jianguo.The application of safety instrument system in industry [M].Beijing:China Electric Power Publishing Company,2010:74-93(in Chinese). [張建國.安全儀表系統在過程工業中的應用 [M].北京:中國電力出版社,2010:74-93.]
[6]ZHOU Haixiang.Data communication of TXP/TXS system in Tianwan nuclear power plant [J].Nuclear Power Engineering,2006,27(3):67-70(in Chinese). [周海翔.田灣核電廠TXP/TXS系統的數據通信 [J].核動力工程,2006,27(3):67-70.]
[7]SHEN Guangyao.Software safety assurance framework and safety technology application [D].Beijing:Beijing Institute of Information and Control,2005:10-29(in Chinese). [申光耀.軟件安全性保障框架及安全性技術應用 [D].北京:北京信息控制研究所,2005:10-29.]
[8]GB/T20438-2006.The safety function of electric,electron and programmable logic device [S](in Chinese). [GB/T20438-2006.電氣/電子/可編程電子安全相關系統的功能安全 [S].]
[9]Willianm M Goble.Control systems safety evaluation &reliability [M].BAI Yan,DONG Ling,YANG Guotian,transl.Beijing:China Electric Power Publishing Company,2008:55-99(in Chinese).[威廉·戈布爾.控制系統的安全評估與可靠 [M].白焰,董玲,楊國田,譯.北京:中國電力出版社,2008:55-99.]
[10]CCPS,Guidelines for safe and reliable instrumented protective systems [S].American Institute of Chemical Engineers,2007.
[11]WANG Duozhi.A study on the research and implement about safety analysis theory based on the requirement analysis [D].Changsha:National University of Defense Technology,2005:29-40(in Chinese).[王多智.基于需求分析的安全分析理論研究及實現 [D].長沙:國防科學技術大學,2005:29-40.]
[12]GJB/Z 1391-2006.Failure mode and infection and harm analysis guide [S](in Chinese). [GJB/Z 1391-2006.故障模式、影響及危害性分析指南 [S].]
[13]LU Minyan,HAN Fengyan.The quality and reliability management for software of equipment [M].Beijing:National Industry Publishing Company,2006:60-89(in Chinese).[陸民燕,韓峰巖.裝備軟件質量和可靠性管理 [M].北京:國防工業出版社,2006:60-89.]
[14] WU You-nian.Invalidation mode research [D].Beijing:School of Electronic Engineering,Beijing University of Aeronautics and Astronautics,2007:45-65(in Chinese). [吳有年.失效模式研究 [D].北京:北京航空航天大學,2007:45-65.]
[15]NIE Miao.Technology of failure mode and effects analysis research and software system development [D].Hefei:Hefei University of Technology,2007:30-60(in Chinese). [聶淼.FMEA技術研究與軟件系統發展 [D].合肥:合肥工業大學,2007:30-60.]