08_處理同步和異步錯誤.ppt_第1頁
08_處理同步和異步錯誤.ppt_第2頁
08_處理同步和異步錯誤.ppt_第3頁
08_處理同步和異步錯誤.ppt_第4頁
08_處理同步和異步錯誤.ppt_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、,處理同步和異步錯誤,處理異步錯誤,異步錯誤并未對應(yīng)到程序的某個特定位置,例如,它們可同程序的處理過程異步出現(xiàn)。,1) 僅適用于 S7-400,2) 非Stop w/o Error OB,舉例,錯誤類型,時間錯誤,超出最大掃描時間,電源錯誤,后備電源故障,診斷中斷,可診斷模塊的輸入斷線,刪除/插入模塊中斷,在運行模式下將一個 S7-400 信號模塊移除,CPU 硬件錯誤,在MPI 接口出現(xiàn)故障信號電平,程序順序錯誤,更新過程映像出現(xiàn)錯誤 (模塊有故障),機架錯誤,分布式機架上電源故障,通信錯誤,不正確的消息代碼,錯誤 OB,OB 80,OB 81 2),OB 82,OB 83 1),OB 84

2、 1),OB 85,OB 86 1),OB 87,處理故障組織塊,為了在發(fā)生錯誤時抑制 CPU STOP,傳送一個空的故障組織塊 您可以在Error OB中編寫預(yù)期的響應(yīng),并根據(jù)需要在執(zhí)行 Error OB之后使用系統(tǒng)功能 SFC 46 請求系統(tǒng)處于 Stop 狀態(tài) 在故障組織塊的啟動信息中存有一個附加錯誤標(biāo)識符,可在程序中檢驗。 在線幫助或者系統(tǒng)和標(biāo)準(zhǔn)功能手冊中詳細介紹了故障組織塊 將OB傳送到一個不支持該OB的CPU時,將被該CPU拒絕并伴隨一個錯誤消息。,異步錯誤 OB 舉例,OB81:Error OB: 電源故障 Network 1:電池故障,到來的事件 L#OB81_FLT_ID/

3、加載錯誤標(biāo)識符 LB#16#22/ 標(biāo)識符: CR 中的電池故障 =I =M81.1/ 設(shè)置存儲器標(biāo)志位 L#OB81_EV_CLASS/ 標(biāo)識符: 到來,離去 LB#16#39/ 標(biāo)識符: 到來事件 =I =M81.2/ 存儲器標(biāo)志位到來事件 AM81.1/ 電池故障和 AM81.2/ 到來事件 SM81.0/ 將存儲器標(biāo)志位設(shè)為錯誤顯示/ Network 2:當(dāng)電池恢復(fù)正常后,復(fù)位輔助存儲器標(biāo)志位 L#OB81_EV_CLASS/ 標(biāo)識符: 到來,離去 LB#16#38/ 標(biāo)識符: 離去 =I RM81.0/ 復(fù)位存儲器標(biāo)志位,處理同步錯誤,同步錯誤直接定位到用戶程序中的一個位置 算術(shù)指令

4、中的錯誤(溢出、無效的實數(shù)數(shù)據(jù))設(shè)置狀態(tài)位 處理 STL語句時的錯誤(同步錯誤) 調(diào)用同步錯誤 OB,舉例,錯誤類型,編程錯誤,調(diào)用 CPU 中不存在的塊,訪問錯誤,直接訪問一個有缺陷的或者不存在的模塊,錯誤 OB,OB 121,OB 122,編程錯誤 OB121 的啟動信息,數(shù)據(jù)類型,變量名,OB121_EV_CLASS,BYTE,OB121_SW_FLT,BYTE,解釋,賦值,B#16#25=調(diào)用編程錯誤 OB121,錯誤代碼(參見文本),OB121_PRIORITY,BYTE,OB121_OB_NUMBR,BYTE,其中發(fā)生錯誤的優(yōu)先級,OB 編號(B#16#79),OB121_BLK_

