发布时间:2019-09-15 来源:众智博远
西门子S7-400H之间通讯数据丢失解决办法,现场有两对S7-400H系统,一对417-5H,另一对为416-5H,两对S7-400H之间建立了Local ID为1的 S7容错连接并进行S7双边通信,之前两对S7-400H之间的通讯一直是正常的,现在通讯中断,现场在线监视网络组态发现S7容错连接丢失。
图2- 1 现场在线监视网络组态
2.2 问题分析
由于客户的项目为韩国工程师给设计开发的,韩国工程师给到客户的离线项目中没有两对控制器之间建立的S7容错连接,当时怀疑韩国工程师未设计开发两对控制器之间的S7容错连接,但是客户现场的工程师反应,他们与韩国的工程师电话沟通过,确定之前设计开发了两对控制器之间建立的S7容错连接,而且之前两对控制器之间的通讯是正常的,目前可以排除这个猜想。
后来怀疑客户增加过新的连接并下载造成的S7容错连接丢失,客户离线的程序中没有两对控制器之间建立的S7容错连接,由于S7容错连接的特殊性,如果客户在没有两对控制器之间建立的S7容错连接的离线项目中增加过新的连接并且下载到控制器也会将原来建立的两对控制器之间建立的S7容错连接冲掉,客户现场的工程师说韩国工程师设计完项目下载到控制器正常运行后他们从来没有改过任何东西,而且
离线韩国工程师给的离线项目在工程师站上也没有做过任何改变,目前可以排除这个猜想。
现在怀疑是韩国工程师给的离线项目与控制器里的在线项目不一致造成的S7容错连接丢失,可以将控制器里的项目上载进行分析查看。
2.3 问题查找
客户现场的工程师前也怀疑过韩国工程师给的离线项目与控制器里的在线项目不一致,所以客户现场的工程师也将控制器中的项目上载上来了。
图2- 2 上载项目在线监视网络组态
通过查看上载上来的项目发现里面仍然没有两对控制器之间建立的S7容错连接,但是客户反映现场两对控制器之间的通信偶尔是正常的可以传递数据。此时,将韩国工程师之前编制的两对控制器之间进行S7通讯的程序块打开现场监视,具体情况见如下截图:
图2- 3 在线监控S7通讯程序
发送数据块的STATUS在线监视的值为16#19,16#19对应的十进制数为 25, 通过F1在线帮助查看STATUS对应十进制数25表示“通讯已经开始,工作正在进程中”,说明控制器中这个S7容错连接是存在的。
图2- 4 BSEBD块STATUS引脚在线帮助
那为什么上载上来的项目中没有这个Local ID为1的S7容错链接呢?后来通过与其他工程师沟通和哈月相关资料得知:由于S7容错连接的特殊性是无法通过上载操作上载的项目中的,现在可以理解为什么上载上来的项目中体验没有这个S7容错链接。
随后手动在离线项目的网络组态中添加了这个Local ID为1的S7容错链接,添加完这个S7容错连接后继续在线监视网络组态里的连接,具体情况见如下截图:
图2- 5手动添加S7容错连接在线监视网络组态
从上面截图可以看出,两对控制器之间建立的S7容错连接是存在的,而且图标是绿色的三角号,这是S7容错连接正常的状态,现在可以证实两对控制器之间建立的S7容错连接在控制器中是存在的。由于离线项目中没有这个S7容错连接,所以在线监视时无法看到这个S7容错连接,这也是S7容错连接的特殊性,只有在离线项目和控制器中都存在这个S7容错连接的时候才能在网络组态里通过在线查看到这个S7容错连接。
现在已经证实两对控制器之间建立的S7容错连接在控制器中是存在的,目前两对控制器之间S7通信没有数据是由于程序原因造成的,并不是因为S7容错连接丢失造成的。由于客户的项目是韩国工程师给设计开的,客户只要求帮助找到丢失的S7容错连接即可,程序问题会找韩国工程师解决,客户也不能私自修改程序,现场设备都在运行,操作不当会造成巨大的损失。
2.4 注意事项
1. 每天项目做归档备份处理,这样可以确保在线与离线项目一致,也方便后期修改项目以及查找问题;
2. 离线项目中不存在S7容错连接,增加新连接并将新连接下载到控制器会将之前的S7容错连接冲掉(非S7容错连接特性,普通连接也是如此);
3. S7容错连接无法通过上载的方式上载到项目中(S7容错连接特性);
4. 只有在离线项目和控制器中都存在S7容错连接的时候才能在网络组态里通过在线查看到这个S7容错连接(S7容错连接特性);