今天出現一個PLC停機:由OB85 引起的停機.
OB85里的程序編輯:
L B#16#A1 //尚未加載的OB發生錯誤事件
L #OB85_FLT_ID
==I
SPB K_OB
L B#16#A2 // 尚未加載的OB發生錯誤事件
==I
SPB K_OB
L B#16#A3 // 訪問未加載的塊時出錯
L #OB85_FLT_ID
==I
SPB K_B
SPA F_PA
K_OB: SPA STOP
SPA ENDE
K_B: SPA STOP
SPA ENDE
STOP: CALL "STP" 調用FC46
OB85 :
B#16#A1
程序或操作系統(基于組態)為未裝載到 CPU 上的 OB 創建一個啟動事件。
● OB85_Z1:請求的 OB 的相應臨時變量。這由 OB85_Z23 確定。
● OB85_Z23:
– 高位字:導致 OB 調用的事件的類別和編號
– 低位字,高位字節:在出錯時處于激活狀態的程序級別
B#16#A2
程序或操作系統(基于組態)為未裝載到 CPU 上的 OB 創建一個啟動事件。
OB85_Z1 和 OB85_Z23(對于 OB85_FLT_ID=B#16#A1)
B#16#A3
操作系統訪問塊時出錯
● OB85_Z1:操作系統的錯誤 ID
– 高位字節:1=集成的功能,2=IEC 定時器
– 低位字節:0=無錯誤分辨率,1=未裝載塊,2=區域長度錯誤,3=寫保護錯誤
● OB85_Z23:
– 高位字:塊編號
– 低位字:導致錯誤的 MC7 命令的相對地址。塊類型必須取自 OB 85_DKZ23(B#16#88:OB,B#16#8C:FC,B#16#8E:FB,B#16#8A:DB)。
-------OB40-->
硬件中斷組織塊(OB40至OB47)
S7提供了多達八個的獨立硬件中斷,每一中斷都具有自己的OB。
通過STEP 7分配參數,可以為將要觸發硬件中斷的每個信號模塊指定以下內容:
在何種條件下觸發硬件中斷的通道。
?要分配給個別通道組的硬件中斷OB(默認情況下,將由OB40來處理所有的硬件中斷)。
借助于CP和FM,可使用其各帶軟件來分配這些參數。
可使用STEP 7選擇各個硬件中斷OB的優先級。
了解硬件中斷OB的操作
在模塊觸發硬件中斷后,操作系統將標識插槽以及相應的硬件中斷OB。如果此OB的優先級高于當前激活的優先級,則將啟動該OB。當執行完此硬件中斷OB后,將發送通道指定的確認。
如果在對硬件中斷進行標識和確認的這段時間內,在同一模塊中發生了觸發硬件中斷的另一事件,則應用以下規則:
如果該事件發生在先前觸發硬件中斷的通道中,則新中斷丟失。在下圖中,將根據數字輸入模塊的通道實例對此進行說明。觸發事件是上升沿。硬件中斷OB是OB40。
編輯:jq
-
plc
+關注
關注
5008文章
13167瀏覽量
462188 -
cpu
+關注
關注
68文章
10829瀏覽量
211183 -
CP
+關注
關注
3文章
35瀏覽量
25611
原文標題:OB85編程引起CPU停機
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論