西門(mén)子PLC停機軟件原因綜述
----
使cpu進(jìn)入stop的情況很多,比如地址調用錯誤,沒(méi)有下載需要DB塊,編程錯誤等等,如果你想避免錯誤時(shí)不使CPU進(jìn)入停止狀態(tài),你可以在程序中加入特殊的OB塊,則出現相應問(wèn)題,調用相應的OB塊,雖然里面沒(méi)程序,PLC將對錯誤錯誤不作任何處理,繼續運行。否則PLC將進(jìn)入停機狀態(tài)可,比如:
OB73通訊冗余出錯OB當容錯S7連接中發(fā)生首次冗余丟失時(shí),H CPU的操作系統將調用OB73(只有在S7通訊中才會(huì )有容錯S7連接。更多信息,請參見(jiàn)“S7-400 H可編程控制器,容錯系統!)。如果其它容錯S7連接發(fā)生了冗余丟失,則不會(huì )再有OB73啟動(dòng)。直到為具有容錯功能的所有S7連接恢復冗余后,才會(huì )出現另一個(gè)OB73啟動(dòng)。如果發(fā)生了啟動(dòng)事件且OB73沒(méi)有編程,CPU不會(huì )轉為STOP模式。
OB80時(shí)間出錯組織塊無(wú)論何時(shí)執行OB時(shí)出錯,S7-300 CPU的操作系統將調用OB80。此類(lèi)錯誤包括:超出周期時(shí)間、執行OB時(shí)出現確認錯誤、提前了時(shí)間而使OB的啟動(dòng)時(shí)間被跳過(guò)、在CiR后恢復RUN模式。例如,如果在上一次調用之后發(fā)生了某一周期性中斷OB的啟動(dòng)事件,而同一OB此時(shí)仍在執行中,則操作系統將調用OB80。如果OB80尚未編程,則CPU將轉為STOP模式?梢允褂肧FC 39至42禁用或延遲和重新啟用時(shí)間出錯OB。
OB81電源出錯組織塊
只要發(fā)生由錯誤或故障所觸發(fā)的事件,而此錯誤或故障又與電源(僅在S7-400上)或備用電池(當事件進(jìn)入和離開(kāi)時(shí))有關(guān),則S7-300 CPU的操作系統調用OB81。在S7-400中,如果已使用BATT.INDIC開(kāi)關(guān)激活了電池測試功能,則只有在出現電池故障時(shí)才會(huì )調用OB81。如果OB81沒(méi)有編程,則CPU不會(huì )轉為STOP模式?梢允褂肧FC 39至42禁用或延遲,并重新啟用電源出錯OB。
OB82診斷中斷組織塊
如果具有診斷功能的模塊(已為其啟用了診斷中斷)檢測到錯誤,則它會(huì )輸出一個(gè)診斷中斷的請求給CPU(當事件進(jìn)入和離開(kāi)時(shí))。則操作系統調用OB82。OB82的局部變量包含邏輯基址和四字節的故障模塊的診斷數據(請參見(jiàn)下表)。如果OB82尚未編程,則CPU轉為STOP模式?梢允褂肧FC 39至42禁用或延遲,并重新啟用診斷中斷OB。
OB83插入/刪除模塊中斷組織塊
在下列情況下,CPU操作系統會(huì )調用OB 83:
? 插入/刪除已組態(tài)模塊后
? 在STEP 7下修改模塊參數以及在運行期間將更改下載至CPU后
可借助SFC 39至42禁用/延遲/啟用插入/刪除中斷OB。
OB84CPU硬件故障組織塊
在下列情況下,CPU中的OS將調用OB84:
? 已檢測到并更正了內存出錯之后
? 對于S7-400H:如果兩個(gè)CPU之間的冗余鏈接的性能下降
可以使用SFC 39至42禁用或延遲CPU硬件出錯OB,然后再次啟用它。
OB85優(yōu)先級出錯組織塊
只要發(fā)生下列事件之一,CPU的操作系統即調用OB85:
? 尚未裝載的OB(OB81除外)的啟動(dòng)事件。
? 操作系統訪(fǎng)問(wèn)模塊時(shí)出錯。
? 在系統更新過(guò)程映像期間出現I/O訪(fǎng)問(wèn)錯誤(如果由于組態(tài)原因,未禁止OB85的調用)。
OB86機架故障組織塊
只要在分布式I/O (PROFIBUS DP或PROFInet IO)中檢測到中央擴展機架(不帶S7-300)、DP主站系統或站故障(進(jìn)入事件與離開(kāi)事件時(shí)),CPU的操作系統調用OB86。如果OB86尚未編程,當檢測到此種類(lèi)型的出錯時(shí),CPU將轉為STOP模式?墒褂肧FC 39至42禁用或延遲,并重新啟用OB86。
OB87通訊出錯組織塊
只要發(fā)生由通訊出錯導致的事件,CPU的操作系統就會(huì )調用OB87。
如果OB87尚未編程,CPU不會(huì )轉為STOP模式?梢允褂肧FC 39至42禁用或延遲,并重新啟用通訊出錯OB。
OB 88處理中斷OB
程序塊執行被中止后,CPU操作系統將調用OB 88。導致此中斷的原因可能是:
? 同步出錯的嵌套深度過(guò)大
? 塊調用(U堆棧)的嵌套深度過(guò)大
? 分配本地數據時(shí)出錯
如果未對OB 88編程且程序塊執行被中止,則CPU進(jìn)入STOP模式
(事件ID W#16#4570)。如果在優(yōu)先級28下中止了程序塊執行,則CPU進(jìn)入STOP模式?山柚赟FC 39至42禁用、延遲和啟用處理中斷OB。
OB121編程出錯組織塊
只要發(fā)生同程序處理相關(guān)的錯誤所導致的事件,CPU的操作系統即調用OB121。例如,如果用戶(hù)程序調用了尚未裝載到CPU中的塊,將會(huì )調用OB121。
OB122I/O訪(fǎng)問(wèn)出錯組織塊
只要在訪(fǎng)問(wèn)模塊上的數據時(shí)出錯,CPU的操作系統即調用OB122。例如,如果在訪(fǎng)問(wèn)I/O模塊上的數據時(shí),CPU檢測到讀取錯誤,操作系統將調用OB122.