本發(fā)明涉及工業(yè)級控制系統(tǒng)中的組態(tài)功能領(lǐng)域,具體涉及一種基于域存儲(chǔ)的算法執(zhí)行方法。
背景技術(shù):
數(shù)字化儀控系統(tǒng)控制著核電站300多個(gè)系統(tǒng)近萬套設(shè)備,是核電站的控制中樞,核電站數(shù)字化儀控系統(tǒng)由于安全性、可靠性要求極高,是核電裝備國產(chǎn)化最重要、最困難的部分。
組態(tài)算法的執(zhí)行是DCS實(shí)現(xiàn)組態(tài)功能的重要組成部分,具有運(yùn)算數(shù)據(jù)量大、邏輯功能復(fù)雜、算法種類多等特點(diǎn),包含邏輯運(yùn)算、浮點(diǎn)數(shù)學(xué)運(yùn)算、時(shí)間運(yùn)算等基礎(chǔ)運(yùn)算,以及工程應(yīng)用類如PID控制、RTD溫度計(jì)算等復(fù)雜運(yùn)算,是DCS系統(tǒng)中的核心部分。
目前組態(tài)算法的實(shí)現(xiàn)主要分為兩種:
第一種為基于嵌入式軟件的實(shí)現(xiàn)方式,工程師站完成圖形化的組態(tài)編程后,下裝到控制器模塊內(nèi),受限于控制器芯片如ARM、PowerPC等,每次只能執(zhí)行組態(tài)的一個(gè)算法塊,算法執(zhí)行效率低,每周期運(yùn)算時(shí)間不確定等諸多缺點(diǎn)。
第二種為基于FPGA的實(shí)現(xiàn)方式,根據(jù)不同的工程應(yīng)用領(lǐng)域,進(jìn)行不同算法組態(tài)程序編寫后燒寫到FPGA芯片當(dāng)中。但是每次針對不同的應(yīng)用需要燒寫不同的程序,并且DCS系統(tǒng)的代碼驗(yàn)證工作流程復(fù)雜且時(shí)間較長,增加不必要的工作量。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種基于域存儲(chǔ)的算法執(zhí)行方法,具有可靠性高、算法執(zhí)行效率高、應(yīng)用靈活等特點(diǎn),克服了傳統(tǒng)DCS系統(tǒng)算法執(zhí)行過程中的缺點(diǎn),可完成復(fù)雜的組態(tài)功能計(jì)算,提高DCS系統(tǒng)的響應(yīng)速度。
本發(fā)明的技術(shù)方案如下:
一種基于域存儲(chǔ)的算法執(zhí)行方法,所有過程均在FPGA內(nèi)部實(shí)現(xiàn),包含以下步驟:
第一步:算法執(zhí)行器啟動(dòng)前進(jìn)行初始化工作,等待算法執(zhí)行開始的觸發(fā)信號;
第二步:刷新輸入數(shù)據(jù)到FPGA內(nèi)部雙口RAM內(nèi),包括輸入緩沖區(qū)數(shù)據(jù)、參數(shù)變量數(shù)據(jù),刷新完成后將輸入數(shù)據(jù)搬運(yùn)到內(nèi)部存儲(chǔ)器當(dāng)中;
第三步:執(zhí)行算法組態(tài)代碼,算法模塊庫包含浮點(diǎn)計(jì)算器;
第四步:刷新輸出數(shù)據(jù),將輸出數(shù)據(jù)從內(nèi)部存儲(chǔ)器搬運(yùn)到FPGA內(nèi)部雙口RAM內(nèi);
第五步:計(jì)算輸出數(shù)據(jù)的CRC,將CRC值寫入FPGA內(nèi)部雙口RAM內(nèi)。
第一步中所述的初始化工作包括檢查數(shù)據(jù)區(qū)各部分?jǐn)?shù)據(jù)的一致性,偽代碼下裝。
第三步中所述的浮點(diǎn)計(jì)算器包含2-4個(gè)浮點(diǎn)計(jì)算單元。
第三步中所述的執(zhí)行算法組態(tài)代碼的具體方式為:
當(dāng)某一算法模塊被調(diào)用,算法執(zhí)行器將必要的數(shù)據(jù)寫入寄存器,將系統(tǒng)總線的讀寫權(quán)及算法模塊庫內(nèi)部總線的讀寫權(quán)賦予該算法模塊,然后啟動(dòng)該算法模塊;該算法模塊根據(jù)寄存器當(dāng)中的數(shù)據(jù)進(jìn)行運(yùn)算,若需要浮點(diǎn)計(jì)算,通過浮點(diǎn)計(jì)算單元總線調(diào)用上述的浮點(diǎn)計(jì)算器。
本發(fā)明的顯著效果在于:
(1)采用FPGA芯片實(shí)現(xiàn)算法組態(tài)功能,運(yùn)算速度快、運(yùn)行可靠性高。
(2)算法組態(tài)可以在線配置,無需重新下載FPGA,靈活性高。
(3)偽代碼、各個(gè)數(shù)據(jù)緩沖區(qū)均保存在不同的存儲(chǔ)域當(dāng)中,通過算法執(zhí)行器的調(diào)度,實(shí)現(xiàn)偽代碼與算法庫的鏈接,完成算法組態(tài)功能。
附圖說明
圖1為本發(fā)明所述的基于域存儲(chǔ)的算法執(zhí)行方法的流程圖。
具體實(shí)施方式
下面結(jié)合附圖及具體實(shí)施例對本發(fā)明所述的基于域存儲(chǔ)的算法執(zhí)行方法作進(jìn)一步詳細(xì)說明。
如圖1所示,一種基于域存儲(chǔ)的算法執(zhí)行方法,包含以下步驟:
第一步:算法執(zhí)行器啟動(dòng)前進(jìn)行一系列初始化工作,包括檢查數(shù)據(jù)區(qū)各部分的數(shù)據(jù)一致性,偽代碼下裝;執(zhí)行完成上述步驟后,等待算法執(zhí)行開始的觸發(fā)信號;
第二步:刷新輸入數(shù)據(jù)到FPGA內(nèi)部雙口RAM內(nèi),包括輸入緩沖區(qū)數(shù)據(jù)、參數(shù)變量數(shù)據(jù),刷新完成后將輸入數(shù)據(jù)搬運(yùn)到內(nèi)部存儲(chǔ)器當(dāng)中;
第三步:執(zhí)行算法組態(tài)代碼,算法模塊庫包含浮點(diǎn)計(jì)算器,所述的浮點(diǎn)計(jì)算器包含2-4個(gè)浮點(diǎn)計(jì)算單元;
當(dāng)某一算法模塊被調(diào)用,算法執(zhí)行器將必要的數(shù)據(jù)寫入寄存器,將系統(tǒng)總線的讀寫權(quán)及算法模塊庫內(nèi)部總線的讀寫權(quán)賦予該算法模塊,然后啟動(dòng)該算法模塊;該算法模塊根據(jù)寄存器當(dāng)中的數(shù)據(jù)進(jìn)行運(yùn)算,若需要浮點(diǎn)計(jì)算,通過浮點(diǎn)計(jì)算單元總線調(diào)用上述的浮點(diǎn)計(jì)算器。
第四步:刷新輸出數(shù)據(jù),將輸出數(shù)據(jù)從內(nèi)部存儲(chǔ)器搬運(yùn)到FPGA內(nèi)部雙口RAM內(nèi);
第五步:計(jì)算輸出數(shù)據(jù)的CRC,將CRC值寫入FPGA內(nèi)部雙口RAM內(nèi),該周期執(zhí)行完成。