关于OB86诊断DP多个从站掉站的处理方式理解

前几天在研究OB86,但是中途有事,给打断了,今天兴起继续研究起来,知道后半夜2点。给自己提问了个问题,就是当多个DP从站未通信上后,OB86是怎么工作的,后来在实际硬件试验中,我个人总结了点结果,也不知道是不是完全对,大侠们给指点下,谢谢了。

当DP总线中有多个DP站掉后,OB86会被激活,此时如果在OB86_RACKS_FLTD 数组[0 ..31] 故障具体代码已经显示之前已处理的故障从站信息(例如站3),此时在多个DP站掉中,如果包含站3,那么OB86会首先提示站3是B#16#39,剩下的未通信上的DP从站,将会排队在站3后面等待,而等待的故障从站,OB86是不予提示的。
此时如果这些站依然没排除故障,那么CPU因没检测到新事件发生(掉站或恢复通信),便会停止调用OB86。
当DP总线中其中一个站恢复通信后(包含排队等待的从站),CPU发现该站有变化后,优先提示该站,并以B#16#38告知已通信上,原因为其它站没有任何动静。比如OB86最后一次被调用时提示的是站3故障(B#16#39),而此时站4已被维修人员恢复通信上,这个CPU发现站4,有从掉站到通信上这个变化,便会激活OB86工作,并做出提示(B#16#38)站4以通信上,此时如果其它掉站的依然没恢复上,那么CPU检测这些掉站的从站无任何变化(没有任何事件发生),便不会激活OB86继续工作,此时OB86调用被停止,并一直显示站4已通信上。
在后来的维修过程中,道理如上,当所有未通信上的DP从站恢复通信后,OB86会显示最后一个被恢复的DP从站,并以B#16#38提示已恢复通信。此时因为这个是最后一个被恢复的DP从站,当CPU检测其它从站一直保持在上个周期的状态时,没有发现新事件,所以CPU停止调用OB86,并显示最后一个处理事件的状态。
这里是把OB86中的临时变量传送到DB块里,这样断电也会保持数据。


因为也没有人教我,我自己也是拿着资料在这摸索,所以弄的也不一定准确,大侠们看看说的对不对啊,因为语言上组织的有点罗嗦,大侠们是否简洁明确的结论给小弟看下啊?

最佳答案

楼主总结的不错,可以进行知识制作了。如有机会进行实践验证就有体会了。
相关文档:
、参见《使用OB8x诊断SIMATIC PLC》:
http://www2.ad.siemens.com.cn/download/Upload/AS/application/A0059.zip
、《DP诊断功能块的使用》:
http://www.gongkong.com/Common/Details.aspx?c=1&m=4&l=6&Type=article&CompanyID=8-B9F2-1F2B4D8D438E&Id=9-AD59-3DB519CB0B83
、《PROFIBUS-DP诊断完全解决方案》:
http://www.gongkong.com/common/Details.aspx?c=1&m=4&Type=datum&CompanyID=&Id=5-A925-308889FFFFFF
、STEP 7诊断硬件和网络故障的方法,参考:
http://blog.gkong.com/more.asp?name=liaochangchu&id=117288
http://falogix.com/?p=495

提问者对于答案的评价:
谢谢

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc250305.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月2日 下午5:27
下一篇 2018年12月2日 下午5:27

相关推荐