电竞比分网-中国电竞赛事及体育赛事平台

分享

PROFIBUS教程(十二)——組織塊OB

 昵稱95292 2009-01-15
 
一、循環(huán)處理的主程序(OB1)
 
      主程序在OB1中執(zhí)行。OB1調(diào)用功能塊(FB)、標(biāo)準(zhǔn)功能塊(SFB)或使用功能調(diào)用(FC系統(tǒng)功能調(diào)用(SFC)的功能。OB1被循環(huán)地處理。在啟動(dòng)OB被處理后(OB100用于予熱再起動(dòng)或OB101用于熱再起動(dòng)或OB102用于冷再起動(dòng)),首先執(zhí)行OB1。在OB1循環(huán)結(jié)束時(shí),操作系統(tǒng)傳送過(guò)程映象輸出表到輸出模塊。在OB1再開始前,操作系統(tǒng)通過(guò)讀取當(dāng)前的輸入I/O的信號(hào)狀態(tài)來(lái)更新過(guò)程映象輸入表。這個(gè)過(guò)程連續(xù)不斷地重復(fù)。這就是我們所稱“循環(huán)處理”。所有OB的運(yùn)行被監(jiān)視,OB1的優(yōu)先權(quán)最低,因此它可以被較高優(yōu)先權(quán)的OB中斷。
      SIMATIC S7可編程控制器的CPU允許監(jiān)視最大循環(huán)時(shí)間。這就是處理OB1的時(shí)間。也可以保證能觀察處理OB1的最小循環(huán)時(shí)間。如果已設(shè)置最小循環(huán)時(shí)間,則CPU操作系統(tǒng)將延時(shí)達(dá)到此時(shí)間后才開始另一次OB1??梢栽贖W Config程序中的CPU Properties下定義用于循環(huán)監(jiān)視時(shí)間最小循環(huán)時(shí)間的參數(shù)。關(guān)于OB1本地?cái)?shù)據(jù)的含義見表1
 
OB1的本地?cái)?shù)據(jù)
變量
數(shù)據(jù)類型
描述
OB1_EV_CLASS
BYTE
事件類標(biāo)識(shí)符:B#16#11=活動(dòng)的
OB1_SCAN_1
BYTE
B#16#01予熱再起動(dòng)結(jié)束
B#16#02熱再起動(dòng)結(jié)束
B#16#03自由周期結(jié)束
OB1_PRIORITY
BYTE
優(yōu)先權(quán)等級(jí)“1”
OB1_OB_NUMBR
BYTE
OB號(hào)碼(01)
OB1_RESERVED_1
BYTE
保留
OB1_RESERVED_2
BYTE
保留
OB1_PREV_CYCLE
INT
以前循環(huán)的運(yùn)行時(shí)間(ms)
OB1_MIN_CYCLE
INT
從最近的啟動(dòng)以來(lái)最小的循環(huán)時(shí)間(ms)
OB1_MAX_CYCLE
INT
從最近的啟動(dòng)以來(lái)最大的循環(huán)時(shí)間(ms)
OB1_DATE_TIME
DT
OB被請(qǐng)求的日期時(shí)間
 
以十六進(jìn)制數(shù)字表達(dá)的格式:
     數(shù)據(jù)類型 字節(jié)  B#16#x    (x值范圍從“0”至“FF”)
     數(shù)據(jù)類型 字    W#16#x   (x值范圍從“0”至“FFFF”)
     數(shù)據(jù)類型 雙字  DW#16#x  (x值范圍從“0”至“FFFF FFFF”)
 
