回复:使用for循环语句,进行数据的移位替换,但是程序运行结果却是全部替换为最后一行数据

已锁定

xinchen

  • 帖子

    232
  • 精华

    1
  • 被关注

    5

论坛等级:侠圣

注册时间:2015-11-05

白金 白金 如何晋级?

发布于 2025-03-08 09:24:49

5楼

展开查看
以下是引用手机用户20210918201436在2025-03-05 14:56:46的发言 >2楼

有限制条件for  min to  max,min值是4max值是9,i的累加值是6,证明循环了6次,每个循环周期只进行一次赋值啊,而且#Stack_No是递增的,从后往前挨个赋值才会出现gid[9]数据全部赋值给gid[8]到gid[4]的情况啊,正常不是gid5给gid4,gid6给gid5吗


如果 块一直调用,且 循环赋值启动 = 1 一直成立

(min4 max9,最后好像是 10 的值覆盖了 4-9,不是 9 的值吧?)

(这里先用 min4 max8 举例)

第一个扫描周期,567899

第二个扫描周期,678999

第三个扫描周期,789999

。。。


虽然每次都是从 4-8,执行次数没变,但每个周期数组[4-8] 都被后一个覆盖了

多个周期执行后,就都是 [9] 了


所以要检查下是不是只执行了一次整体移动

伪代码:

if 循环赋值启动 = 1 then

    for #index := min to max do

        gjd[#index] := gjd[#index + 1];

    end_for;

end_if;

循环赋值启动 := 0;


评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15234条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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