商鋪名稱:潯之漫智控技術(上海)有限公司
聯系人:顏克成(先生)
聯系手機:
固定電話:
企業郵箱:1913278991@qq.com
聯系地址:上海市松江區廣富林路4855弄52號3樓
郵編:201600
聯系我時,請說是在焊材網上看到的,謝謝!
西門子內存卡6ES7953-8LJ31-0AA0是微型存儲卡 用于 S7-300/C7/ET 200, 3,3V Nflash,512 KB
![]()
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指令進行說明。
“獲取本地錯誤信息”指令支持塊內進行本地錯誤處理。將“獲取本地錯誤信息”插入塊
的程序代碼中時,如果發生錯誤,則將忽略所有預定義的系統響應。
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”復位。
S7-1200每執行一次這條指令,在診斷緩沖區產生一條錯誤記錄,同時ERR LED閃爍,直到 ”Tag_1”復位。
圖3-3
在發生錯誤指令的下面執行GET_ERROR:
在發生錯誤指令的下面執行GET_ERROR:
圖3-4
錯誤仍然存在,但CPU不報錯,診斷緩沖區也不會產生任何相關錯誤記錄。
錯誤仍然存在,但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也不會停機