二、過(guò)程中斷(OB40~OB47)
 
    SIMATIC S7 可編程控制器的CPU提供8種不同的OBOB40~OB47)用于對(duì)過(guò)程中斷的反應(yīng)。對(duì)于支持過(guò)程中斷的S7 DP從站,可用HW Config硬件組態(tài)程序定義通道、通用條件OB號(hào)。
      當(dāng)S7 DP從站觸發(fā)一個(gè)過(guò)程中斷時(shí),它就被CPU操作系統(tǒng)所識(shí),并根據(jù)它的優(yōu)先權(quán)起動(dòng)相應(yīng)的OB。在中斷OB中的用戶程序被處理(OB已結(jié)束)后,一個(gè)確認(rèn)信息被發(fā)送給產(chǎn)生中斷的S7 DP從站。
      如果當(dāng)OB仍在處理第一個(gè)中斷時(shí)另一個(gè)中斷到達(dá)了,則第二個(gè)中斷請(qǐng)求被寄存起來(lái),并在適當(dāng)?shù)臅r(shí)候處理此OB。這就是S7-400系統(tǒng)中的過(guò)程。對(duì)于S7-300系統(tǒng)而言,如果在剛被處理的中斷確認(rèn)后產(chǎn)生第二個(gè)過(guò)程中斷的事件已不在等候,則此中斷被丟失。
      過(guò)程中斷OB提供20個(gè)字節(jié)的本地?cái)?shù)據(jù)。此數(shù)據(jù)含有產(chǎn)生此中斷的模塊的邏輯基準(zhǔn)地址。關(guān)于本地?cái)?shù)據(jù)的描述,請(qǐng)參閱表2。
 
 2   OB40~OB47提供的本地?cái)?shù)據(jù)的內(nèi)容
變量
數(shù)據(jù)類型
說(shuō)明
OB4x_EV_CLASS
BYTE
事件類標(biāo)識(shí)符:B#16#11=中斷是活動(dòng)的
OB4x_STRT_INF
BYTE
B#16#41=通過(guò)中斷線1的中斷
僅對(duì)S7-400:
B#16#42=通過(guò)中斷線2的中斷
B#16#43=通過(guò)中斷線3的中斷
B#16#44=通過(guò)中斷線4的中斷
OB4x_PRIORITY
BYTE
優(yōu)先權(quán)等級(jí)“16”(OB40)~“23”(OB47)(缺省值)
OB4x_OB_NUMBR
BYTE
OB號(hào)(40~47)
OB4x_PESERVED_1
BYTE
保留
OB4x_IO_FLAG
BYTE
B#16#54=輸入模塊
B#16#55=輸出模塊
OB4x_MDL_ADDR
WORD
觸發(fā)此中斷的模塊的邏輯基準(zhǔn)地址
OB4x_POINT_ADDR
DWORD
對(duì)數(shù)字模塊
在模塊上帶有輸入狀態(tài)的位字段
對(duì)模擬模塊(CP或IM):
模塊的中斷狀態(tài)
OB4x_DATE_TIME
DT
OB被請(qǐng)求的日期時(shí)間
 
三、診斷中斷(OB82)
 
      SIMATIC S7可編程控制器的CPU提供組織塊OB82用來(lái)檢查評(píng)估診斷中斷。當(dāng)具有診斷能力的DP從站檢查出一個(gè)錯(cuò)誤(也叫“事件”)時(shí),此OB被啟動(dòng)。在兩種情況下CPU操作系統(tǒng)調(diào)用OB82:診斷中斷已經(jīng)“到來(lái)”診斷中斷已經(jīng)“離去”。然而,對(duì)此有兩個(gè)條件必須滿足為真:DP從站必須有能力支持此診斷功能并且已經(jīng)用HW Config程序在DP從站的參數(shù)集中定義了診斷報(bào)警。
      如果你沒有編程OB82,則CPU對(duì)診斷中斷的反應(yīng)是進(jìn)入STOP狀態(tài)。OB82提供在DP從站上引起中斷的有關(guān)出錯(cuò)的詳細(xì)信息。OB82的20個(gè)字節(jié)本地?cái)?shù)據(jù)(見表3)包含有故障的DP從站的邏輯基準(zhǔn)地址或DP從站中有故障的模塊,以及4個(gè)字節(jié)的診斷信息。
 
