張 旭,陳世勇,劉全東
(中國核動(dòng)力研究設(shè)計(jì)院 核反應(yīng)堆系統(tǒng)設(shè)計(jì)技術(shù)重點(diǎn)實(shí)驗(yàn)室,成都 610213)
硬邏輯電氣電路是DCS中的重要組成部分,主要由硬接線和繼電器等元器件搭接而成。作為DCS數(shù)字化系統(tǒng)的后備措施,用來應(yīng)對(duì)因數(shù)字化控制系統(tǒng)軟件共因故障引發(fā)的功能失效,以維持系統(tǒng)的功能[1]。
常見的電氣圖紙繪制軟件包括Eplan、CAD、Microsoft Visio等,這些繪圖軟件繪制的圖紙僅作為表征線路連接的示意圖,不具備邏輯仿真運(yùn)算功能,這給工程設(shè)計(jì)人員帶來了不便,不能高效地驗(yàn)證設(shè)計(jì)的正確性?;诜抡婕夹g(shù)中純模擬(Simulation)原理,采用翻譯(Translation)的技術(shù)路線,將電氣圖紙批量自動(dòng)翻譯到仿真平臺(tái),并利用仿真平臺(tái)進(jìn)行邏輯運(yùn)算,可實(shí)現(xiàn)電氣設(shè)計(jì)的仿真。
國內(nèi)外對(duì)于仿真技術(shù)在儀控系統(tǒng)驗(yàn)證方面的研究較多,多數(shù)研究集中于將儀控系統(tǒng)虛擬化為軟件形式實(shí)現(xiàn),與虛擬化的工藝系統(tǒng)過程模型軟件形成閉環(huán),驗(yàn)證控制邏輯[2~5]。單純對(duì)于硬邏輯仿真的研究較少。
本文以Eplan作為電氣設(shè)計(jì)軟件,以Simulink作為仿真平臺(tái)為例,設(shè)計(jì)并實(shí)現(xiàn)DCS硬邏輯電氣電路仿真,對(duì)于其他電氣設(shè)計(jì)軟件或仿真平臺(tái),其原理是一致的,僅在實(shí)現(xiàn)層面略有區(qū)別。
硬邏輯仿真系統(tǒng)包括三個(gè)部分,即信息提取模塊、智能數(shù)據(jù)融合模塊、算法塊驅(qū)動(dòng)模塊、應(yīng)用模塊。如圖1所示。
圖1 硬邏輯仿真系統(tǒng)結(jié)構(gòu)圖
硬邏輯涉及元器件依特定的格式在電氣設(shè)計(jì)軟件(Eplan)繪制,硬邏輯信息讀取部分有兩種實(shí)現(xiàn)形式:
1)向Eplan軟件嵌入插件程序,由其導(dǎo)出Excel或其他格式的硬邏輯元器件及連接關(guān)系文件;
2)其二為不打開Eplan軟件,由仿真軟件外部讀取Eplan文件內(nèi)容,獲取硬邏輯元器件及連接關(guān)系信息。
本文采用前一種形式進(jìn)行研究。軟件通過硬邏輯元器件與Simulink算法庫中算法塊的映射關(guān)系,將硬邏輯元器件及連接關(guān)系在Simulink中重繪。
硬邏輯電氣電路的Eplan圖紙應(yīng)按照標(biāo)準(zhǔn)電氣電路設(shè)計(jì)。信息提取模塊從Eplan工程圖紙中提取信息,寫入物理文件,供智能數(shù)據(jù)融合模塊讀取。由Eplan導(dǎo)出的文件應(yīng)能夠體現(xiàn)電氣元器件的名稱、連接關(guān)系等信息,以導(dǎo)出*.csv格式的物理文件為例。其格式示例如表1、表2所示。
表1 元器件信息表
表2 連線信息表
Eplan信息提取模塊可通過嵌入式Eplan插件的形式實(shí)現(xiàn)[6]。Eplan信息提取模塊流程如圖2所示,在信息提取功能被觸發(fā)后,獲取當(dāng)前項(xiàng)目,循環(huán)圖紙每一頁并遍歷其中元器件。生成元器件信息表時(shí),提取每種元器件的信息,并填寫元器件信息表。結(jié)合Eplan軟件的特性,其線圈和觸點(diǎn)作為兩個(gè)元器件(Function)被存儲(chǔ),因而,此時(shí)篩選只記錄線圈(Coil),而不記錄常開觸點(diǎn)(NoContact)或常閉觸點(diǎn)(NcContact)的信息。生成連線信息表時(shí),循環(huán)每個(gè)元器件的Connections屬性,獲取每個(gè)連線(Connection)的信息,包括源端和目標(biāo)端的元器件名、端口號(hào)等。
圖2 Eplan信息提取模塊流程圖
元器件名取自元器件的Visible Name 字段,元器件類型和連接端口信號(hào)取自元器件Connection字段的Properties.CONNECTION_DESTINATION或Properties.CONNECTION_SOURCE屬性,其格式為“=+CHS011AR-UM001:2”,用字符串的Split方法截取連接元器件名與端口號(hào)。
以C#語言實(shí)現(xiàn)為例,遍歷本頁元器件及其連接關(guān)系獲取連線關(guān)系集合的部分代碼示意如下。其中,每條連線的連線信息存儲(chǔ)在Line格式的結(jié)構(gòu)體中,具體形式如下。
智能數(shù)據(jù)融合模塊實(shí)現(xiàn)將硬邏輯信息映射填充至適應(yīng)Simulink平臺(tái)組態(tài)文件的鏈表結(jié)構(gòu)。Simulink算法庫應(yīng)包括所有涉及到的算法塊,每種Simulink算法塊分別與Eplan的各種算法塊對(duì)應(yīng),這種對(duì)應(yīng)關(guān)系是從Eplan平臺(tái)向Simulink平臺(tái)翻譯的基礎(chǔ)。算法庫包括RS觸發(fā)器、繼電器、延時(shí)繼電器、輸入/輸出模塊等。算法庫示例如圖3所示。
圖3 算法庫示例
算法塊內(nèi)部由MATLAB的MATLAB-Function函數(shù)塊與Simulink基本模塊搭接構(gòu)成。算法塊內(nèi)部示意圖如圖4所示。
圖4 算法塊內(nèi)部示意圖
以圖4所示為繼電器模塊為例,左側(cè)的MATLABFunction函數(shù)塊實(shí)現(xiàn)了繼電器模塊的基本功能,其輸入分別為外部輸入信號(hào)、是否供電、第一組與第二組輸出端口的常開常閉模式,右側(cè)Simulink基本模塊實(shí)現(xiàn)了元器件故障模擬,可在正常仿真模式與模擬繼電器故障模式之間切換,為設(shè)計(jì)人員提供參考。MATLAB-Function函數(shù)塊與Simulink基本模塊算法塊的結(jié)合,既可實(shí)現(xiàn)復(fù)雜的算法邏輯,又使該過程簡單直觀。
算法塊驅(qū)動(dòng)模塊根據(jù)智能數(shù)據(jù)融合模塊生成的元器件信息鏈表和連接關(guān)系鏈表,驅(qū)動(dòng)Simulink軟件繪制組態(tài)圖形文件。其具體實(shí)現(xiàn)流程如圖5所示。算法塊驅(qū)動(dòng)模塊實(shí)現(xiàn)了該過程的高度自動(dòng)化[7,8]。
圖5 算法塊驅(qū)動(dòng)模塊實(shí)現(xiàn)流程圖
采用發(fā)送命令行的方式,驅(qū)動(dòng)Simulink繪制算法塊與連線。繪制連線并發(fā)送命令的代碼示例如下:
應(yīng)用模塊以Simulink平臺(tái)為基礎(chǔ),應(yīng)用Simulink軟件的運(yùn)算、保存等功能,封裝為仿真邏輯運(yùn)算與工況保存與裝入功能,用于邏輯仿真。
以核電廠反應(yīng)堆保護(hù)控制系統(tǒng)中常用的帶手動(dòng)復(fù)位的鎖存器(FFM)邏輯功能為例,驗(yàn)證仿真系統(tǒng)。該邏輯功能廣泛用于反應(yīng)堆安注、安全殼隔離等專設(shè)功能邏輯,實(shí)現(xiàn)對(duì)各專設(shè)功能就地設(shè)備(泵,閥等)的手動(dòng)復(fù)位,保障反應(yīng)堆專設(shè)功能的執(zhí)行。FFM的功能示意圖和輸入輸出說明如圖6和表3所示:
圖6 FFM功能塊示意圖
表3 輸入輸出關(guān)系說明
當(dāng)R端輸入為0時(shí),L端輸入為1時(shí),輸出端為1,此時(shí)無論L端輸入為何值,輸出將保持為1直至R端輸入為1。
當(dāng)R端輸入為1時(shí),輸出將無條件置0。在置位之后,只有L端輸入由0變?yōu)?時(shí),輸出變?yōu)?。
詳細(xì)真值表如表4所示。
表4 真值表
在Eplan中實(shí)現(xiàn)該功能模塊,用繼電器等元件搭建的電氣原理圖如圖7所示。
圖7 FFM硬邏輯原理圖
以上述硬邏輯電路仿真為例,對(duì)仿真系統(tǒng)進(jìn)行驗(yàn)證。
通過在Eplan平臺(tái)加載dll動(dòng)態(tài)鏈接庫,形成功能入口[4]。如圖8所示。
圖8 Eplan插件形式的功能入口
執(zhí)行“導(dǎo)出硬件信息”功能,將元器件信息與連線信息分別導(dǎo)出至csv文件,如表5、表6所示。
表5 元器件信息表
表6 連線信息表
在導(dǎo)出連接線的過程中,因只需要讀出設(shè)備之間的邏輯關(guān)系即可,故應(yīng)刪除設(shè)備與電源或地之間的連線,篩選出設(shè)備之間的連線,由設(shè)備之間的連線傳遞邏輯。
智能數(shù)據(jù)融合模塊讀取元器件信息表和連接關(guān)系表,向元器件鏈表和連線鏈表填充信息,然后按照先元器件后連線的順序在Simulink重繪圖紙。實(shí)際硬件物理設(shè)備中的“與”“或”邏輯由硬接線的連接表示,因而在重繪的過程中,應(yīng)通過分析元器件的連接關(guān)系,在Simulink平臺(tái)增加“與”“或”邏輯塊。翻譯重繪結(jié)果如圖9所示。
圖9 Simulink平臺(tái)算法圖
考慮到Simulink與Eplan軟件機(jī)制的不同,設(shè)計(jì)Simulink的算法塊與Eplan中算法塊的一個(gè)區(qū)別是,Eplan中繼電器線圈和觸點(diǎn)可作為不同元器件分別使用多個(gè)圖符,而Simulink的算法塊中,每個(gè)元器件作為一個(gè)獨(dú)立的整體,線圈和觸點(diǎn)分別作為算法塊的輸入和輸出。
然后通過設(shè)計(jì)不同組合與時(shí)序的輸入值,記錄輸出端仿真結(jié)果,驗(yàn)證仿真結(jié)果。仿真實(shí)驗(yàn)如圖10所示。圖中,Input1與Input2分別代表兩個(gè)輸入端的輸入值,Output代表輸出端的輸出值。
圖10 仿真結(jié)果示意圖
仿真計(jì)算結(jié)果符合預(yù)期值,證明基于Simulink的DCS硬邏輯翻譯式仿真方法的正確性。
仿真系統(tǒng)的故障模擬功能以繼電器觸頭故障(粘連)、RS觸發(fā)器兩端輸入線圈故障為例進(jìn)行驗(yàn)證。如圖11~圖13分別為電氣電路中2號(hào)繼電器觸頭故障、RS觸發(fā)器的S與R端故障的仿真結(jié)果。
圖11 2號(hào)繼電器觸頭故障仿真結(jié)果
圖12 RS觸發(fā)器S端輸入線圈故障仿真結(jié)果
圖13 RS觸發(fā)器R端輸入線圈故障仿真結(jié)果
實(shí)驗(yàn)結(jié)果符合預(yù)期,證明仿真系統(tǒng)故障模擬功能的正確性。
基于Simulink的DCS硬邏輯電氣電路仿真能夠補(bǔ)充電氣設(shè)計(jì)軟件在仿真運(yùn)算功能方面的不足,高效的驗(yàn)證硬邏輯設(shè)計(jì)能否滿足預(yù)期功能,降低設(shè)計(jì)錯(cuò)誤率。以Simulink作為仿真平臺(tái),將電氣設(shè)計(jì)軟件文件翻譯為Simulink平臺(tái)算法文件,實(shí)現(xiàn)仿真功能。該過程采用翻譯的技術(shù)路線,自動(dòng)化程度高。
進(jìn)一步的研究可從Eplan與Simulink的交互方面進(jìn)行。仿真計(jì)算結(jié)果在Eplan軟件上顯示,仿真軟件與Eplan的交互方法有多種,包括共享內(nèi)存和共同讀寫物理文件等。以共同讀寫文件的方式為例,仿真軟件將計(jì)算結(jié)果寫入物理文件,在Eplan軟件中嵌入插件。觸發(fā)插件功能函數(shù)時(shí)Eplan軟件獲取仿真結(jié)果,顯示在界面上,達(dá)到更好的使用效果。