5、TYPE,BYTE,OB121_RESERVED_1,BYTE,中斷塊的類型(僅適用S7-400 ) OB: B#16#88, DB: B#16#8A, FB: B#16#8E, FC: B#16#8C,錯誤碼的補充(參見文本),OB121_FLT_REG,WORD,OB121_BLK_NUM,WORD,OB121:錯誤源,發(fā)生錯誤的塊的號碼,OB121_PRG_ADDR,WORD,OB121_DATE_TIME,DT,引發(fā)錯誤的塊中的錯誤地址(僅適用 S7-400),發(fā)生編程錯誤時的時間,訪問錯誤 OB122 的啟動信息,數(shù)據(jù)類型,變量名稱,OB122_EV_CLASS,BYTE,OB122

6、_SW_FLT,BYTE,解釋,賦值,B#16#29=調(diào)用訪問錯誤,錯誤代碼(可能的取值:B#16#42、B#16#43、 B#16#44、B#16#45),OB122_PRIORITY,BYTE,OB122_OB_NUMBR,BYTE,其中發(fā)生錯誤的優(yōu)先級,OB 編號(B#16#80),OB122_BLK_TYPE,BYTE,OB122_MEM_AREA,BYTE,中斷塊的類型(僅適用于 S7-400) OB: B#16#88, DB: B#16#8A, FB: B#16#8E, FC: B#16#8C,錯誤碼的補充(參見文本),OB122_FLT_REG,WORD,OB122_BLK_NU

7、M,WORD,OB122:發(fā)生錯誤處的地址標(biāo)識符,其中發(fā)生錯誤的塊的號碼,OB122_PRG_ADDR,WORD,OB122_DATE_TIME,DT,引發(fā)錯誤的塊中的錯誤地址(僅適用 S7-400),發(fā)生編程錯誤時的時間,屏蔽同步錯誤,同步錯誤 OB 的缺點: 用于過程管理和錯誤處理的代碼分布在至少兩個塊中 后續(xù)更改或維護方面的問題 較理想的情況: 用于過程管理和錯誤處理的代碼位于同一個塊中 屏蔽同步錯誤: 在“緊急”指令之前: SFC 36 MSK_FLT: 屏蔽同步錯誤 (OB12x 禁止調(diào)用) 執(zhí)行“緊急”指令 檢查是否有錯誤發(fā)生SFC 38 READ_ERR: 讀 Error Reg

8、ister(錯誤寄存器) OB12x 再次開放調(diào)用:SFC 37 DMSK_FLT: 解除屏蔽同步錯誤,SFC 36 屏蔽同步錯誤,MSK_FLT,EN,ENO,PRGFLT_SET_MASK,ACCFLT_SET_MASK,RET_VAL,?.?,PRGFLT_MASKED,?.?,ACCFLT_MASKED,?.?,?.?,?.?,參數(shù)聲明數(shù)據(jù)類型內(nèi)存區(qū)域解釋 PRGFLT_SET_MASKINPUTDWORD I, Q, M, D, L, Const.新(附加的)編程錯誤過濾器 ACCFLT_SET_MASKINPUTBYTE I, Q, M, D, L, Const.新附加訪問故障過濾

9、器 RET_VALOUTPUTINT I, Q, M, D, LSFC 返回值,001:新過濾器同已有的過器濾重疊 PRGFLT_MASKEDOUTPUTDWORD I, Q, M, D, L完成編程錯誤過濾 ACCFLT_MASKEDOUTPUTDWORD I, Q, M, D, L完成訪問錯誤過濾,編程錯誤過濾器的結(jié)構(gòu),BCD 轉(zhuǎn)換錯誤,范圍長度錯誤,讀,范圍長度錯誤,寫,范圍錯誤,讀,范圍錯誤,寫,計時器號錯誤,計數(shù)器號錯誤,未對齊,讀,未對齊,寫,未定義,寫錯誤 DB,寫錯誤實例 DB,塊編號錯誤 DB,塊編號錯誤 DI,塊編號錯誤 FC,塊編號錯誤 FB,DB 未加載,FC 未加載,