OB82的本地?cái)?shù)據(jù)
變量
數(shù)據(jù)類型
描述
OB82_EV_CLASS
BYTE
中斷類標(biāo)識(shí)符:
B#16#38=離去的事件
B#16#39=到來(lái)的事件
OB82_FLT_ID
BYTE
B#16#42=出錯(cuò)代碼
OB82_PRIORITY
BYTE
優(yōu)先權(quán)等級(jí)
“26”(RUN運(yùn)行狀態(tài)缺省值)或“28”(STARTUP運(yùn)行狀態(tài))
OB82_OB_NUMBR
BYTE
OB-號(hào)(82)
OB82_RESERVED_1
BYTE
保留
OB82_IO_FLAG
BYTE
B#16#54=輸入模塊
B#16#55=輸出模塊
OB82_MDL_ADDR
INT
發(fā)生故障的模塊的邏輯基準(zhǔn)地址
OB82_MDL_DEFECT
BOOL
模塊故障
OB82_INT_FAULT
BOOL
內(nèi)部錯(cuò)誤
OB82_EXT_FAULT
BOOL
外部錯(cuò)誤
OB82_PNT_INFO
BOOL
通道錯(cuò)誤
OB82_EXT_VOLTAGE
BOOL
外部輔助電壓不存在
OB82_FLD_CONNCTR
BOOL
正面插頭連接器未連接
OB82_NO_CONFIG
BOOL
模塊的參數(shù)集丟失
OB82_CONFIG_ERR
BOOL
模塊中參數(shù)有錯(cuò)
 
續(xù)
變量
數(shù)據(jù)類型
描述
OB82_MDL_TYPE
BOOL
位0至3:模塊類型
位4:當(dāng)前通道信息
位5:當(dāng)前用戶信息
位6:來(lái)自替代者的診斷中斷
位7:保留
OB82_SUB_MDL_ERR
BOOL
用戶模塊出錯(cuò)/不存在
OB82_COMM_FAULT
BOOL
通信出錯(cuò)
OB82_MDL_STOP
BOOL
運(yùn)行狀態(tài)(0:RUN,1:STOP)
OB82_WTCH_DOG_FLT
BOOL
時(shí)間監(jiān)控已觸發(fā)
OB82_INT_PS_FLT
BOOL
內(nèi)部模塊供電電壓有故障
OB82_PRIM_BATT_FLT
BOOL
電池沒電
OB82_BCKUP_BATT_FLT
BOOL
整個(gè)后備電池故障
OB82_RESERVED-2
BOOL
保留
OB82_RACK_FLT
BOOL
擴(kuò)展機(jī)架故障
OB82_PROC_FLT
BOOL
處理器故障
OB82_EPROM_FLT
BOOL
EPROM出錯(cuò)
OB82_RAM_FLT
BOOL
RAM出錯(cuò)
OB82_ADU_FLT
BOOL
ADU/DAU出錯(cuò)
OB82_FUSE_FLT
BOOL
保險(xiǎn)絲熔斷
OB82_HW_INTR_FLT
BOOL
丟失過(guò)程中斷
OB82_RESERVED_3
BOOL
保留
OB82_DATE_TIME
DT
OB被請(qǐng)求的時(shí)期時(shí)間
 
四、插/拔模塊中斷(OB83)
 
      SIMATIC S7-400系列的CPU常規(guī)地檢查在中央機(jī)架擴(kuò)展機(jī)架中存在的模塊。插入S7 DP從站且分散地與S7系統(tǒng)連接的模塊(如,ET200M/IM 153-2模塊)也要被此監(jiān)視功能檢查。如果已組態(tài)的模塊從站從模塊化的S7 DP從站中拔走且S7 CPU還處在RUN狀態(tài),則中斷OB83被觸發(fā)并在診斷緩存器模塊狀態(tài)表中產(chǎn)生一個(gè)登入項(xiàng)。如果模塊從DP從站中拔走而S7 CPU處于STOP狀態(tài)或剛剛起動(dòng),則此中斷被寄存在CPU的診斷緩存器模塊狀態(tài)表中,但不調(diào)用OB83。
     如果CPU正在運(yùn)行時(shí)插入已組態(tài)的模塊,則CPU檢查所插入的模塊類型是否與組態(tài)匹配。然后,調(diào)用OB83并指出模塊類型正確,則通過(guò)HW Config程序用已組態(tài)在CPU上的參數(shù)集裝入此模塊。此時(shí),還可以調(diào)用系統(tǒng)功能(SFC)來(lái)更改新插入的模塊的參數(shù),表4描述OB83的本地?cái)?shù)據(jù)。
 
