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