S7组织块OB的运用方法
2.15.1 描述
与电源(仅对S7-400) 或后备电池(当到来和离去事件)有关的故障事件发
生时,S7-300CPU 的操作系统调用OB81。在S7-400 中,如果电池测试功能已
通过BATT.INDIC 开关激活,仅在电池故障事件发生时调用OB81。
如果OB81 未编程,CPU 并不转换为STOP 方式。您可以用SFC39 至42 来禁用、
延时或再使能电源故障OB。
2.15.2 电源故障OB 的局部数据
下表描述了电源故障OB 的临时(TEMP)变量。变量名是OB81 的缺省名。
变量 类型 描述
OB81_EV_CLASS BYTE
事件级别和标识:B#16#38:离去事件
B#16#39:到来事件
OB81_FLT_ID BYTE 故障代码(可能值)B#16#21,B#16#22,
B#16#23,B#16#25,B#16#26, B#16#27,
B#16#31,B#16#32,B#16#33)
OB81_PRIORITY BYTE * 优先级;可通过STEP 7 选择(硬件组
态)* 例如,RUN 方式的可能值:2-26
OB81_OB_NUMBR BYTE OB 号(81)
OB81_RESERVED_1 BYTE 保留
OB81_RESERVED_2 BYTE 保留
OB81_MDL_ADDR INT * 位0 至2: 机架号* 位3: 0=备用CPU,
1=主站CPU * 位4 至7: 1111
OB81_RESERVED_3 BYTE 仅与故障代码B#16#31, B#16#32 and
B#16#33 有关
OB81_RESERVED_4 BYTE
OB81_RESERVED_5 BYTE
OB81_RESERVED_6 BYTE
OB81_DATE_TIME DATE_AND_TIME OB 被调用时的日期和时间
变量OB81_RESERVED_I,3 ≤ i ≤ 6 显示扩展机架上后备电池(故障代码B#16#31)、
后备电压(故障代码 B#16#32)或24V 电源(故障代码B#16#33)故障。下表显示变
量OB81_RESERVED_I,3 ≤ i ≤ 6 哪位对应哪个扩展机架。变量OB81_RESERVED_I 中
的位有下述意义(对相关的扩展机架):
OB81_RESERVED_6 OB81_RESERVED_5 OB81_RESERVED_4 OB81_RESERVED_3
位
保留 第8 扩展机架 第16 扩展机架 备用
0
位
第1 扩展机架 第9 扩展机架 第17 扩展机架 备用
1
位
第2 扩展机架 第10 扩展机架 第18 扩展机架 备用
2
位
第3 扩展机架 第11 扩展机架 第19 扩展机架 备用
3
位
第4 扩展机架 第12 扩展机架 第20 扩展机架 备用
4
位
第5 扩展机架 第13 扩展机架 第21 扩展机架 备用
5
位
第6 扩展机架 第14 扩展机架 备用 备用
6
位
第7 扩展机架 第15 扩展机架 备用 备用
7
当事件发生时,显示扩展机架(相应位置位)电池或后备电压或24 V 电源故障。更
早发生的扩展机架电池或后备电压或24 V 电源故障不再显示。事件排除且至少一个
扩展机架后备电源恢复时也显示(相应位置位)。变量OB81_FLT_ID 有下列意义:
OB81_FLT_ID 意义
B#16#21: 中央机架的至少一个后备电池耗尽/问题排除(BATTF)
如果仅两个电源中的一个故障(如果是冗余后备电池)
事件也发生。如果
第二个电池也发生故障,事件不再出现。
B#16#22: 中央机架的后备电压故障/问题排除(BAF)
B#16#23: 中央机架的24 V 电源故障/问题排除。
至少一个冗余中央机架中至少一个后备电池耗尽/问题
B#16#25:
排除(BATTF)
B#16#26: 至少一个冗余中央机架中后备电压故障(BAF)
B#16#27: 至少一个冗余中央机架24 V 供给故障
至少一个扩展机架的至少一个后备电池耗尽/问题排除
B#16#31:
(BATTF)
B#16#32: 至少一个扩展机架的后备电压故障(BAF)
B#16#33: 至少一个扩展机架的24 V 电源故障/问题排除。
2.16 诊断中断组织块(OB82)
2.16.1 描述
如果模块具有诊断能力又使能了诊断中断,当它检测到故障时,它输出一个
诊断中断请求给CPU(到来和离去事件)。于是操作系统调用OB82。OB82 的
OB82_PROC_FLT BOOL 处理器故障
OB82_EPROM_FLT BOOL EPROM 故障
OB82_RAM_FLT BOOL RAM 故障
OB82_ADU_FLT BOOL ADC/DAC 故障
OB82_FUSE_FLT BOOL 熔断器熔断
OB82_HW_INTR_FLT BOOL 硬件中断丢失
OB82_RESERVED_3 BOOL 备用
OB82_DATE_TIME DATE_AND_TIME OB 被调用时的日期和时间
注意:如果您用有DPV1 能力的CPU 借助SFB54 您可以得到超出OB 启动信息的中断
的进一步信息。当您以S7 兼容方式运行DP 主站时也是一样。
2.17 模板插/拔中断组织块(OB83)
2.17.1 描述
在下列情况下CPU 操作系统调用OB83:
* 组态的模板插入/拔出之后
* 在STEP 7 下修改了模板参数并在RUN 状态下装所作修改到CPU 之后您可以
借助SFC39 至42 禁止/延时/使能插入/拔出中断OB。
模板插入和拔出在RUN、STOP 和STARTUP 方式时每次组态的模板插入或拔出,
就产生了插入/拔出中断(电源模板、CPU、适配模块和IM 不能在这种方式下
移出)。该中断引起有关CPU 的诊断缓冲区和系统状态表的记录。如果CPU 在
RUN 方式也启动插入/拔出OB。如果该OB 未编程,CPU 变为STOP 方式。
系统以秒间隔查询-400 模板以检测插入或拔出。为使CPU 能检测出S7-400 模
板的拔出和插入,拔出和插入之间最小时间间隔必须超出两秒。对其它模板
最小时间更高一些。
如果您在RUN 方式下拔出组态的模板,OB83 启动。由于仅以一秒的间隔监视
模板的存在,如果模板被直接访问或当过程映像被刷新时可能首先检测出访
问故障。如果您在RUN 方式下在组态的插槽中插入一块模板,操作系统检查
插入的模板类型是否与组态记录一致。如果模板类型匹配,于是OB83 被启动
并且参数被赋值。
2.17.2 重新组态模板
在运行时,修改系统组态(CiR) 可以重新选择已存在模板的参数。参数的
重新选择通过传送所需的参数数据到模板来进行。过程如下:
1. 在您用STEP 7 为一块模板选择了新的参数并且在RUN 方式下下装该参数
组态到CPU 后OB83 启动(启动事件W#16#3367)。相应的OB 启动信息为逻辑
起始地址(OB83_MDL_ADDR)和模块类型(OB83_MDL_TYPE)。模板I/O 数据
现在可能不对,这意味着不可能有SFC 忙于发送数据记录到该模板。
2. OB 83 执行之后模板参数被重新赋值。
3. 参数赋值之后OB 83 将再次启动(启动事件W#16#3267,成功提供参数赋
值,或W#16#3968 如果故障)。模板I/O 数据响应与插入中断后的响应相同,
也就是,现在它们可能不正确。现在您可以再次调用SFC 发送数据记录到该
模板。
2.17.3 OB 83 的局部数据
OB83_MDL_TYPE: 组态模板类型
B#16#65: 模板插入但模板参数赋值故障
OB83_MDL_TYPE: 实际模板类型
W#16#3866 模板再次响应,装载电压故障改正
W#16#3966 模板不再次响应,装载电压故障改正
W#16#3367 模板重新组态启动
W#16#3267 模板重新组态结束
W#16#3968 模板重新组态结束有故障
W#16#3884 接口模板插入
W#16#3984 接口模板拔出
注意:如果您使用具有DPV1 能力的CPU,借助SFB54“RALRM”,您可以得到OB 启动
信息之外的中断的进一步信息。当您以S7 兼容方式运行DP 主站时也是一样。
2.18 CPU 硬件故障组织块(OB84)
2.18.1 描述
当前CPU 的OS 不再调用OB84。
2.18.2 硬件故障OB 的局部数据
下表含有CPU 硬件故障的临时(TEMP)变量。变量名是OB84 的缺省名。
变量 类型 描述
OB84_EV_CLASS BYTE
事件级别和标识: * B#16#38 :离去
事件* B#16#39 :到来事件
OB84_FLT_ID BYTE 故障代码(B#16#81)
优先级,可通过STEP 7 选择(硬件组
OB84_PRIORITY BYTE
态)
OB84_OB_NUMBR BYTE OB 号(84)
OB84_RESERVED_1 BYTE 备用
OB84_RESERVED_2 BYTE 备用
OB84_RESERVED_3 WORD 备用
OB84_RESERVED_4 DWORD 备用
OB84_DATE_TIME DATE_AND_TIME OB 被调用时的日期和时间
2.19 优先级故障组织块(OB85)
2.19.1 描述
当下列事件之一发生时,CPU 的操作系统调用OB85:
* 未下装的OB 的启动事件(OB81 除外)。
* 当操作系统访问模板时故障。
* 在由系统刷新过程映像期间I/O 访问故障(如果OB85 调用没有在组态中禁
止)。
注意:如果OB85 未编程,当检测到这些事件之一时CPU 变为STOP 方式。
您可以使用SFC39 至42 封锁或延时并使能优先级故障OB。
OB83_MDL_TYPE: 组态模板类型
B#16#65: 模板插入但模板参数赋值故障
OB83_MDL_TYPE: 实际模板类型
W#16#3866 模板再次响应,装载电压故障改正
W#16#3966 模板不再次响应,装载电压故障改正
W#16#3367 模板重新组态启动
W#16#3267 模板重新组态结束
W#16#3968 模板重新组态结束有故障
W#16#3884 接口模板插入
W#16#3984 接口模板拔出
注意:如果您使用具有DPV1 能力的CPU,借助SFB54“RALRM”,您可以得到OB 启动
信息之外的中断的进一步信息。当您以S7 兼容方式运行DP 主站时也是一样。
2.18 CPU 硬件故障组织块(OB84)
2.18.1 描述
当前CPU 的OS 不再调用OB84。
2.18.2 硬件故障OB 的局部数据
下表含有CPU 硬件故障的临时(TEMP)变量。变量名是OB84 的缺省名。
变量 类型 描述
OB84_EV_CLASS BYTE
事件级别和标识: * B#16#38 :离去
事件* B#16#39 :到来事件
OB84_FLT_ID BYTE 故障代码(B#16#81)
优先级,可通过STEP 7 选择(硬件组
OB84_PRIORITY BYTE
态)
OB84_OB_NUMBR BYTE OB 号(84)
OB84_RESERVED_1 BYTE 备用
OB84_RESERVED_2 BYTE 备用
OB84_RESERVED_3 WORD 备用
OB84_RESERVED_4 DWORD 备用
OB84_DATE_TIME DATE_AND_TIME OB 被调用时的日期和时间
2.19 优先级故障组织块(OB85)
2.19.1 描述
当下列事件之一发生时,CPU 的操作系统调用OB85:
* 未下装的OB 的启动事件(OB81 除外)。
* 当操作系统访问模板时故障。
* 在由系统刷新过程映像期间I/O 访问故障(如果OB85 调用没有在组态中禁
止)。
注意:如果OB85 未编程,当检测到这些事件之一时CPU 变为STOP 方式。
您可以使用SFC39 至42 封锁或延时并使能优先级故障OB。
OB85_DKZ23
= B#16#57
字节2 和3: * PII 引起的I/O 地址,如果
OB85_DKZ23= B#16#10 、20 或30
* 一致性区域的逻辑起始地址,如果
OB85_DKZ23 = B#16#57
故障代码 字节/字 意义
如果您已经组态了当系统过程映像表刷新时发生I/O 访问故障重复调用
OB85 ,您会获得故障代码B#16#B1 和B#16#B2。
B#16#B3: 当刷新输入的过程映像时I/O 访问故
B#16#B4: 障, 到来/离去事件当传送输出过程
映像至输出模板时I/O 访问故障,到
来/离去事件
OB85_DKZ23: I/O 访问故障发生时过程映像传送类
型的ID * B#16#10 :字节访问*
B#16#20 :字访问* B#16#30 :双字
访问* B#16#57 :传送组态的一致性
区域
OB85_Z1: 由CPU 内部占用:模板的逻辑起始地
址如果OB85_RESERVED_2 有数值
B#16#76 , OB85_Z1 为与接收SFC(SFC
14,15,26 和27) 有关的返回值。
OB85_Z23: 字节0: 过程映像区号。
字节1: * 无效,如果OB85_DKZ23=B#16#10,
20 或30 * 一致性区域的长度,单位
字节,如果OB85_DKZ23= B#16#57
字节2 和3: * PII 引起的I/O 地址,如果
OB85_DKZ23= B#16#10,20 或30 * 连
续区域的逻辑起始地址,如果
OB85_DKZ23= B#16#57
如果您已经组态了在系统刷新过程映像表期间如果I/O 访问故障到来和离去
事件发生时调用OB85, 您会获得故障代码B#16#B3 和B#16#B4。在冷或暖启
动之后,在下一次过程映像表刷新时,所有不存在的输入和输出的访问都将
作为I/O 访问故障报告。
2.20 机架故障组织块(OB86)
2.20.1 描述
当扩展机架(不是CPU 318)、DP 主站系统、或分布式I/O 中从站故障时(到
来和离去事件时),CPU 的操作系统调用OB86。如果OB86 未编程,当检测到
:
位21:第21 个扩展机架
位22 至30:备用
位31:总为0
当一位被置位时表示(有关扩展机架):存在没有正
确标识的模板
模板丢失或模板的参数不正确
B#16#C7: DP 站恢复,但模板参数赋值出错DP 主站的逻辑起始
OB86_MDL_ADDR: 地址。相应的DP 从站的地址:位0 至7:DP 站号
OB86_Z23:
位8 至15:DP 主站系统ID
位16 至30:DP 从站的逻辑起始地址
位31:I/O 标识
B#16#C8: DP 站恢复,设定组态与实际组态不一致DP 主站的逻
OB86_MDL_ADDR: 辑起始地址相应的DP 从站的地址:位0 至7:DP 站号
OB86_Z23:
位8 至15:DP 主站系统ID
位16 至30:DP 从站的逻辑起始地址
位31:I/O 标识
注意:
如果您使用具有DPV1 能力的CPU,借助SFB54“RALRM”,您可以得到超出OB 启动信
息的中断的进一步信息。当您以S7 兼容方式运行DP 主站时也是一样。
2.21 通讯故障组织块(OB87)
2.21.1 描述
当导致通讯故障的事件发生时CPU 的操作系统调用OB87。如果OB87 未编程,
CPU 不进入STOP 方式。您可以用SFC39 至42 封锁或延时并再使能通讯故障
OB。
2.21.2 OB87 的局部数据
下表描述通讯故障OB 的临时(TEMP)变量。变量名为OB87 的缺省名。
变量 类型 描述
OB87_EV_CLASS BYTE 事件级别和标识B#16#35:
OB87_FLT_ID BYTE 故障代码:(可能值:B#16#D2,
B#16#D3,B#16#D4, B#16#D5,
B#16#E1,B#16#E2,B#16#E3,
B#16#E4,B#16#E5,B#16#E6)
优先级,可通过STEP 7 选择(硬件
OB87_PRIORITY BYTE
组态)
OB87_OB_NUMBR BYTE OB 号(87)
OB87_RESERVED_1 BYTE 备用
OB87_RESERVED_2 BYTE 备用
2.22 过程中断OB(OB 88)
2.22.1 描述
在一个程序块的执行被中断后CPU 的操作系统调用OB88。这种中断可能的原
因是:
* 同步故障的嵌套深度太高
* 块调用的嵌套深度(B-堆栈)太高
* 在局部数据定位中故障如果您未编程OB88 并且程序块执行中断,CPU 进入
STOP 方式(事件ID W#16#4570) 。如果程序块在优先级28 中执行时被中断,
CPU 进入STOP 方式。您可以借助SFC39 至42 封锁、延时并使能过程中断OB。
2.22.2 过程中断OB 的局部数据
下表含有过程中断OB 的临时(TEMP)变量。变量名为OB88 的缺省名。
变量 类型 描述
OB88_EV_CLASS BYTE 事件级别和ID:B#16#35
OB88_SW_FLT BYTE 故障代码:* B#16#73 :同步故障的
嵌套深度太高* B#16#75 :块调用的
嵌套深度(B-堆栈)太高* B#16#76 :
局部数据定位故障
OB88_PRIORITY BYTE 优先级:28
OB88_OB_NUMBR BYTE OB 号(88)
OB88_BLK_TYPE BYTE 出现故障的块的类型:* B#16#88:OB
* B#16#8C:FC * B#16#8E:FB *
B#16##00 :不能决定中断源
OB88_RESERVED_1 BYTE 备用
OB88_FLT_PRIORITY BYTE 引起故障的OB 的优先级
OB88_FLT_OB_NUMBR BYTE 引起故障的OB 的号码
OB88_BLK_NUM WORD 引起故障的MC7 指令的块的号码
OB88_PRG_ADDR WORD 引起故障的MC7 指令的相对地址
OB88_DATE_TIME DATE_AND_TIME OB 被调用的日期和时间
2.23 背景组织块(OB90)
2.23.1 描述
STEP 7 可以监视最大扫描周期时间,并可以保证最小扫描周期时间。如果OB1
包括所有的嵌套中断和系统功能的执行时间小于您所指定的最小扫描周期时
间,操作系统反应如下:
* 它调用背景OB(如果CPU 中OB90 已存在)。
* 它延时下一次OB1 启动(如果在CPU 中OB90 不存在)。
2.23.2 理解OB90 的运行
OB90 在所有OB 中优先级最低。它可以被任何系统功能和任务所中断(OB1 在
2.22 过程中断OB(OB 88)
2.22.1 描述
在一个程序块的执行被中断后CPU 的操作系统调用OB88。这种中断可能的原
因是:
* 同步故障的嵌套深度太高
* 块调用的嵌套深度(B-堆栈)太高
* 在局部数据定位中故障如果您未编程OB88 并且程序块执行中断,CPU 进入
STOP 方式(事件ID W#16#4570) 。如果程序块在优先级28 中执行时被中断,
CPU 进入STOP 方式。您可以借助SFC39 至42 封锁、延时并使能过程中断OB。
2.22.2 过程中断OB 的局部数据
下表含有过程中断OB 的临时(TEMP)变量。变量名为OB88 的缺省名。
变量 类型 描述
OB88_EV_CLASS BYTE 事件级别和ID:B#16#35
OB88_SW_FLT BYTE 故障代码:* B#16#73 :同步故障的
嵌套深度太高* B#16#75 :块调用的
嵌套深度(B-堆栈)太高* B#16#76 :
局部数据定位故障
OB88_PRIORITY BYTE 优先级:28
OB88_OB_NUMBR BYTE OB 号(88)
OB88_BLK_TYPE BYTE 出现故障的块的类型:* B#16#88:OB
* B#16#8C:FC * B#16#8E:FB *
B#16##00 :不能决定中断源
OB88_RESERVED_1 BYTE 备用
OB88_FLT_PRIORITY BYTE 引起故障的OB 的优先级
OB88_FLT_OB_NUMBR BYTE 引起故障的OB 的号码
OB88_BLK_NUM WORD 引起故障的MC7 指令的块的号码
OB88_PRG_ADDR WORD 引起故障的MC7 指令的相对地址
OB88_DATE_TIME DATE_AND_TIME OB 被调用的日期和时间
2.23 背景组织块(OB90)
2.23.1 描述
STEP 7 可以监视最大扫描周期时间,并可以保证最小扫描周期时间。如果OB1
包括所有的嵌套中断和系统功能的执行时间小于您所指定的最小扫描周期时
间,操作系统反应如下:
* 它调用背景OB(如果CPU 中OB90 已存在)。
* 它延时下一次OB1 启动(如果在CPU 中OB90 不存在)。
2.23.2 理解OB90 的运行
OB90 在所有OB 中优先级最低。它可以被任何系统功能和任务所中断(OB1 在
最小周期时间超出时)并仅在如果所选的最小扫描周期时间还没有达到时执
行。一个例外是在OB90 中调用SFC 和SFB,它们用OB1 优先级的执行并且不
会被OB1 中断,没有OB90 的时间监视。OB90 中的用户程序在下述情况下从
第一条指令处开始处理:
* 暖、冷或热启动之后
* OB90 中正在执行的块被删除之后(用STEP 7)
* 在RUN 方式下装OB90 到CPU 之后
* 结束了背景周期之后
注意:
当组态中最小扫描周期时间和周期监视时间之间差距不大时,在背景OB 中
SFC 和SFB 调用可能会导致循环时间超出。
2.23.3 OB90 的局部数据
下表描述OB90 的临时(TEMP)变量。变量名为OB90 的缺省名。
变量 类型 描述
OB90_EV_CLASS BYTE 事件级别和标识:B#16#11:激活
OB90_STRT_INF BYTE * B#16#91 :暖启动/冷启动/热启
动* B#16#92 :块删除* B#16#93 :
在RUN 方式下装OB90 至CPU *
B#16#95 :背景周期结束
OB90_PRIORITY BYTE 优先级:29(对应优先级0.29)
OB90_OB_NUMBR BYTE OB 号(90)
OB90_RESERVED_1 BYTE 备用
OB90_RESERVED_2 BYTE 备用
OB90_RESERVED_3 INT 备用
OB90_RESERVED_4 INT 备用
OB90_RESERVED_5 INT 备用
OB90_DATE_TIME DATE_AND_TIME OB 被调用时的日期和时间
2.24 启动的类型
启动组织块(OB100,OB101 和 OB102)
下列启动类型是有区别的
* 热启动(S7-300 和S7-400H 没有)
* 暖启动
* 冷启动 在下表中,您可以看到在启动期间哪个OB 被操作系统调用。
启动类型 相应的OB
热启动 OB101
暖启动 OB100
冷启动 OB102
关于启动类型更详细的信息,参见手册“用STEP 7”编程、“用STEP 7 组态硬件和
连接”和“S7-400H PLC”。
启动事件
由于下列原因CPU 执行启动:
* POWER ON 之后
* 当您把方式选择开关从STOP 拨到RUN 时
* 使用通讯功能请求之后(来自编程装置的手动命令或在另一CPU 上通过调用
通讯功能块19“START ”或21“RESUME”。)
* 多处理器的同步
* H 系统中连接建立之后(仅指备用的CPU)
根据启动事件,特定的CPU, 和它的参数,相应的启动OB(OB100,OB101,或OB102)
被调用。通过编程,您可以对您的循环程序做某些设置(例外:在H 系统,当备用
CPU 连接上时,备用的CPU 启动但不调用启动OB)。
2.24.1 启动OB 的局部数据
下表描述启动OB 的临时(TEMP)变量。
变量名为OB100 的缺省名。
变量 类型 描述
OB10_EV_CLASS BYTE 事件级别和标识:B#16#13:激活
OB10x_STRTUP BYTE 启动请求:* B#16#81: 手动暖启
动* B#16#82: 自动暖启动*
B#16#83: 手动热启动请求*
B#16#84: 自动热启动请求*
B#16#85: 手动冷启动请求*
B#16#86: 自动冷启动请求*
B#16#87: 主站:手动冷启动请求*
B#16#88: 主站:自动冷启动请求*
B#16#8A: 主站:手动暖启动请求*
B#16#8B: 主站:自动暖启动请求*
B#16#8C: 备用:手动启动请求*
B#16#8D: 备用:自动启动请求
OB10x_PRIORITY BYTE 优先级:27
OB10x_OB_NUMBR BYTE OB 号(100,101,或102)
OB10x_RESERVED_1 BYTE 备用
OB10x_RESERVED_2 BYTE 备用
OB10x_STOP WORD 引起CPU 停机事件的号码
OB10x_STRT_INFO DWORD 关于当前启动的进一步信息
OB10x_DATE_TIME DATE_AND_TIME OB 被调用时的日期和时间
下表显示变量OB100_STR_INFO 和OB101_STR_INFO 。1-42
0000 1010 根据参数赋值在CPU 上的设置无改
变的多处理器热启动(仅S7-400)
方式选择开关触发的热启动(仅
0000 1011
S7-400)
通过MPI 由命令触发的热启动(仅
0000 1100
S7-400)
在电池后备POWER ON 之后自动启动
0001 0000
(暖)
0001 0001 根据参数赋值有电池支持POWER ON
之后的冷启动
0001 0011 方式选择开关触发的启动 (暖), 最
后POWER ON 时有电池支持
0001 0100 通过MPI 由命令触发的启动(暖),
最后POWER ON 时有电池支持
0010 0000 有电池支持POWER ON 之后自动启动
(暖)(由系统复位存储器)
0010 0001 根据参数赋值有电池支持POWER ON
之后的冷启动
0010 0011 方式选择开关触发的启动 (暖), 最
后POWER ON 时无电池支持
0010 0100 通过MPI 由命令触发的启动(暖),
最后POWER ON 时无电池支持
1010 0000 根据参数赋值有电池支持POWER ON
之后自动热启动(仅S7-400)
2.25 编程故障组织块(OB121)
2.25.1 描述
当有关程序处理的故障事件发生时CPU 的操作系统调用OB121。例如,如果程
序调用了CPU 中不存在的块,OB121 就被调用。
2.25.2 理解编程故障OB 的运行
OB121 与被中断的块在同一优先级中执行。如果OB121 未编程,CPU 从RUN 方
式进入STOP 方式。S7 提供了下列SFC 在您的程序执行期间屏蔽和解除屏蔽
OB121 的启动事件:
* SFC36(MSK_FLT):屏蔽特定的故障代码
* SFC37(DMSK_FLT):解除被SFC36 屏蔽的故障代码
* SFC38(READ_ERR):读故障寄存器
2.25.3 编程故障OB 的局部数据
下表描述编程故障OB 的临时(TEMP)变量。变量名为OB121 的缺省名。根据故障代
码变量有下述意义:
变量 类型 描述
OB121_RESERVED_1: 位3 至0 存储器区:0:I/O 区1:过程映像输入表
2:过程映像输出表
3:位存储器
4:全局DB
5:背景DB
6:自己的局部数据
7:调用者的局部数据
B#16#24: 当读时区间故障
B#16#25: 当写时区间故障
在低字节含有非法区的ID(B#16#86 自己的局部数据
OB121_FLT_REG:
区)
B#16#26: 定时器号码故障
B#16#27: 计数器号码故障
OB121_FLT_REG: 非法的号码
B#16#30: 写访问至具有写保护的全局DB
B#16#31: 写访问至具有写保护的背景DB
B#16#32: 访问全局DB 时DB 号码故障
B#16#33: 访问背景DB 时DB 号码故障
OB121_FLT_REG: 非法的DB 号
B#16#34: 在FC 调用时FC 号码故障
B#16#35: 在FB 调用时FB 号码故障
B#16#3A: 访问未下装的DB,DB 号在允许范围
B#16#3C: 访问未下装的FC,FC 号在允许范围
B#16#3D: 访问未下装的SFC,SFC 号在允许范围
B#16#3E: 访问未下装的FB,FB 号在允许范围
B#16#3F: 访问未下装的SFB,SFB 号在允许范围
OB121_FLT_REG: 非法号码
2.26 I/O 访问故障组织块(OB122)
2.26.1 描述
当对模板的数据访问出现故障时CPU 的操作系统调用OB122。例如,如果CPU 对
I/O 模板的数据访问时检测到读故障,操作系统调用OB122。
2.26.2 理解I/O 访问故障OB 的运行
OB122 与被中断的块在同一优先级中执行。如果OB122 未编程,CPU 从RUN 方
式进入STOP 方式。S7 提供了下列SFC 在您的程序执行期间对OB122 进行屏
蔽和解除屏蔽:
* SFC36(MSK_FLT):屏蔽特定的故障代码
* SFC37(DMSK_FLT):解除被SFC36 屏蔽的故障代码
* SFC38(READ_ERR):读故障寄存器
2.26.3 I/O 访问故障OB 的局部数据
OB121_RESERVED_1: 位3 至0 存储器区:0:I/O 区1:过程映像输入表
2:过程映像输出表
3:位存储器
4:全局DB
5:背景DB
6:自己的局部数据
7:调用者的局部数据
B#16#24: 当读时区间故障
B#16#25: 当写时区间故障
在低字节含有非法区的ID(B#16#86 自己的局部数据
OB121_FLT_REG:
区)
B#16#26: 定时器号码故障
B#16#27: 计数器号码故障
OB121_FLT_REG: 非法的号码
B#16#30: 写访问至具有写保护的全局DB
B#16#31: 写访问至具有写保护的背景DB
B#16#32: 访问全局DB 时DB 号码故障
B#16#33: 访问背景DB 时DB 号码故障
OB121_FLT_REG: 非法的DB 号
B#16#34: 在FC 调用时FC 号码故障
B#16#35: 在FB 调用时FB 号码故障
B#16#3A: 访问未下装的DB,DB 号在允许范围
B#16#3C: 访问未下装的FC,FC 号在允许范围
B#16#3D: 访问未下装的SFC,SFC 号在允许范围
B#16#3E: 访问未下装的FB,FB 号在允许范围
B#16#3F: 访问未下装的SFB,SFB 号在允许范围
OB121_FLT_REG: 非法号码
2.26 I/O 访问故障组织块(OB122)
2.26.1 描述
当对模板的数据访问出现故障时CPU 的操作系统调用OB122。例如,如果CPU 对
I/O 模板的数据访问时检测到读故障,操作系统调用OB122。
2.26.2 理解I/O 访问故障OB 的运行
OB122 与被中断的块在同一优先级中执行。如果OB122 未编程,CPU 从RUN 方
式进入STOP 方式。S7 提供了下列SFC 在您的程序执行期间对OB122 进行屏
蔽和解除屏蔽:
* SFC36(MSK_FLT):屏蔽特定的故障代码
* SFC37(DMSK_FLT):解除被SFC36 屏蔽的故障代码
* SFC38(READ_ERR):读故障寄存器
2.26.3 I/O 访问故障OB 的局部数据
楼主最近还看过