OB83的本地?cái)?shù)據(jù)
變量
數(shù)據(jù)類型
描述
OB83_EV_CLASS
BYTE
中斷類標(biāo)識(shí)符:
B#16#38=插入的模塊
B#16#39=拔出的模塊或者不能被尋址的模塊
OB83_FLT_ID
BYTE
出錯(cuò)代碼:(可能的值:B#16#61,B#16#63,B#16#64,B#16#65)
OB83_PRIORITY
BYTE
優(yōu)先權(quán)等級(jí)
“26”(RUN運(yùn)行狀態(tài)缺省值)或
“28”(STARTUP狀態(tài))
OB83_OB_NUMBR
BYTE
OB號(hào)(83)
OB83_RESERVED_1
BYTE
保留
OB83_MDL_ID
BYTE
B#16#54=輸入I/O區(qū)域(PE)
B#16#55=輸出I/O區(qū)域(PA)
OB83_MDL_ADDR
WORD
受影響的模塊的邏輯基準(zhǔn)地址
OB83_RACK_NUM
WORD
模塊機(jī)架號(hào)碼或DP站號(hào)DP主站系統(tǒng)ID(高字節(jié))
OB83_MDL_TYPE
WORD
受影響的模塊的模塊類型
OB83_DATE_TIME
DT
OB被請(qǐng)求的日期時(shí)間
 
      所組態(tài)的模塊類型與實(shí)際插入在DP從站中的模塊類型之間的失配由本地變量OB83_MDL_TYPE寄存起來(lái)。根據(jù)寫入此變量的出錯(cuò)代碼,按具體情況發(fā)出下列出錯(cuò)信息之一:
 
由本地變量OB83_FTL_ID報(bào)告的出錯(cuò)代碼
OB83_FTL_ID中的出錯(cuò)代碼
依據(jù)OB83_MDL_TYPE內(nèi)容的出錯(cuò)含義
B#16#61
對(duì)于OB83_MDL_TYPE=實(shí)際模塊類型
已插入的模塊,模塊類型OK(對(duì)中斷類B#16#38)
已拔走的模塊,或不可尋址的模塊(對(duì)中斷類B#16#39)
B#16#63
對(duì)于OB83_MDL_TYPE=實(shí)際模塊類型
已插入的模塊,但模塊類型錯(cuò)
B#16#64
對(duì)于OB83_MDL_TYPE=設(shè)定的模塊類型
已插入的模塊,但有故障(類型ID不可讀)
B#16#65
對(duì)于OB83_MDL_TYPE=實(shí)際模塊類型
已插入的模塊,但模塊參數(shù)中有錯(cuò)
 
五、程序順序出錯(cuò)(OB85)
 
      當(dāng)用戶程序調(diào)用了一個(gè)未被裝入的程序塊或操作系統(tǒng)調(diào)用了一個(gè)沒有編程的OB時(shí),S7 CPU的操作系統(tǒng)將調(diào)用OB85。當(dāng)過(guò)程映象正被更新時(shí)出現(xiàn)了I/O存取錯(cuò)誤,也調(diào)用OB85。當(dāng)被組態(tài)的用于DP從站輸入輸出的地址被放在S7 CPU的過(guò)程映象表時(shí),而此DP從站已損壞,就可能發(fā)生上述情況。如果沒有編程OB85,則S7 CPU對(duì)這些出錯(cuò)的反應(yīng)是轉(zhuǎn)變到STOP狀態(tài)。
      表6展示了OB85本地?cái)?shù)據(jù)的原始結(jié)構(gòu)。表7建議怎樣構(gòu)造OB85的本地?cái)?shù)據(jù),以便用戶程序可以評(píng)估這些出錯(cuò)代碼。當(dāng)在S7系統(tǒng)中使用分散I/O時(shí),OB85_FTL_ID變量的十六進(jìn)制出錯(cuò)代碼“B1”“B2”特重要。
 
