首页 理论教育 解决时间错误中断问题

解决时间错误中断问题

时间:2023-06-21 理论教育 版权反馈
【摘要】:检测到时间错误时,CPU将调用时间错误中断组织块OB80。图5-71是OB1中用来演示CPU对时间错误的反应的程序。打开STEP 7 Basic的项目视图,生成一个名为“时间错误中断”的新项目并双击项目树中的“添加新设备”,添加的CPU的型号为CPU 1214C。双击指令树的“程序块”文件夹中的“添加新块”,单击出现的对话框中的“组织块”按钮,选中“Time error interrupt”,单击“确定”按钮,生成时间错误中断组织块OB80。

解决时间错误中断问题

循环是系统经常需要做的动作,一般用循环时间是CPU的操作系统在RUN模式执行一次循环任务所需的时间,可以用CPU的巡视窗口的属性选项卡设置最大循环时间。在图5-61的在线诊断视图右边的“在线工具”窗口中,可以看到最长、最短和当前的循环时间。如果发生以下事件,系统调用时间错误中断组织块:

1)实际的扫描循环时间超过设置的最大循环时间。

2)请求执行循环中断或时间延迟中断,但是被请求的OB已经在执行。

3)中断事件出现的速度比处理它们的速度还要快,对应的中断队列已满,导致中断队列溢出。

4)因为中断负荷过高而丢失中断。

可以在优先级为1的程序循环OB和它调用的块中,用指令RETRIGR(重新触发循环时间监视,见5.3.2节)来重新启动监控定时器

检测到时间错误时,CPU将调用时间错误中断组织块OB80。如果循环时间超过最大循环时间,并且下载了OB80,CPU将调用OB80。如果没有下载OB80,将忽略第一次超过循环时间的事件。

如果循环时间超过最大循环时间的两倍,并且没有执行RETRIGR指令,则不管是否有OB80,CPU将立即进入STOP模式。

OB80的启动信息见表5-10所示,它提供了产生时间错误事件的信息。可以在OB80中编程来检查启动信息,并采取相应的处理措施。

表5-10 OB80的启动信息

978-7-111-47789-1-Chapter05-129.jpg

【例5-16】用跳转指令产生时间错误的实验。

打开STEP 7 Basic的项目视图,生成一个名为“时间错误中断”的新项目并双击项目树中的“添加新设备”,添加的CPU的型号为CPU 1214C。(www.xing528.com)

双击指令树的“PLC1”文件夹中的“设备配置”,打开设备视图,选中其中的CPU,设置默认的MB1作系统存储器字节(见图3-23)。

图5-71是OB1中用来演示CPU对时间错误的反应的程序。

978-7-111-47789-1-Chapter05-130.jpg

图5-71 用于产生时间错误事件的程序

【例5-17】循环时间超时的实验。

将【例5-16】程序和组态信息下载到CPU后,切换到RUN模式。接通I1.0外接的小开关后马上断开它,脉冲定时器TP输出一个宽度为200ms的脉冲,M20.0的常开触点闭合。在此期间,反复执行JMP指令,跳转到标签M1234处。上述跳转过程是在一个扫描循环周期内完成的,因此扫描循环时间大于定时器的设定值(200ms),超过了CPU默认的循环时间设定值150ms,出现时间错误事件。CPU的红色ERROR LED闪烁6次后熄灭,仍然处于RUN模式。

双击指令树的“程序块”文件夹中的“添加新块”,单击出现的对话框中的“组织块”按钮(见图5-24),选中“Time error interrupt”,单击“确定”按钮,生成时间错误中断组织块OB80。在OB80中,用系统存储器字节的M1.2一直闭合的常开触点将Q0.7置位为1。可以用I0.4将Q0.7复位(见图5-71)。

将OB80下载到CPU后,切换到RUN模式。接通I1.0外接的小开关后马上断开它,出现时间错误事件,CPU调用OB80,Q0.7对应的LED亮。CPU的红色ERROR LED闪烁6次后熄灭。

将图5-71中定时器的时间预置值PT修改为400ms。OB1下载到CPU后,切换到RUN模式。接通I1.0外接的小开关后马上断开它,出现时间错误事件,ERROR LED闪烁6次后熄灭。因为循环时间超过设置的最大值150ms的两倍,CPU切换到STOP模式。

双击PLC1文件夹中的“在线和诊断”,在工作区打开在线与诊断视图。单击工具栏上的978-7-111-47789-1-Chapter05-131.jpg按钮,进入在线模式。选中工作区左边窗口的“诊断缓冲区”,右边窗口是诊断缓冲区(见图5-72),其中的11号事件提供的信息为“超过最大循环时间,出现时间错误,请求启动OB80”。选中该事件,下面是它的详细说明,给出了预置的最大循环时间(150ms),“输入事件”表示事件刚出现。11号事件出现之后再过150ms,诊断缓冲区出现10号事件。其信息为“循环时间超过设置的最大值的两倍,CPU切换到STOP状态(系统反应)”。

978-7-111-47789-1-Chapter05-132.jpg

图5-72 诊断缓冲区中的时间错误事件信息

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