设置读取plc时间_如何避免S7-300/400系统扫描时间过长而导致CPU停机?

1. 如何避免S7-300/400系统扫描时间过长而导致CPU停机?

如果用户程序的执行时间超出硬件组态中所设定CPU的扫描周期监控时间,则CPU会因看门狗超时而停机,同时触发定时错误OB80,诊断信息如图1所示:

38d4a936d2cc2e11482335e74a780831.png

图1 诊断信息

S7-300/400 CPU的循环扫描时间(看门狗时间)默认为150ms(最大可修改为6000ms),用户程序的执行时间必须在设定的扫描周期监控时间范围内。最大扫描周期设置如图2所示:

585c28065b8bdb934c1d701f1c12374c.png

图2 设置最大扫描周期时间

2. 如何查看S7-300/400系统扫描循环时间?

如果工程师需要了解程序的扫描周期,可通过如下两种方法查询。

方法一、将程序下载到PLC后,进行在线连接,查看CPU信息,如图3所示:

e612d6f641b8c8b8e1a458c8eaa85448.png

图3 查看CPU“扫描循环时间”

方法二、通过将OB1相应的临时变量传送到M区,即可读取CPU扫描循环时间,如图4、图5所示:

79672c8bfd80f13d3b5220c6fce9b768.png

图4 临时变量传送到M区

5984792c6c4b62879db1741fe00aa6d9.png

图5 变量监控

3. 如何查看S7-300/400中一个子程序的大约执行时间?

使用S7-300/400 CPU时,如果工程师需要了解某个子程序的大约执行时间,可在该子程序前、后分别读取CPU系统时钟,然后使用时钟相减指令FC34进行编程计算,步骤如下:

1、设置PLC系统时钟,按图6所示的设置:

db281112fc523f49b7e5f961fe8197a9.png

图6 置PLC系统时钟

2、创建一个块符号名为“time”的数据块(DB1),并创建如下变量,如图7所示:

cfb2ae95f95cada89379a0157ab471e9.png

图7 创建数据块

3、在需要测试的子程序的第一个网络和最后一个网络读取系统时钟,然后运用时钟相减指令FC34进行计算。

如下例程中测试了“FC1”子程序的执行时间,如图8所示:

8cc39ef69bfa178d982f679d33c9cdbc.png

图8 “子程序执行时间”例程

4、通过变量监控表查看该子程序的大约执行时间,如图9所示:

7dfbda9485f1159cfaea4dc2498d46d7.png

图9 子程序大约执行时间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值