OB85的本地?cái)?shù)據(jù)(原始結(jié)構(gòu))
變量
數(shù)據(jù)類型
描述
OB85_EV_CLASS
BYTE
中斷類標(biāo)識(shí)符(例如:B#16#39為“更新過(guò)程映象時(shí)出錯(cuò)”)
OB85_FLT_ID
BYTE
出錯(cuò)代碼:(可能的值:B#16#A1,B#16#A2,B#16#A3,B#16#A4,B#16#B1,B#16#B2,)
OB85_PRIORITY
BYTE
優(yōu)先權(quán)等級(jí)
“26”(RUN狀態(tài)的缺省值)或
“28”(STARTUP狀態(tài))
OB85_OB_NUMBR
BYTE
OB號(hào)(85)
OB85_RESERVED_1
BYTE
保留
OB85_ RESERVED_2
BYTE
保留
OB85_ RESERVED_3
INT
保留
OB85_ERR_EV_CLASS
BYTE
產(chǎn)生錯(cuò)誤的中斷類
OB85_ERR_EV_NUM
BYTE
產(chǎn)生錯(cuò)誤的中斷號(hào)
OB85_OB_PRIOR
BYTE
出現(xiàn)錯(cuò)誤時(shí),正在處理的OB的優(yōu)先權(quán)等級(jí)
OB85_OB_NUM
BYTE
出現(xiàn)錯(cuò)誤時(shí),正在處理的OB的號(hào)
OB85_DATE_TIME
DT
OB被請(qǐng)求的日期時(shí)間
 
 
 OB85的本地?cái)?shù)據(jù)結(jié)構(gòu)(用于有關(guān)出錯(cuò)代碼編程)
變量
數(shù)據(jù)類型
OB85_EV_CLASS
BYTE
OB85_FLT_ID
BYTE
OB85_PRIORITY
BYTE
OB85_OB_NUMBR
BYTE
OB85_DKZ23
BYTE
OB85_RESERVED_2
BYTE
OB85_Z1
WORD
OB85_Z23
DWORD
OB85_DATE_TIME
DATE_AND_TIME
 
      表8解釋由變量OB85_FLT_ID報(bào)告的出錯(cuò)代碼。這些出錯(cuò)代碼的含義取決于變量OB85_DKZ23、OB85_Z1OB85_Z23的內(nèi)容。
 
OB85_FLT_ID出錯(cuò)代碼
OB85_FLT_ID出錯(cuò)代碼
出錯(cuò)含義
B#16#A1
根據(jù)STEP7程序,程序或操作系統(tǒng)為OB生成一個(gè)起動(dòng)事件,但此OB未裝入CPU。
B#16#A2
根據(jù)STEP7程序,程序或操作系統(tǒng)為OB生成一個(gè)起動(dòng)事件,但此OB未裝入CPU。
變量OB85_Z1OB85_Z23提供下列附加信息:
OB85_Z1:引起出錯(cuò)的事件類(被中斷的程序?qū)?/font>
          次的值)
OB85_Z23:
     高字:報(bào)告觸發(fā)事件的類號(hào)
     低字:出錯(cuò)時(shí),報(bào)告活動(dòng)的程序?qū)哟?strong style="COLOR: #f5f5dc; BACKGROUND-COLOR: #6b8e23">和活動(dòng)
           的OB
