手头有个老款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跑一下才能看到。