S7 较多提供八个 OB(OB 10 至 OB 17),这些 OB 可单次启动,也可定期启动。 可以采用按下列间隔处理这些 OB 的方法,为 CPU 分配参数:
一次
每分钟
每小时
每天
每周
每月
每年
月末
提示 如果是每月执行时间中断 OB,则只能将 1、2 至 28 用作开始日期。 |
要启动时间中断,必须先设置中断,然后再将其激活。 有以下三种启动方式:
自动启动时间中断。 若已设定并激活每个组态的时间中断,则会发生该中断。 下表显示了根据组态激活时间中断时的几种可能。
根据组态设置时间中断,然后通过在程序中调用 "ACT_TINT" 指令来激活时间中断。
通过调用 "SET_TINT" 指令来设置时间中断,然后通过 "ACT_TINT" 指令激活。
间隔 | 说明 |
---|---|
未激活 | 不执行时间中断 OB,即便将其加载到 CPU 中。 通过调用 "ACT_TINT" 指令激活时间中断。 |
仅激活一次 | 时间中断 OB 在按照*的时间运行一次后,即自动取消。 可在程序中使用 "SET_TINT" 指令复位时间中断,并使用 "ACT_TINT" 指令重新激活。 |
定期激活 | 当发生时间中断时,CPU 将根据当前的时间和周期计算时间中断的下一次启动时间。 |
提示 如果采用只处理一次相应 OB 的方法组态时间中断,则日期和时间不可为过去的日期和时间(相对于 CPU 的实时时钟)。 如果采用定期处理相应 OB 的方法组态时间中断,但起始日期和时间已经过去,则将在下次到达该日期和时间时处理时间中断。 在下图中对此进行了说明,下图显示了如果起始时间已经过去且已设置定期激活,时间中断 OB 的初始处理。 |
可使用 "DIS_IRT" 指令禁止调用时间中断 OB,使用 "EN_IRT" 指令重新调用,并使用 "DIS_AIRT" 和 "EN_AIRT" 指令对其进行延时。
由于时间中断仅以*的时间间隔发生,因此在程序执行期间,某些条件可能会影响相关 OB 的功能。 下表显示了其中一些条件,并说明了这些条件对处理时间中断 OB 的影响。
条件 | 结果 |
用户程序调用 "CAN_TINT" 指令,并取消时间中断。 | 操作系统删除时间中断的启动事件(日期和时间)。 如果要再次调用该 OB,则必须复位和激活启动事件。 |
用户程序试图激活时间中断 OB,但激活时该 OB 未加载到 CPU。 | 操作系统随后调用 OB 85。如果 OB 85 未编程(装载到 CPU),则 CPU 切换到 STOP 模式。 |
通过同步或更正 CPU 的系统时钟用户预设了时间,并跳过了启动事件(时间中断 OB 的日期或时间)。 | 操作系统调用 OB 80 并对时间中断 OB 的编号和 OB 80 中的启动事件信息进行编码。 然后,操作系统对时间中断 OB 处理一次,不论此 OB 的实际处理频率为何。 OB 80 的启动事件信息显示了较初跳过时间中断 OB 时的日期和时间。 |
通过同步或更正 CPU 的系统时钟用户重置了时间,并重复了启动事件(时间中断 OB 的日期或时间)。 | S7-400-CPU: S7-300-CPU: 执行时间中断 OB。 |
CPU 执行暖启动或冷启动。 | 然后,通过指令组态的每个时间中断 OB 重新采用*的组态。 如果已为相关 OB 组态一次性启动的时间中断,并通过组态进行设置和激活,则只要组态的起始时间已经过去(相对于 CPU 的实时时钟),在操作系统暖启动或冷启动之后,将调用一次 OB。 |
当已经发生下一间隔的启动事件时,仍在处理时间中断 OB。 | 操作系统然后调用 OB 80。如果 OB 80 未编程,则 CPU 切换到 STOP 模式。 否则,在处理完 OB 80 并且时间中断 OB 完成后将执行所请求的 OB。 |
下表包含了时间中断 OB 的临时 (TEMP) 变量。选择 OB 10 的默认名称作为变量名称。
变量 | 数据类型 | 说明 |
---|---|---|
OB10_EV_CLASS | BYTE | 事件类别和标识符: |
OB10_STRT_INFO | BYTE | B#16#11:OB 10 的启动请求 (B#16#12:OB 11 的启动请求) : : (B#16#18:OB 17 的启动请求) |
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 时 |
产品推荐
友情链接