B#16#A3
操作系統(tǒng)存取一個(gè)塊時(shí)出錯(cuò)
變量OB85_Z1OB85_Z23提供下列附加信息:
OB85_Z1:操作系統(tǒng)的詳細(xì)出錯(cuò)標(biāo)識(shí)符
  高字節(jié):1:集成功能
          2:IEC定時(shí)器
  低字節(jié):0:無(wú)出錯(cuò)解決方案
          1:塊未裝入
          2:區(qū)域長(zhǎng)度出錯(cuò)
          3:寫保護(hù)出錯(cuò)
 
續(xù)
OB85_FLT_ID出錯(cuò)代碼
出錯(cuò)含義
 
OB85_Z23:
   高字:塊號(hào)
   低字:引起出錯(cuò)的MC7命令的相對(duì)地址。關(guān)于塊類型,  
         參看本地變量OB85_DKZ23。
         B#16#88=OB
         B#16#8C=FC
         B#16#8E=FB
         B#16#8A=DB
B#16#B1
B#16#B2
更新過(guò)程映象輸入表時(shí)I/O存取出錯(cuò)
給輸出模塊傳送過(guò)程映象輸出表時(shí)I/O存取出錯(cuò)
變量OB85_Z1OB85_Z23提供下列附加信息:
OB85_Z1:CPU保留作為內(nèi)部使用
OB85_Z23:造成I/O存取出錯(cuò)(PZF)的I/O字節(jié)號(hào)
 
六、機(jī)架故障(OB86)
      S7 CPU的操作系統(tǒng)通過(guò)調(diào)用組織塊OB86對(duì)擴(kuò)展機(jī)架、DP主站系統(tǒng)DP從站的故障(到來(lái)的事件)或恢復(fù)(離去的事件)作出反應(yīng)。當(dāng)這類事件發(fā)生時(shí)如果未編程OB86,則S7 CPU輸入STOP狀態(tài)。
     表9指出OB86的本地?cái)?shù)據(jù)的原始結(jié)構(gòu)。表10指出的結(jié)構(gòu)建議如何組織OB86的本地?cái)?shù)據(jù)以便利用用戶程序可以運(yùn)行一個(gè)簡(jiǎn)單的依據(jù)出錯(cuò)代碼的評(píng)估。當(dāng)S7系統(tǒng)中使用分散I/O時(shí),變量OB86_FTL_ID的十六進(jìn)制出錯(cuò)代碼“C3”、“C4”“C7”特地重要。
 
OB86的本地?cái)?shù)據(jù)
變量
數(shù)據(jù)類型
說(shuō)明
OB86_EV_CLASS
BYTE
事件類標(biāo)識(shí)符:
B#16#38=離去的事件
B#16#39=到來(lái)的事件
OB86_FTL_ID
BYTE
出錯(cuò)代碼:(可能的值:B#16#C1,B#16#C2,B#16#C3,B#16#C4,B#16#C5,B#16#C6,B#16#C7,)
OB86_PRIORITY
BYTE
“26”(RUN狀態(tài)缺省值)或
“28”(STARTUP運(yùn)行狀態(tài))
OB86_OB_NUMDR
BYTE
OB號(hào)(86)
OB86_RESERVED_1
BYTE
保留
OB86_RESERVED_2
BYTE
保留
OB86_MDL_ADDR
WORD
取決于出錯(cuò)代碼
OB86_RACKS_FLTD
ARRAY
[1…31]OF BOOL
取決于出錯(cuò)代碼
OB86_DATE_TIME
DT
OB被請(qǐng)求的日期時(shí)間
 
10  OB86的本地?cái)?shù)據(jù)結(jié)構(gòu)(用于有關(guān)出錯(cuò)代碼編程)
變量
數(shù)據(jù)類型
OB86_EV_CLASS
BYTE
OB86_FLT_ID
BYTE
OB86_PRIORITY
BYTE
OB86_OB_NUMBR
BYTE
OB86_RESERVED_1
BYTE
OB86_RESERVED_2
BYTE
OB86_MDL_ADDR
WORD
OB86_Z23
DWORD
OB86_DATE_TIME
DATE_AND_TIME
 
      表11說(shuō)明由變量OB86_FLT_ID報(bào)告的出錯(cuò)代碼。出錯(cuò)代碼的含義取決于變量OB86_DKZ23、OB86_Z1OB86_Z23的內(nèi)容。
 
