摘要:本文給出了PLC軟冗余系統的原理及軟硬件組成。分析了PLC軟冗余系統在主CPU、電源、接口模塊和數據總線等可能發生的各種故障及引發的軟件中斷,給出了主備切換過程,給出了系統相應的主備切換時間極限值的估算公式。分析了PLC軟冗余系統的數據同步過程,得出了數據同步時間的估算公式。因此給出了軟冗余系統的使用條件。
關鍵詞:可編程控制器 冗余 主備切換
0 引言
在工業自動化系統中大量選用可編程邏輯控制器(PLC)作為控制器,隨著技術的發展又組建冗余系統進一步提高系統的可靠性。目前冗余的分類方式很多,而采用PLC冗余方式的有兩種,即軟冗余和硬亢余。西門子公司在軟、硬冗余兩方面均給出了解決方案。而基于硬冗余的可靠性高,但構建系統成本也較高。而基于S7—300或S7—400的軟冗余是一種成本低又能提高可靠性的方案。目前,軟冗余系統已經在冶金、交通、電力、化工、污水處理等工業控制工程中得到了較廣泛的應用[1-6]。但是對于軟冗余的性能仍沒有進行系統的研究。本文針對西門子PLC介紹了軟冗余系統的實現原理,分析了主備切換時間和數據同步時間,為控制系統設計提供參考依據。
1 軟冗余實現原理
系統運行過程中兩個CPU同時啟動和運行,但是在正常運行時只有主CPU發出控制命令,而備用CPU檢測主CPU狀態和記錄主CPU發出的命令,當主CPU發生故障時能夠延續當時的實際狀態接替主CPU發出執行命令。與主CPU通信的IM153—2模塊處于激活狀態時主CPU能訪問I/0模塊。當系統發生特定故障時,系統可以實現主備切換,備站接替主站繼續運行。這些故障包括:主機架上的電源、背板總線等故障;CPU故障;Profibus現場總線網絡故障;ET200M站的通信接口模塊IMl53故障。
PLC軟冗余系統要實現軟冗余功能,需要從程序中調用冗余軟件包的功能模塊,這主要包括:初始化冗余系統運行參數的FCl00模塊;故障診斷、主備切換的FCl02模塊;發送/接收數據的FBl03模塊;調用FBl03進行數據同步、分析系統狀態的FBl01模塊。
在PLC每個循環執行周期中,主系統先調用FBl01接收并分析備系統狀態,然后執行冗余程序,最后再調用FBl01將需要同步的數據發送到備系統。而備系統首先調用FBl01接收并分析主系統狀態,跳過冗余程序,然后將備系統狀態發送到主系統。需注意的是,實現冗余功能的最重要模塊FBl01執行時先分析主備系統狀態,然后再發送數據(或接收數據)。由于軟件是順序執行,將導致接收到對方故障信息后,對故障處理的滯后。軟件順序執行機制是導致軟冗余切換時間較長的一個重要原因。
2 主備站切換時間分析
主備切換時間是指主站系統發生故障后被檢測、然后切換到備站系統接替主站工作所需要的時間。
2.1 主CPU或主機架電源、背板總線故障分析 當前兩種故障發生時,ET200M站的主通信接口模塊IMl53與主CPU失去連接,自動在主備通信接口模塊IM153之間實現切換。同時備CPU在向主CPU發送備站狀態時將檢測到同步線數據傳輸錯誤,繼而主動切換成主CPU。
由于故障需要被檢測到才可以主備切換,而當主CPU故障發生時備CPU剛調用FB101執行完發送功能,那么備CPU要在下一個周期調用發送功能時才能檢測到與諸CPU通信連接故障,并且還要等待調用接收功能時備CPU切換成主CPU。此時主備切換時間t最長。
t=Tcy-2TFB101 (1)
式中t為主備切換時間;Tcy為PLC循環掃描周期;TFB101 為冗余功能塊FBl01執行時間。
2.2 Profibus或ET200M主站故障分析 當Profibus或ET200M主站發生故障時,發生故障的ET200M從站的備IMl53將檢測到主IMl53故障,自動將自己切換為主IMl53。主CPU將因為與故障IMl53失去連接而引發OB86(故障診斷)中斷,并在中斷中調用診斷模塊FCl02完成所有從站的切換,并將自己置為備用。然后,主CPU將故障信息發送到備CPU。備CPU收到故障信息后將自己切換成主CPU。這時的切換時間為
t=TR+tE +tS+tD(2)
式中TR為OB86中斷響應時間;tE為OB86執行時間;tS為故障狀態發送時間;tD為故障狀態數據接收完畢到備站切換成主站的時間間隔。
因為OB86中只調用FCl02診斷模塊,所以tE由FCl02的執行時間決定。經過數據測量可以知道FCl02執行時間主要集中在調用系統功能SFC58向ET200M寫數據(控制從站切換)的操作上,SFC58的調用次數等于ET200M從站個數,因此可以近似得出
tE=TE×ET200M的個數
式中TE為SFC58調用一次的時間,測量得出TE一般為3ms。
故障狀態發送時間tS與主CPU的OB86中斷產生的時刻有很大關系。如果主CPU在調用FB101執行發送功能之前產生OB86中斷,則在發送數據時主CPU直接把故障狀態發送給備站,在這種情況下TS最短。但是若主CPU調用FBl01執行完發送功能時恰好產生OB86中斷,則主CPU要把先前數據發送完畢才能發送故障狀態到備站。并且若先前數據發送完畢在主CPU執行完發送功能之后,則要等到下個周期調用發送功能時才能發送主站的故障狀態。這時,故障狀態發送時間tS最長
tS=2Tt+Tcy -TFB101(3)
其中Tt為發送一次數據所用的時間。
數據接收完畢到備站切換成主站的時間間隔tD與備站接收完故障狀態的時刻有關。若數據接收完成是在備CPU調用FBl01執行接收功能之后,則備CPU要等到下個周期調用接收功能時才能獲得主站的狀態,并在調用發送功能時切換成主CPU。此時tD最大
tD=Tcy (4)
由以上分析可知,主備切換時間最長為
t=TR+tE +tS+tD=TR+tE+(2Tt+Tcy -TFB101)+Tcy
=TR+tE +2Tt+2Tcy -TFB101
=TR+TE ×ET200M的個數+2Tt+2Tcy -TFB101 (5)
以上所涉及的時間中,tE、Tt和Tcy所占比重最大,其余時間經測量均約為1ms。如果要減小主備切換時間,必須減小tE、Tt和Tcy。要減小tE就要減少ET200M從站數量,即在滿足要求的情況下減少I/0數量。減少Tt最好的方法是選擇主站與備站之間較快的數據同步通信方式。如Profibus總線方式比西門子PLC自帶的MPI方式能在較短的時間內發送更多個字節數據。但前一種方式需要另外配置通信模塊。Tcy為PLC循環掃描周期,與用戶程序長度有關。典型的中等規模的PLC控制系統,經計算主備切換時間的極限值范圍約為150-500ms。
3 使用條件
由以上分析可知,可以使用軟冗余的工業現場要求一次最短控制時間T不能特別短[10-13],最短控制時間T太短能夠造成軟冗余的切換時間不能滿足要求。最短控制時間T滿足:
T≥max{TR+TE ×ET200M的個數+2Tt+2Tcy -TFB101,Tcy -2TFB101} (8)
因此在實際中不能滿足式(8)條件的工業現場就需要減少ET200
M從站個數,即將工業現場分成幾個冗余控制系統,這需要考慮實際的場合進行合理的分解。在一次軟冗余最大切換時間與最短控制時間之差為較小的正數時,可以考慮減少數據同步時間的方法以便能夠滿足條件,即將一次軟冗余最大切換時間與最短控制時間的差變為負數。
4 結論
在控制系統出現故障時,以往只能停機或手動進行修理,這樣就要求系統的運行較慢才可以實現,本文利用PLC軟冗余系統,一旦特定故障發生時,系統通過軟件的快速反應實現主備切換機制,使備站接替主站保持系統繼續運行,避免系統停止運行后的修理和調節。本系統在主備切換完成后,備用系統以與原系統同步數據執行控制任務,在系統實時性要求不嚴格的情況下實現系統的正常運行。本軟冗余系統主備切換的功能,既能夠提高系統的可靠性、又可以降低成本。本系統由于在主備切換過程中系統需要一定的切換時間,使得系統暫時失去了控制功能,故軟冗余系統對于實時性要求非常高的控制場合,即切換時間大于控制命令時間的控制系統不適合。
參考文獻:
[1]徐竟天,李樹剛,張乃祿,朱暉,馮勁.基于S7-300軟冗余的鉆機自動送鉆控制系統設計[J].石油機械.ISTIC PKU-2009年9期.
[2]王困勇.馬思樂.基于s7-300與WINCe的污水處理控制系統[J].中國儀器儀表.2007(4):53-56.
[3]張筱萱.西門子S7-300 PLC軟冗余系統在重催氣壓機上的應用[J].蘭州石化職業技術學院學報.-2002年3期.