作者:許婧,楊碩,季志均
摘要:隨著目標控制器(OC,Object Controller)系統在軌道交通領域的推廣應用,其硬體投入較高、研發週期較長、環境搭建較為複雜的問題逐漸顯現。文章根據OC系統的架構和特點,基於模組化設計,研究開發了OC數字孿生系統,利用SkyEye進行OC數字孿生系統的開發構建,對OC系統進行軟硬體功能模擬,實現對OC系統的虛擬化。OC數字孿生系統已在上海地鐵3號及4號線改造工程中上線試執行,執行效果良好,可有效緩解開發除錯工作和測試工作形成的資源衝突問題,節省硬體資源和時間成本。
關鍵詞:數字孿生;目標控制器;嵌入式系統;模組化設計;SkyEye
DOI:10.3969/j.issn.1005-8451.2023.10.08
目標控制器(OC,Object Controller)系統可取代傳統計算機聯鎖系統中的繼電電路和監測電路,實現對轉轍機、訊號機、電碼化裝置等軌旁裝置的驅動和採集[1]。OC系統目前被整合於第二代智慧安全型全電子計算機聯鎖系統[2]、列車自主執行系統[3]、列控聯鎖一體化系統[4-5]中,具有廣闊的應用前景。
由於OC系統是在定製的母板上執行嵌入式軟體,研發成本高、定製週期長,若其存在硬體設計問題,需要耗費較長時間進行修正。此外,OC系統具備分散式系統和二乘二取二系統的特點,配置靈活多變,負載種類繁多,為驗證多種應用場景,需要搭建複雜的實驗環境、投入大量的硬體資源;OC系統的研發和測試團隊受限於硬體資源和實驗室空間,能搭建的真實環境數量較少,開發除錯工作和測試工作易形成資源衝突,導致專案進度滯後。
數字孿生技術是指透過資料的互動融合,設計虛擬模型並建立虛擬系統與真實系統的對映關係,進而“映象”實體的技術[6-7]。數字孿生技術最早被應用於飛機的故障預測[8],目前,已廣泛應用於衛星[9]、電力[10]、智慧城市[11]等多個領域。
針對OC系統面臨的問題,本文研究和設計一種OC數字孿生系統,透過分析虛擬實體的執行狀態,預測真實OC裝置的執行結果,及時修正研發方向,從而降低研發成本、提升研發效率。
01.OC系統組成
OC系統的主要功能是根據聯鎖控制系統主控計算機(MCC,Master Control Computer)的驅動命令,控制室外的訊號裝置,並將室外裝置的狀態返回給MCC。OC系統採用模組化設計理念,每種控制模組完成一個獨立的功能。其系統組成如圖1所示。
▲圖1 OC系統組成
OC系統採用二乘二取二架構。二取二是指每個控制模組內部採用雙通道架構,每個通道各有1個運算單元,獨立得出2個運算結果,結果一樣則輸出,不一樣則不輸出。控制模組中的某些關鍵電路採用雙通道差異化設計,能夠有效減少共因失效產生的機率。二乘二取二是指系統中相同的2個控制模組互為冗餘、相互獨立,即使出現了交叉故障,只要互為冗餘的2個控制模組不同時失效,系統仍能保持正常功能。
1.1 安全通訊模組
用於執行OC系統與MCC間的通訊,透過L1安全紅網和L2安全藍網接收來自MCC的命令,根據鐵路訊號安全協議-I(RSSP-I,Railway Signal Safety Protocol-I)和FSFB/2(Fail Safe Field Bus second generation)協議控制GUEST模組,並且將OC系統的狀態上傳給MCC。同時,安全通訊模組參與維護系統通訊,透過L3維護網送出OC系統的維護和診斷資訊,支援簡單網路管理協議(SNMP,Simple Network Management Protocol)、簡單檔案傳輸協議(TFTP,Trivial File Transfer Protocol)、使用者資料協議(UDP,User Datagram Protocol)、簡單網路時間協議(SNTP,Simple Network Time Protocol)協議。互為冗餘的安全通訊模組A和B之間透過L7內網相連。
1.2 GUEST模組
GUEST模組是OC系統中負責控制各種訊號裝置的板卡(如狀態採集板卡、道岔驅動板卡、訊號機驅動板卡等),根據驅動命令控制室外的訊號裝置,並採集室外裝置的狀態。OC系統內2個相同種類的GUEST模組可互為冗餘,例如:GUEST模組 Ai 與GUEST模組 Bi 兩兩配對使用,並透過L4電纜連線到軌道電路、轉轍機、訊號機、安全繼電器、電碼化裝置、零散裝置等室外裝置。GUEST模組結構如圖2所示。
▲圖2 GUEST模組結構示意
各類GUEST模組的結構基本相同,主要由以下2部分組成。
(1)母板。其上整合了特定的硬體元件,例如採集電路、驅動電路、隔離電路、熔絲電路及與這些部件介面的部分現場可程式設計門陣列(FPGA,Field Programmable Gate Array);
(2)安全控制單元(VCU,Vital Control Unit)扣板。基於二取二架構的模組,其上整合了CPU_A、CPU_B、Flash儲存器和隨機存取儲存器(RAM,Random Access Memory)。
1.3 背板
用於實現OC系統內部的連線和通訊,提供電源介面、地址資訊介面、配置資料介面、連線安全通訊模組和各GUEST模組的控制器區域網(CAN,Controller Area Network)匯流排介面等。
1.4 CAN匯流排
每個GUEST模組具有2個獨立的CAN通訊介面,可以透過背板連線在2個獨立冗餘的CAN匯流排上。正常工作時,安全通訊模組透過2個CAN匯流排(CAN_A、CAN_B)與GUEST模組通訊。
02.OC數字孿生系統設計
2.1 系統架構
OC數字孿生系統架構包括分析與統計層、測試層、系統環境層、硬體模擬層等4層。各層相互獨立、充分耦合,透過介面進行互動,實現物理隔離、邏輯相通,便於功能擴充套件和系統整合,根據不同使用場景的需求,實現多種執行模式。其系統架構如圖3所示。
(1)硬體模擬層可實現對OC數字孿生系統執行環境的快速構建和部署,根據應用場景的需要組成多配置項、多機測試環境。可在通用計算機中虛擬執行多片CPU及晶片外設,將要測試的嵌入式軟體的二進位制程式碼裝載到不同的虛擬安全通訊模組和虛擬GUEST模組中。
(2)系統環境層是整個OC數字孿生系統的核心層,可實現對真實OC系統各應用場景的全系統虛擬。系統環境層在OC數字孿生系統執行時,動態載入CPU模擬器、外設晶片構成虛擬例項,從而完成整個OC數字孿生系統的執行,包括執行作業系統和應用軟體。虛擬例項可透過介面管理與其他相關測試系統進行互聯,構成閉環執行環境。在系統環境層中,可根據場景需求,完成執行環境和通訊協議的配置。
(3)測試層對測試用例進行管理,根據測試需要完成故障注入,並將需要執行的測試指令傳輸到系統環境層。
(4)在測試執行後,系統環境層將測試執行期間收集到的測試資料傳送到分析統計層,在分析與統計層對故障相關資料進行故障原因分析和記錄,最終由分析統計層輸出測試結果。
2.2 關鍵模組的虛擬化
OC系統中的安全通訊模組和GUEST模組均以VCU為核心處理單元,擴充套件不同外圍功能電路。根據真實OC系統中的安全通訊模組和GUEST模組的結構特點,可在OC數字孿生系統的系統環境層中搭建相應的虛擬模組。
2.2.1安全通訊模組虛擬化
安全通訊模組主要實現的功能如下。
(1)提供3個對外網口,實現OC系統對外的網路通訊;提供1個對內網口,實現與另一個安全通訊模組間的內部網路通訊;
(2)對於二取二架構中的每個通道,安全通訊模組的二進位制程式碼和電子戳儲存在虛擬VCU的Flash中;安全通訊模組透過2個序列外設介面(SPI,Serial Peripheral Interface)通道,讀取相關配置資料,並將資料儲存在其他虛擬的Flash外設之中;
(3)透過2條虛擬的CAN匯流排與系統內的GUEST模組互動資料。
在OC數字孿生系統中,虛擬的VCU是雙通道架構,每個通道以1個虛擬的MCF54418 CPU為核心處理器,雙通道之間透過模擬的內部串列埠實現高頻二取二互動通訊。
2.2.2 GUEST模組虛擬化
GUEST模組的虛擬化架構與安全通訊模組類似,但真實OC系統的GUEST模組中有眾多繼電器、自檢電路、ADC數字取樣和FPGA等硬體元件。系統環境層根據每類GUEST模組的構造,進行硬體功能的FPGA模擬,透過虛擬的通用輸入/輸出(GPIO,General Purpose Input/Output)和FPGA介面,與VCU模組進行互動,從而實現模組自檢、驅動命令的執行與反饋、開關量的採集和模擬量的採集等功能,為OC數字孿生系統提供必要的自檢和執行條件。
硬體模擬層根據應用場景搭建外圍裝置模組,對OC系統中GUEST模組的負載進行模擬,為OC數字孿生系統提供開關量、模擬量資料。
03.基於SkyEye的開發例項
SkyEye是基於視覺化建模的硬體行為級模擬平臺,支援使用者透過拖拽的方式對硬體進行行為級別的模擬和建模。基於SkyEye搭建的嵌入式系統虛擬化執行環境,研發人員可不受物理硬體限制,隨時訪問目標系統,快速搭建虛擬硬體模型[12]。本文在Windows作業系統下,進行基於SkyEye平臺的OC數字孿生系統的開發,完成對真實OC系統的虛擬化。
3.1 系統開發框架
OC數字孿生系統的開發框架如圖4所示,由OC數字孿生系統構建、OC數字孿生執行環境和OC數字孿生配置管理工具構成。
▲圖4 OC數字孿生系統開發框架示意
3.1.1 系統構建
本文透過設計通用模組和提供可配置的各類硬體外設介面,靈活構建OC數字孿生系統。構建思路如下:
(1)將通用API介面封裝成核心動態庫,支援其他模組的介面呼叫;
(2)採用模組化的設計思想,系統的處理器、記憶體匯流排、外圍裝置等均被設計為獨立的模組;
(3)透過硬體配置指令碼靈活搭建目標系統,根據硬體配置生成不同GUEST模組的皮膚顯示,並根據程式執行情況點亮皮膚燈;
(4)實現二進位制檔案解析和載入功能。
3.1.2 執行環境
在真實OC系統中,最多包含2個安全通訊模組和28個GUEST模組。與之對應的,在OC數字孿生系統中,最多虛擬30個VCU模組同時執行的狀態,每個VCU包含2個CPU,並對OC系統的內部通訊進行虛擬,還原真實系統的執行情況。為實現60個CPU的同時執行,本文設計了多VCU目標機整合方案:啟動4個SkyEye程序,再透過時間同步工具進行統一的時鐘推進,確保OC數字孿生系統的協同執行。
透過SkyEye整合MCF54418 CPU及晶片外設模擬、時間同步工具和二進位制動態編譯等元件,提供統一的OC數字孿生系統的部署驗證。應用程式可直接在OC數字孿生系統中執行,在與真實OC系統的硬體輸入條件相同、執行時間相同時,能得到與真實執行結果相同的輸出。執行環境中的時間同步工具是OC數字孿生系統按時序執行的基礎,主要有2個功能:
(1)實現單VCU模組內CPU_A和CPU_B的同步;
(2)實現模組之間的同步。
3.1.3 配置管理工具
配置管理工具基於執行環境,提供系統配置管理功能,包括虛擬硬體的裝置管理、OC節點管理、節點間網路通訊狀態管理、日誌管理、軟體配置檔案的載入、系統執行時間與資料同步的設定等。
3.2 VCU建模示例
透過SkyEye對VCU進行建模,虛擬VCU內部設計和多VCU間的通訊,如圖5所示。VCU_0模組描述VCU內部對雙通道的規劃,以core、ram、spi、uart、flash、net、gpio、can外設為基礎搭建系統。VCU_1描述多個VCU之間透過can_linker的方式進行通訊的機制。
04.試執行情況
本文設計的OC數字孿生系統是真實OC系統裝置的數字對映,已於2023年2月,在上海地鐵3號及4號線改造工程中上線試執行。研發人員使用OC數字孿生系統在真實OC硬體未製造時提前驗證OC系統的硬體設計、軟體功能和系統效能,在發現設計缺陷後及時最佳化,減少了產品研發的迭代次數,將研發時間從半年縮短至2個月左右,節約了研發成本。在排查OC系統的故障時,售後人員利用OC數字孿生系統還原了現場的複雜場景,快速復現了現場問題,及時定位了故障原因,減少了售後工作的人力消耗。
05.結束語
本文基於OC系統架構設計了OC數字孿生系統,介紹了關鍵模組的虛擬化方式,並基於SkyEye進行開發。該系統已在上海地鐵3號及4號線改造工程中上線試執行,執行效果良好,可有效緩解開發除錯工作和測試工作形成的資源衝突,縮短研發週期,同時,降低OC系統的維護成本,具有推廣價值。
參考文獻
[1]郭 陽. 全電子執行模組在訊號計算機聯鎖工程設計中的應用[J]. 鐵道標準設計,2010(4):116-118.
[2]陳 亮. 全電子計算機聯鎖的發展與規模化應用[J]. 科技視界,2020(15):9-11.
[3]歐陽玲萍,熊坤鵬,朱程輝,等. 城市軌道交通TACS系統測試探討[J]. 電子技術與軟體工程,2023(3):143-147.
[4]賈春肖,張宏韜,齊志華. 我國鐵路列控聯鎖系統發展趨勢研究[J]. 中國鐵路,2020(2):1-5.
[5]梁志國,盧佩玲,付 偉. 鐵路列控聯鎖一體化系統研究[J]. 鐵道通訊訊號,2019,55(S1):98-102.
[6]陶 飛,劉蔚然,劉檢華,等. 數字孿生及其應用探索[J]. 計算機整合製造系統,2018,24(1):1-18.
[7]Boschert S, Rosen R. Digital twin—the simulation aspect[M]//Hehenberger P, Bradley D. Mechatronic Futures. Cham: Springer, 2016: 59-74.
[8]Grieves M, Vickers J. Digital Twin: Mitigating Unpredictable, Undesirable Emergent Behavior in Complex Systems[M]//Kahlen F J, Flumerfelt S, Alves A. Transdisciplinary Perspectives on Complex Systems. Cham: Springer, 2017: 85-113.
[9]劉蔚然,陶 飛,程江峰,等. 數字孿生衛星:概念、關鍵技術及應用[J]. 計算機整合製造系統,2020,26(3):565-588.
[10]劉亞東,陳 思,叢子涵,等. 電力裝備行業數字孿生關鍵技術與應用展望[J]. 高電壓技術,2021,47(5):1539-1554.
[11]王成山,董 博,於 浩,等. 智慧城市綜合能源系統數字孿生技術及應用[J]. 中國電機工程學報,2021,41(5):1597-1608.
[12]楊興偉. 基於SkyEye的SMDK2410硬體模擬平臺設計[J]. 可程式設計控制器與工廠自動化,2009(10):87-90,105.