11  OB86_FLT_ID出錯(cuò)代碼
OB86_FLT_ID
出錯(cuò)代碼
出錯(cuò)含義
B#16#C1
擴(kuò)展機(jī)架故障
OB86_MDL_ADRR:IM邏輯基準(zhǔn)地址
變量OB86_Z23提供下列附加信息
OB86_Z23:每一位(bit)指定給一個(gè)可能的擴(kuò)展機(jī)架
     位0:總為0
     位1:第1個(gè)擴(kuò)展機(jī)架
     ┇     ┇
     位21:第21個(gè)擴(kuò)展機(jī)架
  位22~29:總為0
     位30:在SIMATIC S5區(qū)域至少有一個(gè)擴(kuò)展機(jī)架有故障
     位31:總為0
注解:“到來(lái)”的事件指出擴(kuò)展機(jī)架的故障(指定的位被設(shè)置為“1”)。
     它總是指向觸發(fā)OB86調(diào)用的那些擴(kuò)展機(jī)架,早已出現(xiàn)故障的
     擴(kuò)展機(jī)架不再被指出。
     “離去”的事件指出早先出現(xiàn)故障的擴(kuò)展機(jī)架恢復(fù)(指定的位
     被設(shè)置為“1”)
B#16#C2
具有標(biāo)識(shí)符的擴(kuò)展機(jī)架復(fù)位:
“在設(shè)定與實(shí)際組態(tài)間有偏差的擴(kuò)展機(jī)架的故障已過(guò)去”
OB86_MDL_ADDR:IM的邏輯基準(zhǔn)地址
由變量OB86_Z23提供下列附加信息
OB86_Z23:對(duì)每個(gè)可能的擴(kuò)展機(jī)架都包含1位(見出錯(cuò)代碼  
           B#16#C1)。設(shè)定位的含義:
           在受影響的擴(kuò)展機(jī)架上:
           —帶有錯(cuò)誤類型標(biāo)識(shí)符的模塊
           —已組態(tài)的模塊丟失
           —至少有一個(gè)模塊有缺陷
B#16#C3
分散I/O的DP主站系統(tǒng)有故障。(到來(lái)的事件提供出錯(cuò)代碼B#16#C3;離去的事件提供出錯(cuò)代碼B#16#C4事件類B#16#38)
每個(gè)較低層的DP站的恢復(fù)也起動(dòng)OB86
OB86_MDL_ADDR:DP主站的邏輯基準(zhǔn)地址
變量OB86_Z23提供下列附加信息
OB86_Z23:DP主站系統(tǒng)ID
      位0~7:保留
      位8~15:DP主站系統(tǒng)ID
      位16~31:保留
 
 
 11  續(xù)
OB86_FLT_ID
出錯(cuò)代碼
出錯(cuò)含義
B#16#C4
B#16#C5
DP站故障
DP站不正常
OB86_MDL_ADDR:DP主站的邏輯基準(zhǔn)地址
變量OB86_Z23提供下列附加信息
OB86_Z23:受影響的DP從站的地址
   位0~7:DP站的號(hào)
   位8~15:DP主站系統(tǒng)ID
   位16~30:S7 DP從站的邏輯基準(zhǔn)地址或?qū)τ跇?biāo)準(zhǔn)DP
            從站的診斷地址
      位31:I/O標(biāo)識(shí)符
B#16#C6
擴(kuò)展機(jī)架恢復(fù),但在模塊參數(shù)集中有錯(cuò)
OB86_MDL_ADDR:IM的邏輯基準(zhǔn)地址
變量OB86_Z23提供下列附加信息
OB86_Z23:對(duì)每個(gè)可能的擴(kuò)展機(jī)架指定1位。
            位0:總是0
            位1:第1個(gè)擴(kuò)展機(jī)架
            ┇    ┇
           位21:第21個(gè)擴(kuò)展機(jī)架
           位22~30:保留
           位31:總是0
