区域长度错误 Area length error when reading

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

问题补充:
谢谢各位的热情指点,我删除了OB121,等CPU停止后,查看诊断缓冲区,按照Danielcjd给的链接的文章,Open block 打开了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   

最佳答案

参考,这个链接
为什么会出现“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.STOP caused by programming error(OB not…..),然后再点击“Open Block”,系统会自动跳到出错的DB块并打开的,可能是该DB块中定义了别的数据,并未定义DB?(出错块号)DBX0.0。
打个比喻,就拿楼主所上的3图来说,前两个参数应为DB108.DBW0和DB108.DBW2。如果楼主在程序中使用DB108.DBX0.0就会出现类似错误。

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

专家置评

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

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

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

相关推荐