关于S7-300 读取时发生区域长度错误的问题(高手请进)

我现遇到一个问题。我的PLC有时会择报下面的错误
但是我里面没有什么地方是调用DB 660的
当报这个错误的时间
PLC的AO模块就报错。PLC没有法进行AO输出
这是什么原因(这个错又不是经常出现。是偶尔出现的)
下面是错误时的CPU显示的内容

模块 CPU 315-2 PN/DP 的诊断缓冲区

订货号/描述                    组件                           版本                          
6ES7 315-2EH14-0AB0            硬件                           4                             
- - -                          固件                           V 3.2.8                       
Boot Loader                    固件扩展                       A 32.9.9                      

机架:                         0
插槽:                         2


事件 1 / 10:  事件 ID 16# 2522
读取时发生区域长度错误
实例 DB,位访问, 访问地址:   660
所需的 OB:编程错误 OB (OB121)
优先级: 1
内部错误, 进入的事件
11:05:53.296  2014-09-29


事件 2 / 10:  事件 ID 16# 2523
写入时发生区域长度错误
实例 DB,位访问, 访问地址:   660
所需的 OB:编程错误 OB (OB121)
优先级: 1
内部错误, 进入的事件
11:05:53.296  2014-09-29


事件 3 / 10:  事件 ID 16# 2522
读取时发生区域长度错误
实例 DB,位访问, 访问地址:   660
所需的 OB:编程错误 OB (OB121)
优先级: 1
内部错误, 进入的事件
11:05:53.296  2014-09-29


事件 4 / 10:  事件 ID 16# 2523
写入时发生区域长度错误
实例 DB,位访问, 访问地址:   660
所需的 OB:编程错误 OB (OB121)
优先级: 1
内部错误, 进入的事件
11:05:53.295  2014-09-29


事件 5 / 10:  事件 ID 16# 2522
读取时发生区域长度错误
实例 DB,位访问, 访问地址:   660
所需的 OB:编程错误 OB (OB121)
优先级: 1
内部错误, 进入的事件
11:05:53.295  2014-09-29


事件 6 / 10:  事件 ID 16# 2523
写入时发生区域长度错误
实例 DB,位访问, 访问地址:   660
所需的 OB:编程错误 OB (OB121)
优先级: 1
内部错误, 进入的事件
11:05:53.295  2014-09-29


事件 7 / 10:  事件 ID 16# 2522
读取时发生区域长度错误
实例 DB,位访问, 访问地址:   660
所需的 OB:编程错误 OB (OB121)
优先级: 1
内部错误, 进入的事件
11:05:53.294  2014-09-29


事件 8 / 10:  事件 ID 16# 2523
写入时发生区域长度错误
实例 DB,位访问, 访问地址:   660
所需的 OB:编程错误 OB (OB121)
优先级: 1
内部错误, 进入的事件
11:05:53.294  2014-09-29


事件 9 / 10:  事件 ID 16# 2522
读取时发生区域长度错误
实例 DB,位访问, 访问地址:   660
所需的 OB:编程错误 OB (OB121)
优先级: 1
内部错误, 进入的事件
11:05:53.293  2014-09-29


事件 10 / 10:  事件 ID 16# 2523
写入时发生区域长度错误
实例 DB,位访问, 访问地址:   660
所需的 OB:编程错误 OB (OB121)
优先级: 1
内部错误, 进入的事件

问题补充:
我认真查看了一下。块里真没有地方是调用DB660的地方。这个不应该是调用DB660引起的。

最佳答案

看看西门子官方文档:
参见:为什么会出现“I/O访问错误”和“区域长度错误” 
http://www.ad.siemens.com.cn/download/SearchResult.aspx?searchText=F0581
1、检查DB660是否定义或长度不够。
2、但是我里面没有什么地方是调用DB 660的?
应用STEP7中交叉索引功能,检查何处引用了DB660及其相关的位。虽然没有调用DB660,但调用了其中的某一位,例如调用了DB660.DB10.0.。
3、问题补充:
、在出现这个错误,cpu stop的情况下在线连接cpu看cpu诊断信息中的stack,里面显示了出错时cpu调用的程序和数据,你的问题就在这里呢。
看看西门子官方文档:
、参见:为什么会出现“I/O访问错误”和“区域长度错误” 
http://support.automation.siemens.com/CN/llisapi.dll?func=cslib.csinfo&lang=zh&objid=78943685&caller=view

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

专家置评

应该是访问第660个字节时出错了,按照网友“ weiyt”的提示进行排查。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日 上午4:34
下一篇 2018年12月1日 上午4:34

相关推荐