冉曉隆,方華健,劉 偉
(中核武漢核電運行技術股份有限公司,湖北武漢 430074)
“華龍一號”是我國具備完整自主知識產權的三代先進壓水堆核電型號。在國家大力推進“一帶一路”倡議背景下,巴基斯坦卡拉奇2 號和3 號機組是“核電走出去”戰略的排頭兵[1]。K2 全范圍模擬機采用核動力運行研究所自主知識產權的Rinsim2.0仿真平臺開發,研制過程中軟件系統采用先進的軟件配置管理工具和方法,使項目得以高質高效的完成。
全范圍模擬機軟件系統包括基本電腦運行環境和模擬機仿真軟件系統。電腦運行環境一般采用通用商業的Windows 系統和Linux 系統;模擬機仿真軟件系統則包含仿真平臺軟件、工程計算軟件、通信軟件和數據文件等。全范圍模擬機軟件開發要經歷初步設計,詳細設計,調試,集成,偏差修改,數據更新一系列過程,過程中存在大量的平臺軟件變更,計算軟件變更,配置文件變更,數據庫變更等,涉及到多個專業工程人員同步開發和協同合作。軟件配置管理系統為開發人員提供統一的開發入口,協調各專業開發工作,對開發過程文件和最終產品進行管控,降低開發過程中軟件變更引起的質量風險。
軟件配置管理系統獨立于模擬機軟件系統,通過軟件工具對模擬機軟件的物理文件進行監控管理[2]。分為服務器端和客戶端兩部分,客戶端與服務器端連接,對模擬機軟件進行管理操作;服務器端對所有分客戶端的軟件進行匯總集成和發布。服務器端和客戶端協同工作,才能保證配置管理系統所有功能的正常工作。實現項目開發過程控制、數據版本控制、統一工作入口、統一的機器環境配置以及日常管理和維護,為全范圍模擬軟件開發全周期提供支持[3]。相關術語描述如下。
(1)配置項。配置管理系統的基本單元。配置管理的對象,模擬機軟件系統中的元文件。
(2)配置庫。包含有多個配置項和非配置項的合集,可獨立使用。模擬機軟件系統按計劃周期形成配置庫。一個配置管理系統中可以包含多個配置庫。
(3)寫下載。對配置項的鎖定下載,配置項狀態變為“鎖定”。被下載配置項只能由下載者進行修改操作,其他用戶只能進行普通下載。
(4)上傳。對寫下載的配置項上傳,上傳成功的配置項解除鎖定狀態。
(5)配置節點。人為劃分的配置項層級,同一節點下的配置項具有相同的屬性,節點具有一定的物理意義。
模擬機的開發是利用仿真開發軟件,結合數據進行工程文件開發的過程。其中開發軟件是相對成熟的仿真平臺軟件,少量的文件會隨著項目的開發做適應性修改;而工程文件和運行數據是項目專有的,大量的文件隨項目開發變更。配置管理主要對工程文件和運行數據進行實時管理,仿真平臺軟件通過行政管理統一發布。軟件配置管理環境架構如圖1 所示。
配置管理系統布置在模擬機開發環境上,即在模擬機集成服務器上布置配置管理服務器,在工程師站上安裝客戶端。服務器端根據項目文件結構指定文件路徑,建立配置項和配置庫,進行人員權限設置,綁定項目數據庫等系統配置。客戶端同步下載服務器端的配置庫和數據庫,進行數據庫配置,可形成與服務器端完全一樣的軟件環境。
配置項的選擇是配置管理實施的前提,全范圍模擬機軟件系統配置項可分為平臺軟件、工程文件和數據庫三大類。
圖1 軟件配置管理環境架構
平臺軟件是仿真平臺固有的組成部分。包括仿真支持軟件SimBase;模擬機運行軟件SimIS、SimCurve、SimHMI;開發軟件ES、DCS 組態工具、IOMAP、建模算法軟件等。屬于比較成熟的軟件,項目使用中修改概率較小,劃分為大的配置節點。
工程文件是模擬機開發過程中生成的文件。包括可執行程序文件、動態庫文件以及文本文件,文本文件主要包括配置文件、圖形化建模文件、非圖形化建模文件、數據文件等。這些文件與模擬機開發過程密切相關,頻繁變更,配置節點層級與模擬機軟件結構保持一致,以方便操作管理(圖2)。
圖2 工程文件配置項建立
數據庫是模擬機開發過程中生成的配置文件及數據。配置文件和數據庫中數據版本匹配,才能正常運行。Simbase 數據庫與模擬機運行時產生的狀態數據一起使用,包括單系統的文本文件和整個數據庫的二進制文件;Simstation 數據庫和工況清單一起使用;Iomap 數據庫與接口清單一起使用。由于模擬機運行時不同的運行工況將產生大量的狀態數據二進制文件,故設置為一個單獨的工況數據配置庫。
所有的配置項均在服務器端通過新建的方式添加,根據配置項管理需求設置多級配置節點,最小節點下放置配置項文件。客戶端不能進行配置項的增減,狀態隨服務器變化。所有的配置項建立完成之后,形成基本的配置庫發布客戶端使用。
軟件提供了控制的工具,合理的規則是有效管理的必要條件。全范圍模擬機軟件開發配置管理主要涉及以下4 個方面。
首次發布的配置庫是最小基本庫,隨著項目的開展,配置庫會不斷增加配置項,也會有更多的配置項變更。
新增配置項時,遵循“先加后用”的原則,先在服務器端建立文件,在配置管理系統中添加對應的配置項,客戶端再進行操作使用。
更新配置項時,遵循“先下載后修改”的原則,先通過配置管理客戶端寫下載配置項文件,進行修改,修改完成之后再上傳至服務器。服務器會將上傳的文件先放在緩存區,待審核通過之后再移動至項目正確的工程路徑下,審核不通過時返回客戶端重新修改。具有關聯性的配置項,如圖形化建模文件與系統運行數據文件,在進行配置項變更時,需要關聯的配置項同時隨流程變動,避免數據不匹配引起軟件運行問題。未經過寫下載就直接修改客戶端文件,修改完之后沒有合法的上傳路徑,無法實現最終的修改生效;且會在下次寫下載時被覆蓋掉,極易造成文件的丟失,是操作流程嚴令禁止的。
配置項變更過程會被系統寫到操作日志文件中,每一次成功的變更配置項會在配置管理系統內生成小的版本號,以便后續跟蹤。配置項新增和更新流程如圖3 所示。
圖3 配置項更新流程
軟件配置管理系統滿足多專業開發人員協同開發的需求,必然會造成每一時間周期后各客戶端與服務器端差異。此時軟件開發服務器需要形成新的軟件環境,配置管理系統需要發布新的配置庫。
配置庫以固定周期進行更新。利用配置管理系統日志的功能,將周期內變更的配置項統計出來,在軟件開發服務器上統一的集成和調試,生成新的穩定軟件版本和數據庫。各子客戶端通過同步配置項和數據的方式,更新到與服務器一致的軟件狀態,開始下一階段的開發工作。配置庫更新流程如圖4 所示。
圖4 配置庫更新流程
但是,模擬機開發后期現場調試及運維階段,軟件開發模式發生變化。此時主要以現場使用的軟件環境為主,同時開發環境依然在做技術支持軟件修改。為保障現場環境的持續改進,利用配置管理系統定期將開發環境的變更項更新至現場,在現場完成軟件的集成和新狀態發布。同時為保證軟件版本的一致性,開發環境的軟件配置管理服務器端隨現場軟件版本變化。
模擬機開發過程中,定期對配置庫進行備份管理。特別是測試階段和階段轉換時期,定期的備份是項目開發軟件可追溯性的保障。備份的配置庫如圖5 所示。
圖5 配置庫備份
理想的回溯是選擇歷史備份的某配置庫時,即可直接使用。實際的全范圍模擬機軟件開發過程中,由于SimBase 數據量達到千萬級別,導致每一個工況保持的數據文件很大,而開發和測試過程中不斷保存不同的工況數據。如每個配置庫都帶所有的工況數據,將對磁盤空間造成極大的壓力,也不利于配置庫的管理。但數據庫的不斷變化又要求匹配的工況數據一起使用,所以數據庫配置庫的備份成為回溯的關鍵問題難點。目前模擬機開發過程中有兩種方式對數據庫配置庫備份進行處理。
第一種方式是備份時,數據庫配置庫的備份間隔周期更長,全數據庫配置庫備份。這種方式同時要求開發過程中保存工況不重復,回溯時,數據庫總是能提供與保存時配置文件一致的工況數據。目前仿真平臺支持999 個工況,滿足開發使用。
第二種方式是備份時,數據庫配置庫同時做增量備份。這種方式每次只備份本次與上傳比較新增的工況數據,回溯時,需要使用回溯點之前所有的數據庫工況數據。雖然節省了磁盤空間,但做備份時和回溯時需要額外的進行數據庫配置庫管理。
軟件配置狀態報告是用于反映當前軟件狀態的標準報告,軟件配置管理系統記錄了每個配置項的歷史變更情況以及當前狀態。通過導出配置狀態文件,提取配置項相關信息,可迅速的生成項目使用配置狀態報告。同時還可深入的對配置狀態文件進行統計分析,便于更好的配置項管理。
“華龍一號”全范圍模擬機研制過程中采用了軟件配置管理系統,實現了多專業協同合作,軟件版本變更控制,建立了新的軟件開發模式,提高了軟件產品可靠性,降低了項目風險。為提高模擬機軟件產品質量提供了保障。