劉思媛,陳永忠,韓利峰,余嘉莉
(1.中國科學院上海應用物理研究所,上海 201800;2.中國科學院大學,北京 100049)
熔鹽堆是將核燃料熔在用作冷卻劑的液態氟化鹽中的一種液態燃料堆,因其更好的安全性、經濟性和可持續性成為6種第四代核反應堆中的堆型之一[1]。中科院戰略性先導科技專項——釷基熔鹽堆核能系統(TMSR),采用熔鹽堆作為系統研究堆型,通過研制2MWt液體燃料熔鹽實驗堆(簡稱TMSR-LF1)等一系列反應堆,實現基于釷基燃料的核能綜合利用[2]。
TMSR-LF1熔鹽堆當前尚處于安裝階段,堆內設備數量多達數千臺,因而LF1熔鹽堆安裝、調試、運行階段均需密切關注設備管理,包括設備信息管理、設備現場管理等。當前國內已有核電設備管理系統建設的應用實例,例如核電廠熱交換器信息管理[3]、反應堆退役廢物管理[4]、反應堆信息管理系統[5]等,可以證明設備管理系統能夠有效解決信息管理不科學、信息調用不便、現場管理效率低下等問題,使反應堆的設備管理更高效、更精準、更便捷。
分析以上實例,本文設計并實現了一套包含小程序與Web平臺的多終端的設備信息管理系統。面向TMSR-LF1熔鹽堆系統,梳理整合熔鹽堆內各系統的設備數據、參數數據、文件數據等邏輯關聯,建立數據庫表結構,并基于數據庫,利用二維碼技術、Web開發技術等實現設備信息管理功能的設計與開發,旨在輔助熔鹽堆現場操作人員實現設備信息的融合調用以及設備的智能化管理,提高設備的安裝調試與現場管理效率。
1)更高效的TMSR-LF1熔鹽堆設備信息管理。LF1熔鹽堆共10余個實驗系統,實驗系統下又涵蓋眾多子系統或設備,設備的設計參數、輸出參數、物項信息、IO信息等數據不一而足;同時大部分設備信息尚分散于各文件,形成“信息孤島”。這便導致,在LF1熔鹽堆工程現場,設備信息往往難以查詢或獲取的設備信息有誤。因此,需要建立合理科學的設備信息數據結構以及設備信息管理平臺,最終實現設備信息融合調用。
2)提高設備現場管理效率。在熔鹽堆的安裝、調試階段,由于設備間的線纜物理參數多、外形難區分,往往容易導致線纜與設備安裝效率低,甚至安裝錯誤的情況發生。然而,實際工程對設備準確度要求極高,不允許任何差池,故而一個精細化管理設備與線纜的應用是非常必需的。同時,由于實驗堆現場對工作人員使用的應用設備有一定便攜性要求,因而這個應用亦需建立移動客戶端,綜合實現設備現場管理效率的提升。
3)實現熔鹽堆運行工況的反饋。在熔鹽堆運行階段,熔鹽堆共有完全停堆態等5種運行狀態。不同狀態下反應堆內熔鹽燃料、設備等所處狀態不同,操作員將要進行的下一步操作亦不同。因此,需及時反饋熔鹽堆內運行工況,避免出現操作員操作失誤問題。
分析以上需求確定本系統的核心目標,是通過Web應用的方式實現TMSR-LF1熔鹽堆內大量且分散的設備數據及文件等的科學管理,支持設備信息的融合調用、跨平臺調用。
同時針對設備的現場管理問題,采用二維碼技術,基于Web應用和移動端應用完成“設備信息錄入——生成二維碼——現場掃碼獲取信息”的循環,實現一線纜一碼,使現場線纜與設備管理更精細、更便捷[6]。
綜上,將該系統設計為以PC端Web應用為主,移動端微信小程序為輔的多終端系統,小程序借助二維碼輔助現場設備管理,Web應用實現設備信息的綜合管理,并通過二維碼管理為微信小程序提供支持。
該系統具體功能結構如圖1所示。

圖1 功能模塊圖Fig.1 The architecture of functions
Web客戶端功能模塊:
1)設備參數與文件管理模塊:按照LF1熔鹽堆實驗系統—子系統—設備的結構,分類管理各系統及設備的所有參數數據和相關文件。參數管理方面,設備所有參數數據,包括物項信息、各項參數,如輸出參數、輔助工藝參數等,均以數據表的形式展示,并支持對數據進行增加、刪除、修改、查詢等操作;文件管理方面,支持相關文件的下載、刪除,以及新文件的上傳。
2)線纜信息與二維碼管理模塊:模塊可分為線纜信息管理與線纜二維碼管理兩方面。線纜信息管理部分整合LF1熔鹽堆所有主工藝線纜信息,包括線纜起終點連接設備及設備描述信息、線纜規格型號等,以數據表形式展示,支持線纜信息查詢、信息錄入與更新;線纜二維碼管理部分則統計線纜是否具備二維碼的情況,對不具備二維碼的線纜支持生成二維碼、下載二維碼圖片。
3)系統運行工況反饋模塊:模塊主要展示熔鹽堆內運行工況,支持運行工況的新增,以及歷史運行工況的查詢與展示。
4)系統管理模塊:該模塊主要為系統用戶管理以及權限管理,包括用戶信息管理、用戶信息增刪改查、用戶權限的分配與修改等。
微信小程序客戶端功能模塊:
主要提供線纜查詢能力,包括線纜掃碼查詢與線纜模糊查詢,支持用戶通過掃描現場二維碼、手動輸入關鍵詞兩種形式,直接查詢并獲取線纜所有信息。
該系統基于B/S結構,采用前后端分離的MVC架構進行設計。前后端分離模式的思想將Web開發分成前端與后端兩部分,前端負責頁面渲染、路由控制以及處理請求等,后端負責處理業務邏輯并提供數據接口,前端調用后端接口即可進行數據傳輸[7]。
系統整體分層架構如圖2所示。

