当前位置: 主页 > PLC控制

区域长度错误 Area length error when reading

系统环境:CPU313C+CP343-1Lean。采用2XV9450-1MB00软件包做MODBUSTCP通讯。
CPU的DiagnoSTicBuffer为什么总是出现EventID:16#A090(这个我知道是未授权)和Arealengtherrorwhenreading(图1)。我不确定Arealengtherrorwhenreading是不是和西门子的modbus功能块fb108有关系(图2)。还请各位大侠指点一二,谢谢!

问题补充:
谢谢各位的热情指点,我删除了OB121,等CPU停止后,查看诊断缓冲区,按照Danielcjd给的链接的文章,Openblock打开了FB108,但它是西门子官方FB,加密了无法打开。没有哪里访问DB?DBX0.0啊?
特附上诊断缓冲区截图以及背景数据块DB108截图

图片说明:

区域长度错误 Area length error when reading区域长度错误 Area length error when reading 区域长度错误 Area length error when reading区域长度错误 Area length error when reading 区域长度错误 Area length error when reading区域长度错误 Area length error when reading 区域长度错误 Area length error when reading区域长度错误 Area length error when reading

最佳答案

参考,这个链接
为什么会出现“I/O访问错误”和“区域长度错误”
htTPs://support.industry.siemens.com/cs/document/78943685/%E4%B8%BA%E4%BB%80%E4%B9%88%E4%BC%9A%E5%87%BA%E7%8E%B0%E2%80%9Cio%E8%AE%BF%E9%97%AE%E9%94%99%E8%AF%AF%E2%80%9D%E5%92%8C%E2%80%9C%E5%8C%BA%E5%9F%9F%E9%95%BF%E5%BA%A6%E9%94%99%E8%AF%AF%E2%80%9D?dti=0&lc=zh-CN
问题补充:请楼主点击第一个图片中的第一条报警信息:1.STOPCausedbyprogrammingerror(OBnot…..),然后再点击“OpenBlock”,系统会自动跳到出错的DB块并打开的,可能是该DB块中定义了别的数据,并未定义DB?(出错块号)DBX0.0。
打个比喻,就拿楼主所上的3图来说,前两个参数应为DB108.DBW0和DB108.DBW2。如果楼主在程序中使用DB108.DBX0.0就会出现类似错误。

提问者对于答案的评价:
谢谢Danielcjd,程序FB108里面应该是有访问DB108.DBX0.0.但FB108是西门子官方FB,DB108也是其背景数据块。出现这个问题,西门子应该也是知道的吧

专家置评

出现该报警是因为访问长度错误;如果FB加密的话则说明用户不需要知道其内部结构,那么在调用FB108时,由其自动生成其背景数据块。

  • 关注微信

猜你喜欢

微信公众号