陳宏君, 周 強, 文繼鋒,徐東方, 李九虎, 周 磊
( 南京南瑞繼保電氣有限公司,江蘇 南京 211102)
保護控制裝置開發(fā)正往平臺化、可視化、智能化等方向發(fā)展,需要設計開發(fā)通用硬件、軟件平臺,以提高應用開發(fā)效率和裝置集成能力[1-5]。文獻[1]介紹了統(tǒng)一先進控制保護平臺(unified advanced protection control,UAPC)的硬件結構,提出了基于分布式多處理器和組件化硬件平臺,并設計了一種分布式總線的通信架構,提高裝置內數(shù)據(jù)交換效率和靈活性。文獻[2]設計的平臺采用PowerPC處理器作為保護和管理通信的主控芯片,板間采用高速以太網和低電壓差分信號(low-voltage differential signaling,LVDS)進行數(shù)據(jù)交換。文獻[3]設計了智能變電站保護測控裝置通用平臺,并基于該平臺實現(xiàn)了二次設備裝置的重構和動態(tài)配置。文獻[4]提出了基于嵌入式可編程邏輯控制器(programmable logic controller,PLC)軟核的配網保護硬件平臺設計方案,實現(xiàn)了面向配網主設備保護功能。文獻[5]介紹了可視化配置軟件的設計思路,基于模塊化元件進一步提升了裝置可配置能力。
在裝置的開發(fā)過程中,應用程序開發(fā)調試往往依賴于裝置硬件和測試設備,串行開發(fā)的周期長,有時不能滿足快速響應市場的需求。例如:就地化保護裝置的開發(fā),項目立項、裝置研發(fā)、入網測試、實際投運只有8個月的時間,硬件設計、系統(tǒng)軟件、驅動開發(fā)、應用程序和配置的移植等工作是由多個團隊同時進行,研發(fā)人員在裝置尚不具備的條件下就需進行保護功能和配置建模驗證,故有必要實現(xiàn)個人計算機(personal computer,PC)快速構建等同架構的虛擬裝置,除特殊硬件性能測試外,保護功能和人機接口通信功能可以在虛擬裝置上進行測試驗證。文獻[6]介紹了基于風和公司開發(fā)的嵌入式實時操作系統(tǒng)( wind river workbench’s real time operating system, Vxworks)的微機保護裝置仿真平臺,能完成保護功能的靜態(tài)測試,但不具備基于波形輸入測試功能,并僅限于固定硬件架構。文獻[7]基于變電站配置語言(substation configuration language, SCL)模型,實現(xiàn)基于IEC 61850標準的智能電子設備(intelligent electronic device, IED)仿真系統(tǒng),可模擬IED的制造報文規(guī)范(manufacturing message specification, MMS)和面向通用對象的變電站事件(generic object oriented substation events, GOOSE)通信行為及時間響應機制。文獻[8]提出了一種平臺化的繼電保護數(shù)字仿真系統(tǒng),實際使用取得較好效果。文獻[9]通過實時數(shù)字仿真儀(real time digital simulator, RTDS)閉環(huán)實時數(shù)字仿真驗證了融冰控制保護策略的可行性和有效性。文獻[10—12]介紹了裝置實時系統(tǒng)部分的虛擬同步方法,未涉及非實時通信系統(tǒng)的仿真實現(xiàn)。而一臺裝置的調試除應用功能的驗證外,還需進行各種版本的通信規(guī)約、人機交互顯示組件的測試。隨著應用的復雜度、集成度提高和芯片級系統(tǒng)(system on chip, SOC)多核插件的應用,虛擬仿真平臺需要適應不同的硬件架構,可靈活加載新的服務組件。
文中基于UAPC平臺的硬件、軟件的架構,通過對硬件能力進行抽象建模,構建了虛擬數(shù)據(jù)總線,可靈活配置不同插件的通信方式;通過串行執(zhí)行和虛擬時標機制,實現(xiàn)了多塊多核CPU/DSP的實時任務虛擬運行;通過構建Linux的虛擬接口和組件通信機制,可將Linux的實時、非實時進程等重構為Windows下的動態(tài)鏈接庫,實現(xiàn)裝置的整機仿真功能,文中介紹了虛擬運行平臺的架構和關鍵模塊設計實現(xiàn)思路。
元件(component):是完成特定應用功能的面向對象的一組數(shù)據(jù)和對數(shù)據(jù)進行處理的過程,處理完后輸出的數(shù)據(jù)供其它元件進一步使用,元件包含輸入、輸出、參數(shù)、邏輯節(jié)點等內容。例如過流保護功能可以通過一個過流元件的設計來完成,其輸入是采樣元件的采樣數(shù)據(jù),輸出是過流標志,參數(shù)是過流門檻值。
組件(package):是可獨立發(fā)布的二進制單元。組件是1個黑盒子,對外的接口主要有API功能和端口,其中API是組件對外提供的功能,端口表示組件內部調用外部其它組件功能的函數(shù)[13]。
虛擬運行平臺支持單處理器單步調試、整機仿真運行功能,支持處理器多級任務執(zhí)行和虛擬數(shù)據(jù)總線交換,并滿足實際裝置的數(shù)據(jù)總線同步機制[14];支持Linux相關進程的等價移植重構,支持虛擬液晶調試、IEC 61850調試、IEC 103調試及可視化調試;支持將應用程序形成VisualStudio工程并編譯為動態(tài)鏈接庫。仿真輸入文件包括可視化配置工具PCS-Explorer形成的驅動包[14](config.txt、device.cid等裝置接口文件)、應用程序庫、波形文件等,輸出結果包括事件記錄、波形文件等。在虛擬運行平臺中的配置驅動包和下載到實際裝置運行的文件完全一致,而應用程序只需修改AD采樣的通道映射代碼和部分硬件接口代碼,面向應用的接口函數(shù)和系統(tǒng)變量保持和實際裝置一致。通過條件編譯,可實現(xiàn)裝置運行和仿真運行所需的程序和配置同源維護。虛擬運行平臺支持如下3個功能:
(1) 面向應用的單處理器的單步調試功能。基于VisualStudio開發(fā)環(huán)境,提供單處理器的開發(fā)庫,支持輸入波形文件,通過采樣通道重映射,逐點讀取波形數(shù)據(jù)進行運算。
(2) 面向應用的整裝置虛擬運行功能。支持輸入波形、數(shù)據(jù)陣列或空跑運行模式,指定PC機裝置配置文件路徑、應用程序目標路徑后,啟動虛擬主進程( master process, Master),加載數(shù)字信號處理器(digital signal processor, DSP)、輸入輸出(input ouput,IO)、子進程(slave process,Slave)、通信服務等組件并進行初始化,啟動任務調度和通信處理線程,通過串行執(zhí)行,支持實時任務虛擬微妙級的時間精度、非實時任務的100毫秒級調度。仿真界面可顯示上電初始化的提示信息。
(3) 面向平臺開發(fā)人員的公共服務單步調試功能。 提供測試程序和測試驅動包,通過操作系統(tǒng)適配層,虛擬了同步動態(tài)存儲器(synchronous dynamic random access memory,SDRAM)、共享內存、先進先出(first in first out,F(xiàn)IFO)通信、pthread接口,可基于Win7+VisualStudio單步調試Master、Slave、IEC 61850、LCD、IEC 103、DSP等組件的主體功能。
UAPC平臺架構如圖1所示, 包括硬件平臺、系統(tǒng)軟件和可視化集成工具。所有插件按照標準化、模塊化、可擴展思想設計,采用自主設計的高速總線實現(xiàn)裝置內部高性能CPU插件的橫向擴展。平臺系統(tǒng)軟件包括基于嵌入式操作系統(tǒng)開發(fā)的若干主CPU服務進程、DSP和IO插件的通用功能模塊、驅動程序,底層驅動屏蔽硬件差異,面向應用提供完善的功能和穩(wěn)定的接口,支持平滑升級。各個方向的應用人員通過可視化集成工具開發(fā)和調試應用程序。主CPU的進程采用一主多從架構,Master為管理主進程,負責啟動運行Slave子進程、液晶顯示進程LCD、通信服務IEC 61850等多個子進程,其中Slave用于處理事件、錄波、LED燈刷新、統(tǒng)計等功能。

圖1 UAPC平臺系統(tǒng)框架Fig. 1 System framework of UAPC platform
虛擬運行平臺包括:可視化配置工具、仿真主界面、調試客戶端、虛擬數(shù)據(jù)處理、虛擬管理進程、實時組件、非實時組件及平臺接口庫,其結構如圖2所示。

圖2 虛擬運行平臺結構Fig. 2 System framework of virtual operating platform
(1) 可視化集成工具。用于嵌入式裝置的硬件和軟件功能配置,采用圖形化符號、可視化頁面搭建裝置應用功能,形成裝置驅動包和配置文件, 和UAPC平臺裝置開發(fā)工具軟件相同。
(2) 仿真主界面。用于仿真信息設置、啟動停止仿真、虛擬裝置輸出信息和任務統(tǒng)計展示、應用程序自動編譯等功能。仿真界面子系統(tǒng)支持設置仿真模式和仿真數(shù)據(jù)源,啟動虛擬管理進程,獲取虛擬管理進程的輸出信息并展示。
(3) 調試客戶端。包括可視化調試、虛擬液晶調試、IEC 61850調試、IEC 103調試等。
(4) 虛擬數(shù)據(jù)處理。為虛擬裝置提供數(shù)據(jù)源,支持波形讀取解析和通道映射,支持第三方仿真軟件,例如直流電磁暫態(tài)計算程序/電力系統(tǒng)分析仿真軟件(electro-magnetic transient in DC system/power system computer aided design, EMTDC/PSCAD)的輸出數(shù)據(jù),支持自定義格式的數(shù)據(jù)陣列等。
(5) 虛擬管理進程Master。對應裝置主CPU的管理進程Master,讀取裝置配置文件,加載裝置實時、非實時組件,進行實時任務、非實時任務調度,創(chuàng)建釋放共享內存。
(6) 實時組件。對應裝置各個處理器的程序功能,編譯為動態(tài)鏈接庫,此外主CPU的Slave進程也重構為實時組件。
(7) 非實時組件。對應裝置主CPU基于操作系統(tǒng)開發(fā)的通信、人機交互等服務進程,包括IEC 61850、IEC 103、LCD等,獨立編譯為若干動態(tài)鏈接庫。
(8) 平臺接口庫。包括DSP/IO實時庫、主CPU實時庫以及主CPU非實時庫,提供裝置平臺化公共接口和服務,定義實時組件、非實時組件的導出接口函數(shù),提供數(shù)據(jù)注冊、變量管理、總線通信等功能。
在圖2中標示了虛擬運行平臺和裝置實際運行平臺的模塊映射關系:虛擬管理進程Master從主CPU的Master進程中移植重構,并增加了組件加載管理等內容。實時組件對應DSP/IO/主CPU的Slave 程序,根據(jù)配置的插件數(shù)量創(chuàng)建對應的實時組件實例。非實時組件對應主CPU的IEC 61850、IEC 103、LCD等程序,根據(jù)配置的服務進程功能列表創(chuàng)建對應的非實時組件實例。虛擬平臺接口庫包括驅動層和操作系統(tǒng)適配層的封裝接口、公共數(shù)據(jù)管理等功能。
虛擬運行平臺的“等價”實現(xiàn)技術如圖3所示。通過管理進程Master加載各類組件,完成虛擬裝置的創(chuàng)建和初始化過程。實時組件之間通過實時多路同步高速傳輸串行總線協(xié)議(high performance time determinate multiplexed synchronous serial bus , HTM)/控制器局域網絡(controller area network, CAN)數(shù)據(jù)總線交互數(shù)據(jù), Master與Slave、主CPU非實時組件之間通過共享內存交互數(shù)據(jù),通過虛擬FIFO交互報文。Master和DSP/IO實時組件之間通過CAN總線交互數(shù)據(jù)。圖3中, Slave從功能隸屬關系上劃分為主CPU的模塊,從任務執(zhí)行方式上劃分為實時組件,在虛擬的實時任務中完成跨插件交換的數(shù)據(jù)幀緩存功能,并檢測動作、自檢、變位引用表中的變量翻轉變化,形成事件記錄和波形文件。
虛擬裝置等價運行的關鍵步驟如下:
(1) PC機仿真主界面進程獲取仿真設置信息,啟動嵌入式裝置的虛擬管理進程。虛擬管理進程讀取裝置配置文件,獲取硬件配置信息,加載各個處理器的實時組件,獲取主CPU的進程配置信息,加載對應的非實時組件;管理進程讀取配置文件中人機通信配置信息,創(chuàng)建配置共享內存;管理進程在加載組件時,提取并記錄預定義的組件導出函數(shù)地址。
(2) 虛擬管理進程按照硬件聲明順序,通過虛擬CAN總線和實時組件進行初始化交互,管理進程匯總各個實時組件的數(shù)據(jù)交換信息,創(chuàng)建數(shù)據(jù)總線。虛擬管理進程按照配置文件中的非實時進程聲明順序,通過虛擬FIFO和非實時組件進行初始化交互。
(3) 虛擬管理進程啟動虛擬實時任務調度線程,調用實時組件預定義的導出接口,串行執(zhí)行各個等級的實時任務。虛擬管理進程啟動多個非實時線程,調用非實時組件周期任務,實現(xiàn)和多個調試客戶端的并發(fā)通信。

