核安全级DCS应用软件代码配置管理研究
2022-02-03张子鹏魏新宇张晨昊
张子鹏,魏新宇,张晨昊,李 旺
(1.西安交通大学核科学与技术学院,西安 710049;2.中国核动力研究设计院核反应堆系统设计技术重点实验室,成都 610213)
0 引言
配置管理是核安全级DCS 工程设计活动的重要部分,针对安全重要的构筑物、系统和设备,国家核安全法规已经提出与配置管理相关的要求。HAF102—2004《核动力厂设计安全规定》中要求“当安全重要系统设计依赖于基于计算机的系统的可靠性时,必须确定或制定有关开发和试验和(或)验证计算机硬件和软件的相应标准,并在系统的整个生命周期,特别是在软件开发期间,就必须加以实施”[1]。
尽管传统配置管理的原理和目的同样适用于软件,但软件更侧重设计流程,交付物项是设计输出。在软件生产中,设计过程信息可能衍生出和最终设计输出相关的多个中间设计输出。通常在实现(编码)和测试阶段会产生大量的软件设计变更。核安全级DCS 应用软件代码结构复杂、变更种类繁多、形式多样,且用户较多,因此在代码实现阶段需要制定合适的配置管理策略以应对其特点。
1 核安全级DCS应用软件代码特点
核安全级DCS 系统结构复杂,冗余度高。从软件设计的角度上,按照实现的功能不同可以将整个系统划分为各种功能站点,例如控制站、传输站和网关站等。以华龙一号核安全级DCS 系统为例,该系统包含四个保护组(保护组I、保护组II、保护组III 以及保护组IV)和两个逻辑系列(逻辑系列A和逻辑系列B),每个保护组分为两个多样性子组,每个逻辑系列包含FSC1、F-SC2 两个安全等级的专设驱动系统,其系统架构如图1所示。
图1 华龙一号核安全级DCS系统架构示意图
由于联锁、局部脱扣、与盘台接口、与非安全级DCS 通讯等复杂的系统结构,信号需要在功能站之间传递,各功能站之间相互关联,因此在设计过程中需要考虑各站的关联性。作为核安全级DCS 系统中重要的组成部分,应用软件代码对于整个系统执行安全功能至关重要,也是后续软硬件集成、工程测试(FT)和V&V 等过程的重要输入。此外,在代码实现和测试阶段,由于V&V 异常或测试异常,代码需要频繁变更。由此可见,核安全级DCS 应用软件代码重要程度高,结构复杂,规模庞大,变更频繁[2-3]。因此必须配备完善的配置管理策略以保证其正确性。
2 核安全级DCS应用软件代码配置管理特点
核安全级DCS 应用软件设计流程如图2 所示,其中在需求、设计和实现阶段分别输出软件需求规格书、仪控功能图和应用软件代码包[4]。
图2 应用软件设计流程示意图
设计人员使用工程师站软件NASPES,依据上游设计输入和系统设计输入开发核安全级DCS 应用软件,主要工作包含站点组态、设备组态、算法组态和变量组态等内容。应用软件设计的输出主要包含两种形式:
(1)以文件形式:如算法组态以仪控功能图形式进行出版,变量组态以IO 分配清单,设定值清单的形式出版;
(2)以工程文件(包)形式:如站点组态信息、设备组态信息、变量组态信息、可下装代码等集成到应用软件代码包中进行出版。
以华龙一号的安全级DCS 系统为例,系统共计有28 个功能站点,每个站点均需要出版一份仪控功能图(或者画面组态文件),并在实现阶段出版应用软件代码包。
从用途来说,核安全级DCS 应用软件代码需要提供给V&V 人员进行V&V 活动,提供给代码下装人员进行下装活动,提供给测试人员进行工厂测试活动等。如果应用软件代码的版本控制发生错误,将会给DCS 系统的设计、V&V和测试等活动带来较大的影响,甚至影响到产品质量和项目进度。
一般来说,应用软件代码包的配置管理和其他常规软件的配置项一样进行管理。但因其信息量巨大,变更频繁,且存在各功能站的子版本,现有的配置管理策略越来越不能适应新的需求。归纳起来,应用软件代码配置管理主要有如下难点:
(1)因系统功能复杂,导致应用软件代码结构复杂,且各个功能站点相互影响,软件设计文件之间互相影响;
(2)在使用工程师站软件NASPES 进行应用软件下装时,为保证下装站点的正确性,须通过总体工程进行各站点的下装,而不能单独将各功能站点的下装文件独立入库;
(3)核安全级DCS 应用软件涉及到V&V 过程,异常的处理会导致软件版本变更比较频繁;
(4)应用软件代码算法组态部分与设计阶段的仪控功能图有关联关系,设备组态和变量组态部分与设计阶段的硬件设计有关联关系。在变更较为频繁的情况下,为了便于开展实现阶段或者后续测试阶段的相关工作,需要明确代码与不同阶段以及不同文件之间的关系;
(5)代码下装人员、V&V 人员和测试人员需要了解每个功能站的代码变更情况、版本情况等信息,从而进行软件下装、实现V&V 和测试V&V等工作;
(6)工程师站软件NASPES、SVDU 组态软件、算法库等工具软件对核安全级DCS 应用软件代码的版本也有一定影响。
3 核安全级DCS应用软件代码配置管理案例与策略
3.1 配置管理案例
本文提出的依托于核电厂数字化安全级仪控系统(NASPIC 平台)的应用软件代码配置管理策略,可以较好地控制核安全级DCS 应用软件代码版本。应用软件工程代码包文件中的文件夹对应着各功能站,并以站号命名。功能站的站号是设计人员根据软件需求规格书在站点组态时进行设置,以保护组为例,应用软件站点信息如表1所示。
表1 核安全级DCS应用软件站点信息列表
每个功能站点的文件夹下有如下信息,以11站RTC-11为例,如图3所示。
图3 应用软件代码包功能站主要信息
其中download 文件夹中是编译完成待下装的代码,包括三个部分:
(1)devconfig_版本号:设备文件;
(2)exportPara_版本号:参数文件;
(3)LowerCom_Bin_版本号:算法文件。
分别对应站点的设备组态信息、变量组态信息和算法组态信息。代码管理的核心就是管理各功能站的download 文件夹中的各可下装文件的版本,以及其与设计阶段文件的关系。
3.2 配置管理策略
核安全级DCS 应用软件配置管理建议采取如下策略:
策略一:代码整体入库
首先,在进行各功能站代码下装时,各功能站点需通过整个工程进行下装,因此工程代码需要整体出、入库。这样做可以避免多功能站分别入库、出库可能导致的版本混乱。其次,在进行应用软件下装时,下装人员首先会确认硬件通路正确,再从工程中选择对应的功能站进行下装,可在一定程度上提高代码下装效率和降低错误概率。最后,为了方便后续分析问题以及进行版本回溯,需要在代码入库时明确产生每一版应用软件代码包的工具软件版本,因为工具软件的版本变化也会影响到应用软件的版本。
如表2所示,应用软件代码配置项信息主要包括配置项标识、代码包版本和生成该版本代码包的工具软件版本,如NASPES、SCADE、SVDU 组态软件和算法库版本等,这些信息也应包含在策略二中提到的代码版本信息说明文件中。
表2 应用软件代码配置项信息
策略二:应用软件代码包说明文件
在代码实现阶段配合应用软件代码出版代码版本信息说明文件,用以说明代码包中的具体信息。如表3所示,具体明确各功能站点的信息(包括对应的功能站点站号、所在机柜号、站名等)和维护网络IP地址,方便下装人员通过站号找到对应的功能站和通过机柜号找到对应的机柜,从而快速匹配软、硬件信息,并通过维护网络对目标站点进行代码下装,这将使下装人员不必查阅多份文件就可以快速识别目标站点,极大提高应用软件代码的下装效率。
表3 功能站点信息及维护网络IP地址列表
此外,该文件中还应包含产生每一版应用软件代码包对应的工具软件版本、功能站点子版本信息、站点修改记录以及与设计阶段文件的对应关系等内容,这部分内容将在其他策略中进行阐述。
策略三:功能站点子版本信息
以华龙一号为例,其标准工程就有28 个功能站点,每个功能站都含有大量的信息,且需要下装到对应的主控模块中,因此需要对工程中功能站点的子版本信息进行明确和管理。
应用软件代码包发布时,有时并不是所有的功能站点都会发生变化,此时需要快速识别各功能站的版本变化情况,方便下游专业开展工作。如对变化站点代码进行实现V&V、下装和测试等工作。
因此,需要对工程中所有功能站的子版本进行明确,并列出上一版本工程中该功能站的子版本,方便使用人员可以快速识别该功能站是否发生了变化,从而开展相关工作。如表4所示,功能站点版本信息表中显示RTC-11站点版本发生了变化,由J.1 变为K.1,而RTC-31 版本没有发生变化,仍为J.1,因此RTC-31 就无需重新下装。
表4 功能站点版本信息表
此外,每个功能站点的详细修改记录也应分站进行体现,供下游人员使用。如表5 所示,提供了一种展现形式,表中包含代码包的主版本和各功能站的详细修改情况。对于逻辑算法部分,会在代码包中使用云线进行标记。
表5 功能站详细修改信息
策略四:与设计阶段文件的对应
为方便测试人员进行测试用例设计,需要明确实现阶段的应用软件代码包所对应的设计阶段文件(主要为仪控功能图)。如表6所示,对应关系表中可包含功能站的站号,其对应设计阶段文件的名称,文件编号和版本等信息,这些信息有助于测试人员在进行测试用例设计时提高效率。
表6 功能站与设计阶段文件对应关系表
4 结语
核安全级DCS 应用软件代码对保护系统执行安全功能至关重要,且具有功能站点多,结构复杂,相互关联,用户种类多和变更频繁等特点。传统的配置策略只能从宏观的角度去对代码进行管理,考虑到核安全级应用软件代码的特点和实际的使用要求,制定符合其特点,并能考虑实际使用要求的配置管理策略至关重要。
本文综合考虑了核安全级DCS 系统结构和应用软件代码特点,并结合用户的具体需求,提出了一种可行的核安全级DCS 应用软件代码管理策略,为同类项目的应用软件代码管理提供参考。