谷鵬飛,劉子寅,席 望,黃偉軍
(1.中廣核工程有限公司設計院,廣東 深圳 518124;2.哈爾濱工程大學,哈爾濱 150000)
控制系統是整個核電廠的“中樞神經”系統,它對確保核電廠的安全、經濟運行起著至關重要的作用,是核電站的關鍵技術和設備。信息系統作為核電站的重要組成部分,是支持核電廠生產、運營管理、專家診斷、事故下應急決策的關鍵系統,對核電廠運行安全和業績的提升起到重要作用。
20世紀六七十年代,世界各國核電廠的控制系統主要采用的是模擬技術儀控系統,它主要基于模擬技術,通過分立元件或者模擬集成電路以硬接線的方式實現控制顯示功能。模擬技術儀控系統經過長時間的應用與研究,在設計和應用方面已經積累了豐富的經驗,此外其具有響應速度快,設備的檢驗和分析鑒定相對簡單,設計制造成本較低等優點,而且系統的可靠性和安全性也能滿足要求,所以世界各國大多數在運行的核電站直至本世紀初仍然使用模擬技術儀控系統。
隨著近20年來控制和信息技術的日益成熟,加之用戶對控制功能和管理需求的提升,以及核電二代加、三代甚至四代堆型的推出,數字化儀控系統開始全面進入核電應用,在各新建、預建和改造的核電項目中都采用數字化儀控平臺,在絕大多數項目中安全系統也采用數字化技術,從而實現全數字化儀控系統。
數字化儀控系統(DCS)與傳統的模擬式控制系統相比,系統運行更加安全、可靠,系統的適應性、靈活性和可擴充性強,可以實現信息的在線性與實時性。同時,還減少控制室面積,減少運行、檢修人員工作量,結合更多的智能型終端設備,可以節約控制電纜。
數字化儀控系統的采用在具有極大優越性的同時,也帶來了一些新的問題,尤其是如何確保軟件能完整地、正確地滿足預期的安全功能和性能要求,即確保軟件不出現失效的情況。軟件的失效容易產生共因故障,從而導致核電站整個保護系統的失效,使得儀控系統的停堆功能和專設功能不能有效地被執行,進而危及核電站的安全。
由于軟件的可靠性數據難以采集,失效模式無法像硬件失效那樣分門別類,這些都給軟件失效分析與評價工作帶來了巨大的挑戰。因此,軟件失效分析與評價工作還處于研究之中。
相比而言,對于軟件功能可以通過軟件驗證和確認(V&V)[1,2]進行保障,但是在核電領域,針對軟件安全性[3]分析的工作還處于起步階段,正在逐漸引起高度重視。
2010年10月,伊朗遭受Stuxnet病毒的攻擊,導致布什爾核電站推遲發電。Stuxnet蠕蟲病毒是世界上首個專門針對工業控制系統編寫的破壞性病毒,能夠利用對Windows系統和西門子SIMATIC WinCC系統的7個漏洞進行攻擊。由于該系統在國內的多個重要行業應用廣泛,被用來進行鋼鐵、電力、能源、化工等重要行業的人機交互與監控。據研究,通過U盤傳播,該病毒可以改變離心機的轉速從而破壞離心機,并向控制臺仍發出離心機工作正常的信號。
由于許多隱蔽性強的或非多發性的錯誤很難被設計人員察覺,僅僅依靠設計技術的改進仍然不足以解決安全性問題,這就需要一套嚴格的安全性分析程序和安全性分析方法,如結合軟件V&V的工作,以預防安全事故發生或在發生事故時減少危害程度,軟件安全性分析的意義和價值正在于此。
隨著數字化技術逐漸在核電站的應用,核電領域安全級軟件的V&V工作受到廣泛的關注,尤其是針對安全級數字化儀控系統的軟件V&V。核電站安全級數字化儀控系統的軟件V&V是保證安全級數字化儀控系統安全性和可靠性的必要環節,通過V&V全流程驗證的軟件才能確保其安全級數字化儀控系統的安全性和可靠性,安全級數字化儀控系統才能被允許應用到核電站工程,如圖1所示。

圖1 核電站安全級數字化儀控系統的軟件V&V流程Fig.1 V&V of safety class digital I&C system in NPP
核電站安全級數字化儀控系統軟件的V&V活動為保證其有效性,必須遵循國內HAF 102-2004[3]、HAD 102/16-2004[4]等核安全法規和導則的要求,同時滿足IEC 60880-2006[5]、IEEE 7-4.3.2-2010[6]等核安全標準的要求。在V&V執行過程和V&V方法上,選擇IEEE 1012-2012[7]作為主要指導標準。
從實際執行來看,IEEE 1012規定了V&V每個階段所要驗證和確認的內容,也涉及到軟件的危害性、風險性分析,但并沒有把軟件安全性分析納入各階段的工作內容,如圖2所示。
根據軟件開發的生命周期模型,后續核電站關鍵軟件的V&V工作應逐步考慮開展軟件安全性分析工作,具體可以按照下列步驟進行。
在概念V&V階段,應該確認軟件安全性等級,并制定相關的工作計劃(可以納入V&V工作大綱)。軟件安全性等級的不同,對于軟件的要求也不同,對于核電站安全級數字化儀控系統,應該按照高等級的要求來執行。
在需求V&V階段,應該獲取軟件安全性的相關需求,并驗證軟件安全性需求的正確性、一致性等內容。軟件安全性需求也應該納入軟件V&V的需求矩陣一并進行跟蹤確認。
在軟件設計階段,應該進行軟件安全性分析,并對安全性進行驗證。這里的安全性驗證主要是針對設計方案的安全性進行驗證。
在軟件實現階段,應根據軟件安全性需求驗證代碼是否達到了預期的安全性要求。對于代碼的安全性驗證,需要在設計代碼測試用例時考慮安全性的需求。
在軟件集成測試階段,應通過仿真的方式對軟件的安全性進行功能測試。功能測試是黑盒測試,需要借助于一定的工具來執行。
隨著信息化技術的日益發展,軟件安全性分析工作必將越來越重要。本文所闡述的方法不僅適用于核電站安全級數字化儀控系統軟件,也適用于核電站其他關鍵設備軟件的安全分析工作,對于非核項目也具有很好的通用性。

圖2 核電站安全級數字化儀控系統的軟件安全性分析流程Fig.2 Software safety analysis of safety class digital I&C system in NPP