西門子現(xiàn)場總線6XV1830-OEH1O超出大循環(huán)時間請求OB80時而下載OB80并不會使CPU停機(jī),但如果一個周期內(nèi)超時兩倍的循環(huán)監(jiān)控時間 S7-1200/1500/300/400都會停機(jī)。
**: 由時間事件(如循環(huán)中斷,延時中斷,時間中斷)觸發(fā)的時間錯誤。
***:CPU不會停機(jī),但會在診斷緩沖區(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)進(jìn)行本地錯誤處理。將“獲取本地錯誤信息”插入塊
的程序代碼中時,如果發(fā)生錯誤,則將忽略所有預(yù)定義的系統(tǒng)響應(yīng)。
GET_ERROR指令可以讀到詳細(xì)的錯誤信息,GET_ERR_ID只讀到其中的錯誤編號。
具體用法可參考軟件在線幫助或參考STEP7 Professional V12的手冊
因?yàn)镚ET_ERROR和GET_ERR_ID對PLC的同步錯誤處理的影響相同,下面只對GET_ERROR指令進(jìn)行說明。
3.1 GET_ERROR對S7-1200同步錯誤處理的影響
因?yàn)镾7-1200不支持OB121,OB122,在發(fā)生‘同步‘錯誤時,只在CPU的診斷緩沖區(qū)產(chǎn)生錯誤記錄:同時ERR LED閃爍
舉例:IO訪問錯誤
程序中訪問了外設(shè)地址ID1000:P,對S7-1200來說,ID1000是默認(rèn)分配給高速計數(shù)通道HSC1,但是在實(shí)際的組態(tài)中沒有使能HSC1,那么就不存在這個外設(shè)。
圖3-2
S7-1200每執(zhí)行一次這條指令,在診斷緩沖區(qū)產(chǎn)生一條錯誤記錄,同時ERR LED閃爍,直到 ”Tag_1”復(fù)位。
圖3-3
在發(fā)生錯誤指令的下面執(zhí)行GET_ERROR:
圖3-4
錯誤仍然存在,但CPU不報錯,診斷緩沖區(qū)也不會產(chǎn)生任何相關(guān)錯誤記錄。
3.2 GET_ERROR對S7-1500同步錯誤處理的影響
與S7-1200比較,因?yàn)镾7-1500支持兩個同步錯誤處理組織塊OB121,OB122,GET_ERROR對S7-1500的同步錯誤處理的影響還要考慮對OB121,OB122的影響。
本文的表2-1說明了S7-1500沒有執(zhí)行GET_ERROR的情況下CPU的響應(yīng),下面對同步錯誤發(fā)生時執(zhí)行GET_ERROR后CPU的響應(yīng)。
S7-1500在發(fā)生兩種同步錯誤時在有無下載對應(yīng)錯誤處理組織塊(程序錯誤:OB121,IO訪問錯誤:O122)的響應(yīng)是不同的,但在發(fā)生這兩種錯誤的程序塊中執(zhí)行GET_ERROR后,S7-1500將忽略所有預(yù)定義的對這個程序塊中出現(xiàn)的錯誤的系統(tǒng)響應(yīng),因此會產(chǎn)生以下結(jié)果:
n CPU ERR LED不會閃爍
n 診斷緩沖區(qū)不會產(chǎn)生錯誤記錄
n 不再觸發(fā)OB121和OB122,發(fā)生程序錯誤時即使不下載OB121 CPU也不會停機(jī)
西門子現(xiàn)場總線6XV1830-OEH1O