S7-1200时间错误 OB80

● 时间错误OB80的功能
当CPU 中的程序执行时间超过最大循环时间或者发生时间错误事件(例如,循环中断OB 仍在执行前一次调用时,该循环中断OB的启动事件再次发生)时,将触发时间错误中断优先执行 OB80 。由于 OB80 的优先级最高,它将中断所有正常循环程序或其它所有 OB事件的执行而优先执行。
● 与时间错误OB80 相关的信息
当触发时间错误中断时,通过OB80的接口变量读取相应的启动信息。OB80 的接口变量及启动信息参考下图1、2。
图1. OB80 接口变量
图2. OB80 启动信息
● 时间错误OB 的使用示例:
例如:在 OB1中做一个循环跳转程序,可通过设置时间控制该部分程序的循环时间,当该部分程
序的执行时间大于CPU 设定的最大循环时间时,触发时间错误事件。
1、按如下步骤创建时间错误OB80 。如图3。
图3. 创建时间错误OB80
2、OB80 中编程如下图,创建地址为MB100、MW102、MW104的变量用于存储出现时间错误时读取到的启动信息。如图4。
图4. OB80 中编程
3、在 OB1中编写一个循环跳转程序,其循环执行时间可通过变量“set_time”设定。如图5。
图5. OB1 中编程
4、程序下载,测试:
①如果在监控表中将变量“set_time”设置为160ms,则CPU 报故障且没有停机,可从监控表中读取到 OB80的启动信息,同时查看故障缓冲区。如图6。
图6. 测试结果1
②如果在监控表中将变量“set_time”设置为310ms,则CPU立即停机,可从监控表中读取到 OB80 的启动信息,同时查看故障缓冲区。如图7。
图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。
图8. 调用重新触发扫描循环看门狗指令
s1200
2、OB80中编程如下图,在程序段2中增加重新触发扫描循环看门狗指令“RE_TRIGR”。如图9。
图9. OB80中编程
3、程序下载,测试:
如果在监控表中将变量“set_time”设置为400ms(大于两倍最大循环时间300ms),由于
“RE_TRIGR”指令的作用CPU 报故障但没有停机,可从监控表中读取到 OB80 的启动信息,同时查看故障缓冲区。如图10。

本文发布于:2024-09-24 00:26:51,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/363548.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:时间   循环   错误   触发   扫描   指令
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议