背景:西门子数控系统840DSL,维护时发现NCU的SF灯亮,监控PLC诊断缓冲区提示:写入\读取时发生区域长度错误,如图1、2,一般这个错误都是程序中调用的DB快没有下载,我想在PLC程序中找到是哪里调用了这个DB快,可是在交叉参考中就是找不到,程序中用指针指向对应DB快,交叉参考也是能显示的,那么我这个程序中的DB快如何找到?
图片说明:
最佳答案
如果只是用到指针的话就找不到,或者指针寻址的话,确实这种方法找不到;用语句表写间接寻址,可以做到不直接写DBxx.DBWxx这类的格式;如果是用到通讯方式的地址的话,可以考虑交叉索引找找如SFC14,SFC15这类的块,然后慢慢找到他们;
提问者对于答案的评价:
按照最佳答案的办法试了下,由于DB太多确实不好找,但是给我提供了更多的思路,后来按照http://www.ad.siemens.com.cn/service/answer/solved_109536_1029.html 这个问答ZhangLi0的办法试了下,确实找到了问题点,诊断信息在OB121存在的情况下,确实不能显示故障点位置,我删除OB121后就找到大致位置,然后所搜63就找到了。
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc350371.html