1
关注中国自动化产业发展的先行者!
2024
2024中国自动化产业年会
2023年工业安全大会
OICT公益讲堂
当前位置:首页 >> 案例 >> 案例首页

案例频道

核安全级仪控系统(FirmSys) 平台软件设计技术研究与实现
  • 企业:    
  • 点击数:1529     发布时间:2018-06-15 12:42:43
  • 分享到:

摘要:随着数字化仪控系统在核电厂保护系统中的应用,核安全级(1E级)软件的质量和可信性成为业内关注的焦点。平台软件,即操作系统软件,是数字化仪控系统运行的核心软件,几乎所有功能都依靠平台软件来实现。相关法规和标准对其提出了严格的管理和技术要求,除此之外,平台软件要在设计上充分考虑满足系统的可靠性、安全性、实时性和确定性等要求,如何开发安全、可靠的平台软件成为实现核数字化安全级仪控系统所必须解决的关键难题。本文基于标准要求和保护系统功能特征分析,提出了数字化核安全级仪控(和睦系统)平台软件的关键技术特征,阐述了该软件所采取的时间空间和行为确定性设计、无操作系统下通用平台架构设计、故障安全和自诊断设计、无中断下的软件简化设计等关键设计技术,并简要介绍平台软件的开发生命周期模型。这些设计技术为和睦系统平台软件成功应用在安全级系统中发挥了重要作用,对开发安全级软件具有重要的参考价值。
关键词: 核电厂;数字化仪控系统;核安全级;平台软件;确定性;故障安全;自诊断
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——“和睦系统”提供一个通用的核电站安全级仪控系统平台,可应用于不同类型的核反应堆安全级仪控系统,包括反应堆保护系统(RPS)、事故后监测系统(PAMS)、专设安全设施控制系统等。仪控系统是核电站的大脑和神经中枢,对保证核电厂设备和人员及环境的安全起着至关重要的作用。按照安全等级划分,和睦系统为安全级(1E级)。

和睦系统平台软件,即标准中所定义的操作系统软件,是数字化仪控系统运行的核心软件,各种功能几乎都依靠平台软件来完成。与单纯硬件系统相比,软件的实现更复杂、也就更容易发生设计错误 [2] 。安全级软件失效常常导致系统出错、失效、崩溃,造成重大生命财产损失,如何开发安全可靠的软件成为核电领域重要的研究内容。软件的安全性和可靠性首先是设计出来的,要满足核电相关法规和标准对安全级软件提出了严格的管理和技术的要求,设计上需要充分考虑安全功能和关键特性。本文在分析标准要求的基础上,结合保护系统的功能特点,提出平台软件的安全特性,然后基于安全特性,研究并提出平台软件的时间空间和行为确定性设计、无操作系统下通用平台架构设计、故障安全和自诊断设计、无中断下的软件简化设计等关键设计技术,从而解决平台软件在满足安全性、可靠性、确定性、实时性要求所面临的技术问题。针对开发过程对安全软件的重要性,本文简要介绍平台软件的开发生命周期模型。和睦系统平台软件经过历时7年的开发,申请了多项专利或软件著作权,开发出拥有完全自主知识产权的安全级软件,能够满足安全性、确定性、实时性、可靠性要求,各项性能达到和超过国外同类产品水平。该软件获得了国家安审机构的认可,并取得德国TüV SIL3、ISTec独立第三方V&V认证证书,成功应用在阳江核电站5、6号机组安全级仪控系统等项目。这些设计技术的研究对于开发安全级系统软件具有重要的参考价值。


2 安全级软件标准研究
2.1 核电厂安全级软件相关标准

1.jpg

