“华龙一号”全范围模拟机软件配置管理
2020-03-05冉晓隆方华健
冉晓隆,方华健,刘 伟
(中核武汉核电运行技术股份有限公司,湖北武汉 430074)
0 引言
“华龙一号”是我国具备完整自主知识产权的三代先进压水堆核电型号。在国家大力推进“一带一路”倡议背景下,巴基斯坦卡拉奇2 号和3 号机组是“核电走出去”战略的排头兵[1]。K2 全范围模拟机采用核动力运行研究所自主知识产权的Rinsim2.0仿真平台开发,研制过程中软件系统采用先进的软件配置管理工具和方法,使项目得以高质高效的完成。
全范围模拟机软件系统包括基本电脑运行环境和模拟机仿真软件系统。电脑运行环境一般采用通用商业的Windows 系统和Linux 系统;模拟机仿真软件系统则包含仿真平台软件、工程计算软件、通信软件和数据文件等。全范围模拟机软件开发要经历初步设计,详细设计,调试,集成,偏差修改,数据更新一系列过程,过程中存在大量的平台软件变更,计算软件变更,配置文件变更,数据库变更等,涉及到多个专业工程人员同步开发和协同合作。软件配置管理系统为开发人员提供统一的开发入口,协调各专业开发工作,对开发过程文件和最终产品进行管控,降低开发过程中软件变更引起的质量风险。
1 软件配置管理系统介绍
软件配置管理系统独立于模拟机软件系统,通过软件工具对模拟机软件的物理文件进行监控管理[2]。分为服务器端和客户端两部分,客户端与服务器端连接,对模拟机软件进行管理操作;服务器端对所有分客户端的软件进行汇总集成和发布。服务器端和客户端协同工作,才能保证配置管理系统所有功能的正常工作。实现项目开发过程控制、数据版本控制、统一工作入口、统一的机器环境配置以及日常管理和维护,为全范围模拟软件开发全周期提供支持[3]。相关术语描述如下。
(1)配置项。配置管理系统的基本单元。配置管理的对象,模拟机软件系统中的元文件。
(2)配置库。包含有多个配置项和非配置项的合集,可独立使用。模拟机软件系统按计划周期形成配置库。一个配置管理系统中可以包含多个配置库。
(3)写下载。对配置项的锁定下载,配置项状态变为“锁定”。被下载配置项只能由下载者进行修改操作,其他用户只能进行普通下载。
(4)上传。对写下载的配置项上传,上传成功的配置项解除锁定状态。
(5)配置节点。人为划分的配置项层级,同一节点下的配置项具有相同的属性,节点具有一定的物理意义。
2 软件配置管理系统建立
2.1 配置管理环境建立
模拟机的开发是利用仿真开发软件,结合数据进行工程文件开发的过程。其中开发软件是相对成熟的仿真平台软件,少量的文件会随着项目的开发做适应性修改;而工程文件和运行数据是项目专有的,大量的文件随项目开发变更。配置管理主要对工程文件和运行数据进行实时管理,仿真平台软件通过行政管理统一发布。软件配置管理环境架构如图1 所示。
配置管理系统布置在模拟机开发环境上,即在模拟机集成服务器上布置配置管理服务器,在工程师站上安装客户端。服务器端根据项目文件结构指定文件路径,建立配置项和配置库,进行人员权限设置,绑定项目数据库等系统配置。客户端同步下载服务器端的配置库和数据库,进行数据库配置,可形成与服务器端完全一样的软件环境。
2.2 配置项建立
配置项的选择是配置管理实施的前提,全范围模拟机软件系统配置项可分为平台软件、工程文件和数据库三大类。
图1 软件配置管理环境架构
平台软件是仿真平台固有的组成部分。包括仿真支持软件SimBase;模拟机运行软件SimIS、SimCurve、SimHMI;开发软件ES、DCS 组态工具、IOMAP、建模算法软件等。属于比较成熟的软件,项目使用中修改概率较小,划分为大的配置节点。
工程文件是模拟机开发过程中生成的文件。包括可执行程序文件、动态库文件以及文本文件,文本文件主要包括配置文件、图形化建模文件、非图形化建模文件、数据文件等。这些文件与模拟机开发过程密切相关,频繁变更,配置节点层级与模拟机软件结构保持一致,以方便操作管理(图2)。
图2 工程文件配置项建立
数据库是模拟机开发过程中生成的配置文件及数据。配置文件和数据库中数据版本匹配,才能正常运行。Simbase 数据库与模拟机运行时产生的状态数据一起使用,包括单系统的文本文件和整个数据库的二进制文件;Simstation 数据库和工况清单一起使用;Iomap 数据库与接口清单一起使用。由于模拟机运行时不同的运行工况将产生大量的状态数据二进制文件,故设置为一个单独的工况数据配置库。
所有的配置项均在服务器端通过新建的方式添加,根据配置项管理需求设置多级配置节点,最小节点下放置配置项文件。客户端不能进行配置项的增减,状态随服务器变化。所有的配置项建立完成之后,形成基本的配置库发布客户端使用。
3 软件配置管理系统使用
软件提供了控制的工具,合理的规则是有效管理的必要条件。全范围模拟机软件开发配置管理主要涉及以下4 个方面。
3.1 配置项管理
首次发布的配置库是最小基本库,随着项目的开展,配置库会不断增加配置项,也会有更多的配置项变更。
新增配置项时,遵循“先加后用”的原则,先在服务器端建立文件,在配置管理系统中添加对应的配置项,客户端再进行操作使用。
更新配置项时,遵循“先下载后修改”的原则,先通过配置管理客户端写下载配置项文件,进行修改,修改完成之后再上传至服务器。服务器会将上传的文件先放在缓存区,待审核通过之后再移动至项目正确的工程路径下,审核不通过时返回客户端重新修改。具有关联性的配置项,如图形化建模文件与系统运行数据文件,在进行配置项变更时,需要关联的配置项同时随流程变动,避免数据不匹配引起软件运行问题。未经过写下载就直接修改客户端文件,修改完之后没有合法的上传路径,无法实现最终的修改生效;且会在下次写下载时被覆盖掉,极易造成文件的丢失,是操作流程严令禁止的。
配置项变更过程会被系统写到操作日志文件中,每一次成功的变更配置项会在配置管理系统内生成小的版本号,以便后续跟踪。配置项新增和更新流程如图3 所示。
图3 配置项更新流程
3.2 配置库管理
软件配置管理系统满足多专业开发人员协同开发的需求,必然会造成每一时间周期后各客户端与服务器端差异。此时软件开发服务器需要形成新的软件环境,配置管理系统需要发布新的配置库。
配置库以固定周期进行更新。利用配置管理系统日志的功能,将周期内变更的配置项统计出来,在软件开发服务器上统一的集成和调试,生成新的稳定软件版本和数据库。各子客户端通过同步配置项和数据的方式,更新到与服务器一致的软件状态,开始下一阶段的开发工作。配置库更新流程如图4 所示。
图4 配置库更新流程
但是,模拟机开发后期现场调试及运维阶段,软件开发模式发生变化。此时主要以现场使用的软件环境为主,同时开发环境依然在做技术支持软件修改。为保障现场环境的持续改进,利用配置管理系统定期将开发环境的变更项更新至现场,在现场完成软件的集成和新状态发布。同时为保证软件版本的一致性,开发环境的软件配置管理服务器端随现场软件版本变化。
3.3 配置库回溯
模拟机开发过程中,定期对配置库进行备份管理。特别是测试阶段和阶段转换时期,定期的备份是项目开发软件可追溯性的保障。备份的配置库如图5 所示。
图5 配置库备份
理想的回溯是选择历史备份的某配置库时,即可直接使用。实际的全范围模拟机软件开发过程中,由于SimBase 数据量达到千万级别,导致每一个工况保持的数据文件很大,而开发和测试过程中不断保存不同的工况数据。如每个配置库都带所有的工况数据,将对磁盘空间造成极大的压力,也不利于配置库的管理。但数据库的不断变化又要求匹配的工况数据一起使用,所以数据库配置库的备份成为回溯的关键问题难点。目前模拟机开发过程中有两种方式对数据库配置库备份进行处理。
第一种方式是备份时,数据库配置库的备份间隔周期更长,全数据库配置库备份。这种方式同时要求开发过程中保存工况不重复,回溯时,数据库总是能提供与保存时配置文件一致的工况数据。目前仿真平台支持999 个工况,满足开发使用。
第二种方式是备份时,数据库配置库同时做增量备份。这种方式每次只备份本次与上传比较新增的工况数据,回溯时,需要使用回溯点之前所有的数据库工况数据。虽然节省了磁盘空间,但做备份时和回溯时需要额外的进行数据库配置库管理。
3.4 配置状态报告
软件配置状态报告是用于反映当前软件状态的标准报告,软件配置管理系统记录了每个配置项的历史变更情况以及当前状态。通过导出配置状态文件,提取配置项相关信息,可迅速的生成项目使用配置状态报告。同时还可深入的对配置状态文件进行统计分析,便于更好的配置项管理。
4 结语
“华龙一号”全范围模拟机研制过程中采用了软件配置管理系统,实现了多专业协同合作,软件版本变更控制,建立了新的软件开发模式,提高了软件产品可靠性,降低了项目风险。为提高模拟机软件产品质量提供了保障。