长沙工控帮教育科技有限公司整理
1.3 时钟中断组织块 (OB10到OB17)
描述
STEP 7提供了多达八个OB (OB10 到OB17),这些OB可单次运行,也可定期运行。
可使用SFC或STEP 7为CPU分配参数,以便以下列时间间隔处理这些OB:
• 单次
• 每分钟
• 每小时
• 每天
• 每周
• 每月
• 每个月末
注意
对于每月执行的时钟中断OB,只可将1、2、...28号作为起始日期。
了解时钟中断OB的操作
要启动时钟中断,必须先设置中断,然后再将其激活。
有以下三种可能的启动方式:
• 自动启动时钟中断。一旦使用STEP 7设置并激活了时钟中断,即会发生此情况
。下表说明了使用STEP 7激活时钟中断的基本可能情况。
• 使用STEP 7设置日时钟中断,然后通过调用程序中的SFC30 “ACT-TINT”来激活 它。
• 通过调用SFC28 “SET_TINT”来设置日时钟中断,然后通过调用 SFC30 “ACT_TINT”来激活它。
长沙工控帮教育科技有限公司整理
时间间隔 描述
未激活 时钟中断未执行,即使将其装载到CPU中也是如此。可通过调用SFC30来激活它。
仅激活一次 时间OB按指定时间运行一次后,即被自动取消。
用户程序可使用SFC28和SFC30来复位并重新激活OB。
定期激活 当发生时钟中断时,CPU将根据当前的时间和周期计算时间中断的下一次启动的时间。
当前后拨动时钟时,时间中断的特性将如234
注意
如果以如下方式组态时间中断,即单次处理相应的OB要,则DATE_AND_TIME必须为过去的 时间(相对于CPU的实际时间)。
如果以如下方式组态时间中断,即定期处理相应的OB,而启动DATE_AND_TIME为过去的时 间,随后将在下次预期的时间处理该时间中断。下图对此进行了说明。
可以使用SFC 39至42禁用或延迟和重新启用时钟中断。
Preset start time
Current time
Preset interval
Point at which the time-of-day interrupt OB is first executed.
长沙工控帮教育科技有限公司整理
影响时钟中断OB的条件
由于时间中断仅以指定的时间间隔发生,因此在执行用户程序期间,某些条件可能 会影响OB的操作。下表列出了其中的一些条件,并说明了该条件对执行时间中断 OB的影响。
条件 结果
用户程序调用SFC29 (CAN_TINT)并取消时 间中断。
则CPU将转为STOP模式。
当同步或更正CPU的系统时钟时,用户提前 次数。OB80的启动事件信息给出了第一次跳过时间OB的 DATE_AND_TIME。
当同步或更正CPU的系统时钟时,推后设置 了时间以使OB的启动事件、日期或时间得以 重复。
S7-400-CPU和CPU 318:
如果在推后设置时钟之前已激活了时间OB,则不会再次调 用它。
S7-300-CPU:执行时间OB。
CPU通过暖重启或冷重启运行。 由SFC组态的所有时间OB会被改回在STEP 7中指定的
操作系统调用OB80。如果OB80没有编程,则CPU转为 STOP模式。
如果装载了OB80,则会首先执行OB80和时钟中断OB,
然后再执行请求的中断。
长沙工控帮教育科技有限公司整理
时钟中断OB的本地数据
下表给出了时间中断OB的临时(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#0000:单次 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时的DATE_AND_TIME
长沙工控帮教育科技有限公司整理
1.4