本人使用的S7-300是集成于西门子840D数控系统NCU中(无STOP,RUN拨码开关)。有时候会遇到过这样的问题,一直正常运行的设备,忽然某一天上电出现"PLC STOP"。重新上电也没用,但是用S7手动暖启动后PLC运行正常,然后重新上电也正常。
于是查看了一些关于暖启动资料:
S7帮助文本中这样写到:“在暖启动中,从程序开始处以系统数据和用户地址区的初始设置开始进行程序处理(复位非保持性定时器、计数器和位存储器)。”
论坛中精华帖:

综上所述问题出在:异常时导致了错误的“系统,用户数据块或复非保持性定时器、计数器和位存储器”至于具体是啥问题,这里暂时不讨论了可能是硬件也可能是用户程序有BUG。
最后问题来了
1 手动暖启动和重新上电效果肯定不一样吧(精华帖最后一句是否有问题)
2 手动暖启动除了用S7联机机和拨 RUN STOP开关,还有其他办法。最好可以直接用程序编译写,比如:可以选择上电的时候是否启动一次暖启动或达到暖启动同样的功能,插入到OB100块中。
因没有拨码开关,所以很希望有问题2的解决方法。