(中國核動(dòng)力研究設(shè)計(jì)院 核反應(yīng)堆系統(tǒng)設(shè)計(jì)技術(shù)重點(diǎn)實(shí)驗(yàn)室,成都610213)
DCS系統(tǒng)設(shè)計(jì)中,為了應(yīng)對由軟件共因故障導(dǎo)致的系統(tǒng)功能失效,通常將安全保護(hù)等重要功能再次用硬邏輯實(shí)現(xiàn),實(shí)現(xiàn)控制的多樣性[1-2]。硬邏輯采用純硬件的方式,通過硬接線和繼電器等器件實(shí)現(xiàn)相關(guān)邏輯功能。
工程上常用的硬邏輯設(shè)計(jì)軟件有Eplan、MicrosoftVisio、CAD 等,這些軟件的設(shè)計(jì)圖僅表征各元器件的連接關(guān)系,不具備仿真運(yùn)算功能。設(shè)計(jì)人員需要耗費(fèi)大量精力驗(yàn)證設(shè)計(jì)的正確性,總體設(shè)計(jì)效率不高。
國內(nèi)外對硬邏輯仿真研究較少,研究方向集中于儀控系統(tǒng)虛擬化與工藝系統(tǒng)虛擬化,以閉環(huán)的方式驗(yàn)證典型工況下控制策略[3-6]。本文以Eplan 軟件為例,采用標(biāo)準(zhǔn)的硬件制圖規(guī)范,設(shè)計(jì)實(shí)現(xiàn)了一套基于Simulink 代碼生成器的硬邏輯仿真系統(tǒng),實(shí)現(xiàn)了DCS硬邏輯的仿真。
系統(tǒng)總體結(jié)構(gòu)如圖1所示。硬邏輯仿真系統(tǒng)包括4個(gè)子模塊,即硬件圖紙繪制軟件、邏輯翻譯軟件、Simulink 部分、運(yùn)算調(diào)度軟件。圖紙按照標(biāo)準(zhǔn)格式用Eplan 繪制,可使用實(shí)際工程項(xiàng)目的圖紙,不增加額外工作量。
圖1 仿真系統(tǒng)結(jié)構(gòu)圖Fig.1 Simulation system structure diagram
翻譯軟件通過硬邏輯與Simulink 算法庫中算法塊的映射關(guān)系,將元件及其連接關(guān)系在Simulink中重繪。利用Simulink 代碼生成器將Simulink 組態(tài)轉(zhuǎn)化為C++代碼,再借助編譯器生成靜態(tài)鏈接庫(*.lib)文件。硬邏輯由硬件搭接實(shí)現(xiàn),沒有周期的概念,仿真程序的執(zhí)行周期應(yīng)平衡計(jì)算機(jī)資源與用戶使用友好性,可定為500 ms。仿真計(jì)算結(jié)果在Eplan軟件上顯示,二者間交互方法有多種,包括共享內(nèi)存和讀寫共同文件等。在Eplan 軟件中嵌入子軟件程序,實(shí)現(xiàn)仿真結(jié)果數(shù)據(jù)的讀取[7]。
仿真系統(tǒng)的4個(gè)子模塊的功能依次對接,實(shí)現(xiàn)仿真系統(tǒng)的功能。
1.2.1 硬件圖紙繪制軟件與信息提取
基本元器件包括繼電器、RS 觸發(fā)器等,符合標(biāo)準(zhǔn)的制圖規(guī)范。常用的元器件模板如圖2所示。
圖2 元器件模板示意圖Fig.2 Schematic diagram of component template
信息提取程序以Eplan 插件的形式實(shí)現(xiàn),進(jìn)入插件程序后,讀取Eplan 文件中元器件及其連接關(guān)系,整理匯總,并寫入特定格式的硬邏輯信息文件。該文件既可被邏輯翻譯軟件讀取,又可直接由用戶讀取,用于圖紙連接關(guān)系的檢查。
1.2.2 邏輯翻譯軟件
邏輯翻譯軟件將硬邏輯信息文件的內(nèi)容在Simulink 上重繪。邏輯翻譯軟件首先檢查文件的格式是否正確,然后讀取元器件與連接關(guān)系信息,啟動(dòng)Simulink 軟件,并向其發(fā)送命令行,繪制元器件算法塊和連接線,將硬邏輯信息映射到Simulink 平臺(tái),形成Simulink 組態(tài)文件。
邏輯翻譯軟件實(shí)現(xiàn)了該過程的自動(dòng)化,與人工參照硬件圖紙?jiān)诜抡嫫脚_(tái)手動(dòng)重繪的方式相比,保證了高效性與準(zhǔn)確性。1.2.3 Simulink 部分
在仿真系統(tǒng)中,Simulink 實(shí)現(xiàn)了代碼生成器的功能。硬邏輯在Simulink 平臺(tái)被重繪后,利用Simulink的代碼生成功能,生成可靠的C++代碼。Simulink 代碼生成器將每個(gè)模型(*.mdl)對應(yīng)生成一個(gè)頭文件(*.h)、一個(gè)源文件(*.cpp)以及一個(gè)包含主函數(shù)的ert_main.cpp 和類型定義頭文件rtwtypes.h[8]。然后利用編譯器將源代碼編譯成*.lib 靜態(tài)鏈接庫文件,以供調(diào)用。模型類包括初始化函數(shù)(initialize())、單步運(yùn)算函數(shù)(step())、結(jié)束函數(shù)(terminate())等。
在另一種系統(tǒng)架構(gòu)中,將硬邏輯重繪于Simulink平臺(tái),即可使用Simulink 的仿真功能,不需要生成代碼、編譯以及調(diào)用算法庫的過程。但該方法受限于Simulink 的特性,保持Simulink 運(yùn)行占用大量的計(jì)算機(jī)資源,且不適合做短周期的運(yùn)算,不能完全依據(jù)用戶需求靈活調(diào)度。
1.2.4 運(yùn)算調(diào)度軟件
運(yùn)算調(diào)度軟件通過調(diào)用靜態(tài)鏈接庫,實(shí)現(xiàn)仿真運(yùn)算。該軟件啟動(dòng)用戶指令線程和周期循環(huán)線程。用戶指令線程接收用戶指令,并設(shè)置指令標(biāo)志位。周期循環(huán)線程按照指令標(biāo)志位及參數(shù)執(zhí)行仿真功能,并進(jìn)行本周期的計(jì)算,該計(jì)算結(jié)果返回Eplan 的人機(jī)界面,然后延時(shí)500 ms 至本周期結(jié)束。若未出現(xiàn)退出標(biāo)志位,則循環(huán)下一周期。軟件流程如圖3所示。
圖3 運(yùn)算調(diào)度軟件流程圖Fig.3 Flow chart of operation scheduling software
全范圍模擬機(jī)是對電廠工藝、控制系統(tǒng)、人機(jī)界面的全方位模擬,用于操縱人員培訓(xùn)與考核。控制系統(tǒng)的仿真包括軟件邏輯和硬件邏輯的仿真。其中,軟件邏輯的仿真可采用純模擬或虛擬實(shí)物方法。前者指用其他仿真平臺(tái)實(shí)現(xiàn)軟件邏輯,后者指搭建實(shí)物控制系統(tǒng)在通用計(jì)算機(jī)運(yùn)行的平臺(tái)。硬邏輯的仿真可采用本文所述的仿真系統(tǒng)實(shí)現(xiàn),其與全范圍模擬機(jī)其他部分的接口如圖4所示。
圖4 全范圍模擬機(jī)各部分接口關(guān)系圖Fig.4 Interface diagram of each part in FSS
1.3.1 仿真功能設(shè)計(jì)
參考文獻(xiàn)[9]規(guī)定了核電廠操縱人員培訓(xùn)模擬機(jī)仿真功能的要求,其中包括硬邏輯仿真軟件應(yīng)具備的仿真功能。其中,凍結(jié)、加減速功能沒有意義。仿真功能應(yīng)包括保存及裝入工況、變量值設(shè)置和獲取、故障模擬等。
保存工況功能實(shí)現(xiàn)對工況,包括輸入數(shù)據(jù)、輸出數(shù)據(jù)、算法塊中間數(shù)據(jù)(如延時(shí)繼電器等時(shí)間相關(guān)算法塊的中間數(shù)據(jù))等信息的保存,將該時(shí)刻的Simulink靜態(tài)類保存至物理文件。裝入工況是將數(shù)據(jù)從物理文件寫入Simulink 靜態(tài)類,復(fù)現(xiàn)其數(shù)據(jù)狀態(tài)。
通過解析Simulink 模型的頭文件,根據(jù)其中變量名的次序,計(jì)算待操作變量在靜態(tài)類中的偏移地址,利用指針操作變量,實(shí)現(xiàn)變量取值賦值。
硬件電路的故障模擬對儀控系統(tǒng)(尤其是DCS)的功能驗(yàn)證、硬件設(shè)計(jì)或組態(tài)人員的培訓(xùn)有著重要的作用。不同的硬件元器件有不同的故障類型,如繼電器故障包括觸頭粘連故障等;延時(shí)繼電器故障包括計(jì)時(shí)回路故障。故障模式作為參數(shù)傳入算法塊,每種元件對應(yīng)的Simulink 算法塊都在原本接口的基礎(chǔ)上增加若干接口,供設(shè)置故障類型的參數(shù)。運(yùn)算調(diào)度軟件提供設(shè)置故障的外部接口,并將故障參數(shù)與高低電平參數(shù)一并在本周期計(jì)算開始前賦值。
1.3.2 與全范圍模擬機(jī)接口設(shè)計(jì)
全范圍模擬機(jī)中的盤臺(tái)設(shè)備采用實(shí)物模擬方法,使用與實(shí)物系統(tǒng)外觀一致的設(shè)備,給使用者以與實(shí)物系統(tǒng)相同的用戶體驗(yàn)。硬件設(shè)備與軟件之間的交互需經(jīng)過信號(hào)轉(zhuǎn)接設(shè)備實(shí)現(xiàn),如硬邏輯仿真與盤臺(tái)設(shè)備的接口。盤臺(tái)按鈕、旋鈕等元件的操作,經(jīng)過模擬量輸入模塊和數(shù)字量輸入模塊,轉(zhuǎn)換成通用計(jì)算機(jī)上的軟件信號(hào),發(fā)送至硬邏輯仿真系統(tǒng),進(jìn)行運(yùn)算。
組態(tài)軟件仿真以軟件方式實(shí)現(xiàn)了實(shí)物控制器組態(tài)軟件的仿真,硬邏輯仿真系統(tǒng)與組態(tài)軟件仿真系統(tǒng)的數(shù)據(jù)接口采用進(jìn)程間通信,如共享內(nèi)存等方式。接口的一種數(shù)據(jù)流是從Level 2 盤臺(tái)按鈕、旋鈕等設(shè)備開始,經(jīng)硬邏輯直接驅(qū)動(dòng)工藝系統(tǒng)設(shè)備,或硬邏輯輸出信號(hào)與數(shù)字化控制系統(tǒng)輸出信號(hào)經(jīng)優(yōu)先級(jí)選擇單元的選擇再輸出至工藝系統(tǒng);另一種數(shù)據(jù)流是組態(tài)軟件仿真部分輸出數(shù)據(jù)至硬邏輯仿真部分,再發(fā)送至工藝系統(tǒng)仿真,如多個(gè)組態(tài)軟件仿真部分輸出的驅(qū)動(dòng)信號(hào)經(jīng)過硬邏輯仿真的與或邏輯再驅(qū)動(dòng)工藝系統(tǒng)仿真部分的設(shè)備指令信號(hào)。
圖5所示為兩種不同情況下的各部分之間的接口數(shù)據(jù)流,左圖為實(shí)物系統(tǒng)的數(shù)據(jù)流,右圖為仿真系統(tǒng)的數(shù)據(jù)流。
圖5 接口數(shù)據(jù)流示意圖Fig.5 Interface data flow diagram
硬邏輯仿真軟件與工藝系統(tǒng)仿真軟件的接口與其和組態(tài)軟件仿真的接口類似,都是軟件進(jìn)程間通信,不再詳述。
硬件設(shè)備與軟件之間的數(shù)據(jù)交互需要通過信號(hào)轉(zhuǎn)接設(shè)備,實(shí)物系統(tǒng)中數(shù)字化控制系統(tǒng)的模擬量或數(shù)字量輸入輸出卡件可充當(dāng)轉(zhuǎn)接設(shè)備,不需要另外增加。圖6所示為信號(hào)轉(zhuǎn)接設(shè)備設(shè)置圖,中左側(cè)為實(shí)物系統(tǒng)中的設(shè)置,右側(cè)為仿真系統(tǒng)中的設(shè)置。
仿真系統(tǒng)中由于硬邏輯以軟件實(shí)現(xiàn),因而增加盤臺(tái)設(shè)備與軟件系統(tǒng)的接口。如果盤臺(tái)與硬邏輯仿真軟件單獨(dú)使用信號(hào)轉(zhuǎn)接設(shè)備,將多使用一個(gè)信號(hào)轉(zhuǎn)接設(shè)備的點(diǎn)位,因而盤臺(tái)按鈕信號(hào)先經(jīng)過信號(hào)轉(zhuǎn)接設(shè)備,再分配至硬邏輯仿真部分和組態(tài)軟件仿真部分,節(jié)約信號(hào)轉(zhuǎn)接設(shè)備的一個(gè)信號(hào)點(diǎn)位。
圖6 信號(hào)轉(zhuǎn)接設(shè)備設(shè)置圖Fig.6 Signal transfer device setup diagram
以“華龍一號(hào)”漳州核電廠1、2 號(hào)機(jī)組安全級(jí)DCS 中安全殼隔離A 階段部分硬邏輯為例,驗(yàn)證仿真系統(tǒng)的可用性。安全殼隔離是專設(shè)安全設(shè)施的一部分,在發(fā)生LOCA 事故時(shí),使除專設(shè)安全設(shè)施以外的穿過安全殼的管道隔離,從而減少放射性物質(zhì)對外釋放。同時(shí)在主蒸汽管道發(fā)生破裂時(shí),能及時(shí)隔離蒸汽發(fā)生器,防止反應(yīng)堆冷卻劑過冷和安全殼超壓。
通常手動(dòng)停堆、專設(shè)功能觸發(fā)旋鈕布置在ECP盤臺(tái)(緊急操作盤),手動(dòng)復(fù)位旋鈕布置在BUP 盤臺(tái)(后備盤),BUP 盤的操作指令受BUP 模式切換開關(guān)控制。另外,除ECP 盤上的手動(dòng)停堆外,其他指令受RSS(遠(yuǎn)程控制)模式切換控制。ECP/BUP 的操作指令通過硬邏輯電路產(chǎn)生系統(tǒng)級(jí)指令,再分別送往各受控驅(qū)動(dòng)器的優(yōu)選控制模塊,從而控制各驅(qū)動(dòng)器的動(dòng)作。
安全殼隔離A 階段、控制模式切換硬邏輯原理圖分別如圖7、圖8所示。由翻譯軟件映射至Simulink 平臺(tái)后的算法邏輯如圖9、圖10所示。
圖10 安全殼隔離A 階段系統(tǒng)級(jí)指令邏輯圖(局部)Fig.10 Containment isolation phase A system-level logic diagram(local)
利用Simulink 平臺(tái)進(jìn)行多種情況的仿真驗(yàn)證。DCS 輸出指令控制狀態(tài)下可實(shí)現(xiàn)對安全殼隔離A階段系統(tǒng)級(jí)指令的控制,其效果如圖11所示。
圖11 DCS控制狀態(tài)仿真效果圖Fig.11 DCS control simulation renderings
手動(dòng)控制模式應(yīng)能夠?qū)崿F(xiàn)與DCS控制狀態(tài)相同的效果,如圖12所示。
圖12 手動(dòng)控制模式仿真效果圖Fig.12 Manual control simulation renderings
仿真系統(tǒng)可模擬硬件設(shè)備故障的效果。實(shí)驗(yàn)?zāi)M了繼電器009UM 在15 s時(shí)發(fā)生粘連故障,15 s后BUP 的復(fù)位開關(guān)無效,無法復(fù)位該信號(hào),如圖13所示。
圖13 繼電器故障仿真效果圖Fig.13 Relay malfunction simulation renderings
BUP 模式由BUP 盤上的旋鈕實(shí)現(xiàn)模式切換,即BUP Mode為1時(shí)BUP 的操作指令才有效??刂颇J角袚Q仿真實(shí)驗(yàn)效果如圖14所示。
圖14 控制模式切換仿真效果圖Fig.14 Control mode switch simulation renderings
硬邏輯的主要作用是在DCS 失效時(shí)能夠代替其實(shí)現(xiàn)控制與保護(hù)功能。如圖15 的仿真實(shí)驗(yàn)中,0~7.5 s DCS 正常,可實(shí)現(xiàn)控制與保護(hù)功能,7.5 s時(shí)DCS 失效,不能置位。此時(shí)操縱人員開始手動(dòng)控制,12.5 s時(shí)使用ECP 置位信號(hào)成功,15 s時(shí)啟動(dòng)BUP 模式,并使用BUP 的復(fù)位按鈕復(fù)位該信號(hào)成功。
圖15 DCS控制狀態(tài)失效仿真效果圖Fig.15 DCS control mode failure simulation renderings
上述仿真實(shí)驗(yàn)結(jié)果證明了仿真系統(tǒng)的正確性。
將工程硬件設(shè)計(jì)原理圖翻譯為Simulink 組態(tài)文件,利用Simulink 生成代碼,并編譯成*.lib 格式文件,調(diào)用算法文件,實(shí)現(xiàn)仿真功能。硬邏輯仿真可與DCS 組態(tài)仿真結(jié)合,形成完整的儀控仿真系統(tǒng)。
基于代碼生成器的DCS硬邏輯仿真系統(tǒng)能對工程電氣軟件設(shè)計(jì)的硬邏輯進(jìn)行有效的仿真運(yùn)算,驗(yàn)證設(shè)計(jì)的正確性。該仿真系統(tǒng)應(yīng)用于漳州核電廠1、2 號(hào)機(jī)組安全級(jí)DCS 項(xiàng)目,具有顯著的工程應(yīng)用價(jià)值。