摘要: 國內的控制軟件編程編譯工具雖然形式多樣,但普遍存在編譯過程融合兼容性不高、對國產CPU芯片指令集的適配度低等問題,而國產編程編譯軟件則尚未在核工業領域得到充分驗證. 另一方面,為保障我國核工業的安全,迫切需要發展國產自主可控的編譯器. 本文對相關編程編譯軟件的架構、編譯過程中間語法結構及國產龍芯芯片的指令集等進行了分析,進而提出了一種具有用戶接口層、應用層、領域層及基礎層等4 層跨范式軟件架構的編程編譯工具,構造了可進行核領域編碼規范檢查的自適應中間語法模型,并將其與100 種以上的國產龍芯MIPS芯片指令集進行了適配. 最后,本文將該編程編譯工具應用于核電DAS 系統進行測試驗證,結果表明該工具有較高的編譯效率:工程文件的全編譯時間為毫秒級;模擬量通道信號測量的最大采集精度為0. 326‰,優于行業標準2‰;停堆觸發響應時間的測試結果不大于70 ms,優于核電行業判定標準. 該編程編譯工具實現了從上層編程軟件到底層硬件芯片的完全自主可控,能夠保障核反應堆的安全運行.
關鍵詞: 核工程;編譯器;PLC;國產芯片指令集
中圖分類號: TP314 文獻標志碼: A DOI:10. 19907/j. 0490-6756. 240180
1引言
隨著我國工業化的不斷深入,工業自動化控制軟件的自主可控問題愈發凸顯. 在各種工業控制軟件中,最常用的是PLC,即可編程邏輯控制器.
實現PLC 自主可控面臨諸多挑戰. 在我國的PLC 市場上,外資公司占據著大約90% 的份額,內資公司的市場份額大約僅為10%. 外資公司主要有德國的西門子和倍福,法國的施耐德,日本的三菱和歐姆龍等. 內資公司主要有浙江中控、傲拓科技、匯川、和利時、臺達、信捷等. 在以上內資公司中,只有部分推出了全國產化的PLC,如浙江中控、傲拓科技以及和利時等. 雖然國產PLC 在編程軟件、核心芯片和操作系統等方面實現了自主可控,但其性能與國外PLC 普遍存在較大差距,特別是在編程編譯軟件方面. 此類編程編譯軟件是用戶實現PLC 邏輯編程功能的基本工具[1].
在工控領域,大部分PLC 產品均遵循IEC61131-3 國際標準. 該標準規定了PLC 軟件中編程語言的語法和語義,并將編程語言分為文本化語言和圖形化語言[2]. 其中,將編程語言轉換為機器碼的編譯器是編程軟件的關鍵技術之一.
在國際市場上,目前編譯器技術雖已非常成熟但存在技術封鎖. 德國3S 公司研發的CodeSys可以將不同品牌的PLC 產品進行組合配置,統一編程編譯下裝,其編譯器可以適配不同PLC 主控芯片[3]. 德國西門子公司研發的博途軟件[4]可以對多組織塊系統、多重實例與函數塊及多語言混合編程等進行統一編譯,適配西門子PLC 所有系列芯片[5].
為了突破國外廠商的技術封鎖,國內廠商主要通過仿制、兼容國外編程編譯工具等方式參與市場競爭. OEM 方式雖然較為簡單,但缺少核心技術. 因自主研發編譯工具鏈[6,7]需要投入大量人力和物力,目前僅有幾家廠商在推進,如和利時的AutoThink 基于Windows 平臺自主開發了編程編譯工具,可以對圖形化硬件組態和3 種編程語言進行編程編譯下裝[8]. 另外,作為NA400 PLC 的編程開發工具,傲拓科技研發的NAPro 支持5 種編程語言,可以進行軟硬件組態的編程編譯和調試[9].為了有效保障我國核工業領域的安全,全國產化的高性能自主可控核工業控制編程編譯工具必不可少. 本文分析了國產龍芯處理器的架構和指令集,從跨范式編程編譯軟件架構設計、自適應中間語言模型和國產芯片適配及應用等維度出發,提出了一種適用于核工業控制系統的自主可控編程編譯工具. 應用于核電DAS 系統的測試驗證,結果表明,該編程編譯工具具有較高編譯效率:工程文件的全編譯時間為毫秒級;測量模擬量通道信號時的最大采集精度為0. 326‰,優于行業標準2‰;測試停堆觸發響應時間的結果不大于70ms,優于核電行業判定標準. 該編程編譯工具實現了從上層編程軟件到底層硬件芯片的完全自主可控,有望為核反應堆的安全運行提供保障.
2軟件架構
針對核工業控制軟件的編程語言范式多樣化、類型不統一的實際需求,本文遵循IEC61131-3標準. 為保證核工業控制系統的可維護性、擴展性和復用性,同時實現編程編譯工具對國產芯片處理器的適配,本文提出了如下的4 層跨范式工業語言編程編譯軟件架構. 該架構主要包括用戶接口層,應用層,領域層和基礎層,如圖1 所示.
用戶接口層. 用戶接口層向用戶展示信息以及解釋用戶信息,提供與用戶交互的接口,設計有菜單欄、工具欄、編程區、消息區和狀態區.
應用層. 應用層定義軟件需要完成的所有任務和功能,對外為用戶接口層提供各種應用功能,對內調用領域層完成業務邏輯,設計有項目管理器、跨范式編程語言編輯器、硬件組態、變量管理器和庫管理器.
領域層. 領域層是軟件架構的核心,主要負責應用層功能和編譯鏈接的實現,主要有硬件組態、變量管理器、庫管理器、跨范式編程語言編輯器、項目管理器、編譯器和鏈接器.
基礎層. 基礎層將領域層的數據進行持久化工作,主要負責平臺通信、在線數據資源管理和仿真,設計有網絡通信、在線監控和仿真等功能.
3自適應中間語言模型
編程編譯工具的功能是將編程語言編寫的源程序翻譯成能被控制器識別和運行文件[10],其結構主要包括分析部分( 前端)和綜合部分( 后端)[11]. 在傳統編譯中,源程序經過前端的詞法分析、語法分析、語義分析等步驟生成一個較為簡單低級或類機器語言的中間表示形式,此種形式并不滿足核工程控制軟件編譯過程中語言多范式、格式不統一、種類繁多及流程復雜等需求.
本文建立一種面向核工程一體化控制軟件的自適應中間語言模型,該模型可以自適應地對多種編程語言編寫的源程序( 如LD、ST、CFC 和SFC 等)進行詞法分析、語法分析和語義分析,同時依據核領域編碼規范開展靜態規范檢查規則研究,包括命名規范規則、類型定義規則及變量引用規則等. 特別地,在語法分析部分,該模型可通過分析前端語言尋找前端語法的共同特征,作為中間語言的核心語法,挖掘可互相替代與消除的前端語言元素,進而提煉出關鍵語法,補充到自適應中間語言模型中,如圖2 所示,模型的模型元素如圖3所示.
通過以上模型,一條以多范式編程語言實現的賦值語句,如P2:=P1+50,在本文提出的編程編譯軟件中形成的中間語言模型如圖4 所示.
4 DAS應用測試
針對編程編譯工具在核工程領域的應用需求,本文將工業自動化編程軟件中的工程文件編譯產生的中間語言模型與100 種以上的國產龍芯芯片指令集結合,生成主控模塊能識別運行的二進制指令文件. 我們將該編程軟件應用在核電項目DAS 系統上,對反應堆運行過程中的流量、功率、溫度及液位等參數進行測量控制,以實現其自動驅動和手動復位功能、顯示報警功能及定期試驗等功能,促進國產CPU 芯片在核工程領域的規模化應用,確保我國核工程領域的安全.
多樣化驅動系統(簡稱 DAS 系統)的控制流程參見圖5. 一方面,DAS 系統的外部IO 模塊通過0 層傳感器設備收集核反應堆的多種數據,如堆芯出口鈉溫、功率量程核功率、主容器鈉液位及各回路各環路流量等,然后用現有模擬數據處理算法模塊對這些模擬量進行處理,用低通濾波器濾除高頻噪聲信號,再對兩列冗余設備的堆芯出口鈉溫、功率流量比、主容器鈉液位等參數做閾值比較,進行二取二序列邏輯符合,以預判反應堆風險、控制停堆系統實現停堆操作. 另一方面,利用梯形圖LD、結構性文本 ST、順序功能圖CFC 和連續功能圖SFC 實現邏輯控制程序,再經過工業自動化編程編譯工具轉化為適用于國產龍芯芯片的二進制指令代碼,下裝到國產龍芯CPU 主控模塊中,實現多樣化驅動系統的控制業務.
將編程編譯工具安裝在核電DAS 系統(冗余系統,包括A 機柜和B 機柜)的工程師站上,使用4種編程語言,通過運行具體實例代碼測試驗證編譯工具的編譯能力和系統邏輯功能,表1 是DAS工程參數.
將A 機柜和B 機柜的工程文件進行全編譯,結果如圖6 和圖7 所示,其中圖6 是A 機柜工程的編譯結果,圖7 是B 機柜工程的編譯結果.
從圖6和圖7的編譯結果可以看出,本文提出的編程編譯工具具有較高編譯效率,兩個機柜的全編譯時間均為毫秒級. 并且兩個機柜的工程編譯生成的MIPS 指令文件均可成功下裝到國產龍芯主控模塊中運行,實現數據采集、處理、閾值比較、邏輯處理、網絡通訊及信號輸出等功能.
在測試模擬量通道信號時,我們對4~20 mA范圍內的電流信號進行選點采集,記錄數據采集值,并根據精度計算公式計算出相應數據精度,結果如表2 所示. 可以看到,模擬量通道的采集精度最大值為0. 326‰,優于行業標準2‰.
在測試DAS 系統的停堆響應時間時,我們在前置條件滿足的情況下改變輸入通道信號值,并記錄停堆驅動輸出通道的觸發響應時間,結果如表3 所示. 可以看到,在觸發自動停堆信號時,DAS系統的緊急停堆響應時間均滿足核電廠標準.
5結論
工業自動化編程軟件編譯工具貫穿核工程控制系統的整個生命周期,具有高可靠性、高穩定的特點,廣泛應用于核電站、核動力裝置和核化工等核工程領域. 本文結合4層跨范式工業語言編程編譯軟件架構、自適應中間語言模型及國產龍芯芯片指令集提出了一種面向核工程一體化控制的編程編譯工具,希望為我國核工程領域的安全做出貢獻.