siemens x
控制系統(tǒng)

西門子的S7-1200和S7-1500支持哪些錯誤處理OB

2025China.cn   2013年08月21日

  OB按優(yōu)先級大小執(zhí)行,如果所發(fā)生事件的優(yōu)先級高于當前執(zhí)行的OB ,則中斷此 OB 的執(zhí)行。優(yōu)先級相同的事件,將按發(fā)生的時間順序進行處理。

  與西門子的S7-300/400比較,S7-1200/1500的錯誤處理有了較大的變化,本文主要介紹西門子S7-1200/1500所支持的錯誤處理組織塊以及CPU對這些錯誤的響應。S7-300/400用于錯誤處理的組織塊,請參考鏈接:

  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對錯誤處理組織塊的響應表:

  表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訪問錯誤

  程序中訪問了外設地址ID1000:P,對S7-1200來說,ID1000是默認分配給高速計數(shù)通道HSC1,但是在實際的組態(tài)中沒有使能HSC1,那么就不存在這個外設。

  圖3-2

  S7-1200每執(zhí)行一次這條指令,在診斷緩沖區(qū)產(chǎn)生一條錯誤記錄,同時ERR LED閃爍,直到 ”Tag_1”復位。

  

圖3-3

  在發(fā)生錯誤指令的下面執(zhí)行GET_ERROR:

  圖3-4

  錯誤仍然存在,但CPU不報錯,診斷緩沖區(qū)也不會產(chǎ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)生以下結果:

   ERR LED不會閃爍

  2.診斷緩沖區(qū)不會產(chǎn)生錯誤記錄

  3.不再觸發(fā)OB121和OB122,發(fā)生程序錯誤時即使不下載OB121 CPU也不會停機

(轉載)

標簽:西門子 S7 | 1200 CPU 組織塊 我要反饋