圖3 虛擬運行平臺等價實現(xiàn)示意圖Fig.3 Equivalent realization schematic diagram of virtual operating platform
(4) 虛擬裝置運行過程中,實時組件基于數(shù)據(jù)總線獲取處理器之間的交互數(shù)據(jù),實時組件和非實時組件基于共享內存交互數(shù)據(jù)。實時SLAVE組件將非實時組件的變量代理刷新到共享內存。
實際裝置可以等效為若干獨立運行的進程,通過硬件中斷或系統(tǒng)調用觸發(fā)任務執(zhí)行和數(shù)據(jù)同步,而虛擬裝置中,如果采用若干進程模式,基于管道通信進行每個周期的同步,處理復雜度高,開銷大。而若采用單個進程模式,在1個進程中集成多個CPU的程序,需要避免變量命名和函數(shù)重復,即需修改各個CPU的程序,增加1層數(shù)據(jù)封裝,導致嵌入式應用程序和仿真程序有較大差異,無法實現(xiàn)同源維護。為降低實現(xiàn)復雜度,文中采用了組件模式,即將各個處理器的應用程序和Linux下Slave進程、通信進程重構改造為組件,Master進程在初始化過程中加載組件,各個組件有獨立的數(shù)據(jù)和函數(shù)空間,可解決變量空間沖突,組件之間通過預設的導出接口進行功能調用。在Windows下組件編譯為動態(tài)鏈接庫(dynamic load lidrary,DLL),DLL是一組源代碼模塊,每個模塊包括一組可被外部模塊調用的函數(shù),模塊的變量作為私有數(shù)據(jù),只能通過接口函數(shù)訪問和修改。文中通過LoadLibrary接口顯示加載方法,在Master初始化過程中將DLL文件映射到該進程的地址空間中,操作系統(tǒng)為DLL實例分配相關變量對應的存儲器,保留一段獨立區(qū)域直到進程運行終止時釋放。以實時組件為例,組件模型如圖4所示。

