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