PLC出现什么故障可以使用时间出错组织块呢

发布时间:2023-01-30  

4595697a-9f30-11ed-bfe3-dac502259ad0.jpg

时间出错组织块(OB80)

45b76ee4-9f30-11ed-bfe3-dac502259ad0.png

无论何时执行OB时出错,S7-300 CPU的操作系统将调用OB80。

此类错误包括:超出周期时间、执行OB时出现确认错误、提前了时间而使OB的启动时间被跳过、在CiR后恢复RUN模式。

例如,如果在上一次调用之后发生了某一周期性中断OB的启动事件,而同一OB此时仍在执行中,则操作系统将调用OB80。

如果OB80尚未编程,则CPU将转为STOP 模式。

可以使用SFC 39至42禁用或延迟和重新启用时间出错OB。

注意:

如果因超出了扫描时间而导致在同一扫描周期内调用了两次OB80,则CPU 转为STOP 模式。

通过在程序中的适当的点调用SFC43 “RE_TRIGR”,可防止这种情况。

时间出错OB的本地数据:

45d1f55c-9f30-11ed-bfe3-dac502259ad0.png

OB80_EV_CLASS       :事件等级和标识符:B#16#35.

OB80_FLT_ID :出错代码.

OB80_PRIORITY:  优先级:OB 80以优先级26在RUN模式下运行,如果发生OB请求缓冲区溢出,则以优先级28运行.

OB80_OB_NUMBR:  OB编号(80).

OB80_ERROR_INFO:  出错信息:取决于出错代码.

OB80_ERR_EV_CLASS:  导致出错的启动事件的事件等级.

OB80_ERR_EV_NUM:  导致出错的启动事件的事件编号.

OB80_OB_PRIORITY:  出错信息:取决于出错代码.

OB80_OB_NUM:  出错信息:取决于出错代码.

OB80_DATE_TIME:  调用OB时的DATE_AND_TIME.

时间错误 OB80

● 时间错误 OB80 的功能

当 CPU 中的程序执行时间超过最大循环时间或者发生时间错误事件(例如,循环中断 OB 仍在执行前一次调用时,该循环中断 OB 的启动事件再次发生)时,将触发时间错误中断优先执行 OB80 。由于 OB80 的优先级最高,它将中断所有正常循环程序或其它所有 OB 事件的执行而优先执行。

● 与时间错误 OB80 相关的信息

当触发时间错误中断时,通过 OB80 的接口变量读取相应的启动信息。OB80 的接口变量及启动信息参考下图1、2。

45e1d13e-9f30-11ed-bfe3-dac502259ad0.jpg

图1. OB80 接口变量

460acc10-9f30-11ed-bfe3-dac502259ad0.jpg

图2. OB80 启动信息

● 时间错误 OB 的使用示例:

例如:在 OB1 中做一个循环跳转程序,可通过设置时间控制该部分程序的循环时间,当该部分程序的执行时间大于CPU 设定的最大循环时间时,触发时间错误事件。

1、按如下步骤创建时间错误 OB80 。如图3。

462e3b96-9f30-11ed-bfe3-dac502259ad0.jpg

图3. 创建时间错误 OB80

2、OB80 中编程如下图,创建地址为 MB100、MW102、MW104 的变量用于存储出现时间错误时读取到的启动信息。如图4。

464b729c-9f30-11ed-bfe3-dac502259ad0.jpg

图4. OB80 中编程

3、在 OB1 中编写一个循环跳转程序,其循环执行时间可通过变量“set_TIme”设定。如图5。

46677852-9f30-11ed-bfe3-dac502259ad0.jpg

图5. OB1 中编程

4、程序下载,测试:

① 如果在监控表中将变量“set_TIme”设置为160ms,则 CPU 报故障且没有停机,可从监控表中读取到 OB80 的启动信息,同时查看故障缓冲区。如图6。

467f0af8-9f30-11ed-bfe3-dac502259ad0.jpg

图6. 测试结果1

② 如果在监控表中将变量“set_time”设置为310ms,则 CPU 立即停机,可从监控表中读取到 OB80 的启动信息,同时查看故障缓冲区。如图7。

469cf478-9f30-11ed-bfe3-dac502259ad0.jpg

图7. 测试结果2

注:S7-1200 CPU 默认最大循环时间为150ms。

● 重新触发扫描循环看门狗指令“RE_TRIGR”

“RE_TRIGR”指令用于在单个扫描循环期间重新启动扫描循环监视定时器。其功能是执行一次“RE_TRIGR”指令,使允许的最大扫描周期延长一个最大循环时间段。

使用示例:在上个示例中的时间错误 OB80 块中调用指令“RE_TRIGR”,当 OB1 中的循环跳转程序执行时间大于 CPU 设定的最大循环时间时,触发时间错误 OB80 并执行指令“RE_TRIGR”重新触发扫描循环看门狗。

1、在 OB80 中编程调用“RE_TRIGR”指令。在“指令->基本指令->程序控制操作->运行时控制”中可以找相关指令。如下图8。

46bfef28-9f30-11ed-bfe3-dac502259ad0.jpg

图8. 调用重新触发扫描循环看门狗指令

2、OB80 中编程如下图,在程序段2中增加重新触发扫描循环看门狗指令“RE_TRIGR”。如图9。

46db899a-9f30-11ed-bfe3-dac502259ad0.jpg

图9. OB80 中编程

3、程序下载,测试:

如果在监控表中将变量“set_time”设置为400ms(大于两倍最大循环时间300ms),由于“RE_TRIGR”指令的作用 CPU 报故障但没有停机,可从监控表中读取到 OB80 的启动信息,同时查看故障缓冲区。如图10。

46eaed54-9f30-11ed-bfe3-dac502259ad0.jpg

图10. 测试结果3

常见问题

关于指令“RE_TRIGR”的相关详细信息,请查看下面链接中S7-1200系统手册,第8.8.6章:重置周期监视时间。

按住 Shift 键时用鼠标点击下列链接,打开新浏览器窗口。

哪些情况会触发时间错误中断,以及 CPU 在这些情况下如何响应?

1.超出最大循环时间

在 CPU 属性中组态最大循环时间(默认150ms),当 CPU 中的程序执行时间超过最大循环时间时,如果 OB80 不存在,CPU 将切换到 STOP 模式(例外情况:V1 版 CPU 仍然处于 RUN 模式);如果 OB80 存在,则 CPU 执行 OB80 且不停机;如果同一程序循环中出现两次“超过最大程序循环时间”且没有通过指令“RE_TRIGR”复位循环定时器,则无论 OB80 是否存在,CPU 都将切换到 STOP 模式。

2.请求的 OB 无法启动

如果循环中断、延时中断请求 OB ,但请求的 OB 已经在执行,就会出现请求的 OB 无法启动这种情况。

3.发生队列溢出

如果中断的出现频率超过其处理频率,就会出现发生队列溢出这种情况。如果 OB80 不存在,则 CPU 将切换到 STOP 模式;如果 OB80 存在,则执行 OB80 ,CPU 将保持为 RUN 模式。

4.总结:发生任何上述事件都将在诊断缓冲区生成一个描述相应事件的条目。无论是否存在 OB80 ,都将生成诊断缓冲区条目。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>