1.时间错误中断组织块
循环时间是CPU的操作系统执行循环程序以及中断此循环的所有程序段所需的时间。可以用CPU的巡视窗口设置循环周期监视时间(见图1-27)。
时间错误中断组织块OB80的启动信息中的局部变量Fault_ID是错误的标识符,可能的错误包括超出最大循环时间、仍在处理请求的OB、由于时间跳变而导致时间中断超时、从HOLD模式重新进入RUN模式时超时的时间中断、队列溢出、因中断负载过大而导致中断丢失。
此外S7-1500还会因为等时同步模式中断的时间错误和工艺同步中断的时间错误调用OB80。
可以在优先级为1的程序循环OB和它调用的块中,用指令RE_TRIGR(重新启动周期监视时间,见3.5节)来重新启动监控定时器。
检测到时间错误时,CPU将调用时间错误中断组织块OB80。如果循环时间超过最大循环时间,并且下载了OB80,CPU将调用OB80。如果没有下载OB80,将忽略第一次超过循环时间的事件。
如果循环时间超过最大循环时间的两倍,并且没有执行RE_TRIGR指令,不管是否有OB80,CPU将立即进入STOP模式。
2.用跳转指令产生时间错误的实验
打开STEP7的项目视图,生成一个名为“时间错误中断例程”的新项目(见随书光盘中的同名例程)。双击项目树中的“添加新设备”,添加的CPU的型号为CPU 1214C。
双击指令树的“PLC_1”文件夹中的“设备组态”,打开设备视图,选中其中的CPU,设置默认的MB1作系统存储器字节(见图1-28)。(www.xing528.com)
图7-1是OB1中用来演示CPU对时间错误反应的程序。
3.循环时间超时的实验
图7-1 用于产生时间错误事件的程序
将程序和组态信息下载到CPU后,切换到RUN模式。接通I1.0外接的小开关后马上断开它,脉冲定时器TP输出一个宽度为200ms的脉冲,定时器输出位“T1”.Q的常开触点闭合。在此期间,反复执行JMP指令,跳转到标签M1234处。上述跳转过程是在一个扫描循环周期内完成的,因此扫描循环时间大于定时器的设定值200ms,超过了CPU默认的循环周期监视时间(150ms),出现时间错误事件。CPU的红色ERRORLED闪动几次后熄灭,仍然处于RUN模式。
双击指令树的“程序块”文件夹中的“添加新块”,单击出现的对话框中的“组织块”按钮(见图4-35),选中“Time error interrupt”,单击“确定”按钮,生成时间错误中断组织块OB80。在OB80中,用系统存储器字节的M1.2一直闭合的常开触点将Q0.7置位为1。可以用I0.4将Q0.7复位(见图7-1)。
将OB80下载到CPU后,切换到RUN模式。接通I1.0外接的小开关后马上断开它,出现时间错误事件,CPU调用OB80,Q0.7对应的LED亮。CPU的红色ERRORLED闪动几次后熄灭。
将图7-1中定时器的时间预置值PT修改为400ms。OB1下载到CPU后,切换到RUN模式。接通I1.0外接的小开关后马上断开它,出现时间错误事件,ERRORLED闪动几次后熄灭。因为循环时间超过循环周期监视时间150ms的两倍,CPU切换到STOP模式。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。