当前位置:首页 期刊杂志

核电站安全级DCS应用软件设计过程浅析

时间:2024-07-28

(北京广利核系统工程有限公司,北京 100094)

0 引言

目前,在新建核电站的安全重要系统中开始普遍采用数字化技术——安全级DCS对安全重要设备进行控制。DCS通过微处理器运行软件实现控制功能,和传统的模拟技术相比,DCS具有不易老化、便于变更和维护、可对故障自诊断等优点,但同时可能会因为发生微小软件错误而造成系统出现不可预期的响应,或因为采用共享的数据、代码的设计而通过软件错误传播共因故障,使硬件体系构建出现多重性失效[1]。为了降低数字化仪控系统的软件设计风险,使系统达到足够的可信度,软件设计过程须遵循核安全相关法规、导则和标准的相关要求[2]。

DCS中运行的软件主要包括系统软件和应用软件两大部分[3],本文通过对应用软件设计相关标准进行分析,进而探索应用软件的设计过程和方法。

1 应用软件功能范围

应用软件功能范围示意图如图1所示。

图1 应用软件范围示意图

应用软件和系统软件均集成在DCS控制器中。应用软件是为了某种具体应用而开发的,是根据电站工艺需求设计运算程序,并由软件工具编译生成的程序。安全级DCS的应用软件用于实现电站的保护控制功能。当核电站运行时,首先通过I/O模块采集现场传感器的信号或通过网络通信接收其他系统或控制站的信号输入给控制器;然后由控制器通过运行系统软件来调用执行应用软件,完成功能逻辑运算,并发出控制信号来控制执行机构(如泵、阀等)。

2 应用软件适用标准

在国际上主要应用的标准体系中,以IEEE标准为主的美国标准体系较为完善,其对实际工程应用具有很强的指导意义。美国核管会(NRC)作为美国核电站的安全审查机构,通过其发布的审查导则背书到相关IEEE标准,确立了这些标准的法律地位。NRC发布的审查导则也是中国核安全审查的主要参照[4],因此依据NRC认可的标准进行设计会比较容易通过安全审查。NRC发布的BTP7-14是针对数字化仪控系统软件的审查导则[5],并通过各个专项审查导则背书了相应IEEE标准,美国导则、标准表如表1所示。

表1 美国导则、标准对照表

在应用软件设计过程中,各标准的应用关系如图2所示。其中IEEE 7- 4.3.2作为一个最顶层标准,对软件设计具体的活动要求,另外还关联了一些标准,如IEC 12207“系统和软件工程-软件生命周期过程”,在IEEE 7- 4.3.2和IEEE 1012中均进行了关联[6-7],并且IEEE已将其转化成IEEE 12207-2008,纳入了IEEE的标准体系。

IEC 60880“核电厂安全重要仪表和控制系统执行A类功能的计算机软件”可用于指导安全级DCS软件设计,其按照软件生命周期过程对软件的开发提出了指导性意见。IEEE 7- 4.3.2-2010(5.3.1)提出软件质量保证过程可以参照IEC 60880-2006要求[6]。

安全级DCS应用软件的设计首先应依据RG1.173和IEEE 1074开发软件生命周期过程。软件生命周期的作用是通过控制软件设计和开发的过程来保证质量。根据NUREG 0800附录7.0-A的见解,软件生命周期过程可按计划、需求、设计、实现、集成、确认、安装、运行、维护这几个阶段开展。

在计划阶段,应形成一套按生命周期过程开发的计划文件,对应用软件开发过程确立一个承诺,从而保证应用软件按一个严格要求的过程进行开发。各个计划制定需要参照的相关标准如表2所示。

在需求阶段,应依据RG1.152和IEEE 7- 4.3.2、RG1.172和IEEE 830制定软件需求,IEEE 830明确了软件需求规格书的文档结构以及应包含的内容。设计和实现阶段是开展具体的设计活动,实现软件需求规格书及电站安全级控制功能的要求。在确认阶段,是通过测试来确认集成应用软件后的系统是否满足功能、性能需求。该阶段应依据RG1.171和IEEE 1008要求执行软件单元测试,并应依据RG1.170和IEEE 829要求形成测试文档。

在整个生命周期过程中的各个阶段,需要依据RG1.168、IEEE 1012和IEEE 1028执行验证和确认(V&V)活动,检验每一阶段的输出成果是否满足前一阶段的要求。IEEE 1012提出了软件V&V的过程及要求,IEEE 1028描述了如何进行软件审查、检查、走查和技术审查以及管理审查。RG1.152和IEEE 7- 4.3.2作为顶层指导标准对软件研制做了要求,并提出应依据IEEE 1012进行V&V、依据IEEE 1042进行软件配置管理。软件开发的整个过程都要由依据RG1.169、IEEE 828、IEEE 1042制定的配置管理计划进行配置管理,对基线、版本、变更和软件文档等进行管理控制。

3 应用软件设计过程

根据上述标准中对应用软件生命周期过程的定义,得到应用软件的设计过程,具体包括:

① 制定软件计划,并生成相应的计划文档;

② 依据电站对I&C的需求进行软件需求分析,并生成软件需求规格书;

③ 根据软件需求规格书进行软件设计,并生成相应的设计文档;

④ 根据设计文档进行软件组态,生成软件组态文档并编译生成软件代码;

⑤ 将软件代码下装到各个控制站中,并完成功能确认;

⑥ 软件安装;

⑦ 运行和维护。

应用软件设计过程如图3所示。设计过程的实施,应保证完整性、连贯性、正确性、可追溯性、确定性和可验证性。另外,软件生命周期从需求开始的各个阶段都要进行安全性分析,出具V&V分析测试报告和配置管理(configuration management,CM)报告。