第一层:仪控系统总体要求。核安全级软件遵循中国和国际原子能机构(IAEA)、IEC、IEEE组织关于核动力厂安全规定和导则,同时满足基本安全系列标准IEC 61508《电气/电子/可编程电子安全有关系统(E/E/PES)的功能安全》。仪控系统总体要求全面规定了安全重要仪表和控制系统在核电工程整个生命周期内(包括设计阶段、建造阶段和运行期间)各项活动中的安全准则,为仪控系统的总体设计提供指导。该层标注的一些基本要求由下一层的基干标准加以补充或直接相互引用。
第二层:核动力厂安全重要仪控系统软件相关标准。在顶层标准的指导下,形成了核安全级软件研究和开发需要满足的安全重要I&C系统软件的基础标准,这些标准对核安全级软件的设计开发提出了下面的要求:
·  计算机软件的一般要求;
·  软件需求、设计、实现和集成的具体要求;
·  软件验证与确认的要求;
·  软件共因故障的防御;
·  设备质量鉴定和质量保证对软件的要求;
第三层:相关审查和设计指导。NRC的RG1.168、1.172、1.173和BTP 7-14提供了核安全级审查和设计指导,从独立于标准体系的方面,对核安全级软件的设计和实现进行审查和验证。
2.2 操作系统软件设计要求
(1)按IEC 60880的划分,仪控系统的软件分为操作系统软件和应用软件。应用软件通常使用操作系统软件提供的服务。
操作系统软件:系统运行期间在目标处理器上执行的软件,例如用于如下项目的软件:输入/输出驱动,服务、中断管理、调度程序、通讯驱动、面向应用的库、在线诊断、冗余和适当的降级管理。可用于不同项目。
应用软件:系统中实现应用功能的那部分软件。包括互锁逻辑、控制回路、显示格式、报警逻辑等。它基于操作系统软件,用于特定项目。
(2)针对软件的安全性,标准提出安全分析和安全设计,要分析软件潜在的安全威胁,将安全分析中确定的软件设计对策的要求落实在软件设计要求中。
对于软件设计,标准提出以下具体要求 [4] :
·  在设计和程序开发的实现阶段开始之前,应先有软件需求并有可用的文档。
·  设计和实现阶段执行软件需求规格书,并为验证软件的设计和实现提供基准。
·  软件设计应包含自监督。
·  在失效监测方面,应采取适当的措施。
·  程序结构宜基于模块分解。
·  程序结构在总体设计和详细设计方面均宜简单、易于理解。
·  宜避免采用各种技巧、递归结构和代码压缩方法。
·  源程序易于未参加软件开发过程的专业技术人员理解。
·  源程序宜符合文件规定的编码规则,以提高确定性、可修改性、可测试性。
·  任何与设计原则不一致的地方,都应该被证明是合理的。
·  应提供全面、明确的书面文档。
·  通信链路的设计应符合NB/T20026中给出的数据通信要求。
·  同一冗余列内使用的通信链路应具有确定性。
(3)操作系统软件详细要求
针对操作系统软件的详细要求,IEC 60880主要从操作系统软件的功能简化、接口定义、验证角度等进行要求 [4] 。

2.jpg

3 和睦系统平台软件安全特性
3.1 保护系统平台软件功能特点
核电站保护系统RPS典型功能为采集并处理过程信号,实现自动反应堆紧急停堆、产生专设安全设施驱动局部脱扣信号等功能,并将相关参数信息、触发信号以及控制命令通过通信网络传送到控制室进行指示和报警。
图3是一种典型的RPS系统结构,包括四重冗余的独立通道,每个通道均包括两组控制站,每个控制站为冗余结构设计。功能多样性的反应堆停堆参数被分配到这两组控制站中,每组控制站均可触发反应堆紧急停堆。

3.jpg

不管具体的应用功能如何,RPS的平台软件功能仍是为应用软件运行提供服务的基础性功能。需要具备高安全、高可靠和实时性。
(1)作为操作系统软件,提供信号采集、运算处理、指令输出、数据通信等基础性功能。
(2)能够为应用软件提供运行环境,可以组态,能适用不同功能的应用软件,有一定通用性。
(3)需要具备高安全、高可靠和实时性,能在规定的时间内正确地做出响应。
3.2 平台软件的模型分析
核电领域使用确定性的方法来确定系统的安全重要性及相关的风险严重性的影响。为了解决系统的确定性问题,学界提出了一种同步模型 [7] 。同步模型依赖于一个同步假设(synchrony hypothesis):当前周期(cycle)的输入事件出现时,系统能够在下一周期的输入事件出现之前足够快地产生相应当前周期的输出。规定的时间范围是由实时系统的环境决定的。检查同步假设的有效性就等于评估系统对环境的最大响应时间能否满足环境的要求。同步模型把实时系统分成连续的原子时间片,成为响应周期;每个周期又分为三个阶段,分别是事件采集,逻辑运算和事件输出。

4.jpg