圖4 組件模型Fig.4 Modeling of package
組件的導出接口均在系統(tǒng)庫中定義,Master在啟動過程中調用組件的導出接口,完成組件的構造過程,系統(tǒng)庫通過預設的appNewComponet、appInitComponent接口,在組件的初始化過程中調用應用級元件構造、初始化接口。
UAPC平臺上運行的程序分為應用程序和系統(tǒng)程序兩部分,平臺系統(tǒng)程序為控制保護應用程序執(zhí)行構建了完整的環(huán)境。在虛擬運行平臺庫中定義和實現(xiàn)組件導出接口。平臺庫的功能設計如下:
(1) 元件管理功能。 所有應用按照元件的概念進行封裝,應用功能結構清晰,具有重用性,為可視化編程配置提供了基礎。基于統(tǒng)一的系統(tǒng)程序和標準化的應用程序接口,應用元件與硬件脫離,提高了應用元件的通用性,為虛擬運行創(chuàng)造了必要條件。
(2) 變量注冊功能。提供輸入、輸出變量注冊接口,管理平臺和應用的對外變量,支持通過層次變量名、Hash鍵值快速查找獲取變量屬性。
(3) 參數(shù)管理功能。為了實現(xiàn)應用元件的可重用,同時又能夠適應不同的工程的需求,通常給元件設計參數(shù),通過改變參數(shù)的值改變元件的特性。應用元件將參數(shù)的名字、屬性注冊到裝置的參數(shù)數(shù)據(jù)庫中,裝置管理程序從裝置配置文件中讀取定值組信息,以平臺結構化的參數(shù)名為索引,建立起兩者之間的映射關系。
(4) 任務管理功能。平臺提供任務管理和調度功能,支持應用程序創(chuàng)建、添加、刪除、運行各個級別的任務和設置周期。應用開發(fā)人員無需關心底層任務調度,只需選擇合適任務優(yōu)先級即可滿足各種應用的靈活需求。
(5) 平臺調試功能。包括文件下載、上裝、查詢變量、查詢內存等功能。其中查詢變量的關鍵是獲取變量的類型和地址。對于元件的注冊變量,通過層次變量名在注冊變量庫中可獲取變量信息。對于全局變量,調試客戶端從編譯器生成的符號表中提取。對于元件內部的靜態(tài)變量,則結合元件首地址加分析元件頭文件的獲取的相對偏移,可得到變量信息[14]。
虛擬運行平臺庫基于UAPC嵌入式裝置系統(tǒng)庫進行重構,其中DSP庫可高比例復用,并統(tǒng)一了各種CPU/DSP的字長、大小端。裝置為了提高運行效率,對于不同處理器采用條件編譯方式靜態(tài)適應部分硬件差異。在仿真模式下,構建了硬件能力描述文件,不同插件類型可靈活配置數(shù)據(jù)總線的讀寫能力、交換方式,根據(jù)插件型號可動態(tài)執(zhí)行相關分支代碼,實現(xiàn)仿真模式下1個DSP平臺庫適配多種硬件。
裝置主CPU運行嵌入式Linux環(huán)境,移植到Windows操作系統(tǒng)時,關鍵修改有:基于開源pthreadVC庫,原生態(tài)支持了Linux的線程、信號量等接口;使用共享內存模擬了SDRAM實時文件系統(tǒng),確保了Slave的錄波、事件等應用層代碼無縫遷移;基于windows的確定一個或多個套接字的狀態(tài)接口(winsock API to simplify porting poll, WSAPoLL)等應用程序編程接口(application programming interface, API)實現(xiàn)了非實時模塊事件觸發(fā)響應功能。移植過程中,對gettimeofday、localtime_r、vfscanf等系統(tǒng)服務均進行了等價實現(xiàn)。
保護控制裝置的插件包括:管理CPU插件、計算處理插件、IO插件。管理插件和計算處理插件之間通過高速大容量實時的HTM總線作為數(shù)據(jù)傳輸?shù)耐ǖ繹15],這些插件與IO插件之間則提供了CAN總線作為數(shù)據(jù)傳輸?shù)耐ǖ馈TM總線上采用的是定周期傳送機制,CAN總線上采用的則是面向事件的變化傳輸機制。在PC機虛擬運行模式下,對于CAN總線,應用層報文保持不變,鏈路層通過Master進行中轉,采用回調函數(shù),實現(xiàn)接收側直接響應。對于HTM總線,虛擬裝置無法實現(xiàn)現(xiàn)場可編程門陣列(field-programmable gate array, FPGA)微秒級的快速交換周期,但需保證虛擬時間的精度以及各個組件之間的數(shù)據(jù)交換同步機理和實際裝置一致。數(shù)據(jù)交換和任務調度周期存在對應關系,HTM0、HTM1交換周期和任務1、任務2周期一致,其余等級的任務周期則基于HTM0、HTM1擴頻實現(xiàn)。
仿真模式下,HTM總線基于全局共享內存實現(xiàn),其原理如圖5所示。

