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