1、 组织块使用说明 1、组织块总览(OB) 11 什么是组织块? 组织块是操作系统和用户程序之间的接口。OB 用于执行具体的程序: 在CPU 启动时 在一个循环或时钟执行时 当发生故障时 当发生硬件中断时 组织块根据其优先级执行。 12 可使用哪些组织块? 不是所有的CPU 都能处理STEP 7 中所有的组织块。至于您使用的CPU 中包括哪些OB, 请参见操作列表/72/和/102/。 何处可以找到更多信息? 参见在线帮助和以下手册可以得到更多的信息: /70/:该手册包含有描述不同S7-300 CPU 功能的技术数据。 /101/:该手册包含有描述不同S7-400 CPU 功能的技术数据。下列
2、表格中包含每一个OB 的启动事件及对应的优先级。 OB 启动事件 默认的优先级 解释 OB1 启动结束或OB1 执行结束 1 自由循环 OB10 日期时间中断0 2 没有指定缺省时 OB11 日期时间中断1 2 间 OB12 日期时间中断2 2 OB13 日期时间中断3 2 OB14 日期时间中断4 2 OB15 日期时间中断5 2 OB16 日期时间中断6 2 OB17 日期时间中断7 2 OB20 延时中断0 3 没有指定缺省时 OB21 延时中断1 4 间 OB22 延时中断2 5 OB23 延时中断3 6 OB 启动事件 默认的优先级 解释 OB30 循环中断0(缺省时间间隔:5s)
3、7 循环中断 OB31 循环中断1(缺省时间间隔:2s) 8 OB32 循环中断2(默认时间间隔:1s) 9 OB33 循环中断3(默认时间间隔:500ms) 10 OB34 循环中断4(默认时间间隔:200ms) 11 OB35 循环中断5(默认时间间隔:100ms) 12 OB36 循环中断6(默认时间间隔:50ms) 13 OB37 循环中断7(默认时间间隔:20ms) 14 OB38 循环中断8(默认时间间隔:10ms) 15 OB40 硬件中断0 16 硬件中断 OB41 硬件中断1 17 OB42 硬件中断2 18 OB43 硬件中断3 19 OB44 硬件中断4 20 OB45
4、硬件中断5 21 OB46 硬件中断6 22 OB47 硬件中断7 23 OB55 状态中断 2 DPV1 中断 OB56 刷新中断 2 OB57 制造厂商用特殊中断 2 OB60 SFC 35“MP_ALM”调用 25 多处理器中断 OB61 周期同步中断1 25 同步循环中断 OB62 周期同步中断2 25 OB63 周期同步中断3 25 OB64 周期同步中断4 25 OB70 I/O 冗余故障(只对于H CPU) 25 冗余故障中断 OB72 CPU 冗余故障(只对于H CPU) 28 OB73 通讯冗余故障(只对于H CPU) 25 OB80 时间故障 26,281) 同步故障中断
5、OB81 电源故障 25,281) OB82 诊断中断 25,281) OB83 模板插/拔中断 25,281) OB84 CPU 硬件故障 25,281) OB85 程序故障 25,281) OB86 扩展机架、DP 主站系统或分布式I/O 从站故障 25,281) OB87 通讯故障 25,281) OB88 过程中断 28 OB90 暖或冷启动或删除一个正在OB90 中执行的块或装载一个OB90 到CPU 或中止OB90 292) 背景循环 1-2 OB 启动事件 默认的优先级 解释 OB100 暖启动 271) 启动 OB101 热启动 271) OB102 冷启动 271) OB12
6、1 编程故障 引起故障的OB 的 同步故障中断 OB122 I/O 访问故障 优先级 引起故障的OB 的优先级 1)优先级27 和28 在优先级启动模式中是有效的。2)优先级29 对应于优先级 0.29。这意味着背景循环比自由循环具有更低的优先级。 2 组织块说明 21 程序循环组织块(OB1) 211 描述 S7 CPU 操作系统周期性地执行组织块OB1 程序。当OB1 执行完毕,操作系统再次启动它。CPU 启动后,OB1 循环执行。您可以在OB1 中调用其它功能块(FB,SFB )或功能(FC,SFC )。 212 理解OB1 的运行 OB1 的优先级最低。其循环时间被监控。即除OB90
7、以外,其它所有OB 均可中断OB1 的执行。以下事件可导致操作系统调用OB1: CPU 启动完毕。 OB1 执行到上一个循环周期结束。 OB1 执行完后,操作系统发送全局数据。再次启动OB1 之前,操作系统会将输出映像区数据写入输出模板,刷新输入映像区并接收全局数据。S7 监视最长循环时间,保证最长的响应时间。最长循环时间缺省设置为150ms。您可以 设一个新值或通过SFC43“RE_TRIGR”重新启动时间监视功能。如果您的程序超过了OB1 最长循环时间,操作系统将调用OB80(时间故障OB);如果OB80 不存在,则CPU 停机。 除了监视最长循环时间,还可以保证最短循环时间。操作系统将延
8、长下一个新循环(将输 出映像区数据传送到输出模板)直到最短循环时间到。参见手册/70/和/101/参数“最长”、“最短”循环时间的范围。您可以运用STEP 7 软件更改参数设置。 213 OB1 的局部数据 以下表格描述了OB1 的临时变量(TEMP)。变量名是OB1 的缺省名称。 变量 类型 描述 OB1_EV_CLASS BYTE 事件等级和标识码:B#16#11:OB1 激活 OB1_SCAN_1 BYTE B#16#01 :暖启动完成 B#16#02 :热启动完成 B#16#03 :主循环完成 B#16#04 :冷启动完成 B#16#05: 当前一个主站CPU 停机,后备新主站CPU
9、的第一次OB1 循环 OB1_PRIORITY BYTE 优先级1 OB1_OB_NUMBR BYTE OB 号(01) OB1_RESERVED_1 BYTE 备用 OB1_RESERVED_2 BYTE 备用 OB1_PREV_CYCLE INT 上一次OB1 的循环时间(ms) OB1_MIN_CYCLE INT 自CPU 启动,最短一次OB1 的循环时间(ms) OB1_MAX_CYCLE INT 自CPU 启动,最长一次OB1 的循环时间(ms) OB1_DATE_TIME DATE_AND_TIME OB 被调用的日期和时间 22 日期时间中断组织块 (OB10 到OB17) 22
10、1 描述 STEP 7 提供多达8 个OB(OB10 到OB17),它们可以运行一次或周期性地运行。您可以运用SFC 或STEP 7 给CPU 分配参数,这样OB 将以下列的间隔运行: 一次 每分钟 每小时 每天 每周 每月 每月底 222 理解日期时间中断组织块OB 的运行 在启动日期时间中断时,您必须首先设置和激活中断。 以下三种方式可以设置和激活中断: 自动启动日期时间中断。您可通过STEP 7 设置并激活中断。下表显示通过STEP 7 激活日期时间中断的基本可能性。 您可以在STEP 7 中设置日期时间中断,然后通过程序调用SFC30“ACT-TINT”,激活日期时间中断。 您可以通过
11、调用SFC28 “ SET_TINT ” 设置日期时间中断,通过调用SFC30 “ACT_TINT”,激活日期时间中断。 时间间隔 描述 没有激活 日期时间中断没有执行,即使已装载到CPU。可以通过调用SFC30 激活。 只激活一次 日期时间中断运行一次后,日期时间中断OB 自动取消。 您可以通过调用SFC28 和SFC30 重新设置和重新激活日期时间中断OB。 周期性地激活 当日期时间中断发生后,CPU 根据当前的时间计算下一次的中断启动时间。 如果您设定日期时间中断相应的OB 是执行一次,那么日期时间(DATE_AND_TIME )不能是过去(与CPU 的实时时钟相关)的日期时间。如果您设
12、定日期时间中断相应的OB 是周期性的执行,日期时间(DATE_AND_TIME )是过去的日期和时间,那么日期时间中断将按下图所示在下次执行。 您可以用SFC39 到SFC42 禁止、延迟和重新使能日期时间中断。 223 影响日期时间中断OB 的条件 因为日期时间中断只在规定的时间间隔发生,某些条件会在程序执行时影响OB 的运行。下面表格显示了一些影响日期时间中断OB 运行的条件和描述。 条件 结果 您编程调用SFC29(CAN_TINT),取消了 操作系统清除日期时间中断的事件日期时间(DATE_ 日期时间中断。 AND_TIME )。在此OB 被调用之前,您必须重新设置并 激活它。 您编程
13、激活日期时间中断OB,但此OB 在 操作系统调用OB85。如果OB85 在CPU 中不存在,CPU CPU 中不存在。 将停机。 条件 结果 当同步或校正CPU 系统时钟时,您设置的时间超前并跳过了日期时间中断OB 的启动事件。 操作系统调用OB80 并在OB80 中编译日期时间中断OB 号和启动事件信息。操作系统运行一次日期时间中断OB, 不考虑这个OB 应该运行多少次。OB80 的启动事件信息显示了OB 第一次被跳过的日期和时间(DATE_AND_TIME )。 当同步或校正CPU 系统时钟时,时间被向后设置,于是OB 的启动事件、日期或时间被重复。 如果日期时间OB 在时钟修改之前已激活
14、,那么此OB 不再被调用。 CPU 在暖启动或冷启动期间。 任何由SFC 配置的日期时间OB, 都须遵从STEP7 中组态的设置。如果您组态了一个启动一次的日期时间中断OB 在STEP7 中,组态的时间是过去(相对于CPU 的实时时钟), 并且已激活,在操作系统暖启动或冷启动后,这个 OB 将被调用一次。 下一个时间间隔启动事件发生时,日期时间OB 仍在执行。 操作系统调用OB80。如果OB80 不存在,则CPU 停机。如果OB80 已装载,那么OB80 和日期时间中断OB 都执行第一次,并且第二个中断请求也被执行。 224 日期时间中断OB 的局部数据 下列表格描述了日期时间中断的临时变量(
15、TEMP)。变量名为OB10 的缺省名称。 变量 类型 描述 OB10_EV_CLASS BYTE 事件级和识别码:B#16#11=中断激活 OB10_STRT_INFO BYTE B#16#11:启动请求OB10 (B#16#12:启动请求OB11) : : (B#16#18:启动请求OB17) OB10_PRIORITY BYTE 分配的优先级:默认2 OB10_OB_NUMBR BYTE OB 号(10 到17) OB10_RESERVED_1 BYTE 保留 OB10_RESERVED_2 BYTE 保留 OB10_PERIOD_EXE WORD OB 以特殊的间隔运行:W#16#00
16、00:一次W#16#0201:每分钟一次W#16#0401:每小时一次W#16#1001:每天一次W#16#1201:每周一次W#16#1401:每月一次W#16#1801:每年一次W#16#2001:每月底 OB10_RESERVED_3 INT 保留 OB10_RESERVED_4 INT 保留 OB10_DATE_TIME DATE_AND_TIME OB 调用时的日期和时间 23 延时中断组织块(OB20 到 OB23) 231 描述 S7 提供多达4 个OB(OB20 到OB23),它们经过一段指定的延时后运行。每一个OB 在调用SFC32(SRT_DINT )后启动。延时时间在SF
17、C 的参数中设定。当您编程SFC32(SRT_DINT )时,需提供OB 号、延时时间和一个用户指定的标识符。指定的延时到,OB 启动。您也可以取消还没有启动的延时中断。 232 理解延时中断OB 的运行 当延时时间到(毫秒时间和OB 号一起传给SFC32 )时,操作系统启动相应的OB。运用延时中断,您必须做下列事项: 您必须调用SFC32(SRT_DINT); 您必须下载日期时间中断OB 到CPU 中。 延时OB 只有在CPU 处于运行状态时才运行。一个暖启动或冷启动清除任何延时OB 的启动事件。如果延时中断还没有启动,您可以调用SFC33(CAN_DINT )去取消它的执行。延时时间分辨率
18、为1 毫秒,如果延时时间超出则立即再次启动延时。通过调用 SFC34 (QRY_DINT )可以查询延时中断的状态。 如果以下事件发生,操作系统调用一个异步OB: 如果您在调用SFC32(SRT_DINT )时启动的是没有下载到CPU 中的OB。 如果一个延时中断OB 执行未结束,下一个延时中断启动事件发生。您可以运用SFC 39 到SFC 42 取消、延时和再使能延时中断。 233 延时中断组织块OB 的局部数据 下面表格描述了延时中断OB 的临时变量。变量名是OB20 的缺省名称。 变量 类型 描述 OB20_EV_CLASS BYTE 事件级别和识别码: B#16#11:中断激活 OB2
19、0_STRT_INF BYTE B#16#21: OB20 启动请求 (B#16#21: OB21 启动请求)(B#16#22:OB22 启动请求)(B#16#23:OB23 启动请求) OB20_PRIORITY BYTE 分配的优先级:默认值为3(OB20)到6(OB23) OB20_OB_NUMBR BYTE OB 号(20 到23) OB20_RESERVED_1 BYTE 保留 OB20_RESERVED_2 BYTE 保留 OB20_SIGN WORD 用户ID:SFC32(SRT_DINT )的输入参数SIGN 变量 类型 描述 OB20_DTIME TIME 以毫秒形式组态的延
20、时时间 OB20_DATE_TIME DATE_AND_TIME OB 被调用时的日期和时间 2 4 循环中断组织块(OB30 到OB38) 241 描述 S7 提供多达9 个循环中断组织块OB(OB30 到OB38),它们经过一段固定的时间间隔中断您的程序。下面表格显示了循环中断OB 默认的时间间隔和优先级。 OB 号 默认的时间间隔 默认的优先级 OB30 5 秒 7 OB31 2 秒 8 OB32 1 秒 9 OB33 500 毫秒 10 OB34 200 毫秒 11 OB35 100 毫秒 12 OB36 50 毫秒 13 OB37 20 毫秒 14 OB38 10 毫秒 15 242
21、 理解循环中断组织块OB 的运行 循环中断OB 的等距时间间隔,是由时间间隔和相位偏移量确定。参见/234/中OB 启动时间、时间周期和相位偏移量的关系。 注意:您必须确认循环中断OB 每一次运行的时间一定要短于中断的间隔。如果一个循环中断OB 没有执行完,循环中断时间到,又要求循环中断OB 运行,则时间故障组织块OB80 启动。循环中断导致故障程序的运行。 您可以运用SFC39 到42 取消或延时和再次使能循环中断。对于您使用的CPU 参数时间间隔、优先级、相位偏移量的设置范围请参见相应CPU 的描述。您可以用STEP7 软件修改参数设置。 243 循环中断组织块OB 的局部数据 下面表格描
22、述了循环中断组织块OB 的临时变量(TEMP)。变量名称是OB35 的缺省名称。 变量 类型 描述 OB35_EV_CLASS BYTE 事件级别和识别码 B#16#11:中断激活 OB35_STRT_INF BYTE B#16#30: 循环中断组织块OB 的启动请求,只对于特殊标准(只有H 型CPU 并且明确地为其组态)B#16#31 :OB30 启动请求 : B#16#36 :OB35 启动请求 : B#16#39 :OB38 启动请求 OB35_PRIORITY BYTE 分配的优先级:默认7(OB30)到15(OB38) OB35_OB_NUMBR BYTE OB 号(30 到38)
23、OB35_RESERVED_1 BYTE 保留 OB35_RESERVED_2 BYTE 保留 OB35_PHASE_OFFSET WORD 相位偏移量毫秒 OB35_RESERVED_3 INT 保留 OB35_EXC_FREQ INT 时间间隔,以毫秒计 OB35_DATE_TIME DATE_AND_TIME OB 调用时的日期和时间 25 硬件中断组织块(OB40 到 OB47) 251 描述 S7 提供多达8 个独立的硬件中断组织块OB(OB40 到OB47)。通过STEP 7 进行参数赋值,可以为能够触发硬件中断的每一个信号模板指定以下参数。 哪个通道在哪种条件下触发一个硬件中断。
24、 一个硬件中断OB 被分配到单独的通道组。 (作为默认, 所有硬件中断被OB40 处理) 运用CP 和FM 模板,您可以用它们自己的软件设置这些参数。 您可以运用STEP 7 为每一个硬件中断OB 选择优先级。 252 理解硬件中断组织块OB 的运行 在硬件中断被模板触发之后,操作系统识别相应的槽和相应的硬件中断OB。如果这个OB比当前激活的OB 优先级高,则启动该OB。在硬件中断OB 执行之后,将发送通道确认。如果在处理硬件中断的同时,同一中断模板上有另一个硬件中断,这个新的中断的识别与确认过程如下: 如果事件发生在以前触发硬件中断的通道,旧的硬件中断触发程序正在执行,则新中断丢失。如下面图
25、所示。图中例子是一个数字量输入模板的通道。触发信号是上升沿。硬件中断OB 是OB40。 如果这个事件发生在同一模板的另一个通道,那么没有硬件中断能被触发。但是这个 中断没有丢失,在确认当前激活硬件之后被触发。如果一个硬件中断触发并且它的OB 正在由于另一个模板的硬件中断而激活着,则记录新的中断申请,在空闲后会执行该中断。 用SFC 39 42 可以禁止、延时和再使能硬件中断。您可以用STEP 7 中的SFC 55 到57,为硬件中断模板分配参数。 253 硬件中断OB 的局部数据 下列表格中描述了硬件中断OB 的临时变量(TEMP)。变量名是OB40 的缺省名称。 变量 类型 描述 OB40_
26、EV_CLASS BYTE 事件级别和诊断号: B#16#11:中断被激活 OB40_STRT_INF BYTE B#16#41 :中断通过中断行1 B#16#42 :中断通过中断行2(只对S7-400) B#16#43 :中断通过中断行3(只对S7-400) B#16#44 :中断通过中断行4 (只对S7-400) B#16#45:WinAC 通过PC 触发的中断 OB40_PRIORITY BYTE 分配优先级: 默认16 (OB40) 到23 (OB47) OB40_OB_NUMBR BYTE OB 号(40 到47) OB40_RESERVED_1 BYTE 保留 OB40_IO_FL
27、AG BYTE 输入模板: B#16#54 输出模板: B#16#55 OB40_MDL_ADDR WORD 触发中断模块的逻辑地址 OB40_POINT_ADDR DWORD 数字模板:带有模板输入状态的位字段(0 位对应第一个输入) 模拟模板:带有限幅信息输入通道的位字段 (结构详见/71/ 或/101/) CP 或IM: 模块中断状态(不是与用户相关的) OB40_DATE_TIME DATE_AND_TIME OB 被调用的日期和时间 注意:如果您用有DPV1 能力的CPU,您可以通过SFB54“RELRM”获取额外的信息,此信息超出了OB 的启动信息。当您在S7 兼容模式下运行工业现
28、场总线DP 主站时, 此信息也会提供。 26 状态中断组织块(OB 55) 注意:一个状态中断组织块OB(OB 55)只在有DPV1 能力的CPU 中存在。 261 描述 如果状态中断通过DPV1 从站槽触发,CPU 操作系统调用OB55。这可能是一个DPV1 从站组件更改其操作模式的情况。例如从运行到停止。事件触发一个状态中断的详细信息,参见DPV1 从站手册。 262 状态中断组织块OB 的局部变量 下面表格包含了状态中断的临时变量(TEMP)。变量名是OB55 的缺省名称。 变量 类型 描述 OB55_EV_CLASS BYTE 事件级别和标识:B#16#11(即将发生的事件) OB55
29、_STRT_INF BYTE B#16#55:(OB55 启动请求) OB55_PRIORITY BYTE 组态的优先级,默认值为2 OB55_OB_NUMBR BYTE OB 号(55) OB55_RESERVED_1 BYTE 备用 OB55_IO_FLAG BYTE 输入模板: B#16#54 输出模板: B#16#55 OB55_MDL_ADDR WORD 中断触发组件(模板)的逻辑地址 OB55_LEN BYTE 中断提供的数据块长度 OB55_TYPE BYTE “状态中断”的中断ID 号 OB55_SLOT BYTE 中断触发组件(模板)的槽号 OB55_SPEC BYTE 详细
30、说明 位0 至1:中断详细说明 位2:ADD_Ack 位3 至7:Seq. No.e OB55_DATE_TIME DATE_AND_TIME OB 被调用的日期时间 注意:您可以在OB55 中通过调用SFB54“RALRM”,从工业现场总线DP 信息报文中可以得到更新的信息。 27 刷新中断组织块(OB 56) 注意:一个刷新中断组织块OB(OB56)只在有DPV1 能力的CPU 中存在。 271 描述 如果刷新中断通过DPV1 从站槽触发,CPU 运行系统调用OB56。这可能是如果您变换了DPV1 从站槽的参数(通过本地或远程访问)。详细的刷新中断触发事件信息,参见DPV1 从站手册。 2
31、72 刷新中断组织块OB 的局部变量 下面表格包含了更新中断的临时变量(TEMP)。变量名是OB56 的缺省名称。 变量 类型 描述 OB56_EV_CLASS BYTE 事件级别和标识:B#16#11(即将发生的事件) OB56_STRT_INF BYTE B#16#56(OB56 启动请求) OB56_PRIORITY BYTE 组态的优先级,默认值为2 OB56_OB_NUMBR BYTE OB 号(56) OB56_RESERVED_1 BYTE 备用 OB56_IO_FLAG BYTE 输入模板: B#16#54 输出模板: B#16#55 OB56_MDL_ADDR WORD 中断
32、触发组件(模板)的逻辑地址 OB56_LEN BYTE 中断提供的数据块长度 OB56_TYPE BYTE “刷新中断”的中断ID 号 OB56_SLOT BYTE 中断触发组件(模板)的槽号 OB56_SPEC BYTE 详细说明 位0 至1: 中断详细说明 位2:ADD_Ack 位3 至7:Seq. No. OB56_DATE_TIME DATE_AND_TIME OB 调用的日期时间 注意:您可以在OB55 中通过调用SFB54“RALRM”,从工业现场总线D 信息报文中可以得到更多信息。 28 制造商用中断组织块(OB57) 注意:制造商指定的中断组织块OB(OB57)只在有DPV1
33、能力的CPU 中存在。 281 描述 如果制造商用中断通过DPV1 从站槽触发,CPU 运行系统调用OB57。 282 制造商用中断组织块OB 的局部变量 下表包含了制造商用中断的临时变量(TEMP)。变量名是OB57 的缺省名称。 变量 类型 描述 OB57_EV_CLASS BYTE 事件级别和标识:B#16#11(即将发生的事件) OB57_STRT_INF BYTE B#16#57(OB57 启动请求) OB57_PRIORITY BYTE 组态的优先级,默认值为2 OB57_OB_NUMBR BYTE OB 号(57) OB57_RESERVED_1 BYTE 备用 OB57_IO_
34、FLAG BYTE 输入模板: B#16#54 输出模板: B#16#55 OB57_MDL_ADDR WORD 中断触发组件(模板)的逻辑地址 OB57_LEN BYTE 中断提供的数据块长度 OB57_TYPE BYTE “属于制造厂商中断”的中断ID 号 OB57_SLOT BYTE 中断触发组件(模板)的槽号 OB57_SPEC BYTE 详细说明 位0 至1: 中断详细说明 位2:ADD_Ack 位3 至7:Seq. No. OB57_DATE_TIME DATE_AND_TIME OB 被调用的日期时间 注意:您可以在OB57 中通过调用SFB54“RALRM”,从工业现场总线DP
35、 信息报文中可以得到更多信息。 29 多处理器中断组织块(OB60) 291 描述 使用多处理器中断,您可以确定在多处理器运行期间CPU 的反应是否与一个事件同步。同硬件中断由信号模板触发相反,多处理器中断仅由CPU 输出。 292 理解多处理器中断OB 的运行 多处理器中断通过调用SFC35“MP_ALM” 触发。在多处理器运行期间,它使得总线段中的所有CPU 的OB60 同步启动,除非您封锁OB60(用SFC39“DIS_IRT”) 或延迟它(用SFC41“DIS_AIRT ”)。如果您没有把OB60 下装到CPU,CPU 返回中断之前的上一优先级并在那里继续程序执行。在单处理器运行时和使
36、用分段的机架,OB60 仅在您调用SFC35“MP_ALM”的CPU 中启动。 当您的程序调用SFC35“MP_ALM ”, 您要给出任务ID。这一ID 传送到所有CPU。由此您可以对特定事件作出反应。如果您在不同的CPU 中编写不同的OB60,这可能导致OB 的执行时间不同。在这种情况下,CPU 在不同的时间返回被中断的优先级。如果当一个CPU 仍在忙于执行前一个多处理器中断的OB60 时一个CPU 又发出多处理器中断,那么不但发出请求的而且属于同一总线的其它所有CPU 的OB60 都不启动。两个CPU 的举例如下图所示。您可以通过所调用的SFC35 的功能数据中得到信息。 293 多处理器
37、中断OB 的局部数据 下表描述了多处理器中断OB 的临时(TEMP)变量。变量名是OB60 的缺省名称。 变量 类型 描述 OB60_EV_CLASS BYTE 事件代码和ID:B#16#11:中断被激活 OB60_STRT_INF BYTE B#16#61 :多处理器中断由本CPU 触发 B#16#62 : 多处理器中断由其它CPU 触发 OB60_PRIORITY BYTE 所选的优先级:缺省25 OB60_OB_NUMBR BYTE OB 号:60 OB60_RESERVED_1 BYTE 备用 OB60_RESERVED_2 BYTE 备用 OB60_JOB INT 任务ID:SFC3
38、5“MP_ALM”的输入变量JOB OB60_RESERVED_3 INT 备用 OB60_RESERVED_4 INT 备用 OB60_DATE_TIME DATE_AND_TIME OB 被调用时的日期和时间 210 周期同步中断OB(OB 61 至OB 64) 2101 描述 周期同步中断给您提供与DP 周期同步启动程序的选择。OB61 作为接口OB 提供周期同步中断TSAL1。您可以在0(不选择OB)和从2 至26 之间为OB 61 设定优先级。 2102 周期同步中断OB 的局部数据 下表描述了周期同步中断OB 的临时(TEMP)变量。变量名为OB 61 的缺省名称。 变量 类型 描
39、述 OB61_EV_CLASS BYTE 事件代码和ID:B#16#11:中断被激活 OB61_STRT_INF BYTE B#16#64: OB 61 的启动请求 : B#16#67:OB 64 的启动请求 OB61_PRIORITY BYTE 选择的优先级;缺省:25 OB61_OB_NUMBR BYTE OB 号:61 64 OB61_RESERVED_1 BYTE 备用 OB61_RESERVED_2 BYTE 备用 OB61_GC_VIOL BOOL GC 违反 OB61_FIRST BOOL 启动或停止状态后首次使用 OB61_MISSED_EXEC BYTE 从OB 61 最后一
40、次执行以来OB61 启动失败的次数 OB61_DP_ID BYTE 同步DP 主站系统的DP 主站系统ID 变量 类型 描述 OB61_RESERVED_3 BYTE 备用 OB61_RESERVED_4 WORD 备用 OB61_RESERVED_5 WORD 备用 OB61_DATE_TIME DATE_AND_TIME OB 被调用时的日期和时间 211 I/O 冗余故障OB(OB70) 注意:I/O 冗余故障OB(OB70)仅可用在H CPU。 2111 描述 当PROFIBUS DP 上的冗余丢失(例如,主动的DP 主站总线故障或DP 从站的接口模板出现故障时)或当主动的DP 主站的
41、DP 从站连接的I/O 改变时,H CPU 的操作系统调用OB70。 如果启动事件出现且OB70 未编程时CPU 不变为STOP 方式。如果OB70 已下装且如果该H 系统处于冗余方式,两个CPU 都执行OB70。H 系统保持冗余方式。 2112 I/O 冗余OB 的局部数据 下表含有I/O 冗余故障OB 的临时(TEMP)变量。变量名为OB70 的缺省名称。 变量 类型 描述 OB70_EV_CLASS BYTE 事件级别和ID: B#16#72:离去事件 B#16#73 :到来事件 OB70_FLT_ID BYTE 故障代码(可能值:B#16#A2,B#16#A3 OB70_PRIORIT
42、Y BYTE 优先级: 可通过STEP7 选择 (硬件组态) OB70_OB_NUMBR BYTE OB 号(70) OB70_RESERVED_1 WORD 备用 OB70_INFO_1 WORD 根据故障代码 OB70_INFO_2 WORD 根据故障代码 OB70_INFO_3 WORD 根据故障代码 OB70_DATE_TIME DATE_AND_TIME OB 被调用时的日期和时间 下表显示OB70 启动时的事件。 OB70_FLT_ID OB70 的启动事件 B#16#A2 DP 主站或DP 主站系统故障 B#16#A3 冗余丢失/DP 从站的冗余恢复 根据故障代码这些变量有以下意
43、义: 故障代码 位 意义 B#16#A2 OB70_INFO_1: 出问题的DP 主站的逻辑起始地址 OB70_INFO_2: 备用 OB70_INFO_3: 0 至7: 备用 8 至15: 出问题的DP 主站的DP 主站系统ID B#16#A3 OB70_INFO_1: DP 主站的逻辑起始地址 OB70_INFO_2: 受影响的DP 从站: 0 至14: 逻辑起始地址,如果使用S7 从站或,诊断地址,如果使用DP 标准从站。 OB70_INFO_3 15: 0 至7: I/O 标识受影响的DP 从站DP 站的数量 8 至15: DP 主站系统ID 注意:如果您使用具有DPV1 能力的CPU
44、,您可以借助于SFB54“RALRM”获得超出OB 启动信息的进一步的中断信息。当您以S7 兼容方式使用DP 主站时也是一样。 212 CPU 冗余故障OB(OB72) 注意:CPU 冗余故障OB(OB72)仅用于H CPU。 2121 描述 当下列事件出现时H CPU 的操作系统调用OB72: CPU 冗余丢失 预定的主站切换 同步故障 SYNC 模板故障 刷新终止 比较故障(例如,RAM,PIQ) 所有处于RUN 或STARTUP 方式的CPU 随着相应的启动事件执行OB72。 2122 CPU 冗余故障OB 的局部数据 下表含有CPU 冗余故障OB 的临时(TEMP)变量。变量名为OB7
45、2 的缺省名。 变量 类型 描述 OB72_EV_CLASS BYTE 事件级别和ID: B#16#78:离去事件 B#16#73,B#16#75,B#16#79 :到来事件 OB72_FLT_ID BYTE 故障代码(可能值:B#16#01,B#16#02,B#16#03, B#16#20,B#16#21,B#16#22,B#16#23,B#16#31, B#16#33,B#16#34,B#16#35,B#16#40,B#16#41, B#16#42,B#16#43,B#16#44,B#16#50,B#16#51, B#16#52,B#16#53,B#16#54,B#16#55,B#16#5
46、6, B#16#C1,B#16#C2) OB72_PRIORITY BYTE 优先级:可通过STEP 7 选择(硬件组态) OB72_OB_NUMBR BYTE OB 号(72) OB72_RESERVED_1 WORD 仅用于故障代码B#16#03: 高字节:OB72_1NFO_2 和OB72_1NFO_3 内容的ID 0:OB72_INFO-2 和OB72_INFO_3 没意义 B#16#C4 :伴随着备用主站切换(如果OB72_INFO_3=W#16#0001) 或不伴随备用主站切换(如果OB72_INFO_3=W#16#0002) 故障排除之后转换到冗余方式。 OB72_INFO_2
47、预留。 B#16#CD:OB72_INFO_2 和OB72_INFO_3 含有优先级15 的实际封锁时间 低字节:预留 变量 类型 描述 OB72_INFO_1 WORD 仅用于故障代码B#16#C2: 高字节:超出监视时间的ID: 1:扫描周期时间增加 2:I/O 无效时间 3:通讯时间延迟 低字节:当前的刷新尝试 OB72_INFO_2 WORD 仅用于故障代码B#16#03 且OB72_RESERVED_1= B#16#CD:以ms 优先级15 的实际封锁时间的高字节 OB72_INFO_3 WORD 仅用于故障代码B#16#03: OB72_RESERVED_1=B#16#C4: W#
48、16#0001:备用主站切换,排除了故障之后转换到冗余方式 W#16#0002:没有备用主站的切换,排除了故障之后转换到冗余方式 OB72_RESERVED_1=B#16#C4 :优先级15 的以ms 实际封锁时间的高字节 OB82_DATE_TIME DATE_AND_TIME OB被调用的日期和时间 下表显示导致OB72 启动的事件。 OB72_FLT_ID OB72 的启动事件 B#16#01 由于CPU 故障冗余丢失(二中之一) B#16#02 由于用户触发STOP 而冗余丢失(二中之一) B#16#03 H 系统(二中之一)变为冗余方式 B#16#20 RAM 比较故障 B#16#2
49、1 比较过程映像输出值故障 B#16#22 比较标志、定时器或计数器故障 B#16#23 识别出不同的操作系统数据 B#16#31 由于主站故障备用主站切换 B#16#33 在运行时由于系统改变备用主站切换 B#16#34 由于同步模切连接问题备用主站切换 B#16#35 由90“H_CTRL”触发备用主站切换 B#16#40 由于超出等待时间用户程序中的同步故障 B#16#41 由于在不同的同步点等待用户程序中的同步故障 B#16#42 由于在不同的同步点等待操作系统中的同步故障 B#16#43 由于超出等待时间操作系统中的同步故障 B#16#44 由于错误的数据操作系统中的同步故障 B#16#50 无SYNC 模块 B#16#51 未