基于同步模型,保护系统平台软件抽象成在固定的连续周期内按顺序执行采集、运算、输出的软件,能在周期内完成最差时间的事件响应,其性能可以要求确保完成上述功能。
3.3 平台软件设计原则
(1)应满足确定性要求
以上所提出的同步模型即为解决确定性问题而设计的一种模型。能够确保在激励源与响应之间的时间延迟在全部所要求的条件下有一个保证的最大值和最小值。
其通信技术及其规模能在由预期电厂瞬态(包括在正常失去电源的情况下雪崩式的状态改变)产生的所有数据负载下满足性能要求。
同时应提供设计,例如看门狗,以便软件发生不可预知的错误时,监督与确定特性的任何偏离,并在失去控制下能进入的确定的状态。
(2)满足故障安全要求
系统性故障要通过自诊断予以检测,发现故障时应将被设置在预先规定的优选故障安全状态,同时对外输出故障信息。
(3)满足简化设计要求
尽量简化的设计有助于保障软件的安全性。HAD102/16提出应证明在系统功能及其实现方面都已避免不必要的复杂性。遵循结构化设计、编程规范和编码规则的证据应是证明的一部分。系统的模块化和接口定义的逻辑结构应尽可能简单 [3] 。
(4)具备自诊断设计
为了提高系统的可靠性,平台软件应在运行期间,在确定的时间间隔诊断硬件和软件的行为。通过自诊断可以检测出硬部件的随机故障,软件错误的行为,以及不同的处理单元之间错误的数据传输。
(5)采用模块化设计
平台软件总体上是比较复杂的软件,适用于控制器软件、通信软件、安全显示软件,往往涉及到多人协同开发。模块化设计就是把软件整体划分,划分后的块组成了软件。这些块都相对独立,之间用接口(协议)通信,每个块完成一个功能,多个块组合可以完成一系列功能。模块化设计对于较为复杂的平台软件来说是有效的设计,一方面提高了软件的可复用性,有利于提高软件的整体质量和可维护性,另一方面可提高工作效率,降低开发成本。
4 关键设计技术研究与实现
4.1 软件时间、空间、行为确定性设计时间确定性方面,平台软件采用固定周期运行,每个功能在预先指定的时间完成执行。为保证各功能之间互不影响,所有功能模块采用相同的优先级,运行的功能模块独占系统资源,不会受到其它功能的影响。这样可以有效解决在多优先级任务执行中,因任务调度导致某些任务被挂起而而影响该任务的预期执行,导致在规定时间能不能响应的隐患。

5.jpg

空间确定性方面,平台软件所有内存采用预先静态内存分配,禁止动态分配内存。所有功能模块所需的内存均预先定义,一旦运行不允许更改。堆、栈和缓冲区是计算机软件经常用到存储区,也是容易出现安全隐患的多发区,历史上因堆栈泄露缓冲区溢出带来的系统崩溃时有发生。和睦系统平台软件禁止采用动态内存分配,从根本上消除了堆的使用。栈和缓冲区预先分配且固定大小,并设计足够大的裕量,输入、输出、网络收发、中间变量等数据区静态分配,与工程组态无关,在最大配置使用下不会溢出,能保证内存空间在最大负载下满足性能要求。

行为确定性方面,不使用软件中断,消除了在中断发生下程序被打断而造成执行功能一定时间内不可预期的可能。在通信处理方面,实现严格的通信独立性。在负责处理安全功能和负责通信的模块间,使用了支持两套访问地址的双口RAM内存,软件上采用双缓冲设计和互斥访问,使双方软件不受对方的影响。该项技术获得发明专利《一种双口RAM互斥访问的实现方法》 [6] 。

4.2 无操作系统下的通用软件架构设计
现代通用计算机一般采用多任务操作系统。如果CPU负荷越高,表明单位时间内CPU被占用率越高,调度资源越紧张,可能导致某些进程在需要占用CPU但不能及时得到资源。这会严重影响该进程的响应时间。如果是重要进程,还会导致重要功能得不到及时处理引发严重后果。

基于安全性和简化程序考虑,平台软件采用无操作系统的设计。面对越来越复杂的功能,从可扩展性、可维护性、平台化的角度出发,采用模块化、层次化和结构化设计。平台软件层中的硬件抽象层是硬件与上层软件的中间纽带,提供操作和控制具体硬件的接口。平台软件通过硬件抽象层与底层硬件分离开来,使系统软件的驱动程序与硬件无关。

平台软件存储在FLASH指定地址并负责引导计算机启动。从安全性,启动地址和启动程序均预先给定,不支持中途修改。另外从硬件无关性以及向系统软件提供通用界面考虑,在硬件抽象层以下实现底层硬件的初始化、基础输入/输出操作功能。一旦硬件平台或上层软件发生变化,不会导致全面变化。

在运行模式中,在应用软件和嵌入式平台软件间设计输入区、参数区、中间变量区等数据区,应用软件实现编译执行以提高执行效率。应用软件下装到控制器中,平台软件直接调用固定地址的应用软件,执行相应的应用功能,这样提高了软件通用性和实时性。

平台软件封装所有的驱动程序,并提供应用接口和服务,应用软件能直接调用这些接口。通过这种方式,用户不用关系平台软件的实现细节,实现了灵活组态和平台化设计。

6.jpg

4.3 单任务无中断下的可靠性、实时性设计
为了提高可靠性,该软件采用单任务周期运行的方案,消除了多任务同时执行所带来的安全隐患。为了避免因中断造成执行程序的正常逻辑被打扰和破坏,还采取了无中断的设计方案。为了保证系统的实时性要求,在15ms甚至更低的运行时间下,软件引入高效驱动程序设计和轮询访问机制。同时采取精巧的调度控制算法,确保时间较长的在线诊断模块分不同周期运行,有效解决实时性的要求。15ms的周期下仍可以将CPU负荷率控制在70%以下。

