紧急求助

西门子1500报警SF灯亮,怎么复位都消不掉

郭宝强
郭宝强
2026/04/29 23:44

现场一台1500PLC,跑着跑着SF灯亮了,CPU切STOP了。报警缓冲里报"访问错误 区域长度错误",指向一个DB块。我把那个DB块重新下载了一遍没解决,MRES也试过了,照样报警。

程序是别人写的,我接手没多久。有没有人碰到过这种情况?会不会是DB块实际长度和程序里访问的不一致?除了删DB重灌还有啥招?

17 3

全部回复 (3)

小胡
小胡#1

先别急着复位,看一下那个报警里指向的访问是哪个地址、哪个DB、多少字节偏移。1500这种报警十有八九是访问越界,多半是DB块在线实际长度比程序里写的访问长度短。我一般这么查:在监控表里把那个DB块的Used Length看一遍,再对比程序里访问的偏移加长度,超了就清楚了。

还有个坑是优化块访问,勾了优化访问之后DB里的地址是符号寻址,有时候交叉引用看不出来但实际访问超了。把报警时间点的调用栈拉出来瞅一眼,顺着栈能直接定位是哪段逻辑在踩线。

2026/04/30 07:22
知足常乐
知足常乐#2

别瞎删DB重灌,搞不好现场数据丢了更麻烦。你先把那个DB块的属性打开,确认一下是不是优化访问,再去看实际使用的字节数跟程序里访问的匹不匹配。八成就是访问超出了实际定义的长度。

2026/05/01 05:18
abc832270
abc832270#3

MRES没用就说明不是CPU状态问题,是真报警没消除。把报警缓冲清一下试试,在CPU属性里有个"清除报警缓冲"的选项,清完重新触发一次程序看看还报不报。

2026/05/02 05:23