本發(fā)明涉及工業(yè)自動(dòng)化,尤其涉及一種控制程序異常的處理方法。
背景技術(shù):
1、在流程工業(yè)和離散工業(yè)自動(dòng)化生產(chǎn)過程中,控制器中運(yùn)行的控制程序決定了生產(chǎn)的自動(dòng)化程度和可靠性。當(dāng)控制器中的一副程序出現(xiàn)除0、數(shù)組越界訪問、內(nèi)存越界訪問、空指針訪問、死循環(huán)等異常時(shí),若不進(jìn)行異常處理,會(huì)導(dǎo)致整個(gè)控制器故障,故障可能導(dǎo)致系統(tǒng)停機(jī)、生產(chǎn)中斷、產(chǎn)品質(zhì)量不合格,甚至?xí)霈F(xiàn)惡性生產(chǎn)事故,危機(jī)人員的生命財(cái)產(chǎn)安全,所造成的直接經(jīng)濟(jì)損失十分巨大,間接損失和社會(huì)影響更是難以估量。
2、當(dāng)出現(xiàn)上述故障時(shí),工廠操作工可以通過24小時(shí)巡視發(fā)現(xiàn)和重啟控制器臨時(shí)干預(yù),但工作強(qiáng)度大、異?;謴?fù)時(shí)間長。
3、因此目前亟需一種控制程序異常的處理方法。
技術(shù)實(shí)現(xiàn)思路
1、(一)要解決的技術(shù)問題
2、鑒于現(xiàn)有技術(shù)的上述缺點(diǎn)、不足,本發(fā)明提供一種控制程序異常的處理方法,其解決了在流程工業(yè)和離散工業(yè)自動(dòng)化生產(chǎn)過程中,在控制器中的控制程序發(fā)生異常時(shí),無法及時(shí)處理導(dǎo)致經(jīng)濟(jì)損失巨大,間接損失和設(shè)備影響更加難以估量的技術(shù)問題。
3、(二)技術(shù)方案
4、為了達(dá)到上述目的,本發(fā)明采用的主要技術(shù)方案包括:
5、本發(fā)明實(shí)施例提供一種控制程序異常的處理方法,應(yīng)用于1:1熱備冗余的控制器架構(gòu)中,包括:
6、s100、軟件引擎根據(jù)內(nèi)部注冊(cè)的異常事件,對(duì)控制程序進(jìn)行異常事件檢測,并獲取異常檢測的結(jié)果;
7、s200、當(dāng)所述異常檢測的結(jié)果為出現(xiàn)異常時(shí),軟件引擎將出現(xiàn)異常的控制程序標(biāo)記為異常,并將其從正常的工作流程中剔除;
8、且軟件引擎將出現(xiàn)異常的信息發(fā)送至異常程序監(jiān)視服務(wù),異常程序監(jiān)視服務(wù)接收所述出現(xiàn)異常的信息并將所述出現(xiàn)異常的信息發(fā)送至控制程序狀態(tài)發(fā)布服務(wù),控制程序狀態(tài)發(fā)布服務(wù)接收所述出現(xiàn)異常的信息,將所述出現(xiàn)異常的信息進(jìn)行統(tǒng)計(jì)保存以及展示;
9、s300、軟件引擎發(fā)出冗余切換的指令至中控設(shè)備,使中控設(shè)備將控制權(quán)轉(zhuǎn)移至備用控制器。
10、可選地,所述1:1熱備冗余的控制器架構(gòu)包括:
11、中控設(shè)備、1:1熱備冗余的兩臺(tái)控制器;
12、所述中控設(shè)備分別與所述1:1熱備冗余的兩臺(tái)控制器通信連接。
13、可選地,所述1:1熱備冗余的兩臺(tái)控制器為專用硬件的控制器或者基于pc服務(wù)器的虛擬化云化環(huán)境的云化控制器。
14、可選地,所述1:1熱備冗余的兩臺(tái)控制器分別包括:應(yīng)用層、調(diào)度層、平臺(tái)層;
15、所述平臺(tái)層包括windows/linux+實(shí)時(shí)補(bǔ)丁;
16、所述調(diào)度層為基于ice61131-3的控制程序,包括控制程序調(diào)度服務(wù);
17、所述應(yīng)用層包括異常程序監(jiān)視服務(wù)以及控制程序狀態(tài)發(fā)布服務(wù)。
18、可選地,所述s100之前還包括:
19、s000、軟件引擎注冊(cè)異常事件;
20、所述s000具體包括:
21、s010、軟件引擎接收用戶輸入的異常情況的信息,根據(jù)所述異常情況的信息為每種異常情況隨機(jī)生成一個(gè)唯一的事件標(biāo)識(shí)符;
22、s020、軟件引擎接收用戶輸入的異常情況解決方案,根據(jù)所述異常情況解決方案生成每種異常情況對(duì)應(yīng)的處理程序,所述處理程序在異常發(fā)生時(shí)被調(diào)用。
23、可選地,所述異常事件包括:
24、整數(shù)除零和浮點(diǎn)除零、數(shù)組越界訪問、內(nèi)存越界訪問以及空指針訪問。
25、可選地,所述方法還包括:
26、軟件引擎獲取每個(gè)控制程序的運(yùn)行時(shí)間,根據(jù)預(yù)先設(shè)定的超期時(shí)間,判斷所述控制程序的運(yùn)行時(shí)間是否超出超期時(shí)間,若超出,執(zhí)行步驟s200至s300。
27、可選地,所述軟件引擎獲取每個(gè)控制程序的運(yùn)行時(shí)間包括:
28、軟件引擎向控制程序調(diào)度服務(wù)發(fā)送第一指令后,接收控制程序調(diào)度服務(wù)反饋的每個(gè)控制程序的開始執(zhí)行時(shí)間和結(jié)束執(zhí)行時(shí)間;軟件引擎根據(jù)所述每個(gè)控制程序的開始執(zhí)行時(shí)間和結(jié)束執(zhí)行時(shí)間,獲取每個(gè)控制程序的運(yùn)行時(shí)間;
29、所述第一指令為獲取每個(gè)控制程序的開始執(zhí)行時(shí)間和結(jié)束執(zhí)行時(shí)間。
30、可選地,所述方法還包括:
31、s400、中控設(shè)備接收冗余切換的指令,根據(jù)所述冗余切換的指令,對(duì)備用控制器進(jìn)行狀態(tài)檢查;
32、s500、當(dāng)所述備用控制器的狀態(tài)為正常時(shí),中控設(shè)備將所述備用控制器進(jìn)行初始化配置后,將控制權(quán)轉(zhuǎn)移至備用控制器。
33、可選地,所述方法還包括:
34、s600、中控設(shè)備重新啟動(dòng)控制程序異常的控制器,并恢復(fù)程序異常的控制器中控制程序的狀態(tài)至異常前狀態(tài),將其納入正常的控制流程中。
35、(三)有益效果
36、本發(fā)明的有益效果是:本發(fā)明的一種控制程序異常的處理方法,在程序發(fā)生異常時(shí),第一時(shí)間自動(dòng)捕獲異常,并將異常的程序名稱通知監(jiān)控,并立即發(fā)起冗余切換,再剔除異常程序和熱復(fù)位控制器,相對(duì)于現(xiàn)有技術(shù)而言,其可以實(shí)現(xiàn)毫秒級(jí)的高實(shí)時(shí)異?;謴?fù),確??刂破骼^續(xù)高可靠運(yùn)行。
1.一種控制程序異常的處理方法,其特征在于,應(yīng)用于1:1熱備冗余的控制器架構(gòu)中,所述處理方法包括:
2.根據(jù)權(quán)利要求1所述的控制程序異常的處理方法,其特征在于,所述1:1熱備冗余的控制器架構(gòu)包括:
3.根據(jù)權(quán)利要求2所述的控制程序異常的處理方法,其特征在于,
4.根據(jù)權(quán)利要求3所述的控制器程序異常的處理方法,其特征在于,所述1:1熱備冗余的兩臺(tái)控制器分別包括:應(yīng)用層、調(diào)度層、平臺(tái)層;
5.根據(jù)權(quán)利要求1所述的控制程序異常的處理方法,其特征在于,所述s100之前還包括:
6.根據(jù)權(quán)利要求1所述的控制程序異常的處理方法,其特征在于,所述異常事件包括:
7.根據(jù)權(quán)利要求1所述的控制程序異常的處理方法,其特征在于,所述方法還包括:
8.根據(jù)權(quán)利要求7所述的控制程序異常的處理方法,其特征在于,所述軟件引擎獲取每個(gè)控制程序的運(yùn)行時(shí)間包括:
9.根據(jù)權(quán)利要求1所述的控制程序異常的處理方法,其特征在于,所述方法還包括:
10.根據(jù)權(quán)利要求9所述的控制程序異常的處理方法,其特征在于,所述方法還包括: