接下来的几篇文章,将深入讨论一下延时中断的概念,包括延时中断组织块OB20-OB23及与延时中断相关的系统功能:
启动延时中断:SFC32
取消延时中断:SFC33
查询延时中断:SFC34
本文先简单介绍一些基本概念,深入用法将在后续逐步推出。
一、延时中断组织块
STEP7提供了最多四个延时中断组织块:OB20、OB21、OB22、OB23。不同型号的PLC支持的延时中断个数不同,如图1.1、图1.2所示,CPU315仅支持OB20一个延时中断,而CPU416则支持全部的四个延时中断。具体情况可参阅相应的硬件手册。
图1.1 S7-300 延时中断OB20
延时中断需调用SFC32(SRT_DINT)来实现。调用SFC32时,会同时指定一个延时时间,操作系统在延时时间过去后生成一个中断,此即为"延时中断"。
二、与延时中断相关的系统功能
1、SFC32(SRT_DINT)启动延时中断
系统功能SFC32用于启动延时中断,如图2.1为SFC32的管脚图。
图2.1 SFC32:启动延时中断
2、SFC33(CAN_DINT)取消延时中断
调用SFC33可以取消已经启动的延时中断,即不再调用相应的延时中断OB,如图2.2为SFC33的管脚图。
图2.2 SFC33:取消延时中断
3、SFC34(QRY_DINT)查询延时中断
系统功能SFC34用于查询延时中断OB的状态,包括启用、激活、过期及禁用几个状态,如图2.3为SFC34的管脚图。
图2.3 SFC34:查询延时中断
三、处理延时中断的一些注意事项
1、 必须满足以下条件,操作系统才能调用延时中断OB(OB20-OB23):
- 必须调用SFC32启动延时中断
- 该延时中断未被取消(调用SFC33可取消延时中断)
- 不同型号的CPU支持的延时中断号有所不同,使用延时中断前必须查询相关的硬件手册,确认其所支持的延时中断。
2、如果延时中断启动后,在延时时间内再次被启动(SFC32重复使能),则系统将重写延迟时间,并重写启动延时中断。
3、本次延时时间已过,上一次的延时中断OB却仍在执行,则系统将生成时间错误,可以在OB80(时间错误组织块)中编写错误响应程序。默认情况下,CPU将切换到STOP模式。