S7-1200 CPU一通电就会启动,然而它不会立即执行用户程序,而是先进行一系列启动流程。这一流程由四个参数控制:上电后是否重新启动、模块是否兼容、组态时间是否充足以及OBs能否被中断。要让CPU按照自己的意愿运行,必须把这几个开关设定正确。 要想知道CPU“上电”后的行为,需要在TIA Portal中打开CPU属性,选择常规选项卡,再点击启动。在这里可以看到三种选择: 第一种是不重新启动,这个选项会让CPU停留在STOP模式。这就意味着CPU上电后直接暂停,必须手动点启动按钮才能开始运行。 第二种是暖启动-RUN模式,这个选项会让CPU上电后自动进入RUN模式。适合一通电就要立即工作的场景。 第三种是暖启动-断电前的模式。这个选项可以记住CPU在上电之前的状态:如果断电前CPU在RUN模式,那么上电后继续运行;如果断电前CPU在STOP模式,那么上电后继续暂停。默认情况下就是第三种选择,既安全又方便。 另外还有两个参数需要注意: 模块兼容性:如果选择了“仅在兼容时才启动”,一旦插入的模块与组态表不匹配,CPU就会黑屏。如果想要省事一点可以选择“即便不匹配也启动”,但程序运行可能会出现异常,需要依靠OBs来处理。 组态时间:CPU需要给所有的I/O设备发送参数才能进入RUN模式。这个时间如果设置太短的话,I/O设备还没配完就会匆忙进入运行状态,导致数据错乱;时间设置太长的话又会浪费用户时间。一般来说给10秒以上的时间余量是比较稳妥的做法。 还需要注意OBs是否允许被中断:打勾的话优先级高于2的中断可以随时打断正在执行的OB;不打勾的话只有优先级大于2的中断才能打断循环中的OB。 接下来我们来看看暖启动具体做了哪些事情。下图展示了暖启动的流程: 暖启动会清除非保持性位和DB中的所有内容;保持性位和DB则保持断电前的数值;无论选择哪种模式都会无条件执行一遍OB100、OB101和OB102;不更新过程映像;不执行基于时间的程序;只有OB82(诊断中断)才能打断流程;所有输出被锁定防止意外带电击穿负载。 最后我们来总结一些常见问题和解决办法: ERROR灯不亮并不代表一切正常,有时候可能是因为CPU在断电前发生故障停在STOP状态了;如果检查WRREC指令是否漏写了会导致CPU进入RUN=STOP循环;如果把模块插错了槽位会导致黑屏或者无法访问物理通道;组态时间太短会导致I/O参数发不完而出现红灯常亮+ERR102的组合。 最后给大家一个建议:将“上电后启动”设置为“暖启动-RUN模式”,确认模块兼容、WRREC指令已经写好以及组态时间充足就可以顺利运行S7-1200 CPU了。其他参数可以根据具体情况进行微调,让CPU在安全和效率之间自由切换。