圖5 虛擬運行數(shù)據(jù)總線原理Fig.5 Virtual operation principle of the data bus
每塊插件在HTM周期中從共享內存讀取數(shù)據(jù),并將本插件的輸出寫到共享內存。實現(xiàn)過程如下:
(1) 每個元件在初始化階段向系統(tǒng)數(shù)據(jù)庫注冊該應用元件可用于跨插件交換的輸入、輸出變量,在制作元件符號庫階段,根據(jù)輸入輸出接口函數(shù),從C文件中提取相關信息,形成輸入輸出管腳。
(2) 通過可視化集成工具,從元件庫中挑選元件以圖形化方式搭建嵌入式裝置應用程序,并通過跨頁面輸入、輸出符號和連接線配置插件之間數(shù)據(jù)流關系,形成裝置的程序驅動包。
(3) 可視化集成工具讀取頁面文件,根據(jù)設置的頁面和元件執(zhí)行順序,依次提取插件間跨頁面連接符號的連接信息(變量名、變量注冊類型、變量字節(jié)、數(shù)據(jù)總線類型), 形成用于插件間信號交換的輸出-輸入列表。
(4) 可視化集成工具離線分配變量傳輸?shù)刂贰Ω鲏K插件以插件編號升序緊湊排序,依次處理。對單塊插件的輸出變量,按照頁面內元件執(zhí)行順序和變量注冊類型,以自然邊界對齊的原則分配變量在數(shù)據(jù)總線上的傳輸?shù)刂罚斎胱兞縿t記錄源輸出變量對應的傳輸?shù)刂贰R圆寮閱挝唬纬膳渲梦谋荆涗浽嵗⑤敵鲎兞康刂泛洼斎胱兞筷P聯(lián)地址信息。
(5) 將配置文本下載到各個插件后,由插件系統(tǒng)引導程序解析地址信息,在周期任務中將輸出變量值刷新到對應的總線傳輸?shù)刂罚瑢⒖偩€地址上數(shù)據(jù)刷新給對應的輸入變量,完成變量交換。
嵌入式裝置基于優(yōu)先級的搶占式任務調度管理,嚴格保證高等級任務優(yōu)先執(zhí)行。中斷源由多個外部IO、內部定時器和軟中斷組成,任務調度程序在中斷驅動下,有選擇地執(zhí)行任務鏈中的任務。由于高優(yōu)先級任務會打斷低優(yōu)先級任務執(zhí)行,系統(tǒng)軟件還提供關中斷、信號量等多種手段以保證數(shù)據(jù)安全和對資源有效訪問。
虛擬運行模式下,由于PC機定時器只能實現(xiàn)毫秒級的精度,并且主要目的是進行應用邏輯和裝置配置的仿真,故未構建等價實時仿真系統(tǒng),而是采用了串行執(zhí)行和虛擬時標機制(不模擬中斷嵌套),如圖6所示,各個實時組件的相同等級任務是串行執(zhí)行,以微秒為刻度更新虛擬時間,按照HTM0周期為步長校準虛擬微秒值、毫秒值,并將當前虛擬時間刷新到共享內存。應用程序對于展寬、延時的操作是微秒級,虛擬時標精度能夠滿足要求,插件間的虛擬數(shù)據(jù)交換周期和裝置的實際數(shù)據(jù)總線機制是一致的,所以不需要修改數(shù)據(jù)插值同步的代碼。串行執(zhí)行算法在PC機仿真、EMTDC/PSCAD第3方軟件混合仿真中都進行了應用,基于波形驗證仿真結果、EMTDC一次/二次系統(tǒng)混合仿真結果和實際裝置一致。

圖6 虛擬運行任務執(zhí)行原理Fig.6 Virtual operation task execution principles
實時組件包括DSP應用組件、IO程序組件和平臺Slave組件。應用組件是各個DSP運算組件,是進行保護控制運算和邏輯處理的組件,應用組件基于實時庫開發(fā),基于元件動態(tài)注冊技術[16],通過調用應用級元件構造、初始化函數(shù)完成應用層功能實例構建。仿真設置界面支持導入嵌入式程序目錄,自動形成Makefile和VCProj工程編譯。裝置運行程序切換到仿真模式下,需修改采樣元件,調用波形通道訪問接口,逐點讀取數(shù)據(jù)。對于數(shù)字化GOOSE接收輸入,則從虛擬GOOSE仿真輸入元件中獲取數(shù)據(jù)。
虛擬平臺IO程序組件基于實時庫開發(fā),在任務隊列2中執(zhí)行,支持CAN數(shù)據(jù)交換功能,在可視化調試時可修改輸出變量值。
虛擬平臺Slave組件提供如下功能:FPGA的HTM數(shù)據(jù)3 s緩存功能,通過循環(huán)讀寫緩沖區(qū),緩存累計3 s的HTM0、HTM1的數(shù)據(jù)幀,用于裝置啟動錄波時記錄故障觸發(fā)前數(shù)據(jù);HTM代理發(fā)送接收功能,代理非實時組件的跨插件交換變量的數(shù)據(jù)發(fā)送、接收,將數(shù)據(jù)刷新到共享內存;事件報告和錄波功能,在實時任務中檢測信號變位,形成報文記錄;檢測觸發(fā)錄波變量,啟動錄波線程,形成波形文件;LED燈狀態(tài)刷新功能、狀態(tài)統(tǒng)計功能等。
非實時組件包括平臺的公共服務,例如LCD液晶、IEC 61850通信、IEC 103通信等,在Linux下對應獨立的進程,和Master、Slave通過FIFO交互報文。在虛擬運行模式下,上述公共服務進程改造為主CPU的非實時組件。將原先在main中主循環(huán)執(zhí)行的select-poll任務封裝為組件導出接口函數(shù),在管理進程中啟動線程執(zhí)行。各非實時組件的任務線程并發(fā)執(zhí)行,并根據(jù)共享內存中當前虛擬時標從Slave創(chuàng)建的HTM緩存區(qū)中讀取數(shù)據(jù),上送給客戶端。在Windows下構建了基于MMS庫的IEC6 1850服務器端,將MMS庫中偵聽、接收的socket統(tǒng)一納入平臺的fd管理集,在非實時線程中處理網絡通信報文,支持模型讀取、數(shù)據(jù)集顯示、報告上送、文件傳輸?shù)确展δ躘17]。
虛擬運行平臺基于一主多從模式,管理進程Master主要功能如下:
(1) 配置解析。分2次解析過程,第1次是快讀config.txt,獲取裝置信息、插件配置信息、信號個數(shù)、引用表個數(shù)、定值組個數(shù)等統(tǒng)計內容,為分配共享內存做準備。第2次是詳細讀取任務周期、信號描述、定值、數(shù)據(jù)交換配置信息、引用表等內容;
(2) 裝置初始。在初始化過程中創(chuàng)建共享內存和數(shù)據(jù)總線,形成定值庫和信號庫,根據(jù)硬件配置和進程配置信息,加載相關組件,調用組件構造、初始化等接口,完成組件的數(shù)據(jù)創(chuàng)建和功能初始化過程。
(3) 裝置運行維護。啟動實時任務調度線程、非實時任務調度線程,運行過程中可視化調試通信功能;運行過程中信息顯示、狀態(tài)監(jiān)測;運行結束后組件卸載、資源釋放等。
以保護裝置PCS-974為例,使用SOC多核插件,通過平臺軟件PCS-Explorer和模塊化元件庫完成應用程序和HMI功能的配置。PCS-Explorer形成的驅動包可下載到裝置運行,也可在虛擬環(huán)境下運行,實現(xiàn)應用可視化程序和配置的同源開發(fā)維護。虛擬液晶調試如圖7所示,LCD組件增加了TCP通信功能,和LCD調試客戶端通過報文交互,實現(xiàn)了物理液晶的顯示和鍵盤操作響應的模擬功能。可視化調試如圖8所示,雙擊連接線即可進行可視化程序頁面的在線調試,提高了調試效率。

