PLC軟冗余系統(tǒng)軟硬件組成及實(shí)現(xiàn)原理
(2)
2.2 Profibus或ET200M主站故障分析
當(dāng)后2種故障發(fā)生時(shí),發(fā)生故障的ET200M從站的備IMl53將檢測(cè)到主IMl53故障,自動(dòng)將自己切換為主IMl53。主CPU將因?yàn)榕c故障IMl53失去連接而引發(fā)OB86(故障診斷)中斷,并在中斷中調(diào)用診斷模塊FCl02完成所有從站的切換,并將自己置為備用。然后,主CPU將故障信息發(fā)送到備CPU。備CPU收到故障信息后將自己切換成主CPU。這時(shí)的切換時(shí)間為
(3)
式中tR為OB86中斷響應(yīng)時(shí)間,CPU315—2DP為1 ms;tE為OB86執(zhí)行時(shí)問(wèn);ts為故障狀態(tài)發(fā)送時(shí)間;tD為數(shù)據(jù)接收完畢到備站切換成主站的時(shí)間間隔。
因?yàn)镺B86中只調(diào)用FCl02診斷模塊,所以tE由FCl02的執(zhí)行時(shí)間決定。為分析OB86中調(diào)用FCl02時(shí)FCl02的執(zhí)行順序,對(duì)FCl02進(jìn)行了適當(dāng)?shù)男薷囊员悴杉瘮?shù)據(jù)。這些修改主要包括:在FCl02的開(kāi)始加入采集狀態(tài)程序段;在跳轉(zhuǎn)指令處采集跳轉(zhuǎn)條件。在手動(dòng)觸發(fā)一些故障之后,對(duì)得到的數(shù)據(jù)進(jìn)行分析便得到了FCl02的執(zhí)行順序。在各個(gè)代碼段兩端插入讀系統(tǒng)時(shí)間功能塊,對(duì)FCl02的程序執(zhí)行時(shí)間進(jìn)行分段測(cè)量。結(jié)果如表1所示(表中,為SFC58執(zhí)行時(shí)間;t(2ss)8為2次SFC58執(zhí)行時(shí)間;t’為其余時(shí)間;t(PC102)為FCl02總執(zhí)行時(shí)間)。
測(cè)量結(jié)果中FCl02執(zhí)行時(shí)間并不等于各個(gè)時(shí)間段之和,這是因?yàn)樽x系統(tǒng)時(shí)間功能塊的測(cè)量精度只能達(dá)到l ms。但從表中仍不難看出FCl02執(zhí)行時(shí)間主要集中在調(diào)用系統(tǒng)功能SFC58向ET200M寫(xiě)數(shù)據(jù)(控制從站切換)的操作上,SFC58的調(diào)用次數(shù)等于ET200M從站個(gè)數(shù),因此可以近似得出tE=3 ms×ET200M從站個(gè)數(shù)。
式(3)中ts與主CPU的OB86中斷產(chǎn)生的時(shí)刻有很大關(guān)系。
如果主CPU在調(diào)用FB101執(zhí)行發(fā)送功能之前產(chǎn)生OB86中斷,則在發(fā)送數(shù)據(jù)時(shí)主CPU直接把故障狀態(tài)發(fā)送給備站,在這種情況下ts最短,為發(fā)送一次數(shù)據(jù)所用時(shí)間tt,即
(4)
若主CPU調(diào)用FBl01執(zhí)行完發(fā)送功能時(shí)產(chǎn)生OB86中斷,則主CPU要把先前數(shù)據(jù)發(fā)送完畢才能發(fā)送故障狀態(tài)到備站。在這種情況下,由于先前數(shù)據(jù)發(fā)送完畢的時(shí)刻不同,ts也會(huì)得到不同的值。
a.若先前數(shù)據(jù)發(fā)送完畢在主CPU調(diào)州FB 101執(zhí)行發(fā)送功能之前,將立即發(fā)送主站的狀態(tài),則
(5)
b.若先前數(shù)據(jù)發(fā)送完畢在主CPU執(zhí)行完發(fā)送功能之后,則要等到下個(gè)周期調(diào)用發(fā)送功能時(shí)才能發(fā)送主站的故障狀態(tài)。此時(shí),ts是最長(zhǎng)的。
(6)
式(3)中tD與備站接收完故障狀態(tài)的時(shí)刻有密切關(guān)系。
評(píng)論