一個(gè)設(shè)置位的含義:
受影響的擴(kuò)展機(jī)架的模塊帶有:
—錯(cuò)誤的類型標(biāo)識(shí)符,或
—丟失或錯(cuò)誤的參數(shù)
B#16#C7
DP站恢復(fù),但在模塊參數(shù)集中有錯(cuò)
OB86_MDL_ADDR:DP主站的邏輯基準(zhǔn)地址
變量OB86_Z23提供下列附加信息。
OB86_Z23:受影響的DP從站地址:
          位0~7:DP站的號(hào)
          位8~15:DP主站系統(tǒng)ID
          位16~30:DP從站邏輯基準(zhǔn)地址
          位31:I/O標(biāo)識(shí)符
 
七、I/O存取出錯(cuò)(OB122)
     在STEP7指令正試圖存取I/O模塊或DP從站的輸入/輸出數(shù)據(jù)時(shí)出現(xiàn)錯(cuò)誤,則S7 CPU操作系統(tǒng)調(diào)用OB122。當(dāng)用戶程序試圖存取不存在的或有缺陷DP從站的輸入或輸出時(shí),也調(diào)用OB122。如果沒有編程OB122,則CPU對(duì)這種I/O存取錯(cuò)的反應(yīng)是切換到STOP狀態(tài)。表12指出OB122的本地?cái)?shù)據(jù)。
 
12  OB122的本地?cái)?shù)據(jù)
變量
數(shù)據(jù)類型
說(shuō)明
OB122_EV_CLASS
BYTE
事件類標(biāo)識(shí)符(例,B#16#29表示“I/O存取出錯(cuò)”)
OB122_SW_FLT
BYTE
出錯(cuò)代碼
B#16#42=(對(duì)S7-300)讀存取I/O時(shí)出錯(cuò)
       =(對(duì)S7-400)在一個(gè)錯(cuò)誤出現(xiàn)后,第1次
         讀存取I/O時(shí)出錯(cuò)
B#16#43=(對(duì)S7-300)寫存取I/O時(shí)出錯(cuò)
       =(對(duì)S7-400)在一個(gè)錯(cuò)誤出現(xiàn)后,第1次
         寫存取I/O時(shí)出錯(cuò)
B#16#44=(僅對(duì)S7-300)在一個(gè)錯(cuò)誤出現(xiàn)后,第n
        (n>1)次讀存取I/O時(shí)出錯(cuò)
B#16#45=(僅對(duì)S7-400)在一個(gè)錯(cuò)誤出現(xiàn)后,第n
        (n>1)次寫存取I/O時(shí)出錯(cuò)
OB122_PRIORITY
BYTE
出現(xiàn)錯(cuò)誤的OB的優(yōu)先權(quán)等級(jí)
OB122_OB_NUMBR
BYTE
OB號(hào)(122)
OB122_BLK_TYPE
BYTE
出現(xiàn)錯(cuò)誤的塊類型
B#16#88=OB
B#16#8A=DB
B#16#8C=FC
B#16#8E=FB
OB122_MEM_AREA
BYTE
存取類型存貯器區(qū)
位7~4,存取類型:0:位存取
                  1:字節(jié)存取
                  2:字存取
                  3:雙字存取
位3~0,存貯器區(qū)域:0:I/O區(qū)
                    1:過(guò)程映象輸入表
                    2:過(guò)程映象輸出表
OB122_MEM_ADDR
WORD
出現(xiàn)錯(cuò)誤的存貯器地址
OB122_BLK_NUM
WORD
造成錯(cuò)誤的MC7命令的塊號(hào)
OB122_PRG_ADDR
WORD
造成錯(cuò)誤的MC7命令的相對(duì)地址
OB122_DATE_TIME
DT
OB被請(qǐng)求的日期時(shí)間

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多