• 沒有找到結果。

用于处理延时中断的SFC

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

10 用于处理延时中断的SFC

10.1

处理延时中断

定义

调用SFC32 “SRT_DINT”后,操作系统将在指定的延迟时间过去后生成一个中断,

也就是说,调用所选择的延时中断OB。此中断被称为延时中断。此中断称为延时 中断。

调用条件

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

• 必须通过SFC32 “SRT_DINT”启动延时中断OB。

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

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

SFC32到SFC34的用途

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

• 启动延时中断(SFC32 “SRT_DINT”)

• 取消延时中断(SFC33 “CAN_DINT”)

• 查询日时钟中断(SFC34 “QRY_DINT”)。

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

状况与影响...

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

如果... 且... 那么...

延时中断被启动

(通过调用SFC32 “SRT_DINT”)。

该延时中断已经启动。 将重写延迟时间,并重新启动延时 中断。

在调用时延时中断OB不存在。 操作系统将生成优先级出错 (调用OB85)。

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

CPU切换为RUN模式前,已在 启动OB中启动中断且延迟时 间已过。

将延迟对延时中断OB的调用,

直到CPU处于RUN模式。

延迟时间已过。 先前启动的延时中断OB 仍在执行。

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

暖重启和冷重启

暖重启或冷重启期间,用户程序中使用SFC指定的所有延时中断设置均将被清除。

在启动OB中启动

可以在启动OB中启动延时中断。要调用延时中断OB,必须满足下列两个条件:

• 延迟时间必须已过。

• CPU必须处于RUN模式。

如果延迟时间已过而CPU未处于RUN模式,则延时中断OB调用将被延迟,直到CPU 处于RUN模式。然后,将在执行OB1中的第一条指令前调用延时中断OB。

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

10.2

使用SFC32 “SRT_DINT”启动延时中断

描述

通过SFC32 “SRT_DINT” (启动延时中断),可以在延迟时间过去(参数DTIME)后立即 启动调用延时中断组织块的延时中断。

使用SIGN参数,可以输入用于标识延时中断开始的标识符。执行指定的OB时,

DTIME和SIGN值将再次显示在该OB的启动事件信息中。

参数 声明 数据类型 存储区域 描述 OB_NR INPUT INT I、Q、M、D、L、

常数

将在延时后启动的OB的编号 (OB20到OB23)。

DTIME INPUT TIME I、Q、M、D、L、

常数

延时值(1到60000ms)

要实现更长时间的延时,例如,可以通过在 延时中断OB中使用计数器来实现。

SIGN INPUT WORD I、Q、M、D、L、

常数

调用延时中断OB时将显示在启动事件 信息中的标识符。

RET_VAL OUTPUT INT I、Q、M、D、L 如果在系统功能处于激活状态时出错,

则RET_VAL的实际参数将包含出错代码。

精度

只要没有中断事件延迟该调用,调用SFC32 “SRT_DINT”和启动延时中断OB之间的 时间最多比所选时间少一毫秒。

8xyy 常规出错信息,请参见使用输出参数RET_VAL评估

出错。

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

10.3

使用SFC34 “QRY_DINT”查询日时钟中断

描述

通过SFC34 “QRY_DINT” (查询日时钟中断),可以查询日时钟中断OB的状态。

延时中断由组织块OB20到OB23管理。

参数 声明 数据类型 存储区域 描述 OB_NR INPUT INT I、Q、M、D、L、

常数

将查询其STATUS的OB的编号 (OB20到OB23)。

RET_VAL OUTPUT INT I、Q、M、D、L 如果在处理功能期间出错,则RET_VAL 的实际参数 将包含出错代码。

STATUS OUTPUT WORD I、Q、M、D、L 有关延时中断的状态,参见下表。

输出参数STATUS

含义

0 0 操作系统已启用延时中断。

1 0 未拒绝新的延时中断。

2 0 未激活延时中断或时间已过。

3 - - 4 0 未加载延时中断OB。

5 0 当前活动的测试功能未禁用延时中断OB的执行。

出错信息

出错代码(W#16#...) 说明

0000 未出错

8090 不正确的参数OB_NR

8xyy 常规出错信息,请参见使用输出参数RET_VAL评估出错。

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

10.4

使用SFC33 “CAN_DINT”取消延时中断

描述

通过SFC33 “CAN_DINT” (取消延时中断),可以取消已启动的延时中断(参见使用 SFC32 “SRT_DINT”启动延时中断)。这样,将不调用延时中断OB。然后,将不调用 延时中断OB。

参数 声明 数据类型 存储区域 描述 OB_NR INPUT INT I、Q、M、D、L、

常数

将取消的OB的编号(OB20到OB23)。

RET_VAL OUTPUT INT I、Q、M、D、L 如果在功能处于激活状态时出错,

则RET_VAL的实际参数 将包含出错代码。

出错信息

出错代码(W#16#...) 说明

0000 未出错。

8090 不正确的参数OB_NR 80A0 未启动延时中断。

8xyy 常规出错信息,请参见使用输出参数RET_VAL评估出错。

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

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