• 沒有找到結果。

长沙工控帮教育科技有限公司整理 Copy

9 用于处理时钟中断的SFC

9.1 处理时钟中断

定义

时钟中断将导致操作系统调用一个时钟中断OB(OB10到OB17)。

调用条件

必须满足下列条件,操作系统才能够调用时钟中断OB:

• 必须使用下列工具为时钟中断OB分配了参数(启动日期和时间、执行) - STEP 7或

- SFC28 “SET_TINT”(在用户程序中)。

• 必须使用下列工具激活时钟中断OB - STEP 7或

- SFC30 “ACT_TINT”(在用户程序中)。

• 不得使用STEP 7取消选择时钟中断OB。

• 时钟中断OB必须存在于CPU中。

• 如果通过SFC30 “ACT_TINT”设置中断,且指定OB执行仅一次,则当前时间必 须尚未超过启动日期和时间。如果选择定期执行,则将在下一个周期结束(启动 时间 + 指定周期时间的倍数)时调用日时钟中断OB。

提示

可以使用STEP 7为时钟中断分配参数,然后在用户程序(SFC30 “ACT_TINT”)中激 活中断。

SFC28到SFC31的用途

以下各部分所介绍的系统功能SFC28到SFC31的用途如下:

• 设置日时钟中断(SFC28 “SET_TINT”)

• 取消时钟中断(SFC29 “CAN_TINT”)

• 激活时钟中断(SFC30 “ACT_TINT”)

长沙工控帮教育科技有限公司整理

9.2 SFC 28到31的特征

状况与影响...

下表列出一些不同的状况,并说明它们对时钟中断的影响。

如果... 那么...

设置日时钟中断(通过调用SFC28; SET_TINT) 将取消当前的时钟中断。

取消时钟中断(通过调用SFC29; CAN_TINT) 将清除启动日期和时间。必须重新设置日时钟中断,

然后才能将其激活。

调用不存在的时钟中断OB。 将自动生成优先级出错,这意味着操作系统将调用 OB85。

如果OB85不存在,CPU将切换到STOP模式。

如果将实时时钟同步或向前调整时钟

时钟向前调整 如果因为向前调整了时间而跳过启动日期/时间:

操作系统将调用OB801)

调用OB80之后,操作系统还将调用未在OB802 中操作的每个被跳过的日时钟中断OB(调用一次,

无论跳过多少个周期)。

如果OB80不存在,CPU将切换到STOP模式。

时钟向后调整 如果在时钟向后调整的这段时间里已调用时钟中断OB,

则在第二次到达该时间时不会再调用它们。

1) OB80包含编码的启动事件信息,用以指示哪些时钟中断OB因向前调整了时钟而无法 调用。启动事件信息中的时间对应于向前调整的时间。

2) 在跳过后被激活的日时钟中断的启动事件信息中的时间对应于第一个被跳过的日时钟中断 的启动时间。

暖重启或冷重启

暖重启或冷重启过程中,用户程序中通过SFC指定的所有日时钟中断设置均将被 清除。

然后,使用STEP 7设置的参数将生效。

长沙工控帮教育科技有限公司整理

执行时钟中断OB

下表列出了“执行”参数的不同影响。可以通过STEP 7或SFC28 “SET_TINT”设置此 参数(输入参数PERIOD)。

日时钟中断 OB的执行

响应

(只能通过STEP 7设置)

即使CPU中存在时钟中断OB,也会不执行。

可以在用户程序中使用SFC28 “SET_TINT” 重新分配参数 (设置日时钟中断)。

单次 调用时钟中断OB后,将取消时钟中断。然后,可以重新设置和激活此 中断。

定期

(每分钟、每小时、每天、

每周、每月、每年)

如果激活中断时启动日期和时间已过,则时钟中断OB将在下一可能点 (“启动日期/时间 + 所选周期的倍数”)上中断循环程序。

在极少数情况下,当再次调用时钟中断OB时,其处理可能尚未完成。

结果:

·时间出错(操作系统将调用OB80;如果OB80不存在,则CPU将切 换到STOP模式)。

将在以后执行时钟中断OB。

长沙工控帮教育科技有限公司整理