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. 看门狗时间错误提示
主程序例程:
注意:必须调用中间变量(如M0.0)来进行自动重新触发定时器,而不能使用T32的常闭点作为其自动触发条件。
中断程序例程:
注:在中断程序中加入累加计数,确认进入中断次数。
定时中断(SMB34/SMB35)最长定时为255ms,如何实现更长时间的定时?
可以采用T32/T96中断,最长时间可到32.767s。在定时中断服务程序中对进入中断的次数进行计数,也能实现更长时间的中断延时。
定时中断个数不够怎么办?
每个定时中断服务程序不一定只能处理一项定时任务,可以把几个任务放在一个定时中断服务程序中。
对于定时间隔不同的任务,可以计算出它们的定时长度的最大公约数,以此作为定时中断的时间设置。在中断服务程序内部对中断事件进行计数,据此编程别处理不同的任务。
S7-200中可以定义8个PID回路,PID计算就是在定时中断程序执行的。PID编程向导会自动按以上方法处理。
定时中断为何不工作?
如何确认定时中断子程序所需的执行时间?