① 软件计划

软件计划是对整个开发过程以及各个活动的约束,通过这些计划的实施应可保证通过严格的开发过程而达到高可信度的质量。这些计划没有要求必须独立的文档,因此可以将12个计划集中在一个文档中。

② 软件需求

在软件需求阶段,应结合数字化I&C系统架构,依据电站对I&C系统提出的需求进行应用软件的需求分析,确定应用软件应实现的功能,并编制《软件需求规格书》进行明确,软件需求规格书应描述软件应该做什么,而不是如何去做[8]。为了便于下一步能开展软件设计,在软件需求规格书中应对各个控制站要实现的功能范围、接口进行明确。依据IEEE 830要求[9],软件需求规格书应对应用软件相关的外部接口需求、功能需求、性能需求、逻辑数据需求、设计约束和软件系统属性等进行详细的描述。

在进行功能需求分析时,应依据整体I&C系统需求中明确的功能分配原则对核电站的逻辑图(如CPR1000核电站用的Logic Diagram/Analog Diagram)进行详细的功能边界划分及接口定义。功能边界的划分即明确各个控制站应执行的功能范围;接口定义即明确控制站与外部连接的接口类型(如硬接线或通信),功能接口划分图纸应作为软件需求传递给下游的软件设计。

③ 软件设计

软件设计阶段是根据《软件需求规格书》及锁定的输入基线文件(LD/AD),结合I&C系统所选择的DCS平台的特性,将功能需求转化为应用软件,并形成相应的设计文档。应用软件的设计应使用容易理解的图形化符号、按模块化进行功能逻辑设计,软件结构应简单且容易理解。软件设计文档要保证和上游需求具有清晰的可追溯关系,以便于进行设计检查和V&V。

依据配置管理要求,设计时必须先确认输入文件的正确性、完整性,若发现输入存在错误、疑点或输入文件缺失,须向上游澄清、解决,然后对输入基线进行锁定。基线锁定后,设计只反应本版基线中的设计要求,对基线锁定后输入发生的所有变更,均需要等确定下一版基线后升版。为了保证设计的可读性,应制定设计规范明确设计要求并统一设计风格。为了保证和上游的可追溯性,每页功能逻辑图都须标明所对应的上游输入文件名称及位置。为了验证对需求反应的正确性和完整性,应由不同的设计人员进行严格的设计检查。如果通过人工检查,则须将功能逻辑图对照上游输入图纸(LD/AD)逐页对应核查,对各个功能逻辑算法的设计应一一确认并进行标记,核查出的问题须形成问题记录单,并跟踪解决。

设计输出文档应包括:《软件设计规格书》,对应用软件设计进行说明;《功能逻辑图》,用于应用软件功能组态;《I/O清单》,对控制相关的硬接线接口进行定义;《网络通信清单》,对控制相关的通信接口进行定义;《设定值清单》,设定应用软件运行需要的各参数(如安全阈值等)。

④ 软件实现

软件实现是将软件设计输出文档中的功能逻辑图、I/O清单、设定值清单、网络通信清单通过组态工具导入(自动导入或手动导入)生成软件组态图,进而编译生成控制器可执行的软件代码。软件组态和软件代码也要形成相应文档,以便通过V&V验证软件实现和设计的一致性。

因为应用软件须通过编译器编译生成代码才能由控制器执行,所以代码生成的正确性是V&V关注的焦点。HAD102/16提出,如果使用没有充分测试过的编译器,应通过额外的分析和验证、人工检查或使用其他工具来证明该编译是正确的[2]。因此,如果编译器通过测试表明具有最高的可信性级别,则其生成的软件代码可不必进行验证,否则必须对软件代码的正确性进行验证。软件实现阶段发现的错误,须反馈给原设计人员进行修正。

⑤ 软件集成、确认

软件集成是将软件实现阶段生成的代码下装到控制站并可正常运行,软件确认是通过测试来验证应用软件是否满足了电站的功能和性能要求。软件测试包括单元测试和集成测试。单元测试依据IEEE 1008,验证应用软件中某个算法或函数的正确性;集成测试是通过编制测试用例验证集成后的控制站或系统是否满足电站功能和性能要求。测试活动需要依据编制的测试计划开展,并须依据IEEE 829要求形成测试报告等文档,测试发现的问题,通过问题单提交给原设计人员进行修正。

⑥ 软件安装

安装阶段依据软件安装计划进行现场安装活动,在安装阶段需要编制完成《运行手册》、《维护手册》、《培训手册》和《安装配置表》。

⑦ 运行和维护

在电站运行后,若需要变更软件,在变更前须完成变更安全分析,并通过V&V过程。

4 结束语

本文通过对安全级数字化I&C系统应用软件相关的标准进行分析研究,认为依据美国NRC相关审查导则及背书的IEEE标准,并结合IEC 60880的要求构成的标准体系可指导应用软件的设计过程,并通过分析确定了各个标准在软件开发生命周期过程的适用位置和相互关系。基于相关法规标准的要求,对应用软件设计过程进行了分析研究,并初步明确了软件设计过程各阶段的执行方法及应提供的输出文档。但本文对于应用软件的设计过程只是在整体上进行了粗略分析,未进行深入研究和详细展开,因此在后续的工作中,还需要对应用软件设计的各个环节进行深入研究,得出更为详实的指导见解。

[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 核动力厂基于计算机的安全重要系统软件[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] 毛从吉,毋琦.从安全审评角度看核电站数字化仪控设计[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.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!