PLC问答
> 西门子PLC报错16#8002是什么原因?
西门子PLC报错16#8002是什么原因?
16#8002这个代码什么意思?西门子PLC需要怎么处理?
4 个回答
16#8002是S7-300/400系列CPU的I/O访问错误,具体指向过程映像区读写越界。上周修一台314C-2DP就碰到过,诊断缓冲区显示“读取时I/O访问错误”,模块地址从124开始,但硬件组态里只配到120,程序里还有PIW124的读取指令,一上电就报8002。处理方式:在STEP7里打开硬件组态核对模块起始地址,用交叉引用查所有PIW/PQW访问点是否超出组态范围。另外S7-300的模拟量模块地址是按2字节分配的,别按字节数算错。
补充一种容易被忽略的情况:8002不一定是真越界,DP从站掉站但组态里保留地址时也会触发。去年一条包装线,ET200S的IM151-1接口模块供电端子松动,从站离线,CPU扫描到该从站地址区间就报8002,诊断缓冲区里伴随“站故障”条目。排查时先看诊断缓冲区前几条事件,确认是读/写错误还是站故障,再看CPU的SF灯和BF灯状态,BF闪的话基本就是总线侧的问题,别一上来就翻程序。
问这种问题至少把CPU型号和诊断缓冲区截图贴出来。S7-300和S7-1500的8002含义有差别,1500上I/O访问错误更多跟DP/PN从站的模块组态与实物不一致有关,比如实际插的是16通道DI卡,组态里配成32通道。还有一点:用SFC14/15读写DP从站一致性数据时,地址长度填错也会报这个,检查LADDR参数是不是模块的硬件标识符而不是起始地址。
先别动程序,进诊断缓冲区看第一条事件附带的具体地址和读/写方向,那个地址就是出问题的模块起始地址,拿它对照硬件组态里的模块地址表,八成能对上一个刚换过或刚改过组态的点。我这边换模块后忘记在组态里改地址、程序里还按老地址访问,也报过8002。