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

程序开始用M8000连续接通一直给D4写1,为啥最终结果D4是16
零度浪子001
级别: 探索解密
精华主题: 0
发帖数量: 44 个
工控威望: 105 点
下载积分: 913 分
在线时间: 20(小时)
注册时间: 2024-03-08
最后登录: 2025-11-21
查看零度浪子001的 主题 / 回贴
1楼  发表于: 45天前
引用
引用第1楼工控小c于2025-10-11 17:30发表的  :
因为循环最后运行,你试试循环放在前面看看


循环继续执行,是没问题,但有一个问题,每次扫描到for循环,循环条件D2都是从1开始吗。PLC的第一个扫描周期D2应该就等于4了,如果不再从1开始那就不再就如for循环了,后面的扫描只会把D4变为1啊
零度浪子001
级别: 探索解密
精华主题: 0
发帖数量: 44 个
工控威望: 105 点
下载积分: 913 分
在线时间: 20(小时)
注册时间: 2024-03-08
最后登录: 2025-11-21
查看零度浪子001的 主题 / 回贴
2楼  发表于: 45天前
引用
引用第5楼飞皇123于2025-10-13 08:27发表的  :
先给个初始值,然后进循环,扫描到最后就是这样


初始值是用M8000给的,除非每次进入for循环,循环条件都是从1开始的
零度浪子001
级别: 探索解密
精华主题: 0
发帖数量: 44 个
工控威望: 105 点
下载积分: 913 分
在线时间: 20(小时)
注册时间: 2024-03-08
最后登录: 2025-11-21
查看零度浪子001的 主题 / 回贴
3楼  发表于: 44天前
引用
引用第7楼工控小c于2025-10-13 12:54发表的  :

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



也就是说,PLC每个扫描周期进入for循环时,先把D2置为1,然后再循环吗