回复:数组区域长度报错

鞋丢了

  • 帖子

    339
  • 精华

    0
  • 被关注

    1

论坛等级:侠士

注册时间:2023-04-18

钻石 钻石 如何晋级?

发布于 2025-09-18 15:00:08

4楼

展开查看
以下是引用hhyx9在2025-09-18 11:38:32的发言 >3楼

我觉得你贴出来的不是你真实跑的程序,因为按你贴出来的程序,如果你真的aaa申明了常量-1,理应编译时就报错了,大致是声明超出了数组范围之类的,不可能能跑起来,如果PLC内仅是贴图内IF到END_IF内的程序,是可以编译通过并跑起来的,跑起来后即使你修改aaa的值到-1,应该是不会报警数据长度错误的,因为没执行到,所以我怀疑你是执行过程中把aaa改为其它超出数组范围的值,而且不是-1,比如-2,导致IF内可以执行,且报警长度错误,可以监控下看看aaa的实际值,还有一个就是编辑器内打开定位

你简单可以理解为编译时全检查所有语法错误(包括没调用的FB/FC),跑起来后仅针对执行到的程序段错误触发报警

以下是引用hhyx9在2025-09-17 20:40:13的发言 >1楼:还是数组指针赋的值...

引用1楼详细内容:

还是数组指针赋的值超出了数组定义,有的时候不要想当然,另外碰到这种情况,诊断缓冲区内用”在编辑器内打开“定位下

以下是引用小白白又白在2025-09-17 19:32:55的发言 >0楼:array[0..19]:uint...

引用0楼详细内容:

array[0..19]:uint


aaa := -1;

IF aaa <> -1 THEN

    bbb  := array[aaa] = 2

END_IF;


条件里不执行,为什么还报数组区域长度错误

我觉得大佬说的对

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有10698条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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