(北京廣利核系統(tǒng)工程有限公司,北京 100094)
目前,在新建核電站的安全重要系統(tǒng)中開始普遍采用數(shù)字化技術(shù)——安全級DCS對安全重要設(shè)備進(jìn)行控制。DCS通過微處理器運(yùn)行軟件實(shí)現(xiàn)控制功能,和傳統(tǒng)的模擬技術(shù)相比,DCS具有不易老化、便于變更和維護(hù)、可對故障自診斷等優(yōu)點(diǎn),但同時可能會因為發(fā)生微小軟件錯誤而造成系統(tǒng)出現(xiàn)不可預(yù)期的響應(yīng),或因為采用共享的數(shù)據(jù)、代碼的設(shè)計而通過軟件錯誤傳播共因故障,使硬件體系構(gòu)建出現(xiàn)多重性失效[1]。為了降低數(shù)字化儀控系統(tǒng)的軟件設(shè)計風(fēng)險,使系統(tǒng)達(dá)到足夠的可信度,軟件設(shè)計過程須遵循核安全相關(guān)法規(guī)、導(dǎo)則和標(biāo)準(zhǔn)的相關(guān)要求[2]。
DCS中運(yùn)行的軟件主要包括系統(tǒng)軟件和應(yīng)用軟件兩大部分[3],本文通過對應(yīng)用軟件設(shè)計相關(guān)標(biāo)準(zhǔn)進(jìn)行分析,進(jìn)而探索應(yīng)用軟件的設(shè)計過程和方法。
應(yīng)用軟件功能范圍示意圖如圖1所示。
圖1 應(yīng)用軟件范圍示意圖
應(yīng)用軟件和系統(tǒng)軟件均集成在DCS控制器中。應(yīng)用軟件是為了某種具體應(yīng)用而開發(fā)的,是根據(jù)電站工藝需求設(shè)計運(yùn)算程序,并由軟件工具編譯生成的程序。安全級DCS的應(yīng)用軟件用于實(shí)現(xiàn)電站的保護(hù)控制功能。當(dāng)核電站運(yùn)行時,首先通過I/O模塊采集現(xiàn)場傳感器的信號或通過網(wǎng)絡(luò)通信接收其他系統(tǒng)或控制站的信號輸入給控制器;然后由控制器通過運(yùn)行系統(tǒng)軟件來調(diào)用執(zhí)行應(yīng)用軟件,完成功能邏輯運(yùn)算,并發(fā)出控制信號來控制執(zhí)行機(jī)構(gòu)(如泵、閥等)。
在國際上主要應(yīng)用的標(biāo)準(zhǔn)體系中,以IEEE標(biāo)準(zhǔn)為主的美國標(biāo)準(zhǔn)體系較為完善,其對實(shí)際工程應(yīng)用具有很強(qiáng)的指導(dǎo)意義。美國核管會(NRC)作為美國核電站的安全審查機(jī)構(gòu),通過其發(fā)布的審查導(dǎo)則背書到相關(guān)IEEE標(biāo)準(zhǔn),確立了這些標(biāo)準(zhǔn)的法律地位。NRC發(fā)布的審查導(dǎo)則也是中國核安全審查的主要參照[4],因此依據(jù)NRC認(rèn)可的標(biāo)準(zhǔn)進(jìn)行設(shè)計會比較容易通過安全審查。NRC發(fā)布的BTP7-14是針對數(shù)字化儀控系統(tǒng)軟件的審查導(dǎo)則[5],并通過各個專項審查導(dǎo)則背書了相應(yīng)IEEE標(biāo)準(zhǔn),美國導(dǎo)則、標(biāo)準(zhǔn)表如表1所示。
表1 美國導(dǎo)則、標(biāo)準(zhǔn)對照表
在應(yīng)用軟件設(shè)計過程中,各標(biāo)準(zhǔn)的應(yīng)用關(guān)系如圖2所示。其中IEEE 7- 4.3.2作為一個最頂層標(biāo)準(zhǔn),對軟件設(shè)計具體的活動要求,另外還關(guān)聯(lián)了一些標(biāo)準(zhǔn),如IEC 12207“系統(tǒng)和軟件工程-軟件生命周期過程”,在IEEE 7- 4.3.2和IEEE 1012中均進(jìn)行了關(guān)聯(lián)[6-7],并且IEEE已將其轉(zhuǎn)化成IEEE 12207-2008,納入了IEEE的標(biāo)準(zhǔn)體系。
IEC 60880“核電廠安全重要儀表和控制系統(tǒng)執(zhí)行A類功能的計算機(jī)軟件”可用于指導(dǎo)安全級DCS軟件設(shè)計,其按照軟件生命周期過程對軟件的開發(fā)提出了指導(dǎo)性意見。IEEE 7- 4.3.2-2010(5.3.1)提出軟件質(zhì)量保證過程可以參照IEC 60880-2006要求[6]。
安全級DCS應(yīng)用軟件的設(shè)計首先應(yīng)依據(jù)RG1.173和IEEE 1074開發(fā)軟件生命周期過程。軟件生命周期的作用是通過控制軟件設(shè)計和開發(fā)的過程來保證質(zhì)量。根據(jù)NUREG 0800附錄7.0-A的見解,軟件生命周期過程可按計劃、需求、設(shè)計、實(shí)現(xiàn)、集成、確認(rèn)、安裝、運(yùn)行、維護(hù)這幾個階段開展。
在計劃階段,應(yīng)形成一套按生命周期過程開發(fā)的計劃文件,對應(yīng)用軟件開發(fā)過程確立一個承諾,從而保證應(yīng)用軟件按一個嚴(yán)格要求的過程進(jìn)行開發(fā)。各個計劃制定需要參照的相關(guān)標(biāo)準(zhǔn)如表2所示。
在需求階段,應(yīng)依據(jù)RG1.152和IEEE 7- 4.3.2、RG1.172和IEEE 830制定軟件需求,IEEE 830明確了軟件需求規(guī)格書的文檔結(jié)構(gòu)以及應(yīng)包含的內(nèi)容。設(shè)計和實(shí)現(xiàn)階段是開展具體的設(shè)計活動,實(shí)現(xiàn)軟件需求規(guī)格書及電站安全級控制功能的要求。在確認(rèn)階段,是通過測試來確認(rèn)集成應(yīng)用軟件后的系統(tǒng)是否滿足功能、性能需求。該階段應(yīng)依據(jù)RG1.171和IEEE 1008要求執(zhí)行軟件單元測試,并應(yīng)依據(jù)RG1.170和IEEE 829要求形成測試文檔。
在整個生命周期過程中的各個階段,需要依據(jù)RG1.168、IEEE 1012和IEEE 1028執(zhí)行驗證和確認(rèn)(V&V)活動,檢驗每一階段的輸出成果是否滿足前一階段的要求。IEEE 1012提出了軟件V&V的過程及要求,IEEE 1028描述了如何進(jìn)行軟件審查、檢查、走查和技術(shù)審查以及管理審查。RG1.152和IEEE 7- 4.3.2作為頂層指導(dǎo)標(biāo)準(zhǔn)對軟件研制做了要求,并提出應(yīng)依據(jù)IEEE 1012進(jìn)行V&V、依據(jù)IEEE 1042進(jìn)行軟件配置管理。軟件開發(fā)的整個過程都要由依據(jù)RG1.169、IEEE 828、IEEE 1042制定的配置管理計劃進(jìn)行配置管理,對基線、版本、變更和軟件文檔等進(jìn)行管理控制。
根據(jù)上述標(biāo)準(zhǔn)中對應(yīng)用軟件生命周期過程的定義,得到應(yīng)用軟件的設(shè)計過程,具體包括:
① 制定軟件計劃,并生成相應(yīng)的計劃文檔;
② 依據(jù)電站對I&C的需求進(jìn)行軟件需求分析,并生成軟件需求規(guī)格書;
③ 根據(jù)軟件需求規(guī)格書進(jìn)行軟件設(shè)計,并生成相應(yīng)的設(shè)計文檔;
④ 根據(jù)設(shè)計文檔進(jìn)行軟件組態(tài),生成軟件組態(tài)文檔并編譯生成軟件代碼;
⑤ 將軟件代碼下裝到各個控制站中,并完成功能確認(rèn);
⑥ 軟件安裝;
⑦ 運(yùn)行和維護(hù)。
應(yīng)用軟件設(shè)計過程如圖3所示。設(shè)計過程的實(shí)施,應(yīng)保證完整性、連貫性、正確性、可追溯性、確定性和可驗證性。另外,軟件生命周期從需求開始的各個階段都要進(jìn)行安全性分析,出具V&V分析測試報告和配置管理(configuration management,CM)報告。
① 軟件計劃
軟件計劃是對整個開發(fā)過程以及各個活動的約束,通過這些計劃的實(shí)施應(yīng)可保證通過嚴(yán)格的開發(fā)過程而達(dá)到高可信度的質(zhì)量。這些計劃沒有要求必須獨(dú)立的文檔,因此可以將12個計劃集中在一個文檔中。
② 軟件需求
在軟件需求階段,應(yīng)結(jié)合數(shù)字化I&C系統(tǒng)架構(gòu),依據(jù)電站對I&C系統(tǒng)提出的需求進(jìn)行應(yīng)用軟件的需求分析,確定應(yīng)用軟件應(yīng)實(shí)現(xiàn)的功能,并編制《軟件需求規(guī)格書》進(jìn)行明確,軟件需求規(guī)格書應(yīng)描述軟件應(yīng)該做什么,而不是如何去做[8]。為了便于下一步能開展軟件設(shè)計,在軟件需求規(guī)格書中應(yīng)對各個控制站要實(shí)現(xiàn)的功能范圍、接口進(jìn)行明確。依據(jù)IEEE 830要求[9],軟件需求規(guī)格書應(yīng)對應(yīng)用軟件相關(guān)的外部接口需求、功能需求、性能需求、邏輯數(shù)據(jù)需求、設(shè)計約束和軟件系統(tǒng)屬性等進(jìn)行詳細(xì)的描述。
在進(jìn)行功能需求分析時,應(yīng)依據(jù)整體I&C系統(tǒng)需求中明確的功能分配原則對核電站的邏輯圖(如CPR1000核電站用的Logic Diagram/Analog Diagram)進(jìn)行詳細(xì)的功能邊界劃分及接口定義。功能邊界的劃分即明確各個控制站應(yīng)執(zhí)行的功能范圍;接口定義即明確控制站與外部連接的接口類型(如硬接線或通信),功能接口劃分圖紙應(yīng)作為軟件需求傳遞給下游的軟件設(shè)計。
③ 軟件設(shè)計
軟件設(shè)計階段是根據(jù)《軟件需求規(guī)格書》及鎖定的輸入基線文件(LD/AD),結(jié)合I&C系統(tǒng)所選擇的DCS平臺的特性,將功能需求轉(zhuǎn)化為應(yīng)用軟件,并形成相應(yīng)的設(shè)計文檔。應(yīng)用軟件的設(shè)計應(yīng)使用容易理解的圖形化符號、按模塊化進(jìn)行功能邏輯設(shè)計,軟件結(jié)構(gòu)應(yīng)簡單且容易理解。軟件設(shè)計文檔要保證和上游需求具有清晰的可追溯關(guān)系,以便于進(jìn)行設(shè)計檢查和V&V。
依據(jù)配置管理要求,設(shè)計時必須先確認(rèn)輸入文件的正確性、完整性,若發(fā)現(xiàn)輸入存在錯誤、疑點(diǎn)或輸入文件缺失,須向上游澄清、解決,然后對輸入基線進(jìn)行鎖定?;€鎖定后,設(shè)計只反應(yīng)本版基線中的設(shè)計要求,對基線鎖定后輸入發(fā)生的所有變更,均需要等確定下一版基線后升版。為了保證設(shè)計的可讀性,應(yīng)制定設(shè)計規(guī)范明確設(shè)計要求并統(tǒng)一設(shè)計風(fēng)格。為了保證和上游的可追溯性,每頁功能邏輯圖都須標(biāo)明所對應(yīng)的上游輸入文件名稱及位置。為了驗證對需求反應(yīng)的正確性和完整性,應(yīng)由不同的設(shè)計人員進(jìn)行嚴(yán)格的設(shè)計檢查。如果通過人工檢查,則須將功能邏輯圖對照上游輸入圖紙(LD/AD)逐頁對應(yīng)核查,對各個功能邏輯算法的設(shè)計應(yīng)一一確認(rèn)并進(jìn)行標(biāo)記,核查出的問題須形成問題記錄單,并跟蹤解決。
設(shè)計輸出文檔應(yīng)包括:《軟件設(shè)計規(guī)格書》,對應(yīng)用軟件設(shè)計進(jìn)行說明;《功能邏輯圖》,用于應(yīng)用軟件功能組態(tài);《I/O清單》,對控制相關(guān)的硬接線接口進(jìn)行定義;《網(wǎng)絡(luò)通信清單》,對控制相關(guān)的通信接口進(jìn)行定義;《設(shè)定值清單》,設(shè)定應(yīng)用軟件運(yùn)行需要的各參數(shù)(如安全閾值等)。
④ 軟件實(shí)現(xiàn)
軟件實(shí)現(xiàn)是將軟件設(shè)計輸出文檔中的功能邏輯圖、I/O清單、設(shè)定值清單、網(wǎng)絡(luò)通信清單通過組態(tài)工具導(dǎo)入(自動導(dǎo)入或手動導(dǎo)入)生成軟件組態(tài)圖,進(jìn)而編譯生成控制器可執(zhí)行的軟件代碼。軟件組態(tài)和軟件代碼也要形成相應(yīng)文檔,以便通過V&V驗證軟件實(shí)現(xiàn)和設(shè)計的一致性。
因為應(yīng)用軟件須通過編譯器編譯生成代碼才能由控制器執(zhí)行,所以代碼生成的正確性是V&V關(guān)注的焦點(diǎn)。HAD102/16提出,如果使用沒有充分測試過的編譯器,應(yīng)通過額外的分析和驗證、人工檢查或使用其他工具來證明該編譯是正確的[2]。因此,如果編譯器通過測試表明具有最高的可信性級別,則其生成的軟件代碼可不必進(jìn)行驗證,否則必須對軟件代碼的正確性進(jìn)行驗證。軟件實(shí)現(xiàn)階段發(fā)現(xiàn)的錯誤,須反饋給原設(shè)計人員進(jìn)行修正。
⑤ 軟件集成、確認(rèn)
軟件集成是將軟件實(shí)現(xiàn)階段生成的代碼下裝到控制站并可正常運(yùn)行,軟件確認(rèn)是通過測試來驗證應(yīng)用軟件是否滿足了電站的功能和性能要求。軟件測試包括單元測試和集成測試。單元測試依據(jù)IEEE 1008,驗證應(yīng)用軟件中某個算法或函數(shù)的正確性;集成測試是通過編制測試用例驗證集成后的控制站或系統(tǒng)是否滿足電站功能和性能要求。測試活動需要依據(jù)編制的測試計劃開展,并須依據(jù)IEEE 829要求形成測試報告等文檔,測試發(fā)現(xiàn)的問題,通過問題單提交給原設(shè)計人員進(jìn)行修正。
⑥ 軟件安裝
安裝階段依據(jù)軟件安裝計劃進(jìn)行現(xiàn)場安裝活動,在安裝階段需要編制完成《運(yùn)行手冊》、《維護(hù)手冊》、《培訓(xùn)手冊》和《安裝配置表》。
⑦ 運(yùn)行和維護(hù)
在電站運(yùn)行后,若需要變更軟件,在變更前須完成變更安全分析,并通過V&V過程。
本文通過對安全級數(shù)字化I&C系統(tǒng)應(yīng)用軟件相關(guān)的標(biāo)準(zhǔn)進(jìn)行分析研究,認(rèn)為依據(jù)美國NRC相關(guān)審查導(dǎo)則及背書的IEEE標(biāo)準(zhǔn),并結(jié)合IEC 60880的要求構(gòu)成的標(biāo)準(zhǔn)體系可指導(dǎo)應(yīng)用軟件的設(shè)計過程,并通過分析確定了各個標(biāo)準(zhǔn)在軟件開發(fā)生命周期過程的適用位置和相互關(guān)系?;谙嚓P(guān)法規(guī)標(biāo)準(zhǔn)的要求,對應(yīng)用軟件設(shè)計過程進(jìn)行了分析研究,并初步明確了軟件設(shè)計過程各階段的執(zhí)行方法及應(yīng)提供的輸出文檔。但本文對于應(yīng)用軟件的設(shè)計過程只是在整體上進(jìn)行了粗略分析,未進(jìn)行深入研究和詳細(xì)展開,因此在后續(xù)的工作中,還需要對應(yīng)用軟件設(shè)計的各個環(huán)節(jié)進(jìn)行深入研究,得出更為詳實(shí)的指導(dǎo)見解。
[1] US NRC.Nureg-0800(Chapter 7)Standard review plan for the review of safety analysis reports for nuclear power plants instrumentation and controls[S].US Nuclear Regulatory Commission,2007.
[2] 國家核安全局.HAD102/16 核動力廠基于計算機(jī)的安全重要系統(tǒng)軟件[S].北京:中國法制出版社,2004.
[3] IEC Std.61513 Nuclear power plants-instrumentation and control for systems important to safety-general requirements for systems[S].International Electrotechnical Commission,2001.
[4] 毛從吉,毋琦.從安全審評角度看核電站數(shù)字化儀控設(shè)計[J].自動化儀表,2012,33(7):39-42.
[5] US NRC.BTP7-14 Guidance on software reviews for digital computer-based instrumentation and control systems[S].US Nuclear Regulatory Commission,2007.
[6] IEEE Std.7- 4.3.2 IEEE standard criteria for digital computers in safety systems of nuclear power generating stations[S].Institute of Electrical and Electronics Engineers,2010.
[7] IEEE Std.1012 IEEE standard for software verification and validation[S]. Institute of Electrical and Electronics Engineers, 2012.
[8] IEC Std.60880 Nuclear power plants-Instrumentation and control systemsimportant to safety-Software aspects for computer-based systems performing category A functions[S].International Electrotechnical Commission,2006.
[9] IEEE Std.830 IEEE recommended practice for software requirements specifications[S].Institute of Electrical and Electronics Engineers,1998.