本發(fā)明涉及工業(yè)控制,尤其涉及一種工業(yè)控制系統(tǒng)io模塊冗余切換方法、工業(yè)控制系統(tǒng)。
背景技術(shù):
1、在工業(yè)控制系統(tǒng)的運(yùn)行過(guò)程中,特別是在關(guān)鍵的信號(hào)采集和輸出控制環(huán)節(jié),往往需要對(duì)io模塊進(jìn)行冗余配置。當(dāng)前主要采用兩種方式來(lái)實(shí)現(xiàn)io模塊的冗余:一種常用方法是將兩塊io模塊安裝在同一塊底板的相鄰位置,通過(guò)io模塊內(nèi)部及底板上配套的硬件電路來(lái)實(shí)現(xiàn)冗余模塊間的狀態(tài)切換。但采用這種方法實(shí)現(xiàn)的冗余配置,io模塊的配置靈活性不足,一旦項(xiàng)目設(shè)計(jì)需要更改,臨時(shí)想將一塊原來(lái)不冗余配置的io模塊設(shè)計(jì)更改為冗余配會(huì)非常困難,需要修改整個(gè)機(jī)架的硬件配置,無(wú)法實(shí)現(xiàn)快速的在線修改。而另一種常用方法是采用機(jī)架整體冗余,互為冗余的機(jī)架上所配置的io模塊一對(duì)一冗余,這種方法要求冗余的io模塊必須配置在各自機(jī)架相同的槽位。采用這種方法實(shí)現(xiàn)冗余配置的問(wèn)題是互為冗余的機(jī)架上插接的io模塊必須都是冗余配置的,不能安裝非冗余配置的模塊,同時(shí)在冗余切換時(shí)必須將整個(gè)機(jī)架進(jìn)行切換,無(wú)法實(shí)現(xiàn)模塊間的單獨(dú)冗余切換。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明針對(duì)現(xiàn)有技術(shù)中的不足,提供了一種工業(yè)控制系統(tǒng)io模塊冗余切換方法,其中工業(yè)控制系統(tǒng)包括組態(tài)服務(wù)器、控制器、和多個(gè)io模塊,所述控制器通過(guò)接口模塊與各io模塊通信,包括如下步驟:
2、s1,控制器對(duì)從所述組態(tài)服務(wù)器下載的組態(tài)信息進(jìn)行解析并獲取冗余配置信息,所述冗余配置信息包括至少一組互為冗余的多個(gè)io模塊的位置信息,所述位置信息包含io模塊所在的機(jī)架號(hào)和槽位號(hào);
3、s2,控制器根據(jù)所述冗余配置信息設(shè)置對(duì)應(yīng)io模塊的初始運(yùn)行狀態(tài),并將各io模塊組態(tài)信息和初始運(yùn)行狀態(tài)信息通過(guò)接口模塊發(fā)送至安裝于相應(yīng)位置上的io模塊,所述初始運(yùn)行狀態(tài)包括工作狀態(tài)和備用狀態(tài);
4、s3,各io模塊根據(jù)控制器設(shè)置的初始運(yùn)行狀態(tài)和組態(tài)信息進(jìn)行作業(yè),并在檢測(cè)到自身故障后將故障信息上報(bào)至控制器;
5、s4,控制器在接收到故障信息后獲取該故障io模塊所在的冗余組內(nèi)其它io模塊的故障情況,并根據(jù)該冗余組內(nèi)各io模塊的故障比對(duì)情況來(lái)確定是否進(jìn)行冗余切換,如需切換則向該冗余組內(nèi)的io模塊下發(fā)冗余切換指令。
6、優(yōu)選的,所述io模塊在接到控制器下發(fā)的非實(shí)時(shí)數(shù)據(jù)后,判斷所述非實(shí)時(shí)數(shù)據(jù)類(lèi)型,若所述非實(shí)時(shí)數(shù)據(jù)為高優(yōu)先級(jí)數(shù)據(jù)則中斷當(dāng)前任務(wù)并響應(yīng)所述高優(yōu)先級(jí)數(shù)據(jù),否則將所述非實(shí)時(shí)數(shù)據(jù)存儲(chǔ)至io模塊緩存中并在結(jié)束當(dāng)前任務(wù)或到達(dá)對(duì)應(yīng)處理周期后調(diào)取所述非實(shí)時(shí)數(shù)據(jù)進(jìn)行響應(yīng),所述高優(yōu)先級(jí)數(shù)據(jù)包括但不限于冗余切換指令;所述控制器在接到io模塊上傳的非實(shí)時(shí)數(shù)據(jù)后,判斷所述非實(shí)時(shí)數(shù)據(jù)類(lèi)型,若所述非實(shí)時(shí)數(shù)據(jù)為高優(yōu)先級(jí)數(shù)據(jù)則中斷當(dāng)前任務(wù)并響應(yīng)所述高優(yōu)先級(jí)數(shù)據(jù),否則將所述非實(shí)時(shí)數(shù)據(jù)存儲(chǔ)至控制器緩存中并在結(jié)束當(dāng)前任務(wù)或到達(dá)對(duì)應(yīng)處理周期后調(diào)取所述非實(shí)時(shí)數(shù)據(jù)進(jìn)行響應(yīng),所述高優(yōu)先級(jí)數(shù)據(jù)包括但不限于故障診斷數(shù)據(jù)。
7、優(yōu)選的,所述步驟s4具體包括:
8、s41,控制器在收到io模塊通過(guò)故障診斷數(shù)據(jù)通道上報(bào)的故障信息后,中斷當(dāng)前任務(wù)并查詢(xún)組態(tài)信息獲取該故障io模塊所在的冗余組內(nèi)其它io模塊的位置信息;
9、s42,根據(jù)所述位置信息查詢(xún)與該故障io模塊互為冗余的其它io模塊的故障情況,根據(jù)該冗余組內(nèi)各io模塊的故障比對(duì)情況來(lái)確定是否進(jìn)行冗余切換,如需切換則向該冗余組內(nèi)的相應(yīng)io模塊下發(fā)冗余切換指令。
10、優(yōu)選的,處于工作狀態(tài)的io模塊在收到控制器下發(fā)的切換至備用狀態(tài)的冗余切換指令后,獲取當(dāng)前的模塊工作數(shù)據(jù)類(lèi)型,根據(jù)所述模塊工作數(shù)據(jù)類(lèi)型將其切換至對(duì)應(yīng)模塊工作數(shù)據(jù)類(lèi)型的備用狀態(tài);處于備用狀態(tài)的io模塊在收到控制器下發(fā)的切換至工作狀態(tài)的冗余切換指令后,從存儲(chǔ)的組態(tài)數(shù)據(jù)中獲取配置的模塊工作數(shù)據(jù)類(lèi)型,根據(jù)所述模塊工作數(shù)據(jù)類(lèi)型將其切換至對(duì)應(yīng)該模塊工作數(shù)據(jù)類(lèi)型的工作狀態(tài),并在切換完成后將所處工作狀態(tài)標(biāo)識(shí)作為響應(yīng)回復(fù)給控制器。
11、優(yōu)選的,所述步驟s4還包括:控制器在接收到處于工作狀態(tài)的io模塊發(fā)送的故障信息后,獲取該故障io模塊的位置信息,在冗余配置信息中查詢(xún)是否存在該位置信息,若不存在則將所述故障信息更新至故障數(shù)據(jù)庫(kù)中;若在冗余配置信息中存在該位置信息,則獲取與該位置信息上的io模塊互為冗余的其它io模塊的位置信息,根據(jù)所述位置信息采集在其它各冗余位置上的io模塊的故障信息;如果當(dāng)前處于工作狀態(tài)的io模塊的故障等級(jí)高于處于備用狀態(tài)的io模塊,則在處于備用狀態(tài)的io模塊中選取故障等級(jí)較低的io模塊并向其發(fā)送切換至工作狀態(tài)的冗余切換命令,并向當(dāng)前處于工作狀態(tài)的io模塊發(fā)送切換至備用狀態(tài)的冗余切換命令。
12、優(yōu)選的,互為冗余的多個(gè)io模塊被安裝在同一機(jī)架上。
13、本發(fā)明還公開(kāi)了一種工業(yè)控制系統(tǒng),包括組態(tài)服務(wù)器、控制器、和多個(gè)io模塊,所述控制器通過(guò)接口模塊與各io模塊通信,其中:控制器被配置為對(duì)從所述組態(tài)服務(wù)器下載的組態(tài)信息進(jìn)行解析并獲取冗余配置信息,所述冗余配置信息包括至少一組互為冗余的多個(gè)io模塊的位置信息,所述位置信息包含io模塊所在的機(jī)架號(hào)和槽位號(hào);根據(jù)所述冗余配置信息設(shè)置對(duì)應(yīng)io模塊的初始運(yùn)行狀態(tài),并將各io模塊組態(tài)信息和初始運(yùn)行狀態(tài)信息通過(guò)接口模塊發(fā)送至安裝于相應(yīng)位置上的io模塊,所述初始運(yùn)行狀態(tài)包括工作狀態(tài)和備用狀態(tài);io模塊被配置為根據(jù)控制器設(shè)置的初始運(yùn)行狀態(tài)和組態(tài)信息進(jìn)行作業(yè),并在檢測(cè)到自身故障后將故障信息上報(bào)至控制器;所述控制器還被配置為在接收到故障信息后獲取該故障io模塊所在的冗余組內(nèi)其它io模塊的故障情況,并根據(jù)該冗余組內(nèi)各io模塊的故障比對(duì)情況來(lái)確定是否進(jìn)行冗余切換,如需切換則向該冗余組內(nèi)的io模塊下發(fā)冗余切換指令。
14、優(yōu)選的,所述io模塊被配置為在接到控制器下發(fā)的非實(shí)時(shí)數(shù)據(jù)后,判斷所述非實(shí)時(shí)數(shù)據(jù)類(lèi)型,若所述非實(shí)時(shí)數(shù)據(jù)為高優(yōu)先級(jí)數(shù)據(jù)則中斷當(dāng)前任務(wù)并響應(yīng)所述高優(yōu)先級(jí)數(shù)據(jù),否則將所述非實(shí)時(shí)數(shù)據(jù)存儲(chǔ)至io模塊緩存中并在結(jié)束當(dāng)前任務(wù)或到達(dá)對(duì)應(yīng)處理周期后調(diào)取所述非實(shí)時(shí)數(shù)據(jù)進(jìn)行響應(yīng),所述高優(yōu)先級(jí)數(shù)據(jù)包括但不限于冗余切換指令;所述控制器被配置為在接到io模塊上傳的非實(shí)時(shí)數(shù)據(jù)后,判斷所述非實(shí)時(shí)數(shù)據(jù)類(lèi)型,若所述非實(shí)時(shí)數(shù)據(jù)為高優(yōu)先級(jí)數(shù)據(jù)則中斷當(dāng)前任務(wù)并響應(yīng)所述高優(yōu)先級(jí)數(shù)據(jù),否則將所述非實(shí)時(shí)數(shù)據(jù)存儲(chǔ)至控制器緩存中并在結(jié)束當(dāng)前任務(wù)或到達(dá)對(duì)應(yīng)處理周期后調(diào)取所述非實(shí)時(shí)數(shù)據(jù)進(jìn)行響應(yīng),所述高優(yōu)先級(jí)數(shù)據(jù)包括但不限于故障診斷數(shù)據(jù)。
15、優(yōu)選的,所述控制器被配置為在收到io模塊通過(guò)故障診斷數(shù)據(jù)通道上報(bào)的故障信息后,中斷當(dāng)前任務(wù)并查詢(xún)組態(tài)信息獲取該故障io模塊所在的冗余組內(nèi)其它io模塊的位置信息;根據(jù)所述位置信息查詢(xún)與該故障io模塊互為冗余的其它io模塊的故障情況,根據(jù)該冗余組內(nèi)各io模塊的故障比對(duì)情況來(lái)確定是否進(jìn)行冗余切換,如需切換則向該冗余組內(nèi)的相應(yīng)io模塊下發(fā)冗余切換指令。
16、優(yōu)選的,所述io模塊還被配置為在處于工作狀態(tài)時(shí),在收到控制器下發(fā)的切換至備用狀態(tài)的冗余切換指令后,獲取當(dāng)前的模塊工作數(shù)據(jù)類(lèi)型,根據(jù)所述模塊工作數(shù)據(jù)類(lèi)型將其切換至對(duì)應(yīng)模塊工作數(shù)據(jù)類(lèi)型的備用狀態(tài);在處于備用狀態(tài)時(shí),在收到控制器下發(fā)的切換至工作狀態(tài)的冗余切換指令后,從存儲(chǔ)的組態(tài)數(shù)據(jù)中獲取配置的模塊工作數(shù)據(jù)類(lèi)型,根據(jù)所述模塊工作數(shù)據(jù)類(lèi)型將其切換至對(duì)應(yīng)該模塊工作數(shù)據(jù)類(lèi)型的工作狀態(tài),并在切換完成后將所處工作狀態(tài)標(biāo)識(shí)作為響應(yīng)回復(fù)給控制器。
17、本發(fā)明公開(kāi)的工業(yè)控制系統(tǒng)io模塊冗余切換方法、工業(yè)控制系統(tǒng),將io模塊所在的機(jī)架號(hào)和槽位號(hào)作為位置信息,根據(jù)位置信息來(lái)區(qū)分各io模塊和進(jìn)行相應(yīng)冗余配置,并將配置的組態(tài)信息和配置好的初始狀態(tài)信息發(fā)送至對(duì)應(yīng)位置的io模塊處,io模塊根據(jù)接收到的控制器信息進(jìn)行工作狀態(tài)或備用狀態(tài)配置,并在檢測(cè)到自身故障后將故障信息上報(bào)至控制器,控制器在接收到故障信息后根據(jù)該故障io模塊所在的冗余組內(nèi)其它io模塊的故障情況進(jìn)行比對(duì),判斷是否進(jìn)行冗余切換,并在需進(jìn)行冗余切換的情況下下發(fā)冗余切換指令來(lái)實(shí)現(xiàn)io模塊的工作狀態(tài)切換,使得機(jī)架底板上無(wú)需為需要冗余配置的io模塊設(shè)置額外的硬件電路,也無(wú)需布置互為冗余的機(jī)架,提高了工業(yè)控制系統(tǒng)的io模塊冗余配置的靈活性。
18、本發(fā)明的附加方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過(guò)本發(fā)明的實(shí)踐了解到。