----------上海蔻湘自動化設備商行 本著“以人為本、科技先導、顧客滿意、持續改進”的工作方針,致力于工業自動化控制領域的產品開發、工程配套和系統集成,擁有豐富的自動化產品的應用和實踐經驗以及雄厚的技術力量,尤其以 PLC復雜控制系統、傳動技術應用、伺服控制系統、控備品備件、人機界面及網絡/軟件應用為公司的技術特長,幾年來,上海蔻湘在與德國 SIEMENS公司自動化與驅動部門的*緊密合作過程中,建立了良好的相互協作關系,在可編程控制器、交直流傳動裝置方面的業務逐年成倍增長,為廣大用戶提供了SIEMENS的技術及自動控制的解決方案。
山東省西門子PLC中國*總代理商 山東省西門子PLC中國*總代理商
S7-1200和S7-1500支持哪些錯誤處理OB
時間:2013-08-20 來源:電氣自動化技術網 編輯:編輯部 點擊:次 字體設置: 大 中 小
OB按優先級大小執行,如果所發生事件的優先級高于當前執行的OB ,則中斷此 OB 的執行。優先級相同的事件,將按發生的時間順序進行處理。
與S7-300/400比較,S7-1200/1500的錯誤處理有了較大的變化,本文主要介紹S7-1200/1500所支持的錯誤處理組織塊以及CPU對這些錯誤的響應。
1 S7-1200/1500的錯誤處理組織塊
1.1 S7-1200的錯誤處理組織塊
圖1-1
S7-1200不再支持同步錯誤中斷組織塊OB121,OB122 。
1.2 S7-1500的錯誤處理組織塊
圖1-2
S7-1200與S7-1500支持的錯誤處理組織塊的塊號與S7-300/400保持*,不同的是S7-1500除時間錯誤中斷組織塊OB80的優先級22不能改變外,其它的錯誤處理組織塊的優先級都可以修改。如診斷中斷OB82:
圖1-3
除了可以修改錯誤中斷OB的優先級,S7-1500的事件中斷(如硬件中斷)的優先級也可以修改,這樣用戶通過修改優先級可避免重要的中斷請求被其它中斷請求延遲或中斷。
2 CPU對會引起錯誤中斷的響應
CPU對錯誤處理組織塊的響應表:
錯誤處理OB | 故障類別 | ‘到達事件‘ 觸發 | ‘離去事件‘ 觸發 | OB沒有裝載CPU停機 | |||
S7-1200 | S7-1500 | S7-300/400 | |||||
OB80 | 超出大循環時間* | 異步 | 是 | 否 | 是 | 是 | 是 |
時間錯誤** | 否*** | 否*** | 是 | ||||
OB82 | 異步 | 是 | 是 | 否*** | 否*** | 是 | |
OB83 | 異步 | 是 | 是 | - | 否*** | 是 | |
OB86 | 異步 | 是 | 是 | - | 否*** | 是 | |
OB121 | 同步 | 是 | 否 | - | 是 | 是 | |
OB122 | 同步 | 是 | 否 | - | 否*** | 是 |
表2-1
注:
-: 不支持。
*: 超出大循環時間請求OB80時而下載OB80并不會使CPU停機,但如果一個周期內超時兩倍的循環監控時間 S7-1200/1500/300/400都會停機。
**: 由時間事件(如循環中斷,延時中斷,時間中斷)觸發的時間錯誤。
***:CPU不會停機,但會在診斷緩沖區產生診斷記錄。
3 GET_ERROR,GET_ERR_ID對PLC錯誤處理的影響
GET_ERROR和GET_ERR_ID是“獲取本地錯誤信息”指令,S7-1200/1500可通過編程用來查詢程序塊內出現的錯誤,這種程序執行中發生的錯誤就是所說的‘同步‘錯誤。
圖3-1
“獲取本地錯誤信息”指令支持塊內進行本地錯誤處理。將“獲取本地錯誤信息”插入塊
的程序代碼中時,如果發生錯誤,則將忽略所有預定義的系統響應。
GET_ERROR指令可以讀到詳細的錯誤信息,GET_ERR_ID只讀到其中的錯誤編號。
具體用法可參考軟件在線幫助或參考STEP7 Professional V12的手冊
因為GET_ERROR和GET_ERR_ID對PLC的同步錯誤處理的影響相同,下面只對GET_ERROR指令進行說明。
3.1 GET_ERROR對S7-1200同步錯誤處理的影響
因為S7-1200不支持OB121,OB122,在發生‘同步‘錯誤時,只在CPU的診斷緩沖區產生錯誤記錄:同時ERR LED閃爍
舉例:IO訪問錯誤
程序中訪問了外設地址ID1000:P,對S7-1200來說,ID1000是默認分配給高速計數通道HSC1,但是在實際的組態中沒有使能HSC1,那么就不存在這個外設。
圖3-2
S7-1200每執行一次這條指令,在診斷緩沖區產生一條錯誤記錄,同時ERR LED閃爍,直到 ”Tag_1”復位。
圖3-3
在發生錯誤指令的下面執行GET_ERROR:
圖3-4
錯誤仍然存在,但CPU不報錯,診斷緩沖區也不會產生任何相關錯誤記錄。
3.2 GET_ERROR對S7-1500同步錯誤處理的影響
與S7-1200比較,因為S7-1500支持兩個同步錯誤處理組織塊OB121,OB122,GET_ERROR對S7-1500的同步錯誤處理的影響還要考慮對OB121,OB122的影響。
本文的表2-1說明了S7-1500沒有執行GET_ERROR的情況下CPU的響應,下面對同步錯誤發生時執行GET_ERROR后CPU的響應。
S7-1500在發生兩種同步錯誤時在有無下載對應錯誤處理組織塊(程序錯誤:OB121,IO訪問錯誤:O122)的響應是不同的,但在發生這兩種錯誤的程序塊中執行GET_ERROR后,S7-1500將忽略所有預定義的對這個程序塊中出現的錯誤的系統響應,因此會產生以下結果:
n CPU ERR LED不會閃爍
n 診斷緩沖區不會產生錯誤記錄
n 不再觸發OB121和OB122,發生程序錯誤時即使不下載OB121 CPU也不會停機