恭喜,你发布的帖子
发布于 2025-11-10 09:52:40
6楼
手头有个老款S7 200程序,原来订货号是216—2AD21-0XB0.
程序里面有这样一条程序,做看门狗,也是数据有效的写入标志。
原程序写入S7 200 216-2AD23-0XB0后频繁报看门狗故障。我分析原因是老版CPU扫描速度慢,Q1.0输出的周期和脉宽都远大于新版2AD23的CPU。
后来用示波器看了老版的输出,大概周期是48mS,新版不装原来的那些程序,直接写在Main程序里面测试,根本不到1mS的周期,所以会出错。
为了把周期增加到48mS,我修改如下:
调整计数值,来延时。
但增加这段程序后拿到现场直接宕机。源程序我也看不懂。但我看了交叉参考,没有资源冲突。
因为 Q1.0 := Not Q1.0这个这段执行时间依赖于扫描周期。有没有更简单的办法,在同一个扫描周期内,延迟Q1.0输出方波的周期?
宕机原因我要到现场CPU跑一下才能看到。
如果想只改变Q1.0 := Not Q1.0这个变量的值的时间,那你用定时器就可以实现的。
请填写推广理由:
分享
只看
楼主