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

程序开始用M8000连续接通一直给D4写1,为啥最终结果D4是16
工控小c
级别: 工控侠客
精华主题: 0
发帖数量: 534 个
工控威望: 2345 点
下载积分: 9593 分
在线时间: 507(小时)
注册时间: 2022-10-14
最后登录: 2025-10-14
查看工控小c的 主题 / 回贴
1楼  发表于: 4天前
因为循环最后运行,你试试循环放在前面看看
sjbandmm
级别: 略有小成
精华主题: 0
发帖数量: 252 个
工控威望: 421 点
下载积分: 1015 分
在线时间: 177(小时)
注册时间: 2008-08-23
最后登录: 2025-10-14
查看sjbandmm的 主题 / 回贴
2楼  发表于: 4天前
2的4次方,16没问题
ff123456
级别: 探索解密
精华主题: 0
发帖数量: 71 个
工控威望: 135 点
下载积分: 6741 分
在线时间: 64(小时)
注册时间: 2023-02-19
最后登录: 2025-10-14
查看ff123456的 主题 / 回贴
3楼  发表于: 前天
循环这类还是用ST吧
零度浪子001
级别: 探索解密
精华主题: 0
发帖数量: 44 个
工控威望: 105 点
下载积分: 913 分
在线时间: 19(小时)
注册时间: 2024-03-08
最后登录: 2025-10-14
查看零度浪子001的 主题 / 回贴
4楼  发表于: 昨天
引用
引用第1楼工控小c于2025-10-11 17:30发表的  :
因为循环最后运行,你试试循环放在前面看看


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


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

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



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