10、FB 未加載,注: 輸出參數(shù) RGFLT_MASKED 的相應(yīng)位的設(shè)置如下:Value(值) = 1: 屏蔽錯誤。 Value(值) = 0: 不屏蔽錯誤。,訪問錯誤過濾器的結(jié)構(gòu),31 30 29 . . . 7 6 5 4 3 2 1 0,I/O 讀訪問錯誤,僅對于 S7-400:I/O 訪問錯誤,指讀取不存在的模塊或者 重復(fù)訪問,未定義,I/O 寫訪問錯誤,僅對于S7-400:向不存在的模塊寫入或者重復(fù)訪問而引發(fā) I/O訪問錯誤,. . .,注:輸出參數(shù) ACCFLT_MASKED 的相應(yīng)位 設(shè)置如下: Value = 1: 屏蔽錯誤。 Value = 0: 不屏蔽錯誤。 未定義的位的值為

11、“1”。,SFC 37 解除同步錯誤屏蔽,DMSK_FLT,EN,ENO,PRGFLT_RESET_MASK,ACCFLT_RESET_MASK,RET_VAL,?.?,PRGFLT_MASKED,?.?,ACCFLT_MASKED,?.?,?.?,?.?,參數(shù)聲明數(shù)據(jù)類型內(nèi)存區(qū)域解釋 PRGFLT_RESET_MASKINPUTDWORD I, Q, M, D, L, Const.編程錯誤過濾器復(fù)位 ACCFLT_RESET_MASKINPUTBYTE I, Q, M, D, L, Const.訪問錯誤過濾器復(fù)位 RET_VALOUTPUTINT I, Q, M, D, LSFC返回值,W#

12、16#0001:新的過濾器中包含已存貯的 過濾未設(shè)置的位 PRGFLT_MASKEDOUTPUTDWORD I, Q, M, D, L仍被屏蔽的編程錯誤 ACCFLT_MASKEDOUTPUTDWORD I, Q, M, D, L仍被屏蔽的訪問錯誤,SFC 38 讀錯誤寄存器,READ_ERR,EN,ENO,PRGFLT_QUERRY,ACCFLT_QUERRY,RET_VAL,?.?,PRGFLT_CLR,?.?,ACCFLT_CLR,?.?,?.?,?.?,參數(shù)聲明數(shù)據(jù)類型內(nèi)存區(qū)域 解釋 PRGFLT_QUERRYINPUTDWORD I, Q, M, D, L, Const.編程錯誤過濾

13、檢查 ACCFLT_QUERRYINPUTBYTE I, Q, M, D, L, Const.訪問錯誤過濾檢查 RET_VALOUTPUTINT I, Q, M, D, LSFC返回值,W#16#0001:檢查過濾結(jié)果中包含了未設(shè)置的 位(在存貯的過濾器中) PRGFLT_CLROUTPUTDWORD I, Q, M, D, L編程錯誤過濾及錯誤信息 ACCFLT_CLROUTPUTDWORD I, Q, M, D, L訪問錯誤過濾及錯誤信息,示例:數(shù)據(jù)塊測試,Network 1: Masking, Testing, Demasking / Mask DB does not exist CAL

14、LSFC36( PRGFLT_SET_MASK:= DW#16#4000000,/ 標(biāo)識符:DB 不存在 ACCFLT_SET_MASK:= DW#16#0,/ 未屏蔽訪問錯誤 RET_VAL:= #SFC36Error, PRGFLT_MASKED:= #Prog36Mask, ACCFLT_MASKED:= #Acc36Mask); / Test call OPN DBDB_NO; / Check programming error CALLSFC38( PRGFLT_QUERRY:= DW#16#4000000,/ 標(biāo)識符:DB 不存在 ACCFLT_QUERRY:= DW#16#0,/

15、 未屏蔽訪問錯誤 RET_VAL:= #SFC38Error, PRGFLT_MASKED:= #Prog38Mask, ACCFLT_MASKED:= #Acc38Mask); / Evaluate result L#Prog38Mask LDW#16#4000000=D =#DB_NOT_THERE/ 設(shè)置輔助變量 DB not there/ Demask DB does not exist CALLSFC37( PRGFLT_RESET_MASK:= DW#16#4000000,/ 標(biāo)識符:DB 不存在 ACCFLT_RESET_MASK:= DW#16#0,/ 未屏蔽訪問錯誤 RET_VAL:= #SFC37Error, PRG

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論