圖7 虛擬液晶調試Fig. 7 Virtual LCD debug

圖8 虛擬可視化調試Fig.8 Virtual visual graph debug
通過將虛擬裝置劃分為管理進程、實時模塊和非實時模塊,支持裝置整機功能的模擬和測試。基于平臺化的開發(fā)方法,裝置研發(fā)人員的配置和程序可在實際裝置和虛擬裝置中運行,并進行程序配置的同源維護,支持單步調試, 提高了開發(fā)效率。裝置研發(fā)人員在出差過程中、裝置不具備的條件下,也能開發(fā)調試應用程序和驗證配置,縮短了開發(fā)周期,保護控制裝置虛擬運行平臺在部分PCS裝置開發(fā)中進行了應用驗證。
需要指出的是,雖然虛擬運行平臺通過輸入波形文件、EMTDC混合仿真進行保護邏輯驗證,其仿真驗證結果和裝置動作結果一致,但由于仿真忽略了與功能無關的硬件特性[18],并且由于不同編譯器的優(yōu)化方法存在差異,不同硬件在存儲結構、數(shù)據(jù)指令預取、Cache參數(shù)也存在差異,在并發(fā)操作、時間性能評估方面,仿真運行測試無法替代實際裝置運行測試。通過虛擬運行平臺驗證的程序和配置,歸檔前仍然需要進行嚴格的自動化測試和部分動模測試。本文下一步的研究方向是評估近似計時的仿真架構可行性,從而給出可信的程序性能統(tǒng)計分析信息。
[1] 李 響,劉國偉,馮亞東,等. 新一代控制保護系統(tǒng)通用硬件平臺設計與應用[J]. 電力系統(tǒng)自動化,2012,36(14):52-55.
LI Xiang,LIU Guowei,F(xiàn)ENG Yadong,et al. Design and application of general hardware platform for new generation control and protection system[J]. Automation of Electric Power Systems,2012,36(14):52-55.
[2] 孫振華,高傳發(fā),任華鋒,等. 新型基于MPC 8309的微機繼電保護平臺[J]. 計算機系統(tǒng)應用,2015,24(3):105-109.
SUN Zhenhua,GAO Chuanfa,REN Huafeng,et al. New microcomputer relay protection platform based on MPC 8309[J]. Computer Systems & Applications,2015,24(3):105-109.
[3] 陳翔宇,王冬青,李 剛,等. 基于通用平臺的智能變電站一體化設計和整合應用[J]. 電網技術,2014,38(增刊1):58-62.
CHEN Xiangyu,WANG Dongqing,LI Gang,et al. Unify design and integration application device for smart substation based on general platform[J]. Power Grid Technology, 2014,38(Supplement 1):58-62.
[4] 郭 瑋,田錄林,張永良,等. 基于嵌入式PLC軟核的通用保護平臺設計與實現(xiàn)[J]. 電力系統(tǒng)保護與控制,2014,42(16):122-126.
GUO Wei,TIAN Lulin,ZHANG Yongliang,et al. Design and implement of protection platform based on embedded PLC soft-core[J]. Power System Protection and Control,2014,42(16):122-126.
[5] 陳宏君,劉克金,馮亞東,等. 新一代保護測控裝置配套工具軟件設計與應用[J]. 電力系統(tǒng)自動化,2013,37(20):92-96.
CHEN Hongjun,LIU Kejin,F(xiàn)ENG Yadong,et al. Design and application of supporting tool software for new generation protection and measuring-control devices[J]. Automation of Electric Power Systems,2013,37(20):92-96.
[6] 謝志迅,滿振海. 微機保護裝置虛擬平臺技術及其實現(xiàn)[J]. 電力系統(tǒng)自動化,2011,35(3):59-62.
XIE Zhixun,MAN Zhenhai. Technique and implementation of numerical protection relay simulator platform[J]. Automation of Electric Power Systems,2011,35(3):59-62.
[7] 黃樹幫,竇仁暉,梅德東,等. 基于IEC 61850標準的通用IED仿真系統(tǒng)的設計與實現(xiàn)[J]. 電力系統(tǒng)自動化,2012,36(18):153-158.
HUANG Shubang,DOU Renhui,MEI Dedong,et al. Design and implementation of general IED simulation system based on IEC 61850[J]. Automation of Electric Power Systems,2012,36(18):153-158.
[8] 肖碧濤,王 峰. 基于平臺技術的繼電保護數(shù)字仿真系統(tǒng)[J]. 江蘇電機工程,2015,34(4):81-84.
XIAO Bitao, WANG Feng. Relay protection digital simulation system based on platform technology[J]. Jiangsu Electrical Engineering,2015,34(4):81-84.
[9] 薛海平,趙森林,盧亞軍,等. 特高壓直流工程的融冰控制保護策略及試驗分析[J]. 電力工程技術,2017,36(1):84-90.
XUE Haiping,ZHAO Senlin, LU Yajun,et al. Analysis of control and protection strategy and test for de-icing mode in UHVDC project[J]. Electric Power Engineering Technology,2017,36(1) :84-90.
[10] 陳宏君,劉克金,文繼鋒,等. 一種程序仿真測試方法及系統(tǒng)[P]. 中國:CN104881358A,2015-09-02.
CHEN Hongjun,LIU Kejin,WEN Jifeng,et al. A program simulation test method and system [P]. China:CN104881358A,2015-09-02.
[11] 肖正強,黃 寧,嚴 巖,等. 一種通過PC模擬繼電保護裝置多CPU同步運行的方式[P]. 中國:CN104063266A,2015-09-24.
XIAO Zhengqiang,HUANG Ning,YAN Yan,et al. A method for simulating multi CPU synchronous operation of relay protection device by PC[P]. China:CN104063266A,2015-09-24.
[12] 陳宏君,吳 波,劉克金,等. 一種基于進程的仿真任務并行調度方法[P]. 中國:CN105718305A,2016-06-29.
CHEN Hongjun,WU Bo,LIU Kejin,et al. A parallel scheduling method based on process simulation task [P]. China:CN105718305A,2016-06-29.
[13] 陳宏君,劉克金,張 磊,等. 跨平臺人機交互軟件組件集成框架[J].計算機系統(tǒng)應用,2015,24(11):52-57.
CHEN Hongjun,LIU Kejin,ZHANG Lei,et al. Cross-platform integration framework for HMI software[J]. Computer Systems Applications,2015,24(11): 52-57.
[14] 陳宏君,馮亞東,文繼鋒,等. 嵌入式程序動態(tài)分配內存的調試方案設計[J]. 單片機與嵌入式系統(tǒng)應用,2015,15(9):18-21.
CHEN Hongjun,F(xiàn)ENG Yadong,WEN Jifeng,et al. Debugging scheme of dynamic allocation memory in embedded program[J]. Microcontrollers & Embedded Systems,2015,15(9):18-21.
[15] 馮亞東,李九虎,李 彥,等. 一種實時多路復用同步高速傳輸串行總線協(xié)議[P]. 中國:CN101459675B, 2012-12-12.
FENG Yadong,LI Jiuhu,LI Yan,et al. A real time multiplex high speed serial bus protocol [P]. China:CN101459675B,2012-12-12.
[16] 張春合,余群兵,陸征軍,等. 保護測控一體化裝置的研制[J]. 電工技術,2012(9):65-68.
ZHANG Chunhe,YU Qunbing,LU Zhengjun,et al. Design of protection and measuring-control device[J]. Electric Engineering,2012(9):65-68.
[17] IEC/TC57. Communication networks and systems for power utility automation, part 7-2: Basic information and communication structure-Abstract communication service interface(ACSI)[S].Ed 2.0.2009.
[18] 王盛朋,VANIA JOLOBOFF, 鄧仰東. 一種基于近似計時模型的嵌入式CPU仿真器[J]. 計算機仿真,2014,31(5):238-242.
WANG Shengpeng, VANIA JOLOBOFF,DENG Yangdong. An approximate timing simulator for embedded CPUs[J]. Computer Simulation,2014,31(5):238-242.