《区域长度错误》由会员分享,可在线阅读,更多相关《区域长度错误(4页珍藏版)》请在金锄头文库上搜索。
1、 返回列表为什么会出现为什么会出现“I/O“I/O 访问错误访问错误” ”和和“ “区域长度错误区域长度错误” ”显示订货号描述描述S7-300/400 CPU 在下载用户程序后,会出现 CPU 处于停止状态,stop 和 sf 指示灯亮的现象。在线查看 CPU 的诊断缓冲区,会出现两种现象:1、第一条显示由 IO 访问错误引起的停止模式,第二条显示 I/O 访问错误(见图 1)。图 1 IO 访问错误图 1 中的第二条诊断信息显示的含义是:I/O access error,writing说明对一个输出地址进行写数据操作时发生错误。P area,word access,Access addre
2、ss:200说明是使用立即访问方式,字地址 200。这两条合起来就说明对 PQW200 进行写操作时发生了错误。出现这样的错误多是程序中对 PQW200 这个地址进行了赋值,而实际的硬件配置中并没有分配 PQW200 这个地址。2、或者是第一条显示由编程错误引起的停止模式,第二条显示区域长度错误(见图 2)。图 2 区域长度错误图 2 中的第二条诊断信息显示的含义是:Area length error when reading说明读取一个地址时发生长度错误。Global DB,word access,Access address:2说明是访问 DB 块中字地址2。这两条合起来就说明对全局 DB
3、 块中 DBW2 进行读取时发生了错误。这样的错误多是由于程序中使用了 DB 块中的某个数据,但是 DB 块实际长度并没有包含所使用的地址造成的。解决办法解决办法出现上面两种编程使用错误地址导致 CPU 停机的情况时,除了可以根据诊断信息分析出错误地址然后使用交叉索引找到相应的语句外,还有一个更加简便的办法。打开 CPU 诊断缓冲区,鼠标点中第一条诊断信息,接着再点击下面的“Open Block”按钮,会直接打开相应的错误语句。下面举例说明。图 3 中的诊断信息显示编程错误导致的停止,错误的原因是区域长度错误。点中“Open Block”按钮,自动定位到程序中的错误语句(图 4),里面使用到地址 DB1.DBW2。打开 DB1 发现实际长度只有 2 个字节(图 5),不存在 DBW2 这个地址,所以才产生错误。造成 IO 访问错误的语句也可以通过此方法查找。图 3 Open Block图 4 错误语句图 5 DB1 实际长度