[西门子] 从一个故事了解OB块的功能

[复制链接]
查看115 | 回复0 | 2024-5-7 13:58:19 | 显示全部楼层 |阅读模式

学习西门子产品,没踩过坑那是学不会的!
今天给你讲一个我自己的故事,这件事后我就对OB块有了深刻的理解!

故事是这样的,在S7-300/400刚推出不久,我们的用户想了解一些PLC配置和通信等相关信息,于是我在家里(公司)按照用户的需求配置了一个DP从站,再配置一套PLC进行通信,准备完成后就到用户那里交流了。
没想到的是,在交流的过程中,一个用户拔出DP从站的接头想看看内部的接线,结果这个时候,CPU就停机了,当时在场的所有人都很纳闷,从站掉了为什么会影响到CPU运行呢?于是我恢复原状后又测试了几次,结果还是一样。
我非常不理解,一个CPU可以带多个站点,但如果一个站点出故障那整个系统就这样完蛋了?这不科学呀!回去以后我又做了几次测试,还是停机,花了几天都没有解决问题,查看诊断缓存,总是提示没有OB82、OB86,当时也不知道什么意思,总之就是当时给我搞的头特别大,最后只能给总部写邮件寻求帮助了。
几天后收到回复,大概意思就是“为了人身和设备的安全,控制系统部分故障后,例如插拔模块、DP从站掉站后CPU自动进入停机模式,如果不希望停机,对于S7-300CPU,在程序块中需要插入OB82、OB86还要OB122。”看来系统提示的还是正确的,只是没有重视。
知道了问题的原因,可是怎么插入这些OB块呢?新建的是OB2,看手册说要将序号修改就可以了,2变86,里面的内容能一样吗?测试了几个,还真的变了!
建好这几个OB块后又困惑了,里面编什么代码呀?手册里面到时说了一堆,没有看到不让停机的指令呀。也没有编程序就下载了,测试了一下CPU不停机了。
到这里终于明白了,创建一个空的OB块就可以,编程序是为了读出故障的原因。后续又通过手册深刻理解了OB的优先级、L区堆栈等相关知识,这么看,掉进坑里原来也是一场深刻理解知识点的机遇呀!

到了S7-1500时代,系统故障不插入OB块也不会停机了,估计是看到这么多的工程师插入的空的OB块只是为了CPU不停机而进行的修改吧!
想学好一门产品、想做好一个行业,总避免不了要多踩几次坑。关键是能像崔工一样 通过对现场故障原因的反复研究和解决办法的不懈探索,把踩过的坑填上,让它们成为趟过困难、通往成功的过桥石!


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则