摘要:隨著(zhù)數字化儀控系統在核電廠(chǎng)保護系統中的應用,核安全級(1E級)軟件的質(zhì)量和可信性成為業(yè)內關(guān)注的焦點(diǎn)。平臺軟件,即操作系統軟件,是數字化儀控系統運行的核心軟件,幾乎所有功能都依靠平臺軟件來(lái)實(shí)現。相關(guān)法規和標準對其提出了嚴格的管理和技術(shù)要求,除此之外,平臺軟件要在設計上充分考慮滿(mǎn)足系統的可靠性、安全性、實(shí)時(shí)性和確定性等要求,如何開(kāi)發(fā)安全、可靠的平臺軟件成為實(shí)現核數字化安全級儀控系統所必須解決的關(guān)鍵難題。本文基于標準要求和保護系統功能特征分析,提出了數字化核安全級儀控(和睦系統)平臺軟件的關(guān)鍵技術(shù)特征,闡述了該軟件所采取的時(shí)間空間和行為確定性設計、無(wú)操作系統下通用平臺架構設計、故障安全和自診斷設計、無(wú)中斷下的軟件簡(jiǎn)化設計等關(guān)鍵設計技術(shù),并簡(jiǎn)要介紹平臺軟件的開(kāi)發(fā)生命周期模型。這些設計技術(shù)為和睦系統平臺軟件成功應用在安全級系統中發(fā)揮了重要作用,對開(kāi)發(fā)安全級軟件具有重要的參考價(jià)值。
關(guān)鍵詞: 核電廠(chǎng);數字化儀控系統;核安全級;平臺軟件;確定性;故障安全;自診斷
Abstract: With the employment of digital I&C systems in NPP (nuclear power plant) protection system, the quality and confidence of the safety (1E Class) software has become the focus of the nuclear industry. The platform software, i.e., operating system software, is the kernel software of digital I&C system, and almost all of functions relies on it. Although some related regulations and standards have proposed strict technical and anagement requirements, the platform software should be seriously designed to meet the demand of reliability, safety, real-time and determination. It has become a critical problem for implementing a safety digital I&C system of how to develop a safety and reliable platform software. In this paper,
based on the analysis of nuclear standard requirement and function feature of protection system, the critical technical characteristics of digital nuclear safety I&C system (FirmSys) are introduced. In addition, the key techniques of designing FirmSys platform software are expounded such as design for spatial-temporal and behavior determination, general platform architecture design with non-commercial operating software, fail-safe design, self-diagnose design, etc. Meanwhile, a brief description of the development life cycle model for the platform software is provided.
These techniques play an important role for designing FirmSys platform software and is a significant guidance for developing nuclear safety software.
Key words: NPP;DCS;1E Class;Platform Software;Determination;Fail-safe;Self-diagnose
1 引言
數字化核安全級控制保護系統FirmSys——“和睦系統”提供一個(gè)通用的核電站安全級儀控系統平臺,可應用于不同類(lèi)型的核反應堆安全級儀控系統,包括反應堆保護系統(RPS)、事故后監測系統(PAMS)、專(zhuān)設安全設施控制系統等。儀控系統是核電站的大腦和神經(jīng)中樞,對保證核電廠(chǎng)設備和人員及環(huán)境的安全起著(zhù)至關(guān)重要的作用。按照安全等級劃分,和睦系統為安全級(1E級)。
和睦系統平臺軟件,即標準中所定義的操作系統軟件,是數字化儀控系統運行的核心軟件,各種功能幾乎都依靠平臺軟件來(lái)完成。與單純硬件系統相比,軟件的實(shí)現更復雜、也就更容易發(fā)生設計錯誤 [2] 。安全級軟件失效常常導致系統出錯、失效、崩潰,造成重大生命財產(chǎn)損失,如何開(kāi)發(fā)安全可靠的軟件成為核電領(lǐng)域重要的研究?jì)热?。軟件的安全性和可靠性首先是設計出來(lái)的,要滿(mǎn)足核電相關(guān)法規和標準對安全級軟件提出了嚴格的管理和技術(shù)的要求,設計上需要充分考慮安全功能和關(guān)鍵特性。本文在分析標準要求的基礎上,結合保護系統的功能特點(diǎn),提出平臺軟件的安全特性,然后基于安全特性,研究并提出平臺軟件的時(shí)間空間和行為確定性設計、無(wú)操作系統下通用平臺架構設計、故障安全和自診斷設計、無(wú)中斷下的軟件簡(jiǎn)化設計等關(guān)鍵設計技術(shù),從而解決平臺軟件在滿(mǎn)足安全性、可靠性、確定性、實(shí)時(shí)性要求所面臨的技術(shù)問(wèn)題。針對開(kāi)發(fā)過(guò)程對安全軟件的重要性,本文簡(jiǎn)要介紹平臺軟件的開(kāi)發(fā)生命周期模型。和睦系統平臺軟件經(jīng)過(guò)歷時(shí)7年的開(kāi)發(fā),申請了多項專(zhuān)利或軟件著(zhù)作權,開(kāi)發(fā)出擁有完全自主知識產(chǎn)權的安全級軟件,能夠滿(mǎn)足安全性、確定性、實(shí)時(shí)性、可靠性要求,各項性能達到和超過(guò)國外同類(lèi)產(chǎn)品水平。該軟件獲得了國家安審機構的認可,并取得德國TüV SIL3、ISTec獨立第三方V&V認證證書(shū),成功應用在陽(yáng)江核電站5、6號機組安全級儀控系統等項目。這些設計技術(shù)的研究對于開(kāi)發(fā)安全級系統軟件具有重要的參考價(jià)值。
2 安全級軟件標準研究
2.1 核電廠(chǎng)安全級軟件相關(guān)標準
第一層:儀控系統總體要求。核安全級軟件遵循中國和國際原子能機構(IAEA)、IEC、IEEE組織關(guān)于核動(dòng)力廠(chǎng)安全規定和導則,同時(shí)滿(mǎn)足基本安全系列標準IEC 61508《電氣/電子/可編程電子安全有關(guān)系統(E/E/PES)的功能安全》。儀控系統總體要求全面規定了安全重要儀表和控制系統在核電工程整個(gè)生命周期內(包括設計階段、建造階段和運行期間)各項活動(dòng)中的安全準則,為儀控系統的總體設計提供指導。該層標注的一些基本要求由下一層的基干標準加以補充或直接相互引用。
第二層:核動(dòng)力廠(chǎng)安全重要儀控系統軟件相關(guān)標準。在頂層標準的指導下,形成了核安全級軟件研究和開(kāi)發(fā)需要滿(mǎn)足的安全重要I&C系統軟件的基礎標準,這些標準對核安全級軟件的設計開(kāi)發(fā)提出了下面的要求:
· 計算機軟件的一般要求;
· 軟件需求、設計、實(shí)現和集成的具體要求;
· 軟件驗證與確認的要求;
· 軟件共因故障的防御;
· 設備質(zhì)量鑒定和質(zhì)量保證對軟件的要求;
第三層:相關(guān)審查和設計指導。NRC的RG1.168、1.172、1.173和BTP 7-14提供了核安全級審查和設計指導,從獨立于標準體系的方面,對核安全級軟件的設計和實(shí)現進(jìn)行審查和驗證。
2.2 操作系統軟件設計要求
(1)按IEC 60880的劃分,儀控系統的軟件分為操作系統軟件和應用軟件。應用軟件通常使用操作系統軟件提供的服務(wù)。
操作系統軟件:系統運行期間在目標處理器上執行的軟件,例如用于如下項目的軟件:輸入/輸出驅動(dòng),服務(wù)、中斷管理、調度程序、通訊驅動(dòng)、面向應用的庫、在線(xiàn)診斷、冗余和適當的降級管理??捎糜诓煌椖?。
應用軟件:系統中實(shí)現應用功能的那部分軟件。包括互鎖邏輯、控制回路、顯示格式、報警邏輯等。它基于操作系統軟件,用于特定項目。
(2)針對軟件的安全性,標準提出安全分析和安全設計,要分析軟件潛在的安全威脅,將安全分析中確定的軟件設計對策的要求落實(shí)在軟件設計要求中。
對于軟件設計,標準提出以下具體要求 [4] :
· 在設計和程序開(kāi)發(fā)的實(shí)現階段開(kāi)始之前,應先有軟件需求并有可用的文檔。
· 設計和實(shí)現階段執行軟件需求規格書(shū),并為驗證軟件的設計和實(shí)現提供基準。
· 軟件設計應包含自監督。
· 在失效監測方面,應采取適當的措施。
· 程序結構宜基于模塊分解。
· 程序結構在總體設計和詳細設計方面均宜簡(jiǎn)單、易于理解。
· 宜避免采用各種技巧、遞歸結構和代碼壓縮方法。
· 源程序易于未參加軟件開(kāi)發(fā)過(guò)程的專(zhuān)業(yè)技術(shù)人員理解。
· 源程序宜符合文件規定的編碼規則,以提高確定性、可修改性、可測試性。
· 任何與設計原則不一致的地方,都應該被證明是合理的。
· 應提供全面、明確的書(shū)面文檔。
· 通信鏈路的設計應符合NB/T20026中給出的數據通信要求。
· 同一冗余列內使用的通信鏈路應具有確定性。
(3)操作系統軟件詳細要求
針對操作系統軟件的詳細要求,IEC 60880主要從操作系統軟件的功能簡(jiǎn)化、接口定義、驗證角度等進(jìn)行要求 [4] 。
3 和睦系統平臺軟件安全特性
3.1 保護系統平臺軟件功能特點(diǎn)
核電站保護系統RPS典型功能為采集并處理過(guò)程信號,實(shí)現自動(dòng)反應堆緊急停堆、產(chǎn)生專(zhuān)設安全設施驅動(dòng)局部脫扣信號等功能,并將相關(guān)參數信息、觸發(fā)信號以及控制命令通過(guò)通信網(wǎng)絡(luò )傳送到控制室進(jìn)行指示和報警。
圖3是一種典型的RPS系統結構,包括四重冗余的獨立通道,每個(gè)通道均包括兩組控制站,每個(gè)控制站為冗余結構設計。功能多樣性的反應堆停堆參數被分配到這兩組控制站中,每組控制站均可觸發(fā)反應堆緊急停堆。
不管具體的應用功能如何,RPS的平臺軟件功能仍是為應用軟件運行提供服務(wù)的基礎性功能。需要具備高安全、高可靠和實(shí)時(shí)性。
(1)作為操作系統軟件,提供信號采集、運算處理、指令輸出、數據通信等基礎性功能。
(2)能夠為應用軟件提供運行環(huán)境,可以組態(tài),能適用不同功能的應用軟件,有一定通用性。
(3)需要具備高安全、高可靠和實(shí)時(shí)性,能在規定的時(shí)間內正確地做出響應。
3.2 平臺軟件的模型分析
核電領(lǐng)域使用確定性的方法來(lái)確定系統的安全重要性及相關(guān)的風(fēng)險嚴重性的影響。為了解決系統的確定性問(wèn)題,學(xué)界提出了一種同步模型 [7] 。同步模型依賴(lài)于一個(gè)同步假設(synchrony hypothesis):當前周期(cycle)的輸入事件出現時(shí),系統能夠在下一周期的輸入事件出現之前足夠快地產(chǎn)生相應當前周期的輸出。規定的時(shí)間范圍是由實(shí)時(shí)系統的環(huán)境決定的。檢查同步假設的有效性就等于評估系統對環(huán)境的最大響應時(shí)間能否滿(mǎn)足環(huán)境的要求。同步模型把實(shí)時(shí)系統分成連續的原子時(shí)間片,成為響應周期;每個(gè)周期又分為三個(gè)階段,分別是事件采集,邏輯運算和事件輸出。
基于同步模型,保護系統平臺軟件抽象成在固定的連續周期內按順序執行采集、運算、輸出的軟件,能在周期內完成最差時(shí)間的事件響應,其性能可以要求確保完成上述功能。
3.3 平臺軟件設計原則
(1)應滿(mǎn)足確定性要求
以上所提出的同步模型即為解決確定性問(wèn)題而設計的一種模型。能夠確保在激勵源與響應之間的時(shí)間延遲在全部所要求的條件下有一個(gè)保證的最大值和最小值。
其通信技術(shù)及其規模能在由預期電廠(chǎng)瞬態(tài)(包括在正常失去電源的情況下雪崩式的狀態(tài)改變)產(chǎn)生的所有數據負載下滿(mǎn)足性能要求。
同時(shí)應提供設計,例如看門(mén)狗,以便軟件發(fā)生不可預知的錯誤時(shí),監督與確定特性的任何偏離,并在失去控制下能進(jìn)入的確定的狀態(tài)。
(2)滿(mǎn)足故障安全要求
系統性故障要通過(guò)自診斷予以檢測,發(fā)現故障時(shí)應將被設置在預先規定的優(yōu)選故障安全狀態(tài),同時(shí)對外輸出故障信息。
(3)滿(mǎn)足簡(jiǎn)化設計要求
盡量簡(jiǎn)化的設計有助于保障軟件的安全性。HAD102/16提出應證明在系統功能及其實(shí)現方面都已避免不必要的復雜性。遵循結構化設計、編程規范和編碼規則的證據應是證明的一部分。系統的模塊化和接口定義的邏輯結構應盡可能簡(jiǎn)單 [3] 。
(4)具備自診斷設計
為了提高系統的可靠性,平臺軟件應在運行期間,在確定的時(shí)間間隔診斷硬件和軟件的行為。通過(guò)自診斷可以檢測出硬部件的隨機故障,軟件錯誤的行為,以及不同的處理單元之間錯誤的數據傳輸。
(5)采用模塊化設計
平臺軟件總體上是比較復雜的軟件,適用于控制器軟件、通信軟件、安全顯示軟件,往往涉及到多人協(xié)同開(kāi)發(fā)。模塊化設計就是把軟件整體劃分,劃分后的塊組成了軟件。這些塊都相對獨立,之間用接口(協(xié)議)通信,每個(gè)塊完成一個(gè)功能,多個(gè)塊組合可以完成一系列功能。模塊化設計對于較為復雜的平臺軟件來(lái)說(shuō)是有效的設計,一方面提高了軟件的可復用性,有利于提高軟件的整體質(zhì)量和可維護性,另一方面可提高工作效率,降低開(kāi)發(fā)成本。
4 關(guān)鍵設計技術(shù)研究與實(shí)現
4.1 軟件時(shí)間、空間、行為確定性設計時(shí)間確定性方面,平臺軟件采用固定周期運行,每個(gè)功能在預先指定的時(shí)間完成執行。為保證各功能之間互不影響,所有功能模塊采用相同的優(yōu)先級,運行的功能模塊獨占系統資源,不會(huì )受到其它功能的影響。這樣可以有效解決在多優(yōu)先級任務(wù)執行中,因任務(wù)調度導致某些任務(wù)被掛起而而影響該任務(wù)的預期執行,導致在規定時(shí)間能不能響應的隱患。
空間確定性方面,平臺軟件所有內存采用預先靜態(tài)內存分配,禁止動(dòng)態(tài)分配內存。所有功能模塊所需的內存均預先定義,一旦運行不允許更改。堆、棧和緩沖區是計算機軟件經(jīng)常用到存儲區,也是容易出現安全隱患的多發(fā)區,歷史上因堆棧泄露緩沖區溢出帶來(lái)的系統崩潰時(shí)有發(fā)生。和睦系統平臺軟件禁止采用動(dòng)態(tài)內存分配,從根本上消除了堆的使用。棧和緩沖區預先分配且固定大小,并設計足夠大的裕量,輸入、輸出、網(wǎng)絡(luò )收發(fā)、中間變量等數據區靜態(tài)分配,與工程組態(tài)無(wú)關(guān),在最大配置使用下不會(huì )溢出,能保證內存空間在最大負載下滿(mǎn)足性能要求。
行為確定性方面,不使用軟件中斷,消除了在中斷發(fā)生下程序被打斷而造成執行功能一定時(shí)間內不可預期的可能。在通信處理方面,實(shí)現嚴格的通信獨立性。在負責處理安全功能和負責通信的模塊間,使用了支持兩套訪(fǎng)問(wèn)地址的雙口RAM內存,軟件上采用雙緩沖設計和互斥訪(fǎng)問(wèn),使雙方軟件不受對方的影響。該項技術(shù)獲得發(fā)明專(zhuān)利《一種雙口RAM互斥訪(fǎng)問(wèn)的實(shí)現方法》 [6] 。
4.2 無(wú)操作系統下的通用軟件架構設計
現代通用計算機一般采用多任務(wù)操作系統。如果CPU負荷越高,表明單位時(shí)間內CPU被占用率越高,調度資源越緊張,可能導致某些進(jìn)程在需要占用CPU但不能及時(shí)得到資源。這會(huì )嚴重影響該進(jìn)程的響應時(shí)間。如果是重要進(jìn)程,還會(huì )導致重要功能得不到及時(shí)處理引發(fā)嚴重后果。
基于安全性和簡(jiǎn)化程序考慮,平臺軟件采用無(wú)操作系統的設計。面對越來(lái)越復雜的功能,從可擴展性、可維護性、平臺化的角度出發(fā),采用模塊化、層次化和結構化設計。平臺軟件層中的硬件抽象層是硬件與上層軟件的中間紐帶,提供操作和控制具體硬件的接口。平臺軟件通過(guò)硬件抽象層與底層硬件分離開(kāi)來(lái),使系統軟件的驅動(dòng)程序與硬件無(wú)關(guān)。
平臺軟件存儲在FLASH指定地址并負責引導計算機啟動(dòng)。從安全性,啟動(dòng)地址和啟動(dòng)程序均預先給定,不支持中途修改。另外從硬件無(wú)關(guān)性以及向系統軟件提供通用界面考慮,在硬件抽象層以下實(shí)現底層硬件的初始化、基礎輸入/輸出操作功能。一旦硬件平臺或上層軟件發(fā)生變化,不會(huì )導致全面變化。
在運行模式中,在應用軟件和嵌入式平臺軟件間設計輸入區、參數區、中間變量區等數據區,應用軟件實(shí)現編譯執行以提高執行效率。應用軟件下裝到控制器中,平臺軟件直接調用固定地址的應用軟件,執行相應的應用功能,這樣提高了軟件通用性和實(shí)時(shí)性。
平臺軟件封裝所有的驅動(dòng)程序,并提供應用接口和服務(wù),應用軟件能直接調用這些接口。通過(guò)這種方式,用戶(hù)不用關(guān)系平臺軟件的實(shí)現細節,實(shí)現了靈活組態(tài)和平臺化設計。
4.3 單任務(wù)無(wú)中斷下的可靠性、實(shí)時(shí)性設計
為了提高可靠性,該軟件采用單任務(wù)周期運行的方案,消除了多任務(wù)同時(shí)執行所帶來(lái)的安全隱患。為了避免因中斷造成執行程序的正常邏輯被打擾和破壞,還采取了無(wú)中斷的設計方案。為了保證系統的實(shí)時(shí)性要求,在15ms甚至更低的運行時(shí)間下,軟件引入高效驅動(dòng)程序設計和輪詢(xún)訪(fǎng)問(wèn)機制。同時(shí)采取精巧的調度控制算法,確保時(shí)間較長(cháng)的在線(xiàn)診斷模塊分不同周期運行,有效解決實(shí)時(shí)性的要求。15ms的周期下仍可以將CPU負荷率控制在70%以下。
4.4 故障安全和高覆蓋自診斷設計
和睦系統平臺軟件的故障安全設計和自診斷設計實(shí)踐過(guò)程依據于安全完整性設計指標。按照硬件安全完整設計約束,包括架構性約束和量化硬件隨機失效約束兩個(gè)頂層設計指標,在安全架構(HFT),SIL等級要求確定情況下,可得出安全失效分數(SFF)要求,以及總的FPD/FPH指標要求,為了達到這些安全性設計指標均要求盡可能提高自診斷覆蓋率(DC),在具體實(shí)現上可參考IEC61508-2:Annex A 中推薦的技術(shù)措施與方法,選取具有足夠診斷覆蓋率的自診斷設計方法開(kāi)展具體的自診斷設計實(shí)現。同時(shí)在設計驗證層面,可通過(guò)開(kāi)展FMEDA分析工作結合故障插入測試對自診斷設計需求目標進(jìn)行分析驗證和測試驗證。通過(guò)自診斷設計,系統的診斷覆蓋率達到90%以上,獲得SIL3功能安全認證。
表1所示為以CPU、RAM為例描述了自診斷針對不同對象所采用的診斷方法和達到的覆蓋率。
表1 自診斷方法示例
4.5 簡(jiǎn)化設計技術(shù)和嚴格編碼規范
為了提高軟件的可維護性、可驗證性和可靠性,平臺軟件采取簡(jiǎn)化設計原則。簡(jiǎn)化設計從兩方面入手:一方面是從軟件架構設計,包括前面所述的固定周
期、單任務(wù)、無(wú)中斷、無(wú)操作系統、分層化設計。另一方面從詳細設計入手,軟件所有功能函數都采用單入口單出口設計,要求每個(gè)異常都必須處理,模塊之間低耦合高內聚,公共數據和公共變量采用封裝接口。
在實(shí)現階段,根據IEC 60880并采用比MISRA-C更嚴格的編碼規范,定義C語(yǔ)言安全子集:和睦系統嵌入式軟件語(yǔ)言FirmC。其中要求函數圈復雜度不超過(guò)20,不允許存在無(wú)法執行到的代碼,不允許定義參數個(gè)數可變的函數,函數體的規模必須控制在200行代碼之內,函數內的控制流保持函數只有唯一出口,尋址數組元素應避免繁雜的下標計算等。
4.6 高效的安全軟件開(kāi)發(fā)過(guò)程
眾所周知,對于軟件的開(kāi)發(fā)而言,正確的安全軟件開(kāi)發(fā)過(guò)程對保證軟件的開(kāi)發(fā)過(guò)程變得可控,而且它能夠有助于合理證明安全系統的運行。標準提出了安全生命周期模型,可用于指導軟件開(kāi)發(fā)過(guò)程。伴隨對核安全級軟件研發(fā)流程的深入理解和靈活應用,和睦系統形成一套真正可應用并且完善的全生命周期的軟件開(kāi)發(fā)過(guò)程模型。該模型的特點(diǎn)在于,它在依據于標準的同時(shí),提出了圖8所示的全生命周期模型及質(zhì)量保障,發(fā)布了系統、軟件、硬件、 邏輯過(guò)程控制程序和50多份技術(shù)規范和開(kāi)發(fā)模板。對于軟件設計階段,細化分解成概要設計和詳細設計,制定相應的技術(shù)規范,使軟件架構設計和模塊設計得到側重和加強,并提出測試與審查的手段進(jìn)行驗證,同時(shí)進(jìn)行迭代,將執行中發(fā)現的經(jīng)驗及時(shí)反饋到模型中去優(yōu)化和改進(jìn),為推動(dòng)軟件的順利研發(fā)提供了有效的過(guò)程支持。
5 實(shí)施效果
和睦系統平臺軟件歷經(jīng)6年開(kāi)發(fā),內核代碼2.2萬(wàn)行,公共庫和驅動(dòng)程序3萬(wàn)行。該軟件具有功能穩定、安全性高、資源確定、時(shí)間確定和行為確定,允許組態(tài)和下裝,便于使用等特點(diǎn)。
獲得了國家安審機構的認可,并獲得德國TüVSIL3(2013.7)認證、ISTec獨立第三方V&V認證(2013.12)證書(shū),成功應用在陽(yáng)江核電站5、6號機組安全級儀控系統、紅沿河核電站5、6號機組項目,以及大亞灣、嶺澳堆芯測量系統(RIC)改造等項目。已在“大亞灣堆芯測量系統(RIC)改造項目”、“高
溫氣冷堆核電站數字化保護系統工程樣機研制項目”、“高溫氣冷堆核電站安全級控制保護系統項目”、“陽(yáng)江5、6號機組DCS項目”、“紅沿河5、6號機組DCS項目”中得到應用。各項指標達到國外同類(lèi)產(chǎn)品技術(shù)水平。
6 結論
核安全級儀控系統平臺軟件是系統的核心軟件,和睦系統平臺軟件采用完全自主開(kāi)發(fā),全面遵循國家及國際核級法規和標準。軟件采用時(shí)間、空間、行為確定性設計、無(wú)操作系統下的通用軟件架構設計、故障安全和高覆蓋率自診斷設計、簡(jiǎn)化設計技術(shù)和嚴格編碼規范、高效的安全軟件開(kāi)發(fā)過(guò)程,內核代碼2.2萬(wàn)行,公共庫和驅動(dòng)程序3萬(wàn)行,各項指標達到國外同類(lèi)產(chǎn)品技術(shù)水平。這些技術(shù)的研究對于開(kāi)發(fā)安全級系統軟件具有重要的參考價(jià)值。
摘自《自動(dòng)化博覽》2018年5月刊