回复:诊断缓冲区故障

Haohaobb

  • 帖子

    1637
  • 精华

    39
  • 被关注

    254

论坛等级:至圣

注册时间:2011-08-25

黄金 黄金 如何晋级?

发布于 2018-05-20 13:07:23

9楼

展开查看
以下是引用渴望知识的人在2018-05-20 12:23:01的发言 >7楼

谢谢你的解释,我的确是新手,所以有很多不明白的地方。

请问一下,你说的逐一屏蔽程序,这个如何来做?怎么屏蔽程序?


另外再请教一下,我是否加上一个DB121的块就可以解决这个读取地址不存在的问题了?

以下是引用Haohaobb在2018-05-19 18:31:12的发言 >4楼:所需的 OB:编程错...

引用4楼详细内容:

所需的 OB:编程错误 OB (OB121)


这句话的意思是出现这种错误的时候会调用这个ob,如果你cpu没有下载这个ob,cpu会stop的,你现在cpu没有stop 那是因为有这个ob,即使里面没有程序,只要下载了就不停机。


你这个错误 对用刚接触300的人来说可能经常会出现,尤其涉及到间接寻址时,弄不好就会出现。

2个错误,都是提示你访问了对应db内不存在的地址,比如你某个db内一共定义了1个bool型变量,那其占用2个字节,如果你访问第3个字节内的地址则就出错,从信息看,你出错的一个是全局db,一个是背景db。

你检查一下你的程序,看看哪个地方访问了不存在的地址。

我刚开始遇到这种情况,用比较笨的办法就是逐一屏蔽程序,看看屏蔽到哪就不报错了,然后再检查被屏蔽的程序,最终找到原因,水平高的,自己检查一下就行了,再水平高的,极少犯此类错误。

ob121只是保证你犯错时不让cpu停机,但是它不能给你纠正错误的,错误还是得你自己查。


如果是300plc,有个beu指令,可以可以结束当前块的扫描,后面的不再执行,如果你有多个块,不确定哪个块出错的,可以逐一把程序屏蔽,看看屏蔽了哪个就好了,找到哪个块,然后再从里面找哪一段程序出错,这方法够笨的了吧?

或者这么说吧,如果程序可以大改,你先备份一个,然后逐一删除,看看删到哪儿就好了。

天道酬勤
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。