当前位置: 主页 > PLC控制

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

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

ASs='html_titleimg_p' STyle='text-align:center;'>

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

订货号/描述组件版本
6ES7315-2EH14-0AB0硬件4
–––固件V3.2.8
BootLoader固件扩展A32.9.9

机架:0
插槽:2


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


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


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


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


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


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


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


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


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


事件10/10:事件ID16#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、但是我里面没有什么地方是调用DB660的?
应用STEP7中交叉索引功能,检查何处引用了DB660及其相关的位。虽然没有调用DB660,但调用了其中的某一位,例如调用了DB660.DB10.0.。
3、问题补充:
、在出现这个错误,cpustop的情况下在线连接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”的提示进行排查。

  • 关注微信

猜你喜欢

微信公众号