「原创经验」小心西门子S7-1200的第一次扫描(firstscan)标志!

几乎所有PLC都有第一次扫描的概念,用于执行程序的初始化操作。对于西门子PLC,OB100和第一次扫描标志都让用户有机会执行自己的操作。

但是,最近发现S7-1200的CPU(不确定其他型号PLC的情况),不管是OB100,还是第一次扫描标志出现时,都不是真正意义上的PLC完全准备好,交给用户使用的状态。

下面的语句用于读取CPU的硬件信息,在PLC上电时,却无法得到任何信息。但是,在上电完毕,编程器将CPU停止再启动时(非断电),就可以读到信息了,这说明:CPU上电后,程序开始运行,但是,部分硬件并没有完全准备好

「原创经验」小心西门子S7-1200的第一次扫描(firstscan)标志!

因此,程序开发时要注意这个问题,我的做法:

1、对于硬件信息读取,不断判断读取结果,如果没有信息,则再读一次。

「原创经验」小心西门子S7-1200的第一次扫描(firstscan)标志!

2、对于模拟量的读取,要在启动的前几秒里,将一个安全替代值交给后续程序使用。延时后,再直接使用系统的结果。

3、对于各种开机逻辑,要充分考虑各外部设备的启动准备时间,因此,最好是延时一个安全时间后,再允许外部动作。


2019年1月5日

说明:

1、本文是实践经验,非严格论文,与相关产品和理论可能不完全相符。

2、如需控制、三电相关帮助,交流,请关注本人,并加入技术讨论QQ群:877456127,那里有很多热心同行。


分享到:


相關文章: