張明惠,董勝剛
(南京國(guó)電南自維美德自動(dòng)化有限公司,南京 210032)
分散控制系統(tǒng)(DCS)包括了過(guò)程控制站及上位監(jiān)控系統(tǒng),是操作員與就地設(shè)備之間的橋梁和紐帶。實(shí)時(shí)控制系統(tǒng)要求能實(shí)時(shí)采集現(xiàn)場(chǎng)數(shù)據(jù),并對(duì)所采集的數(shù)據(jù)進(jìn)行及時(shí)處理,進(jìn)而自動(dòng)地控制相應(yīng)的執(zhí)行機(jī)構(gòu),使某些(個(gè))參數(shù)(如溫度、壓力、方位等)能按預(yù)定的規(guī)律變化,以保證產(chǎn)品的質(zhì)量和提高產(chǎn)量。DCS 能夠正常工作,關(guān)鍵在于DCS 的安全性、穩(wěn)定性和可靠性[1-5]。隨著DCS 在火力發(fā)電站以及化工、煤礦、船舶等的廣泛應(yīng)用和覆蓋面的不斷擴(kuò)展,對(duì)其性能以及可靠性的要求越來(lái)越高。
當(dāng)前,絕大多數(shù)火電廠過(guò)程控制站的控制器均采用冗余配置[6],即過(guò)程控制站中的控制器分為主控制器和備控制器,主備控制器中運(yùn)行了相同的邏輯組態(tài)。當(dāng)主控制器運(yùn)行出現(xiàn)問(wèn)題時(shí),備控制器能夠及時(shí)接管控制,從而保證現(xiàn)場(chǎng)被控設(shè)備的可靠安全運(yùn)行[7]。主備控制器模塊之間通過(guò)心跳線收發(fā)同步脈沖,當(dāng)備機(jī)連續(xù)未收到主機(jī)發(fā)送的脈沖,就切換為主機(jī),原主機(jī)復(fù)位后切換為備機(jī),從而實(shí)現(xiàn)冗余切換。主控制器模塊將組態(tài)運(yùn)算的結(jié)果同步到備控制器。采用冗余技術(shù)可以明顯提高系統(tǒng)的可靠性,其可靠性的上升呈指數(shù)趨勢(shì),如系統(tǒng)兩個(gè)可靠性為80%的子系統(tǒng)并聯(lián)為一個(gè)完整系統(tǒng),則系統(tǒng)可靠性將上升至96%[8]。
在系統(tǒng)設(shè)計(jì)階段或者調(diào)試階段,對(duì)DCS 控制系統(tǒng)的冗余性能進(jìn)行測(cè)試,了解冗余性能是否能夠滿足要求,及時(shí)發(fā)現(xiàn)系統(tǒng)存在的問(wèn)題和隱患,并提出改進(jìn)意見(jiàn),有利于提高DCS 控制系統(tǒng)的穩(wěn)定性、安全性和可靠性。
冗余控制器的冗余性能主要體現(xiàn)在切換發(fā)生時(shí)的切換時(shí)間和同步時(shí)間。主控制器發(fā)生故障時(shí),過(guò)程控制器的輸出保持,當(dāng)備用控制器接管后,數(shù)據(jù)繼續(xù)輸出。故障發(fā)生后,過(guò)程控制站數(shù)據(jù)輸出保持的時(shí)間即為控制器的切換時(shí)間。備用控制器接管后,同步的數(shù)值為最新一次主控制器同步過(guò)來(lái)的數(shù)值,該數(shù)值與主控制器故障時(shí)最后一次輸出的數(shù)值之差所需的運(yùn)行時(shí)間,即為控制器的同步時(shí)間。
當(dāng)主控制器異常,控制器發(fā)生切換,冗余控制器的切換時(shí)間和同步時(shí)間會(huì)影響整個(gè)系統(tǒng)功能的執(zhí)行。如果同步時(shí)間長(zhǎng),數(shù)據(jù)還沒(méi)來(lái)得及同步,切換時(shí)間又較長(zhǎng),可能會(huì)對(duì)系統(tǒng)造成較大的擾動(dòng)。如果是數(shù)字量輸出還沒(méi)來(lái)得及同步,那么數(shù)字量輸出開(kāi)關(guān)狀態(tài)就會(huì)與切換前不一致。如果模擬量輸出沒(méi)來(lái)得及同步,現(xiàn)場(chǎng)模擬量輸出將發(fā)生明顯波動(dòng)。如果切換時(shí)間較長(zhǎng),數(shù)據(jù)的輸入和輸出脫離控制的時(shí)間越長(zhǎng),在切換時(shí)間內(nèi)過(guò)程控制站的輸出處于保持狀態(tài)。當(dāng)數(shù)據(jù)輸入發(fā)生大的改變時(shí),備用控制器接管正常后,數(shù)據(jù)輸出對(duì)系統(tǒng)的沖擊較大。
所以,冗余控制器的切換時(shí)間和同步時(shí)間是控制器冗余性能的重要影響因素。切換時(shí)間和同步時(shí)間越短,過(guò)程控制器的冗余性能越好。
控制器的冗余有多種實(shí)現(xiàn)方式,為了保證切換時(shí)不發(fā)生上述擾動(dòng),目前主流廠家均采用雙機(jī)熱備模式。主備過(guò)程控制器之間通過(guò)專(zhuān)用網(wǎng)絡(luò)連接,此專(zhuān)用網(wǎng)絡(luò)既用來(lái)實(shí)現(xiàn)控制邏輯以及各種變量數(shù)據(jù)的同步,同時(shí)還傳遞主控制器正常工作的心跳信號(hào)[9]。
不同的廠家,冗余控制器的切換和同步的實(shí)現(xiàn)方式也有不同,從而體現(xiàn)出來(lái)的冗余性能也有差異。目前,主要在3 個(gè)方面影響同步時(shí)間和切換時(shí)間。
其一,控制器重邏輯組態(tài)功能塊是否能夠在線增刪及同步。為了實(shí)現(xiàn)控制邏輯組態(tài)功能塊的在線增刪,需要將主控制器的邏輯組態(tài)實(shí)時(shí)地同步到備控制器。當(dāng)在線修改控制器的邏輯組態(tài)時(shí),首先修改的是主控制器的邏輯組態(tài),而后將在線修改的內(nèi)容同步到備控制器,從而使主備控制器內(nèi)運(yùn)行的控制邏輯組態(tài)保持一致。這一在線修改的同步過(guò)程,會(huì)導(dǎo)致中間變量的同步時(shí)間變長(zhǎng),如果控制器的輸出值是需要中間變量運(yùn)算而來(lái)的,那么切換后過(guò)程控制站的輸出將受到影響。目前,有的廠家可以實(shí)現(xiàn)在線增刪功能塊,有的廠家不可以。無(wú)法實(shí)現(xiàn)在線修改的主備控制器,組態(tài)需要離線修改后下載到主備控制器,這樣就省去了組態(tài)冗余同步對(duì)時(shí)間和空間的占用,但同時(shí)也犧牲了在線修改功能。
其二,主備控制器是否能夠同時(shí)獲得IO 總線的數(shù)據(jù)。有的廠家在設(shè)計(jì)總線時(shí)備控制器是無(wú)法訪問(wèn)IO 總線的,只有當(dāng)發(fā)生切換后備控制器才能取得對(duì)IO 總線的控制權(quán)。主控制器每輪執(zhí)行控制邏輯前,將所有的輸入變量數(shù)據(jù)通過(guò)專(zhuān)用冗余網(wǎng)絡(luò)拷貝到備控制器,從而導(dǎo)致控制器的輸入數(shù)據(jù)是同步值而非實(shí)時(shí)值,從而影響切換后過(guò)程控制站的輸出。有的廠家在總線設(shè)計(jì)時(shí)主控制器對(duì)IO 總線的控制權(quán)是既可以讀取也可以寫(xiě)入,備用控制器對(duì)IO 總線只可以讀取不可以寫(xiě)入。這樣既能夠保證主備控制器均能實(shí)時(shí)采集到IO 卡件的數(shù)據(jù),同時(shí)保證IO 卡件的控制只受主控制器影響,不會(huì)出現(xiàn)雙主控制器的情況。當(dāng)控制器發(fā)生切換時(shí),備用控制器可以直接采用實(shí)時(shí)IO 總線上的數(shù)據(jù)進(jìn)行邏輯運(yùn)算,從而提高了輸入數(shù)據(jù)的實(shí)時(shí)性。
其三,備用控制器是否同步進(jìn)行邏輯運(yùn)算。有的廠家主控制器在進(jìn)行邏輯運(yùn)算的同時(shí),備控制器也在進(jìn)行邏輯運(yùn)算,有的廠家備控制器不進(jìn)行同步邏輯運(yùn)算。且備控制器不同步進(jìn)行運(yùn)算時(shí),發(fā)生切換時(shí)備用控制器先進(jìn)行初始化。若備控制器同步進(jìn)行運(yùn)算時(shí),發(fā)生切換時(shí)備控制器就省去了初始化的時(shí)間,從而備用控制器能夠快速接管進(jìn)行邏輯控制,從而減小了切換時(shí)間。
上述說(shuō)明表示,控制器的切換和同步時(shí)間因?yàn)樵O(shè)計(jì)方式不同而受影響,從而對(duì)火電廠一些實(shí)時(shí)性要求較高的設(shè)備的控制產(chǎn)生影響。所以,對(duì)控制器的切換時(shí)間和同步時(shí)間的測(cè)量顯得愈發(fā)重要,目前對(duì)不同控制系統(tǒng)控制器的切換和同步時(shí)間的測(cè)量還沒(méi)有一個(gè)統(tǒng)一標(biāo)準(zhǔn)。因此,對(duì)于使用分散控制系統(tǒng)的火電站或者企業(yè)來(lái)說(shuō),需要一個(gè)指導(dǎo)方法、設(shè)備來(lái)檢測(cè)此參數(shù)。
主備控制器切換時(shí)間和同步時(shí)間為毫秒級(jí),歷史數(shù)據(jù)記錄的時(shí)間分辨率通常為幾百毫秒級(jí)到秒級(jí),通過(guò)控制器數(shù)據(jù)的歷史趨勢(shì)是無(wú)法準(zhǔn)確判斷主備控制器的切換時(shí)間和同步時(shí)間的。控制器與IO 總線的通訊波特率為兆級(jí),輸出卡件的輸出分辨率為幾毫秒級(jí),故采用輸出卡件的通道輸出來(lái)測(cè)量切換時(shí)間和同步時(shí)間是實(shí)現(xiàn)測(cè)試的方向之一。
首先,搭建一個(gè)控制邏輯使控制器每個(gè)執(zhí)行周期產(chǎn)生斜坡信號(hào),且將此斜坡信號(hào)連接到模擬量輸出卡件(AO)輸出。輸出的斜坡信號(hào)與高速數(shù)據(jù)采集器連接,高速數(shù)據(jù)采集器的采集分辨率可達(dá)到0.1 ms。
冗余控制器未發(fā)生切換時(shí),AO 通道會(huì)周期性地輸出斜坡信號(hào)。當(dāng)冗余控制器發(fā)生切換時(shí),假定切換時(shí)間為T(mén)takeover,則表示備控制器需要花費(fèi)Ttakeover 的時(shí)間長(zhǎng)度來(lái)檢測(cè)并確定主控制器故障并執(zhí)行控制邏輯的接管,進(jìn)行控制邏輯的再輸出。假定同步時(shí)間為T(mén)sync,則表示備控制器中的數(shù)據(jù)同步值為主控制器Tsync 時(shí)間之前的,主控制器中的同步值需要花費(fèi)Tsync的時(shí)間傳遞到備控制器。
在控制器正常運(yùn)行時(shí),AO 通道持續(xù)輸出斜坡信號(hào),此時(shí)通過(guò)手動(dòng)切換方式使得冗余控制器發(fā)生切換。高速數(shù)據(jù)采集器采集到冗余控制器切換前后的AO 通道輸出,通過(guò)分析切換前后的斜坡波形變化來(lái)計(jì)算冗余控制器的切換時(shí)間和同步時(shí)間。高速數(shù)據(jù)采集器采集的波形大致如圖1。
圖1 中Ttakeover為冗余控制器的切換時(shí)間,T1 為冗余控制器切換前最后一個(gè)輸出的斜坡數(shù)值的起始時(shí)間,T2 為冗余控制器切換后第一個(gè)輸出的斜坡數(shù)值的起始時(shí)間。在切換時(shí)間內(nèi),AO 通道的輸出值始終保持不變,且數(shù)值為冗余控制器切換前最后一個(gè)輸出的斜坡數(shù)值。當(dāng)備控制器接管后,AO 通道的輸出值立即發(fā)生改變,且第一個(gè)輸出值為斜坡信號(hào)的同步到備用控制器的最新同步值。故可認(rèn)為切換后第一個(gè)斜坡數(shù)值的起始時(shí)間與切換前最后一個(gè)斜坡數(shù)值的起始時(shí)間的時(shí)間差值,即為切換時(shí)間,即Ttakeover=T2-T1。
圖1 中Δt 為冗余控制器的最小運(yùn)算周期,X1 為冗余控制器切換前最后一個(gè)斜坡數(shù)值,X2 為冗余控制器切換后第一個(gè)斜坡數(shù)值,ΔX 為每個(gè)最小運(yùn)算周期斜坡信號(hào)的增量。當(dāng)主控制器發(fā)生切換時(shí),冗余控制器切換前最后一個(gè)斜坡數(shù)值的AO 通道輸出保持不變。當(dāng)備控制器接管后,AO 信號(hào)首次輸出值為備控制器從主控制器獲得的最后一個(gè)同步值。切換前最后一個(gè)斜坡數(shù)值卻比該同步值更新。X2變化到X1 所要經(jīng)歷的時(shí)間,即為冗余控制器的同步時(shí)間。由于每Δt 的時(shí)間斜坡增量ΔX,故從X2 變化到X1 需要經(jīng)歷(X2-X1)/ΔX 個(gè)最小運(yùn)算周期。故Tsync=Δt×(X2-X1)/ΔX。
如果X2=X1,則Tsync=0,即主備控制器的同步時(shí)間為0,主控制器與備控制器的中間變量始終保持一致。當(dāng)備用控制器接管后,第一個(gè)輸出值與切換期間的保持值一致。故第一個(gè)輸出值的這段時(shí)間并不包括在冗余切換時(shí)間內(nèi)。此時(shí)的Ttakeover=T2-T1-Δt,即計(jì)算切換時(shí)間時(shí),需要將備控制器接管后的第一個(gè)周期的運(yùn)行時(shí)間減去。
按照上述原理分析,現(xiàn)采用如下方法來(lái)測(cè)量冗余控制器的冗余性能,即冗余控制器的切換時(shí)間和同步時(shí)間。
按圖2 搭建硬件測(cè)試平臺(tái)。一對(duì)冗余的控制處理單元包含有CPU-A 和CPU-B,其中一個(gè)為主控CPU 負(fù)責(zé)控制策略計(jì)算及控制輸出,另一個(gè)為輔控CPU,進(jìn)行熱機(jī)備用。輔控CPU 在主控CPU 故障、重啟或者停機(jī)時(shí),即刻接管成為主控CPU,原主控CPU 在恢復(fù)后,會(huì)變?yōu)檩o控CPU 進(jìn)行冗余熱備。主輔CPU 之間通過(guò)同步專(zhuān)線進(jìn)行狀態(tài)和數(shù)據(jù)同步。
AO 模件為模擬量輸出卡件,輸出為電流值。CPU-A和CPU-B 分別有通訊總線與AO 卡件相連。冗余控制器通過(guò)IO 總線僅擴(kuò)展1 塊AO 模件,這樣做的目的是為了提高控制器對(duì)此塊IO 卡件的通訊速度。該速度目前已可以達(dá)到1 ms/次,能實(shí)現(xiàn)CPU 中邏輯快速輸出到卡件。
高速數(shù)據(jù)采集器為獨(dú)立于控制系統(tǒng)之外的設(shè)備,可對(duì)任意信號(hào)源進(jìn)行數(shù)據(jù)采集。高速數(shù)據(jù)采集器可接收AO 的輸出信號(hào),可實(shí)現(xiàn)0.1 ms 分辨率的數(shù)據(jù)采集。由于高速數(shù)據(jù)采集器采樣頻率高,故顯示出來(lái)的斜坡信號(hào)為階梯狀。
在冗余控制器內(nèi)搭建斜坡信號(hào)輸出至按周期運(yùn)行的邏輯AO 模塊,斜坡信號(hào)和AO 模塊等邏輯模塊的運(yùn)算周期均設(shè)置為控制器可達(dá)到的最小值。當(dāng)前廠家的最小周期已可達(dá)到20 ms、10 ms 甚至5 ms。AO 輸出的斜坡信號(hào)為每計(jì)算周期累加固定值Δx,一般設(shè)置Δx=1。
圖1 切換時(shí)間和同步時(shí)間計(jì)算原理示意圖Fig.1 Schematic diagram of the calculation principle of switching time and synchronization time
圖2 測(cè)試硬件配置Fig.2 Test hardware configuration
在上位監(jiān)控切換按鈕或控制器上按鈕實(shí)現(xiàn)控制器切換。采用某廠家的分散控制系統(tǒng)進(jìn)行實(shí)際測(cè)試,按照?qǐng)D2 連接好電路。假如設(shè)置最小運(yùn)算周期為10 ms,每運(yùn)算周期斜坡信號(hào)增加1。當(dāng)控制器未發(fā)生切換時(shí),高速數(shù)據(jù)采集器采集到每10 ms 斜坡數(shù)據(jù)增加1,斜坡信號(hào)很平滑。當(dāng)發(fā)生切換時(shí),斜坡信號(hào)根據(jù)冗余性能的不同出現(xiàn)不同程度不平滑的情況,放大后可看到大致如圖1 的斜坡形態(tài)。根據(jù)高速數(shù)據(jù)采集器中的時(shí)標(biāo)和數(shù)值階梯,可計(jì)算出冗余控制器的切換時(shí)間Ttakeover和同步時(shí)間Tsync。由于切換時(shí)間和同步時(shí)間不是固定值,故需要進(jìn)行多次測(cè)量,獲取平均值來(lái)作為測(cè)試結(jié)果。
首先,不同廠家的分散控制系統(tǒng)均自帶AO 模件,此方法可廣泛應(yīng)用于各廠家的冗余控制器的測(cè)量;其次,該方法可以一次測(cè)量冗余控制器的切換時(shí)間和同步時(shí)間兩個(gè)性能,可以綜合評(píng)判冗余控制器的冗余性能。本檢測(cè)方法在廠家的設(shè)計(jì)過(guò)程中和電廠DCS 系統(tǒng)每年的可靠性檢測(cè)中都被實(shí)際應(yīng)用。
DCS 的冗余性能是確保系統(tǒng)長(zhǎng)期、可靠、穩(wěn)定運(yùn)行的一種有效手段和監(jiān)督機(jī)制。通過(guò)DCS 冗余性能測(cè)試,廠家可以及時(shí)了解冗余控制器的冗余性能,以具體數(shù)值橫向?qū)Ρ绕渌麖S家或者縱向?qū)Ρ刃吕舷到y(tǒng)的切換時(shí)間和同步時(shí)間指標(biāo),對(duì)不滿足需求的指標(biāo)對(duì)標(biāo)影響因素進(jìn)行軟硬件的重新配置和升級(jí)改造,從而滿足機(jī)組的安全、穩(wěn)定、可靠運(yùn)行的要求。