循环中断组织块用于按精确时间间隔循环执行中断程序,例如周期性执行闭环控制系统PID控制程序,间隔时间从cpu从STOP切换到RUN开始计算。S7-300大多数只能使用OB35,其余CPU可以实用的循环中断OB的个数和CPU型号有关。时间间隔不能小于5ms。时间间隔过短,还没有执行完循环中断程序又开始调用它,将会产生时间错误时间,调用OB80,如果没有调用OB80,CPU将进入STOP。
举例说明:
硬件组态如下:采用CPU315-2DP,双击硬件组态中的CPU,打开属性对话框,由【周期性中断】选项卡可知只能使用OB35。
默认的循环周期为100ms,改成1000ms。
OB100程序
用MOVE将MB0的初值置7,即低3位为1,此外用ADD_I将MW6加1.
OB35程序:每经过1000ms,MW2被加1.如下图
禁止和激活硬件中断
SFC40“EN_IRT”和SFC39“DIS_IRT”分别是激活和禁止中断和异步错误的系统功能。参数MODE的数据类型为BYTE,MODE为2是激活OB_NR,采用16进制数来设置。
编写OB1程序如下:
仿真实验如下:进入RUN模式后,可以看到MW6的值一直为1,表明只调用了一次OB100,MB0的低3为被置1,MW2每秒加1.用鼠标模拟产生I0.1循环中断被禁止,MW2不再加1,用鼠标模拟产生I0.0,循环中断被激活,MW2又开始加1.