圖2 系統開發架構圖Fig.2 The architecture of system implement
如圖2所示,該系統整體按照MVC結構分為前端視圖層、后端控制層和后端數據層。
前端視圖層設計頁面效果,負責系統的前端設計。系統的兩大客戶端中,微信小程序視圖層基于微信原生WXML框架搭建,Web系統視圖層則基于Vue.js框架搭建,并利用Element-UI框架實現界面UI。
視圖層與控制層間通過Axios請求交互。前端請求調用后端的RESTful API接口,后端處理請求完畢后,將結果以JSON格式返回前端。
后端控制層采用Python的Flask框架搭建,控制訪問并基于數據層的數據模型完成業務邏輯處理。
后端數據層負責數據庫相關操作,通過建立數據類來描述數據庫中各表,支持邏輯層通過操作對象來操作數據庫[8],完成數據庫表的增、刪、改、查相關操作。該系統使用SQLAlchemy類作為數據持久化工具。
數據庫是系統建立的基礎,其設計過程分為需求分析、概念設計、邏輯結構設計、物理設計四階段,本文主要介紹該系統數據庫的邏輯結構設計。
將LF1熔鹽堆10余個實驗系統及數百臺設備等抽象為“系統—設備/子系統—子設備/設備物項—設備信號”的樹狀模型,并從該模型出發建立數據關系。
在熔鹽堆實驗系統與設備方面,梳理實驗系統下所有主要設備以及系統總體參數,建立系統表、系統設備表、系統參數表;圍繞設備分別建立設備物項分級表、系統下設備參數表、設備文件表。
在設備信號方面,因LF1熔鹽堆設備運行期間,將由不同元件采集設備數據產生IO信號,每一個信號代表不同的設備運行信息,所有IO信號由不同線纜傳輸至控制柜進行處理。IO信號以及所代表的設備運行信息均為系統關鍵數據,因此建立設備IO清單、線纜表。
在系統運行方面,圍繞系統運行工況反饋需求建立運行工況表。
具體數據庫表關系如圖3所示。

圖3 數據庫表關系Fig.3 Relationships among database tables
Web系統前端視圖層采用Vue.js框架搭建,該框架的核心在于組件化開發?;谶@一特點,該系統構建側邊欄、參數表、IO表等子組件,將各實驗系統頁面作為父組件調用各子組件,并以傳值的方式完成父子組件間通信。
設備參數模塊、系統工況模塊、線纜信息管理模塊中的數據刪、改操作,由視圖層傳遞數據id至控制層查找數據庫中對應數據信息,并執行數據庫刪操作;數據增加,視圖層通過建立新的reactive響應數組,Form表單綁定數據傳入數組,隨即傳遞數組至控制層建立新數據對象,提交數據庫完成數據新增;數據模糊查詢則是通過視圖層建立響應數組,v-model標簽綁定用戶輸入的關鍵詞,執行數據庫查詢后返回數據集合。

圖4 Web系統熔鹽制備與熔鹽預處理子系統頁Fig.4 The page of molten salt preparation and molten salt pretreatment subsystem

圖5 小程序部分頁面Fig.5 Pages of Wechat mini program
設備文件管理模塊中文件上傳功能通過調用element組件庫中的el-upload組件實現;下載功能首先傳遞文件名至后端獲取對應的blob文件流,解析后利用html進行下載。
線纜二維碼管理模塊中,視圖層建立含cable_id和start_device的JSON格式數據,控制層引入Python的QRCode庫,將該JSON作為信息生成二維碼以及圖片,二維碼圖片進行base64編碼后返回前端完成在頁面的展示,并通過html實現二維碼下載,關鍵代碼如下:

以上視圖層與控制層間通信的Restful API是一套基于HTTP協議開發的統一的后端接口,利用Flask-RESTful類編寫。API通過route裝飾器將業務邏輯處理方法綁定至URL,Axios請求訪問URL地址后即可調用對應的邏輯處理方法。選擇部分API說明作為示例,見表1。

表1 Web系統RESTful API設計(部分)Table1 API interface design of Web system (Part)
小程序線纜二維碼查詢功能,首先由視圖層調用wx.scanCode()方法掃描二維碼獲取二維碼信息,即含cable_id和start_device的JSON數據,傳遞至控制層解析JSON獲取cable_id等參數,查詢數據庫后返回數據。
線纜模糊查詢功能,通過視圖層setData()方法綁定用戶輸入關鍵詞,控制層執行數據庫查詢后返回數據集合。關鍵代碼如下:

本文在分析TMSR-LF1熔鹽堆現場的設備信息管理需求基礎上,結合二維碼技術提出一線纜一碼的思路,并設計了一套含微信小程序客戶端與PC客戶端的多終端設備信息管理系統,包含線纜信息與二維碼管理、設備參數與文件管理、系統運行工況管理等幾個模塊。本文基于功能模塊設計了數據庫表結構,并綜合運用Vue.js前端框架、Python Flask后端框架完成功能開發。該系統測試功能良好,下一步將豐富頁面可視化效果,對更多不同種類數據的管理進行探索。