零度浪子001
级别: 探索解密
精华主题: 0
发帖数量: 44 个
工控威望: 105 点
下载积分: 913 分
在线时间: 20(小时)
注册时间: 2024-03-08
最后登录: 2025-11-21
查看零度浪子001的 主题 / 回贴
楼主  发表于: 47天前
图片:

程序开始用M8000连续接通一直给D4写1,为啥最终结果D4是16
工控小c
级别: 工控侠客
精华主题: 0
发帖数量: 580 个
工控威望: 2391 点
下载积分: 11059 分
在线时间: 545(小时)
注册时间: 2022-10-14
最后登录: 2025-11-26
查看工控小c的 主题 / 回贴
1楼  发表于: 47天前
因为循环最后运行,你试试循环放在前面看看
工控小c
级别: 工控侠客
精华主题: 0
发帖数量: 580 个
工控威望: 2391 点
下载积分: 11059 分
在线时间: 545(小时)
注册时间: 2022-10-14
最后登录: 2025-11-26
查看工控小c的 主题 / 回贴
2楼  发表于: 45天前
引用
引用第4楼零度浪子001于2025-10-13 08:09发表的  :


循环继续执行,是没问题,但有一个问题,每次扫描到for循环,循环条件D2都是从1开始吗。PLC的第一个扫描周期D2应该就等于4了,如果不再从1开始那就不再就如for循环了,后面的扫描只会把D4变为1啊

D2是循环次数,你这样写相当于每个扫描周期都先把D4赋值1,然后循环再计算D4=((((2*1)*2)*2)*2)