最近接到一个用户的现场紧急求助电话,称他的一套S7-300的控制系统CPU315-2PN/DP通过PN/PN COUPLER与一套SIMOTION系统连接通讯,断开SIMOTION与PN/PN的连接,S7-300出现SF报警,但仍能正常运行;问题是一旦恢复SIMOTION与PN/PN的连接,原先还正常运行S7-300却STOP当机了。
当场询问了客户,S7-300的程序中已经添加了OB82/86/121这些必要的诊断OB了,的确用户的描述也验证了这些。从快速解决问题的角度出发,让用户立刻人为重复故障导致CPU停机后,立刻在线查看CPU的诊断缓冲区最新记录,结果发现是OB83未调用导致的CPU停机,让用户即刻在程序中添加了OB83,重新下载程序后再次人为重复故障,这次CPU没有停机,现场问题解决,客户致谢挂了电话。
现场问题虽解决,但我的疑问来了,大家都知道OB83是关于模块热插拔的诊断OB,只有DP/MPI接口的S7-300都不支持,带PN口的S7-300才支持,那也得与带PN接口的ET200M(带底板)或ET200S在激活热插拔功能后配合起来使用,但此例是PN/PN COUPLER,没有热插拔功能功能啊。
带着疑问立刻查看了PN/PN COUPLER的说明书,果然找到了明确的答案,见说明手册截图,原来在组态另一个总线端期间,PN/PN COUPLER中已组态的总线端会对组态中的每个匹配的插槽产生一个 ReturnOfSubmodule 中断。以前也用过PN/PN COUPLER,但都是按着DP/DP COUPLER的经验用的,这样系统就有隐患了,汗啊。看来,经验主义在技术上还得慎重,自己不熟悉的产品使用之前还是要认真阅读说明书才是正道。
最后,再次总结一下DP/DP COUPLER 及 PN/PN COUPLER 默认必须要调用的OB块: