回复:请教和探讨一下:自增/自减函数引发的数组越界错误导致的CPU临时停机故障,涉及的知识点排查及学习

xinchen

  • 帖子

    245
  • 精华

    1
  • 被关注

    6

论坛等级:侠圣

注册时间:2015-11-05

白金 白金 如何晋级?

发布于 2026-02-06 08:43:11

17楼

1500 是基于时间片通信

就是说 HMI 可能在你触发翻页后的“任意时刻”向 PLC 写入值

从 PLC 的角度上看,刚检测完 startIndex 范围,并调整在 [0, 390] 后,就有可能被 HMI 改写


因此像外部写入的变量,PLC 中不要多处读写


以本例为例,新建个局部变量 index,在开始时 

index := "Datadedupcontrol".CarLinq.HMI.Program.StartIndex;

if index < 0 then... // 限制 index 范围在 [0, 390]

"Datadedupcontrol".CarLinq.HMI.Program.StartIndex := index; // 调整后回写


// 后续的操作都用 index, 而不是 startIndex

for temp_i := 0 to 9 do

    No[temp_i] := index + temp_i;

end_for

...





评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有11098条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。