xuzhanily
kakasese
级别: 探索解密
精华主题: 0
发帖数量: 76 个
工控威望: 196 点
下载积分: 1186 分
在线时间: 326(小时)
注册时间: 2012-03-28
最后登录: 2024-12-11
查看xuzhanily的 主题 / 回贴
楼主  发表于: 2021-09-16 15:53
图片:
图片:
如图,1200PLC使用FOR指令后,扫描周期时间增加,当前为45MS, 如果增加循环次数,这个扫码周期时间还会增长,
           把FOR循环指令断开后,扫描周期时间立即减少为6MS.  这是真的不能忍啊,用FOR循环可以简化程序工程
           量,但扫码周期变长了,有没有好的解决方法?
      
xuzhanily
kakasese
级别: 探索解密
精华主题: 0
发帖数量: 76 个
工控威望: 196 点
下载积分: 1186 分
在线时间: 326(小时)
注册时间: 2012-03-28
最后登录: 2024-12-11
查看xuzhanily的 主题 / 回贴
1楼  发表于: 2021-09-16 16:09
图片:
这个是FOR循环的程序,大神们帮忙看看
木林森
级别: 工控侠客
精华主题: 0
发帖数量: 319 个
工控威望: 2087 点
下载积分: 2213 分
在线时间: 213(小时)
注册时间: 2020-08-16
最后登录: 2024-12-18
查看木林森的 主题 / 回贴
2楼  发表于: 2021-09-16 17:23
如果不是要求在同一个扫描周期里计算完循环,PLC里的 for 可以用 if 代替 ,做一个条件利用PLC的扫描周期做循环,从而减小扫描周期时间。
ajunn
级别: 家园常客
精华主题: 0
发帖数量: 517 个
工控威望: 682 点
下载积分: 1659 分
在线时间: 1028(小时)
注册时间: 2008-11-05
最后登录: 2024-12-18
查看ajunn的 主题 / 回贴
3楼  发表于: 2021-09-16 17:31
[ 此帖被ajunn在2021-09-16 19:17重新编辑 ]
天空流星
SZ-CL
级别: 网络英雄
精华主题: 0
发帖数量: 571 个
工控威望: 6193 点
下载积分: 20393 分
在线时间: 560(小时)
注册时间: 2008-03-17
最后登录: 2024-12-20
查看天空流星的 主题 / 回贴
4楼  发表于: 2021-09-16 17:46
引用
引用第2楼木林森于2021-09-16 17:23发表的  :
如果不是要求在同一个扫描周期里计算完循环,PLC里的 for 可以用 if 代替 ,做一个条件利用PLC的扫描周期做循环,从而减小扫描周期时间。


还是要看需要结果的实时性,循环次数*扫描时间,就是出结果数据的时间,数据提前运算,确保使用时已经更新就可以,还可以加个循环完成的标记,避免数据没有完全更新时就被调用
一些运算把前面加条件,从一直运算改为使用时才运算,也能降低扫描周期
xuzhanily
kakasese
级别: 探索解密
精华主题: 0
发帖数量: 76 个
工控威望: 196 点
下载积分: 1186 分
在线时间: 326(小时)
注册时间: 2012-03-28
最后登录: 2024-12-11
查看xuzhanily的 主题 / 回贴
5楼  发表于: 2021-09-17 09:06
引用
引用第4楼天空流星于2021-09-16 17:46发表的  :


还是要看需要结果的实时性,循环次数*扫描时间,就是出结果数据的时间,数据提前运算,确保使用时已经更新就可以,还可以加个循环完成的标记,避免数据没有完全更新时就被调用
一些运算把前面加条件,从一直运算改为使用时才运算,也能降低扫描周期

谢谢回复,已经有了解决方案了,就是你说的有条件的执行,不需要执行时,就断开循环,
看来for循环还是尽量少用,能用if语句实现的就不要用for循环了,太影响扫码周期了。。。