PLC軟冗余系統軟硬件組成及實(shí)現原理

2.2 Profibus或ET200M主站故障分析
當后2種故障發(fā)生時(shí),發(fā)生故障的ET200M從站的備IMl53將檢測到主IMl53故障,自動(dòng)將自己切換為主IMl53。主CPU將因為與故障IMl53失去連接而引發(fā)OB86(故障診斷)中斷,并在中斷中調用診斷模塊FCl02完成所有從站的切換,并將自己置為備用。然后,主CPU將故障信息發(fā)送到備CPU。備CPU收到故障信息后將自己切換成主CPU。這時(shí)的切換時(shí)間為

式中tR為OB86中斷響應時(shí)間,CPU315—2DP為1 ms;tE為OB86執行時(shí)問(wèn);ts為故障狀態(tài)發(fā)送時(shí)間;tD為數據接收完畢到備站切換成主站的時(shí)間間隔。
因為OB86中只調用FCl02診斷模塊,所以tE由FCl02的執行時(shí)間決定。為分析OB86中調用FCl02時(shí)FCl02的執行順序,對FCl02進(jìn)行了適當的修改以便采集數據。這些修改主要包括:在FCl02的開(kāi)始加入采集狀態(tài)程序段;在跳轉指令處采集跳轉條件。在手動(dòng)觸發(fā)一些故障之后,對得到的數據進(jìn)行分析便得到了FCl02的執行順序。在各個(gè)代碼段兩端插入讀系統時(shí)間功能塊,對FCl02的程序執行時(shí)間進(jìn)行分段測量。結果如表1所示(表中,為SFC58執行時(shí)間;t(2ss)8為2次SFC58執行時(shí)間;t’為其余時(shí)間;t(PC102)為FCl02總執行時(shí)間)。
測量結果中FCl02執行時(shí)間并不等于各個(gè)時(shí)間段之和,這是因為讀系統時(shí)間功能塊的測量精度只能達到l ms。但從表中仍不難看出FCl02執行時(shí)間主要集中在調用系統功能SFC58向ET200M寫(xiě)數據(控制從站切換)的操作上,SFC58的調用次數等于ET200M從站個(gè)數,因此可以近似得出tE=3 ms×ET200M從站個(gè)數。
式(3)中ts與主CPU的OB86中斷產(chǎn)生的時(shí)刻有很大關(guān)系。
如果主CPU在調用FB101執行發(fā)送功能之前產(chǎn)生OB86中斷,則在發(fā)送數據時(shí)主CPU直接把故障狀態(tài)發(fā)送給備站,在這種情況下ts最短,為發(fā)送一次數據所用時(shí)間tt,即

若主CPU調用FBl01執行完發(fā)送功能時(shí)產(chǎn)生OB86中斷,則主CPU要把先前數據發(fā)送完畢才能發(fā)送故障狀態(tài)到備站。在這種情況下,由于先前數據發(fā)送完畢的時(shí)刻不同,ts也會(huì )得到不同的值。
a.若先前數據發(fā)送完畢在主CPU調州FB 101執行發(fā)送功能之前,將立即發(fā)送主站的狀態(tài),則

b.若先前數據發(fā)送完畢在主CPU執行完發(fā)送功能之后,則要等到下個(gè)周期調用發(fā)送功能時(shí)才能發(fā)送主站的故障狀態(tài)。此時(shí),ts是最長(cháng)的。

式(3)中tD與備站接收完故障狀態(tài)的時(shí)刻有密切關(guān)系。
評論