4.4 故障安全和高覆盖自诊断设计
和睦系统平台软件的故障安全设计和自诊断设计实践过程依据于安全完整性设计指标。按照硬件安全完整设计约束,包括架构性约束和量化硬件随机失效约束两个顶层设计指标,在安全架构(HFT),SIL等级要求确定情况下,可得出安全失效分数(SFF)要求,以及总的FPD/FPH指标要求,为了达到这些安全性设计指标均要求尽可能提高自诊断覆盖率(DC),在具体实现上可参考IEC61508-2:Annex A 中推荐的技术措施与方法,选取具有足够诊断覆盖率的自诊断设计方法开展具体的自诊断设计实现。同时在设计验证层面,可通过开展FMEDA分析工作结合故障插入测试对自诊断设计需求目标进行分析验证和测试验证。通过自诊断设计,系统的诊断覆盖率达到90%以上,获得SIL3功能安全认证。

7.jpg

表1所示为以CPU、RAM为例描述了自诊断针对不同对象所采用的诊断方法和达到的覆盖率。
表1 自诊断方法示例

TIM截图20180615124014.jpg

4.5 简化设计技术和严格编码规范
为了提高软件的可维护性、可验证性和可靠性,平台软件采取简化设计原则。简化设计从两方面入手:一方面是从软件架构设计,包括前面所述的固定周
期、单任务、无中断、无操作系统、分层化设计。另一方面从详细设计入手,软件所有功能函数都采用单入口单出口设计,要求每个异常都必须处理,模块之间低耦合高内聚,公共数据和公共变量采用封装接口。
在实现阶段,根据IEC 60880并采用比MISRA-C更严格的编码规范,定义C语言安全子集:和睦系统嵌入式软件语言FirmC。其中要求函数圈复杂度不超过20,不允许存在无法执行到的代码,不允许定义参数个数可变的函数,函数体的规模必须控制在200行代码之内,函数内的控制流保持函数只有唯一出口,寻址数组元素应避免繁杂的下标计算等。
4.6 高效的安全软件开发过程
众所周知,对于软件的开发而言,正确的安全软件开发过程对保证软件的开发过程变得可控,而且它能够有助于合理证明安全系统的运行。标准提出了安全生命周期模型,可用于指导软件开发过程。伴随对核安全级软件研发流程的深入理解和灵活应用,和睦系统形成一套真正可应用并且完善的全生命周期的软件开发过程模型。该模型的特点在于,它在依据于标准的同时,提出了图8所示的全生命周期模型及质量保障,发布了系统、软件、硬件、 逻辑过程控制程序和50多份技术规范和开发模板。对于软件设计阶段,细化分解成概要设计和详细设计,制定相应的技术规范,使软件架构设计和模块设计得到侧重和加强,并提出测试与审查的手段进行验证,同时进行迭代,将执行中发现的经验及时反馈到模型中去优化和改进,为推动软件的顺利研发提供了有效的过程支持。

8.jpg

5 实施效果
和睦系统平台软件历经6年开发,内核代码2.2万行,公共库和驱动程序3万行。该软件具有功能稳定、安全性高、资源确定、时间确定和行为确定,允许组态和下装,便于使用等特点。
获得了国家安审机构的认可,并获得德国TüVSIL3(2013.7)认证、ISTec独立第三方V&V认证(2013.12)证书,成功应用在阳江核电站5、6号机组安全级仪控系统、红沿河核电站5、6号机组项目,以及大亚湾、岭澳堆芯测量系统(RIC)改造等项目。已在“大亚湾堆芯测量系统(RIC)改造项目”、“高

9.jpg

温气冷堆核电站数字化保护系统工程样机研制项目”、“高温气冷堆核电站安全级控制保护系统项目”、“阳江5、6号机组DCS项目”、“红沿河5、6号机组DCS项目”中得到应用。各项指标达到国外同类产品技术水平。

10.jpg

6 结论
核安全级仪控系统平台软件是系统的核心软件,和睦系统平台软件采用完全自主开发,全面遵循国家及国际核级法规和标准。软件采用时间、空间、行为确定性设计、无操作系统下的通用软件架构设计、故障安全和高覆盖率自诊断设计、简化设计技术和严格编码规范、高效的安全软件开发过程,内核代码2.2万行,公共库和驱动程序3万行,各项指标达到国外同类产品技术水平。这些技术的研究对于开发安全级系统软件具有重要的参考价值。

摘自《自动化博览》2018年5月刊

 

热点新闻

推荐产品

x
  • 在线反馈
1.我有以下需求:



2.详细的需求:
姓名:
单位:
电话:
邮件: