定时中断

S7-200有四个定时中断定时器,两个特殊寄存器(SMB34/SMB35)和两个定时器( T32/T96)中断。中断定时计时精确,可以用来执行模拟量定时采样等任务。

定时中断使用要点:

1、特殊寄存器SMB34/SMB35 可设置1~255ms,对应中断事件号10、11;

2、定时器T32/T96 可设置1~32767ms,对应中断事件号21、22;

3、定时中断程序的执行时间必须小于设定的间隔时间,如图1:

图1. 中断程序的执行时间必须小于间隔时间

4、若定时中断程序的执行时间大于设定的间隔时间,则将导致看门狗时间错误;如图2和图3:

图2. 中断程序的执行时间大于间隔时间

STEP7 Micro/win编程在线连接PLC,通过菜单栏“PLC”--->“信息”查看到如下图所示的错误:

图3. 看门狗时间错误提示

定时器T32及其中断的使用例程

主程序例程:

注意:必须调用中间变量(如M0.0)来进行自动重新触发定时器,而不能使用T32的常闭点作为其自动触发条件。

中断程序例程:

注:在中断程序中加入累加计数,确认进入中断次数。

 

常问问题

定时中断(SMB34/SMB35)最长定时为255ms,如何实现更长时间的定时?

可以采用T32/T96中断,最长时间可到32.767s。在定时中断服务程序中对进入中断的次数进行计数,也能实现更长时间的中断延时。

定时中断个数不够怎么办?

每个定时中断服务程序不一定只能处理一项定时任务,可以把几个任务放在一个定时中断服务程序中。

对于定时间隔不同的任务,可以计算出它们的定时长度的最大公约数,以此作为定时中断的时间设置。在中断服务程序内部对中断事件进行计数,据此编程别处理不同的任务。

S7-200中可以定义8个PID回路,PID计算就是在定时中断程序执行的。PID编程向导会自动按以上方法处理。

定时中断为何不工作?

参见中断程序工作不正常的主要原因

如何确认定时中断子程序所需的执行时间?

参见如何查看子程序的执行时间