f1652577
沧海一声笑!
级别: 探索解密
精华主题: 0
发帖数量: 16 个
工控威望: 116 点
下载积分: 3369 分
在线时间: 26(小时)
注册时间: 2016-04-15
最后登录: 2023-08-18
查看f1652577的 主题 / 回贴
楼主  发表于: 2017-11-15 16:46
图片:
MOV (SM402 ,K0,D20);
MOV (SM402 ,K0,D21);
FOR D20 :=K0 TO K99    BY K1 DO
    D20:= D20+K1;
    D21:= D21+D20;
END_FOR;

模拟时为什么D21中的数值一直在变?
kylew
kylew
级别: 略有小成
精华主题: 0
发帖数量: 107 个
工控威望: 214 点
下载积分: 534 分
在线时间: 208(小时)
注册时间: 2010-08-08
最后登录: 2024-11-21
查看kylew的 主题 / 回贴
1楼  发表于: 2017-12-26 21:49
MOV (SM402 ,K0,D20);
MOV (SM402 ,K0,D21);
IF SM402 THEN
    FOR D20 :=K0 TO K99    BY K1 DO
        D20:= D20+K1;
        D21:= D21+D20;
    END_FOR;
END_IF;

1+2+3+.....................+100
这个计算结果为什么是2500,不是应该是5050吗?
我PLC模拟计算的结果是2500
kylew
kylew
级别: 略有小成
精华主题: 0
发帖数量: 107 个
工控威望: 214 点
下载积分: 534 分
在线时间: 208(小时)
注册时间: 2010-08-08
最后登录: 2024-11-21
查看kylew的 主题 / 回贴
2楼  发表于: 2017-12-29 22:01
引用
引用第19楼咗臉ヅ微笑ぺ于2017-12-27 08:32发表的  :

FOR循环本身会把D20加一,循环内容又有D20加一,所以实际上算的是1+3+……+99

明白了!